Files
Fulfilled-Knowledge/wishfulfilled-dashboard/knowledge-graph.json
2026-05-29 14:33:56 +08:00

2883 lines
6.4 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"version": "1.0.0",
"kind": "codebase",
"project": {
"name": "如愿知识库",
"languages": [
"markdown"
],
"frameworks": [
"Understand-Anything",
"Obsidian"
],
"description": "按需求文档、里程碑、技术文档、测试相关、Agent检索组织的流程式知识库。",
"analyzedAt": "2026-05-29T06:03:33.440Z",
"gitCommitHash": ""
},
"nodes": [
{
"id": "doc:00_首页/Agent问答入口",
"type": "document",
"name": "Agent 问答入口",
"filePath": "00_首页/Agent问答入口.md",
"summary": "当用户询问业务或项目流程时Agent 应先检索本知识库 Markdown 文件,再组织回答。",
"tags": [
"00_首页",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: agent_entry\ntags: [Agent, 问答, 检索]\naliases: [问答入口, Agent入口]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# Agent 问答入口\n\n当用户询问业务或项目流程时Agent 应先检索本知识库 Markdown 文件,再组织回答。\n\n## 推荐检索顺序\n\n1. `05_需求文档/`:持续新增的业务需求、业务规则、需求变更。\n2. `06_里程碑/`:项目节点、阶段计划、阶段评审、上线节奏。\n3. `07_技术文档/`:架构、接口、数据模型、实现方案、技术决策。\n4. `08_测试相关/`:测试计划、测试用例、缺陷、验收、上线检查。\n5. `02_项目管理流程/`:阶段、角色、交付物、门禁、检查清单。\n6. `01_业务流程/`:具体业务流程、业务对象、业务规则。\n7. `04_Agent检索/`:关键词、同义词、回答规则、来源索引。\n8. `03_规范与模板/`:需要产出文档或表单时检索。\n\n## 回答格式\n\n- 先给结论。\n- 再按阶段、负责人、输入、关键动作、输出、检查点说明。\n- 最后注明来源文件。\n- 若知识库没有明确记录,回答“知识库未明确记录”,并说明建议补充到哪个文件。\n\n## 示例问题\n\n- 一个内部系统需求从提出到上线要走哪些阶段?\n- 阶段2.5测试提前补漏要产出什么?\n- 业务主管在项目入口分级中负责什么?\n- 什么时候需要前端提前参与需求收敛?\n- 新增一条业务规则后,怎么验证 Agent 能搜到?\n- 某个业务规则应该补充到哪个模板里?\n- 某个需求对应哪些测试用例?\n- 某个模块有哪些接口说明?\n- 这个项目当前处在哪个里程碑?\n\n## 业务补充验证入口\n\n- 需求文档目录:`05_需求文档/`\n- 里程碑目录:`06_里程碑/`\n- 技术文档目录:`07_技术文档/`\n- 测试相关目录:`08_测试相关/`\n- 需求文档索引:`05_需求文档/需求文档索引.md`\n- 测试用例索引:`08_测试相关/测试用例索引.md`\n- 模板:`03_规范与模板/业务规则与需求补充模板.md`\n- 流程:`04_Agent检索/知识库持续更新与验证流程.md`\n- 记录:`01_业务流程/业务补充验证记录.md`\n",
"wikilinks": [],
"category": "layer-overview"
}
},
{
"id": "doc:00_首页/知识地图",
"type": "document",
"name": "知识地图",
"filePath": "00_首页/知识地图.md",
"summary": "- [[../知识库使用说明|知识库使用说明]]",
"tags": [
"00_首页"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: map\ntags: [知识地图, 导航]\naliases: [知识库地图]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 知识地图\n\n## 使用说明\n\n- [[../知识库使用说明|知识库使用说明]]\n- [[../Git使用说明|Git 使用说明]]\n\n## 需求文档\n\n- [[../05_需求文档/README|需求文档入口]]\n- [[../05_需求文档/需求文档索引|需求文档索引]]\n- [[../03_规范与模板/需求说明模板|需求说明模板]]\n- [[../03_规范与模板/业务规则与需求补充模板|业务规则与需求补充模板]]\n- [[../01_业务流程/业务规则索引|业务规则索引]]\n- [[../01_业务流程/业务对象字典|业务对象字典]]\n\n## 里程碑\n\n- [[../06_里程碑/README|里程碑入口]]\n- [[../06_里程碑/里程碑索引|里程碑索引]]\n- [[../06_里程碑/阶段计划模板|阶段计划模板]]\n- [[../06_里程碑/里程碑评审记录|里程碑评审记录]]\n- [[../02_项目管理流程/AI驱动内部系统开发流程_V3_总览|项目管理流程总览]]\n- [[../02_项目管理流程/阶段交付物清单|阶段交付物清单]]\n- [[../02_项目管理流程/项目检查清单|项目检查清单]]\n\n## 技术文档\n\n- [[../07_技术文档/README|技术文档入口]]\n- [[../07_技术文档/技术文档索引|技术文档索引]]\n- [[../07_技术文档/系统架构说明模板|系统架构说明模板]]\n- [[../07_技术文档/接口说明模板|接口说明模板]]\n- [[../07_技术文档/技术决策记录|技术决策记录]]\n\n## 测试相关\n\n- [[../08_测试相关/README|测试相关入口]]\n- [[../08_测试相关/测试用例索引|测试用例索引]]\n- [[../08_测试相关/测试用例模板|测试用例模板]]\n- [[../08_测试相关/测试计划模板|测试计划模板]]\n- [[../08_测试相关/缺陷记录模板|缺陷记录模板]]\n- [[../08_测试相关/验收记录模板|验收记录模板]]\n- [[../08_测试相关/上线检查模板|上线检查模板]]\n- [[../02_项目管理流程/阶段2.5_测试提前补漏|阶段2.5 测试提前补漏]]\n- [[../02_项目管理流程/阶段4_测试培训上线回流|阶段4 测试培训上线回流]]\n\n## Agent 检索\n\n- [[../04_Agent检索/检索说明|检索说明]]\n- [[../04_Agent检索/问答提示词|问答提示词]]\n- [[../04_Agent检索/关键词索引|关键词索引]]\n- [[../04_Agent检索/同义词表|同义词表]]\n- [[../04_Agent检索/来源文件索引|来源文件索引]]\n- [[../04_Agent检索/知识库持续更新与验证流程|持续更新与验证流程]]\n",
"wikilinks": [],
"category": "layer-overview"
}
},
{
"id": "doc:00_首页/知识库首页",
"type": "document",
"name": "如愿知识库首页",
"filePath": "00_首页/知识库首页.md",
"summary": "本知识库用于沉淀如愿内部系统建设中的业务流程、项目管理流程、角色职责、交付物、检查清单与 Agent 检索问答规范。",
"tags": [
"00_首页"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: index\ntags: [知识库, 首页, 如愿]\naliases: [如愿知识库首页, 知识库入口]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 如愿知识库首页\n\n本知识库用于沉淀如愿内部系统建设中的业务流程、项目管理流程、角色职责、交付物、检查清单与 Agent 检索问答规范。\n\n## 快速入口\n\n- [[../知识库使用说明|知识库使用说明]]\n- [[知识地图]]\n- [[Agent问答入口]]\n- [[../05_需求文档/README|需求文档]]\n- [[../06_里程碑/README|里程碑]]\n- [[../07_技术文档/README|技术文档]]\n- [[../08_测试相关/README|测试相关]]\n- [[../04_Agent检索/检索说明|Agent 检索说明]]\n\n## 当前权威来源\n\n- 项目管理流程:`AI_驱动_内部系统开发流程_V3.docx`\n- 适用范围ERP、内部系统、小型业务系统、运营工具、AI 辅助开发项目。\n\n## 使用原则\n\n1. 需求类问题先查需求文档。\n2. 进度、节点、准入问题先查里程碑。\n3. 技术实现、接口、架构问题先查技术文档。\n4. 测试范围、用例、验收、缺陷问题先查测试相关。\n5. Agent 回答必须说明来源文件。\n6. 知识库没有明确记录时,不要猜测,应提示补充位置。\n",
"wikilinks": [],
"category": "layer-overview"
}
},
{
"id": "doc:02_项目管理流程/AI驱动内部系统开发流程_V3_总览",
"type": "document",
"name": "AI 驱动内部系统开发流程 V3 总览",
"filePath": "02_项目管理流程/AI驱动内部系统开发流程_V3_总览.md",
"summary": "本流程适用于公司当前阶段的 ERP、内部系统、小型业务系统、运营工具、AI 辅助开发项目。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: process_overview\ntags: [项目管理流程, AI驱动开发, ERP, 内部系统]\naliases: [AI驱动内部系统开发流程, 内部系统开发流程V3, ERP开发流程]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# AI 驱动内部系统开发流程 V3 总览\n\n## 版本定位\n\n本流程适用于公司当前阶段的 ERP、内部系统、小型业务系统、运营工具、AI 辅助开发项目。\n\n核心目标不是让流程变复杂而是解决以下问题\n\n- 业务需求说不清。\n- AI 生成内容不完整。\n- 前端模型介入太晚。\n- 后端数据库设计被页面倒逼。\n- 测试太晚才发现需求漏项。\n- 项目完成后留下大量重复代码和技术债。\n\n## 总体阶段\n\n| 阶段 | 阶段名称 | 核心目标 | 核心负责人 |\n|---|---|---|---|\n| 阶段0 | 项目入口分级 | 判断项目是否值得做、走轻流程还是完整流程 | 业务主管 / 技术负责人 |\n| 阶段1 | 业务需求完整形成 | 业务侧通过 Vibe Coding 跑完整需求 | 业务主管 / 业务人员 |\n| 阶段2 | 高保真模型与业务对象确认 | 把完整但粗糙的需求收敛成可开发模型 | 前端 / 产品经理 |\n| 阶段2.5 | 测试提前补漏 | 在开发前用测试视角发现需求漏洞 | 测试 |\n| 阶段3 | 研发协作与正式开发 | 基于高保真模型进行模块化、安全、可维护开发 | 前端 / 后端 / 算法 |\n| 阶段4 | 测试、培训、上线、回流 | 完成测试、培训、上线验收和问题回流 | 测试 / 业务主管 |\n| 阶段5 | 技术债治理与能力沉淀 | 清理 AI 冗余代码并沉淀复用能力 | 技术负责人 |\n\n## 阶段门禁\n\n| 门禁 | 通过标准 |\n|---|---|\n| Gate 0 | 项目入口通过:确认值得做,确认项目类型。 |\n| Gate 1 | 需求完整通过:主流程、分支、页面、按钮、字段、状态大致完整。 |\n| Gate 2 | 高保真模型通过页面收敛、按钮行为、业务对象、状态、V1/V2 明确。 |\n| Gate 2.5 | 测试补漏:测试用例初稿发现的阻塞问题已处理。 |\n| Gate 3 | 开发联调通过:前后端、数据库、权限、安全、主要流程联调完成。 |\n| Gate 4 | 上线验收通过:测试通过、业务确认、培训完成。 |\n| Gate 5 | 技术债治理完成:重复代码、组件、接口、数据结构完成治理或进入债务池。 |\n\n## 完整版文件结构\n\n- `00_项目入口分级.md`\n- `01_主流程说明.md`\n- `02_日常操作页面结构.md`\n- `03_功能页面按钮盘点表.md`\n- `04_分支流程_XXX.md`\n- `05_异常流程_XXX.md`\n- `06_VibeCoding页面验证记录.md`\n- `07_高保真模型.html`\n- `07_高保真模型说明.md`\n- `08_项目周期与版本确认.md`\n- `09_前端技术评审.md`\n- `10_技术预检记录.md`\n- `10A_统一业务对象模型.md`\n- `10B_按钮行为矩阵.md`\n- `11_测试用例初稿与需求补漏.md`\n- `12_研发任务拆分与协作计划.md`\n- `13_技术实现对接.md`\n- `14_代码治理与安全规范.md`\n- `15_开发问题与联调记录.md`\n- `16_正式测试报告.md`\n- `17_内部培训手册.md`\n- `18_上线验收记录.md`\n- `19_上线问题与回流需求.md`\n- `20_技术债清单.md`\n- `21_业务原子能力沉淀清单.md`\n- `22_组件库与服务复用清单.md`\n- `23_AI开发上下文模板更新记录.md`\n\n## 轻量版文件结构\n\n小项目可以使用轻量版\n\n- `00_项目入口分级.md`\n- `01_业务需求包.md`\n- `02_高保真模型包.md`\n- `03_项目版本与技术预检.md`\n- `04_测试用例初稿与需求补漏.md`\n- `05_研发协作与技术实现包.md`\n- `06_代码治理与安全规范.md`\n- `07_测试培训上线包.md`\n- `08_技术债与能力沉淀包.md`\n\n## 最终核心原则\n\n- 先分级,再开发。\n- 阶段1追求需求完整不追求产品完善。\n- Vibe Coding 页面只是需求原型,不直接进入生产。\n- 阶段2追求模型高效前端必须深度参与。\n- 高保真模型确认后,才允许正式开发。\n- 统一业务对象模型是页面、接口、数据库、测试、AI 提示词的共同基础。\n- 性能、安全、权限、并发、日志、可回滚必须提前预检。\n- 测试提前补漏,不只是上线前找 Bug。\n- 研发阶段以代码质量、模块化、安全性、可维护性为中心。\n- AI 代码必须治理,不能直接堆进生产。\n- 每个项目都要沉淀业务原子能力。\n- 每完成 3-4 个项目,必须进行技术债治理。\n\n## 一句话总结\n\n这套流程不是为了让 AI 替代开发,而是让 AI 帮业务更快形成完整需求,让前端和产品把需求收敛成高保真模型,让研发团队基于模型高质量开发,让测试和技术债治理保障系统长期可用。\n\n## 关联条目\n\n- [[阶段0_项目入口分级]]\n- [[阶段1_业务需求完整形成]]\n- [[阶段2_高保真模型与业务对象确认]]\n- [[阶段2.5_测试提前补漏]]\n- [[阶段3_研发协作与正式开发]]\n- [[阶段4_测试培训上线回流]]\n- [[角色职责矩阵]]\n- [[阶段交付物清单]]\n- [[项目检查清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/README",
"type": "document",
"name": "项目管理流程",
"filePath": "02_项目管理流程/README.md",
"summary": "本目录基于 `AI_驱动_内部系统开发流程_V3.docx` 拆解,用于指导 ERP、内部系统、小型业务系统、运营工具、AI 辅助开发项目。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: index\ntags: [项目管理流程, AI驱动开发]\naliases: [项目管理流程入口, 开发流程入口]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 项目管理流程\n\n本目录基于 `AI_驱动_内部系统开发流程_V3.docx` 拆解,用于指导 ERP、内部系统、小型业务系统、运营工具、AI 辅助开发项目。\n\n## 阶段文件\n\n- [[AI驱动内部系统开发流程_V3_总览]]\n- [[阶段0_项目入口分级]]\n- [[阶段1_业务需求完整形成]]\n- [[阶段2_高保真模型与业务对象确认]]\n- [[阶段2.5_测试提前补漏]]\n- [[阶段3_研发协作与正式开发]]\n- [[阶段4_测试培训上线回流]]\n\n## 重组索引\n\n- [[角色职责矩阵]]\n- [[阶段交付物清单]]\n- [[项目检查清单]]\n- [[常见问题FAQ]]\n\n## 核心原则\n\n先分级再开发。阶段1追求需求完整不追求产品完善。高保真模型确认后才允许正式开发。测试要提前补漏。AI 代码必须治理,不能直接堆进生产。\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/常见问题FAQ",
"type": "document",
"name": "常见问题 FAQ",
"filePath": "02_项目管理流程/常见问题FAQ.md",
"summary": "通常经过阶段0项目入口分级、阶段1业务需求完整形成、阶段2高保真模型与业务对象确认、阶段2.5测试提前补漏、阶段3研发协作与正式开发、阶段4测试培训上线回流。文档还定义了阶段5技术债治理与能力沉淀。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: faq\ntags: [项目管理流程, FAQ, 问答]\naliases: [流程常见问题, 项目管理问答]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 常见问题 FAQ\n\n## 一个内部系统需求从提出到上线要走哪些阶段?\n\n通常经过阶段0项目入口分级、阶段1业务需求完整形成、阶段2高保真模型与业务对象确认、阶段2.5测试提前补漏、阶段3研发协作与正式开发、阶段4测试培训上线回流。文档还定义了阶段5技术债治理与能力沉淀。\n\n来源[[AI驱动内部系统开发流程_V3_总览]]\n\n## 阶段0项目入口分级由谁负责\n\n由业务主管和技术负责人共同负责。业务主管判断业务价值和范围技术负责人判断技术复杂度和风险。\n\n来源[[阶段0_项目入口分级]]、[[角色职责矩阵]]\n\n## 业务需求完整形成阶段的目标是什么?\n\n业务侧通过 Vibe Coding 跑完整需求。阶段1追求需求完整不追求产品完善。\n\n来源[[阶段1_业务需求完整形成]]\n\n## 阶段2.5测试提前补漏应该在什么时候发生?\n\n发生在高保真模型确认后、正式开发前。\n\n来源[[阶段2.5_测试提前补漏]]\n\n## 阶段2.5测试提前补漏要产出什么?\n\n主要产出 `11_测试用例初稿与需求补漏.md`,并形成需求补漏记录、阻塞问题清单和已关闭问题清单。\n\n来源[[阶段2.5_测试提前补漏]]、[[阶段交付物清单]]\n\n## 什么时候需要前端提前参与需求收敛?\n\n阶段2必须由前端深度参与。若需求涉及多页面、复杂交互、权限、状态流转、数据结构或组件复用前端应在需求收敛时提前参与。\n\n来源[[阶段2_高保真模型与业务对象确认]]\n\n## 研发协作与正式开发阶段如何保证模块化、安全和可维护?\n\n依赖统一业务对象模型、研发任务拆分、技术实现对接、代码治理与安全规范、开发问题与联调记录。AI 代码必须经过治理,不能直接堆进生产。\n\n来源[[阶段3_研发协作与正式开发]]\n\n## 上线前需要检查哪些事项?\n\n至少检查正式测试、主流程、分支流程、权限、异常、数据边界、内部培训手册、业务确认、上线问题回流机制。\n\n来源[[阶段4_测试培训上线回流]]、[[项目检查清单]]\n\n## Vibe Coding 页面能不能直接进入生产?\n\n不能。Vibe Coding 页面只是需求原型,不直接进入生产。\n\n来源[[阶段1_业务需求完整形成]]、[[AI驱动内部系统开发流程_V3_总览]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/角色职责矩阵",
"type": "document",
"name": "角色职责矩阵",
"filePath": "02_项目管理流程/角色职责矩阵.md",
"summary": "业务主管保证方向正确、主流程清楚、需求不漏大块。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: responsibility_matrix\ntags: [项目管理流程, 角色职责, RACI]\naliases: [角色职责, 职责矩阵, RACI]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 角色职责矩阵\n\n## 总览\n\n| 角色 | 主要负责阶段 | 核心职责 | 典型产出 |\n|---|---|---|---|\n| 业务主管 | 阶段0、阶段1、阶段4 | 判断项目价值、明确主流程、确认业务完整性、上线验收 | 项目入口分级、主流程说明、业务验收口径、上线验收记录 |\n| 业务人员 | 阶段1 | 补充分支流程、提供样本数据、验证真实操作路径 | 分支流程、异常流程、Vibe Coding 页面验证记录 |\n| 产品经理 | 阶段2 | 收敛需求、组织高保真模型、明确版本范围 | 高保真模型说明、项目周期与版本确认 |\n| 前端 | 阶段2、阶段3 | 深度参与模型收敛、页面结构、按钮行为、组件复用、前端开发 | 高保真模型、前端技术评审、按钮行为矩阵、前端实现 |\n| 后端 | 阶段3 | 设计接口、数据库、权限、安全、日志、回滚和服务能力 | 技术实现对接、后端服务、接口和数据库方案 |\n| 算法 | 阶段3 | 判断是否需要 AI设计输入输出、置信度、人工审核和风险控制 | 算法适用性判断、算法输入输出说明、置信度规则 |\n| 测试 | 阶段2.5、阶段4 | 提前写测试用例、发现需求漏洞、正式测试、培训材料、上线反馈 | 测试用例初稿、正式测试报告、内部培训手册、上线问题回流 |\n| 技术负责人 | 阶段0、阶段5 | 技术分级、风险判断、技术债治理和能力沉淀 | 技术债清单、业务原子能力沉淀清单、组件库与服务复用清单 |\n\n## 业务主管\n\n业务主管保证方向正确、主流程清楚、需求不漏大块。\n\n职责\n\n- 判断项目是否值得做。\n- 定义主流程。\n- 定义日常操作入口。\n- 明确业务人员每天先看什么页面。\n- 拆分分支流程,指定业务人员补充。\n- 确认异常流程。\n- 确认业务完整性。\n- 参与业务验收。\n\n## 业务人员\n\n业务人员负责具体分支流程和真实操作细节。\n\n职责\n\n- 补充分支流程。\n- 提供样本数据,例如 ASIN、订单、评论、用户、表格等真实样本。\n- 使用 Vibe Coding 跑页面,验证是否符合真实操作。\n- 补充异常场景。\n\n## 算法\n\n算法保证 AI 能力可控、可解释、可人工审核。\n\n职责\n\n- 判断是否需要 AI避免为了 AI 而 AI。\n- 设计算法输入,明确模型需要哪些数据。\n- 设计算法输出,明确 AI 返回什么结果。\n- 制定置信度规则。\n- 制定人工审核机制。\n- 设计风险控制,确保 AI 判断错误时可以回退和纠正。\n\n## 测试\n\n测试不只是最后找 Bug还要提前补漏并负责内部培训材料。\n\n职责\n\n- 高保真模型出来后先写测试用例。\n- 用测试视角发现流程、按钮、权限遗漏。\n- 正式测试主流程、分支流程、权限、异常和数据。\n- 输出验收报告。\n- 将测试用例转成业务操作手册。\n- 记录上线问题并回流需求池。\n\n## 关联条目\n\n- [[AI驱动内部系统开发流程_V3_总览]]\n- [[阶段0_项目入口分级]]\n- [[阶段1_业务需求完整形成]]\n- [[阶段2.5_测试提前补漏]]\n- [[阶段4_测试培训上线回流]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/阶段0_项目入口分级",
"type": "document",
"name": "阶段0 项目入口分级",
"filePath": "02_项目管理流程/阶段0_项目入口分级.md",
"summary": "不是所有需求都应该进入完整开发流程。阶段0用于判断项目是否值得做以及走轻流程还是完整流程。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: process_stage\ntags: [项目管理流程, 阶段0, 项目入口, 分级, 立项]\naliases: [项目入口分级, 入口分级, Gate 0, 立项分级]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 业务主管 / 技术负责人\nupdated: 2026-05\n---\n\n# 阶段0 项目入口分级\n\n## 核心目标\n\n不是所有需求都应该进入完整开发流程。阶段0用于判断项目是否值得做以及走轻流程还是完整流程。\n\n## 负责人\n\n- 业务主管\n- 技术负责人\n\n## 输入\n\n- 业务提出的问题或机会。\n- 现有系统痛点。\n- 业务收益、风险、范围的初步判断。\n\n## 项目分类\n\n| 类型 | 适用场景 | 流程要求 |\n|---|---|---|\n| S 类 | 小需求,单页面、小改动、无复杂数据 | 可简化阶段1和阶段2。 |\n| M 类 | 中等需求,涉及多个页面、多个角色或状态流转 | 建议走完整阶段0-4。 |\n| L 类 | 大型需求,涉及核心流程、多个部门、复杂权限、数据模型或算法 | 必须走完整流程,并强化技术预检和阶段门禁。 |\n\n## 关键动作\n\n- 判断需求是否值得做。\n- 判断项目影响范围。\n- 判断是否需要完整流程。\n- 判断是否涉及复杂数据、权限、算法、外部系统或高风险流程。\n- 初步指定业务负责人和技术负责人。\n\n## 输出/交付物\n\n- `00_项目入口分级.md`\n- 项目类型S / M / L。\n- 是否进入完整流程的结论。\n- 初步负责人。\n- 初步范围和风险。\n\n## 检查清单\n\n- [ ] 是否确认需求要解决的真实业务问题?\n- [ ] 是否确认该需求值得做?\n- [ ] 是否确认项目类型?\n- [ ] 是否确认走轻流程还是完整流程?\n- [ ] 是否识别复杂权限、数据、算法、并发、安全或外部系统风险?\n- [ ] 是否明确业务主管和技术负责人?\n\n## 风险点\n\n- 小需求被过度流程化,降低效率。\n- 大需求被当成小需求处理,后续返工。\n- 没有识别权限、数据、安全、算法风险。\n- 没有业务负责人,需求持续漂移。\n\n## Gate 0 通过标准\n\n项目入口通过确认值得做确认项目类型。\n\n## 常见问题\n\n### 阶段0由谁负责\n\n由业务主管和技术负责人共同负责。业务主管判断业务价值和业务范围技术负责人判断技术复杂度和风险。\n\n### 小需求是否必须走完整流程?\n\n不一定。S 类小需求可以简化阶段1和阶段2但仍应保留基本入口判断、测试和上线验收。\n\n## 关联条目\n\n- [[AI驱动内部系统开发流程_V3_总览]]\n- [[角色职责矩阵]]\n- [[阶段交付物清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/阶段1_业务需求完整形成",
"type": "document",
"name": "阶段1 业务需求完整形成",
"filePath": "02_项目管理流程/阶段1_业务需求完整形成.md",
"summary": "业务侧通过 Vibe Coding 跑完整需求。阶段1追求需求完整不追求产品完善。",
"tags": [
"02_项目管理流程",
"需求文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: process_stage\ntags: [项目管理流程, 阶段1, 业务需求, VibeCoding, 需求完整]\naliases: [业务需求完整形成, 提需求, 需求梳理, Gate 1]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 业务主管 / 业务人员\nupdated: 2026-05\n---\n\n# 阶段1 业务需求完整形成\n\n## 核心目标\n\n业务侧通过 Vibe Coding 跑完整需求。阶段1追求需求完整不追求产品完善。\n\n## 负责人\n\n- 业务主管\n- 业务人员\n\n## 输入\n\n- 阶段0入口分级结论。\n- 业务痛点、业务目标、现有流程。\n- 业务人员真实操作经验。\n\n## 关键动作\n\n- 梳理主流程。\n- 明确日常操作页面结构。\n- 盘点功能页面和按钮。\n- 补充分支流程。\n- 补充异常流程。\n- 使用 Vibe Coding 生成或验证需求原型。\n- 记录页面验证结果。\n\n## 输出/交付物\n\n- `01_主流程说明.md`\n- `02_日常操作页面结构.md`\n- `03_功能页面按钮盘点表.md`\n- `04_分支流程_XXX.md`\n- `05_异常流程_XXX.md`\n- `06_VibeCoding页面验证记录.md`\n\n## 检查清单\n\n- [ ] 主流程是否能从开始走到结束?\n- [ ] 日常操作入口是否清楚?\n- [ ] 页面、按钮、字段是否大致完整?\n- [ ] 分支流程是否由真实业务人员补充?\n- [ ] 异常流程是否覆盖无负责人、超时、数据缺失等情况?\n- [ ] Vibe Coding 原型是否经过业务侧走查?\n- [ ] 是否明确哪些内容只是原型,不可直接进入生产?\n\n## 风险点\n\n- 只描述主流程,漏掉分支和异常。\n- 把 Vibe Coding 页面当成可生产代码。\n- 业务主管只给方向,没有安排业务人员补充真实操作细节。\n- 页面、按钮、字段未盘点导致阶段2和开发阶段返工。\n\n## Gate 1 通过标准\n\n需求完整通过主流程、分支、页面、按钮、字段、状态大致完整。\n\n## 常见问题\n\n### 阶段1追求什么\n\n追求需求完整不追求产品完善。页面可以粗糙但业务流程、分支、异常、按钮、字段不能漏大块。\n\n### Vibe Coding 页面能不能直接上线?\n\n不能。Vibe Coding 页面只是需求原型,不直接进入生产。\n\n## 关联条目\n\n- [[阶段0_项目入口分级]]\n- [[阶段2_高保真模型与业务对象确认]]\n- [[角色职责矩阵]]\n- [[阶段交付物清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/阶段2.5_测试提前补漏",
"type": "document",
"name": "阶段2.5 测试提前补漏",
"filePath": "02_项目管理流程/阶段2.5_测试提前补漏.md",
"summary": "在开发前用测试视角发现需求漏洞。测试提前补漏,不只是上线前找 Bug。",
"tags": [
"02_项目管理流程",
"测试相关"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: process_stage\ntags: [项目管理流程, 阶段2.5, 测试, 需求补漏, 测试用例]\naliases: [测试提前补漏, 开发前测试, Gate 2.5, 测试用例初稿]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 测试\nupdated: 2026-05\n---\n\n# 阶段2.5 测试提前补漏\n\n## 核心目标\n\n在开发前用测试视角发现需求漏洞。测试提前补漏不只是上线前找 Bug。\n\n## 负责人\n\n- 测试\n\n## 输入\n\n- 高保真模型。\n- 高保真模型说明。\n- 统一业务对象模型。\n- 按钮行为矩阵。\n- 项目周期与版本确认。\n\n## 关键动作\n\n- 基于高保真模型先写测试用例初稿。\n- 从主流程、分支流程、权限、异常、数据、按钮行为视角检查遗漏。\n- 标记阻塞开发的问题。\n- 将需求漏洞回流给业务、产品、前端补齐。\n- 确认阻塞问题处理后再进入正式开发。\n\n## 输出/交付物\n\n- `11_测试用例初稿与需求补漏.md`\n- 需求补漏记录。\n- 阻塞问题清单。\n- 已关闭问题清单。\n\n## 检查清单\n\n- [ ] 是否已基于高保真模型编写测试用例初稿?\n- [ ] 是否覆盖主流程?\n- [ ] 是否覆盖分支流程?\n- [ ] 是否覆盖权限?\n- [ ] 是否覆盖异常场景?\n- [ ] 是否覆盖关键数据和状态?\n- [ ] 是否覆盖按钮行为?\n- [ ] 测试发现的阻塞问题是否已关闭?\n\n## 风险点\n\n- 测试只在上线前介入,导致需求漏洞在开发后才暴露。\n- 测试用例只覆盖主流程,漏掉权限、异常、分支和数据边界。\n- 阻塞问题没有关闭就进入开发。\n\n## Gate 2.5 通过标准\n\n测试补漏测试用例初稿发现的阻塞问题已处理。\n\n## 常见问题\n\n### 阶段2.5应该在什么时候发生?\n\n发生在高保真模型确认后、正式开发前。\n\n### 阶段2.5要产出什么?\n\n主要产出 `11_测试用例初稿与需求补漏.md`,并形成需求补漏记录、阻塞问题清单和已关闭问题清单。\n\n## 关联条目\n\n- [[阶段2_高保真模型与业务对象确认]]\n- [[阶段3_研发协作与正式开发]]\n- [[项目检查清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/阶段2_高保真模型与业务对象确认",
"type": "document",
"name": "阶段2 高保真模型与业务对象确认",
"filePath": "02_项目管理流程/阶段2_高保真模型与业务对象确认.md",
"summary": "把完整但粗糙的需求收敛成可开发模型。阶段2追求模型高效前端必须深度参与。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: process_stage\ntags: [项目管理流程, 阶段2, 高保真模型, 业务对象, 前端, 产品]\naliases: [高保真模型确认, 业务对象确认, Gate 2, 统一业务对象模型]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 前端 / 产品经理\nupdated: 2026-05\n---\n\n# 阶段2 高保真模型与业务对象确认\n\n## 核心目标\n\n把完整但粗糙的需求收敛成可开发模型。阶段2追求模型高效前端必须深度参与。\n\n## 负责人\n\n- 前端\n- 产品经理\n\n## 输入\n\n- 阶段1形成的主流程、页面结构、按钮盘点、分支流程、异常流程和 Vibe Coding 验证记录。\n\n## 关键动作\n\n- 将业务原型收敛为高保真模型。\n- 明确页面结构、交互、按钮行为和状态变化。\n- 确认业务对象、字段、状态和对象关系。\n- 明确 V1/V2 范围和项目周期。\n- 进行前端技术评审和技术预检。\n- 识别性能、安全、权限、并发、日志、可回滚等风险。\n\n## 输出/交付物\n\n- `07_高保真模型.html`\n- `07_高保真模型说明.md`\n- `08_项目周期与版本确认.md`\n- `09_前端技术评审.md`\n- `10_技术预检记录.md`\n- `10A_统一业务对象模型.md`\n- `10B_按钮行为矩阵.md`\n\n## 检查清单\n\n- [ ] 页面是否已经从粗糙原型收敛成可开发模型?\n- [ ] 按钮行为是否明确?\n- [ ] 业务对象、字段、状态、对象关系是否明确?\n- [ ] V1/V2 范围是否明确?\n- [ ] 是否完成前端技术评审?\n- [ ] 是否完成性能、安全、权限、并发、日志、可回滚预检?\n- [ ] 是否明确高保真模型确认后才允许正式开发?\n\n## 风险点\n\n- 前端介入太晚,导致页面、接口、数据库互相倒逼。\n- 高保真模型只画页面,没有确认业务对象和状态。\n- 没有按钮行为矩阵,开发和测试无法对齐。\n- 未提前识别性能、安全、权限、并发、日志、回滚风险。\n\n## Gate 2 通过标准\n\n高保真模型通过页面收敛、按钮行为、业务对象、状态、V1/V2 明确。\n\n## 常见问题\n\n### 什么时候需要前端提前参与?\n\n阶段2必须由前端深度参与。若需求涉及多页面、复杂交互、权限、状态流转、数据结构或组件复用前端应在需求收敛时提前参与。\n\n### 统一业务对象模型为什么重要?\n\n统一业务对象模型是页面、接口、数据库、测试、AI 提示词的共同基础。\n\n## 关联条目\n\n- [[阶段1_业务需求完整形成]]\n- [[阶段2.5_测试提前补漏]]\n- [[../01_业务流程/业务对象字典]]\n- [[阶段交付物清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/阶段3_研发协作与正式开发",
"type": "document",
"name": "阶段3 研发协作与正式开发",
"filePath": "02_项目管理流程/阶段3_研发协作与正式开发.md",
"summary": "基于高保真模型进行模块化、安全、可维护开发。研发阶段以代码质量、模块化、安全性、可维护性为中心。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: process_stage\ntags: [项目管理流程, 阶段3, 研发协作, 正式开发, 代码治理, 安全]\naliases: [研发协作, 正式开发, Gate 3, 开发联调]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 前端 / 后端 / 算法\nupdated: 2026-05\n---\n\n# 阶段3 研发协作与正式开发\n\n## 核心目标\n\n基于高保真模型进行模块化、安全、可维护开发。研发阶段以代码质量、模块化、安全性、可维护性为中心。\n\n## 负责人\n\n- 前端\n- 后端\n- 算法\n\n## 输入\n\n- 高保真模型。\n- 统一业务对象模型。\n- 按钮行为矩阵。\n- 测试用例初稿与需求补漏结果。\n- 技术预检记录。\n\n## 关键动作\n\n- 拆分研发任务与协作计划。\n- 进行前端、后端、算法技术实现对接。\n- 明确接口、数据库、权限、安全、日志和回滚方案。\n- 按代码治理与安全规范开发。\n- 记录开发问题与联调结果。\n- 治理 AI 生成代码,不能直接堆进生产。\n\n## 输出/交付物\n\n- `12_研发任务拆分与协作计划.md`\n- `13_技术实现对接.md`\n- `14_代码治理与安全规范.md`\n- `15_开发问题与联调记录.md`\n\n## 检查清单\n\n- [ ] 研发任务是否已拆分?\n- [ ] 前后端、数据库、权限、安全、主要流程是否联调完成?\n- [ ] 是否按统一业务对象模型设计接口和数据库?\n- [ ] 是否处理权限、安全、日志、可回滚?\n- [ ] AI 生成代码是否经过人工审查和治理?\n- [ ] 是否避免重复代码和不可维护堆叠?\n\n## 风险点\n\n- 开发直接从 Vibe Coding 原型开始,跳过高保真模型。\n- AI 生成代码未经治理直接进入生产。\n- 缺少模块边界、权限、安全、日志和回滚方案。\n- 前后端、数据库、测试使用的业务对象不一致。\n\n## Gate 3 通过标准\n\n开发联调通过前后端、数据库、权限、安全、主要流程联调完成。\n\n## 常见问题\n\n### 阶段3如何保证模块化、安全和可维护\n\n依赖统一业务对象模型、研发任务拆分、技术实现对接、代码治理与安全规范、开发问题与联调记录。AI 代码必须经过治理,不能直接堆进生产。\n\n## 关联条目\n\n- [[阶段2.5_测试提前补漏]]\n- [[阶段4_测试培训上线回流]]\n- [[阶段交付物清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/阶段4_测试培训上线回流",
"type": "document",
"name": "阶段4 测试培训上线回流",
"filePath": "02_项目管理流程/阶段4_测试培训上线回流.md",
"summary": "完成测试、培训、上线验收和问题回流。测试保证系统真实可用,并帮助业务人员正确使用。",
"tags": [
"02_项目管理流程",
"测试相关"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: process_stage\ntags: [项目管理流程, 阶段4, 测试, 培训, 上线, 回流]\naliases: [测试培训上线回流, 上线验收, Gate 4]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 测试 / 业务主管\nupdated: 2026-05\n---\n\n# 阶段4 测试培训上线回流\n\n## 核心目标\n\n完成测试、培训、上线验收和问题回流。测试保证系统真实可用并帮助业务人员正确使用。\n\n## 负责人\n\n- 测试\n- 业务主管\n\n## 输入\n\n- 开发联调完成的系统。\n- 测试用例。\n- 高保真模型和业务对象模型。\n- 开发问题与联调记录。\n\n## 关键动作\n\n- 进行正式测试。\n- 验证主流程、分支流程、权限、异常和数据。\n- 输出正式测试报告。\n- 将测试用例转成业务操作手册或内部培训材料。\n- 组织业务确认和上线验收。\n- 记录上线问题并回流需求池。\n\n## 输出/交付物\n\n- `16_正式测试报告.md`\n- `17_内部培训手册.md`\n- `18_上线验收记录.md`\n- `19_上线问题与回流需求.md`\n\n## 检查清单\n\n- [ ] 正式测试是否通过?\n- [ ] 主流程是否验证通过?\n- [ ] 分支流程是否验证通过?\n- [ ] 权限是否验证通过?\n- [ ] 异常和数据边界是否验证通过?\n- [ ] 内部培训手册是否完成?\n- [ ] 业务主管是否完成上线确认?\n- [ ] 上线问题是否记录并回流?\n\n## 风险点\n\n- 只测功能,不测权限、异常、数据和实际操作路径。\n- 没有培训材料,业务人员不会用。\n- 上线问题没有进入回流需求池。\n- 业务主管未验收就上线。\n\n## Gate 4 通过标准\n\n上线验收通过测试通过、业务确认、培训完成。\n\n## 常见问题\n\n### 上线前需要检查哪些事项?\n\n至少检查正式测试、主流程、分支流程、权限、异常、数据边界、内部培训手册、业务确认、上线问题回流机制。\n\n## 关联条目\n\n- [[阶段3_研发协作与正式开发]]\n- [[项目检查清单]]\n- [[阶段交付物清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/阶段交付物清单",
"type": "document",
"name": "阶段交付物清单",
"filePath": "02_项目管理流程/阶段交付物清单.md",
"summary": "- [[AI驱动内部系统开发流程_V3_总览]]",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: deliverable_index\ntags: [项目管理流程, 交付物, 文件清单]\naliases: [交付物清单, 文件结构, 产出物]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 阶段交付物清单\n\n## 完整版交付物\n\n| 阶段 | 交付物 |\n|---|---|\n| 阶段0 | `00_项目入口分级.md` |\n| 阶段1 | `01_主流程说明.md`、`02_日常操作页面结构.md`、`03_功能页面按钮盘点表.md`、`04_分支流程_XXX.md`、`05_异常流程_XXX.md`、`06_VibeCoding页面验证记录.md` |\n| 阶段2 | `07_高保真模型.html`、`07_高保真模型说明.md`、`08_项目周期与版本确认.md`、`09_前端技术评审.md`、`10_技术预检记录.md`、`10A_统一业务对象模型.md`、`10B_按钮行为矩阵.md` |\n| 阶段2.5 | `11_测试用例初稿与需求补漏.md` |\n| 阶段3 | `12_研发任务拆分与协作计划.md`、`13_技术实现对接.md`、`14_代码治理与安全规范.md`、`15_开发问题与联调记录.md` |\n| 阶段4 | `16_正式测试报告.md`、`17_内部培训手册.md`、`18_上线验收记录.md`、`19_上线问题与回流需求.md` |\n| 阶段5 | `20_技术债清单.md`、`21_业务原子能力沉淀清单.md`、`22_组件库与服务复用清单.md`、`23_AI开发上下文模板更新记录.md` |\n\n## 轻量版交付物\n\n| 阶段包 | 交付物 |\n|---|---|\n| 入口 | `00_项目入口分级.md` |\n| 需求 | `01_业务需求包.md` |\n| 模型 | `02_高保真模型包.md` |\n| 预检 | `03_项目版本与技术预检.md` |\n| 测试补漏 | `04_测试用例初稿与需求补漏.md` |\n| 研发 | `05_研发协作与技术实现包.md` |\n| 治理 | `06_代码治理与安全规范.md` |\n| 上线 | `07_测试培训上线包.md` |\n| 沉淀 | `08_技术债与能力沉淀包.md` |\n\n## 关联条目\n\n- [[AI驱动内部系统开发流程_V3_总览]]\n- [[项目检查清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:02_项目管理流程/项目检查清单",
"type": "document",
"name": "项目检查清单",
"filePath": "02_项目管理流程/项目检查清单.md",
"summary": "- [ ] 确认项目值得做。",
"tags": [
"02_项目管理流程"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: checklist\ntags: [项目管理流程, 检查清单, 门禁]\naliases: [项目门禁检查, 上线检查, 流程检查]\nsource: AI_驱动_内部系统开发流程_V3.docx\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 项目检查清单\n\n## Gate 0 项目入口\n\n- [ ] 确认项目值得做。\n- [ ] 确认项目类型S / M / L。\n- [ ] 确认走轻流程还是完整流程。\n- [ ] 确认业务主管和技术负责人。\n\n## Gate 1 需求完整\n\n- [ ] 主流程完整。\n- [ ] 分支流程完整。\n- [ ] 页面、按钮、字段大致完整。\n- [ ] 状态大致完整。\n- [ ] Vibe Coding 页面已验证。\n\n## Gate 2 高保真模型\n\n- [ ] 页面已经收敛。\n- [ ] 按钮行为明确。\n- [ ] 业务对象明确。\n- [ ] 状态明确。\n- [ ] V1/V2 明确。\n- [ ] 性能、安全、权限、并发、日志、可回滚已预检。\n\n## Gate 2.5 测试补漏\n\n- [ ] 测试用例初稿已完成。\n- [ ] 主流程、分支、权限、异常、数据、按钮行为已检查。\n- [ ] 阻塞开发的问题已处理。\n\n## Gate 3 开发联调\n\n- [ ] 前后端联调完成。\n- [ ] 数据库联调完成。\n- [ ] 权限和安全联调完成。\n- [ ] 主要流程联调完成。\n- [ ] AI 代码已治理。\n\n## Gate 4 上线验收\n\n- [ ] 正式测试通过。\n- [ ] 业务确认完成。\n- [ ] 培训完成。\n- [ ] 上线问题回流机制明确。\n\n## Gate 5 技术债治理\n\n- [ ] 技术债已分类。\n- [ ] 必须立即处理的已处理。\n- [ ] 可延后的进入技术债池。\n- [ ] 可复用组件已沉淀。\n- [ ] 可复用后端服务已沉淀。\n- [ ] AI 开发上下文模板已更新。\n\n## 关联条目\n\n- [[AI驱动内部系统开发流程_V3_总览]]\n- [[阶段交付物清单]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:04_Agent检索/关键词索引",
"type": "document",
"name": "关键词索引",
"filePath": "04_Agent检索/关键词索引.md",
"summary": "知识库文档。",
"tags": [
"04_Agent检索",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: keyword_index\ntags: [Agent, 关键词, 索引]\naliases: [关键词映射]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 关键词索引\n\n| 关键词 | 推荐检索文件 |\n|---|---|\n| 内部系统开发流程 | `02_项目管理流程/AI驱动内部系统开发流程_V3_总览.md` |\n| ERP 开发流程 | `02_项目管理流程/AI驱动内部系统开发流程_V3_总览.md` |\n| 项目入口 | `02_项目管理流程/阶段0_项目入口分级.md` |\n| 项目分级 | `02_项目管理流程/阶段0_项目入口分级.md` |\n| S 类 / M 类 / L 类 | `02_项目管理流程/阶段0_项目入口分级.md` |\n| 业务需求 | `02_项目管理流程/阶段1_业务需求完整形成.md` |\n| Vibe Coding | `02_项目管理流程/阶段1_业务需求完整形成.md` |\n| 高保真模型 | `02_项目管理流程/阶段2_高保真模型与业务对象确认.md` |\n| 业务对象 | `02_项目管理流程/阶段2_高保真模型与业务对象确认.md`、`01_业务流程/业务对象字典.md` |\n| 按钮行为 | `02_项目管理流程/阶段2_高保真模型与业务对象确认.md` |\n| 测试提前补漏 | `02_项目管理流程/阶段2.5_测试提前补漏.md` |\n| 测试用例初稿 | `02_项目管理流程/阶段2.5_测试提前补漏.md` |\n| 正式开发 | `02_项目管理流程/阶段3_研发协作与正式开发.md` |\n| 研发协作 | `02_项目管理流程/阶段3_研发协作与正式开发.md` |\n| 代码治理 | `02_项目管理流程/阶段3_研发协作与正式开发.md`、`02_项目管理流程/AI驱动内部系统开发流程_V3_总览.md` |\n| 上线验收 | `02_项目管理流程/阶段4_测试培训上线回流.md` |\n| 内部培训 | `02_项目管理流程/阶段4_测试培训上线回流.md` |\n| 问题回流 | `02_项目管理流程/阶段4_测试培训上线回流.md` |\n| 技术债 | `02_项目管理流程/AI驱动内部系统开发流程_V3_总览.md`、`02_项目管理流程/项目检查清单.md` |\n| 门禁 | `02_项目管理流程/项目检查清单.md` |\n| 交付物 | `02_项目管理流程/阶段交付物清单.md` |\n| 谁负责 | `02_项目管理流程/角色职责矩阵.md` |\n| 业务规则补充 | `03_规范与模板/业务规则与需求补充模板.md`、`04_Agent检索/知识库持续更新与验证流程.md` |\n| 需求补充 | `03_规范与模板/业务规则与需求补充模板.md`、`03_规范与模板/需求说明模板.md` |\n| 新增业务流程 | `03_规范与模板/业务规则与需求补充模板.md`、`03_规范与模板/业务流程梳理模板.md` |\n| 检索验证 | `04_Agent检索/知识库持续更新与验证流程.md`、`01_业务流程/业务补充验证记录.md` |\n| Agent 问答验证 | `04_Agent检索/知识库持续更新与验证流程.md`、`01_业务流程/业务补充验证记录.md` |\n",
"wikilinks": [],
"category": "layer-agent"
}
},
{
"id": "doc:04_Agent检索/同义词表",
"type": "document",
"name": "同义词表",
"filePath": "04_Agent检索/同义词表.md",
"summary": "知识库文档。",
"tags": [
"04_Agent检索",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: synonym_table\ntags: [Agent, 同义词, 检索]\naliases: [口语映射, 术语映射]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 同义词表\n\n| 用户说法 | 标准术语 | 推荐检索文件 |\n|---|---|---|\n| 提需求 | 业务需求完整形成 / 项目入口分级 | `阶段1_业务需求完整形成.md`、`阶段0_项目入口分级.md` |\n| 立项 | 项目入口分级 | `阶段0_项目入口分级.md` |\n| 原型 | Vibe Coding 页面 / 高保真模型 | `阶段1_业务需求完整形成.md`、`阶段2_高保真模型与业务对象确认.md` |\n| 页面模型 | 高保真模型 | `阶段2_高保真模型与业务对象确认.md` |\n| 字段字典 | 业务对象模型 | `阶段2_高保真模型与业务对象确认.md`、`业务对象字典.md` |\n| 开发前测试 | 测试提前补漏 | `阶段2.5_测试提前补漏.md` |\n| 测试先看 | 测试提前补漏 | `阶段2.5_测试提前补漏.md` |\n| 开发怎么开始 | 研发协作与正式开发 | `阶段3_研发协作与正式开发.md` |\n| 上线前要做什么 | 测试培训上线回流 / Gate 4 | `阶段4_测试培训上线回流.md`、`项目检查清单.md` |\n| 谁来做 | 角色职责 | `角色职责矩阵.md` |\n| 要交什么 | 阶段交付物 | `阶段交付物清单.md` |\n| 检查点 | 阶段门禁 / 项目检查清单 | `项目检查清单.md` |\n| AI 写的代码 | AI 代码治理 | `阶段3_研发协作与正式开发.md` |\n| 加一条业务规则 | 业务规则补充 | `业务规则与需求补充模板.md`、`知识库持续更新与验证流程.md` |\n| 补需求 | 需求补充 | `业务规则与需求补充模板.md`、`需求说明模板.md` |\n| 新规则怎么写 | 业务规则与需求补充 | `业务规则与需求补充模板.md` |\n| 怎么验证能不能搜到 | Agent 检索验证 | `知识库持续更新与验证流程.md`、`业务补充验证记录.md` |\n",
"wikilinks": [],
"category": "layer-agent"
}
},
{
"id": "doc:04_Agent检索/来源文件索引",
"type": "document",
"name": "来源文件索引",
"filePath": "04_Agent检索/来源文件索引.md",
"summary": "- 从原始 docx 更新流程时需要同步更新阶段文件、角色职责矩阵、交付物清单、检查清单、FAQ、关键词索引和同义词表。",
"tags": [
"04_Agent检索",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: source_index\ntags: [来源, 索引, Agent]\naliases: [来源索引, 原始文件]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 来源文件索引\n\n## 原始来源\n\n| 来源文件 | 路径 | 用途 | 状态 |\n|---|---|---|---|\n| AI_驱动_内部系统开发流程_V3.docx | `D:\\\\AIcoding\\\\WishFulfilled\\\\知识库\\\\AI_驱动_内部系统开发流程_V3.docx` | 项目管理流程权威来源 | active |\n\n## 拆解后的知识条目\n\n| 条目 | 来源 |\n|---|---|\n| `02_项目管理流程/AI驱动内部系统开发流程_V3_总览.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/阶段0_项目入口分级.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/阶段1_业务需求完整形成.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/阶段2_高保真模型与业务对象确认.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/阶段2.5_测试提前补漏.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/阶段3_研发协作与正式开发.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/阶段4_测试培训上线回流.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/角色职责矩阵.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/阶段交付物清单.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/项目检查清单.md` | AI_驱动_内部系统开发流程_V3.docx |\n| `02_项目管理流程/常见问题FAQ.md` | AI_驱动_内部系统开发流程_V3.docx |\n\n## 业务补充来源\n\n| 来源文件 | 路径 | 用途 | 状态 |\n|---|---|---|---|\n| 需求文档目录 | `05_需求文档/` | 持续存放新增业务需求、业务规则和需求变更文档 | active |\n| 需求文档索引.md | `05_需求文档/需求文档索引.md` | 登记新增需求文档及 Agent 检索验证状态 | active |\n| 业务规则与需求补充模板.md | `03_规范与模板/业务规则与需求补充模板.md` | 新增业务规则、需求、流程的标准模板 | active |\n| 知识库持续更新与验证流程.md | `04_Agent检索/知识库持续更新与验证流程.md` | 规范新增文档后的索引同步和 Agent 检索验证 | active |\n| 业务补充验证记录.md | `01_业务流程/业务补充验证记录.md` | 记录新增业务文档是否能被 Agent 检索并回答 | active |\n| 里程碑目录 | `06_里程碑/` | 存放里程碑计划、阶段评审和项目节点材料 | active |\n| 技术文档目录 | `07_技术文档/` | 存放架构、接口、数据模型、实现方案和技术决策 | active |\n| 测试相关目录 | `08_测试相关/` | 存放测试计划、测试用例、缺陷、验收和上线检查材料 | active |\n\n## 维护要求\n\n- 从原始 docx 更新流程时需要同步更新阶段文件、角色职责矩阵、交付物清单、检查清单、FAQ、关键词索引和同义词表。\n- 新增业务规则、需求或流程文档时,原始需求文档统一放入 `05_需求文档/`,并同步更新需求文档索引、业务规则索引、业务对象字典、关键词索引、同义词表和本来源文件索引。\n- 新增里程碑材料统一放入 `06_里程碑/`,并同步更新里程碑索引。\n- 新增技术材料统一放入 `07_技术文档/`,并同步更新技术文档索引。\n- 新增测试材料统一放入 `08_测试相关/`,并同步更新测试用例索引或对应测试记录。\n- Agent 回答项目管理流程问题时,应优先引用拆解后的 Markdown 文件。\n- Agent 回答具体业务规则和需求问题时,应优先引用 `05_需求文档/` 下的正式需求文档;稳定流程可再引用 `01_业务流程/` 下的业务流程条目。\n",
"wikilinks": [],
"category": "layer-agent"
}
},
{
"id": "doc:04_Agent检索/检索说明",
"type": "document",
"name": "Agent 检索说明",
"filePath": "04_Agent检索/检索说明.md",
"summary": "让 Agent 在回答业务流程和项目管理流程问题时,优先基于本地 Markdown 知识库检索,而不是凭空回答。",
"tags": [
"04_Agent检索",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: agent_retrieval_guide\ntags: [Agent, 检索, 规则]\naliases: [Agent检索说明, 检索规则]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# Agent 检索说明\n\n## 目标\n\n让 Agent 在回答业务流程和项目管理流程问题时,优先基于本地 Markdown 知识库检索,而不是凭空回答。\n\n## 检索优先级\n\n1. `05_需求文档/`:持续新增的业务需求、业务规则、需求变更和补充说明。\n2. `06_里程碑/`:项目节点、阶段计划、阶段评审和上线节奏。\n3. `07_技术文档/`:系统架构、数据模型、接口说明、实现方案和技术决策。\n4. `08_测试相关/`:测试计划、测试用例、缺陷记录、验收记录和上线检查。\n5. `02_项目管理流程/`:内部系统开发流程、阶段、角色、门禁、交付物、检查清单。\n6. `01_业务流程/`:真实业务流程、业务对象、业务规则。\n7. `04_Agent检索/`:关键词、同义词、来源索引、回答规则。\n8. `03_规范与模板/`:需要产出模板或文档时使用。\n\n## 问题类型与命中文件\n\n| 问题类型 | 优先文件 |\n|---|---|\n| 流程阶段 | `AI驱动内部系统开发流程_V3_总览.md`、各阶段文件 |\n| 角色职责 | `角色职责矩阵.md` |\n| 交付物 | `阶段交付物清单.md` |\n| 门禁/检查 | `项目检查清单.md` |\n| 常见问答 | `常见问题FAQ.md` |\n| 业务对象 | `01_业务流程/业务对象字典.md`、`阶段2_高保真模型与业务对象确认.md` |\n| 业务规则 | `05_需求文档/`、`05_需求文档/需求文档索引.md`、`01_业务流程/业务规则索引.md` |\n| 业务需求 | `05_需求文档/`、`05_需求文档/需求文档索引.md` |\n| 项目里程碑 | `06_里程碑/`、`06_里程碑/里程碑索引.md` |\n| 技术实现 | `07_技术文档/`、`07_技术文档/技术文档索引.md` |\n| 接口/数据模型 | `07_技术文档/接口说明模板.md`、具体接口文档、具体数据模型文档 |\n| 测试用例 | `08_测试相关/`、`08_测试相关/测试用例索引.md` |\n| 缺陷/验收/上线检查 | `08_测试相关/缺陷记录模板.md`、`08_测试相关/验收记录模板.md`、`08_测试相关/上线检查模板.md` |\n\n## 回答规则\n\n- 先回答结论,再展开依据。\n- 流程问题按“阶段、负责人、输入、动作、输出、检查点”组织。\n- 角色问题按“负责阶段、核心职责、典型产出”组织。\n- 交付物问题列出文件名。\n- 业务规则和需求问题优先检索 `05_需求文档/` 下的正式需求文档,再检索 `05_需求文档/需求文档索引.md`、`01_业务流程/业务规则索引.md`、`关键词索引.md` 和 `同义词表.md`。\n- 里程碑问题优先检索 `06_里程碑/` 和 `06_里程碑/里程碑索引.md`。\n- 技术问题优先检索 `07_技术文档/` 和 `07_技术文档/技术文档索引.md`。\n- 测试问题优先检索 `08_测试相关/` 和 `08_测试相关/测试用例索引.md`。\n- 必须注明来源文件名。\n- 如果知识库未明确记录,不要推测,应回答“知识库未明确记录”,并建议补充到具体文件。\n\n## 持续更新验证\n\n新增业务规则、需求或流程文档后按 [[知识库持续更新与验证流程]] 执行验证。\n新增文档应使用 `03_规范与模板/业务规则与需求补充模板.md`,正式需求文档保存到 `05_需求文档/`,验证结果记录到 `05_需求文档/需求文档索引.md` 和 `01_业务流程/业务补充验证记录.md`。\n\n## 引用格式\n\n建议在回答末尾使用\n\n> 来源:`02_项目管理流程/阶段2.5_测试提前补漏.md`\n",
"wikilinks": [],
"category": "layer-agent"
}
},
{
"id": "doc:04_Agent检索/知识库持续更新与验证流程",
"type": "document",
"name": "知识库持续更新与验证流程",
"filePath": "04_Agent检索/知识库持续更新与验证流程.md",
"summary": "确保业务规则、业务需求和流程补充后Agent 能通过文件检索命中新内容,并基于知识库给出可追溯回答。",
"tags": [
"04_Agent检索",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: validation_process\ntags: [Agent, 检索, 知识库更新, 验证流程]\naliases: [知识库更新验证, Agent检索验证, 补充文档验证流程]\nsource: manual\nstatus: active\nowner: 内部技术团队 / 产品经理\nupdated: 2026-05\n---\n\n# 知识库持续更新与验证流程\n\n## 1. 目标\n\n确保业务规则、业务需求和流程补充后Agent 能通过文件检索命中新内容,并基于知识库给出可追溯回答。\n\n## 2. 更新入口\n\n业务新增或修订时优先使用\n\n- `03_规范与模板/业务规则与需求补充模板.md`\n- `03_规范与模板/需求说明模板.md`\n- `03_规范与模板/业务流程梳理模板.md`\n\n补充后的正式需求文档统一保存到\n\n- `05_需求文档/`\n\n如果文档已经沉淀为稳定业务流程再同步拆解或引用到\n\n- `01_业务流程/`\n\n推荐命名\n\n```text\n业务域_规则或需求名称_YYYYMMDD.md\n```\n\n示例\n\n```text\n采购_供应商准入规则_20260526.md\n库存_出入库审批规则_20260526.md\n销售_客户授信额度规则_20260526.md\n```\n\n## 3. 标准更新流程\n\n### 步骤 1新增补充文档\n\n1. 复制 `业务规则与需求补充模板.md`。\n2. 保存到 `05_需求文档/`。\n3. 补全 Frontmatter`type`、`tags`、`aliases`、`source`、`status`、`owner`、`updated`。\n4. 补全正文中的业务规则、流程、异常、权限、验收口径和 Agent 检索字段。\n\n### 步骤 2更新索引\n\n新增业务文档后同步更新\n\n| 文件 | 更新内容 |\n|---|---|\n| `05_需求文档/需求文档索引.md` | 增加需求/规则名称、业务域、来源文件、状态和验证状态 |\n| `01_业务流程/业务规则索引.md` | 增加规则名称、业务域、适用场景、来源文件 |\n| `01_业务流程/业务对象字典.md` | 增加新增或变更的业务对象、字段、状态 |\n| `04_Agent检索/关键词索引.md` | 增加关键词到新文件的映射 |\n| `04_Agent检索/同义词表.md` | 增加口语问法与标准术语映射 |\n| `04_Agent检索/来源文件索引.md` | 登记新增知识条目来源 |\n\n### 步骤 3执行文件级检查\n\n检查项\n\n- 文件是否位于 `05_需求文档/`。\n- 文件名是否包含业务域、规则/需求名称、日期。\n- Frontmatter 是否完整。\n- 是否包含 `业务规则`、`业务流程`、`验收口径`、`Agent 检索字段`。\n- 索引文件是否已同步更新。\n\n### 步骤 4执行关键词检索验证\n\n用新增文档中的关键词、别名、口语问法进行检索。\n\n验证标准\n\n- 至少 1 个正式关键词能命中新文档。\n- 至少 1 个口语问法能通过 `同义词表.md` 或 `关键词索引.md` 定位到新文档。\n- 检索结果能定位到具体文件,而不是只命中模板。\n\n### 步骤 5执行 Agent 问答验证\n\n每次新增文档至少准备 3 类问题:\n\n| 类型 | 示例 | 通过标准 |\n|---|---|---|\n| 规则类 | `供应商准入有什么条件?` | 能回答规则条件、触发条件、处理结果 |\n| 流程类 | `供应商准入流程怎么走?` | 能按步骤回答主流程和分支流程 |\n| 异常类 | `供应商资料不完整怎么办?` | 能回答异常处理方式和负责人 |\n\nAgent 回答必须满足:\n\n1. 结论来自新增文档或已索引文件。\n2. 回答末尾注明来源文件名。\n3. 如果文档未记录,明确回答“知识库未明确记录”。\n4. 不得凭经验补充没有来源的业务规则。\n\n### 步骤 6记录验证结果\n\n在新增业务文档末尾的 `变更记录` 或单独验证记录中记录:\n\n| 日期 | 验证问题 | 是否命中 | 来源文件 | 结果 | 待补充 |\n|---|---|---|---|---|---|\n| | | 是/否 | | 通过/失败 | |\n\n## 4. 验证用例模板\n\n复制以下内容到新增业务文档的 `Agent 检索字段` 或验证记录中:\n\n```markdown\n## Agent 检索验证\n\n| 编号 | 用户问题 | 期望命中文件 | 期望答案要点 | 实际结果 | 状态 |\n|---|---|---|---|---|---|\n| Q1 | | | | | 未验证 |\n| Q2 | | | | | 未验证 |\n| Q3 | | | | | 未验证 |\n```\n\n## 5. 通过/失败判定\n\n### 通过\n\n- 新文档能被关键词检索到。\n- Agent 能引用新文档回答至少 3 个验证问题。\n- 回答没有明显幻觉。\n- 来源文件引用正确。\n\n### 失败\n\n出现任一情况视为失败\n\n- 新文档只保存了,但没有更新关键词索引或同义词表。\n- Agent 命中了旧文件,未命中新文档。\n- Agent 回答没有引用来源。\n- Agent 编造了文档中不存在的业务规则。\n- 问题能检索到模板,但不能检索到正式业务文档。\n\n失败后处理\n\n1. 补充 `aliases`、`tags`、推荐关键词和同义词。\n2. 更新 `关键词索引.md` 和 `同义词表.md`。\n3. 将标准问答补充到新增文档的 `Agent 检索字段`。\n4. 重新执行验证。\n\n## 6. Agent 验证提示词\n\n```text\n请只基于 D:\\AIcoding\\WishFulfilled\\知识库\\如愿知识库 下的 Markdown 文件回答。\n优先检索 05_需求文档、01_业务流程、02_项目管理流程、04_Agent检索。\n如果知识库没有明确记录请回答“知识库未明确记录”并说明建议补充到哪个文件。\n回答末尾必须列出来源文件。\n现在验证问题是{用户问题}\n```\n",
"wikilinks": [],
"category": "layer-agent"
}
},
{
"id": "doc:04_Agent检索/问答提示词",
"type": "document",
"name": "问答提示词",
"filePath": "04_Agent检索/问答提示词.md",
"summary": "你是如愿内部知识库问答 Agent。你必须优先检索本地 Markdown 知识库,再回答业务流程、项目管理流程、角色职责、交付物、检查清单和模板相关问题。",
"tags": [
"04_Agent检索",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: agent_prompt\ntags: [Agent, 提示词, 问答]\naliases: [Agent提示词, 知识库问答Prompt]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 问答提示词\n\n## 系统提示词\n\n你是如愿内部知识库问答 Agent。你必须优先检索本地 Markdown 知识库,再回答业务流程、项目管理流程、角色职责、交付物、检查清单和模板相关问题。\n\n回答要求\n\n1. 不要凭空编造知识库未记录的信息。\n2. 优先检索 `02_项目管理流程` 和 `01_业务流程`。\n3. 流程类问题按阶段、负责人、输入、关键动作、输出、检查点回答。\n4. 角色类问题优先检索 `角色职责矩阵.md`。\n5. 交付物类问题优先检索 `阶段交付物清单.md`。\n6. 门禁和检查类问题优先检索 `项目检查清单.md`。\n7. 每次回答末尾必须注明来源文件。\n8. 如果没有明确答案,回答“知识库未明确记录”,并说明建议补充到哪个文件。\n\n## 用户问题改写规则\n\n- “提需求”可映射为“项目入口分级”或“业务需求完整形成”。\n- “开发前测试”可映射为“阶段2.5 测试提前补漏”。\n- “原型”可映射为“Vibe Coding 页面”或“高保真模型”,需结合上下文区分。\n- “上线前检查”可映射为“Gate 4 上线验收”和“项目检查清单”。\n- “谁负责”优先查角色职责矩阵。\n\n## 标准回答模板\n\n结论\n\n要点\n\n1. 阶段/角色:\n2. 输入:\n3. 关键动作:\n4. 输出:\n5. 检查点:\n\n来源\n",
"wikilinks": [],
"category": "layer-agent"
}
},
{
"id": "doc:05_需求文档/20260517_USER评价业务闭环_第三步_数据流与中间对象设计_v3",
"type": "document",
"name": "USER 评价业务闭环 — 第三步:数据流与中间对象设计 v3",
"filePath": "05_需求文档/20260517_USER评价业务闭环_第三步_数据流与中间对象设计_v3.md",
"summary": "USER 评价业务闭环 — 第三步:数据流与中间对象设计 v3 文件信息 文件名称: 20260517 USER评价业务闭环 第三步 数据流与中间对象设计 v3.md 项目路径: C:\\XCODE\\USER 当前版本: v3 最近更新: 2026 05 17 上游文档: 工作基线 v1.2 20260517 USER评价业务闭环主流程与后续工作基线 v1.2",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "# USER 评价业务闭环 — 第三步:数据流与中间对象设计 v3\n\n## 文件信息\n\n- 文件名称:`20260517_USER评价业务闭环_第三步_数据流与中间对象设计_v3.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 当前版本:`v3`\n- 最近更新:`2026-05-17`\n- 上游文档:\n - [工作基线 v1.2](20260517_USER评价业务闭环主流程与后续工作基线_v1.2.md) — 业务规则与额度口径\n - [共用能力图与渠道专属流程 v2.2](20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2.md) — 每个节点的 查/写/状态/提醒/拦截\n- 前置版本:\n - `数据流与中间对象需求_v1`Codex六层架构骨架\n - `数据流与中间对象设计_v1.1`Codex字段字典最全版\n - `第三步_数据流与中间表设计_v1`(字段级展开 + 流转时序)\n - `第三步_数据流与中间表设计_v2`(吸收 Codex 优点的合并版)\n- 合并策略:以 Codex v1.1 为主骨架(保留其完整字段字典和免评对象),补入 v2 的流转时序表、写入顺序图和快照策略。\n- 文件目的:作为第三步最终主稿,后续数据库物理设计、接口设计和页面点击读写设计均以此为准。\n\n---\n\n## 1. 第三步的目标\n\n第三步不再回答\"流程怎么走\",而是回答:\n\n1. 现有系统里已经有哪些数据可以复用。\n2. 为什么仅靠现有 `users / amazon_orders / review_plans / push_tasks / support_tickets / fraud_events` 不够。\n3. 必须新增哪些中间对象。\n4. 哪些是正式事务表,哪些只是快照,哪些可以先做成视图。\n5. 从需求形成到结果回流,数据怎样一层一层往下走。\n\n---\n\n## 2. 本步先给出的结论\n\n### 2.1 不能再只围绕单一账号建模\n\n后续所有关键判断都应围绕 **真实人**,而不是只看 JOYHUB ID / 邮箱 / 电话 / Amazon 账号 / 单次订单。JOYHUB 用户只是身份线索之一,真实人才是额度、历史、风险、跨渠道去重和客服上下文的主对象。\n\n### 2.2 现有表能承载业务记录,但承载不了跨流程判断\n\n既有表更接近\"某一模块自己的账\",但前两步已确认的新需求需要额外的中间层:真实人跨账号归并、每次互动重判、人群入选/排除解释、额度预占与跨渠道去重、客服上下文、评价提交与展示拆分、退款比对。\n\n### 2.3 第三步最重要的是把对象分层\n\n本文件把数据对象分为六层\n\n```\n源数据层 → 主实体层 → 桥接层 → 事件层 → 快照与决策层 → 结果回流层\n```\n\n---\n\n## 3. 数据设计原则\n\n| 原则 | 说明 |\n| --- | --- |\n| 先识别真实人,再做额度与风险 | 否则 4/4/12 规则都会被多账号绕开 |\n| 事件与快照分离 | 事件是原始事实,快照是某个时点的判断结果 |\n| 当前态与历史态分离 | 当前视图可重算,历史决策必须留痕 |\n| 计划、渠道、客服、风险状态分离 | 不能压成一个字段 |\n| 用户提交与平台展示分离 | 真实提交计额度Amazon 展示计计划完成 |\n| 能解释\"为什么\" | 入选、排除、拦截、转人工都要能追溯 |\n| 先复用现有对象,再补最小中间层 | 不为了建模漂亮重造全部旧表 |\n| 对敏感数据分层处理 | 原值、标准化值、哈希/指纹、脱敏展示值应区分 |\n\n---\n\n# 第一部分:现有数据源分析\n\n## 4. 现有数据源盘点\n\n| 数据源 | 当前可用内容 | 主要缺口 |\n| --- | --- | --- |\n| 现有 ERP 用户管理 | 用户 ID、用户名、注册时间、最近活跃、国家、性别、邮箱、绑定产品数、标签 | 仍是账号视角,不是真实人视角 |\n| APP / 用户数据库 | JOYHUB ID、邮箱、设备号、设备型号/类型、系统版本、APP版本、绑定玩具、活跃与点击行为 | 需要设备变更轨迹和与订单/客服联动 |\n| Amazon 订单 | 订单号、ASIN、站点、购买时间、订单状态、Profile ID、收件人姓名、收件地址等 | 需要标准化姓名/地址和收件人指纹 |\n| Amazon 评价/Listing | ASIN、评分、评价数、差评数、评价缺口、展示结果 | 用户真实提交与平台展示要拆成两条事实 |\n| 推送系统 | Push 计划、素材、任务、打开、点击、回复、投诉、退订 | IM/EDM/APP 语义不同,不能只用一套粗糙 push 结果 |\n| 客服/TEL | 工单、通话、售后、答应配合、问题处理 | 需要和上下文卡、风险复检、跟进状态联动 |\n| 黑名单/诈骗资料 | 黑名单、诈骗事件、双重退款、强弱关联 | 需要把风险信号与确认案件拆开 |\n| OA 返款/Amazon 退款 | 内部返款与 Amazon 退款 | 缺统一比对对象 |\n| JOYCOLLAB | KOC/KOL、内容、Code、点击、订单、转化、佣金 | 需要和 USER 计划/ASIN 结果打通 |\n\n### 4.1 Amazon 订单字段明细(结合表头.xlsx\n\n| 字段 | 主要用途 | 涉密 |\n| --- | --- | --- |\n| 订单号 | 订单核验、真实人关联、退款比对 | 是 |\n| 订单状态 | 判断是否撤销、退款、退货、换货 | - |\n| 买家姓名 / 买家邮箱 | 身份关联 | 是 |\n| 收件人 / 电话 | 真实人归并、风险判断 | 是 |\n| 地址 / 城市 / 州 / 邮编 | 收件人归并、同址异名识别 | 是 |\n| ASIN / MSKU / SKU / 品名 / 标题 | 产品匹配、计划归属 | - |\n| 订购日期 / 发货时间 / 结算时间 | 时序判断 | - |\n| 数量 / 单价 / 订单总金额 / 销售额 | 交易画像 | 是 |\n| 是否退款 / 退款总金额 | 双重退款检测 | 是 |\n| 请求评论状态 | 评价缺口判断 | - |\n| 店铺 / 国家 / 销售渠道 | 站点匹配 | - |\n| Order Item ID | 订单行级关联 | - |\n\n### 4.2 订单侧必须补的派生字段\n\n| 字段 | 说明 |\n| --- | --- |\n| `recipient_name_normalized` | 标准化后的收件人姓名 |\n| `recipient_address_normalized` | 标准化后的地址 |\n| `recipient_fingerprint` | 由标准化姓名+地址生成的稳定指纹 |\n| `address_fingerprint` | 仅地址指纹,用于识别同址异名 |\n\n---\n\n## 5. 全局数据流\n\n```mermaid\nflowchart LR\n subgraph S[\"源数据层\"]\n S1[\"现有ERP用户/标签/身份\"]\n S2[\"APP/设备/行为\"]\n S3[\"Amazon订单/评价/Listing\"]\n S4[\"IM/EDM/APP Push/TEL\"]\n S5[\"客服/工单/售后\"]\n S6[\"黑名单/OA返款/Amazon退款\"]\n S7[\"JOYCOLLAB\"]\n end\n\n subgraph M[\"主实体与桥接层\"]\n M1[\"真实人 person_profiles\"]\n M2[\"身份关联 person_identity_links\"]\n M3[\"订单/ASIN/计划/工单\"]\n M4[\"订单关联/路由/去重\"]\n end\n\n subgraph D[\"快照与决策层\"]\n D1[\"画像快照 person_feature_snapshots\"]\n D2[\"上下文卡 contact_context_snapshots\"]\n D3[\"额度台账/预占\"]\n D4[\"风险信号/风险案件\"]\n D5[\"人群快照/排除快照\"]\n D6[\"互动复检/路由决策\"]\n end\n\n subgraph E[\"事件层\"]\n E1[\"渠道事件\"]\n E2[\"客服/TEL事件\"]\n E3[\"退款事件\"]\n E4[\"评价提交事件\"]\n E5[\"免评执行事件\"]\n end\n\n subgraph R[\"结果回流层\"]\n R1[\"评价展示核验\"]\n R2[\"退款比对结果\"]\n R3[\"免评结果\"]\n R4[\"ASIN健康/计划完成\"]\n R5[\"绩效/审计/下一轮需求\"]\n end\n\n S1 & S2 & S3 --> M1\n S1 & S2 & S3 --> M2\n M1 & M2 & M3 --> D1\n M1 & M2 & M3 --> D2\n D1 --> D5\n D3 & D4 --> D5\n D5 --> D6\n D6 --> E1\n S4 --> E1\n S5 --> E2\n S6 --> E3\n E1 & E2 --> E4\n S7 --> E5\n E3 --> R2\n E4 --> R1\n E5 --> R3\n R1 & R2 & R3 --> R4\n R4 --> R5\n R5 --> M3\n```\n\n---\n\n# 第二部分:数据对象分层总表\n\n## 6. 对象分层总表\n\n| 分层 | 对象 | 说明 |\n| --- | --- | --- |\n| 源数据 | `users`、`devices`、`amazon_orders`、`asin_listings`、`push_tasks`、`support_tickets`、`fraud_events`、JOYCOLLAB 数据 | 现有或外部事实来源 |\n| 主实体 | `person_profiles`、`request_tickets`、`review_plans`、`exemption_plans`、`risk_cases`、`blacklist_entities` | 核心业务主体 |\n| 桥接 | `person_identity_links`、`user_order_links`、`plan_task_links`、`channel_route_decisions`、`channel_dedup_records` | 跨主体关系 |\n| 事件 | `im_interaction_records`、`im_flow_tags`、`edm_message_events`、`app_touch_events`、`tel_call_records`、`review_submission_records`、`amazon_refund_records`、`oa_refund_records`、`support_assignment_logs` | 不可丢失的事实 |\n| 快照/决策 | `person_feature_snapshots`、`contact_context_snapshots`、`person_quota_ledgers`、`quota_reservations`、`audience_snapshots`、`audience_exclusions`、`interaction_recheck_records`、`edm_user_behavior_profiles`、`channel_route_decisions`、`channel_dedup_records` | 为某次决策保留当时依据 |\n| 结果/回流 | `review_display_checks`、`refund_match_results`、`exemption_result_snapshots`、`listing_health_snapshots`、`support_performance_snapshots` | 结果与复盘 |\n| 治理 | `interaction_audit_logs`、`manual_review_tasks`、`export_logs`、`audit_logs` | 审计、复核、导出 |\n\n---\n\n## 7. 现有对象如何处理\n\n### 7.1 可以直接复用\n\n| 现有对象 | 处理 |\n| --- | --- |\n| `request_tickets` | 保留,继续作为需求入口 |\n| `amazon_orders` | 保留,补标准化姓名/地址与收件人指纹 |\n| `asin_listings` | 保留,继续作为 ASIN/Listing 主档 |\n| `support_tickets` | 保留,拆出跟进、分派和风险状态辅助表 |\n| `fraud_events` | 保留,上游增加 `risk_signals`,下游衔接 `risk_cases/blacklist_entities` |\n| `audit_logs` | 保留 |\n\n### 7.2 需要扩展\n\n| 现有对象 | 需要补的能力 |\n| --- | --- |\n| `users` | 不再承担真实人主档,只保留 JOYHUB 账号层信息 |\n| `devices` | 补设备型号、系统版本、APP版本、首次/最近出现、设备变化 |\n| `review_plans` | 增加计划族或与 `exemption_plans` 分离 |\n| `push_tasks` | 被更细的渠道事件表补充 |\n| `support_tickets` | 增加与上下文卡、答应配合、风险复核、TEL 记录的关联 |\n\n### 7.3 必须新增\n\n| 对象 | 原因 |\n| --- | --- |\n| `person_profiles` | 真实人主档 |\n| `person_identity_links` | 多线索归并 |\n| `person_feature_snapshots` | 画像解释 |\n| `contact_context_snapshots` | 客服一屏上下文 |\n| `person_quota_ledgers` | 4/4/12 统一额度 |\n| `quota_reservations` | 并发占用与预警 |\n| `audience_snapshots` | 人群生成留痕 |\n| `audience_exclusions` | 排除原因留痕 |\n| `channel_route_decisions` | 渠道路由解释 |\n| `channel_dedup_records` | 跨渠道去重 |\n| `interaction_recheck_records` | 每次有效互动重新判断留痕 |\n| `refund_match_results` | 双重退款识别 |\n| `review_display_checks` | 评价展示拆分 |\n\n---\n\n# 第三部分P0/P1/P2 优先级\n\n## 8. P0没有它们主流程就不可靠\n\n| 对象 | 类型 | 关键用途 |\n| --- | --- | --- |\n| `person_profiles` | 主实体 | 真实人主档 |\n| `person_identity_links` | 桥接 | 账号、邮箱、电话、设备、Profile、收件人归并 |\n| `person_feature_snapshots` | 快照 | 画像依据 |\n| `contact_context_snapshots` | 快照 | 客服上下文卡 |\n| `person_quota_ledgers` | 台账 | 4/4/12 统一额度 |\n| `quota_reservations` | 台账 | 计划并发占用 |\n| `risk_signals` | 事件 | 风险原始信号 |\n| `risk_cases` | 主实体 | 风险案件 |\n| `blacklist_entities` | 主实体 | 确认拦截对象 |\n| `audience_snapshots` | 快照 | 某次人群生成结果 |\n| `audience_exclusions` | 快照 | 排除原因 |\n| `channel_route_decisions` | 决策 | 渠道路由 |\n| `channel_dedup_records` | 决策 | 跨渠道去重 |\n| `interaction_recheck_records` | 决策 | 每次有效互动重判 |\n\n## 9. P1主流程可走但没有它们会粗糙且难复盘\n\n| 对象 | 类型 | 关键用途 |\n| --- | --- | --- |\n| `im_interaction_records` | 事件 | IM 细节 |\n| `im_flow_tags` | 事件/派生 | IM 流程流转 |\n| `edm_message_events` | 事件 | EDM 打开/点击/回复/退订 |\n| `edm_user_behavior_profiles` | 快照 | EDM 画像 |\n| `app_touch_events` | 事件 | APP Push 触达 |\n| `tel_call_records` | 事件 | 电话全记录 |\n| `support_followups` | 事务 | 答应配合跟进 |\n| `support_assignment_logs` | 事件 | 分配与升级 |\n| `review_submission_records` | 事件 | 用户真实提交评价 |\n| `review_display_checks` | 结果 | Amazon 展示核验 |\n| `exemption_plans` | 主实体 | 免评计划 |\n| `exemption_plan_tasks` | 事务 | 免评任务 |\n| `creator_content_records` | 事件 | KOC/KOL 内容 |\n| `exemption_result_snapshots` | 结果 | 免评结果 |\n| `amazon_refund_records` | 事件 | Amazon 退款 |\n| `oa_refund_records` | 事件 | OA 返款 |\n| `refund_match_results` | 结果 | 双重退款比对 |\n\n## 10. P2管理、效率与治理增强\n\n| 对象 | 类型 | 关键用途 |\n| --- | --- | --- |\n| `attendance_records` | 事务 | 出勤 |\n| `shift_schedules` | 事务 | 排班 |\n| `support_goal_records` | 事务 | 目标 |\n| `support_performance_snapshots` | 快照 | 绩效 |\n| `manual_review_tasks` | 事务 | 人工复核 |\n| `interaction_audit_logs` | 审计 | 高敏动作审计 |\n\n---\n\n# 第四部分:完整字段字典\n\n## 11. 真实人与身份层\n\n### 11.1 `person_profiles`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `person_id` | PK | 真实人唯一标识 |\n| `created_at` | datetime | 首次识别时间 |\n| `updated_at` | datetime | 最近归并更新时间 |\n| `merge_confidence` | enum | 高/中/低 |\n| `status` | enum | 正常/观察中/已确认风险 |\n| `primary_country` | string | 当前主要国家 |\n| `primary_language` | string | 当前主要语言 |\n| `latest_active_at` | datetime | 最近活跃时间 |\n| `lifetime_review_submitted_count` | int | 累计真实提交评价数(跨账号合并) |\n| `current_risk_level` | enum | 当前风险等级 |\n\n### 11.2 `person_identity_links`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `link_id` | PK | 关联记录 ID |\n| `person_id` | FK → person_profiles | 所属真实人 |\n| `identity_type` | enum | JOYHUB_ID / EMAIL / PHONE / DEVICE / AMAZON_PROFILE / NAME_ADDRESS / PAYMENT / ORDER |\n| `identity_value_hash` | string | 匹配索引 |\n| `identity_value_encrypted` | string | 仅在必要时保存的加密原值 |\n| `link_strength` | enum | 强/弱 |\n| `confidence_score` | decimal | 归并置信度 |\n| `evidence_summary` | text | 命中依据摘要 |\n| `first_seen_at` | datetime | 首次发现时间 |\n| `last_seen_at` | datetime | 最近确认时间 |\n| `source_type` | enum | AMAZON_ORDER / JOYHUB / MANUAL / TEL / EMAIL / CS_TICKET |\n| `is_active` | bool | 是否仍有效 |\n\n### 11.3 归并口径\n\n| 场景 | 数据处理 |\n| --- | --- |\n| 标准化后姓名+地址完全一致 | 直接归并到同一真实人link_strength=STRONG |\n| 地址一致但姓名不同 | 记录弱关联,不直接合并 |\n| 多个线索交叉命中 | 形成候选归并,记录证据和置信度 |\n| 只有单个弱线索 | 不做直接归并,只写风险信号 |\n\n### 11.4 `contact_context_snapshots`\n\n| 字段组 | 字段 | 来源 |\n| --- | --- | --- |\n| 快照元数据 | `snapshot_id`、`person_id`、`snapshot_at`、`trigger_event` | 系统 |\n| 当前身份 | `joyhub_ids[]`、`emails[]`、`phones[]`、`devices[]`、`amazon_profile_ids[]` | 身份关联 |\n| 归并摘要 | `standardized_name_address`、`linked_person_count`、`merge_confidence` | 真实人/身份关联 |\n| 历史交易 | `total_orders`、`last_order_at`、`total_refunds`、`total_oa_refunds`、`target_asin_purchases[]` | 订单/返款 |\n| 历史服务 | `total_tickets`、`last_ticket_at`、`total_calls`、`last_call_at`、`open_promises[]` | 工单/电话 |\n| 历史风险 | `blacklist_hits`、`strong_associations`、`weak_associations`、`fraud_cases`、`double_refund_flags` | 风险层 |\n| 当前设备 | `device_count`、`latest_device_model`、`app_version`、`recent_device_change` | APP/设备 |\n| 触达历史 | `im_recent[]`、`edm_recent[]`、`app_recent[]`、`tel_recent[]` | 渠道事件 |\n\n---\n\n## 12. 画像、额度与人群层\n\n### 12.1 `person_feature_snapshots`\n\n| 字段组 | 代表字段 |\n| --- | --- |\n| 快照元数据 | `feature_snapshot_id`、`person_id`、`snapshot_at`、`feature_version` |\n| 基础画像 | `country`、`marketplace`、`language`、`gender`、`age_band`、`registered_at` |\n| 产品关系 | `bound_toy_count`、`bound_categories[]`、`target_product_relation` |\n| 交易画像 | `total_orders`、`last_order_at`、`purchase_frequency`、`bought_target_asin` |\n| 行为画像 | `activity_score`、`open_rate`、`click_rate`、`reply_rate`、`review_rate`、`cooperation_rate` |\n| 触达画像 | `im_reachable`、`edm_reachable`、`app_reachable`、`tel_reachable`、`last_touch_at` |\n| 风险画像 | `risk_level`、`blacklist_hit`、`strong_link_count`、`weak_link_count`、`refund_anomaly_flag` |\n| 计划画像 | `joined_plan_types[]`、`last_plan_result`、`lifetime_review_submitted_count` |\n\n### 12.2 三类画像用途\n\n| 用途 | 说明 | 示例 |\n| --- | --- | --- |\n| **硬过滤** | 决定能不能进入人群池 | 黑名单、退订、强关联、超额、站点不符 |\n| **匹配条件** | 决定适不适合当前计划 | 国家、性别、年龄段、绑定玩具、是否买过目标 ASIN |\n| **排序权重** | 决定优先触达谁 | 活跃度、历史配合率、最近互动、打开/点击行为 |\n\n### 12.3 `person_quota_ledgers`\n\n> **HANDOFF用户运营核心控制规则。** \"4+4+12\"全部按真实人统计,跨所有关联账号合并计算。一个人不管有几个 JOYHUB ID、几个 Amazon 账号——只要归并到同一个真实人,都受同一套额度控制。\n>\n> 示例:真实人关联 3 个 JOYHUB IDA/B/CA 上提交 5 个 + B 上提交 4 个 + C 上提交 3 个 = 累计 12**全部账号停回评/测评,后续仅免评。**\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `ledger_id` | PK | 台账记录 ID |\n| `person_id` | FK → person_profiles | 真实人 |\n| `period_key` | string | 自然月,如 `2026-05` |\n| `quota_type` | enum | MONTHLY_REVIEW / MONTHLY_EXEMPTION / LIFETIME_REVIEW |\n| `quota_limit` | int | 4 / 4 / 12 |\n| `used` | int | 已完成 |\n| `in_progress` | int | 进行中 |\n| `reserved` | int | 已预占 |\n| `available` | int | 剩余可用 = limit - used - in_progress - reserved |\n| `updated_at` | datetime | 最近更新 |\n\n### 12.4 `quota_reservations`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `reservation_id` | PK | 预占记录 |\n| `person_id` | FK | 真实人 |\n| `plan_id` | FK | 关联计划 |\n| `quota_type` | enum | 测评/免评 |\n| `reserved_count` | int | 预占数量 |\n| `reserved_at` | datetime | 预占时间 |\n| `expires_at` | datetime | 过期释放时间 |\n| `status` | enum | 已预占/已使用/已释放/已过期 |\n\n### 12.5 `audience_snapshots`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `snapshot_id` | PK | 人群快照 ID |\n| `plan_id` | FK | 计划 |\n| `batch_id` | string | 生成人群批次 |\n| `person_id` | FK | 真实人 |\n| `match_score` | decimal | 匹配得分 |\n| `match_reasons` | JSON | 命中画像条件 |\n| `quota_status` | enum | 充足/预警/超限 |\n| `risk_status` | enum | 正常/弱风险/强风险 |\n| `priority_rank` | int | 触达优先级 |\n| `feature_snapshot_id` | FK | 当时引用的画像快照 |\n| `snapshot_at` | datetime | 快照时间 |\n\n### 12.6 `audience_exclusions`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `exclusion_id` | PK | 排除记录 |\n| `plan_id` | FK | 计划 |\n| `batch_id` | string | 批次 |\n| `person_id` | FK | 真实人 |\n| `exclusion_reason` | enum | BLACKLIST / UNSUBSCRIBED / QUOTA_EXCEEDED / FREQ_EXCEEDED / OPEN_TICKET / WRONG_COUNTRY / STRONG_RISK |\n| `excluded_at` | datetime | 排除时间 |\n\n### 12.7 为什么一定需要这些中间表\n\n| 对象 | 如果没有会怎样 |\n| --- | --- |\n| `person_feature_snapshots` | 无法解释当时的画像依据 |\n| `audience_snapshots` | 无法复盘某次计划到底选中了谁 |\n| `audience_exclusions` | 无法解释为什么用户没被选中 |\n| `person_quota_ledgers` | 4/4/12 规则无法跨账号统一计算 |\n| `quota_reservations` | 多个计划并发时会重复占用同一人额度 |\n\n---\n\n## 13. 路由与互动复检层\n\n### 13.1 `channel_route_decisions`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `route_decision_id` | PK | 路由决策 ID |\n| `plan_id` | FK | 计划 |\n| `batch_id` | string | 人群批次 |\n| `person_id` | FK | 真实人 |\n| `candidate_channels` | JSON | 候选渠道 |\n| `selected_channel` | enum | 实际选中渠道 |\n| `excluded_channels` | JSON | 被排除渠道及原因 |\n| `decision_factors` | JSON | 活跃、绑定、可达性、工单、额度、风险 |\n| `decided_at` | datetime | 决策时间 |\n\n### 13.2 `channel_dedup_records`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `dedup_id` | PK | 去重记录 |\n| `person_id` | FK | 真实人 |\n| `plan_id` | FK | 计划 |\n| `selected_channel` | enum | 保留渠道 |\n| `suppressed_channels` | JSON | 被抑制渠道 |\n| `reason` | text | 去重原因 |\n| `created_at` | datetime | 去重时间 |\n\n### 13.3 `interaction_recheck_records`\n\n每次有效互动后记录本次重新做过哪些检查、结果是什么、为何继续或拦截。这是\"每次互动重判\"的落地证据。\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `recheck_id` | PK | 复检记录 |\n| `interaction_type` | enum | IM / EDM / APP / TEL / CS / REFUND |\n| `interaction_id` | string | 触发互动 |\n| `person_id` | FK | 真实人 |\n| `context_snapshot_id` | FK | 上下文快照 |\n| `quota_snapshot_ref` | string | 额度快照引用 |\n| `risk_case_id` | FK | 关联风险案件 |\n| `identity_result` | enum | 正常/新增关联/冲突 |\n| `history_result` | enum | 无变化/有更新 |\n| `quota_result` | enum | 充足/预警/超限 |\n| `risk_result` | enum | 正常/弱风险/强风险 |\n| `final_action` | enum | 继续/降级/转人工/暂停 |\n| `checked_at` | datetime | 复检时间 |\n\n---\n\n## 14. 风险层\n\n### 14.1 `risk_signals`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `signal_id` | PK | 风险信号 ID |\n| `person_id` | FK | 真实人 |\n| `signal_type` | enum | STRONG_HIT / WEAK_HIT / DOUBLE_REFUND / DEVICE_ANOMALY / ADDRESS_ANOMALY / BLACKLIST_HIT |\n| `hit_dimensions` | JSON | 命中维度 |\n| `source_event_id` | string | 触发事件 |\n| `created_at` | datetime | 产生时间 |\n| `resolved_at` | datetime | 解除时间 |\n| `resolution` | enum | 确认风险/误报/观察中 |\n\n### 14.2 `risk_cases`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `case_id` | PK | 风险案件 |\n| `person_id` | FK | 真实人 |\n| `source_type` | enum | CS_TICKET / TEL_CALL / PUSH_RESPONSE / REFUND / MANUAL |\n| `source_id` | string | 来源对象 |\n| `status` | enum | 待复核/复核中/确认诈骗/排除/已同步黑名单 |\n| `reviewer_id` | FK | 复核人 |\n| `reviewed_at` | datetime | 复核时间 |\n| `sync_status` | enum | 未同步/同步中/已同步/同步失败 |\n\n### 14.3 `blacklist_entities`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `blacklist_entity_id` | PK | 黑名单实体 |\n| `entity_type` | enum | 邮箱/电话/设备/Profile/收款信息/真实人 |\n| `entity_hash` | string | 匹配索引 |\n| `risk_level` | enum | 风险等级 |\n| `source_case_id` | FK | 来源案件 |\n| `synced_at` | datetime | 同步时间 |\n| `status` | enum | 生效/失效/待复核 |\n\n### 14.4 `manual_review_tasks`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `task_id` | PK | 人工复核任务 |\n| `person_id` | FK | 真实人 |\n| `source_type` | enum | 风险/额度/渠道/退款 |\n| `source_id` | string | 来源对象 |\n| `task_reason` | text | 复核原因 |\n| `status` | enum | 待处理/处理中/已完成/已关闭 |\n| `owner_id` | FK | 负责人 |\n| `created_at` | datetime | 创建时间 |\n\n---\n\n## 15. 渠道事件层\n\n### 15.1 `im_interaction_records`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `im_record_id` | PK | IM 记录 |\n| `person_id` | FK | 真实人 |\n| `joyhub_id` | FK | JOYHUB 账号 |\n| `plan_id` | FK | 关联计划 |\n| `action_type` | enum | PUSH_CARD / USER_SUBMIT / USER_REPLY / REMINDER / NOTIFICATION |\n| `card_type` | enum | REVIEW_CARD / EVALUATION_CARD / EXEMPTION_CARD / REMINDER_CARD |\n| `user_submitted_data` | JSON | 订单号/返款账号/截图链接(涉密加密存储) |\n| `order_validation_result` | enum | 通过/非测评单/非公司产品/格式错误/已撤销/已退款 |\n| `tag_changes` | JSON | 本次产生的标签变化 |\n| `created_at` | datetime | 事件时间 |\n\n### 15.2 `im_flow_tags`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `flow_tag_id` | PK | 流程标签记录 |\n| `person_id` | FK | 真实人 |\n| `tag_code` | string | 流程标签 |\n| `source_im_record_id` | FK | 来源 IM 事件 |\n| `effective_from` | datetime | 生效时间 |\n| `effective_to` | datetime | 失效时间 |\n\n### 15.3 `edm_message_events`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `edm_event_id` | PK | EDM 事件 |\n| `person_id` | FK | 真实人 |\n| `email_hash` | string | 邮箱索引 |\n| `campaign_id` | FK | 邮件任务 |\n| `event_type` | enum | SENT / DELIVERED / OPENED / CLICKED / REPLIED / BOUNCED / UNSUBSCRIBED / COMPLAINED |\n| `event_at` | datetime | 事件时间 |\n| `click_target` | string | 点击目标 |\n\n### 15.4 `edm_user_behavior_profiles`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `profile_id` | PK | EDM 行为画像 |\n| `person_id` | FK | 真实人 |\n| `latest_open_at` | datetime | 最近打开 |\n| `latest_reply_at` | datetime | 最近回复 |\n| `open_count_total` | int | 累计打开次数 |\n| `zero_open_last_3` | bool | 最近 3 次 0 打开 |\n| `zero_open_last_5` | bool | 最近 5 次 0 打开 |\n| `clicked_review_link_without_reply_hours` | int | 点击评论链接但未回复时长 |\n| `monthly_receive_count` | int | 当月收信次数 |\n| `mail_type_counts` | JSON | 各邮件类型发送次数 |\n| `mailbox_domain` | string | 邮箱后缀 |\n| `is_unsubscribed` | bool | 是否退订 |\n| `has_hard_bounce` | bool | 是否硬退信 |\n| `snapshot_at` | datetime | 快照时间 |\n\n### 15.5 `app_touch_events`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `app_event_id` | PK | APP 事件 |\n| `person_id` | FK | 真实人 |\n| `joyhub_id` | FK | JOYHUB 账号 |\n| `push_type` | enum | PUSH / IN_APP / BANNER / POPUP |\n| `event_type` | enum | SENT / DISPLAYED / CLICKED / DISMISSED / UNINSTALLED |\n| `landing_page` | string | 落地页 |\n| `event_at` | datetime | 事件时间 |\n\n### 15.6 `tel_call_records`\n\n| 字段 | 类型 | 说明 | 涉密 |\n| --- | --- | --- | --- |\n| `tel_record_id` | PK | 电话记录 | - |\n| `person_id` | FK | 真实人 | - |\n| `ticket_id` | FK | 关联工单 | - |\n| `call_direction` | enum | INBOUND/OUTBOUND | - |\n| `call_source` | enum | AMAZON_PAGE/MANUAL/PLAN_TASK/FOLLOWUP | - |\n| `phone_hash` | string | 电话索引 | 是 |\n| `call_at` | datetime | 通话时间 | - |\n| `duration_seconds` | int | 通话时长 | - |\n| `call_result` | enum | CONNECTED/NO_ANSWER/WRONG_NUMBER/DECLINED | - |\n| `has_after_sale_issue` | bool | 是否有售后 | - |\n| `issue_type` | enum | 问题类型 | - |\n| `issue_description` | text | 问题描述 | - |\n| `solution` | text | 处理方案 | - |\n| `is_resolved` | bool | 是否解决 | - |\n| `is_satisfied` | bool | 是否满意 | - |\n| `invited_review` | bool | 是否邀请回评/测评 | - |\n| `user_accepted` | bool | 是否接受 | - |\n| `agent_id` | FK | 客服 | - |\n\n---\n\n## 16. 客服层\n\n### 16.1 `support_tickets`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `ticket_id` | PK | 工单 |\n| `person_id` | FK | 真实人 |\n| `ticket_type` | enum | 差评跟进/测评跟进/回评跟进/紧急Listing/电话/售后/诈骗样品/KOL进度 |\n| `source` | enum | AMAZON_OP/BRAND_OP/SYSTEM_AUTO/PUSH_ESCALATION/USER_REPLY/TEL_INBOUND |\n| `source_id` | string | 来源对象 |\n| `ticket_status` | enum | 待分配/已分配/处理中/等待用户/等待内部/已解决/疑似诈骗/已关闭 |\n| `assigned_team` | FK | 客服组 |\n| `assigned_agent` | FK | 客服 |\n| `created_at` | datetime | 创建时间 |\n| `first_response_at` | datetime | 首次回复 |\n| `resolved_at` | datetime | 解决时间 |\n| `closed_at` | datetime | 关闭时间 |\n| `context_snapshot_id` | FK | 创建时上下文快照 |\n\n### 16.2 `support_followups`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `followup_id` | PK | 跟进 |\n| `ticket_id` | FK | 工单 |\n| `person_id` | FK | 真实人 |\n| `followup_status` | enum | 已答应配合/待分配/待提醒/等待提交/已提交评价/已提交反馈/超时/需再次联系/已关闭 |\n| `promised_at` | datetime | 承诺时间 |\n| `reminder_count` | int | 已提醒次数 |\n| `last_reminder_at` | datetime | 最近提醒 |\n| `deadline_at` | datetime | 截止时间 |\n| `submitted_at` | datetime | 实际提交 |\n| `submission_type` | enum | 评价/反馈 |\n\n### 16.3 `support_assignment_logs`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `assignment_log_id` | PK | 分配日志 |\n| `ticket_id` | FK | 工单 |\n| `from_owner_id` | FK | 原负责人 |\n| `to_owner_id` | FK | 新负责人 |\n| `assign_type` | enum | 自动分配/组长分派/转派/升级 |\n| `reason` | text | 原因 |\n| `created_at` | datetime | 分配时间 |\n\n### 16.4 `plan_task_links`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `link_id` | PK | 桥接 ID |\n| `plan_id` | FK | 计划 |\n| `task_type` | enum | IM_TASK/EDM_TASK/APP_TASK/TEL_TASK/CS_TASK/KOC_TASK |\n| `task_id` | string | 各渠道任务 ID |\n| `created_at` | datetime | 创建时间 |\n\n---\n\n## 17. 评价与退款结果层\n\n### 17.1 `review_submission_records`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `submission_id` | PK | 提交记录 |\n| `person_id` | FK | 真实人 |\n| `plan_id` | FK | 计划 |\n| `channel` | enum | IM/EDM/APP/TEL/CS |\n| `source_event_id` | string | 来源事件 |\n| `submitted_at` | datetime | 提交时间 |\n| `submission_evidence` | JSON | 截图/链接 |\n| `order_number_hash` | string | 订单索引 |\n| `quota_counted` | bool | 是否已计入 12提交时即为true |\n\n### 17.2 `review_display_checks`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `check_id` | PK | 核验记录 |\n| `submission_id` | FK | 提交记录 |\n| `asin` | string | ASIN |\n| `check_at` | datetime | 核验时间 |\n| `is_displayed` | bool | 是否展示 |\n| `is_verifiable` | bool | 是否可核验 |\n| `display_status` | enum | 展示确认/未展示/待核验 |\n| `plan_completed` | bool | 是否计入计划完成展示确认后才为true |\n\n### 17.3 `amazon_refund_records` / `oa_refund_records` / `refund_match_results`\n\n| 对象 | 关键字段 |\n| --- | --- |\n| `amazon_refund_records` | `refund_id`、`order_number_hash`、`asin`、`refund_amount`、`refund_at`、`refund_reason` |\n| `oa_refund_records` | `oa_refund_id`、`person_id`、`order_number_hash`、`refund_amount`、`refund_at` |\n| `refund_match_results` | `match_id`、`order_number_hash`、`amazon_refund_id`、`oa_refund_id`、`match_status`、`amount_diff`、`matched_at` |\n\n---\n\n## 18. 免评结果层\n\n### 18.1 `exemption_plans`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `exemption_plan_id` | PK | 免评计划 |\n| `source_request_id` | FK | 来源需求 |\n| `asin` | string | ASIN |\n| `marketplace` | string | 站点 |\n| `goal_type` | enum | 内容发布/引流/带货/权重 |\n| `target_metrics` | JSON | 目标点击、Code、订单、销量、权重 |\n| `status` | enum | 草稿/待审批/执行中/已完成/已关闭 |\n\n### 18.2 `exemption_plan_tasks`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `task_id` | PK | 免评任务 |\n| `exemption_plan_id` | FK | 免评计划 |\n| `task_type` | enum | KOC/KOL/IM/EDM/APP/内容协同 |\n| `owner_id` | FK | 负责人 |\n| `status` | enum | 待执行/执行中/已完成/异常 |\n| `created_at` | datetime | 创建时间 |\n\n### 18.3 `creator_content_records`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `creator_content_id` | PK | 内容记录 |\n| `exemption_task_id` | FK | 免评任务 |\n| `creator_id` | string | KOC/KOL |\n| `content_url` | string | 内容链接 |\n| `published_at` | datetime | 发布时间 |\n| `code_usage_count` | int | Code 使用量 |\n| `click_count` | int | 点击量 |\n| `order_count` | int | 带货订单 |\n| `sales_amount` | decimal | 销售额 |\n\n### 18.4 `exemption_result_snapshots`\n\n| 字段 | 类型 | 说明 |\n| --- | --- | --- |\n| `snapshot_id` | PK | 免评结果快照 |\n| `exemption_plan_id` | FK | 免评计划 |\n| `snapshot_at` | datetime | 快照时间 |\n| `content_published_count` | int | 内容发布数 |\n| `click_count` | int | 点击 |\n| `code_usage_count` | int | Code 使用 |\n| `order_count` | int | 订单 |\n| `sales_amount` | decimal | 销售额 |\n| `weight_change_summary` | text | 权重变化摘要 |\n\n---\n\n## 19. 客服管理支撑层\n\n| 对象 | 关键字段 |\n| --- | --- |\n| `attendance_records` | `record_id`、`agent_id`、`date`、`scheduled_hours`、`actual_hours`、`status` |\n| `shift_schedules` | `shift_id`、`team_id`、`agent_id`、`date`、`shift_start`、`shift_end`、`max_tickets` |\n| `support_goal_records` | `goal_id`、`agent_id`、`period_key`、`goal_type`、`target_value`、`current_value` |\n| `support_performance_snapshots` | `snapshot_id`、`agent_id`、`period_key`、`tickets_handled`、`messages_sent`、`first_response_avg_sec`、`rso_orders`、`rdo_orders`、`reviews_obtained`、`review_completion_rate`、`monthly_target`、`monthly_completed` |\n\n---\n\n## 20. 逻辑关系总图\n\n```mermaid\nerDiagram\n PERSON_PROFILES ||--o{ PERSON_IDENTITY_LINKS : \"归并\"\n PERSON_PROFILES ||--o{ PERSON_FEATURE_SNAPSHOTS : \"画像\"\n PERSON_PROFILES ||--o{ CONTACT_CONTEXT_SNAPSHOTS : \"上下文\"\n PERSON_PROFILES ||--o{ PERSON_QUOTA_LEDGERS : \"额度台账\"\n PERSON_PROFILES ||--o{ QUOTA_RESERVATIONS : \"额度预占\"\n PERSON_PROFILES ||--o{ RISK_SIGNALS : \"风险信号\"\n PERSON_PROFILES ||--o{ RISK_CASES : \"风险案件\"\n PERSON_PROFILES ||--o{ AUDIENCE_SNAPSHOTS : \"人群入选\"\n PERSON_PROFILES ||--o{ AUDIENCE_EXCLUSIONS : \"人群排除\"\n PERSON_PROFILES ||--o{ CHANNEL_ROUTE_DECISIONS : \"路由\"\n PERSON_PROFILES ||--o{ CHANNEL_DEDUP_RECORDS : \"去重\"\n PERSON_PROFILES ||--o{ INTERACTION_RECHECK_RECORDS : \"互动复检\"\n PERSON_PROFILES ||--o{ IM_INTERACTION_RECORDS : \"IM\"\n PERSON_PROFILES ||--o{ IM_FLOW_TAGS : \"IM标签\"\n PERSON_PROFILES ||--o{ EDM_MESSAGE_EVENTS : \"EDM\"\n PERSON_PROFILES ||--o{ EDM_USER_BEHAVIOR_PROFILES : \"EDM画像\"\n PERSON_PROFILES ||--o{ APP_TOUCH_EVENTS : \"APP\"\n PERSON_PROFILES ||--o{ TEL_CALL_RECORDS : \"TEL\"\n PERSON_PROFILES ||--o{ SUPPORT_TICKETS : \"工单\"\n PERSON_PROFILES ||--o{ SUPPORT_FOLLOWUPS : \"跟进\"\n PERSON_PROFILES ||--o{ REVIEW_SUBMISSION_RECORDS : \"评价提交\"\n PERSON_PROFILES ||--o{ MANUAL_REVIEW_TASKS : \"人工复核\"\n REVIEW_SUBMISSION_RECORDS ||--o{ REVIEW_DISPLAY_CHECKS : \"展示核验\"\n SUPPORT_TICKETS ||--o{ SUPPORT_ASSIGNMENT_LOGS : \"分配\"\n RISK_CASES ||--o{ BLACKLIST_ENTITIES : \"同步\"\n AMAZON_REFUND_RECORDS ||--o{ REFUND_MATCH_RESULTS : \"退款比对\"\n OA_REFUND_RECORDS ||--o{ REFUND_MATCH_RESULTS : \"退款比对\"\n EXEMPTION_PLANS ||--o{ EXEMPTION_PLAN_TASKS : \"任务\"\n EXEMPTION_PLAN_TASKS ||--o{ CREATOR_CONTENT_RECORDS : \"内容\"\n EXEMPTION_PLANS ||--o{ EXEMPTION_RESULT_SNAPSHOTS : \"结果\"\n REVIEW_PLANS ||--o{ PLAN_TASK_LINKS : \"计划任务\"\n SHIFT_SCHEDULES ||--o{ SUPPORT_TICKETS : \"排班分配\"\n ATTENDANCE_RECORDS }o--|| SHIFT_SCHEDULES : \"出勤关联\"\n```\n\n---\n\n# 第五部分:数据流转\n\n## 21. 关键流转时序\n\n| 阶段 | 读(查) | 写 | 说明 |\n| --- | --- | --- | --- |\n| 真实人识别 | person_identity_links已有线索 | person_profiles + person_identity_links新线索 | 每次互动都先跑 |\n| 画像生成 | person_profiles + 七组画像数据 + 各渠道事件 | person_feature_snapshots | 定期或触发式刷新 |\n| 人群生成 | person_feature_snapshots + person_quota_ledgers + risk_signals | audience_snapshots + audience_exclusions + quota_reservations | 快照当下状态 |\n| 路由决策 | audience_snapshots + 用户状态 + 渠道可达性 | channel_route_decisions + channel_dedup_records | 选定渠道+去重 |\n| 渠道发送 | channel_route_decisions + quota_reservations + risk_signals最新 | 各渠道事件表 | 发送前终校 |\n| 用户回应 | person_identity_links + person_quota_ledgers + risk_signals全部重读 | interaction_recheck_records + 渠道事件表更新 + im_flow_tags | 每次互动复检留痕 |\n| 评价提交 | person_quota_ledgers累计额度 | review_submission_records + person_quota_ledgers+1 | 提交即计12 |\n| Amazon 展示确认 | review_submission_records | review_display_checks + 计划完成度更新 | 展示才计完成 |\n| 退款/返款 | amazon_refund_records + oa_refund_records | refund_match_results + risk_signals如命中 | 双重退款检测 |\n\n## 22. 每次有效互动的标准写入顺序\n\n```mermaid\nflowchart LR\n A[\"互动发生\"] --> B[\"解析真实人<br/>读 person_identity_links\"]\n B --> C[\"生成/更新上下文卡<br/>写 contact_context_snapshots\"]\n C --> D[\"读取最新额度<br/>读 person_quota_ledgers\"]\n D --> E[\"执行风险判断<br/>读 risk_signals + blacklist\"]\n E --> F[\"写 interaction_recheck_records\"]\n F --> G{\"结果\"}\n G -->|正常| H[\"继续业务\"]\n G -->|预警| I[\"继续 + 高亮提醒\"]\n G -->|拦截| J[\"暂停 + 转人工/风险链路\"]\n```\n\n适用场景主动推送后回复、用户再次联系、补充订单号、客服回访、TEL 来电、退款/返款/再次触达前。\n\n---\n\n# 第六部分:设计决策与边界\n\n## 23. 对象分类\n\n| 类型 | 对象 | 原因 |\n| --- | --- | --- |\n| **正式事务表** | `person_profiles`、`person_identity_links`、`support_tickets`、`support_followups`、`risk_cases`、`review_submission_records`、`quota_reservations` | 需要增删改和业务状态流转 |\n| **不可变事件表** | `im_interaction_records`、`edm_message_events`、`app_touch_events`、`tel_call_records`、`amazon_refund_records`、`oa_refund_records`、`support_assignment_logs`、`im_flow_tags` | 事实一旦发生不应被覆盖 |\n| **快照表** | `person_feature_snapshots`、`contact_context_snapshots`、`audience_snapshots`、`support_performance_snapshots`、`exemption_result_snapshots` | 需要保留某一时点状态以便复盘 |\n| **决策表** | `channel_route_decisions`、`channel_dedup_records`、`interaction_recheck_records`、`refund_match_results` | 保存系统当时为什么这样判断 |\n| **聚合画像** | `edm_user_behavior_profiles` | 由事件聚合推导,定期刷新 |\n| **可先做视图** | 当前剩余额度、当前风险摘要、当前上下文卡、当前人群统计看板、当前绩效看板 | 可由底层对象实时聚合 |\n\n### 判断法\n\n| 问题 | 如果答案是\"是\" |\n| --- | --- |\n| 后续需要追责\"当时为什么这么做\"吗 | 建正式表或决策表 |\n| 数据后来会变,但历史判断不能跟着变吗 | 建快照 |\n| 只是为了当前页面展示吗 | 优先做视图 |\n| 一旦发生就不该被覆盖吗 | 建事件表 |\n\n## 24. 当前还不能只靠\"老表扩列\"解决的事情\n\n| 问题 | 为什么不能只扩列 |\n| --- | --- |\n| 一个真实人多个账号 | `users` 是账号级,不是人级 |\n| 每次互动重判 | 不是用户静态属性,而是一次次决策事实 |\n| 人群为什么入选/排除 | 不是计划表字段,而是某一批次结果 |\n| 多计划并发占额度 | 需要独立预占 |\n| 用户提交与展示拆分 | 不是一个布尔值能表达 |\n| 退款比对 | 需要两个来源事实加一个比对结果 |\n| 客服上下文 | 不是工单表本身,而是跨源聚合视图+快照 |\n\n## 25. 当前可以先不做成物理表的内容\n\n| 内容 | 当前建议 |\n| --- | --- |\n| 当前剩余额度 | 先由 `person_quota_ledgers + quota_reservations` 聚合成视图 |\n| 当前风险摘要 | 先由 `risk_signals + risk_cases + blacklist_entities` 聚合成视图 |\n| 当前客服上下文卡 | 前台读当前视图,关键接入动作时写 `contact_context_snapshots` |\n| 当前人群统计看板 | 先基于 `audience_snapshots / exclusions` 聚合 |\n| 当前绩效看板 | 先基于工单、通话、跟进事件聚合,后续再沉淀快照 |\n\n## 26. 外部数据引用原则\n\n| 外部数据 | 所属系统 | USER 当前做法 |\n| --- | --- | --- |\n| Amazon 订单全量明细 | Amazon API/报表 | 导入关键字段,不把 USER 做成全量订单数仓 |\n| JOYHUB 用户行为明细 | APP/用户系统 | 取摘要或增量同步,用于画像与上下文 |\n| 黑名单全量数据 | 黑名单系统 | 引用并缓存关键维度,不重复建设 |\n| JOYCOLLAB 全量内容与带货明细 | JOYCOLLAB | 同步 USER 闭环所需结果摘要 |\n| 财务/人事原始表 | 财务/人事系统 | 导入必要摘要,不替代源系统 |\n\n## 27. 涉密字段处理\n\n| 涉密字段 | 建议存储 | 建议查询 |\n| --- | --- | --- |\n| 订单号 | 哈希索引 + 加密原值 | 常规用哈希匹配 |\n| 邮箱 | 哈希索引 + 脱敏展示 | 普通页面不暴露明文 |\n| 电话 | 哈希索引 + 加密原值 | 仅授权角色可揭示 |\n| 姓名/地址 | 标准化值 + 哈希/指纹 | 归并与风险用指纹 |\n| 设备号 | 哈希索引 | 归并/风险用哈希 |\n| IP | 脱敏存储 | 仅用于弱关联 |\n| 收款信息 | 加密存储 | 财务/风险授权查看 |\n| 返款金额/提成 | 权限控制 | 财务角色优先 |\n\n## 28. 快照策略\n\n| 快照对象 | 生成时机 | 保留策略 |\n| --- | --- | --- |\n| `person_feature_snapshots` | 定期刷新 + 人群生成前触发 | 保留最近 N 版 + 每次人群生成引用的版本 |\n| `contact_context_snapshots` | 用户接入/工单创建/拨打前/风险升级 | 每次生成新快照,保留全量历史 |\n| `audience_snapshots` | 人群生成时 | 每次计划保留 |\n| `edm_user_behavior_profiles` | EDM 画像定时刷新 | 按刷新批次保留 |\n| `support_performance_snapshots` | 每日/每周/每月 | 按周期聚合保留 |\n| `exemption_result_snapshots` | 免评执行阶段性同步 | 按结果周期保留 |\n\n---\n\n# 第七部分:谁写谁读\n\n## 29. 读写矩阵\n\n| 对象 | 主要写入方 | 主要读取方 | 依赖它的动作 |\n| --- | --- | --- | --- |\n| `person_profiles` | 身份归并服务 | 用户运营、客服、风险 | 所有真实人级判断 |\n| `person_identity_links` | 身份归并服务 | 风险、客服、订单核验 | 真实人识别 |\n| `person_feature_snapshots` | 画像任务 | 人群生成、客服 | 画像筛选 |\n| `contact_context_snapshots` | 上下文聚合服务 | 客服、用户运营 | 接入处理 |\n| `person_quota_ledgers` | 额度服务 | 人群生成、渠道、客服 | 4/4/12 判断 |\n| `quota_reservations` | 人群/计划服务 | 渠道、额度服务 | 发送前拦截 |\n| `audience_snapshots` | 人群生成服务 | 计划、复盘 | 解释入选 |\n| `channel_route_decisions` | 路由服务 | 推送、复盘 | 选渠道 |\n| `interaction_recheck_records` | 互动复检服务 | 客服、风险、审计 | 决定继续/拦截 |\n| `review_submission_records` | 客服/IM/TEL | 额度、计划、客服 | 计入12 |\n| `review_display_checks` | 运营/系统 | 计划、ASIN看板 | 计入完成 |\n| `refund_match_results` | 退款比对服务 | 风险、客服、财务 | 拦截双重退款 |\n\n---\n\n## 30. 还需要确认但不阻塞第三步的事项\n\n| 事项 | 影响 |\n| --- | --- |\n| Amazon 订单同步频率最终是否为 10 分钟 | 影响订单/退款数据新鲜度 |\n| 黑名单系统最终通过 API、表格还是消息同步 | 影响 `blacklist_entities` 同步方式 |\n| Amazon Profile ID 是否稳定获取 | 影响强关联覆盖率 |\n| APP 设备型号能否拿到具体型号还是只到类型 | 影响客服展示颗粒度 |\n| 年龄字段来自注册资料还是推断 | 影响画像可信度 |\n| KOC/KOL 结果同步周期 | 影响免评结果快照频率 |\n\n---\n\n## 31. 第四步入口\n\n1. **把数据对象转成逻辑 ER 图**:以 §20 的 Mermaid ER 图为基础明确主键、外键、1对多/多对多关系,区分复用旧表和新增表。\n2. **按关键链路补接口读写**\n 1. 真实人识别与上下文链路\n 2. 人群/额度/路由链路\n 3. 互动复检/风险链路\n 4. 评价提交/展示与退款比对链路\n 5. 免评结果链路\n3. **回到页面,把每一个点击绑定到明确的数据读写**。\n\n---\n\n## 32. 本版结论\n\nv3 以 Codex v1.1 完整字段字典为主骨架,补入 v2 的流转时序表、写入顺序图和快照策略,形成最终统一主稿:\n\n1. 用 **真实人** 统一账号、订单、设备和风险\n2. 用 **画像快照** 解释人群生成\n3. 用 **额度台账+预占** 保护 4/4/12 规则(跨账号合并)\n4. 用 **路由决策+去重记录** 控制多渠道协同\n5. 用 **互动复检记录** 落实\"每次有效互动都重判\"\n6. 用 **退款比对结果** 识别双重退款\n7. 用 **评价提交记录+展示核验** 拆开用户事实和平台结果\n8. 用 **免评计划→任务→内容→结果快照** 让 KOC/KOL 闭环完整进入 USER 系统\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/README",
"type": "document",
"name": "需求文档",
"filePath": "05_需求文档/README.md",
"summary": "type: requirement inbox tags: 需求文档, 需求收集, 知识库更新, Agent aliases: 需求文档目录, 需求收集目录, 需求入口 source: manual status: active owner: 产品经理 / 业务主管 updated: 2026 05 需求文档 本目录用于集中存放后续持续补充的业务需求文档、业",
"tags": [
"05_需求文档",
"需求文档",
"需求收集",
"知识库更新",
"Agent"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: requirement_inbox\ntags: [需求文档, 需求收集, 知识库更新, Agent]\naliases: [需求文档目录, 需求收集目录, 需求入口]\nsource: manual\nstatus: active\nowner: 产品经理 / 业务主管\nupdated: 2026-05\n---\n\n# 需求文档\n\n本目录用于集中存放后续持续补充的业务需求文档、业务规则文档、流程补充文档和需求变更文档。\n\n## 使用方式\n\n1. 所有新增需求文档优先放入本目录。\n2. 建议使用 `03_规范与模板/需求说明模板.md` 或 `03_规范与模板/业务规则与需求补充模板.md` 创建文档。\n3. 文档确认有效后,同步更新业务流程索引和 Agent 检索索引。\n4. Agent 回答具体业务需求时,应优先检索本目录。\n\n## 推荐命名\n\n```text\n业务域_需求或规则名称_YYYYMMDD.md\n```\n\n示例\n\n```text\n采购_供应商准入规则_20260526.md\n库存_出入库审批规则_20260526.md\n销售_客户授信额度需求_20260526.md\n```\n\n## 文档状态\n\n每个需求文档建议在 Frontmatter 中维护 `status`\n\n| 状态 | 含义 |\n|---|---|\n| draft | 草稿,尚未确认 |\n| reviewing | 评审中 |\n| active | 已确认,可作为 Agent 回答依据 |\n| deprecated | 已废弃,仅归档参考 |\n\n## 必填内容\n\n每个需求文档至少包含\n\n- 需求背景\n- 适用范围\n- 涉及角色\n- 业务规则\n- 业务流程\n- 异常处理\n- 权限要求\n- 验收口径\n- Agent 检索字段\n- 变更记录\n\n## 索引维护\n\n新增或修改需求文档后需要同步更新\n\n- `05_需求文档/需求文档索引.md`\n- `01_业务流程/业务规则索引.md`\n- `01_业务流程/业务对象字典.md`\n- `04_Agent检索/关键词索引.md`\n- `04_Agent检索/同义词表.md`\n- `04_Agent检索/来源文件索引.md`\n\n## 验证流程\n\n新增需求文档后按 `04_Agent检索/知识库持续更新与验证流程.md` 执行验证,并将验证结果记录到:\n\n- `05_需求文档/需求文档索引.md`\n- `01_业务流程/业务补充验证记录.md`\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/需求文档索引",
"type": "document",
"name": "需求文档索引",
"filePath": "05_需求文档/需求文档索引.md",
"summary": "type: requirement index tags: 需求文档, 索引, Agent检索 aliases: 需求索引, 需求文档清单, 需求清单 source: manual status: active owner: 产品经理 / 业务主管 updated: 2026 05 需求文档索引 本文件记录 05 需求文档/ 下所有正式需求文档,供人工维护和",
"tags": [
"05_需求文档",
"需求文档",
"索引",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: requirement_index\ntags: [需求文档, 索引, Agent检索]\naliases: [需求索引, 需求文档清单, 需求清单]\nsource: manual\nstatus: active\nowner: 产品经理 / 业务主管\nupdated: 2026-05\n---\n\n# 需求文档索引\n\n本文件记录 `05_需求文档/` 下所有正式需求文档,供人工维护和 Agent 检索定位。\n\n## 需求文档清单\n\n| 编号 | 业务域 | 需求/规则名称 | 文件 | 状态 | 负责人 | 更新时间 | 验证状态 |\n|---|---|---|---|---|---|---|---|\n| | | | | | | | 未验证 |\n\n## Agent 检索关键词\n\n| 关键词/问法 | 标准术语 | 命中文件 | 答案要点 |\n|---|---|---|---|\n| | | | |\n\n## 维护规则\n\n1. 新增需求文档后,必须在“需求文档清单”新增一行。\n2. 每个需求文档至少维护 3 个可检索问法。\n3. `状态=active` 的文档可作为 Agent 回答依据。\n4. `status=draft/reviewing` 的文档只能作为草稿参考Agent 回答时需说明尚未确认。\n5. `status=deprecated` 的文档不得作为当前规则依据,只能说明历史背景。\n\n## 验证记录摘要\n\n| 日期 | 文件 | 验证问题数 | 通过数 | 失败数 | 结论 |\n|---|---|---:|---:|---:|---|\n| | | | | | |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:06_里程碑/README",
"type": "document",
"name": "里程碑",
"filePath": "06_里程碑/README.md",
"summary": "本目录用于存放项目阶段计划、里程碑节点、阶段评审记录和上线节奏说明。",
"tags": [
"06_里程碑",
"里程碑"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: milestone_home\ntags: [里程碑, 项目管理, 知识库]\naliases: [里程碑入口, 项目里程碑]\nsource: manual\nstatus: active\nowner: 项目经理\nupdated: 2026-05\n---\n\n# 里程碑\n\n本目录用于存放项目阶段计划、里程碑节点、阶段评审记录和上线节奏说明。\n\n## 二级入口\n\n- [[里程碑索引]]\n- [[阶段计划模板]]\n- [[里程碑评审记录]]\n\n## 存放内容\n\n- 项目启动节点\n- 需求评审节点\n- 原型/高保真确认节点\n- 开发启动节点\n- 测试准入节点\n- 上线检查节点\n- 复盘回流节点\n\n## 命名建议\n\n```text\n项目名_里程碑计划_YYYYMMDD.md\n项目名_阶段评审记录_YYYYMMDD.md\n```\n\n## 关联目录\n\n- 需求依据:[[../05_需求文档/README|需求文档]]\n- 流程依据:[[../02_项目管理流程/AI驱动内部系统开发流程_V3_总览|项目管理流程]]\n- 测试准入:[[../08_测试相关/README|测试相关]]\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:06_里程碑/里程碑索引",
"type": "document",
"name": "里程碑索引",
"filePath": "06_里程碑/里程碑索引.md",
"summary": "- 新增里程碑计划后,在本索引登记。",
"tags": [
"06_里程碑",
"里程碑"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: milestone_index\ntags: [里程碑, 索引, Agent检索]\naliases: [里程碑清单, 项目节点索引]\nsource: manual\nstatus: active\nowner: 项目经理\nupdated: 2026-05\n---\n\n# 里程碑索引\n\n## 里程碑文档清单\n\n| 项目 | 里程碑名称 | 文件 | 阶段 | 负责人 | 计划时间 | 当前状态 |\n|---|---|---|---|---|---|---|\n| | | | | | | |\n\n## Agent 检索关键词\n\n| 问法 | 标准术语 | 命中文件 | 答案要点 |\n|---|---|---|---|\n| | | | |\n\n## 维护规则\n\n- 新增里程碑计划后,在本索引登记。\n- 每个里程碑应关联至少一个需求文档或项目管理阶段。\n- Agent 回答项目进度、节点、准入问题时,应引用本索引或具体里程碑文件。\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:06_里程碑/里程碑评审记录",
"type": "document",
"name": "里程碑评审记录",
"filePath": "06_里程碑/里程碑评审记录.md",
"summary": "知识库文档。",
"tags": [
"06_里程碑",
"里程碑"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: milestone_review_log\ntags: [里程碑, 评审, 记录]\naliases: [阶段评审记录, 里程碑评审]\nsource: manual\nstatus: active\nowner: 项目经理\nupdated: 2026-05\n---\n\n# 里程碑评审记录\n\n| 日期 | 项目 | 阶段 | 评审结论 | 遗留问题 | 负责人 | 后续动作 |\n|---|---|---|---|---|---|---|\n| | | | | | | |\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:06_里程碑/阶段计划模板",
"type": "document",
"name": "阶段计划模板",
"filePath": "06_里程碑/阶段计划模板.md",
"summary": "- 需求文档:",
"tags": [
"06_里程碑",
"里程碑"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: milestone_template\ntags: [里程碑, 阶段计划, 模板]\naliases: [阶段计划, 里程碑模板]\nsource: manual\nstatus: active\nowner: 项目经理\nupdated: 2026-05\n---\n\n# 阶段计划模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 项目名称 | |\n| 关联需求 | |\n| 当前阶段 | |\n| 负责人 | |\n| 计划开始 | |\n| 计划结束 | |\n\n## 阶段目标\n\n\n## 输入材料\n\n- 需求文档:\n- 业务流程:\n- 技术文档:\n- 测试材料:\n\n## 关键任务\n\n| 任务 | 负责人 | 截止时间 | 输出物 | 状态 |\n|---|---|---|---|---|\n| | | | | |\n\n## 阶段交付物\n\n\n## 准入/准出条件\n\n\n## 风险与阻塞\n\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "doc:07_技术文档/README",
"type": "document",
"name": "技术文档",
"filePath": "07_技术文档/README.md",
"summary": "type: technical docs home tags: 技术文档, 架构, 开发, 知识库 aliases: 技术文档入口, 技术资料 source: manual status: active owner: 技术负责人 updated: 2026 05 技术文档 本目录用于存放系统架构、数据模型、接口说明、实现方案、部署说明和技术决策记录。 二级入",
"tags": [
"07_技术文档",
"技术文档",
"架构",
"开发",
"知识库"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: technical_docs_home\ntags: [技术文档, 架构, 开发, 知识库]\naliases: [技术文档入口, 技术资料]\nsource: manual\nstatus: active\nowner: 技术负责人\nupdated: 2026-05\n---\n\n# 技术文档\n\n本目录用于存放系统架构、数据模型、接口说明、实现方案、部署说明和技术决策记录。\n\n## 二级入口\n\n- [[技术文档索引]]\n- [[系统架构说明模板]]\n- [[接口说明模板]]\n- [[技术决策记录]]\n\n## 存放内容\n\n- 系统架构说明\n- 模块设计说明\n- 数据表/业务对象设计\n- API 接口说明\n- 权限与安全设计\n- 部署与配置说明\n- 技术决策记录\n\n## 命名建议\n\n```text\n系统或模块_技术方案_YYYYMMDD.md\n系统或模块_接口说明_YYYYMMDD.md\n系统或模块_数据模型_YYYYMMDD.md\n```\n\n## 关联目录\n\n- 需求依据:[[../05_需求文档/README|需求文档]]\n- 测试依据:[[../08_测试相关/README|测试相关]]\n- 里程碑:[[../06_里程碑/README|里程碑]]\n",
"wikilinks": [
"技术文档索引",
"系统架构说明模板",
"接口说明模板",
"技术决策记录",
"../05_需求文档/README|需求文档",
"../08_测试相关/README|测试相关",
"../06_里程碑/README|里程碑"
],
"category": "layer-technical"
}
},
{
"id": "doc:07_技术文档/技术决策记录",
"type": "document",
"name": "技术决策记录",
"filePath": "07_技术文档/技术决策记录.md",
"summary": "type: adr log tags: 技术文档, 技术决策, ADR aliases: 技术决策, ADR source: manual status: active owner: 技术负责人 updated: 2026 05 技术决策记录 日期 决策主题 背景 决策结论 影响范围 关联需求/技术文档",
"tags": [
"07_技术文档",
"技术文档",
"技术决策",
"ADR"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: adr_log\ntags: [技术文档, 技术决策, ADR]\naliases: [技术决策, ADR]\nsource: manual\nstatus: active\nowner: 技术负责人\nupdated: 2026-05\n---\n\n# 技术决策记录\n\n| 日期 | 决策主题 | 背景 | 决策结论 | 影响范围 | 关联需求/技术文档 |\n|---|---|---|---|---|---|\n| | | | | | |\n",
"wikilinks": [],
"category": "layer-technical"
}
},
{
"id": "doc:07_技术文档/技术文档索引",
"type": "document",
"name": "技术文档索引",
"filePath": "07_技术文档/技术文档索引.md",
"summary": "type: technical docs index tags: 技术文档, 索引, Agent检索 aliases: 技术索引, 技术资料清单 source: manual status: active owner: 技术负责人 updated: 2026 05 技术文档索引 技术文档清单 模块/系统 文档类型 文件 关联需求 负责人 更新时间 状态 Ag",
"tags": [
"07_技术文档",
"技术文档",
"索引",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: technical_docs_index\ntags: [技术文档, 索引, Agent检索]\naliases: [技术索引, 技术资料清单]\nsource: manual\nstatus: active\nowner: 技术负责人\nupdated: 2026-05\n---\n\n# 技术文档索引\n\n## 技术文档清单\n\n| 模块/系统 | 文档类型 | 文件 | 关联需求 | 负责人 | 更新时间 | 状态 |\n|---|---|---|---|---|---|---|\n| | | | | | | |\n\n## Agent 检索关键词\n\n| 问法 | 标准术语 | 命中文件 | 答案要点 |\n|---|---|---|---|\n| | | | |\n\n## 维护规则\n\n- 新增技术方案、接口说明、数据模型后,在本索引登记。\n- 技术文档必须关联需求文档或业务流程。\n- Agent 回答技术实现、接口、数据结构问题时,应优先检索本目录。\n",
"wikilinks": [],
"category": "layer-technical"
}
},
{
"id": "doc:07_技术文档/接口说明模板",
"type": "document",
"name": "接口说明模板",
"filePath": "07_技术文档/接口说明模板.md",
"summary": "type: api template tags: 技术文档, 接口, 模板 aliases: 接口模板, API说明模板 source: manual status: active owner: 技术负责人 updated: 2026 05 接口说明模板 基本信息 项目 内容 接口名称 所属模块 关联需求 负责人 状态 draft 接口用途 请求说明 字段 ",
"tags": [
"07_技术文档",
"技术文档",
"接口",
"模板"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: api_template\ntags: [技术文档, 接口, 模板]\naliases: [接口模板, API说明模板]\nsource: manual\nstatus: active\nowner: 技术负责人\nupdated: 2026-05\n---\n\n# 接口说明模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 接口名称 | |\n| 所属模块 | |\n| 关联需求 | |\n| 负责人 | |\n| 状态 | draft |\n\n## 接口用途\n\n\n## 请求说明\n\n| 字段 | 类型 | 必填 | 说明 | 示例 |\n|---|---|---|---|---|\n| | | | | |\n\n## 响应说明\n\n| 字段 | 类型 | 说明 | 示例 |\n|---|---|---|---|\n| | | | |\n\n## 业务规则\n\n\n## 异常码\n\n| 异常码 | 含义 | 处理方式 |\n|---|---|---|\n| | | |\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-technical"
}
},
{
"id": "doc:07_技术文档/系统架构说明模板",
"type": "document",
"name": "系统架构说明模板",
"filePath": "07_技术文档/系统架构说明模板.md",
"summary": "type: architecture template tags: 技术文档, 架构, 模板 aliases: 架构说明模板 source: manual status: active owner: 技术负责人 updated: 2026 05 系统架构说明模板 基本信息 项目 内容 系统/模块 关联需求 负责人 状态 draft 背景与目标 架构说明 模块",
"tags": [
"07_技术文档",
"技术文档",
"架构",
"模板"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: architecture_template\ntags: [技术文档, 架构, 模板]\naliases: [架构说明模板]\nsource: manual\nstatus: active\nowner: 技术负责人\nupdated: 2026-05\n---\n\n# 系统架构说明模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 系统/模块 | |\n| 关联需求 | |\n| 负责人 | |\n| 状态 | draft |\n\n## 背景与目标\n\n\n## 架构说明\n\n\n## 模块划分\n\n| 模块 | 职责 | 输入 | 输出 | 依赖 |\n|---|---|---|---|---|\n| | | | | |\n\n## 数据模型\n\n\n## 接口关系\n\n\n## 权限与安全\n\n\n## 异常与边界\n\n\n## 部署与配置\n\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-technical"
}
},
{
"id": "doc:08_测试相关/README",
"type": "document",
"name": "测试相关",
"filePath": "08_测试相关/README.md",
"summary": "type: testing home tags: 测试, 测试用例, 验收, 知识库 aliases: 测试相关入口, 测试文档 source: manual status: active owner: 测试负责人 updated: 2026 05 测试相关 本目录用于存放测试计划、测试用例、测试报告、缺陷记录、验收记录和上线检查材料。 二级入口 测试用例索",
"tags": [
"08_测试相关",
"测试相关",
"测试",
"测试用例",
"验收",
"知识库"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: testing_home\ntags: [测试, 测试用例, 验收, 知识库]\naliases: [测试相关入口, 测试文档]\nsource: manual\nstatus: active\nowner: 测试负责人\nupdated: 2026-05\n---\n\n# 测试相关\n\n本目录用于存放测试计划、测试用例、测试报告、缺陷记录、验收记录和上线检查材料。\n\n## 二级入口\n\n- [[测试用例索引]]\n- [[测试用例模板]]\n- [[测试计划模板]]\n- [[缺陷记录模板]]\n- [[验收记录模板]]\n- [[上线检查模板]]\n\n## 存放内容\n\n- 测试计划\n- 测试用例\n- 测试执行记录\n- 缺陷记录\n- 验收记录\n- 上线检查记录\n- 回归测试说明\n\n## 命名建议\n\n```text\n项目或模块_测试用例_YYYYMMDD.md\n项目或模块_测试计划_YYYYMMDD.md\n项目或模块_缺陷记录_YYYYMMDD.md\n项目或模块_验收记录_YYYYMMDD.md\n```\n\n## 关联目录\n\n- 需求依据:[[../05_需求文档/README|需求文档]]\n- 技术依据:[[../07_技术文档/README|技术文档]]\n- 里程碑依据:[[../06_里程碑/README|里程碑]]\n- 流程依据:[[../02_项目管理流程/阶段2.5_测试提前补漏|阶段2.5 测试提前补漏]]、[[../02_项目管理流程/阶段4_测试培训上线回流|阶段4 测试培训上线回流]]\n",
"wikilinks": [
"测试用例索引",
"测试用例模板",
"测试计划模板",
"缺陷记录模板",
"验收记录模板",
"上线检查模板",
"../05_需求文档/README|需求文档",
"../07_技术文档/README|技术文档",
"../06_里程碑/README|里程碑",
"../02_项目管理流程/阶段2.5_测试提前补漏|阶段2.5 测试提前补漏",
"../02_项目管理流程/阶段4_测试培训上线回流|阶段4 测试培训上线回流"
],
"category": "layer-testing"
}
},
{
"id": "doc:08_测试相关/上线检查模板",
"type": "document",
"name": "上线检查模板",
"filePath": "08_测试相关/上线检查模板.md",
"summary": "type: go live checklist template tags: 上线检查, 测试, 模板 aliases: 上线检查, 发布检查 source: manual status: active owner: 测试负责人 / 项目经理 updated: 2026 05 上线检查模板 基本信息 项目 内容 项目/模块 关联需求 关联里程碑 负责人 检查",
"tags": [
"08_测试相关",
"测试相关",
"上线检查",
"测试",
"模板"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: go_live_checklist_template\ntags: [上线检查, 测试, 模板]\naliases: [上线检查, 发布检查]\nsource: manual\nstatus: active\nowner: 测试负责人 / 项目经理\nupdated: 2026-05\n---\n\n# 上线检查模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 项目/模块 | |\n| 关联需求 | |\n| 关联里程碑 | |\n| 负责人 | |\n| 检查日期 | |\n\n## 上线前检查项\n\n| 检查项 | 负责人 | 结果 | 备注 |\n|---|---|---|---|\n| 需求已确认 | | | |\n| 测试用例已执行 | | | |\n| P0/P1 缺陷已关闭 | | | |\n| 用户培训已完成 | | | |\n| 回滚方案已确认 | | | |\n| 数据备份已确认 | | | |\n\n## 上线结论\n\n\n## 回滚条件\n\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "doc:08_测试相关/测试用例模板",
"type": "document",
"name": "测试用例模板",
"filePath": "08_测试相关/测试用例模板.md",
"summary": "type: test case template tags: 测试用例, 测试, 模板 aliases: 用例模板, 测试用例 source: manual status: active owner: 测试负责人 updated: 2026 05 测试用例模板 基本信息 项目 内容 项目/模块 关联需求 关联技术文档 测试负责人 状态 draft 测试范围 ",
"tags": [
"08_测试相关",
"测试相关",
"测试用例",
"测试",
"模板"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: test_case_template\ntags: [测试用例, 测试, 模板]\naliases: [用例模板, 测试用例]\nsource: manual\nstatus: active\nowner: 测试负责人\nupdated: 2026-05\n---\n\n# 测试用例模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 项目/模块 | |\n| 关联需求 | |\n| 关联技术文档 | |\n| 测试负责人 | |\n| 状态 | draft |\n\n## 测试范围\n\n\n## 前置条件\n\n\n## 测试用例\n\n| 用例编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级 | 状态 |\n|---|---|---|---|---|---|---|\n| TC-001 | | | | | P1 | 未执行 |\n\n## 边界与异常场景\n\n\n## 验收口径\n\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "doc:08_测试相关/测试用例索引",
"type": "document",
"name": "测试用例索引",
"filePath": "08_测试相关/测试用例索引.md",
"summary": "type: test case index tags: 测试用例, 测试, 索引, Agent检索 aliases: 测试用例清单, 用例索引 source: manual status: active owner: 测试负责人 updated: 2026 05 测试用例索引 测试用例清单 编号 项目/模块 用例集名称 文件 关联需求 关联技术文档 负责人 ",
"tags": [
"08_测试相关",
"测试相关",
"测试用例",
"测试",
"索引",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: test_case_index\ntags: [测试用例, 测试, 索引, Agent检索]\naliases: [测试用例清单, 用例索引]\nsource: manual\nstatus: active\nowner: 测试负责人\nupdated: 2026-05\n---\n\n# 测试用例索引\n\n## 测试用例清单\n\n| 编号 | 项目/模块 | 用例集名称 | 文件 | 关联需求 | 关联技术文档 | 负责人 | 状态 | 更新时间 |\n|---|---|---|---|---|---|---|---|---|\n| | | | | | | | 未验证 | |\n\n## Agent 检索关键词\n\n| 问法 | 标准术语 | 命中文件 | 答案要点 |\n|---|---|---|---|\n| | | | |\n\n## 维护规则\n\n- 新增测试用例后,必须在本索引登记。\n- 每个测试用例文件必须关联至少一个需求文档。\n- 若测试用例依赖接口、数据模型或技术方案,应关联技术文档。\n- Agent 回答测试范围、验收口径、缺陷复现问题时,应优先检索本目录。\n",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "doc:08_测试相关/测试计划模板",
"type": "document",
"name": "测试计划模板",
"filePath": "08_测试相关/测试计划模板.md",
"summary": "type: test plan template tags: 测试计划, 测试, 模板 aliases: 测试计划模板 source: manual status: active owner: 测试负责人 updated: 2026 05 测试计划模板 基本信息 项目 内容 项目/模块 关联需求 关联里程碑 测试负责人 计划周期 测试目标 测试范围 不在范围",
"tags": [
"08_测试相关",
"测试相关",
"测试计划",
"测试",
"模板"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: test_plan_template\ntags: [测试计划, 测试, 模板]\naliases: [测试计划模板]\nsource: manual\nstatus: active\nowner: 测试负责人\nupdated: 2026-05\n---\n\n# 测试计划模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 项目/模块 | |\n| 关联需求 | |\n| 关联里程碑 | |\n| 测试负责人 | |\n| 计划周期 | |\n\n## 测试目标\n\n\n## 测试范围\n\n\n## 不在范围内\n\n\n## 测试资源\n\n\n## 测试安排\n\n| 阶段 | 时间 | 负责人 | 输出物 |\n|---|---|---|---|\n| | | | |\n\n## 准入条件\n\n\n## 准出条件\n\n\n## 风险\n\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "doc:08_测试相关/缺陷记录模板",
"type": "document",
"name": "缺陷记录模板",
"filePath": "08_测试相关/缺陷记录模板.md",
"summary": "type: defect template tags: 缺陷, 测试, 模板 aliases: Bug记录模板, 缺陷记录 source: manual status: active owner: 测试负责人 updated: 2026 05 缺陷记录模板 基本信息 项目 内容 缺陷编号 BUG 项目/模块 关联需求 关联用例 严重级别 当前状态 open ",
"tags": [
"08_测试相关",
"测试相关",
"缺陷",
"测试",
"模板"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: defect_template\ntags: [缺陷, 测试, 模板]\naliases: [Bug记录模板, 缺陷记录]\nsource: manual\nstatus: active\nowner: 测试负责人\nupdated: 2026-05\n---\n\n# 缺陷记录模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 缺陷编号 | BUG- |\n| 项目/模块 | |\n| 关联需求 | |\n| 关联用例 | |\n| 严重级别 | |\n| 当前状态 | open |\n| 负责人 | |\n\n## 问题描述\n\n\n## 复现步骤\n\n1. \n2. \n3. \n\n## 实际结果\n\n\n## 预期结果\n\n\n## 影响范围\n\n\n## 修复结论\n\n\n## 回归验证\n\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "doc:08_测试相关/验收记录模板",
"type": "document",
"name": "验收记录模板",
"filePath": "08_测试相关/验收记录模板.md",
"summary": "type: acceptance template tags: 验收, 测试, 模板 aliases: 验收记录, UAT模板 source: manual status: active owner: 测试负责人 / 业务负责人 updated: 2026 05 验收记录模板 基本信息 项目 内容 项目/模块 关联需求 关联测试用例 验收负责人 验收日期 验",
"tags": [
"08_测试相关",
"测试相关",
"验收",
"测试",
"模板"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: acceptance_template\ntags: [验收, 测试, 模板]\naliases: [验收记录, UAT模板]\nsource: manual\nstatus: active\nowner: 测试负责人 / 业务负责人\nupdated: 2026-05\n---\n\n# 验收记录模板\n\n## 基本信息\n\n| 项目 | 内容 |\n|---|---|\n| 项目/模块 | |\n| 关联需求 | |\n| 关联测试用例 | |\n| 验收负责人 | |\n| 验收日期 | |\n| 验收结论 | |\n\n## 验收范围\n\n\n## 验收结果\n\n| 验收项 | 预期结果 | 实际结果 | 结论 | 备注 |\n|---|---|---|---|---|\n| | | | | |\n\n## 遗留问题\n\n\n## 上线建议\n\n\n## Agent 检索字段\n\n- 关键词:\n- 同义词:\n- 典型问法:\n",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "doc:欢迎",
"type": "document",
"name": "欢迎使用如愿知识库",
"filePath": "欢迎.md",
"summary": "请从 [[00_首页/知识库首页]] 开始。",
"tags": [
"欢迎.md"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "---\ntype: index\ntags: [知识库, 入口]\naliases: [欢迎, 首页]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 欢迎使用如愿知识库\n\n请从 [[00_首页/知识库首页]] 开始。\n\n常用入口\n\n- [[知识库使用说明]]\n- [[00_首页/知识地图]]\n- [[00_首页/Agent问答入口]]\n- [[05_需求文档/README|需求文档]]\n- [[06_里程碑/README|里程碑]]\n- [[07_技术文档/README|技术文档]]\n- [[08_测试相关/README|测试相关]]\n- [[04_Agent检索/检索说明]]",
"wikilinks": [],
"category": "layer-overview"
}
},
{
"id": "doc:知识库使用说明",
"type": "document",
"name": "如愿知识库使用说明",
"filePath": "知识库使用说明.md",
"summary": "本文档说明如愿知识库的用途、目录结构、文档存放规则、索引维护规则、Obsidian 图谱使用方式,以及 Agent 如何基于知识库回答问题。",
"tags": [
"知识库使用说明.md"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "---\ntype: knowledge_base_guide\ntags: [知识库, 使用说明, Obsidian, Agent检索]\naliases: [如愿知识库使用说明, 知识库操作说明, 知识库维护说明]\nsource: manual\nstatus: active\nowner: 内部技术团队\nupdated: 2026-05\n---\n\n# 如愿知识库使用说明\n\n本文档说明如愿知识库的用途、目录结构、文档存放规则、索引维护规则、Obsidian 图谱使用方式,以及 Agent 如何基于知识库回答问题。\n\n## 1. 知识库定位\n\n如愿知识库用于沉淀内部系统建设过程中的\n\n- 业务需求\n- 业务规则\n- 业务流程\n- 项目里程碑\n- 技术方案\n- 测试用例\n- 缺陷与验收记录\n- Agent 检索规则\n\n知识库不是单纯存文件而是要形成可检索、可追溯、可被 Agent 引用回答的知识网络。\n\n## 2. 推荐打开方式\n\n推荐使用 Obsidian 打开以下目录作为 Vault\n\n```text\nD:\\AIcoding\\WishFulfilled\\知识库\\如愿知识库\n```\n\n打开后建议从以下入口开始\n\n1. [[欢迎]]\n2. [[00_首页/知识库首页]]\n3. [[00_首页/知识地图]]\n4. [[00_首页/Agent问答入口]]\n5. [[04_Agent检索/检索说明]]\n\n## 3. 主目录说明\n\n```text\n如愿知识库/\n├─ 00_首页/ # 首页、知识地图、Agent 问答入口\n├─ 01_业务流程/ # 业务流程、业务对象、业务规则、补充验证记录\n├─ 02_项目管理流程/ # 项目阶段、角色职责、交付物、检查清单、FAQ\n├─ 03_规范与模板/ # 需求、业务规则、会议、上线检查等模板\n├─ 04_Agent检索/ # 检索说明、关键词、同义词、来源文件索引\n├─ 05_需求文档/ # 正式需求文档、需求索引\n├─ 06_里程碑/ # 里程碑计划、阶段计划、评审记录\n├─ 07_技术文档/ # 技术方案、系统架构、接口说明、技术决策\n├─ 08_测试相关/ # 测试用例、测试计划、缺陷、验收、上线检查\n├─ 99_归档/ # 历史文档、废弃文档、仅供参考内容\n├─ 欢迎.md # Obsidian 入口页\n├─ 知识库使用说明.md # 本文档\n└─ Git使用说明.md # Git 仓库协作说明\n```\n\n## 4. 日常使用入口\n\n| 使用场景 | 优先入口 |\n|---|---|\n| 想了解知识库整体结构 | [[00_首页/知识地图]] |\n| 想让 Agent 回答业务问题 | [[00_首页/Agent问答入口]] |\n| 查看或新增需求 | [[05_需求文档/README]] |\n| 查看或新增里程碑 | [[06_里程碑/README]] |\n| 查看或新增技术方案 | [[07_技术文档/README]] |\n| 查看或新增测试用例 | [[08_测试相关/README]] |\n| 查看项目管理阶段 | [[02_项目管理流程/AI驱动内部系统开发流程_V3_总览]] |\n| 查看 Agent 检索规则 | [[04_Agent检索/检索说明]] |\n| 查看来源依据 | [[04_Agent检索/来源文件索引]] |\n\n## 5. 文档应该放在哪里\n\n### 5.1 需求文档\n\n放入\n\n```text\n05_需求文档/\n```\n\n适合存放\n\n- 正式需求说明\n- 业务规则说明\n- 需求变更说明\n- 业务补充说明\n- 产品口径说明\n\n推荐命名\n\n```text\n业务域_需求或规则名称_YYYYMMDD.md\n```\n\n示例\n\n```text\nUSER评价业务闭环_数据流与中间对象设计_20260517.md\n采购_供应商准入规则_20260526.md\n库存_出入库审批规则_20260526.md\n```\n\n新增后应同步维护\n\n- [[05_需求文档/需求文档索引]]\n- [[01_业务流程/业务规则索引]],如涉及业务规则\n- [[01_业务流程/业务对象字典]],如涉及新增业务对象\n- [[04_Agent检索/关键词索引]],如需要 Agent 检索命中\n- [[04_Agent检索/来源文件索引]],如是新的权威来源\n\n### 5.2 里程碑文档\n\n放入\n\n```text\n06_里程碑/\n```\n\n适合存放\n\n- 项目里程碑计划\n- 阶段计划\n- 阶段评审记录\n- 上线节奏\n- 准入/准出记录\n\n推荐命名\n\n```text\n项目名_里程碑计划_YYYYMMDD.md\n项目名_阶段评审记录_YYYYMMDD.md\n```\n\n新增后应同步维护\n\n- [[06_里程碑/里程碑索引]]\n\n### 5.3 技术文档\n\n放入\n\n```text\n07_技术文档/\n```\n\n适合存放\n\n- 系统架构说明\n- 数据模型说明\n- 接口说明\n- 模块设计\n- 技术方案\n- 部署说明\n- 技术决策记录\n\n推荐命名\n\n```text\n系统或模块_技术方案_YYYYMMDD.md\n系统或模块_接口说明_YYYYMMDD.md\n系统或模块_数据模型_YYYYMMDD.md\n```\n\n新增后应同步维护\n\n- [[07_技术文档/技术文档索引]]\n- [[04_Agent检索/关键词索引]],如需要 Agent 检索\n- [[04_Agent检索/来源文件索引]],如是新的技术依据\n\n### 5.4 测试相关文档\n\n放入\n\n```text\n08_测试相关/\n```\n\n适合存放\n\n- 测试计划\n- 测试用例\n- 缺陷记录\n- 验收记录\n- 上线检查\n- 回归测试记录\n\n推荐命名\n\n```text\n项目名_模块名_测试计划_YYYYMMDD.md\n项目名_模块名_测试用例_YYYYMMDD.md\n项目名_模块名_缺陷记录_YYYYMMDD.md\n项目名_模块名_验收记录_YYYYMMDD.md\n```\n\n新增后应同步维护\n\n- [[08_测试相关/测试用例索引]]\n- 关联需求文档\n- 关联里程碑或测试阶段\n\n测试用例必须能追溯到需求来源。\n\n### 5.5 业务流程文档\n\n放入\n\n```text\n01_业务流程/\n```\n\n适合存放\n\n- 已稳定的业务流程\n- 业务对象定义\n- 业务规则索引\n- 业务补充验证记录\n\n如果是新需求或尚未确认的业务规则优先放入 `05_需求文档/`,确认稳定后再沉淀到 `01_业务流程/`。\n\n### 5.6 模板文档\n\n放入\n\n```text\n03_规范与模板/\n```\n\n适合存放\n\n- 需求说明模板\n- 业务规则补充模板\n- 会议纪要模板\n- 上线检查模板\n- 通用文档模板\n\n模板只用于复用格式不应存放具体项目内容。\n\n### 5.7 归档文档\n\n放入\n\n```text\n99_归档/\n```\n\n适合存放\n\n- 已废弃文档\n- 历史版本\n- 仅供参考内容\n- 不再作为当前依据的旧规则\n\n归档文档不应作为 Agent 当前回答依据,除非问题明确询问历史背景。\n\n## 6. Agent 检索优先级\n\nAgent 回答问题时,按以下顺序查找依据:\n\n1. `05_需求文档/`:正式需求、业务规则、需求变更。\n2. `06_里程碑/`:项目节点、阶段计划、阶段评审、上线节奏。\n3. `07_技术文档/`:系统架构、数据模型、接口说明、实现方案、技术决策。\n4. `08_测试相关/`:测试计划、测试用例、缺陷记录、验收记录、上线检查。\n5. `02_项目管理流程/`:内部系统开发流程、阶段、角色、门禁、交付物、检查清单。\n6. `01_业务流程/`:真实业务流程、业务对象、业务规则。\n7. `04_Agent检索/`:关键词、同义词、来源索引、回答规则。\n8. `03_规范与模板/`:需要产出模板或文档时使用。\n\nAgent 回答必须注明来源文件。\n\n## 7. 不同问题应该查哪里\n\n| 问题类型 | 优先查找位置 |\n|---|---|\n| 某个需求是什么 | `05_需求文档/`、`05_需求文档/需求文档索引.md` |\n| 某个业务规则是什么 | `05_需求文档/`、`01_业务流程/业务规则索引.md` |\n| 某个业务对象怎么定义 | `01_业务流程/业务对象字典.md`、相关需求文档 |\n| 项目当前到哪个阶段 | `06_里程碑/`、`06_里程碑/里程碑索引.md` |\n| 某阶段要交付什么 | `02_项目管理流程/阶段交付物清单.md` |\n| 技术怎么实现 | `07_技术文档/`、`07_技术文档/技术文档索引.md` |\n| 接口怎么设计 | `07_技术文档/`、具体接口说明文档 |\n| 数据模型怎么设计 | `07_技术文档/`、具体数据模型文档、需求文档 |\n| 测试用例在哪里 | `08_测试相关/`、`08_测试相关/测试用例索引.md` |\n| 缺陷如何记录 | `08_测试相关/缺陷记录模板.md` |\n| 上线前检查什么 | `08_测试相关/上线检查模板.md`、`02_项目管理流程/项目检查清单.md` |\n| Agent 为什么这样回答 | `04_Agent检索/检索说明.md`、`04_Agent检索/来源文件索引.md` |\n\n## 8. 新增文档标准流程\n\n新增文档建议按以下流程操作\n\n```text\n确定文档类型\n ↓\n放入对应目录\n ↓\n按推荐命名规则命名\n ↓\n补充 Frontmatter\n ↓\n正文写清背景、规则、流程、验收口径\n ↓\n补充 Agent 检索字段\n ↓\n更新对应索引\n ↓\n更新关键词/来源文件索引\n ↓\n在 Obsidian 中检查链接和图谱\n```\n\n## 9. 推荐 Frontmatter\n\n每个正式文档建议在顶部维护 Frontmatter\n\n```yaml\n---\ntype: requirement\ntags: [需求文档, USER评价业务闭环]\naliases: [数据流与中间对象设计]\nsource: manual\nstatus: active\nowner: 产品经理\nupdated: 2026-05-26\n---\n```\n\n常用字段\n\n| 字段 | 说明 |\n|---|---|\n| `type` | 文档类型,如 requirement、technical_doc、test_case、milestone |\n| `tags` | 标签,用于 Obsidian 和 Agent 检索 |\n| `aliases` | 别名,便于搜索同义叫法 |\n| `source` | 来源,如 manual、docx、meeting、requirement |\n| `status` | 状态,如 draft、reviewing、active、deprecated |\n| `owner` | 负责人 |\n| `updated` | 最近更新时间 |\n\n## 10. 文档状态说明\n\n| 状态 | 含义 | Agent 使用规则 |\n|---|---|---|\n| `draft` | 草稿 | 只能作为参考,回答时需说明尚未确认 |\n| `reviewing` | 评审中 | 可引用但需说明仍在评审 |\n| `active` | 已确认 | 可作为正式回答依据 |\n| `deprecated` | 已废弃 | 不作为当前规则依据,只能说明历史背景 |\n\n## 11. 索引维护规则\n\n### 11.1 需求索引\n\n新增需求文档后维护\n\n```text\n05_需求文档/需求文档索引.md\n```\n\n至少登记\n\n- 编号\n- 业务域\n- 需求/规则名称\n- 文件路径\n- 状态\n- 负责人\n- 更新时间\n- 验证状态\n\n### 11.2 里程碑索引\n\n新增里程碑后维护\n\n```text\n06_里程碑/里程碑索引.md\n```\n\n至少登记\n\n- 项目\n- 里程碑名称\n- 文件\n- 阶段\n- 负责人\n- 计划时间\n- 当前状态\n\n### 11.3 技术文档索引\n\n新增技术文档后维护\n\n```text\n07_技术文档/技术文档索引.md\n```\n\n至少登记\n\n- 模块/系统\n- 文档类型\n- 文件\n- 关联需求\n- 负责人\n- 更新时间\n- 状态\n\n### 11.4 测试用例索引\n\n新增测试用例后维护\n\n```text\n08_测试相关/测试用例索引.md\n```\n\n至少登记\n\n- 项目\n- 模块\n- 用例名称\n- 文件\n- 关联需求\n- 测试类型\n- 状态\n- 负责人\n\n## 12. Obsidian 链接规则\n\n推荐使用 Obsidian 双链:\n\n```markdown\n[[05_需求文档/需求文档索引]]\n[[07_技术文档/技术文档索引]]\n[[08_测试相关/测试用例索引]]\n```\n\n也可以使用 Markdown 链接:\n\n```markdown\n[需求文档索引](05_需求文档/需求文档索引.md)\n```\n\n优先建议使用双链方便图谱建立关系。\n\n## 13. Obsidian 图谱说明\n\nObsidian 图谱会显示两类节点:\n\n1. 已存在的 Markdown 文件。\n2. 文档中链接到、但本地还不存在的 Markdown 文件。\n\n如果你只放了一个文件但图谱出现多个节点通常是因为该文件引用了其他文档。\n\n示例\n\n```markdown\n[工作基线 v1.2](20260517_USER评价业务闭环主流程与后续工作基线_v1.2.md)\n```\n\n即使这个文件尚未放入目录Obsidian 也可能在图谱中显示它。这是“未创建链接 / dangling link”不是目录里真的多了文件。\n\n如果只想显示真实存在的文件可在图谱中开启\n\n```text\n图谱视图 → 筛选 → 仅显示已有文件\n```\n\n如果希望知识链路完整应把被引用的上游文档补充到对应目录。\n\n## 14. 知识地图维护规则\n\n知识地图文件\n\n```text\n00_首页/知识地图.md\n```\n\n知识地图只维护主入口和关键二级入口不需要把每个具体项目文档都放进去。\n\n推荐主结构\n\n```text\n知识地图\n├─ 需求文档\n├─ 里程碑\n├─ 技术文档\n├─ 测试相关\n└─ Agent 检索\n```\n\n新增普通需求、测试用例、技术方案时一般只维护对应索引不需要直接改知识地图。\n\n只有新增重要分类或核心入口时才更新知识地图。\n\n## 15. Agent 回答规则\n\nAgent 基于知识库回答问题时,应遵守:\n\n1. 先查知识库,再回答。\n2. 优先引用 `active` 状态文档。\n3. 先给结论,再展开依据。\n4. 需求问题优先查需求文档。\n5. 技术问题优先查技术文档。\n6. 测试问题优先查测试相关。\n7. 里程碑问题优先查里程碑。\n8. 如果知识库没有明确记录,回答“知识库未明确记录”。\n9. 不要根据经验补充未记录的事实。\n10. 回答末尾必须说明来源文件。\n\n推荐引用格式\n\n```text\n来源05_需求文档/xxx.md\n```\n\n## 16. 测试用例管理要求\n\n测试用例应单独存放在\n\n```text\n08_测试相关/\n```\n\n每个测试用例应尽量包含\n\n- 用例编号\n- 关联需求\n- 测试模块\n- 前置条件\n- 操作步骤\n- 预期结果\n- 实际结果\n- 优先级\n- 状态\n- 负责人\n\n测试用例必须关联需求文档或业务规则避免出现无法追溯来源的测试项。\n\n## 17. 文档关系建议\n\n推荐建立以下关系\n\n```text\n需求文档\n ↓\n里程碑 / 阶段计划\n ↓\n技术文档\n ↓\n测试计划 / 测试用例\n ↓\n缺陷记录 / 验收记录\n ↓\n上线检查 / 复盘回流\n```\n\n每个下游文档应尽量写明上游来源。\n\n示例\n\n```markdown\n## 关联文档\n\n- 需求来源:[[05_需求文档/xxx需求文档]]\n- 技术方案:[[07_技术文档/xxx技术方案]]\n- 测试用例:[[08_测试相关/xxx测试用例]]\n```\n\n## 18. 不建议放入知识库的内容\n\n不建议直接放入\n\n- 密码\n- Token\n- API Key\n- 未脱敏客户隐私\n- 未脱敏订单号、电话、邮箱、地址\n- 临时截图\n- 个人草稿\n- 与项目无关的资料\n\n如果必须记录敏感业务规则应先脱敏再写入知识库。\n\n## 19. 提交前检查清单\n\n新增或修改文档后检查\n\n- [ ] 文件放在正确目录。\n- [ ] 文件名能表达业务域和用途。\n- [ ] 正式文档已写 Frontmatter。\n- [ ] 文档状态正确。\n- [ ] 关键业务规则有来源。\n- [ ] 需求文档已更新需求文档索引。\n- [ ] 技术文档已更新技术文档索引。\n- [ ] 测试用例已更新测试用例索引。\n- [ ] 重要关键词已补充到关键词索引。\n- [ ] 需要追溯的来源已补充到来源文件索引。\n- [ ] Obsidian 链接可以正常跳转,或确认是有意保留的上游虚链接。\n- [ ] 不包含密码、Token、密钥和未脱敏敏感信息。\n\n## 20. 常见问题\n\n### 20.1 为什么只放一个文档,图谱显示多个节点?\n\n因为文档中链接了其他 Markdown 文件。Obsidian 会把被链接但尚未创建的文件也显示成节点。\n\n### 20.2 README.md 为什么会出现在图谱里?\n\n因为 README.md 也是 Markdown 文件Obsidian 会把它作为普通节点显示。\n\n### 20.3 一个具体项目文档要不要加到知识地图?\n\n通常不需要。具体项目文档登记到对应索引即可。知识地图只放主入口和关键二级入口。\n\n### 20.4 需求文档和业务流程怎么区分?\n\n- 尚在新增、变更、评审中的内容放 `05_需求文档/`。\n- 已稳定、可复用的业务流程沉淀到 `01_业务流程/`。\n\n### 20.5 测试用例应该跟需求还是技术文档关联?\n\n优先关联需求文档如果测试点来自技术实现细节再补充关联技术文档。\n\n### 20.6 Agent 回答错了怎么办?\n\n优先检查\n\n1. 对应文档是否存在。\n2. 文档是否放在正确目录。\n3. 索引是否维护。\n4. 关键词或同义词是否缺失。\n5. 来源文件索引是否登记。\n6. 文档状态是否为 `active`。\n\n必要时更新\n\n- [[04_Agent检索/关键词索引]]\n- [[04_Agent检索/同义词表]]\n- [[04_Agent检索/来源文件索引]]\n- [[04_Agent检索/知识库持续更新与验证流程]]\n\n## 21. 维护原则\n\n1. 文档要放对目录。\n2. 正式内容要有来源。\n3. 关键文档要有索引。\n4. 测试用例要能追溯需求。\n5. 技术文档要能追溯需求或业务流程。\n6. 里程碑要能追溯阶段目标和交付物。\n7. Agent 回答要能追溯来源文件。\n8. 废弃内容要归档,不要混在当前依据中。\n9. 敏感信息要脱敏。\n10. 知识库持续维护比一次性整理更重要。\n",
"wikilinks": [],
"category": "layer-overview"
}
},
{
"id": "flow:layer-overview",
"type": "document",
"name": "1. 知识库入口",
"summary": "知识库使用说明、首页、知识地图和问答入口。先从这里理解知识库结构与检索方式。",
"tags": [
"流程入口",
"知识库入口"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# 知识库入口\n\n知识库使用说明、首页、知识地图和问答入口。先从这里理解知识库结构与检索方式。\n\n本层包含 5 个文档。点击右侧 Files 或在本层详情中选择具体文档查看内容。",
"wikilinks": [],
"category": "layer-overview"
}
},
{
"id": "flow:layer-requirements",
"type": "document",
"name": "2. 需求文档",
"summary": "所有正式需求、业务规则、需求变更和需求索引。点击本层可查看全部需求文档并检索。",
"tags": [
"流程入口",
"需求文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# 需求文档\n\n所有正式需求、业务规则、需求变更和需求索引。点击本层可查看全部需求文档并检索。\n\n本层包含 32 个文档。点击右侧 Files 或在本层详情中选择具体文档查看内容。",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "flow:layer-milestones",
"type": "document",
"name": "3. 里程碑",
"summary": "项目阶段计划、里程碑节点、评审记录、准入准出和交付物节奏。",
"tags": [
"流程入口",
"里程碑"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# 里程碑\n\n项目阶段计划、里程碑节点、评审记录、准入准出和交付物节奏。\n\n本层包含 16 个文档。点击右侧 Files 或在本层详情中选择具体文档查看内容。",
"wikilinks": [],
"category": "layer-milestones"
}
},
{
"id": "flow:layer-technical",
"type": "document",
"name": "4. 技术文档",
"summary": "系统架构、数据模型、接口说明、技术方案和技术决策。点击本层可查看全部技术文档并检索。",
"tags": [
"流程入口",
"技术文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# 技术文档\n\n系统架构、数据模型、接口说明、技术方案和技术决策。点击本层可查看全部技术文档并检索。\n\n本层包含 6 个文档。点击右侧 Files 或在本层详情中选择具体文档查看内容。",
"wikilinks": [],
"category": "layer-technical"
}
},
{
"id": "flow:layer-testing",
"type": "document",
"name": "5. 测试相关",
"summary": "测试计划、测试用例、缺陷记录、验收记录、上线检查和测试资产。点击本层可查看全部测试相关文档并检索。",
"tags": [
"流程入口",
"测试相关"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# 测试相关\n\n测试计划、测试用例、缺陷记录、验收记录、上线检查和测试资产。点击本层可查看全部测试相关文档并检索。\n\n本层包含 8 个文档。点击右侧 Files 或在本层详情中选择具体文档查看内容。",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "flow:layer-agent",
"type": "document",
"name": "6. Agent检索",
"summary": "检索说明、关键词、同义词、来源索引和持续更新验证流程。",
"tags": [
"流程入口",
"Agent检索"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# Agent检索\n\n检索说明、关键词、同义词、来源索引和持续更新验证流程。\n\n本层包含 6 个文档。点击右侧 Files 或在本层详情中选择具体文档查看内容。",
"wikilinks": [],
"category": "layer-agent"
}
},
{
"id": "doc:05_需求文档/00-系统总览",
"type": "document",
"name": "如愿 · 系统总览 v1.0",
"filePath": "05_需求文档/00-系统总览.md",
"summary": "如愿 · 系统总览 v1.0 2 文件信息 4 文件名称: 00 系统总览.md 项目代号: 如愿 工作目录: /root/user business/ 当前版本: v1.0 创建日期: 2026 05 22 上游基线: docs from business/20260517 USER评价业务闭环主流程与后续工作基线 v1.2.md docs from bu",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "# 如愿 · 系统总览 v1.0\n 2|\n## 文件信息\n 4|\n- 文件名称:`00-系统总览.md`\n- 项目代号:**如愿**\n- 工作目录:`/root/user-business/`\n- 当前版本:`v1.0`\n- 创建日期:`2026-05-22`\n- 上游基线:\n - `docs-from-business/20260517_USER评价业务闭环主流程与后续工作基线_v1.2.md`\n - `docs-from-business/20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2.md`\n 13|\n## 目录\n 15|\n1. [项目目标与原则](#1-项目目标与原则)\n2. [系统总边界](#2-系统总边界)\n3. [子系统划分](#3-子系统划分)\n4. [子系统间依赖关系](#4-子系统间依赖关系)\n5. [角色 → 独立前端映射](#5-角色--独立前端映射)\n6. [子系统内外边界明细](#6-子系统内外边界明细)\n7. [总系统级业务澄清问题清单](#7-总系统级业务澄清问题清单)\n8. [待确认的内外边界](#8-待确认的内外边界)\n9. [附录:子系统文档索引](#9-附录子系统文档索引)\n 25|\n---\n 27|\n## 1. 项目目标与原则\n 29|\n### 1.1 项目代号:\"如愿\"\n\n> 取名\"如愿\"——系统做好能做的所有事(身份识别、需求评估、计划调度、渠道协同、风险拦截、结果追踪),让每一次运营投入都如愿转化为真实的评价提升和 ASIN 健康增长。Amazon 是否展示评价有平台的不确定性,但系统必须把可控环节做到极致。\n 33|\n### 1.2 核心架构目标\n 35|\n| # | 目标 | 说明 |\n| --- | --- | --- |\n| G1 | 前端分离 | 不同角色拥有独立前端应用,按需集成子系统能力 |\n| G2 | 清晰系统边界 | 明确系统内外边界,区分内部可控与外部依赖 |\n| G3 | 子系统解耦 | 子系统通过 API 契约通信,支持独立开发、独立部署 |\n| G4 | 并行开发 | 子系统之间尽量减少串行依赖,允许多团队并行推进 |\n| G5 | 独立角色前端 | Amazon 运营、用户运营、客服、风险管理、KOC/KOL 运营各自拥有独立前端 |\n 43|\n### 1.3 架构原则\n 45|\n| 原则 | 说明 |\n| --- | --- |\n| **单一数据源** | 每个业务事实只有一个子系统负责写入Owner其他子系统只读或通过 API 调用 |\n| **API 契约优先** | 子系统间通过明确 API 契约通信,先定义契约再实现 |\n| **真实人为核心** | 所有额度、风险、历史判断围绕「真实人」而非单一账号 |\n| **每次互动重判** | 身份、额度、风险不是一次性的,每次有效互动需重做判断 |\n| **审计不可少** | 所有状态变更、敏感访问、人工干预必须留痕 |\n 53|\n---\n 55|\n## 2. 系统总边界\n 57|\n### 2.1 边界总图\n 59|\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│ 如愿 系统边界 │\n│ │\n│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │\n│ │ Amazon │ │ 用户运营 │ │ Amazon │ │ 风险/黑名 │ │\n│ │ 运营前端 │ │ 前端 │ │ 运营总监 │ │ 单前端 │ │\n│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │\n│ │ │ │ │ │\n│ ┌────┴─────┐ ┌────┴─────┐ ┌────┴─────┐ ┌────┴─────┐ │\n│ │ 客服前端 │ │ 客服管理 │ │ KOC/KOL │ │ 管理驾驶 │ │\n│ │ │ │ 前端 │ │ 运营前端 │ │ 舱 │ │\n│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │\n│ │ │ │ │ │\n│ ═════╪══════════════╪══════════════╪══════════════╪══════ API网关 │\n│ │ │ │ │ │\n│ ┌────┴──────────────┴──────────────┴──────────────┴─────┐ │\n│ │ 内部子系统 │ │\n│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │ │\n│ │ │ 用户身 │ │需求与计│ │额度与频│ │多渠道触│ │ │\n│ │ │份上下文│ │划管理 │ │ 控 │ │达引擎 │ │ │\n│ │ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ │ │\n│ │ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ ┌───┴────┐ │ │\n│ │ │客服工单│ │风险与反│ │评价结果│ │KOC/KOL │ │ │\n│ │ │与管理 │ │ 欺诈 │ │ 追踪 │ │ 协作 │ │ │\n│ │ └───┬────┘ └───┬────┘ └───┬────┘ └───┬────┘ │ │\n│ │ ┌───┴────┐ │ │\n│ │ │审计与通│ │ │\n│ │ │知中心 │ │ │\n│ │ └────────┘ │ │\n│ └───────────────────────────────────────────────────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────────────┘\n 93|\n ║ 外部系统 ║\n 95|\n┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐\n│ Amazon │ │ JOYHUB │ │JOYCOLLAB │ │ 邮件服务 │ │ 财务系统 │\n│ Marketplace│ │ 用户平台 │ │ KOC平台 │ │ (ESP) │ │(返款/退款)│\n└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘\n```\n 101|\n### 2.2 系统内部(如愿系统)\n 103|\n| # | 子系统 | 代号 | 核心职责 | 详情文档 |\n| --- | --- | --- | --- | --- |\n| S1 | 用户身份与上下文 | `identity` | 真实人识别、身份线索归并、用户上下文卡 | [01-用户身份与上下文](01-子系统-用户身份与上下文.md) |\n| S2 | 需求与计划管理 | `planning` | 需求触发(人工/自动)、计划生成(推新/回评/免评)、审批工作流 | [02-需求与计划管理](02-子系统-需求与计划管理.md) |\n| S3 | 额度与频控 | `quota` | 月度测评/免评额度台账、累计评价额度、频控、预占 | [03-额度与频控](03-子系统-额度与频控.md) |\n| S4 | 多渠道触达引擎 | `outreach` | IM/EDM/APP Push/TEL 渠道调度、路由、去重、发送 | [04-多渠道触达引擎](04-子系统-多渠道触达引擎.md) |\n| S5 | 客服工单与管理 | `support` | 工单生命周期、自动分配、排班出勤、绩效统计 | [05-客服工单与管理](05-子系统-客服工单与管理.md) |\n| S6 | 风险与反欺诈 | `risk` | 强弱关联判断、黑名单、双重退款检测、风险事件 | [06-风险与反欺诈](06-子系统-风险与反欺诈.md) |\n| S7 | 评价结果追踪 | `review` | 评价提交记录、Amazon 展示核验、ASIN 健康回流 | [07-评价结果追踪](07-子系统-评价结果追踪.md) |\n| S8 | KOC/KOL 协作 | `creator` | KOC/KOL 匹配、内容跟踪、Code 管理、JOYCOLLAB 同步 | [08-KOC-KOL协作](08-子系统-KOC-KOL协作.md) |\n| S9 | 审计与通知中心 | `audit` | 状态变更审计、敏感访问日志、多类型通知/告警 | [09-审计与通知中心](09-子系统-审计与通知中心.md) |\n 115|\n### 2.3 系统外部(外部依赖)\n 117|\n| # | 外部系统 | 说明 | 交互方式 | 确认状态 |\n| --- | --- | --- | --- | --- |\n| E1 | **Amazon Marketplace** | 订单数据、评价数据、ASIN/Listing 健康数据、退款数据 | API 拉取 / 爬取 | ⚠️ 待确认 |\n| E2 | **JOYHUB 用户平台** | JOYHUB ID、设备信息、APP 行为数据、绑定玩具数据 | API 同步 | ⚠️ 待确认 |\n| E3 | **JOYCOLLAB** | KOC/KOL 内容数据、Code 使用数据、带货订单数据 | API 同步 | ⚠️ 待确认 |\n| E4 | **邮件服务 (ESP)** | EDM 发送、送达/打开/点击追踪、退订/硬退信 | SMTP + Webhook | ⚠️ 待确认 |\n| E5 | **财务系统** | 返款执行、返款状态、退款记录OA 侧) | API 调用 | ⚠️ 待确认 |\n| E6 | **APP Push 服务** | APP 推送通道FCM/APNs | SDK / API | ⚠️ 待确认 |\n| E7 | **电话系统** | 外呼能力、来电识别、通话记录 | API / SIP | ⚠️ 待确认 |\n| E8 | **IM 平台 (WhatsApp?)** | IM 消息收发 | API | ⚠️ 待确认 |\n 128|\n---\n 130|\n## 3. 子系统划分\n 132|\n### 3.1 划分依据\n 134|\n子系统按照**业务域内聚**原则划分,每个子系统:\n 136|\n1. 拥有明确的数据所有权(该子系统是某些核心数据对象的唯一写入方)\n2. 对外暴露清晰的 API 契约\n3. 可以独立开发、测试、部署\n4. 尽量减少对其他子系统的强依赖(启动依赖)\n 141|\n### 3.2 各子系统数据所有权\n 143|\n| 子系统 | 拥有(写入)的核心数据对象 |\n| --- | --- |\n| identity | `person_profiles`、`person_identity_links`、`contact_context_snapshots`、`device_records` |\n| planning | `demands`、`plans`、`plan_items`、`approval_records`、`asin_catalog` |\n| quota | `person_quota_ledgers`、`quota_reservations`、`frequency_control_records` |\n| outreach | `channel_route_decisions`、`channel_dedup_records`、`im_interaction_records`、`edm_message_events`、`app_touch_events`、`tel_call_records` |\n| support | `support_tickets`、`support_followups`、`support_assignment_logs`、`attendance_records`、`shift_schedules`、`support_performance_snapshots` |\n| risk | `risk_signals`、`risk_cases`、`blacklist_entities`、`refund_match_results` |\n| review | `review_submission_records`、`review_display_checks`、`review_results` |\n| creator | `exemption_plan_tasks`、`creator_content_records`、`creator_profiles`、`code_records` |\n| audit | `interaction_audit_logs`、`notification_records`、`manual_review_tasks` |\n 155|\n---\n 157|\n## 4. 子系统间依赖关系\n 159|\n### 4.1 依赖图\n 161|\n```\n ┌─────────────────────────────────────────────┐\n │ audit (审计与通知) │\n │ ← 所有子系统向 audit 发送事件 │\n └─────────────────────────────────────────────┘\n ↑\n ┌─────────┬─────────┬─────┼─────┬─────────┬─────────┐\n │ │ │ │ │ │ │\n┌───┴───┐ ┌───┴───┐ ┌───┴───┐ │ ┌───┴───┐ ┌───┴───┐ ┌───┴───┐\n│ review│ │creator│ │support│ │ │ risk │ │ quota │ │outreach│\n│(评价) │ │(KOC) │ │(客服) │ │ │(风险) │ │(额度) │ │(触达) │\n└───┬───┘ └───┬───┘ └───┬───┘ │ └───┬───┘ └───┬───┘ └───┬───┘\n │ │ │ │ │ │ │\n └─────────┼─────────┼─────┼─────┼─────────┼─────────┘\n │ │ │ │ │\n ┌────┴─────────┴─────┼─────┼─────────┴────────┐\n │ │ │ │\n ▼ ▼ ▼ ▼\n ┌─────────┐ ┌──────────────┐ ┌─────────┐\n │planning │←─────────│ identity │─────────→│ quota │\n │(计划) │ │ (用户身份) │ │ (额度) │\n └─────────┘ └──────────────┘ └─────────┘\n```\n 185|\n### 4.2 依赖矩阵\n 187|\n| ↓ 消费者 \\ 提供者 → | identity | planning | quota | outreach | support | risk | review | creator | audit |\n| --- |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|\n| **identity** | - | - | - | - | - | R | - | - | E |\n| **planning** | **R** | - | R | - | - | R | R | - | E |\n| **quota** | **R** | - | - | - | - | - | R | - | E |\n| **outreach** | R | R | R | - | - | R | - | - | E |\n| **support** | R | - | - | - | - | R | - | - | E |\n| **risk** | R | - | - | - | - | - | - | - | E |\n| **review** | R | R | - | - | - | - | - | R | E |\n| **creator** | - | R | R | - | - | - | - | - | E |\n| **audit** | - | - | - | - | - | - | - | - | - |\n 199|\n**图例:** `R` = 只读依赖(通过 API 查询),`E` = 事件发送fire-and-forget`-` = 无依赖\n 201|\n### 4.3 启动依赖(必须就绪才能工作)\n 203|\n| 子系统 | 启动依赖 | 说明 |\n| --- | --- | --- |\n| identity | 无硬依赖 | 可独立启动(需要 JOYHUB 数据同步) |\n| planning | identity软依赖 | 无 identity 时可先操作,但无法做人群匹配 |\n| quota | identity软依赖 | 额度按真实人计算,未归并时按单一账号 |\n| outreach | identity, planning, quota软依赖 | 无依赖时可先建渠道基础设施 |\n| support | identity软依赖 | 无用户上下文卡时可先跑工单 |\n| risk | identity软依赖 | 强/弱关联依赖身份数据 |\n| review | identity, planning软依赖 | 评价需关联计划和用户 |\n| creator | planning软依赖 | 免评计划入口 |\n| audit | 无硬依赖 | 完全独立 |\n 215|\n> **软依赖** = 可降级运行,核心功能不受阻。例如 outreach 在 identity 不可用时仍可发送消息,但缺少用户上下文。\n 217|\n---\n 219|\n## 5. 角色 → 独立前端映射\n 221|\n### 5.1 前端应用矩阵\n 223|\n| 前端应用 | 目标角色 | 集成的子系统 | 部署形态 |\n| --- | --- | --- | --- |\n| **运营工作台** | Amazon 运营、Amazon 运营总监 | planning + review + quota (查询) | Web SPA |\n| **用户运营中心** | 用户运营、用户运营负责人/组长 | planning + outreach + quota + review | Web SPA |\n| **客服工作台** | 菲律宾客服组员 | support + identity (上下文卡) + outreach (TEL) | Web SPA / 桌面端 |\n| **客服管理台** | 菲律宾客服负责人、客服组长 | support (管理模块) + audit | Web SPA |\n| **风险控制台** | 风险/黑名单相关人员 | risk + identity (上下文卡) + audit | Web SPA |\n| **达人协作台** | KOC/KOL 运营 | creator + outreach (协同) + review (免评结果) | Web SPA |\n| **管理驾驶舱** | 运营总监、用户运营负责人 | 跨子系统聚合看板 (planning + outreach + support + review) | Web SPA |\n 233|\n### 5.2 角色-功能矩阵\n 235|\n| 功能 \\ 角色 | Amazon运营 | 运营总监 | 用户运营 | 用户负责人 | 客服组员 | 客服组长 | 客服负责人 | 风险人员 | KOC运营 |\n| --- |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|\n| 提需求(推新/回评/免评) | ✓ | ✓ | - | - | - | - | - | - | - |\n| 审批计划 | - | ✓ | - | ✓ | - | - | - | - | - |\n| 评估需求 | - | - | ✓ | ✓ | - | - | - | - | - |\n| 生成计划/调资源 | - | - | ✓ | ✓ | - | - | - | - | - |\n| 查看 ASIN 健康 | ✓ | ✓ | ✓ | - | - | - | - | - | - |\n| 处理工单 | - | - | - | - | ✓ | ✓ | - | - | - |\n| 分配工单 | - | - | - | - | - | ✓ | ✓ | - | - |\n| 电话外呼/接听 | - | - | - | - | ✓ | - | - | - | - |\n| 查看排班出勤 | - | - | - | - | - | ✓ | ✓ | - | - |\n| 绩效统计 | - | - | - | - | - | ✓ | ✓ | - | - |\n| 风险审核 | - | - | - | - | - | - | - | ✓ | - |\n| 黑名单管理 | - | - | - | - | - | - | - | ✓ | - |\n| KOC/KOL 匹配 | - | - | - | - | - | - | - | - | ✓ |\n| 内容跟踪 | - | - | ✓ | - | - | - | - | - | ✓ |\n 252|\n---\n 254|\n## 6. 子系统内外边界明细\n 256|\n### 6.1 identity — 用户身份与上下文\n 258|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 管理真实人归并逻辑、身份线索关联JOYHUB ID↔邮箱↔电话↔设备↔订单→真实人ID、用户上下文卡聚合与快照、设备变化识别 |\n| **对外(提供给其他子系统)** | `GET /api/identity/person/{context}` — 按线索查真实人;`GET /api/identity/context/{person_id}` — 用户上下文卡;`POST /api/identity/merge` — 归并请求 |\n| **依赖外部系统** | JOYHUB用户基础数据、APP设备数据 |\n| **待确认边界** | 真实人归并是自动还是人工确认?归并拆分(合并错了如何回退)?非 APP 用户的身份线索从哪里同步ESM 的邮箱清洗?) |\n 265|\n### 6.2 planning — 需求与计划管理\n 267|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 需求触发(人工提交 + 自动触发规则)、需求评估、计划创建(推新/回评/免评、审批工作流、ASIN 基础信息管理 |\n| **对外(提供给其他子系统)** | `GET /api/plans/{id}` — 计划详情;`GET /api/plans?status=approved` — 待执行计划;`POST /api/demands` — 创建需求 |\n| **依赖外部系统** | AmazonASIN 数据、销售数据、评价缺口) |\n 273|\n### 6.3 quota — 额度与频控\n 275|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 额度台账测评4/免评4/累计12、额度预占与释放、频控规则引擎、发送前终校 |\n| **对外(提供给其他子系统)** | `GET /api/quota/check/{person_id}?type=测评` — 额度查询+预占;`POST /api/quota/reserve` — 预占;`POST /api/quota/commit` — 确认占用 |\n| **依赖外部系统** | 无直接外部系统依赖 |\n| **待确认边界** | 额度预占有效期多长?跨月额度如何处理(月末最后一天预占,下月一号释放还是保留?) |\n 282|\n### 6.4 outreach — 多渠道触达引擎\n 284|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 渠道路由决策、渠道去重、IM 推送(分层 A/B/C、EDM 发送与行为追踪、APP Push、TEL 任务生成 |\n| **对外(提供给其他子系统)** | `POST /api/outreach/send` — 发送触达;`GET /api/outreach/history/{person_id}` — 触达历史 |\n| **依赖外部系统** | JOYHUBIM 通道、ESPEDM、FCM/APNsAPP Push、电话系统TEL |\n| **待确认边界** | IM 具体是什么平台WhatsApp/自研 IMEDM 模板管理在 outreach 内还是独立内容管理APP Push 是否复用 JOYHUB 现有 Push 通道? |\n 291|\n### 6.5 support — 客服工单与管理\n 293|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 工单生命周期、自动分配(按排班/在线/负载)、答应配合状态机、出勤/排班/绩效 |\n| **对外(提供给其他子系统)** | `POST /api/tickets` — 创建工单;`GET /api/tickets/{id}` — 工单详情;`GET /api/support/stats` — 绩效数据 |\n| **依赖外部系统** | 无直接外部系统依赖(电话记录来自 outreach TEL 模块) |\n| **待确认边界** | 客服是否使用独立 IM 工具还是复用 outreach 的 IM 通道?排班数据是否与现有 HR 系统对接? |\n 300|\n### 6.6 risk — 风险与反欺诈\n 302|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 强弱关联判断、黑名单实体管理、风险事件管理、双重退款检测Amazon退款 vs OA返款 |\n| **对外(提供给其他子系统)** | `GET /api/risk/check/{person_id}` — 风险查询;`POST /api/risk/report` — 上报风险信号 |\n| **依赖外部系统** | Amazon退款数据、财务系统OA 返款数据) |\n 308|\n### 6.7 review — 评价结果追踪\n 310|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 用户真实提交评价记录、Amazon 展示核验、ASIN 健康更新回流、计划完成度计算 |\n| **对外(提供给其他子系统)** | `POST /api/reviews/submission` — 记录提交;`GET /api/reviews/status/{plan_id}` — 计划评价进度 |\n| **依赖外部系统** | Amazon评价展示状态、ASIN 评分数据) |\n 316|\n### 6.8 creator — KOC/KOL 协作\n 318|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | KOC/KOL 匹配筛选、内容 Brief/Code 分配、内容发布跟踪、带货结果跟踪 |\n| **对外(提供给其他子系统)** | `GET /api/creators/match?plan_id=` — 匹配推荐;`POST /api/creators/tasks` — 创建协作任务 |\n| **依赖外部系统** | JOYCOLLABKOC/KOL 数据、内容数据、Code 使用、带货订单) |\n 324|\n### 6.9 audit — 审计与通知中心\n 326|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 所有子系统的状态变更审计、敏感字段访问日志、多类型通知(额度预警/超时提醒/紧急 Listing 告警/审批通知) |\n| **对外(提供给其他子系统)** | `POST /api/audit/event` — 上报审计事件;`POST /api/notifications/send` — 发送通知 |\n| **依赖外部系统** | 通知可能通过 IM/EDM/APP Push 等通道(可复用 outreach 通道或独立) |\n| **待确认边界** | 审计日志保留策略?通知模板管理在 audit 内还是需要独立内容管理? |\n 333|\n---\n 335|\n## 7. 总系统级业务澄清问题清单\n 337|\n> 以下问题需要与业务方确认,涉及跨子系统边界、关键业务规则和外部系统对接。\n 339|\n### 7.1 外部系统对接8 项)\n 341|\n| # | 问题 | 涉及外部系统 | 优先级 |\n| --- | --- | --- | --- |\n| Q-E1 | Amazon 数据以什么方式接入MWS/SP-API 授权拉取、爬虫、CSV 导入、已有中间表?) | Amazon | **P0** |\n| Q-E2 | JOYHUB 现有数据有哪些可用?是否有现成 APIJOYHUB ID ↔ 邮箱 ↔ 设备 ↔ 订单 的关联数据是否已存储? | JOYHUB | **P0** |\n| Q-E3 | JOYCOLLAB 数据同步方向是单向COLLAB→USER还是双向同步频率Code 生成是在 COLLAB 还是 USER | JOYCOLLAB | **P0** |\n| Q-E4 | 当前 EDM 使用什么邮件服务SendGrid / Mailchimp / SES / 自建?)是否有现成的送达/打开/点击追踪? | ESP | **P0** |\n| Q-E5 | OA 返款系统是哪个?是否有 API 可以查询返款状态和返款记录?(用于双重退款比对) | 财务系统 | **P0** |\n| Q-E6 | APP Push 是否复用 JOYHUB 现有 Push 通道还是需要独立接入 FCM/APNs | APP Push | P1 |\n| Q-E7 | 电话系统用什么方案?(自建 SIP / 第三方云呼叫中心?)是否已有通话记录存储? | 电话系统 | P1 |\n| Q-E8 | IM 平台具体是什么WhatsApp Business API / 自研 IM / Facebook Messenger | IM 平台 | P1 |\n 352|\n### 7.2 用户身份体系5 项)\n 354|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-I1 | 「真实人」归并是完全自动还是需要人工确认?自动归并错误时如何拆分?(拆分会影响到已关联的历史评价和额度) | **P0** |\n| Q-I2 | 非 APP 用户(只知道邮箱)如何建立真实人?没有设备号仅凭邮箱+收件地址归并,置信度阈值如何定? | **P0** |\n| Q-I3 | JOYHUB ID 与真实人是 1:1 还是 N:1一个真实人可能拥有多个 JOYHUB ID | P1 |\n| Q-I4 | 设备变化的「换机」判定标准是什么?(同一 JOYHUB ID 下设备号变化?多久内变化算换机?) | P1 |\n| Q-I5 | 用户上下文卡的「快照」是否需要保留历史版本?(每次互动生成新快照 vs 覆盖上次) | P2 |\n 362|\n### 7.3 额度与频控规则6 项)\n 364|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-Q1 | 月度额度按自然月还是按 30 天滚动?如果是自然月,预占在月末最后一天是否需要特殊处理? | **P0** |\n| Q-Q2 | 「测评 4 次」的「次」定义:是指参与 4 个不同的测评计划,还是提交 4 次评价?(如果一次计划要求用户提交多条评价怎么算) | **P0** |\n| Q-Q3 | 「累计 12 个评价」是永久上限还是可以重置?(例如用户长期优质,是否可以放宽?) | P1 |\n| Q-Q4 | 额度预占的有效期多长?如果预占后用户始终未响应,多久释放额度? | P1 |\n| Q-Q5 | 频控规则中的「渠道频控」具体阈值是多少IM 每日最多推几次EDM 每周最多几封?) | P1 |\n| Q-Q6 | 「接近上限时提前预警」——预警阈值是还剩 1 次还是还剩 N% | P2 |\n 373|\n### 7.4 计划与审批流程5 项)\n 375|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-P1 | 自动触发需求的条件是什么ASIN 评分低于多少评价缺口多少条Listing 健康到什么程度?) | **P0** |\n| Q-P2 | 审批链中的「指定负责人」如何确定?(系统自动按规则还是人工指定?规则是什么?) | **P0** |\n| Q-P3 | 计划审批后是否可以修改?修改是否需要重新审批? | P1 |\n| Q-P4 | 计划之间是否有互斥关系?(同一个 ASIN 同时跑推新和回评计划是否可以?) | P1 |\n| Q-P5 | 「紧急计划」的判定标准和特殊审批流程?(谁可以标记为紧急?是否跳过某些审批节点?) | P1 |\n 383|\n### 7.5 渠道协同与去重5 项)\n 385|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-C1 | 渠道优先级路由规则是否需要可配置?(例如针对某类用户调整 IM > EDM 的优先级) | **P0** |\n| Q-C2 | 用户已在客服工单中时「暂停自动触达」——是所有渠道暂停还是仅暂停与当前工单相关的渠道? | P1 |\n| Q-C3 | EDM 引导注册 APP 后,如何识别「该 EDM 邮箱对应该 APP 用户」?靠什么字段关联? | P1 |\n| Q-C4 | 渠道去重中「同一计划同一用户不重复通过多渠道路由」——如果高优先级渠道发送失败(退信/未送达),是否自动降级到下一渠道? | P1 |\n| Q-C5 | IM 推送中的「催评卡片」和 APP Push 中的「催评推送」如何协调?(两者会不会同时推送给同一用户?) | P1 |\n 393|\n### 7.6 客服与工单5 项)\n 395|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-S1 | 工单自动分配算法——「当前负载」如何计算?(按未关闭工单数?按最近 N 小时处理量?) | **P0** |\n| Q-S2 | 客服的「在线状态」如何获取?(手动切换在线/离线,还是自动检测活跃度?) | P1 |\n| Q-S3 | 「答应配合」的超时判定——答应后多少天未提交算超时?超时后提醒频率? | P1 |\n| Q-S4 | 出勤排班是否与本系统内的排班模块管理还是对接外部 HR 系统? | P1 |\n| Q-S5 | 客服转化统计中的 RSO回评和 RDO测评如何区分按工单来源按最终结果 | P2 |\n 403|\n### 7.7 风险与反欺诈4 项)\n 405|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-R1 | 「强关联」中哪些维度的命中可以直接自动化拦截,哪些需要人工复核?(文档说一旦命中直接进入高风险,但实际执行中是否所有强关联都自动拦截?) | **P0** |\n| Q-R2 | 双重退款检测——Amazon 退款数据如何及时获取T+1 同步?实时 Webhook手动导入 | **P0** |\n| Q-R3 | 黑名单是否有过期/申诉/解除机制?什么条件下可以从黑名单中移除? | P1 |\n| Q-R4 | 风险信号的「弱关联」观察期多长?观察期过后是自动解除还是人工确认? | P1 |\n 412|\n### 7.8 评价结果与回流4 项)\n 414|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-V1 | Amazon 评价展示的核验方式是什么?(定时爬取 Amazon 页面手动录入用户上传截图API | **P0** |\n| Q-V2 | 「Amazon 未展示 / 暂不可核验」的评价进入异常观察队列后,观察多久?复查频率? | P1 |\n| Q-V3 | ASIN 健康「回流」的具体含义是什么?(更新 ASIN 评分/评价数到 planning 子系统,触发新一轮需求?) | P1 |\n| Q-V4 | 一个用户可能为多个 ASIN 提交评价——这些评价是否都计入同一个计划的完成度? | P1 |\n 421|\n### 7.9 KOC/KOL 协作4 项)\n 423|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-K1 | JOYCOLLAB 中 KOC/KOL 数据字段有哪些?(粉丝量、平台、国家、历史效果——文档提到但需确认完整字段) | **P0** |\n| Q-K2 | 「匹配 KOC/KOL」是运营人工选择还是系统自动推荐推荐算法依赖什么数据 | P1 |\n| Q-K3 | Code 是 JOYCOLLAB 生成还是 USER 系统生成?是一对一(每个 KOC 独立 Code还是一对多 | P1 |\n| Q-K4 | KOC/KOL 的财务结算(提成/返点)是完全在财务系统还是在 USER 系统内触发? | P1 |\n 430|\n### 7.10 数据迁移与历史兼容3 项)\n 432|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-D1 | 现有 USER 后台 ERP 系统(`C:\\XCODE\\USER`)是否完全废弃还是部分模块保留?新旧系统切换策略? | **P0** |\n| Q-D2 | 历史数据(已有评价记录、用户数据、工单记录)是否需要迁移到新系统?迁移范围和清洗策略? | **P0** |\n| Q-D3 | 旧系统中存在的用户额度数据如何初始化?(历史测评次数、免评次数、累计评价数如何确定?) | **P0** |\n 438|\n### 7.11 项目分期与 MVP 范围5 项)\n 440|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-M1 | 项目一期MVP的最小范围是什么9 个子系统中哪些是必须的、哪些可以二期再做? | **P0** |\n| Q-M2 | MVP 先支持哪个 Amazon 站点?(.com还是多站点先支持哪种计划类型推新/回评/免评全部 or 先做回评?) | **P0** |\n| Q-M3 | 前端应用的优先级——7 个前端中哪些是 MVP 必须有?(客服工作台+运营工作台?还是全部都要?) | **P0** |\n| Q-M4 | 项目整体时间线和里程碑约束6 个月1 年?是否有硬性 deadline | P1 |\n| Q-M5 | 开发团队规模和结构?(几个后端开发?几个前端?是否有专职 QA是否支持 9 个子系统并行开发? | P1 |\n 448|\n### 7.12 基础设施与部署6 项)\n 450|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-IN1 | 部署环境?(云厂商 AWS/阿里云?自建机房?)是否已有 Kubernetes 集群或考虑容器化部署? | **P0** |\n| Q-IN2 | 数据库选型PostgreSQL / MySQL每子系统独立数据库还是共享数据库是否已有数据库团队和规范 | **P0** |\n| Q-IN3 | 子系统间异步通信方案消息队列Kafka/RabbitMQ/Redis还是全部同步 HTTP | **P0** |\n| Q-IN4 | API 网关选型Kong/Nginx/自研认证鉴权方案JWT/OAuth2/SSO | P1 |\n| Q-IN5 | 日志、监控、链路追踪方案ELK/Prometheus+Grafana/Jaeger是否已有公司级基础设施可复用 | P1 |\n| Q-IN6 | 灾备和容灾要求RPO/RTO 目标?是否需要多可用区/异地容灾?数据备份频率?) | P2 |\n 459|\n### 7.13 安全与合规5 项)\n 461|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-SC1 | 是否有需要通过的安全合规认证SOC2 / ISO 27001 / 等保?)对系统架构有何约束? | P1 |\n| Q-SC2 | 用户个人数据邮箱、电话、地址、设备号的保留和删除策略GDPR 的「被遗忘权」如何处理?) | P1 |\n| Q-SC3 | Amazon 的 API 使用条款SP-API Acceptable Use Policy对数据存储和使用的限制评价数据是否可以长期存储 | P1 |\n| Q-SC4 | 系统权限模型RBAC角色和权限的粒度是否需要支持数据行级权限——例如不同站点的运营只看自己的 ASIN | P1 |\n| Q-SC5 | 敏感数据收款信息、设备号的加密存储方案传输加密TLS要求 | P2 |\n 469|\n### 7.14 技术栈与规范4 项)\n 471|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-TS1 | 后端技术栈偏好Python/FastAPIGoNode.jsJava是否有公司技术栈约束 | P1 |\n| Q-TS2 | 前端技术栈偏好React/Vue/Angular是否有公司前端组件库或设计系统可复用 | P1 |\n| Q-TS3 | API 规范标准OpenAPI 3.0gRPC是否需要 BFFBackend for Frontend | P2 |\n| Q-TS4 | 代码仓库策略Monorepo or Polyrepo9 个子系统分仓库还是一仓库CI/CD 工具?) | P2 |\n 478|\n### 7.15 多站点与多市场4 项)\n 480|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-MS1 | 系统需要支持多少个 Amazon 站点?(.com / .co.uk / .de / .fr / .it / .es / .jp / .ca不同站点的业务流程是否一致 | **P0** |\n| Q-MS2 | 多站点下「真实人」归并是否跨站点?(同一个真实人在 .com 和 .co.uk 用不同邮箱/账号——是否归并为同一人?) | P1 |\n| Q-MS3 | 额度规则是否跨站点?(测评 4 次是每个站点独立还是全局?累计 12 个评价呢?) | P1 |\n| Q-MS4 | 未来是否扩展到 Amazon 以外的平台eBay/Walmart/独立站)?架构上需要预留扩展点吗? | P2 |\n 487|\n### 7.16 内容与素材管理3 项)\n 489|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-CM1 | EDM 模板、IM 推送话术、APP Push 文案的创建和维护由谁负责?(内容运营?用户运营?)是否需要独立的内容管理子系统? | P1 |\n| Q-CM2 | 多语言内容策略?(面向美国用户的英文消息、面向德国用户的德语消息——模板由谁翻译和维护?系统是否需要自动翻译?) | P1 |\n| Q-CM3 | 图片/视频素材(产品图片、测评指引图)的存储和管理?是否需要 CDN | P2 |\n 495|\n### 7.17 业务量级预估4 项)\n 497|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-BV1 | 系统需要管理的 ASIN 数量级?(几十个?几百个?几千个?) | P1 |\n| Q-BV2 | 日活跃用户数APP 端日触达消息量IM+EDM+APP Push+TEL | P1 |\n| Q-BV3 | 客服团队规模?(几个组?每组多少人?峰值工单量?) | P1 |\n| Q-BV4 | 峰值场景预估Prime Day / Black Friday 期间流量和触达量是平时的几倍?) | P2 |\n 504|\n### 7.18 外部系统对接细节4 项)\n 506|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-EX1 | 各外部系统的 SLA 和可用性Amazon SP-API 的 rate limitJOYHUB 的响应时间?)当外部系统不可用时的降级策略? | P1 |\n| Q-EX2 | 外部系统的认证方式Amazon SP-API 的 OAuth 授权流程JOYHUB 的 API Key谁负责管理这些凭证 | P1 |\n| Q-EX3 | 数据同步的增量 or 全量策略Amazon 订单是增量拉取最近 N 天还是全量同步JOYHUB 用户数据呢?) | P1 |\n| Q-EX4 | 外部系统数据格式和字段映射是否已有文档Amazon 订单字段→系统内部字段的映射关系?) | P2 |\n 513|\n---\n 515|\n## 8. 待确认的内外边界\n 517|\n> 以下边界由于文档信息不足,标记为「待确认」,需要在后续与业务方或技术团队确认。\n 519|\n| # | 边界问题 | 影响范围 | 建议确认方式 |\n| --- | --- | --- | --- |\n| B1 | **内容/素材管理归属**EDM 模板、IM 推送话术、APP Push 文案由哪个子系统管理?是 outreach 内的内容模块,还是独立的内容管理子系统? | outreach | 与内容运营角色确认工作流 |\n| B2 | **品牌/内容运营角色**:文档提到品牌运营和内容运营但目前不展开。他们是否需要独立前端?需求何时明确? | planning / creator | 与业务方确认是否一期纳入 |\n| B3 | **数据仓库/BI 边界**:文档明确「完整 BI/财务/ROI 系统」不在本版主流程,但管理驾驶舱涉及聚合看板。看板数据是子系统直接提供聚合 API 还是走独立数据仓库? | 全部 | 与数据团队确认数据架构 |\n| B4 | **外部系统降级策略**Amazon API 不可用时哪些功能可以降级运行JOYHUB 不可用时用户身份如何兜底? | identity / planning / review | 制定 SLA 和降级方案 |\n| B5 | **多语言支持**:系统前端是否只面向菲律宾客服(英文?)还是国内团队也使用(中文?) | 所有前端 | 确认各前端的语言需求 |\n| B6 | **定时任务归属**自动需求触发、EDM 批处理、超时检测、评价核验等定时任务在各子系统内实现还是有统一调度器? | 多个子系统 | 确认是否引入统一任务调度 |\n 528|\n---\n 530|\n## 9. 附录:子系统文档索引\n 532|\n| 文档 | 描述 |\n| --- | --- |\n| [01-子系统-用户身份与上下文](01-子系统-用户身份与上下文.md) | 真实人归并、用户上下文卡、设备识别 |\n| [02-子系统-需求与计划管理](02-子系统-需求与计划管理.md) | 需求触发、计划生命周期、审批工作流 |\n| [03-子系统-额度与频控](03-子系统-额度与频控.md) | 额度台账、频控引擎、预占释放 |\n| [04-子系统-多渠道触达引擎](04-子系统-多渠道触达引擎.md) | IM/EDM/APP/TEL 调度与执行 |\n| [05-子系统-客服工单与管理](05-子系统-客服工单与管理.md) | 工单管理、客服管理支撑 |\n| [06-子系统-风险与反欺诈](06-子系统-风险与反欺诈.md) | 风险判断、黑名单、双重退款 |\n| [07-子系统-评价结果追踪](07-子系统-评价结果追踪.md) | 评价提交、展示核验、结果回流 |\n| [08-子系统-KOC-KOL协作](08-子系统-KOC-KOL协作.md) | KOC/KOL 匹配、内容跟踪、JOYCOLLAB 同步 |\n| [09-子系统-审计与通知中心](09-子系统-审计与通知中心.md) | 审计日志、多类型通知告警 |\n 544|",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/01-子系统-用户身份与上下文",
"type": "document",
"name": "子系统 01 — 用户身份与上下文 (`identity`) v1.0",
"filePath": "05_需求文档/01-子系统-用户身份与上下文.md",
"summary": "子系统 01 — 用户身份与上下文 identity v1.0 子系统概述 维度 说明 代号 identity 核心职责 真实人识别与归并、身份线索关联、用户上下文卡生成 数据所有权 person profiles , person identity links , contact context snapshots , device records 启动依",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 01 — 用户身份与上下文 (`identity`) v1.0\n\n## 子系统概述\n\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `identity` |\n| 核心职责 | 真实人识别与归并、身份线索关联、用户上下文卡生成 |\n| 数据所有权 | `person_profiles`, `person_identity_links`, `contact_context_snapshots`, `device_records` |\n| 启动依赖 | 无硬依赖(需 JOYHUB 数据同步到位) |\n| 外部系统依赖 | JOYHUB用户数据、APP设备数据 |\n\n---\n\n## 1. 模块划分\n\n### 整体模块图\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ identity 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 身份线索 │ │ M2: 真实人 │ │ M3: 用户上下 │ │\n│ │ 采集与同步 │→│ 归并引擎 │→│ 文卡服务 │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: 设备变化 │ │ M5: 身份管理 │ │ M6: 对外 API │ │\n│ │ 识别 │ │ Admin │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n\n### 模块明细\n\n| # | 模块 | 代号 | 职责 |\n| --- | --- | --- | --- |\n| M1 | 身份线索采集与同步 | `identity-ingest` | 从 JOYHUB、APP 等外部系统拉取/接收身份线索JOYHUB ID、邮箱、电话、设备号、订单关联 |\n| M2 | 真实人归并引擎 | `person-merge` | 按标准姓名+地址、多线索交叉权重归并,生成/更新真实人 ID |\n| M3 | 用户上下文卡服务 | `context-card` | 聚合身份+交易+服务+风险+设备+触达全量数据生成上下文快照 |\n| M4 | 设备变化识别 | `device-tracker` | 识别设备号变化、换机、多设备场景,记录设备变化日志 |\n| M5 | 身份管理 Admin | `identity-admin` | 人工归并/拆分操作、归并冲突处理、身份数据校正 |\n| M6 | 对外 API Gateway | `identity-api` | 向其他子系统提供真实人查询、上下文卡查询、归并请求等 API |\n\n---\n\n## 2. 各模块内外说明\n\n### 2.1 M1: 身份线索采集与同步\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 管理外部系统的数据同步任务(定时拉取 JOYHUB 用户数据、设备数据);解析和标准化各来源的身份线索(邮箱规范化、电话格式化、地址标准化);写入 `person_identity_links` 表 |\n| **对外接口** | `POST /internal/identity/ingest — 接收上游推送的身份线索`;同步调度器可配置频率 |\n| **数据写入** | `person_identity_links`(线索类型 + 线索值 + 来源系统 + 采集时间) |\n\n### 2.2 M2: 真实人归并引擎\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 执行归并规则:标准姓名+地址一致→同一真实人;多线索交叉(设备+电话+邮箱+收款信息)按权重打分;地址一致姓名不同→标记家庭关联但不合并;生成真实人 ID、归并证据、置信度 |\n| **对外接口** | `POST /api/identity/merge — 触发归并`;返回归并结果(真实人 ID + 置信度) |\n| **数据写入** | `person_profiles`(真实人创建/更新)、`person_identity_links`(关联关系更新) |\n| **关键规则** | 邮箱不同+JOYHUB ID 不同不能单独否定「同一真实人」;订单号命中历史异常需拉出风险记录 |\n\n### 2.3 M3: 用户上下文卡服务\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 聚合 6 组字段(当前身份、真实人归并、历史交易、历史服务、历史风险、当前设备、触达历史);生成上下文快照(含快照时间);首次生成 vs 增量更新 |\n| **对外接口** | `GET /api/identity/context/{person_id} — 获取用户上下文卡`;返回聚合后的全量上下文 |\n| **数据写入** | `contact_context_snapshots` |\n| **依赖其他子系统** | 交易数据来自 planning服务数据来自 support风险数据来自 risk触达数据来自 outreach通过 API 聚合或事件) |\n\n### 2.4 M4: 设备变化识别\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 监控同一 JOYHUB ID 下设备号变化;记录换机/多设备事件关联设备型号、系统版本、APP 版本变化 |\n| **对外接口** | 内部事件 `device.changed` 供其他模块消费 |\n| **数据写入** | `device_records`(设备变化时间、变化类型) |\n| **待确认** | 多久内的设备变化算「近期换机」?多设备同时活跃如何标记? |\n\n### 2.5 M5: 身份管理 Admin\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 提供人工归并操作界面(两个真实人合并为一个);归并拆分(合并错了如何回退);冲突处理(系统自动归并 vs 人工判定不一致时) |\n| **对外接口** | 管理 API不对其他子系统暴露 |\n| **数据写入** | 所有身份相关表(权限控制) |\n\n### 2.6 M6: 对外 API Gateway\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 统一对外 API 认证、限流、日志 |\n| **对外接口** | `GET /api/identity/person?线索类型=&线索值=` — 按线索查真实人;`GET /api/identity/context/{person_id}` — 用户上下文卡;`POST /api/identity/batch-check` — 批量身份查询 |\n\n---\n\n## 3. 对外 API 契约(草案)\n\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 按线索查真实人 | `GET /api/identity/person` | `?type=email&value=xxx@yy.com` 或 `?type=joyhub_id&value=123` | `{person_id, confidence, matched_clues[]}` | 所有子系统 |\n| 获取用户上下文卡 | `GET /api/identity/context/{person_id}` | `person_id` | `{identity, transactions, services, risks, devices, outreach_history}` | support, risk, outreach |\n| 批量身份查询 | `POST /api/identity/batch-check` | `[{type, value}, ...]` | `[{person_id, confidence}, ...]` | planning, outreach |\n| 触发归并 | `POST /api/identity/merge` | `{clues: [{type, value}, ...]}` | `{person_id, is_new, confidence}` | outreach每次互动时调用 |\n\n---\n\n## 4. 数据对象(本子系统写入)\n\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `person_profiles` | person_id, status, created_at, updated_at, merge_evidence | 真实人主表 |\n| `person_identity_links` | person_id, clue_type (JOYHUB_ID/EMAIL/PHONE/DEVICE/ORDER_NAME_ADDRESS), clue_value, source, confidence, linked_at | 身份线索关联表 |\n| `contact_context_snapshots` | person_id, snapshot_time, identity_snapshot, transaction_snapshot, service_snapshot, risk_snapshot, device_snapshot, outreach_snapshot | 上下文快照 |\n| `device_records` | person_id, joyhub_id, device_id, device_model, os_version, app_version, change_type (NEW/SWITCH/MULTI), recorded_at | 设备变化记录 |\n\n---\n\n## 5. 业务澄清问题清单 — identity\n\n### 5.1 真实人归并规则4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-01 | 标准姓名+地址的「标准化」规则是什么?(大小写、空格、缩写如 St./Street、middle name 处理?)标准化在哪个模块做? | **P0** |\n| I-02 | 归并是多线索交叉权重打分——各维度的权重如何设定?(邮箱=0.3、设备=0.4、电话=0.2、收款=0.5?由谁定义?可否动态调整?) | **P0** |\n| I-03 | 归并是完全自动执行还是部分需要人工审核?触发人工审核的条件是什么?(置信度 < 多少?涉及风险用户?) | **P0** |\n| I-04 | 自动归并错误后如何拆分?拆分时如何处理已关联的历史评价和额度数据?(评价归属、额度扣减是否回滚?) | **P0** |\n\n### 5.2 非 APP 用户处理3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-05 | 非 APP 用户的邮箱从哪里来Amazon 订单中的买家邮箱EDM 列表?客服录入?)邮箱质量/有效性如何保证? | **P0** |\n| I-06 | 只有邮箱没有设备号的非 APP 用户,归并置信度是否单独设置较低阈值?这种情况下如何确定是同一真实人? | P1 |\n| I-07 | EDM 引导用户注册 APP 后——如何识别「这个新 APP 用户就是之前那个 EDM 邮箱用户」?(注册时要求填同一邮箱?设备号关联?) | P1 |\n\n### 5.3 设备与多账号3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-08 | 「同设备多账号」的风险判断——同一个设备号关联了多个 JOYHUB ID哪些情况正常家庭共用哪些算风险信号 | P1 |\n| I-09 | 设备号变化的识别窗口——同一个 JOYHUB ID 下,设备号变化间隔多久内算「近期换机」? | P1 |\n| I-10 | APP 卸载重装导致设备号变化怎么处理?(卸载重装可能生成新设备号) | P2 |\n\n### 5.4 用户上下文卡3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-11 | 上下文卡的「快照」保留几份?每次互动生成新快照(保留历史)还是覆盖(只保留最新一份)?保留历史的话保留多久? | P1 |\n| I-12 | 上下文卡中的历史交易、历史服务等数据是从其他子系统实时拉取还是从本地冗余存储读取?(涉及跨子系统数据一致性) | P1 |\n| I-13 | 上下文卡是否需要在某个条件触发时预生成(如用户接入前),还是每次实时生成? | P2 |\n\n### 5.5 数据同步2 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-14 | JOYHUB 数据同步频率?(实时/每小时/每天同步方式API 拉取 / 消息队列 / 数据库直连?) | **P0** |\n| I-15 | JOYHUB 和 APP 端的数据字段完整清单是否已有注册邮箱、设备号、设备型号、APP 版本、系统版本、绑定玩具、活跃行为——文档已列出但需确认是否有遗漏) | **P0** |\n\n### 5.6 身份数据生命周期4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-16 | 用户数据保留策略——身份线索和历史快照保留多久6个月1年永久超出保留期后是归档还是删除 | P1 |\n| I-17 | 用户注销/数据删除请求如何处理?(用户要求删除所有个人数据——如何标记而不是物理删除以保持额度/风险记录的完整性?) | P1 |\n| I-18 | 「被遗忘权」实操——删除真实人记录后,与之关联的额度、风险、评价如何处理?(匿名化保留?还是级联删除?) | P1 |\n| I-19 | 用户主动修改关键身份信息(换邮箱、换电话)——系统如何感知和响应?(自动触发重新归并?还是保持原关联?) | P1 |\n\n### 5.7 多站点与跨平台身份3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-20 | 同一个自然人在 Amazon.com 和 Amazon.co.uk 用不同邮箱和地址——是否跨站点归并为同一个「真实人」? | P1 |\n| I-21 | 未来扩展到非 Amazon 平台eBay/Walmart/独立站)——真实人体系是否需要跨平台?架构预留? | P2 |\n| I-22 | 不同国家站点的地址标准化规则不同US→州/邮编、UK→郡/邮编、DE→邮编/城市)——标准化引擎如何处理? | P2 |\n\n### 5.8 归并冲突与人工干预3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-23 | 系统自动归并和人工判定冲突时,以谁为准?(人工优先?系统告警→人工确认?)冲突记录保留多久? | P1 |\n| I-24 | 人工拆分归并的操作是否需要审批?(谁来审批?审批流程?)拆分的审计记录保留什么字段? | P1 |\n| I-25 | 是否存在「不确定」状态的真实人?(置信度太低无法归并,标记为「待定」——如何流转到人工审核?) | P1 |\n\n### 5.9 实施层面3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| I-26 | 身份归并是实时还是异步?(用户接入时实时归并→阻塞用户体验 vs 异步归并→可能用旧数据?) | P1 |\n| I-27 | 上下文卡聚合的性能要求——单次查询需要在多少 ms 内返回?(涉及跨子系统调用时的超时和降级) | P2 |\n| I-28 | 如果 JOYHUB 数据同步中断identity 子系统如何降级?(用缓存数据?标记为「数据可能过期」?) | P1 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/02-子系统-需求与计划管理",
"type": "document",
"name": "子系统 02 — 需求与计划管理 (`planning`) v1.0",
"filePath": "05_需求文档/02-子系统-需求与计划管理.md",
"summary": "子系统 02 — 需求与计划管理 planning v1.0 子系统概述 维度 说明 代号 planning 核心职责 需求触发(人工/自动)、需求评估、计划生成(推新/回评/免评、审批工作流、ASIN 基础信息管理 数据所有权 demands , plans , plan items , approval records , asin catalog 启",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 02 — 需求与计划管理 (`planning`) v1.0\n\n## 子系统概述\n\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `planning` |\n| 核心职责 | 需求触发(人工/自动)、需求评估、计划生成(推新/回评/免评、审批工作流、ASIN 基础信息管理 |\n| 数据所有权 | `demands`, `plans`, `plan_items`, `approval_records`, `asin_catalog` |\n| 启动依赖 | identity软依赖无 identity 可操作但无法做人群匹配) |\n| 外部系统依赖 | AmazonASIN 数据、销售数据、评价缺口) |\n\n---\n\n## 1. 模块划分\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ planning 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 需求管理 │ │ M2: 计划引擎 │ │ M3: 审批工作 │ │\n│ │ (Demand) │→│ (Plan) │→│ 流 │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: 自动触发 │ │ M5: ASIN管理 │ │ M6: 对外 API │ │\n│ │ 规则引擎 │ │ │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n\n| # | 模块 | 代号 | 职责 |\n| --- | --- | --- | --- |\n| M1 | 需求管理 | `demand-mgr` | 需求创建、评估(成立/待补充/驳回)、优先级管理、需求与 ASIN 关联 |\n| M2 | 计划引擎 | `plan-engine` | 从已确认需求生成计划(推新/回评/免评)、计划生命周期管理、计划项拆解 |\n| M3 | 审批工作流 | `approval-workflow` | 计划审批链Amazon 运营总监→用户负责人→渠道负责人)、审批记录 |\n| M4 | 自动触发规则引擎 | `auto-trigger` | 按 ASIN 健康度、评价缺口自动触发需求;定时评估触发条件 |\n| M5 | ASIN 管理 | `asin-catalog` | ASIN 基础信息、评分、评价数、Listing 健康状态维护 |\n| M6 | 对外 API Gateway | `planning-api` | 向其他子系统提供计划查询、ASIN 查询、审批状态查询 API |\n\n---\n\n## 2. 各模块内外说明\n\n### 2.1 M1: 需求管理\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | Amazon 运营人工提需求(选择 ASIN、指定类型推新/回评/免评、目标数量、周期);用户运营评估需求(查 ASIN 健康、目标数量、历史完成、当前资源);评估结果:已确认/待补充/驳回 |\n| **对外接口** | `POST /api/demands` — 创建需求;`PUT /api/demands/{id}/evaluate` — 评估需求 |\n| **数据写入** | `demands` |\n| **依赖** | `GET /api/identity/person` — 评估时可能需要运营人员身份 |\n| **待确认** | 需求是否有优先级字段P0/P1/P2驳回后是否允许重新提交 |\n\n### 2.2 M2: 计划引擎\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 从已确认需求生成计划草案(类型:推新/回评/免评);计划参数(目标 ASIN、目标数量、周期、预算、备注计划状态流转计划项拆解将计划拆成可分配给渠道的执行单元 |\n| **对外接口** | `POST /api/plans` — 创建计划;`PUT /api/plans/{id}/status` — 更新状态;`GET /api/plans/{id}/items` — 获取计划项 |\n| **数据写入** | `plans`, `plan_items` |\n| **依赖** | `GET /api/quota/check` — 生成人群前查询额度;`GET /api/risk/check` — 计划复核时查询风险 |\n| **待确认** | 计划是否可以包含多个 ASIN推新和回评是否可以合并为一个计划 |\n\n### 2.3 M3: 审批工作流\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 按计划类型路由不同审批链测评→Amazon运营总监 / 回评→总监或指定负责人 / 免评→总监+用户负责人 / 紧急→运营负责人+用户负责人+主管);周/月推送计划审批(用户负责人→渠道负责人);审批节点(通过/驳回/待补充) |\n| **对外接口** | `POST /api/approvals/{plan_id}/submit` — 提交审批;`PUT /api/approvals/{plan_id}/review` — 审批决策 |\n| **数据写入** | `approval_records` |\n| **依赖** | `GET /api/identity/person` — 获取审批人身份 |\n| **待确认** | 审批链是否可以动态配置(不同站点/国家不同审批人)?驳回后修改再提交是否需要重新走完整审批链? |\n\n### 2.4 M4: 自动触发规则引擎\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 定时扫描 ASIN 健康状态(评分、评价数、差评比例);当满足触发条件时自动创建需求(无需人工干预);触发规则可配置 |\n| **对外接口** | 内部定时任务,不对外暴露 |\n| **数据写入** | `demands`(自动生成的需求) |\n| **依赖** | `GET /api/reviews/asin-health` 或本地 ASIN 数据 |\n| **待确认** | 自动触发后是否需要人工确认还是直接进入评估?自动触发的优先级如何设定? |\n\n### 2.5 M5: ASIN 管理\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | ASIN 基础信息ASIN 码、标题、品类、站点评分、评价总数、差评数Listing 健康状态(活跃/风险/下架);与计划的关联关系 |\n| **对外接口** | `GET /api/asins/{asin}` — ASIN 详情;`GET /api/asins?status=at_risk` — 需关注的 ASIN 列表 |\n| **数据写入** | `asin_catalog` |\n| **依赖** | Amazon 数据同步(外部系统) |\n| **待确认** | ASIN 数据是否已在 JOYHUB 或其他系统中维护?是否需要新建还是复用? |\n\n### 2.6 M6: 对外 API Gateway\n\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 统一对外 API 认证、限流、日志 |\n| **对外接口** | `GET /api/plans?status=approved` — 待执行计划outreach 消费);`GET /api/plans/{id}` — 计划详情review 消费);`GET /api/asins/{asin}` — ASIN 查询 |\n\n---\n\n## 3. 对外 API 契约(草案)\n\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 创建需求 | `POST /api/demands` | `{asin, type, target_count, period, priority}` | `{demand_id, status}` | 运营前端 |\n| 评估需求 | `PUT /api/demands/{id}/evaluate` | `{decision, reason}` | `{status}` | 用户运营前端 |\n| 创建计划 | `POST /api/plans` | `{demand_id, type, params}` | `{plan_id}` | 用户运营前端 |\n| 待执行计划列表 | `GET /api/plans?status=approved` | 无 | `[{plan_id, type, items}]` | outreach |\n| 计划详情 | `GET /api/plans/{id}` | `plan_id` | 完整计划含审批记录 | review / outreach |\n| ASIN 查询 | `GET /api/asins/{asin}` | `asin` | ASIN 详情+健康状态 | 所有子系统 |\n\n---\n\n## 4. 数据对象\n\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `demands` | demand_id, asin, type (NEW/REVIEW/EXEMPTION), target_count, period, status (PENDING/EVALUATING/CONFIRMED/REJECTED/WAITING), priority, created_by, evaluated_by, created_at | 需求主表 |\n| `plans` | plan_id, demand_id, type, status (DRAFT/REVIEW/APPROVED/EXECUTING/COMPLETED/CANCELLED), target_count, period, created_at | 计划主表 |\n| `plan_items` | item_id, plan_id, asin, item_type, target_count, assigned_channel, status | 计划执行项 |\n| `approval_records` | approval_id, plan_id, approver, decision, comment, decided_at, step_order | 审批记录 |\n| `asin_catalog` | asin, title, category, marketplace, rating, review_count, negative_count, health_status, last_synced_at | ASIN 信息 |\n\n---\n\n## 5. 业务澄清问题清单 — planning\n\n### 5.1 需求与计划模型5 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-01 | 一个需求是否可以生成多个计划?(例如一个回评需求拆分到 IM 计划和 EDM 计划)还是一对一? | **P0** |\n| P-02 | 计划是否可以跨 ASIN一个推新计划覆盖 3 个新 ASIN还是每个计划只针对一个 ASIN | **P0** |\n| P-03 | 计划中的「目标数量」是指目标评价数还是目标触达用户数?(如果转化率 2%,要得到 10 个评价需触达 500 人) | **P0** |\n| P-04 | 计划的「周期」是什么粒度?(周/月/自定义日期范围?)周期结束后未完成的计划如何处理? | P1 |\n| P-05 | 需求是否有优先级P0/P1/P2 或高/中/低?)优先级影响什么?(审批速度?资源分配?) | P1 |\n\n### 5.2 审批流程4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-06 | 文档提到「免评计划 → Amazon 运营总监 + 用户负责人」审批——是两者都必须通过(会签)还是任一通过即可(或签)? | **P0** |\n| P-07 | 「指定负责人」的指定规则是什么?(按 ASIN 品类?按站点?按当前负载?人工指定?) | P1 |\n| P-08 | 审批超时如何处理?(审批人 N 天未处理,自动通过?自动驳回?升级到上级?) | P1 |\n| P-09 | 审批驳回后修改再提交,审批链是否重置还是从当前节点继续? | P1 |\n\n### 5.3 自动触发3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-10 | 自动触发的具体阈值是什么?(① ASIN 评分低于多少?② 差评在最近 N 天新增多少?③ 评价总数 < 目标值?) | **P0** |\n| P-11 | 自动触发是每天跑一次还是实时监控?(如果是实时,高频变化的 ASIN 会不会重复触发?) | P1 |\n| P-12 | 自动触发生成的需求是否自动进入评估环节还是需要人工确认后才进入? | P2 |\n\n### 5.4 ASIN 管理3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-13 | ASIN 数据来源和更新频率?(从 Amazon API 拉取T+1实时手动导入 | **P0** |\n| P-14 | ASIN 的「Listing 健康状态」如何定义?(评分 ≥ 4.2 = 健康?差评率 < X%?)健康度是否有多个等级? | P1 |\n| P-15 | ASIN 是否有关联关系?(变体 ASIN、父 ASIN-子 ASIN关联合并还是独立管理 | P2 |\n\n### 5.5 计划执行衔接2 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-16 | 计划审批通过后如何流转到 outreach 子系统planning 主动推送outreach 定时拉取?事件通知?) | P1 |\n| P-17 | 计划执行过程中是否可以调整目标数量或周期?调整是否需要重新审批? | P2 |\n\n### 5.6 计划模板与复用3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-18 | 是否需要计划模板功能?(对常推的 ASIN 创建可复用的计划模板——模板包含预设的渠道/目标数/周期?) | P1 |\n| P-19 | 周期性计划(如「每月 1 号自动对 ASIN X 发起回评计划」)是否支持?谁有权限创建? | P2 |\n| P-20 | 计划是否可以暂停/恢复?(执行中因库存或供应链原因需暂停——暂停期间已触达的用户如何处理?) | P1 |\n\n### 5.7 预算与资源管理3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-21 | 计划是否有预算字段返款金额、Code 成本、KOC 费用——是否需要预算审批?超出预算如何处理?) | P1 |\n| P-22 | 资源容量规划——同时可执行的计划数是否有上限?(受限于客服人力/EDM发送额度/IM频控 | P1 |\n| P-23 | 是否需要计划执行成本的 ROI 计算?(返款总额 / 获得的评价数 = 单评价成本——系统自动计算还是手动录入?) | P2 |\n\n### 5.8 季节性/大促处理3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-24 | Prime Day / Black Friday 等大促期间的计划是否有特殊处理?(提前锁定额度、加大推送量、豁免某些频控规则?) | P1 |\n| P-25 | 大促前的「预热计划」和大促后的「回评计划」是否需要在系统中作为计划间的依赖关系来管理? | P2 |\n| P-26 | 季节性产品(圣诞装饰、夏季用品)的计划是否有时间敏感度标记?(错过季节窗口的计划自动降级?) | P2 |\n\n### 5.9 多站点/多市场3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-27 | 不同 Amazon 站点的计划是否可以统一管理?(同一个 ASIN 在不同站点是独立计划还是关联计划?) | P1 |\n| P-28 | 多站点的审批人是否不同?(.com 的运营总监和 .co.uk 的运营总监可能是不同人) | P1 |\n| P-29 | 跨站点需求的冲突检测?(.com 和 .de 同时对同一真实的同一用户做了不同计划——算不算冲突?) | P2 |\n\n### 5.10 实施层面3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| P-30 | 自动触发生成的需求如果无人处理(评估超时),是否自动驳回还是升级通知? | P1 |\n| P-31 | 审批工作流引擎——是否有现成的审批引擎可复用?(还是需要从零开发状态机?) | P2 |\n| P-32 | 计划执行过程中用户反馈「不想再收到」——是标记为退订outreach 处理)还是需要回写到 planning 的计划状态中? | P1 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/03-子系统-额度与频控",
"type": "document",
"name": "子系统 03 — 额度与频控 (`quota`) v1.0",
"filePath": "05_需求文档/03-子系统-额度与频控.md",
"summary": "子系统 03 — 额度与频控 quota v1.0 2 子系统概述 4 维度 说明 代号 quota 核心职责 额度台账测评4/免评4/累计12、额度预占与释放、频控规则引擎、发送前终校 数据所有权 person quota ledgers , quota reservations , frequency control records 启动依赖 ide",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 03 — 额度与频控 (`quota`) v1.0\n 2|\n## 子系统概述\n 4|\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `quota` |\n| 核心职责 | 额度台账测评4/免评4/累计12、额度预占与释放、频控规则引擎、发送前终校 |\n| 数据所有权 | `person_quota_ledgers`, `quota_reservations`, `frequency_control_records` |\n| 启动依赖 | identity软依赖额度按真实人计算未归并时按单一账号 |\n| 外部系统依赖 | 无直接外部依赖 |\n 12|\n---\n 14|\n## 1. 模块划分\n 16|\n```\n┌─────────────────────────────────────────────────────────────┐\n│ quota 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 额度台账 │ │ M2: 预占管理 │ │ M3: 频控引擎 │ │\n│ │ (Ledger) │→│ (Reservation)│ │ (FreqCtrl) │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: 终校服务 │ │ M5: 额度管理 │ │ M6: 对外 API │ │\n│ │ (FinalCheck)│ │ Admin │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n 34|\n| # | 模块 | 代号 | 职责 |\n| --- | --- | --- | --- |\n| M1 | 额度台账 | `quota-ledger` | 维护真实人三层额度测评4/免评4/累计12、已用/进行中/已预占计数 |\n| M2 | 预占管理 | `reservation-mgr` | 额度预占创建、确认占用、超时释放;跨计划重复入选检测 |\n| M3 | 频控引擎 | `freq-control` | 渠道频控IM/EDM/APP/TEL 最近触达间隔)、单 ASIN 短期触达次数、退订/投诉屏蔽 |\n| M4 | 终校服务 | `final-check` | 发送前合并校验(最新额度 + 最新风险 + 最新未关闭工单),准入/撤出决策 |\n| M5 | 额度管理 Admin | `quota-admin` | 额度手动调整、额度重置、额度审计 |\n| M6 | 对外 API Gateway | `quota-api` | 供 planning人群生成、outreach发送前校验、review提交后确认调用 |\n 43|\n---\n 45|\n## 2. 各模块内外说明\n 47|\n### 2.1 M1: 额度台账\n 49|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 按真实人维护三种额度:月度测评(已完成+进行中+已预占、月度免评同上、累计真实提交评价永久累计额度计数时点明确提交评价立即计数12、不会因 Amazon 未展示回退);接近上限时预警 |\n| **对外接口** | `GET /api/quota/ledger/{person_id}` — 读取当前台账 |\n| **数据写入** | `person_quota_ledgers` |\n| **依赖** | `GET /api/identity/person` — 获取真实人 ID |\n 56|\n### 2.2 M2: 预占管理\n 58|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 人群生成时预占额度(测评/免评);计算:已用+进行中+已预占+本次拟发送 > 上限 → 拦截;剩余不足但>0 → 预警池 → 发送前人工复核;预占有效期管理,超时自动释放;并发占用控制(同一真实人跨计划重复入选检测) |\n| **对外接口** | `POST /api/quota/reserve` — 创建预占;`POST /api/quota/commit` — 确认占用;`POST /api/quota/release` — 释放预占 |\n| **数据写入** | `quota_reservations` |\n 64|\n### 2.3 M3: 频控引擎\n 66|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 四种频控维度①渠道频控IM/EDM/APP/TEL 最近触达间隔)②单 ASIN 短期内触达同一用户次数 ③用户反感度(投诉/退订状态)④用户在客服工单中暂不触达;频控规则可配置 |\n| **对外接口** | `GET /api/quota/freq-check/{person_id}?channel=IM&asin=xxx` — 频控检查 |\n| **数据写入** | `frequency_control_records` |\n| **依赖** | 触达历史来自 outreach`GET /api/outreach/history/{person_id}` |\n 73|\n### 2.4 M4: 终校服务\n 75|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 发送前做最终校验:①重新读取最新额度(防止发送和预占之间额度变化)②重新读取最新风险状态 ③重新读取最新未关闭工单;三者全部通过→准入发送;任一新增超限/风险/工单→撤出本批次 |\n| **对外接口** | `POST /api/quota/final-check` — 批量终校(输入 person_ids + plan_id返回每个的准入/撤出决策) |\n| **数据写入** | 终校结果写入审计日志 |\n| **依赖** | `GET /api/risk/check/{person_id}``GET /api/tickets?person_id=&status=open` |\n 82|\n### 2.5 M5: 额度管理 Admin\n 84|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 额度手动调整(运营确认某次测评不计入额度等);额度重置(新月份额度初始化);额度审计(谁改了什么额度) |\n| **对外接口** | 管理 API |\n 89|\n### 2.6 M6: 对外 API Gateway\n 91|\n| 维度 | 说明 |\n| --- | --- |\n| **对外接口** | `GET /api/quota/check/{person_id}?type=测评` — 额度查询+可用判断;`POST /api/quota/reserve` — 预占;`POST /api/quota/commit` — 确认;`POST /api/quota/release` — 释放;`POST /api/quota/final-check` — 终校 |\n 95|\n---\n 97|\n## 3. 对外 API 契约(草案)\n 99|\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 额度查询 | `GET /api/quota/check/{person_id}?type=REVIEW` | person_id + 额度类型 | `{used, in_progress, reserved, remaining, status(sufficient/warning/exceeded)}` | planning, outreach |\n| 批量预占 | `POST /api/quota/reserve` | `[{person_id, type, plan_id, count}]` | `[{person_id, success, reservation_id}]` | planning人群生成时 |\n| 确认占用 | `POST /api/quota/commit` | `[{reservation_id}]` | `[{reservation_id, committed}]` | review用户提交评价后 |\n| 释放预占 | `POST /api/quota/release` | `[{reservation_id}]` | `[{success}]` | planning计划取消时 |\n| 频控检查 | `GET /api/quota/freq-check/{person_id}?channel=&asin=` | person_id + 渠道 + ASIN | `{allowed, reason, cooldown_until}` | outreach发送前 |\n| 发送前终校 | `POST /api/quota/final-check` | `[{person_id, plan_id}]` | `[{person_id, decision: APPROVED/WITHDRAWN, reasons}]` | outreach发送前最后一步 |\n 108|\n---\n 110|\n## 4. 数据对象\n 112|\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `person_quota_ledgers` | ledger_id, person_id, quota_type (MONTHLY_REVIEW/MONTHLY_EXEMPTION/LIFETIME_SUBMISSION), period, used, in_progress, reserved, limit_value, status | 三层额度台账 |\n| `quota_reservations` | reservation_id, person_id, ledger_id, plan_id, count, status (RESERVED/COMMITTED/RELEASED/EXPIRED), reserved_at, expires_at | 额度预占记录 |\n| `frequency_control_records` | freq_id, person_id, channel, asin, last_contact_at, contact_count_period, status | 频控记录 |\n 118|\n---\n 120|\n## 5. 业务澄清问题清单 — quota\n 122|\n### 5.1 额度规则细化5 项)\n 124|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-01 | 月度额度按自然月还是 30 天滚动?如果是自然月:①预占在 1 月 31 日2 月 1 日释放还是保留②1 月 31 日晚 23:59 的预占跨月怎么处理? | **P0** |\n| Q-02 | 「测评 4 次」中的「次」定义:是指参与 4 个不同的测评计划,还是提交 4 条评价?(如果 1 个计划要求用户提交 3 条评价,占 3 次还是 1 次?) | **P0** |\n| Q-03 | 「累计 12 个真实提交评价」是永久上限还是可以动态调整?(例如用户长期优质且评价质量高,是否可以人工放宽?放宽流程?) | P1 |\n| Q-04 | 测评和免评额度是否独立?(测评 4 次 + 免评 4 次 = 同一真实人一月最多参与 8 个计划?)还是测评和免评共享总额度? | P1 |\n| Q-05 | 额度计算中「进行中」的定义——什么状态才算进行中?(已生成人群?已发送触达?用户已回应?已提交评价待核验?) | P1 |\n 132|\n### 5.2 预占机制4 项)\n 134|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-06 | 预占有效期多长预占后用户始终未响应多久释放1 天7 天?计划周期结束?) | **P0** |\n| Q-07 | 预占释放后是否可以自动重新分配给同一计划的其他用户?是否触发重新生成人群? | P1 |\n| Q-08 | 跨计划并发占用检测——同一真实人在计划 A 和计划 B 同时被入选,谁先预占谁得?还是按计划优先级? | P1 |\n| Q-09 | 预占是否可手动取消/释放?(运营发现某用户不应计入某计划时) | P2 |\n 141|\n### 5.3 频控规则4 项)\n 143|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-10 | 各渠道频控的具体阈值是什么IM 每日最多 X 次EDM 每周最多 Y 封APP Push 每日最多 Z 条TEL 每日最多 N 通?) | **P0** |\n| Q-11 | 频控规则是否区分计划类型?(紧急催评是否可以突破频控?) | P1 |\n| Q-12 | 频控是全局统一配置还是按用户层级可调整A 类和 C 类用户频控规则是否不同?) | P1 |\n| Q-13 | 「单 ASIN 短期触达次数」——多少天内触达多少次算超标? | P2 |\n 150|\n### 5.4 预警与异常3 项)\n 152|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-14 | 预警阈值如何设定?(剩余 1 次时预警?剩余 N% 时预警?不同类型额度预警阈值是否不同?) | P1 |\n| Q-15 | 终校中「新增风险」的判断——距离上次风险检查超过多少时间需重查?还是每次终校都实时查 risk | P1 |\n| Q-16 | 额度数据异常时的处理策略?(台账数据与预占记录不一致、预占未释放导致额度泄漏——系统如何自动发现和修复?) | P2 |\n 158|\n### 5.5 额度异常与纠错4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-17 | 用户反馈「我明明只参与了 3 次测评,系统说我已用 4 次」——申诉流程?谁有权限查台账和修正? | P1 |\n| Q-18 | 额度台账的审计追踪——每次额度变更(预占/确认/释放/手动调整)是否记录完整操作人和原因?保留多久? | P1 |\n| Q-19 | 数据异常自动检测——台账数据与预占记录之和是否需要对账?系统是否定期自动化对账并报告差异? | P1 |\n| Q-20 | 如果发现「额度泄漏」(预占未释放导致额度永久被占),系统如何自动发现和修复?(定时扫描过期预占?手动触发对账?) | P2 |\n\n### 5.6 紧急/例外处理4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-21 | 大促期间Prime Day/Black Friday是否需要临时额度提升测评 4→8由谁审批临时额度有效期 | P1 |\n| Q-22 | 高价值用户是否可以突破额度限制?(例如 KOC 级别的用户需要超额参与——人工审批流程?) | P1 |\n| Q-23 | 「紧急计划」是否可以跳过频控?(例如 Listing 评分暴跌至 3.8 需要紧急大量催评——是否豁免部分频控规则?) | P1 |\n| Q-24 | 额度手动调整是否需要审批?审批权限?(谁可以手动给某人加/减可用额度?) | P2 |\n\n### 5.7 跨站点/跨平台额度3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-25 | 额度是否跨 Amazon 站点?(.com 参与了 2 次测评 + .co.uk 参与了 3 次 → 全局算 5 次还是各自独立?) | P1 |\n| Q-26 | 累计 12 个评价是否跨站点统计?(在 .com 提交了 8 个 + .co.uk 提交了 5 个 → 是否算 13 个超限?) | P1 |\n| Q-27 | 未来扩展到非 Amazon 平台额度体系是否独立eBay 的测评额度与 Amazon 的额度是否共享?) | P2 |\n\n### 5.8 额度可见性2 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-28 | 用户是否能看到自己的额度状态APP 端显示「本月还可参与 2 次测评」——是否对用户可见?) | P2 |\n| Q-29 | 运营视角的额度看板——能否看到「全局额度使用率」「各真实人的额度分布」「额度预警用户列表」? | P1 |\n\n### 5.9 实施层面3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| Q-30 | 终校服务的性能要求——批量终校(一次可能几百人)需要在多少 ms 内完成?(涉及跨子系统调用 risk + support | P2 |\n| Q-31 | 频控规则是否需要热更新(不重启服务即可调整阈值)?配置管理方案? | P1 |\n| Q-32 | 额度台账历史数据的初始化——旧系统的数据如何映射到三层额度模型?(无「真实人」概念的老数据如何归入?) | P1 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/04-子系统-多渠道触达引擎",
"type": "document",
"name": "子系统 04 — 多渠道触达引擎 (`outreach`) v1.0",
"filePath": "05_需求文档/04-子系统-多渠道触达引擎.md",
"summary": "子系统 04 — 多渠道触达引擎 outreach v1.0 2 子系统概述 4 维度 说明 代号 outreach 核心职责 渠道路由决策、渠道去重、IM/EDM/APP Push/TEL 渠道调度执行、触达历史管理 数据所有权 channel route decisions , channel dedup records , im interaction",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 04 — 多渠道触达引擎 (`outreach`) v1.0\n 2|\n## 子系统概述\n 4|\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `outreach` |\n| 核心职责 | 渠道路由决策、渠道去重、IM/EDM/APP Push/TEL 渠道调度执行、触达历史管理 |\n| 数据所有权 | `channel_route_decisions`, `channel_dedup_records`, `im_interaction_records`, `im_flow_tags`, `edm_message_events`, `edm_user_behavior_profiles`, `app_touch_events`, `tel_call_records` |\n| 启动依赖 | identity / planning / quota均为软依赖 |\n| 外部系统依赖 | JOYHUBIM 通道、ESPEDM、FCM/APNsAPP Push、电话系统TEL |\n 12|\n---\n 14|\n## 1. 模块划分\n 16|\n```\n┌─────────────────────────────────────────────────────────────┐\n│ outreach 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 渠道路由 │ │ M2: 渠道去重 │ │ M3: IM 执行 │ │\n│ │ + 优先级 │→│ │→│ 引擎 │ │\n│ └──────────────┘ └──────────────┘ └──────┬───────┘ │\n│ │ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────┴───────┐ │\n│ │ M4: EDM 执行 │ │ M5: APP Push │ │ M6: TEL 执行 │ │\n│ │ 引擎 │ │ 引擎 │ │ 引擎 │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ │\n│ │ M7: 触达历史 │ │ M8: 对外 API │ │\n│ │ 服务 │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n 38|\n| # | 模块 | 职责 |\n| --- | --- | --- |\n| M1 | 渠道路由+优先级 | 按用户状态路由到最优渠道APP活跃→IM优先 / 未注册→EDM优先 / 高价值无响应→TEL / C类→IM免评卡片 |\n| M2 | 渠道去重 | 同一计划同一用户不重复走多渠道路由;工单中暂停自动触达;已提交待核验暂停催评 |\n| M3 | IM 执行引擎 | IM 推送、用户分层A未参与/B参与过/C长期测评人、回评/测评/免评卡片推送、催评、提交核验、返款通知 |\n| M4 | EDM 执行引擎 | EDM 发送、送达/打开/点击追踪、行为画像、节奏控制、退订/硬退信处理 |\n| M5 | APP Push 引擎 | APP 推送、触发源管理(绑定玩具/不活跃/计划到期/Listing紧急/活动)、响应追踪 |\n| M6 | TEL 执行引擎 | 电话任务生成、拨打前准备(用户画像+风险检查+历史沟通)、通话记录、重试策略 |\n| M7 | 触达历史服务 | 统一触达历史查询(跨渠道聚合)、供 quota频控、identity上下文卡调用 |\n| M8 | 对外 API Gateway | 统一对外 API |\n 49|\n---\n 51|\n## 2. 各模块内外说明\n 53|\n### 2.1 M1: 渠道路由+优先级\n 55|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 接收 planning 的已批准计划按用户状态矩阵决定渠道APP活跃+已绑定→IM首选APP低活跃→EDM补充+APP Push召回未注册→EDM首选→引导注册后转IM高价值+多次无响应→TELC类累计≥12→IM免评卡片+KOC/KOL协同 |\n| **对外接口** | `POST /api/outreach/route` — 输入计划+用户,返回路由决策 |\n| **数据写入** | `channel_route_decisions` |\n| **依赖** | `GET /api/identity/context/{person_id}` — 用户状态 |\n 62|\n### 2.2 M2: 渠道去重\n 64|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 执行去重规则(同一计划同一用户首选渠道、工单中暂停、已提交评价暂停、退订某渠道永久排除、强关联风险全暂停、弱关联降频+提示) |\n| **对外接口** | `GET /api/outreach/dedup-check?person_id=&plan_id=` |\n| **数据写入** | `channel_dedup_records` |\n| **依赖** | `GET /api/tickets?person_id=&status=open`support`GET /api/risk/check/{person_id}`risk |\n 71|\n### 2.3 M3: IM 执行引擎\n 73|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 用户分层逻辑A未参与/B参与过但<12/C≥12长期测评人分层推送策略A推回评卡片/B先催评再二次转化/C仅免评提交后的核验与流转订单号核实→登记→补全信息→返款→二次转化标签管理9 种核心标签如「xx产品已回评用户」「xx产品测评待返款用户」等 |\n| **对外接口** | `POST /api/outreach/im/send` — 发送 IM 消息 |\n| **数据写入** | `im_interaction_records`, `im_flow_tags` |\n| **依赖** | JOYHUBIM 通道);`GET /api/quota/check/{person_id}` |\n| **待确认** | IM 是 WhatsApp 还是自研 IM通道对接方式 |\n 81|\n### 2.4 M4: EDM 执行引擎\n 83|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 推送前检查(身份→风险→退订→资格→国家);行为筛选(打开/点击/回复/频率);节奏判断(适合触达/需降频/不适合发送后追踪送达→打开→点击→回复→退订转化路径下载注册APP→转IM / 直接回复邮件→生成客服工单 / 未响应→再触达队列) |\n| **对外接口** | `POST /api/outreach/edm/send` — 发送 EDM |\n| **数据写入** | `edm_message_events`, `edm_user_behavior_profiles` |\n| **依赖** | ESP 邮件服务 |\n| **待确认** | EDM 模板在哪里管理?模板变量(用户名/产品名/链接)如何填充? |\n 91|\n### 2.5 M5: APP Push 引擎\n 93|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 5 种触发源(绑定新玩具/不活跃/计划到期/Listing紧急/活动);推送前过滤(身份+风险+频控+标签);响应追踪(点击打开→落地页 / 忽略→短期不重复推 / 卸载→转EDM候选池APP 内动作分流(提交回评/测评→IM核验 / 联系客服→工单 / 浏览→更新活跃标签) |\n| **对外接口** | `POST /api/outreach/app/push` — 发送 APP Push |\n| **数据写入** | `app_touch_events` |\n| **依赖** | FCM/APNs |\n| **待确认** | 是否复用 JOYHUB 现有 Push 通道? |\n 101|\n### 2.6 M6: TEL 执行引擎\n 103|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 7 种触发场景(答应配合超时/高价值跟进/复杂售后/多次无响应/紧急Listing/Amazon来电/外呼任务);拨打前准备 5 步(查用户完整画像→查风险→查历史沟通→准备话术→生成电话工单);通话结果 5 种(售后问题解决→引导回评 / 直接配合→登记答应配合 / 拒绝→记录 / 疑似诈骗→转风险 / 未接通→重试);重试策略(<3次重拨 / ≥3次降级EDM或关闭 |\n| **对外接口** | `POST /api/outreach/tel/task` — 创建 TEL 任务 |\n| **数据写入** | `tel_call_records` |\n| **依赖** | 电话系统(外呼/来电) |\n 110|\n### 2.7 M7: 触达历史服务\n 112|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 跨渠道聚合触达历史IM/EDM/APP/TEL提供统一查询接口供 quota频控和 identity上下文卡消费 |\n| **对外接口** | `GET /api/outreach/history/{person_id}` |\n| **数据写入** | 只读聚合 |\n 118|\n---\n 120|\n## 3. 对外 API 契约(草案)\n 122|\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 触达历史 | `GET /api/outreach/history/{person_id}` | person_id | `{im[], edm[], app[], tel[]}` | quota频控, identity上下文卡 |\n| 执行触达 | `POST /api/outreach/send` | `{plan_id, person_ids[], channel, content}` | `{task_id, status}` | planning |\n| 渠道路由决策 | `POST /api/outreach/route` | `{person_id, plan_id}` | `{recommended_channel, alternatives[]}` | planning |\n| IM 消息发送 | `POST /api/outreach/im/send` | `{person_id, msg_type, content}` | `{message_id}` | 内部 |\n 129|\n---\n 131|\n## 4. 数据对象\n 133|\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `channel_route_decisions` | decision_id, person_id, plan_id, selected_channel, reason, decided_at | 渠道路由决策 |\n| `channel_dedup_records` | dedup_id, person_id, plan_id, channel, status(BLOCKED/ALLOWED), block_reason | 渠道去重记录 |\n| `im_interaction_records` | interaction_id, person_id, msg_type(PUSH_CARD/REVIEW_CARD/EXEMPTION_CARD/REMINDER/REFUND_NOTICE), direction(OUTBOUND/INBOUND), content, status, created_at | IM 交互记录 |\n| `im_flow_tags` | tag_id, person_id, tag_type, tag_value, tagged_at | IM 流程标签(如 xx产品待返款等 |\n| `edm_message_events` | event_id, person_id, email, event_type(SENT/DELIVERED/OPENED/CLICKED/REPLIED/UNSUBSCRIBED/HARD_BOUNCED), occurred_at | EDM 事件 |\n| `edm_user_behavior_profiles` | profile_id, person_id, email, last_opened_at, total_opens, consecutive_no_open, last_replied_at, monthly_received, status | EDM 用户行为画像 |\n| `app_touch_events` | event_id, person_id, trigger_type, push_status, response, occurred_at | APP Push 事件 |\n| `tel_call_records` | call_id, person_id, ticket_id, direction(OUTBOUND/INBOUND), call_status, duration, outcome, retry_count, recorded_at | TEL 通话记录 |\n 144|\n---\n 146|\n## 5. 业务澄清问题清单 — outreach\n 148|\n### 5.1 渠道优先级路由4 项)\n 150|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-01 | 路由规则是否可配置?(例如针对某个站点用户调整 IM > EDM 的优先级)配置界面在 outreach 内还是在独立配置管理? | **P0** |\n| O-02 | 「APP 低活跃」的判定标准是什么N 天未打开N 天未点击推送?)阈值是否可配置? | P1 |\n| O-03 | 高优先级渠道发送失败(退信/未送达)后,是否自动降级到下一渠道?降级是否有冷却时间? | P1 |\n| O-04 | C 类用户累计≥12只推免评——如果免评计划也没有是完全不推还是推品牌/活动内容? | P2 |\n 157|\n### 5.2 IM 通道4 项)\n 159|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-05 | IM 使用的具体平台是什么WhatsApp Business API / 自研 JOYHUB IM / Messenger不同平台的 API 能力和限制? | **P0** |\n| O-06 | IM 的「分层」是系统自动判断还是人工可干预?(一个 B 类用户会不会被错误标记为 C 类?如何修正?) | **P0** |\n| O-07 | IM 推送中「测评卡片」的具体形式是什么?(带按钮的消息模板?需要用户填表单?)模板在哪里管理? | P1 |\n| O-08 | IM 中的「订单号核实」——核实的数据源是什么比对内部订单表Amazon 订单 API核实失败的转人工流程 | P1 |\n 166|\n### 5.3 EDM 通道4 项)\n 168|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-09 | 当前使用的邮件服务是什么SendGrid/Mailchimp/SES/自建?)有没有现成 API 和 Webhook 追踪? | **P0** |\n| O-10 | EDM 模板(邮件内容、样式、多语言)在哪里管理?属于 outreach 还是独立内容管理子系统? | P1 |\n| O-11 | 「EDM 行为画像」中的「最近 3/5 次 0 打开」——3 次和 5 次是两个独立指标还是二选一?各自对应什么策略? | P1 |\n| O-12 | EDM 发送量和频控——单日最大发送量有限制吗ESP 的每日限额?) | P1 |\n 175|\n### 5.4 APP Push3 项)\n 177|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-13 | APP Push 是否复用 JOYHUB 的现有推送通道?还是需要独立接入 FCMAndroid和 APNsiOS | **P0** |\n| O-14 | APP Push 和 IM 消息的分工——文档第 11.2 节给了对照表,但边界是否绝对?(例如\"计划到期提醒\"是否可能同时走 APP Push 和 IM | P1 |\n| O-15 | APP 落地页——推送点击后跳转到哪个页面APP 内的测评页IM 对话页?)落地页由哪个团队/子系统负责? | P2 |\n 183|\n### 5.5 TEL 通道3 项)\n 185|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-16 | 电话系统使用什么方案?(自建 SIP PBX / Twilio / 其他云呼叫中心?)是否已有通话记录? | **P0** |\n| O-17 | 「拨打前准备」第 2 步「查风险:强关联命中→暂停拨打→先复核」——复核由谁来做?(风险人员?客服组长?)复核时长预期? | P1 |\n| O-18 | 电话中「尽量确认」的字段(购买平台、订单号、产品型号、购买时间、问题类型、凭证)如果用户不愿意/无法提供——哪些是必须确认的?哪些可以跳过? | P1 |\n 191|\n### 5.6 消息内容与合规4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-19 | 消息内容是否需要审核IM 推送文案、EDM 邮件内容、APP Push——上线前是否需要审核审核流程 | P1 |\n| O-20 | EDM 合规要求——是否遵守 CAN-SPAM Act美国、GDPR欧洲、CASL加拿大退订机制是否满足法律要求 | P1 |\n| O-21 | IM 平台的合规限制——WhatsApp 等平台禁止垃圾消息和特定类型内容(如测评引导)——是否有合规风险? | P1 |\n| O-22 | 消息发送的时区感知——美国用户、英国用户、德国用户的推送时间是否需要本地化?(用户当地时间的白天而非半夜) | P1 |\n\n### 5.7 消息策略与实验3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-23 | 是否需要 A/B 测试能力?(同一计划的两组用户收到不同文案/不同发送时间——对比转化率?) | P2 |\n| O-24 | 消息打开率/点击率/转化率的追踪和报表?是否需要自动优化发送策略(高打开率的文案模板优先使用)? | P2 |\n| O-25 | 用户反馈「消息太频繁/内容不相关」——是否有投诉/退订统计和预警?(投诉率超过 X% 暂停该类型推送?) | P1 |\n\n### 5.8 IM 通道补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-26 | IM 消息的「已读」状态是否能获取WhatsApp 的蓝色双勾——能否用于判断用户是否看到消息?) | P1 |\n| O-27 | IM 用户提交的「评论截图/链接」——如何自动验证截图的真实性?(防止用户 PS 假截图?是否需要 OCR 识别截图内容?) | P1 |\n| O-28 | IM 中的返款通知——返款是系统自动触发还是人工触发?返款状态如何回写到 outreach | P1 |\n\n### 5.9 EDM 通道补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-29 | EDM 的「硬退信」和「投诉」是否自动同步到 identity 的风险标记?(硬退信用户是否需要进入风险观察?) | P1 |\n| O-30 | EDM 引导用户下载 APP——是否在邮件中嵌入归因链接deferred deep link以追踪转化来源 | P2 |\n| O-31 | EDM 的发送域名和 IP 预热策略?(新域名/IP 直接大批量发送会被 ESP 判定为垃圾邮件——需要渐进式预热?) | P2 |\n\n### 5.10 TEL 通道补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-32 | 电话录音是否需要存储?存储多久?谁有权调取录音?(涉及合规和隐私) | P1 |\n| O-33 | 不同国家的电话合规要求——美国需提前告知录音、德国的 GDPR 限制——如何处理? | P1 |\n| O-34 | TEL 任务的优先级和分配——多个外呼任务同时存在时,客服按什么顺序拨打?(先打高价值用户?先打答应配合超时的?) | P1 |\n\n### 5.11 实施层面4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| O-35 | 各外部通道的 rate limit 和计费模式WhatsApp 按消息数计费EDM 按发送量计费?)是否需要成本控制? | P1 |\n| O-36 | 消息发送是同步还是异步?(用户点「发送」后立即返回还是后台队列处理?失败重试策略?) | P1 |\n| O-37 | 多渠道消息的发送顺序保证?(「先发 IM 提醒→24h 后无回复再发 EDM」——这种时序依赖如何实现定时任务延迟队列 | P2 |\n| O-38 | 异常场景——如果某渠道 100% 发送失败ESP 宕机/WhatsApp API 限流)——是否自动切换备用渠道? | P2 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/05-子系统-客服工单与管理",
"type": "document",
"name": "子系统 05 — 客服工单与管理 (`support`) v1.0",
"filePath": "05_需求文档/05-子系统-客服工单与管理.md",
"summary": "子系统 05 — 客服工单与管理 support v1.0 2 子系统概述 4 维度 说明 代号 support 核心职责 工单生命周期管理、自动分配、答应配合状态机、排班出勤管理、绩效统计 数据所有权 support tickets , support followups , support assignment logs , attendance rec",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 05 — 客服工单与管理 (`support`) v1.0\n 2|\n## 子系统概述\n 4|\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `support` |\n| 核心职责 | 工单生命周期管理、自动分配、答应配合状态机、排班出勤管理、绩效统计 |\n| 数据所有权 | `support_tickets`, `support_followups`, `support_assignment_logs`, `attendance_records`, `shift_schedules`, `support_performance_snapshots` |\n| 启动依赖 | identity软依赖无上下文卡时可先跑工单 |\n| 外部系统依赖 | 无直接外部依赖(电话记录来自 outreach TEL 模块) |\n 12|\n---\n 14|\n## 1. 模块划分\n 16|\n```\n┌─────────────────────────────────────────────────────────────┐\n│ support 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 工单管理 │ │ M2: 自动分配 │ │ M3: 答应配合 │ │\n│ │ (Ticket) │→│ (Assign) │ │ 状态机 │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: 排班出勤 │ │ M5: 绩效统计 │ │ M6: 对外 API │ │\n│ │ 管理 │ │ │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n 34|\n| # | 模块 | 职责 |\n| --- | --- | --- |\n| M1 | 工单管理 | 工单创建、分类、状态流转(待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭) |\n| M2 | 自动分配 | 按班次+在线状态+当前负载+最大工单数自动分配到客服组;组长再分派到组员 |\n| M3 | 答应配合状态机 | 独立的答应配合状态流转(已答应→待分配→待提醒→等待提交→已提交/超时→需再次联系→关闭) |\n| M4 | 排班出勤管理 | 排班设置、出勤记录(应出勤/实际出勤/迟到/早退/请假/缺勤)、在线客服池维护 |\n| M5 | 绩效统计 | 回复效率(回复用户数/处理工单数/首次回复时长分布转化统计RSO回评/RDO测评登记订单数/获取评价数/完成率);目标完成统计 |\n| M6 | 对外 API Gateway | 供其他子系统创建工单、查询工单状态、查询绩效数据 |\n 43|\n---\n 45|\n## 2. 各模块内外说明\n 47|\n### 2.1 M1: 工单管理\n 49|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 5 种入口(用户消息进入/推送转人工/售后触发/风险触发/电话后续);工单状态流转(待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭5 种处理结果(等待用户回复/等待内部协同/答应配合/疑似诈骗/已解决) |\n| **对外接口** | `POST /api/tickets` — 创建工单;`PUT /api/tickets/{id}/status` — 更新状态 |\n| **数据写入** | `support_tickets` |\n| **依赖** | `GET /api/identity/context/{person_id}` — 展示用户上下文卡 |\n| **待确认** | 工单类型分类维度?(售后/催评/风险/其他?是否需要自定义分类?) |\n 57|\n### 2.2 M2: 自动分配\n 59|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 分配算法(查班次+在线状态+当前负载+最大工单数→自动分配到客服组);组长可在组内重新分派到具体组员;分配日志记录 |\n| **对外接口** | 内部服务 |\n| **数据写入** | `support_assignment_logs` |\n| **依赖** | M4 排班出勤数据 |\n| **待确认** | 「当前负载」按什么计算?(未关闭工单数?最近 N 小时处理量?两者加权?) |\n 67|\n### 2.3 M3: 答应配合状态机\n 69|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 独立于工单状态的状态机(已答应配合→待分配负责人→待提醒→等待提交→已提交评价/已提交反馈→超时→需再次联系→已关闭);防止承诺用户流失;超时提醒机制 |\n| **对外接口** | `POST /api/support/followups` — 创建跟进任务;`PUT /api/support/followups/{id}` — 更新状态 |\n| **数据写入** | `support_followups` |\n| **待确认** | 答应配合后多少天未提交算超时?超时后提醒频率?多次提醒无果后是否降级? |\n 76|\n### 2.4 M4: 排班出勤管理\n 78|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 排班设置(按日/周的班次安排);出勤记录(应出勤/实际出勤/出勤率/迟到/早退/请假/缺勤);在线客服池(排班+在线状态→可用客服列表) |\n| **对外接口** | `GET /api/support/available-agents` — 查询当前可用客服 |\n| **数据写入** | `attendance_records`, `shift_schedules` |\n| **待确认** | 排班是否对接外部 HR 系统还是独立管理?客服手动签入/签出? |\n 85|\n### 2.5 M5: 绩效统计\n 87|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 回复效率(回复用户数、处理工单数、发送消息数、首次回复时长:平均/中位数/最大/最小转化统计RSO 回评登记订单数、RDO 测评登记订单数、获取评价数、评价完成率);目标完成(月目标、当前完成、完成率、历史趋势);主管看板 |\n| **对外接口** | `GET /api/support/stats?agent_id=&period=` — 绩效数据查询 |\n| **数据写入** | `support_performance_snapshots`(定时快照) |\n| **待确认** | 绩效统计周期(日/周/月?)主管看板是否需要实时数据还是 T+1 汇总? |\n 94|\n---\n 96|\n## 3. 对外 API 契约(草案)\n 98|\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 创建工单 | `POST /api/tickets` | `{person_id, source, type, description}` | `{ticket_id}` | outreachTEL→工单/EDM回复→工单、risk诈骗→工单 |\n| 工单详情 | `GET /api/tickets/{id}` | ticket_id | 完整工单+上下文卡 | 客服前端 |\n| 查询用户打开工单 | `GET /api/tickets?person_id=&status=open` | person_id | `[{ticket_id, status}]` | outreach渠道去重、quota终校 |\n| 客服可用性 | `GET /api/support/available-agents` | 无 | `[{agent_id, current_load}]` | outreach分配参考 |\n| 绩效查询 | `GET /api/support/stats?agent_id=&period=` | agent_id + 周期 | 绩效数据 | 客服管理前端 |\n 106|\n---\n 108|\n## 4. 数据对象\n 110|\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `support_tickets` | ticket_id, person_id, source, type, status, assigned_agent, assigned_group, created_at, resolved_at | 工单主表 |\n| `support_followups` | followup_id, ticket_id, person_id, status(PROMISED/ASSIGNED/WAITING/SUBMITTED/TIMEOUT/RECONTACT/CLOSED), promised_at, deadline_at, reminded_at | 答应配合跟进 |\n| `support_assignment_logs` | log_id, ticket_id, from_agent, to_agent, reason, assigned_at | 工单分配日志 |\n| `attendance_records` | record_id, agent_id, date, status(PRESENT/LATE/EARLY/ABSENT/LEAVE), check_in, check_out | 出勤记录 |\n| `shift_schedules` | shift_id, agent_id, date, shift_type, start_time, end_time | 排班表 |\n| `support_performance_snapshots` | snapshot_id, agent_id, period, tickets_handled, messages_sent, avg_first_reply, rso_orders, rdo_orders, reviews_obtained, completion_rate | 绩效快照 |\n 119|\n---\n 121|\n## 5. 业务澄清问题清单 — support\n 123|\n### 5.1 工单管理5 项)\n 125|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-01 | 工单的来源分类有哪些IM 转人工 / 电话后续 / EDM 回复 / 用户主动联系 / 风险触发 / 其他?)每种来源的优先级是否不同? | **P0** |\n| S-02 | 工单状态「等待用户」和「等待内部」的超时分别是多少超时后谁来提醒提醒方式IM/系统通知)? | **P0** |\n| S-03 | 三套并行状态(工单状态/答应配合状态/风险状态)的交互规则?例如:风险状态变为「确认诈骗」时工单是否自动关闭?(目前文档说是独立拆开的) | P1 |\n| S-04 | 工单关闭后是否允许重新打开?什么条件可重开? | P1 |\n| S-05 | 工单是否有 SLA服务级别协议不同来源/类型的工单 SLA 不同? | P2 |\n 133|\n### 5.2 自动分配4 项)\n 135|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-06 | 「当前负载」如何精确计算?(未关闭工单数 × 权重?最近 N 小时处理量?工单类型权重不同?) | **P0** |\n| S-07 | 「最大工单数」是什么?(每个客服同时最多持有 X 个工单?)这个值是否统一还是按级别不同? | **P0** |\n| S-08 | 在线状态如何判定?(手动签入/签出系统自动检测活跃度N 分钟无操作自动离线?) | P1 |\n| S-09 | 自动分配如果分配给了离线/满载的客服,兜底机制是什么?(自动转移给组长?放入公共池?) | P1 |\n 142|\n### 5.3 答应配合3 项)\n 144|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-10 | 答应配合后多少天未提交算超时?超时后的提醒频率?(第 1/3/7 天各提醒一次?)多次提醒无果后关闭还是降级? | **P0** |\n| S-11 | 用户答应配合但最终提交了错误的 ASIN 评价——算不算配合完成?如何处理? | P1 |\n| S-12 | 答应配合状态是否只针对客服工单场景IM 直推中用户答应的算不算? | P1 |\n 150|\n### 5.4 排班出勤3 项)\n 152|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-13 | 排班管理是否对接外部 HR 系统?还是独立在 support 子系统内管理? | P1 |\n| S-14 | 菲律宾客服团队的工作制度?(班次类型:早班/中班/晚班?每班时长?每周几天?) | P1 |\n| S-15 | 出勤异常(迟到/早退/缺勤)是否需要自动通知主管?通知方式? | P2 |\n 158|\n### 5.5 绩效统计3 项)\n 160|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-16 | 转化统计中 RSO回评和 RDO测评如何区分按工单来源按关联计划类型按客服标记 | P1 |\n| S-17 | 「首次回复时长」从什么时候开始计时?(工单分配给客服的时间?用户消息到达时间?) | P1 |\n| S-18 | 评价完成率的分母是什么?(答应配合数?登记订单数?触达数?) | P2 |\n 166|\n### 5.6 多语言与国际化3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-19 | 客服工作台需要支持哪些语言?(菲律宾客服用英语+Tagalog面向用户的消息是否需要自动翻译 | P1 |\n| S-20 | 用户消息的多语言处理——用户用德语/法语/西语发消息时,客服如何理解?(是否需要集成翻译工具?) | P2 |\n| S-21 | 系统管理界面(排班/绩效/设置)是否需要多语言?面向中国管理团队的是中文界面? | P2 |\n\n### 5.7 知识库与话术3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-22 | 是否需要集成知识库/FAQ客服在处理售后时快速查找产品信息、常见问题解答 | P2 |\n| S-23 | 是否需要「快捷回复」功能?(预设常用回复模板——「请提供你的订单号」「我们将在 24h 内处理你的退款」等) | P1 |\n| S-24 | 快捷回复模板是否支持按场景/产品分类?(不同产品的售后话术不同——模板管理和权限?) | P2 |\n\n### 5.8 客服质量管控4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-25 | 是否需要客户满意度CSAT调查工单关闭后推送满意度评分——评分方式计入绩效 | P2 |\n| S-26 | 是否需要质检功能?(组长抽查客服的对话记录进行评分——质检抽样比例?质检标准?) | P2 |\n| S-27 | 客服技能分组——不同客服擅长不同类型工单(售后/催评/风控)——是否需要基于技能的自动分配? | P1 |\n| S-28 | 升级工单的处理流程——什么条件下工单升级到组长/负责人?(超时?用户投诉?疑似诈骗?) | P1 |\n\n### 5.9 排班与出勤补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-29 | 排班是否支持轮班制?(周一到周日每天不同的班次安排)排班变更的通知方式? | P1 |\n| S-30 | 临时调班/换班请求——客服之间是否可以自助换班?是否需要审批? | P2 |\n| S-31 | 节假日/特殊日期的排班策略?(当地节假日——菲律宾假日 vs 美国假日 vs 中国假日——按哪国日历?) | P1 |\n\n### 5.10 绩效统计补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-32 | 绩效考核周期?(日/周/月/季度?)绩效数据是否需要导出为报表? | P1 |\n| S-33 | 绩效目标是否可自定义?(不同组的目标不同?新人目标低于老员工?)目标由谁设置? | P1 |\n| S-34 | 绩效看板是否需要实时数据还是 T+1 汇总?(主管需要实时看到当前客服处理了多少工单?) | P2 |\n\n### 5.11 实施层面3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| S-35 | 客服使用的 IM 工具——是独立于 outreach 的客服专用 IM 还是嵌入在客服工作台内的 Web IM | P1 |\n| S-36 | 工单数据是否需要与 outreach 的交互记录打通?(同一个用户在 IM 的聊天记录是否需要关联到工单?) | P1 |\n| S-37 | 客服工作台的实时性要求——新工单到达后多少秒内需要在客服界面显示WebSocket 推送 vs 轮询?) | P2 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/06-子系统-风险与反欺诈",
"type": "document",
"name": "子系统 06 — 风险与反欺诈 (`risk`) v1.0",
"filePath": "05_需求文档/06-子系统-风险与反欺诈.md",
"summary": "子系统 06 — 风险与反欺诈 risk v1.0 2 子系统概述 4 维度 说明 代号 risk 核心职责 强弱关联判断、黑名单实体管理、风险事件管理、双重退款检测 数据所有权 risk signals , risk cases , blacklist entities , refund match results 启动依赖 identity软依赖 外",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 06 — 风险与反欺诈 (`risk`) v1.0\n 2|\n## 子系统概述\n 4|\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `risk` |\n| 核心职责 | 强弱关联判断、黑名单实体管理、风险事件管理、双重退款检测 |\n| 数据所有权 | `risk_signals`, `risk_cases`, `blacklist_entities`, `refund_match_results` |\n| 启动依赖 | identity软依赖 |\n| 外部系统依赖 | Amazon退款数据、财务系统OA 返款数据) |\n 12|\n---\n 14|\n## 1. 模块划分\n 16|\n```\n┌─────────────────────────────────────────────────────────────┐\n│ risk 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 关联判断 │ │ M2: 黑名单 │ │ M3: 双重退款 │ │\n│ │ 引擎 │→│ 管理 │ │ 检测 │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: 风险事件 │ │ M5: 风险审核 │ │ M6: 对外 API │ │\n│ │ 管理 │ │ Admin │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n 34|\n| # | 模块 | 职责 |\n| --- | --- | --- |\n| M1 | 关联判断引擎 | 对每次风险信号做强弱关联判断(强:邮箱/设备/电话/地址/订单号/ProfileID/收款信息 命中→高风险IP单独/姓名单独/同址异名→观察+复核) |\n| M2 | 黑名单管理 | 黑名单实体管理(添加/移除/过期)、黑名单同步、命中查询 |\n| M3 | 双重退款检测 | Amazon 退款记录 vs OA 返款记录的自动比对,检测重复退款 |\n| M4 | 风险事件管理 | 风险事件创建、状态流转、关联工单/推送/计划状态回写 |\n| M5 | 风险审核 Admin | 人工复核弱关联风险、确认/排除诈骗、黑名单操作 |\n| M6 | 对外 API Gateway | 供所有子系统查询风险状态、上报风险信号 |\n 43|\n---\n 45|\n## 2. 各模块内外说明\n 47|\n### 2.1 M1: 关联判断引擎\n 49|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 每次风险信号进入时执行8 项强关联维度(邮箱/设备号/电话/收件人姓名+地址/订单号/聊天记录/Profile ID/收款信息→任一命中→高风险3 项弱关联维度IP单独/姓名单独/同址异名)→高风险观察+人工复核;判断结果:强关联/弱关联/无关联 |\n| **对外接口** | `GET /api/risk/check/{person_id}` — 风险查询(含关联判断结果) |\n| **数据写入** | `risk_signals` |\n| **依赖** | `GET /api/identity/context/{person_id}` — 获取身份线索用于关联判断 |\n| **关键规则** | 风险判断不是一次性,每次有效互动都要重做;非 APP 用户缺设备/注册邮箱等维度→风险识别能力下降 |\n 57|\n### 2.2 M2: 黑名单管理\n 59|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 黑名单实体 CRUD邮箱/设备/电话/地址/收款信息);黑名单命中查询(任何子系统查询用户是否在黑名单);黑名单同步(确认诈骗后同步到黑名单);黑名单过期/申诉机制 |\n| **对外接口** | `GET /api/risk/blacklist/check?type=EMAIL&value=xxx` — 黑名单命中检查 |\n| **数据写入** | `blacklist_entities` |\n| **待确认** | 黑名单是否有过期时间?申诉/移除流程? |\n 66|\n### 2.3 M3: 双重退款检测\n 68|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 采集 Amazon 退款记录(外部系统同步)+ OA 返款记录(财务系统同步);按订单号/用户/金额/时间自动比对;匹配结果:无重复/疑似重复/确认重复;确认重复时强告警+阻止后续返款 |\n| **对外接口** | `GET /api/risk/double-refund-check/{person_id}` — 双重退款检测 |\n| **数据写入** | `refund_match_results` |\n| **依赖** | Amazon 退款数据外部、OA 返款数据(外部财务系统) |\n| **待确认** | Amazon 退款数据如何及时获取OA 返款记录是否已有 API |\n 76|\n### 2.4 M4: 风险事件管理\n 78|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 风险事件创建(客服上报疑似诈骗 / 双重退款检测 / 关联判断命中);事件状态流转(待复核→复核中→确认风险/排除风险);高风险链路动作(拦截继续推送/拦截自动退款/拦截自动放行);回写关联工单/推送/计划状态 |\n| **对外接口** | `POST /api/risk/report` — 上报风险信号(客服、系统自动均可调用) |\n| **数据写入** | `risk_cases` |\n 84|\n### 2.5 M5: 风险审核 Admin\n 86|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 人工复核弱关联风险;确认/排除诈骗判定;黑名单手动操作;风险口径维护 |\n| **对外接口** | 管理 API |\n| **待确认** | 复核时效要求N 分钟内必须复核?) |\n 92|\n---\n 94|\n## 3. 对外 API 契约(草案)\n 96|\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 风险查询 | `GET /api/risk/check/{person_id}` | person_id | `{risk_level(NONE/WEAK/STRONG), signals[], cases[]}` | 所有子系统(每次互动时调用) |\n| 上报风险信号 | `POST /api/risk/report` | `{person_id, signal_type, evidence, reported_by}` | `{signal_id}` | support客服上报诈骗、outreach异常互动 |\n| 黑名单命中 | `GET /api/risk/blacklist/check?type=&value=` | 维度类型+值 | `{hit, entity}` | outreach发送前、identity身份归并时 |\n| 双重退款检测 | `GET /api/risk/double-refund-check/{person_id}` | person_id | `{status, matched_refunds[]}` | outreach返款前、support退款处理前 |\n 103|\n---\n 105|\n## 4. 数据对象\n 107|\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `risk_signals` | signal_id, person_id, signal_type, hit_dimensions[], risk_level(STRONG/WEAK), detected_at | 风险信号(每次互动生成的判断) |\n| `risk_cases` | case_id, person_id, source, status(PENDING_REVIEW/REVIEWING/CONFIRMED_RISK/RULED_OUT), reviewer, created_at, resolved_at | 风险事件 |\n| `blacklist_entities` | entity_id, entity_type(EMAIL/DEVICE/PHONE/ADDRESS/PAYMENT), entity_value, status(ACTIVE/EXPIRED/APPEALED), added_at, added_by | 黑名单实体 |\n| `refund_match_results` | match_id, person_id, amazon_refund_id, oa_refund_id, match_status(NO_DUPLICATE/SUSPECTED/CONFIRMED), matched_at | 双重退款比对结果 |\n 114|\n---\n 116|\n## 5. 业务澄清问题清单 — risk\n 118|\n### 5.1 强弱关联规则4 项)\n 120|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-01 | 8 项强关联维度中,每个维度的命中是独立判断还是组合判断?(例如仅「设备号命中」是否就足够判定强关联?还是需要「设备号 + 电话」同时命中?) | **P0** |\n| R-02 | 「强关联→直接进入高风险或黑名单链路」——这里的「直接」是指全自动化拦截无需人工确认?还是系统先拦截再人工审核?(涉及自动化力度) | **P0** |\n| R-03 | 弱关联的「观察期」多长?观察期过后是自动解除还是必须人工确认?观察期内用户继续参与互动如何处理? | P1 |\n| R-04 | 风险判断中「IP 单独命中」列为弱关联——IP 从哪里获取JOYHUB APPEDM 邮件头?客服系统?)不同来源的 IP 可靠性不同 | P1 |\n 127|\n### 5.2 双重退款4 项)\n 129|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-05 | Amazon 退款数据如何获取SP-API 实时拉取T+1 同步?手动导入 CSV同步频率决定检测时效 | **P0** |\n| R-06 | OA 返款系统是哪个?是否有 API如果没有 API返款记录怎么录入财务手动录入CSV 导入?) | **P0** |\n| R-07 | 「双重退款」比对的关键字段是什么?(订单号?金额?用户?时间窗口?)匹配精度?(金额完全相等还是 ±X%?时间窗口多宽?) | P1 |\n| R-08 | 确认重复退款后,阻止后续返款——「阻止」是指系统自动拦截返款指令,还是只发告警让人工决定? | P1 |\n 136|\n### 5.3 黑名单管理3 项)\n 138|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-09 | 黑名单是否有过期/申诉/解除机制?(例如用户被误标后如何申诉?谁有权解除?) | P1 |\n| R-10 | 黑名单是否需要与外部系统同步?(例如 JOYHUB 的黑名单Amazon 的欺诈标记?)同步方向? | P1 |\n| R-11 | 黑名单的粒度——是标记「真实人」还是「某个维度的值」?(标记的是真实人 ID 还是具体的邮箱/设备?) | P1 |\n 144|\n### 5.4 风险可见性3 项)\n 146|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-12 | 文档要求「客服、审核、退款等环节必须都能看到风险提醒」——风险提醒的展现形式是什么?(红色标签?弹窗?工单页顶部横幅?) | P1 |\n| R-13 | 风险状态的「提醒」通过什么通道发送audit 通知中心IM 消息?系统内消息?) | P1 |\n| R-14 | 风险人员角色是否需要独立的风险控制台前端?该前端需要哪些功能?(事件列表/审核工作台/黑名单管理/统计报表?) | P2 |\n 152|\n### 5.5 高级风险检测能力4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-15 | 是否需要行为速度检测?(同一真实人短时间内大量注册/大量申请退款/大量提交评价→触发异常行为告警?) | P1 |\n| R-16 | 是否需要设备指纹/浏览器指纹?(识别同一设备换账号、模拟器、虚拟机等欺诈行为?) | P2 |\n| R-17 | 是否需要地理位置异常检测?(同一账号短期内从不同国家/城市登录→触发告警?) | P2 |\n| R-18 | 风险评分模型——是否需要一个综合风险分数0-100而非二元判断强/弱/无)?评分模型的因子和权重? | P1 |\n\n### 5.6 风险事件处理流程3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-19 | 风险事件的优先级P0/P1/P2如何定义双重退款确认→P0单次弱关联→P2不同优先级的响应 SLA | P1 |\n| R-20 | 风险人员的工作台——是否需要「待审核队列」「审核中」「已处理」等看板视图?是否需要分配给具体审核人? | P1 |\n| R-21 | 同一个人短时间内触发多次风险信号——是每次生成新事件还是合并到已有事件?合并规则? | P1 |\n\n### 5.7 黑名单管理补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-22 | 黑名单的生效范围——加入黑名单后是「全系统拦截」还是「只拦截某些操作」?(是否还允许正常购买?只拦截测评参与?) | P1 |\n| R-23 | 黑名单是否需要分级?(一级黑名单→全拦截 / 二级黑名单→降频+人工审核 / 三级黑名单→仅标记提醒) | P1 |\n| R-24 | 黑名单是否需要与外部欺诈数据库同步如行业共享的欺诈黑名单Amazon 的 abuse 标记?) | P2 |\n\n### 5.8 非 APP 用户风险盲区2 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-25 | 文档已明确「非 APP 用户识别能力下降」——是否需要额外的风控措施?(例如非 APP 用户的返款额度降低?首次返款必须人工审核?) | P1 |\n| R-26 | 是否计划引导非 APP 用户注册 APP 以补全风险画像EDM/客服主动引导注册——注册转化跟踪?) | P2 |\n\n### 5.9 实施层面3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| R-27 | 风险判断的实时性要求——每次互动时实时调用 risk API性能 overhead需要缓存策略 | P1 |\n| R-28 | 双重退款检测的时效——Amazon 退款数据(外部)同步延迟 vs OA 返款实时——T+N 的延迟是否可接受? | P1 |\n| R-29 | 风险事件的数据保留策略?(已解决的诈骗案件数据保留多久?用于后续模型训练还是定期清理?) | P2 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/07-子系统-评价结果追踪",
"type": "document",
"name": "子系统 07 — 评价结果追踪 (`review`) v1.0",
"filePath": "05_需求文档/07-子系统-评价结果追踪.md",
"summary": "子系统 07 — 评价结果追踪 review v1.0 2 子系统概述 4 维度 说明 代号 review 核心职责 用户真实提交评价记录、Amazon 展示核验、ASIN 健康/计划完成度更新回流 数据所有权 review submission records , review display checks , review results 启动依赖 id",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 07 — 评价结果追踪 (`review`) v1.0\n 2|\n## 子系统概述\n 4|\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `review` |\n| 核心职责 | 用户真实提交评价记录、Amazon 展示核验、ASIN 健康/计划完成度更新回流 |\n| 数据所有权 | `review_submission_records`, `review_display_checks`, `review_results` |\n| 启动依赖 | identity / planning软依赖 |\n| 外部系统依赖 | Amazon评价展示状态、ASIN 评分数据) |\n 12|\n---\n 14|\n## 1. 模块划分\n 16|\n```\n┌─────────────────────────────────────────────────────────────┐\n│ review 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 评价提交 │ │ M2: 展示核验 │ │ M3: 结果回流 │ │\n│ │ 记录 │→│ │→│ 引擎 │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: 异常观察 │ │ M5: 对外 API │ │\n│ │ 队列 │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n 34|\n| # | 模块 | 职责 |\n| --- | --- | --- |\n| M1 | 评价提交记录 | 记录用户真实提交评价的事实(提交时点、提交证据、关联计划、关联 ASIN |\n| M2 | 展示核验 | 核查 Amazon 是否展示该评价 / 是否可核验 |\n| M3 | 结果回流引擎 | 将评价结果反馈给 planning计划完成度、identity用户标签、audit |\n| M4 | 异常观察队列 | 用户已提交但 Amazon 未展示 / 暂不可核验的评价,进入定期复查队列 |\n| M5 | 对外 API Gateway | 供 outreach、planning 查询评价进度、提交评价 |\n 42|\n---\n 44|\n## 2. 各模块内外说明\n 46|\n### 2.1 M1: 评价提交记录\n 48|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 记录两个核心事实①用户真实提交评价时间、ASIN、评论内容/截图/链接、关联计划);②提交后立即更新真实人累计评价额度(调用 quota 子系统 `commit` |\n| **对外接口** | `POST /api/reviews/submission` — 记录评价提交 |\n| **数据写入** | `review_submission_records` |\n| **依赖** | `POST /api/quota/commit` — 确认额度占用提交后立即计数12 |\n| **关键规则** | 「用户真实提交评价」和「Amazon 展示确认」是两个独立事实;额度计数按前者,计划完成按后者 |\n 56|\n### 2.2 M2: 展示核验\n 58|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 核查 Amazon 是否展示该评价 / 是否可核验;核验方式(待确认:爬取 / 手动 / API / 截图?);核验结果:①展示或可核验→计入计划完成 ②未展示/暂不可核验→保留已提交事实→进入异常观察 |\n| **对外接口** | `POST /api/reviews/verify` — 触发核验(或定时核验) |\n| **数据写入** | `review_display_checks` |\n| **依赖** | Amazon评价展示数据 |\n| **待确认** | 核验是自动还是人工?核验频率? |\n 66|\n### 2.3 M3: 结果回流引擎\n 68|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 评价确认展示后:①通知 planning 更新计划完成度 ②通知 identity 更新用户标签(例如标记为「已回评用户」)③写入审计日志;免评结果回流:①更新 ASIN 健康与权重变化 ②更新计划完成度 ③通知 planning |\n| **对外接口** | 内部事件发布 |\n| **数据写入** | `review_results` |\n| **依赖** | `PUT /api/plans/{id}/status`(更新计划状态) |\n 75|\n### 2.4 M4: 异常观察队列\n 77|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 用户已提交但 Amazon 未展示/暂不可核验的评价,进入异常观察队列;定期复查(例如每天查一次 Amazon 是否已展示);超过观察期仍未展示→标记异常→通知运营 |\n| **数据写入** | `review_display_checks`(更新状态) |\n| **待确认** | 观察周期多长?复查频率?观察期满后如何处理? |\n 83|\n---\n 85|\n## 3. 对外 API 契约(草案)\n 87|\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 记录评价提交 | `POST /api/reviews/submission` | `{person_id, asin, plan_id, evidence, submitted_at}` | `{submission_id, quota_updated}` | outreachIM 核验后/客服确认后) |\n| 查询计划评价进度 | `GET /api/reviews/status/{plan_id}` | plan_id | `{total_submissions, verified, pending, completion_rate}` | planning |\n| 查询用户评价历史 | `GET /api/reviews/history/{person_id}` | person_id | `[{submission_id, asin, status, submitted_at}]` | identity上下文卡 |\n| ASIN 评价统计 | `GET /api/reviews/asin-stats/{asin}` | asin | `{submission_count, verified_count, pending_count}` | planning |\n 94|\n---\n 96|\n## 4. 数据对象\n 98|\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `review_submission_records` | submission_id, person_id, asin, plan_id, evidence_type, evidence, submitted_at, quota_updated | 评价提交记录(核心事实一) |\n| `review_display_checks` | check_id, submission_id, asin, check_method, check_result(DISPLAYED/NOT_DISPLAYED/UNVERIFIABLE), checked_at, retry_count, status(OBSERVING/CONFIRMED/ABNORMAL) | 展示核验记录(核心事实二) |\n| `review_results` | result_id, plan_id, asin, submission_count, verified_count, completion_rate, asin_health_change, updated_at | 评价结果汇总 |\n 104|\n---\n 106|\n## 5. 业务澄清问题清单 — review\n 108|\n### 5.1 评价提交记录3 项)\n 110|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-01 | 「用户真实提交评价」的证据形式是什么用户上传的截图Amazon 评论链接?系统自动检测?)不同形式如何验证真伪? | **P0** |\n| V-02 | 一个用户为同一个 ASIN 提交多条评价(如果 Amazon 允许——每一条都独立计入累计12额度吗 | **P0** |\n| V-03 | 评价提交记录是 outreachIM/客服)写入还是用户直接提交?(系统内提交 vs 系统外提交的区别)系统外提交如何登记? | P1 |\n 116|\n### 5.2 展示核验4 项)\n 118|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-04 | Amazon 评价展示的核验方式是?(定时爬取 Amazon 产品页SP-API 拉取评价列表?用户上传截图人工审核?混合方式?) | **P0** |\n| V-05 | 如果通过爬取核验——爬取频率?(小时级?天级?)如何识别「哪条评价是本次计划用户提交的」?(靠评论者名字匹配?靠时间窗口?) | **P0** |\n| V-06 | 「暂不可核验」的常见原因有哪些Amazon 审核中/延迟展示/被 Amazon 删除?)每种原因的处理策略是否不同? | P1 |\n| V-07 | 核验失败的兜底机制——如果 Amazon API 不可用或爬取失败,是否允许人工确认? | P1 |\n 125|\n### 5.3 异常观察队列2 项)\n 127|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-08 | 异常观察队列的观察期多长1 天7 天30 天?)复查频率?(每天?每周?)观察期满后未展示→如何处理? | P1 |\n| V-09 | 多少条评价进入异常观察算异常阈值?(单计划 10% 未展示→通知?单用户多次未展示→标记?) | P2 |\n 132|\n### 5.4 结果回流3 项)\n 134|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-10 | ASIN 健康「回流」的具体动作是什么?(更新 ASIN 评分/评价数到 planning触发新一轮需求评估更新 outreach 的触达策略?) | P1 |\n| V-11 | 计划完成度的计算方式——「评价确认展示」即算完成?还是需要确认展示 + 关联到本计划用户?(如何确保那条展示的评价确实是本计划用户的?) | P1 |\n| V-12 | 免评结果的「权重变化」如何量化Amazon 不直接提供权重数据——如何通过间接指标判断?) | P2 |\n 140|\n### 5.5 评价质量管理4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-13 | 是否需要评价内容分析?(好评/中评/差评?评价字数?是否含图片/视频?——这些影响评价质量评分?) | P2 |\n| V-14 | 差评检测和响应——用户提交了差评1-2 星)是否需要自动触发售后工单?(「差评补救」流程?) | P1 |\n| V-15 | 虚假评价检测——用户提交的评价是否可能被 Amazon 判定为虚假评价并删除?(系统是否需要内部质量评分来预测被删风险?) | P2 |\n| V-16 | 评价的 ASIN 匹配校验——用户声称对 ASIN A 提交了评价但实际是对 ASIN B 提交的——如何检测和处理? | P1 |\n\n### 5.6 异常观察队列补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-17 | 评价提交后 Amazon 展示的预期时间窗口?(通常 24-48h最长多久超出预期窗口后的自动通知 | P1 |\n| V-18 | Amazon 删除评价违反社区准则vs 用户删除评价 vs 评价被折叠——是否能区分?分别如何处理? | P2 |\n| V-19 | 大量评价同时进入异常观察(例如 Amazon 评价系统故障导致全站延迟)——系统如何处理?(自动暂停观察队列?人工干预?) | P2 |\n\n### 5.7 ASIN 健康回流补充3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-20 | ASIN 健康更新的频率?(每次评价确认展示就更新?每天汇总更新一次?) | P2 |\n| V-21 | 如果多人同时对同一 ASIN 提交了评价,是否对 ASIN 健康有复合影响?(例如 5 条 5 星好评 vs 1 条 1 星差评——权重不同) | P2 |\n| V-22 | ASIN 健康数据的来源——是 Amazon 直接提供的数据还是系统内部计算Amazon 评分 vs 系统追踪到的评价评分可能有差异) | P1 |\n\n### 5.8 实施层面2 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| V-23 | 评价展示核验如果是爬取 Amazon 页面——爬取频率和多 ASIN 并行爬取能力?(需要爬取几百个 ASIN 时的时间和资源开销) | P1 |\n| V-24 | 评价数据是否需要在系统间同步outreach 需要知道「用户已提交」→暂停触达planning 需要知道「评价已确认」→更新计划完成度)数据一致性的保证? | P1 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/08-子系统-KOC-KOL协作",
"type": "document",
"name": "子系统 08 — KOC/KOL 协作 (`creator`) v1.0",
"filePath": "05_需求文档/08-子系统-KOC-KOL协作.md",
"summary": "子系统 08 — KOC/KOL 协作 creator v1.0 2 子系统概述 4 维度 说明 代号 creator 核心职责 KOC/KOL 匹配筛选、内容 Brief/Code 分配、内容发布跟踪、带货结果跟踪、JOYCOLLAB 数据同步 数据所有权 exemption plan tasks , creator content records , c",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 08 — KOC/KOL 协作 (`creator`) v1.0\n 2|\n## 子系统概述\n 4|\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `creator` |\n| 核心职责 | KOC/KOL 匹配筛选、内容 Brief/Code 分配、内容发布跟踪、带货结果跟踪、JOYCOLLAB 数据同步 |\n| 数据所有权 | `exemption_plan_tasks`, `creator_content_records`, `creator_profiles`, `code_records` |\n| 启动依赖 | planning软依赖免评计划入口 |\n| 外部系统依赖 | JOYCOLLABKOC/KOL 数据、内容数据、Code 使用、带货订单) |\n 12|\n---\n 14|\n## 1. 模块划分\n 16|\n```\n┌─────────────────────────────────────────────────────────────┐\n│ creator 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: KOC/KOL │ │ M2: 内容/Code│ │ M3: 结果跟踪 │ │\n│ │ 匹配筛选 │→│ 管理 │→│ │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: JOYCOLLAB│ │ M5: IM/EDM/ │ │ M6: 对外 API │ │\n│ │ 数据同步 │ │ APP 协同 │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n 34|\n| # | 模块 | 职责 |\n| --- | --- | --- |\n| M1 | KOC/KOL 匹配筛选 | 按国家/平台/粉丝量/产品类目/历史效果筛选匹配合作对象;检查合作对象风险(历史纠纷/违约) |\n| M2 | 内容/Code 管理 | 分配内容 Brief、分配 Code、管理 Code 使用量、素材管理 |\n| M3 | 结果跟踪 | 跟踪内容发布状态、点击/跳转数据、Code 使用量、带货订单、转化销量、权重变化 |\n| M4 | JOYCOLLAB 数据同步 | 从 JOYCOLLAB 拉取 KOC/KOL 数据、内容数据、Code 使用、带货订单;同步失败告警 |\n| M5 | IM/EDM/APP 协同 | KOC 内容二次分发、免评 Code 触达站内用户、活动引流、结果通知 |\n| M6 | 对外 API Gateway | 供 planning、outreach、review 查询 |\n 43|\n---\n 45|\n## 2. 各模块内外说明\n 47|\n### 2.1 M1: KOC/KOL 匹配筛选\n 49|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 免评计划进入后:①按国家/平台/粉丝量/历史效果筛选 KOC/KOL ②按产品类目匹配专长 ③检查合作对象风险(历史纠纷/违约)→有风险记录时提示 |\n| **对外接口** | `GET /api/creators/match?plan_id=` — 获取匹配推荐列表 |\n| **数据写入** | `creator_profiles`(从 JOYCOLLAB 同步的 KOC/KOL 画像缓存) |\n| **待确认** | 匹配是完全自动推荐还是运营人工选择?推荐算法依赖哪些权重? |\n 56|\n### 2.2 M2: 内容/Code 管理\n 58|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 分配内容 Brief产品信息/要求/素材/发布时间Code 分配(每个 KOC 独立 Code 还是一对多Code 使用量监控 |\n| **对外接口** | `POST /api/creators/tasks` — 创建协作任务(含 Brief + Code |\n| **数据写入** | `exemption_plan_tasks`, `code_records` |\n| **待确认** | Code 是 JOYCOLLAB 生成还是 USER 系统生成Code 是优惠码还是追踪码? |\n 65|\n### 2.3 M3: 结果跟踪\n 67|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 跟踪 6 组结果:①内容发布状态/链接/互动数据 ②点击/跳转量 ③Code 使用量 ④带货订单数 ⑤转化销量 ⑥Listing 权重变化;执行评估:达标→结果回流 / 未达标→调整策略更换KOC/调整素材/追加Code |\n| **对外接口** | `GET /api/creators/results/{plan_id}` — 免评计划执行结果 |\n| **数据写入** | `creator_content_records` |\n| **依赖** | JOYCOLLAB 数据同步 |\n 74|\n### 2.4 M4: JOYCOLLAB 数据同步\n 76|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 从 JOYCOLLAB 同步KOC/KOL 画像数据、内容发布数据、Code 使用数据、带货订单数据;同步记录(时间/成功/失败);同步失败告警 |\n| **对外接口** | 内部定时任务 |\n| **数据写入** | 本地缓存表(`creator_profiles`, `creator_content_records` |\n| **待确认** | 同步方向是单向COLLAB→USER还是双向同步频率 |\n 83|\n### 2.5 M5: IM/EDM/APP 协同\n 85|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 4 种协同动作①KOC 内容二次分发IM/APP 推送优质内容)②免评 Code 触达IM/EDM 分发 Code 给站内用户③活动引流APP Push 引导用户进入 KOC 内容页④结果通知IM/APP 通知用户 Code 到账/订单确认) |\n| **对外接口** | 调用 outreach API`POST /api/outreach/im/send` 等 |\n| **数据写入** | 协同记录 |\n 91|\n---\n 93|\n## 3. 对外 API 契约(草案)\n 95|\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| KOC/KOL 匹配推荐 | `GET /api/creators/match?plan_id=` | plan_id | `[{creator_id, score, match_reason}]` | planner 前端 |\n| 创建协作任务 | `POST /api/creators/tasks` | `{creator_id, plan_id, brief, code, deadline}` | `{task_id}` | planner 前端 |\n| 免评执行结果 | `GET /api/creators/results/{plan_id}` | plan_id | `{content, clicks, codes, orders, sales, weight_change}` | review结果回流, planning |\n| KOC/KOL 画像查询 | `GET /api/creators/{creator_id}` | creator_id | KOC/KOL 完整画像 | planner 前端 |\n 102|\n---\n 104|\n## 4. 数据对象\n 106|\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `exemption_plan_tasks` | task_id, plan_id, creator_id, brief, code, status, assigned_at, deadline | 免评计划协作任务 |\n| `creator_content_records` | record_id, task_id, creator_id, content_url, publish_time, engagement_data, synced_at | KOC 内容发布记录 |\n| `creator_profiles` | creator_id, name, platform, country, follower_count, category, historical_performance, risk_notes, synced_at | KOC/KOL 画像(从 JOYCOLLAB 同步的本地缓存) |\n| `code_records` | code_id, task_id, code_value, code_type, usage_count, usage_limit, status | Code 记录 |\n 113|\n---\n 115|\n## 5. 业务澄清问题清单 — creator\n 117|\n### 5.1 JOYCOLLAB 对接4 项)\n 119|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-01 | JOYCOLLAB 中 KOC/KOL 的完整数据字段有哪些?(平台/粉丝量/国家/类目/历史合作效果/历史纠纷/违约——文档部分列出,需确认完整字段清单和 API 可用性) | **P0** |\n| K-02 | 数据同步方向是单向COLLAB→USER还是双向USER 分配的 Brief/Code 是否需要回写到 COLLAB | **P0** |\n| K-03 | 同步频率?(实时 Webhook每小时每天同步失败时谁来处理重试策略 | P1 |\n| K-04 | JOYCOLLAB 是否有现成 API是 REST API 还是需要开发新的同步接口? | P1 |\n 126|\n### 5.2 KOC/KOL 匹配3 项)\n 128|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-05 | 匹配是运营人工选择还是系统自动推荐?推荐算法的权重?(粉丝量 vs 历史效果 vs 类目匹配 vs 报价?) | P1 |\n| K-06 | KOC/KOL 是否有评级/分层体系?(头部/腰部/尾部?)不同层级对应的计划类型是否不同? | P1 |\n| K-07 | 「合作对象风险(历史纠纷/违约」——风险数据从哪里来JOYCOLLAB人工标记什么程度的风险需要拦截 | P1 |\n 134|\n### 5.3 Code 与内容3 项)\n 136|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-08 | Code 是 JOYCOLLAB 生成还是 USER 系统生成Code 类型?(优惠码/追踪码/专属链接?)一对一还是可以多人共用? | P1 |\n| K-09 | KOC 发布的内容是否需要审核Brief 交付后→KOC 创作→审核→发布?)审核流程在哪个系统? | P2 |\n| K-10 | KOC 内容二次分发到 IM/APP——分发策略是什么所有优质内容都分发按产品/地区筛选?) | P2 |\n 142|\n### 5.4 财务结算2 项)\n 144|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-11 | KOC/KOL 的提成/返点结算在哪个系统执行JOYCOLLAB财务系统还是 USER 内触发结算指令USER 的责任边界? | P1 |\n| K-12 | 结算数据(提成计算/返点核算/提款记录)是否需要同步到 USER权限控制财务数据独立权限 | P2 |\n 149|\n### 5.5 KOC/KOL 分层与定价3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-13 | KOC/KOL 是否有分层体系?(头部/腰部/尾部——按粉丝量划分?按历史带货效果划分?)不同分层的合作价格和权益? | P1 |\n| K-14 | KOC/KOL 的报价/定价数据是否在系统中维护?(用于预算计算和 ROI 分析?) | P2 |\n| K-15 | KOC/KOL 是否有签约/合同管理?排他性协议?(签约期内只能推广本品牌产品?)排他性信息是否需要系统记录? | P2 |\n\n### 5.6 内容与权益管理3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-16 | KOC/KOL 发布内容的使用权和授权期限?(品牌是否可以二次使用、广告投放、修改?授权条款在系统中管理还是走线下合同?) | P2 |\n| K-17 | 内容审核流程——KOC/KOL 创作的内容是否需要品牌方审核后才能发布?(审核不通过→修改→重新审核的流程?) | P1 |\n| K-18 | 内容效果评估——除了点击/Code/订单数据外,是否需要评估内容质量?(互动率、完播率、正向评论比例?) | P2 |\n\n### 5.7 多平台 KOC/KOL 管理3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-19 | KOC/KOL 涉及哪些平台YouTube / TikTok / Instagram / Facebook / 博客 / Amazon 站内 Influencer Program每个平台的数据来源 | P1 |\n| K-20 | 同一 KOC/KOL 在多个平台有账号——是否在系统中关联为同一个人?(类似 identity 的归并逻辑?) | P2 |\n| K-21 | 不同平台的内容格式和指标不同YouTube 视频 vs Instagram 帖子 vs TikTok 短视频)——结果跟踪如何统一? | P2 |\n\n### 5.8 Code 管理补充2 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-22 | Code 的类型?(一次性折扣码 / 多次使用码 / 追踪链接 / 专属落地页?)不同类型的生成和追踪逻辑? | P1 |\n| K-23 | Code 的有效期管理?(计划结束后 Code 自动失效还是保留一段时间Code 是否可重复使用? | P1 |\n\n### 5.9 实施层面3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| K-24 | JOYCOLLAB 数据同步失败时的降级策略?(用本地缓存数据?标记为「数据可能过期」?暂停新的协作任务?) | P1 |\n| K-25 | KOC/KOL 匹配算法的性能——如果 JOYCOLLAB 有几千个 KOC匹配需要多少时间是否有预筛选+精排的两阶段设计? | P2 |\n| K-26 | KOC/KOL 的任务状态如何与 planning 的计划状态联动?(协作任务完成→计划完成度增加→计划状态更新?) | P1 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/09-子系统-审计与通知中心",
"type": "document",
"name": "子系统 09 — 审计与通知中心 (`audit`) v1.0",
"filePath": "05_需求文档/09-子系统-审计与通知中心.md",
"summary": "子系统 09 — 审计与通知中心 audit v1.0 2 子系统概述 4 维度 说明 代号 audit 核心职责 状态变更审计、敏感字段访问日志、多类型通知/告警 数据所有权 interaction audit logs , notification records , manual review tasks 启动依赖 无硬依赖,完全独立 外部系统依赖 通",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 子系统 09 — 审计与通知中心 (`audit`) v1.0\n 2|\n## 子系统概述\n 4|\n| 维度 | 说明 |\n| --- | --- |\n| 代号 | `audit` |\n| 核心职责 | 状态变更审计、敏感字段访问日志、多类型通知/告警 |\n| 数据所有权 | `interaction_audit_logs`, `notification_records`, `manual_review_tasks` |\n| 启动依赖 | 无硬依赖,完全独立 |\n| 外部系统依赖 | 通知可能通过 IM/EDM/APP Push 等通道(可复用 outreach 通道或独立) |\n 12|\n---\n 14|\n## 1. 模块划分\n 16|\n```\n┌─────────────────────────────────────────────────────────────┐\n│ audit 子系统 │\n│ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M1: 状态变更 │ │ M2: 敏感操作 │ │ M3: 通知分发 │ │\n│ │ 审计 │ │ 审计 │ │ 引擎 │ │\n│ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │\n│ │ │ │ │\n│ ▼ ▼ ▼ │\n│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │\n│ │ M4: 通知模板 │ │ M5: 人工复核 │ │ M6: 对外 API │ │\n│ │ 管理 │ │ 任务 │ │ Gateway │ │\n│ └──────────────┘ └──────────────┘ └──────────────┘ │\n│ │\n└─────────────────────────────────────────────────────────────┘\n```\n 34|\n| # | 模块 | 职责 |\n| --- | --- | --- |\n| M1 | 状态变更审计 | 记录所有业务对象的状态流转对象ID/旧状态/新状态/操作人/时间/原因) |\n| M2 | 敏感操作审计 | 敏感字段访问记录、数据导出记录、人工复核操作留痕 |\n| M3 | 通知分发引擎 | 按通知类型路由到不同通道(系统内通知/IM/EDM/APP Push通知优先级管理 |\n| M4 | 通知模板管理 | 各类通知的模板(额度预警/Listing 预警/超时提醒/审批通知/风险告警) |\n| M5 | 人工复核任务 | 管理需要人工复核的任务(弱关联风险/额度预警池/异常评价),供风险/运营人员消费 |\n| M6 | 对外 API Gateway | 接收所有子系统上报的审计事件和通知请求 |\n 43|\n---\n 45|\n## 2. 各模块内外说明\n 47|\n### 2.1 M1: 状态变更审计\n 49|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 接收所有子系统的状态变更事件fire-and-forget记录对象类型plan/ticket/risk_case/review…、对象ID、旧状态、新状态、操作人、操作时间、操作原因审计日志不可篡改append-only支持按对象ID/操作人/时间范围检索 |\n| **对外接口** | `POST /api/audit/event` — 上报审计事件 |\n| **数据写入** | `interaction_audit_logs` |\n| **典型事件** | 计划状态变更(草稿→审批→执行→完成)、工单分配/关闭、风险事件确认/排除、额度手动调整、审批决策 |\n 56|\n### 2.2 M2: 敏感操作审计\n 58|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 三类敏感操作:①敏感字段访问(用户上下文卡中的涉密字段→记录访问人/时间/字段/上下文)②数据导出操作(导出人/时间/范围/原因/是否含敏感字段)③人工复核操作(决策人/决策内容/决策依据/时间) |\n| **对外接口** | `POST /api/audit/sensitive-access` — 上报敏感访问 |\n| **数据写入** | `interaction_audit_logs`(带 sensitivity 标记) |\n 64|\n### 2.3 M3: 通知分发引擎\n 66|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 接收通知请求→按通知类型路由①系统内通知Web 前端轮询/WebSocket②IM 通知(通过 outreach③EDM 通知 ④APP Push优先级管理紧急 Listing 预警 > 超时提醒 > 额度预警);通知去重(同一用户同一类型短时间内不重复发) |\n| **对外接口** | `POST /api/notifications/send` — 发送通知 |\n| **依赖** | outreachIM/EDM/APP Push 通道) |\n 72|\n### 2.4 M4: 通知模板管理\n 74|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 通知类型与模板:①额度预警(「真实人 X 的测评额度仅剩 1 次」)②紧急 Listing 预警「ASIN X 评分接近 4.2,建议紧急催评」)③客服超时提醒(「工单 #123 已超时 N 小时未回复」)④审批通知(「计划 X 等待您的审批」⑤规则风控提醒「ASIN X 频控过高」)⑥风险告警(「用户 X 命中强关联风险」) |\n| **对外接口** | 管理 API |\n| **数据写入** | `notification_records` |\n| **待确认** | 模板是否需要多语言(中文/英文/菲律宾语)?模板管理界面在 audit 内部还是独立? |\n 81|\n### 2.5 M5: 人工复核任务\n 83|\n| 维度 | 说明 |\n| --- | --- |\n| **对内** | 统一管理需人工复核的任务:弱关联风险复核、额度预警池复核、异常评价复核、诈骗疑似复核;任务分配/认领/完成/超时 |\n| **对外接口** | `POST /api/audit/review-task` — 创建复核任务;`GET /api/audit/review-tasks?assignee=` — 查询待复核任务 |\n| **数据写入** | `manual_review_tasks` |\n 89|\n---\n 91|\n## 3. 对外 API 契约(草案)\n 93|\n| 接口 | 方法 | 输入 | 输出 | 消费者 |\n| --- | --- | --- | --- | --- |\n| 上报审计事件 | `POST /api/audit/event` | `{object_type, object_id, old_status, new_status, operator, reason}` | `{event_id}` | 所有子系统(状态变更时调用) |\n| 上报敏感访问 | `POST /api/audit/sensitive-access` | `{operator, field, context, accessed_at}` | `{event_id}` | identity上下文卡访问 |\n| 发送通知 | `POST /api/notifications/send` | `{recipient, type, template_id, params}` | `{notification_id}` | 所有子系统 |\n| 创建复核任务 | `POST /api/audit/review-task` | `{task_type, target_id, priority, description}` | `{task_id}` | risk, quota |\n 100|\n---\n 102|\n## 4. 数据对象\n 104|\n| 对象 | 核心字段 | 说明 |\n| --- | --- | --- |\n| `interaction_audit_logs` | log_id, object_type, object_id, old_status, new_status, operator, operation, reason, sensitivity_level, logged_at | 审计日志append-only |\n| `notification_records` | notification_id, recipient, type, template_id, channel, sent_at, status(SENT/DELIVERED/READ/FAILED) | 通知记录 |\n| `manual_review_tasks` | task_id, task_type, target_id, status(PENDING/ASSIGNED/IN_REVIEW/RESOLVED/TIMEOUT), assignee, priority, created_at, resolved_at | 人工复核任务 |\n 110|\n---\n 112|\n## 5. 业务澄清问题清单 — audit\n 114|\n### 5.1 审计范围与保留4 项)\n 116|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-01 | 审计日志的保留策略保留多久1 年?永久?到期后归档还是删除?) | **P0** |\n| A-02 | 审计日志的存储量预估?(日产生多少条?是否需要分库分表/冷热分离?) | P1 |\n| A-03 | 审计日志是否需要支持导出/报表?(合规审计时需要导出给外部审计?) | P1 |\n| A-04 | 「敏感字段」的定义范围?(订单号、收款信息、设备号——还有哪些?谁来确定完整清单?) | **P0** |\n 123|\n### 5.2 通知策略4 项)\n 125|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-05 | 通知发送通道的优先级紧急告警用什么通道IM系统内通知邮件 | P1 |\n| A-06 | 通知去重规则?(同一用户同一类型通知 N 分钟内不重复发?) | P1 |\n| A-07 | 通知是否需要用户偏好设置?(用户可以选择不接收某类通知?公告类通知是否强制发送?) | P2 |\n| A-08 | 通知模板是否需要多语言支持?(中文/英文/菲律宾语?)模板由谁来维护? | P2 |\n 132|\n### 5.3 人工复核任务2 项)\n 134|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-09 | 人工复核任务的时效要求?(不同任务类型 SLA弱关联风险 N 小时内复核?额度预警池 N 分钟内复核?) | P1 |\n| A-10 | 复核任务超时后的升级机制?(自动分配给上级?通知主管?) | P2 |\n 139|\n### 5.4 与其他子系统的协作2 项)\n 141|\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-11 | 通知通道是否完全复用 outreachIM/EDM/APP Push还是 audit 独立对接通知通道?(如果 outreach 不可用audit 仍需要能发告警) | P1 |\n| A-12 | 审计事件是同步上报还是异步?(同步→影响业务链路性能 / 异步→可能丢失事件) | P1 |\n 146|\n### 5.5 合规与认证3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-13 | 系统是否需要通过合规认证SOC2 Type II / ISO 27001认证对审计日志的完整性、不可篡改性、保留期限有何具体要求 | P1 |\n| A-14 | 数据导出请求DSR——用户或监管机构要求导出所有个人数据时系统如何响应需要哪些子系统的数据导出格式响应时限 | P1 |\n| A-15 | 审计日志是否需要对第三方审计开放?(外部审计师需要查看审计日志时——权限控制和数据脱敏?) | P2 |\n\n### 5.6 日志保留与归档3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-16 | 审计日志的分级保留策略?(状态变更日志保留 X 年 / 敏感访问日志保留 Y 年 / 通知记录保留 Z 月?) | P1 |\n| A-17 | 日志归档方案?(超过保留期的日志是删除还是归档到冷存储?归档后是否仍可检索?) | P2 |\n| A-18 | 日志存储量预估?(日产生日志条数 × 保留天数 = 需要的存储空间——是否需要分库分表/分区?) | P2 |\n\n### 5.7 敏感数据脱敏3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-19 | 审计日志中是否允许记录敏感字段的明文?(例如「谁在何时查看了用户 X 的收款信息」——收款信息是否脱敏存储?) | P1 |\n| A-20 | 日志查询权限——谁可以查审计日志?(管理员?审计员?)是否需要限制只能查自己相关的日志? | P1 |\n| A-21 | 生产环境的日志是否可以包含 PII个人可识别信息邮箱/电话/地址——是否在写入日志时自动脱敏?) | P1 |\n\n### 5.8 通知可靠性3 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-22 | 通知的可靠性保证——紧急告警(如 Listing 评分暴跌)是否需要确保送达?(有送达确认机制吗?发送失败后重试?) | P1 |\n| A-23 | 通知通道的优先级切换——IM 通知失败后是否自动切换到 EDM 或系统通知? | P2 |\n| A-24 | 通知的聚合/摘要——同一个用户短时间收到多条同类通知是否合并?(「您有 3 个待审批计划」而不是 3 条独立通知) | P2 |\n\n### 5.9 实施层面4 项)\n\n| # | 问题 | 优先级 |\n| --- | --- | --- |\n| A-25 | 审计事件是同步写入还是异步写入?(同步→影响业务链路 RT / 异步→可能丢失事件——如何取舍?) | P1 |\n| A-26 | 审计日志的查询性能——是否需要支持全文搜索?(按操作人/对象ID/时间范围检索是否需要在秒级返回?) | P2 |\n| A-27 | 通知通道的可靠性——如果 audit 子系统本身宕机,其他子系统的通知请求是否丢失?(是否需要消息队列做缓冲?) | P1 |\n| A-28 | audit 子系统是否需要独立的数据库?(与其他子系统共享数据库会在高峰期互相影响——是否独立部署数据库?) | P2 |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260504_USER后台ERP_MVP管理员首页高保真原型_v7",
"type": "document",
"name": "USER 后台 ERP MVP · 管理员总览原型 v7",
"filePath": "05_需求文档/20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html",
"summary": "USER 后台 ERP MVP · 管理员总览原型 v7 U USER 后台 ERP MVP 一期 v7 · 模拟数据 待办提醒 21 重要事项 3 审核类 4 紧急 Listing 7 问题总结 9 经营总览 系统管理员 · 最高权限 · 全部部门 搜索 至 日 周 月 全部部门 Amazon 运营 用户运营 客服 系统管理员(最高权限) Amazon 运",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>USER 后台 ERP MVP · 管理员总览原型 v7</title>\n <style>\n :root {\n --bg: #f4f6f8;\n --panel: #ffffff;\n --panel-soft: #f8fafc;\n --line: #d9e1e8;\n --line-strong: #b9c6d2;\n --text: #1f2933;\n --muted: #66737f;\n --blue: #2563eb;\n --blue-soft: #eaf1ff;\n --green: #188260;\n --green-soft: #e7f7f0;\n --red: #c93636;\n --red-soft: #fdecec;\n --amber: #b56a16;\n --amber-soft: #fff4df;\n --purple: #725ac1;\n --purple-soft: #f0ecff;\n --shadow: 0 18px 44px rgba(24, 39, 61, 0.12);\n --radius: 8px;\n --sidebar: #17212b;\n --sidebar-soft: #22313f;\n }\n\n * {\n box-sizing: border-box;\n }\n\n body {\n margin: 0;\n min-height: 100vh;\n background: var(--bg);\n color: var(--text);\n font-family: \"Microsoft YaHei\", \"Segoe UI\", Arial, sans-serif;\n letter-spacing: 0;\n }\n\n button,\n input,\n select,\n textarea {\n font: inherit;\n }\n\n button {\n cursor: pointer;\n }\n\n .app-shell {\n min-height: 100vh;\n display: grid;\n grid-template-columns: 236px minmax(0, 1fr);\n }\n\n .sidebar {\n background: var(--sidebar);\n color: #e8eef5;\n padding: 18px 14px;\n position: sticky;\n top: 0;\n height: 100vh;\n display: flex;\n flex-direction: column;\n gap: 18px;\n }\n\n .brand {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 8px 16px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n .brand-mark {\n width: 34px;\n height: 34px;\n border-radius: 8px;\n display: grid;\n place-items: center;\n background: #2f6fca;\n color: #fff;\n font-weight: 800;\n }\n\n .brand-title {\n font-weight: 800;\n font-size: 15px;\n line-height: 1.2;\n }\n\n .brand-subtitle {\n color: #a8b5c2;\n font-size: 12px;\n margin-top: 2px;\n }\n\n .nav {\n display: grid;\n gap: 6px;\n overflow: auto;\n padding-right: 2px;\n }\n\n .nav-button {\n width: 100%;\n height: 42px;\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: #d8e2ec;\n display: grid;\n grid-template-columns: 28px 1fr auto;\n align-items: center;\n text-align: left;\n padding: 0 10px;\n gap: 8px;\n }\n\n .nav-button:hover,\n .nav-button.active {\n background: var(--sidebar-soft);\n color: #fff;\n }\n\n .nav-icon {\n width: 24px;\n height: 24px;\n border: 1px solid rgba(255, 255, 255, 0.18);\n border-radius: 6px;\n display: grid;\n place-items: center;\n font-size: 11px;\n font-weight: 800;\n color: #dce7f2;\n }\n\n .nav-count {\n min-width: 22px;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.12);\n color: #d7e4ef;\n text-align: center;\n font-size: 12px;\n padding: 2px 6px;\n }\n\n .sidebar-todo {\n margin-top: auto;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 8px;\n background: rgba(255, 255, 255, 0.05);\n padding: 10px;\n display: grid;\n gap: 8px;\n }\n\n .sidebar-todo-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #f5f9ff;\n font-size: 12px;\n font-weight: 800;\n }\n\n .sidebar-todo-head strong {\n min-width: 26px;\n height: 22px;\n border-radius: 999px;\n display: grid;\n place-items: center;\n background: var(--red);\n color: #fff;\n font-size: 12px;\n }\n\n .sidebar-todo-row {\n min-height: 30px;\n border: 0;\n border-radius: 6px;\n background: rgba(255, 255, 255, 0.07);\n color: #dce7f2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 8px;\n text-align: left;\n font-size: 12px;\n }\n\n .sidebar-todo-row:hover,\n .sidebar-todo-row.primary {\n background: rgba(37, 99, 235, 0.34);\n color: #fff;\n }\n\n .sidebar-todo-row strong {\n color: #fff;\n font-size: 13px;\n }\n\n .main {\n min-width: 0;\n display: grid;\n grid-template-rows: 58px minmax(0, 1fr);\n }\n\n .topbar {\n background: var(--panel);\n border-bottom: 1px solid var(--line);\n display: grid;\n grid-template-columns: minmax(300px, 1fr) auto;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 8px 18px;\n position: sticky;\n top: 0;\n z-index: 20;\n min-height: 58px;\n }\n\n .top-left {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n }\n\n .top-title {\n min-width: 138px;\n }\n\n .top-title strong {\n display: block;\n font-size: 16px;\n line-height: 1.2;\n color: #152233;\n }\n\n .top-title span {\n display: block;\n color: var(--muted);\n font-size: 12px;\n margin-top: 2px;\n }\n\n .search {\n width: min(240px, 22vw);\n height: 34px;\n border: 1px solid var(--line);\n background: var(--panel-soft);\n border-radius: 8px;\n display: flex;\n align-items: center;\n padding: 0 10px;\n gap: 8px;\n color: var(--muted);\n flex-shrink: 1;\n }\n\n .search span {\n font-size: 12px;\n font-weight: 800;\n }\n\n .search input {\n width: 100%;\n border: 0;\n background: transparent;\n outline: 0;\n color: var(--text);\n }\n\n .top-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n justify-content: flex-end;\n flex-wrap: wrap;\n }\n\n .role-select,\n .scope-select {\n height: 32px;\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 0 10px;\n color: var(--text);\n }\n\n .scope-select {\n width: 116px;\n }\n\n .role-select {\n width: 164px;\n }\n\n .top-time {\n height: 32px;\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 6px;\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n }\n\n .top-time input {\n width: 98px;\n height: 28px;\n border: 0;\n outline: 0;\n color: var(--text);\n background: transparent;\n }\n\n .top-period {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 32px;\n padding: 3px;\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n }\n\n .top-period button {\n height: 24px;\n min-width: 28px;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: var(--muted);\n font-weight: 800;\n padding: 0 7px;\n }\n\n .top-period button.active {\n background: var(--blue);\n color: #fff;\n }\n\n .content {\n padding: 14px 24px 34px;\n min-width: 0;\n }\n\n .page-head {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 18px;\n margin-bottom: 12px;\n padding: 2px 0 4px;\n }\n\n h1 {\n margin: 0;\n font-size: 19px;\n line-height: 1.2;\n color: #182331;\n }\n\n .page-note {\n margin-top: 6px;\n color: var(--muted);\n font-size: 12px;\n }\n\n .button-row {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n }\n\n .btn {\n min-height: 34px;\n border: 1px solid var(--line);\n background: var(--panel);\n color: var(--text);\n border-radius: 8px;\n padding: 0 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n white-space: nowrap;\n }\n\n .btn:hover {\n border-color: var(--line-strong);\n background: #f9fbfd;\n }\n\n .btn.primary {\n background: var(--blue);\n color: #fff;\n border-color: var(--blue);\n }\n\n .btn.danger {\n background: var(--red);\n color: #fff;\n border-color: var(--red);\n }\n\n .btn.warning {\n background: var(--amber);\n color: #fff;\n border-color: var(--amber);\n }\n\n .btn.ghost {\n background: transparent;\n }\n\n .grid {\n display: grid;\n gap: 14px;\n }\n\n .kpi-grid {\n grid-template-columns: repeat(4, minmax(170px, 1fr));\n margin-bottom: 14px;\n }\n\n .kpi-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 14px;\n min-height: 118px;\n display: grid;\n gap: 8px;\n text-align: left;\n transition: border-color 0.16s ease, transform 0.16s ease;\n }\n\n .kpi-card:hover {\n border-color: var(--blue);\n transform: translateY(-1px);\n }\n\n .kpi-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n }\n\n .kpi-title {\n font-size: 13px;\n color: var(--muted);\n font-weight: 700;\n }\n\n .kpi-value {\n font-size: 30px;\n font-weight: 800;\n line-height: 1;\n color: #172331;\n }\n\n .kpi-foot {\n font-size: 12px;\n color: var(--muted);\n display: flex;\n justify-content: space-between;\n gap: 8px;\n }\n\n .layout-dashboard {\n display: grid;\n grid-template-columns: minmax(0, 1.42fr) minmax(320px, 0.7fr);\n gap: 14px;\n align-items: start;\n }\n\n .panel {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n min-width: 0;\n }\n\n .panel-head {\n padding: 14px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n\n .panel-title {\n margin: 0;\n font-size: 16px;\n font-weight: 800;\n color: #182331;\n }\n\n .panel-note {\n color: var(--muted);\n font-size: 12px;\n margin-top: 3px;\n }\n\n .panel-body {\n padding: 14px 16px 16px;\n }\n\n .tabs {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n\n .tab {\n height: 30px;\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 0 10px;\n color: var(--muted);\n }\n\n .tab.active {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #bcd0ff;\n font-weight: 700;\n }\n\n .filter-bar {\n display: grid;\n grid-template-columns: 1.3fr repeat(2, minmax(128px, 0.7fr)) repeat(4, minmax(126px, 0.8fr)) auto;\n gap: 10px;\n margin-bottom: 12px;\n }\n\n .filter-bar input,\n .filter-bar select {\n height: 34px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 8px;\n padding: 0 10px;\n min-width: 0;\n }\n\n .time-toolbar {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 12px 14px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 14px;\n flex-wrap: wrap;\n }\n\n .time-controls,\n .period-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .time-toolbar input,\n .time-toolbar select,\n .period-toggle button {\n height: 32px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 8px;\n padding: 0 10px;\n color: var(--text);\n }\n\n .period-toggle button.active {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #bcd0ff;\n font-weight: 800;\n }\n\n .trend-line {\n font-size: 12px;\n color: var(--muted);\n display: grid;\n grid-template-columns: repeat(3, max-content);\n gap: 8px;\n align-items: center;\n }\n\n .spark {\n display: flex;\n align-items: end;\n gap: 3px;\n height: 24px;\n min-width: 58px;\n }\n\n .spark i {\n display: block;\n width: 7px;\n border-radius: 3px 3px 0 0;\n background: #9db5d0;\n }\n\n .insight-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 10px;\n margin-bottom: 14px;\n }\n\n .insight-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n min-height: 112px;\n }\n\n .insight-title {\n font-weight: 800;\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n }\n\n .insight-value {\n font-size: 24px;\n font-weight: 800;\n line-height: 1;\n }\n\n .insight-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.5;\n }\n\n .module-charts {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n margin-bottom: 14px;\n }\n\n .chart-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n min-width: 0;\n }\n\n .chart-title {\n font-size: 13px;\n font-weight: 800;\n margin-bottom: 8px;\n }\n\n .mini-stat-row {\n display: grid;\n grid-template-columns: 78px minmax(0, 1fr) 44px;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--muted);\n margin-top: 8px;\n }\n\n .pending-strip {\n background: #fff7ed;\n border: 1px solid #f3cf9b;\n border-radius: 8px;\n padding: 10px 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n color: #7d4a0b;\n font-size: 13px;\n }\n\n .executive-hero {\n display: grid;\n grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1.55fr);\n gap: 14px;\n margin-bottom: 14px;\n }\n\n .focus-card {\n background: #111827;\n color: #eef5ff;\n border-radius: 8px;\n padding: 18px;\n display: grid;\n gap: 16px;\n min-height: 260px;\n }\n\n .focus-eyebrow {\n color: #a8b3c2;\n font-size: 12px;\n font-weight: 800;\n }\n\n .focus-title {\n font-size: 21px;\n line-height: 1.32;\n font-weight: 800;\n margin: 0;\n }\n\n .health-score {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: end;\n gap: 14px;\n }\n\n .health-number {\n font-size: 54px;\n font-weight: 900;\n line-height: 0.95;\n }\n\n .health-copy {\n color: #cbd5e1;\n font-size: 13px;\n line-height: 1.55;\n }\n\n .focus-metrics {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 8px;\n }\n\n .focus-metric {\n background: rgba(255, 255, 255, 0.08);\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 8px;\n padding: 10px;\n }\n\n .focus-metric strong {\n display: block;\n font-size: 20px;\n margin-bottom: 4px;\n }\n\n .focus-metric span {\n color: #aebbc9;\n font-size: 12px;\n }\n\n .decision-panel {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n min-width: 0;\n }\n\n .decision-list {\n display: grid;\n gap: 10px;\n padding: 14px;\n }\n\n .decision-row {\n display: grid;\n grid-template-columns: 92px minmax(0, 1fr) auto;\n align-items: center;\n gap: 12px;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n background: #fff;\n }\n\n .decision-row.critical {\n border-color: #f1b5b5;\n background: #fff8f8;\n }\n\n .decision-row.warning {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .decision-title {\n font-size: 14px;\n font-weight: 800;\n margin-bottom: 5px;\n }\n\n .decision-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.5;\n }\n\n .executive-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 12px;\n margin-bottom: 14px;\n }\n\n .executive-card {\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 14px;\n min-height: 158px;\n display: grid;\n gap: 10px;\n text-align: left;\n color: var(--text);\n }\n\n .executive-card.primary {\n border-color: #b9cdfb;\n background: #f7faff;\n }\n\n .executive-card.risk {\n border-color: #efb6b6;\n background: #fff8f8;\n }\n\n .executive-card.warn {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .executive-card.good {\n border-color: #b8e4d0;\n background: #f6fffb;\n }\n\n .executive-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 13px;\n color: var(--muted);\n font-weight: 800;\n }\n\n .executive-value {\n font-size: 28px;\n font-weight: 900;\n line-height: 1.05;\n color: #162335;\n }\n\n .period-stats {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 6px;\n }\n\n .period-stat {\n border: 1px solid var(--line);\n border-radius: 7px;\n padding: 7px;\n background: rgba(255, 255, 255, 0.62);\n }\n\n .period-stat strong {\n display: block;\n font-size: 14px;\n }\n\n .period-stat span {\n color: var(--muted);\n font-size: 11px;\n }\n\n .ops-strip {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: 10px;\n margin-bottom: 14px;\n }\n\n .ops-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n min-height: 112px;\n text-align: left;\n color: var(--text);\n }\n\n .ops-name {\n font-weight: 800;\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n }\n\n .ops-status {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .drilldown-grid {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: 8px;\n margin-bottom: 14px;\n }\n\n .drilldown-button {\n min-height: 44px;\n border-radius: 8px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--text);\n padding: 0 10px;\n font-weight: 800;\n }\n\n .drilldown-button:hover {\n border-color: #b7c5d3;\n background: #f8fafc;\n }\n\n .command-board {\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n margin-bottom: 8px;\n overflow: hidden;\n display: grid;\n grid-template-columns: 124px minmax(0, 1fr) 104px;\n align-items: stretch;\n }\n\n .command-board-head {\n min-height: 58px;\n padding: 8px 10px;\n display: grid;\n align-content: center;\n gap: 2px;\n border-right: 1px solid var(--line);\n background: #f9fbfd;\n }\n\n .command-board-title {\n display: grid;\n gap: 2px;\n min-width: 0;\n }\n\n .command-board-title h2 {\n margin: 0;\n font-size: 14px;\n line-height: 1.15;\n color: #172234;\n white-space: nowrap;\n }\n\n .command-board-title span {\n color: var(--muted);\n font-size: 11px;\n line-height: 1.25;\n }\n\n .command-board-actions {\n min-height: 58px;\n padding: 7px;\n border-left: 1px solid var(--line);\n display: grid;\n align-content: center;\n gap: 5px;\n background: #fbfcfe;\n }\n\n .command-status-strip {\n display: grid;\n grid-template-columns: minmax(150px, 1.15fr) minmax(150px, 1.1fr) repeat(4, minmax(112px, 0.78fr));\n gap: 1px;\n background: var(--line);\n }\n\n .status-unit {\n min-height: 58px;\n border: 0;\n border-radius: 0;\n background: #fff;\n padding: 8px 10px;\n display: grid;\n gap: 4px;\n text-align: left;\n }\n\n .status-unit.alert {\n background: #fff8f8;\n }\n\n .status-unit.warning {\n background: #fffaf0;\n }\n\n .status-unit.goal {\n background: #f7fbff;\n }\n\n .status-unit.featured {\n min-height: 58px;\n }\n\n .command-status-strip.is-collapsed .status-unit.optional {\n display: none;\n }\n\n .status-name {\n color: var(--muted);\n font-size: 11px;\n font-weight: 800;\n }\n\n .status-value {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n font-size: 20px;\n font-weight: 900;\n line-height: 1;\n color: #162335;\n }\n\n .status-value small {\n color: var(--muted);\n font-size: 10px;\n font-weight: 700;\n text-align: right;\n }\n\n .status-progress {\n height: 5px;\n border-radius: 999px;\n background: #e8eef4;\n overflow: hidden;\n }\n\n .status-progress span {\n display: block;\n height: 100%;\n width: var(--progress, 0%);\n border-radius: inherit;\n background: var(--blue);\n }\n\n .command-grid {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 360px;\n gap: 12px;\n align-items: start;\n margin-bottom: 12px;\n }\n\n .panel-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n flex-wrap: wrap;\n }\n\n .compact-tabs {\n display: flex;\n align-items: center;\n gap: 5px;\n flex-wrap: wrap;\n }\n\n .compact-tabs button {\n height: 28px;\n border-radius: 7px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--muted);\n padding: 0 9px;\n font-size: 12px;\n font-weight: 800;\n }\n\n .compact-tabs button.active {\n background: var(--blue-soft);\n border-color: #bcd0ff;\n color: var(--blue);\n }\n\n .priority-table table {\n min-width: 920px;\n }\n\n .priority-table th,\n .priority-table td {\n padding: 10px 9px;\n }\n\n .row-title {\n font-weight: 800;\n color: #182331;\n }\n\n .row-sub {\n color: var(--muted);\n font-size: 12px;\n margin-top: 3px;\n }\n\n .side-stack {\n display: grid;\n gap: 10px;\n }\n\n .side-list {\n display: grid;\n gap: 8px;\n padding: 12px;\n }\n\n .side-row {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n display: grid;\n gap: 7px;\n background: #fff;\n }\n\n .side-row.alert {\n border-color: #efb6b6;\n background: #fff8f8;\n }\n\n .side-row.warning {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .side-row-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-weight: 800;\n font-size: 13px;\n }\n\n .side-row-meta {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .matrix-grid {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 440px;\n gap: 12px;\n align-items: start;\n }\n\n .matrix-table table {\n min-width: 720px;\n }\n\n .channel-table table {\n min-width: 520px;\n }\n\n .table-wrap {\n overflow: auto;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n min-width: 1100px;\n }\n\n th,\n td {\n border-bottom: 1px solid var(--line);\n padding: 11px 10px;\n text-align: left;\n font-size: 13px;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n th {\n color: #536170;\n font-weight: 800;\n background: #fbfcfe;\n }\n\n tr:hover td {\n background: #fbfdff;\n }\n\n .tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 22px;\n border-radius: 999px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 700;\n border: 1px solid transparent;\n }\n\n .tag.blue {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #c7d8ff;\n }\n\n .tag.green {\n background: var(--green-soft);\n color: var(--green);\n border-color: #bde8d5;\n }\n\n .tag.red {\n background: var(--red-soft);\n color: var(--red);\n border-color: #f7bdbd;\n }\n\n .tag.amber {\n background: var(--amber-soft);\n color: var(--amber);\n border-color: #f1d39b;\n }\n\n .tag.purple {\n background: var(--purple-soft);\n color: var(--purple);\n border-color: #d8ccff;\n }\n\n .tag.gray {\n background: #f0f3f6;\n color: #61707f;\n border-color: #dbe2e8;\n }\n\n .mini-btn {\n height: 28px;\n border-radius: 7px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--text);\n padding: 0 8px;\n margin-right: 4px;\n }\n\n .mini-btn.primary {\n color: var(--blue);\n border-color: #bfd0ff;\n background: var(--blue-soft);\n font-weight: 700;\n }\n\n .mini-btn.danger {\n color: var(--red);\n border-color: #f2b8b8;\n background: var(--red-soft);\n font-weight: 700;\n }\n\n .stack {\n display: grid;\n gap: 14px;\n }\n\n .risk-list,\n .activity-list,\n .suggest-list {\n display: grid;\n gap: 10px;\n }\n\n .risk-item,\n .activity-item,\n .suggest-item {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n background: #fff;\n }\n\n .risk-item.high {\n border-color: #f4b4b4;\n background: #fff8f8;\n }\n\n .risk-item.mid {\n border-color: #efd093;\n background: #fffaf0;\n }\n\n .item-title {\n display: flex;\n justify-content: space-between;\n gap: 10px;\n font-weight: 800;\n font-size: 13px;\n }\n\n .item-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.55;\n }\n\n .chart-row {\n display: grid;\n gap: 8px;\n margin-top: 2px;\n }\n\n .bar-line {\n display: grid;\n grid-template-columns: 72px minmax(0, 1fr) 46px;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--muted);\n }\n\n .bar-track {\n height: 10px;\n background: #edf1f5;\n border-radius: 999px;\n overflow: hidden;\n }\n\n .bar-fill {\n height: 100%;\n border-radius: 999px;\n background: var(--blue);\n }\n\n .summary-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 10px;\n }\n\n .summary-cell {\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n padding: 12px;\n }\n\n .summary-value {\n font-size: 22px;\n font-weight: 800;\n margin-bottom: 4px;\n }\n\n .summary-label {\n color: var(--muted);\n font-size: 12px;\n }\n\n .empty {\n padding: 28px;\n color: var(--muted);\n text-align: center;\n border: 1px dashed var(--line);\n border-radius: 8px;\n background: #fbfcfe;\n }\n\n .drawer-mask,\n .modal-mask {\n position: fixed;\n inset: 0;\n background: rgba(10, 18, 28, 0.36);\n z-index: 80;\n display: none;\n }\n\n .drawer-mask.open,\n .modal-mask.open {\n display: block;\n }\n\n .drawer {\n position: fixed;\n right: 0;\n top: 0;\n height: 100vh;\n width: min(680px, 92vw);\n background: var(--panel);\n box-shadow: var(--shadow);\n z-index: 90;\n transform: translateX(102%);\n transition: transform 0.18s ease;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n }\n\n .drawer.open {\n transform: translateX(0);\n }\n\n .drawer-head,\n .drawer-foot {\n padding: 16px 18px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n }\n\n .drawer-foot {\n border-bottom: 0;\n border-top: 1px solid var(--line);\n justify-content: flex-end;\n }\n\n .drawer-body {\n overflow: auto;\n padding: 16px 18px;\n display: grid;\n gap: 14px;\n align-content: start;\n }\n\n .detail-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n }\n\n .detail-cell {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n min-width: 0;\n }\n\n .detail-label {\n font-size: 12px;\n color: var(--muted);\n margin-bottom: 5px;\n }\n\n .detail-value {\n font-size: 13px;\n font-weight: 700;\n overflow-wrap: anywhere;\n }\n\n .timeline {\n display: grid;\n gap: 8px;\n }\n\n .timeline-item {\n border-left: 3px solid var(--blue);\n padding: 4px 0 4px 10px;\n font-size: 13px;\n }\n\n .modal {\n position: fixed;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: min(560px, 92vw);\n background: #fff;\n border-radius: 8px;\n box-shadow: var(--shadow);\n z-index: 100;\n display: none;\n }\n\n .modal.open {\n display: block;\n }\n\n .modal-head,\n .modal-foot {\n padding: 15px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n justify-content: space-between;\n gap: 10px;\n align-items: center;\n }\n\n .modal-foot {\n border-bottom: 0;\n border-top: 1px solid var(--line);\n justify-content: flex-end;\n }\n\n .modal-body {\n padding: 16px;\n display: grid;\n gap: 12px;\n }\n\n .form-row {\n display: grid;\n gap: 6px;\n }\n\n .form-row label {\n font-size: 13px;\n font-weight: 800;\n }\n\n .form-row input,\n .form-row select,\n .form-row textarea {\n border: 1px solid var(--line);\n border-radius: 8px;\n min-height: 36px;\n padding: 8px 10px;\n width: 100%;\n }\n\n .form-row textarea {\n min-height: 88px;\n resize: vertical;\n }\n\n .toast {\n position: fixed;\n right: 18px;\n bottom: 18px;\n z-index: 120;\n display: grid;\n gap: 8px;\n }\n\n .toast-item {\n width: min(360px, calc(100vw - 36px));\n background: #172331;\n color: #fff;\n border-radius: 8px;\n padding: 12px 14px;\n box-shadow: var(--shadow);\n font-size: 13px;\n }\n\n .route-page {\n display: none;\n }\n\n .route-page.active {\n display: block;\n }\n\n .source-note {\n font-size: 12px;\n color: var(--muted);\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n }\n\n @media (max-width: 1180px) {\n .app-shell {\n grid-template-columns: 78px minmax(0, 1fr);\n }\n\n .brand-title,\n .brand-subtitle,\n .nav-label,\n .nav-count,\n .sidebar-todo {\n display: none;\n }\n\n .nav-button {\n grid-template-columns: 1fr;\n justify-items: center;\n padding: 0;\n }\n\n .layout-dashboard {\n grid-template-columns: 1fr;\n }\n\n .kpi-grid {\n grid-template-columns: repeat(2, minmax(170px, 1fr));\n }\n\n .insight-grid,\n .module-charts,\n .executive-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .executive-hero {\n grid-template-columns: 1fr;\n }\n\n .ops-strip,\n .drilldown-grid,\n .command-status-strip {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .command-board {\n grid-template-columns: 1fr;\n }\n\n .command-board-head,\n .command-board-actions {\n min-height: auto;\n border-right: 0;\n border-left: 0;\n border-bottom: 1px solid var(--line);\n }\n\n .command-grid,\n .matrix-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 780px) {\n .app-shell {\n display: block;\n }\n\n .sidebar {\n position: static;\n height: auto;\n }\n\n .nav {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .main {\n display: block;\n }\n\n .topbar {\n position: static;\n height: auto;\n grid-template-columns: 1fr;\n padding: 12px;\n }\n\n .top-left {\n width: 100%;\n display: grid;\n }\n\n .search {\n width: 100%;\n }\n\n .content {\n padding: 16px 12px 24px;\n }\n\n .page-head,\n .top-actions {\n display: grid;\n width: 100%;\n }\n\n .kpi-grid,\n .summary-grid,\n .detail-grid {\n grid-template-columns: 1fr;\n }\n\n .filter-bar {\n grid-template-columns: 1fr;\n }\n\n .insight-grid,\n .module-charts,\n .executive-grid,\n .ops-strip,\n .drilldown-grid,\n .command-status-strip,\n .command-grid,\n .matrix-grid {\n grid-template-columns: 1fr;\n }\n\n .decision-row {\n grid-template-columns: 1fr;\n }\n }\n </style>\n</head>\n<body>\n <div class=\"app-shell\">\n <aside class=\"sidebar\">\n <div class=\"brand\">\n <div class=\"brand-mark\">U</div>\n <div>\n <div class=\"brand-title\">USER 后台 ERP</div>\n <div class=\"brand-subtitle\">MVP 一期 v7 · 模拟数据</div>\n </div>\n </div>\n <nav class=\"nav\" id=\"nav\"></nav>\n <section class=\"sidebar-todo\" aria-label=\"固定待办提醒\">\n <div class=\"sidebar-todo-head\">\n <span>待办提醒</span>\n <strong>21</strong>\n </div>\n <button class=\"sidebar-todo-row primary\" data-route=\"dashboard\" data-tab=\"all\">\n <span>重要事项</span><strong>3</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"plans\" data-tab=\"approval\">\n <span>审核类</span><strong>4</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"listings\" data-tab=\"emergency\">\n <span>紧急 Listing</span><strong>7</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"reports\" data-tab=\"issue_summary\">\n <span>问题总结</span><strong>9</strong>\n </button>\n </section>\n </aside>\n\n <main class=\"main\">\n <header class=\"topbar\">\n <div class=\"top-left\">\n <div class=\"top-title\">\n <strong id=\"topPageTitle\">经营总览</strong>\n <span id=\"topPageSubtitle\">系统管理员 · 最高权限 · 全部部门</span>\n </div>\n <div class=\"search\">\n <span>搜索</span>\n <input id=\"globalSearch\" placeholder=\"ASIN / 需求 / 用户 / 负责人\" />\n </div>\n </div>\n <div class=\"top-actions\">\n <div class=\"top-time\" title=\"时间范围\">\n <input type=\"date\" value=\"2026-05-01\" data-time=\"startDate\" />\n <span>至</span>\n <input type=\"date\" value=\"2026-05-03\" data-time=\"endDate\" />\n </div>\n <div class=\"top-period\" title=\"周期切换\">\n <button class=\"active\" data-period=\"day\">日</button>\n <button data-period=\"week\">周</button>\n <button data-period=\"month\">月</button>\n </div>\n <select class=\"scope-select\" id=\"scopeSelect\">\n <option value=\"all\">全部部门</option>\n <option value=\"amazon\">Amazon 运营</option>\n <option value=\"user_ops\">用户运营</option>\n <option value=\"support\">客服</option>\n </select>\n <select class=\"role-select\" id=\"roleSelect\">\n <option>系统管理员(最高权限)</option>\n <option>Amazon 运营总监</option>\n <option>用户运营负责人</option>\n <option>客服负责人</option>\n </select>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"notice\">通知 12</button>\n </div>\n </header>\n\n <section class=\"content\" id=\"content\"></section>\n </main>\n </div>\n\n <div class=\"drawer-mask\" id=\"drawerMask\"></div>\n <aside class=\"drawer\" id=\"drawer\">\n <div class=\"drawer-head\">\n <div>\n <h2 class=\"panel-title\" id=\"drawerTitle\">详情</h2>\n <div class=\"panel-note\" id=\"drawerSubtitle\">模拟数据,敏感字段默认脱敏</div>\n </div>\n <button class=\"btn\" data-action=\"close-drawer\">关闭</button>\n </div>\n <div class=\"drawer-body\" id=\"drawerBody\"></div>\n <div class=\"drawer-foot\" id=\"drawerFoot\"></div>\n </aside>\n\n <div class=\"modal-mask\" id=\"modalMask\"></div>\n <section class=\"modal\" id=\"modal\">\n <div class=\"modal-head\">\n <h2 class=\"panel-title\" id=\"modalTitle\">操作确认</h2>\n <button class=\"btn\" data-action=\"close-modal\">关闭</button>\n </div>\n <div class=\"modal-body\" id=\"modalBody\"></div>\n <div class=\"modal-foot\" id=\"modalFoot\"></div>\n </section>\n\n <div class=\"toast\" id=\"toast\"></div>\n\n <script>\n const DATA_SOURCE = \"模拟数据:用于本机高保真原型演示,不代表真实业务数据\";\n\n const routes = [\n { id: \"dashboard\", label: \"工作台\", icon: \"DB\", count: 12 },\n { id: \"requests\", label: \"需求中心\", icon: \"RQ\", count: 18 },\n { id: \"listings\", label: \"Listing 管理\", icon: \"LS\", count: 7 },\n { id: \"plans\", label: \"计划中心\", icon: \"PL\", count: 12 },\n { id: \"push\", label: \"推送中心\", icon: \"PS\", count: 24 },\n { id: \"support\", label: \"客服中心\", icon: \"CS\", count: 9 },\n { id: \"risk\", label: \"风险中心\", icon: \"RK\", count: 10 },\n { id: \"data\", label: \"数据中心\", icon: \"DT\", count: 5 },\n { id: \"reports\", label: \"报表中心\", icon: \"RP\", count: 6 },\n { id: \"system\", label: \"系统管理\", icon: \"SY\", count: 4 }\n ];\n\n const state = {\n route: \"dashboard\",\n activeTab: \"all\",\n keyword: \"\",\n scope: \"all\",\n period: \"day\",\n startDate: \"2026-05-01\",\n endDate: \"2026-05-03\",\n statusExpanded: false,\n statusPriorityFirst: true\n };\n\n const records = {\n kpis: [\n {\n id: \"approved_review_requests\",\n title: \"测评需求审核\",\n value: \"申请 18 / 已批 8\",\n tone: \"blue\",\n desc: \"测评需求由 Amazon 运营提交,已批后用户运营接收\",\n route: \"plans\",\n filter: \"amazon_approved\",\n trend: { day: 8, week: 31, month: 92, risk: \"正常\" },\n spark: [4, 7, 5, 8, 9, 8]\n },\n {\n id: \"push_risk_yesterday\",\n title: \"渠道推送风险\",\n value: \"IM 2 / EDM 1\",\n tone: \"amber\",\n desc: \"IM、EDM、TEL、App Push 日周月风险与反馈\",\n route: \"push\",\n filter: \"risk\",\n trend: { day: 3, week: 9, month: 27, risk: \"偏高\" },\n spark: [2, 3, 4, 5, 3, 6]\n },\n {\n id: \"new_fraud_events\",\n title: \"新增诈骗事件\",\n value: \"昨 5 / 周 18\",\n tone: \"red\",\n desc: \"昨日、近 7 天、近 30 天新增与待同步\",\n route: \"risk\",\n filter: \"fraud\",\n trend: { day: 5, week: 18, month: 64, risk: \"高\" },\n spark: [3, 5, 4, 8, 6, 9]\n },\n {\n id: \"emergency_listings\",\n title: \"紧急 Listing\",\n value: \"新 3 / 未处理 7\",\n tone: \"red\",\n desc: \"按日、周、月展示,并合并之前未处理紧急事件\",\n route: \"listings\",\n filter: \"emergency\",\n trend: { day: 3, week: 11, month: 29, risk: \"高\" },\n spark: [2, 4, 4, 5, 7, 7]\n },\n {\n id: \"pending_approval\",\n title: \"推广计划与紧急策略\",\n value: \"日 12 / 周 38\",\n tone: \"blue\",\n desc: \"确认需求后新建的推广计划、推送计划和紧急策略跟踪\",\n route: \"plans\",\n filter: \"approval\",\n trend: { day: 12, week: 38, month: 116, risk: \"注意审核积压\" },\n spark: [7, 8, 10, 12, 12, 14]\n },\n {\n id: \"review_output_trend\",\n title: \"评价产出趋势\",\n value: \"日 18 / 周 96\",\n tone: \"green\",\n desc: \"真实消费者回评完成、趋势和异常提示\",\n route: \"reports\",\n filter: \"review_done\",\n trend: { day: 18, week: 96, month: 384, risk: \"稳定\" },\n spark: [13, 15, 16, 18, 20, 18]\n },\n {\n id: \"blacklist_sync_failed\",\n title: \"黑名单同步严重度\",\n value: \"失败 2 / 高危 1\",\n tone: \"red\",\n desc: \"系统管理员视角看日周月影响,判断问题是否严重\",\n route: \"risk\",\n filter: \"sync_failed\",\n trend: { day: 2, week: 7, month: 19, risk: \"需复核\" },\n spark: [1, 1, 3, 2, 4, 2]\n },\n {\n id: \"kol_koc_progress\",\n title: \"KOC/KOL 对接\",\n value: \"KOC 21 / KOL 6\",\n tone: \"purple\",\n desc: \"PR 对外联系、价格、CODE、返点和提款进度\",\n route: \"push\",\n filter: \"kol\",\n trend: { day: 6, week: 27, month: 84, risk: \"2 个逾期\" },\n spark: [3, 4, 6, 5, 7, 8]\n },\n {\n id: \"ph_ops\",\n title: \"菲律宾团队管理\",\n value: \"风险 2 / 缺口 1\",\n tone: \"amber\",\n desc: \"日周月工作时长、请假、缺席、人均产出与关键岗位缺口\",\n route: \"support\",\n filter: \"ph\",\n trend: { day: 2, week: 6, month: 15, risk: \"排班风险\" },\n spark: [1, 2, 1, 4, 3, 5]\n },\n {\n id: \"workflow_blocked\",\n title: \"审核积压与风险\",\n value: \"卡点 4\",\n tone: \"amber\",\n desc: \"已发现问题汇总到总页面,避免系统管理员挨个查数据\",\n route: \"plans\",\n filter: \"blocked\",\n trend: { day: 4, week: 13, month: 33, risk: \"影响进度\" },\n spark: [2, 3, 3, 6, 5, 4]\n }\n ],\n workItems: [\n {\n id: \"WK-20260503-001\",\n source: \"Amazon 总监\",\n type: \"测评需求\",\n asin: \"B0TES001\",\n site: \"US\",\n stage: \"Amazon 已批准\",\n owner: \"用户运营负责人\",\n risk: \"中\",\n priority: \"P1\",\n due: \"今日 18:00\",\n action: \"接收\",\n status: \"amazon_approved\",\n submitter: \"Amazon 运营 A\",\n reviewer: \"Amazon 总监\",\n approval: \"通过\",\n sourceForm: \"飞书需求表单 DEMO-001\",\n summary: \"评分 4.46,低于 4.5,需要生成用户互动与真实评价跟踪计划。\"\n },\n {\n id: \"WK-20260503-002\",\n source: \"推送中心\",\n type: \"昨日推送风险\",\n asin: \"B0TES009\",\n site: \"UK\",\n stage: \"风险复核\",\n owner: \"用户运营组长\",\n risk: \"高\",\n priority: \"P0\",\n due: \"今日 12:00\",\n action: \"复核\",\n status: \"risk_review\",\n submitter: \"推送系统\",\n reviewer: \"用户运营组长\",\n approval: \"待复核\",\n sourceForm: \"推送风险自动单 DEMO-006\",\n summary: \"昨日推送退订率高于基线,需复核人群、素材和文案。\"\n },\n {\n id: \"WK-20260503-003\",\n source: \"客服中心\",\n type: \"新增诈骗事件\",\n asin: \"B0TES003\",\n site: \"DE\",\n stage: \"待同步黑名单\",\n owner: \"风险负责人\",\n risk: \"高\",\n priority: \"P0\",\n due: \"今日 14:00\",\n action: \"审核\",\n status: \"fraud\",\n submitter: \"客服 B\",\n reviewer: \"风险负责人\",\n approval: \"待审核\",\n sourceForm: \"客服升级表单 DEMO-003\",\n summary: \"同一 JOYHUB ID 与多个 Profile ID 关联异常样品申请,邮箱和设备号已脱敏。\"\n },\n {\n id: \"WK-20260503-004\",\n source: \"Listing 管理\",\n type: \"紧急 Listing\",\n asin: \"B0TES005\",\n site: \"JP\",\n stage: \"紧急策略审批\",\n owner: \"Amazon 运营总监\",\n risk: \"紧急\",\n priority: \"P0\",\n due: \"今日 11:30\",\n action: \"审批\",\n status: \"emergency\",\n submitter: \"Amazon 运营 C\",\n reviewer: \"Amazon 运营总监\",\n approval: \"待系统管理员确认\",\n sourceForm: \"紧急 Listing 表单 DEMO-004\",\n summary: \"当前评分 4.21,接近 4.2 紧急阈值,需要 Amazon 与用户运营联合策略。\"\n },\n {\n id: \"WK-20260503-005\",\n source: \"客服中心\",\n type: \"差评跟进\",\n asin: \"B0TES007\",\n site: \"US\",\n stage: \"客服升级\",\n owner: \"客服负责人\",\n risk: \"中\",\n priority: \"P1\",\n due: \"明日 10:00\",\n action: \"分配\",\n status: \"support\",\n submitter: \"Amazon 运营 A\",\n reviewer: \"客服负责人\",\n approval: \"通过\",\n sourceForm: \"飞书客服需求 DEMO-005\",\n summary: \"用户反馈产品说明理解偏差,需要客服跟进并回传产品改进建议。\"\n }\n ],\n listings: [\n { id: \"LS-001\", asin: \"B0TES005\", site: \"JP\", marketplaces: \"JP\", rating: 4.21, reviews: 138, negative: 12, health: \"紧急\", grade: \"S\", owner: \"王五\", issue: \"评价下滑且差评集中\", participants: \"Amazon C / 用户运营 B / 客服 A\", progress: \"紧急策略审批\" },\n { id: \"LS-002\", asin: \"B0TES003\", site: \"DE\", marketplaces: \"DE\", rating: 4.18, reviews: 93, negative: 9, health: \"紧急\", grade: \"A\", owner: \"赵六\", issue: \"诈骗疑似叠加差评\", participants: \"Amazon D / 风险负责人\", progress: \"客服与风险介入\" },\n { id: \"LS-003\", asin: \"B0TES001\", site: \"US\", marketplaces: \"US / CA\", rating: 4.46, reviews: 412, negative: 16, health: \"补强\", grade: \"S\", owner: \"张三\", issue: \"美国加拿大同 ASIN 联动\", participants: \"Amazon A / 用户运营负责人\", progress: \"待生成计划\" },\n { id: \"LS-004\", asin: \"B0TES009\", site: \"UK\", marketplaces: \"UK\", rating: 4.51, reviews: 188, negative: 5, health: \"观察\", grade: \"B\", owner: \"李四\", issue: \"推送退订偏高\", participants: \"用户运营组长 / 推送运营\", progress: \"推送风险复核\" }\n ],\n plans: [\n { id: \"PL-0503-001\", type: \"真实评价跟踪\", requestId: \"WK-20260503-001\", asin: \"B0TES001\", site: \"US/CA\", target: 30, coverage: \"已覆盖\", channelMix: \"IM 40% / EDM 35% / TEL 25%\", status: \"Amazon 已批准\", approver: \"Amazon 总监\", owner: \"用户运营负责人\", risk: \"中\", simulated: true },\n { id: \"PL-0503-002\", type: \"紧急 Listing 策略\", requestId: \"WK-20260503-004\", asin: \"B0TES005\", site: \"JP\", target: 18, coverage: \"已覆盖\", channelMix: \"TEL 45% / IM 35% / EDM 20%\", status: \"待系统管理员审批\", approver: \"系统管理员\", owner: \"Amazon 运营总监\", risk: \"紧急\", simulated: true },\n { id: \"PL-0503-003\", type: \"周度推送计划\", requestId: \"WK-20260503-002\", asin: \"多 ASIN\", site: \"US/UK\", target: 2400, coverage: \"部分覆盖\", channelMix: \"IM 50% / EDM 30% / App 20%\", status: \"用户负责人待审\", approver: \"用户运营负责人\", owner: \"用户运营组长\", risk: \"中\", simulated: true }\n ],\n pushes: [\n { id: \"PS-0503-001\", plan: \"PL-0503-001\", channel: \"IM\", strategy: \"购后真实体验回访\", h5: \"H5-Review-01\", assets: \"图片 A / 文案 B\", audience: \"购后 7-21 天用户\", sent: 980, click: 246, reply: 132, optout: \"0.8%\", risk: \"低\", status: \"执行中\", optimization: \"维持当前策略\" },\n { id: \"PS-0502-006\", plan: \"PL-0503-003\", channel: \"EDM\", strategy: \"老用户内容召回\", h5: \"H5-Story-03\", assets: \"图片 C / 文案 D\", audience: \"高互动老用户\", sent: 1600, click: 188, reply: 87, optout: \"2.9%\", risk: \"高\", status: \"风险复核\", optimization: \"暂停同策略并复盘\" },\n { id: \"PS-0502-009\", plan: \"PL-0503-003\", channel: \"TEL\", strategy: \"客服电话回访\", h5: \"无\", assets: \"话术 V2\", audience: \"活动参与用户\", sent: 740, click: 0, reply: 66, optout: \"无\", risk: \"中\", status: \"暂停待审\", optimization: \"调整拨打时段\" },\n { id: \"PS-0503-010\", plan: \"KOC-PR-001\", channel: \"PR/KOC\", strategy: \"对外合作跟进\", h5: \"H5-KOC-02\", assets: \"CODE 图 / 返点说明\", audience: \"KOC 21 / KOL 6\", sent: 27, click: 19, reply: 11, optout: \"无\", risk: \"中\", status: \"价格待确认\", optimization: \"补齐提款信息\" }\n ],\n support: [\n { id: \"CS-0503-001\", type: \"差评跟进\", user: \"JH-****-9021\", asin: \"B0TES007\", owner: \"客服 A\", status: \"处理中\", risk: \"中\", sla: \"6h\", avgResponse: \"12m\", workHours: \"6.5h\", attendance: \"正常\", output: \"处理 18 / 完成 12\" },\n { id: \"CS-0503-002\", type: \"诈骗疑似\", user: \"JH-****-7712\", asin: \"B0TES003\", owner: \"客服组长\", status: \"升级风险\", risk: \"高\", sla: \"2h\", avgResponse: \"8m\", workHours: \"7.2h\", attendance: \"关键岗缺 1\", output: \"处理 9 / 升级 3\" },\n { id: \"CS-0503-003\", type: \"承诺配合用户\", user: \"JH-****-1180\", asin: \"B0TES001\", owner: \"客服 B\", status: \"待回访\", risk: \"低\", sla: \"24h\", avgResponse: \"18m\", workHours: \"5.8h\", attendance: \"请假 0.5 天\", output: \"处理 16 / 完成 10\" }\n ],\n risks: [\n { id: \"RK-0503-001\", type: \"诈骗同步\", subject: \"JH-****-7712\", relation: \"Profile / 邮箱 / 设备号\", status: \"待同步黑名单\", risk: \"高\" },\n { id: \"RK-0503-002\", type: \"黑名单同步失败\", subject: \"JH-****-2098\", relation: \"接口超时\", status: \"失败待重试\", risk: \"高\" },\n { id: \"RK-0503-003\", type: \"规则提醒\", subject: \"PS-0502-006\", relation: \"退订率高于基线\", status: \"待复核\", risk: \"中\" }\n ],\n syncLogs: [\n { id: \"DT-001\", source: \"Amazon 订单\", interval: \"10 分钟\", last: \"2026-05-03 10:20\", status: \"正常\", rows: 1240 },\n { id: \"DT-002\", source: \"Amazon 评价\", interval: \"运营稳定更新\", last: \"2026-05-03 09:50\", status: \"正常\", rows: 216 },\n { id: \"DT-003\", source: \"黑名单系统\", interval: \"待接口确认\", last: \"2026-05-03 09:42\", status: \"部分失败\", rows: 5 },\n { id: \"DT-004\", source: \"用户画像标签\", interval: \"规划中\", last: \"模拟\", status: \"模拟\", rows: 0 }\n ],\n reports: [\n { id: \"RP-000\", name: \"目标完成度与问题总结\", owner: \"系统管理员\", range: \"日/周/月\", schedule: \"实时入口,周月预生成\", upload: \"数据分析 / OKR / 项目负责人提交\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-001\", name: \"Listing 健康日报\", owner: \"系统管理员 / Amazon 总监\", range: \"日/周/月\", schedule: \"每日 08:30\", upload: \"自动生成\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-002\", name: \"推送效果与风险复盘\", owner: \"用户运营负责人\", range: \"日/周/月\", schedule: \"每日 09:00周月预生成\", upload: \"支持上传补充记录\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-003\", name: \"诈骗同步审计表\", owner: \"系统管理员 / 风险负责人\", range: \"近 7/30 天\", schedule: \"每日 10:00\", upload: \"人工复核附件\", exportable: \"是\", masked: \"强制脱敏\" }\n ],\n system: [\n { id: \"SY-001\", module: \"系统授权\", status: \"待细化\", owner: \"系统管理员\", note: \"主管、组长、组员、客服、外部商家分层权限\" },\n { id: \"SY-002\", module: \"新建账号\", status: \"MVP 可模拟\", owner: \"系统管理员\", note: \"按部门、角色、站点、数据范围开通账号\" },\n { id: \"SY-003\", module: \"离职管理\", status: \"必需\", owner: \"系统管理员\", note: \"停用账号、交接任务、回收敏感权限\" },\n { id: \"SY-004\", module: \"权限分配\", status: \"必需\", owner: \"系统管理员\", note: \"导出、审批、查看敏感信息、黑名单同步独立授权\" },\n { id: \"SY-005\", module: \"审计日志\", status: \"必需\", owner: \"系统管理员\", note: \"导出、查看敏感信息、黑名单同步、审批动作\" }\n ]\n };\n\n const tableSchemas = {\n requests: [\"需求ID\", \"类型\", \"提交人\", \"审核人\", \"审核结果\", \"来源表单\", \"ASIN/站点\", \"当前环节\", \"负责人\", \"风险\", \"截止\", \"操作\"],\n listings: [\"Listing\", \"站点组合\", \"评分\", \"等级\", \"评价数\", \"差评数\", \"健康状态\", \"责任人\", \"问题所在\", \"参与人员/进度\", \"操作\"],\n plans: [\"计划ID\", \"类型\", \"关联需求\", \"ASIN/站点\", \"覆盖状态\", \"资源分配\", \"目标量\", \"状态\", \"审批人\", \"风险\", \"操作\"],\n push: [\"推送ID\", \"计划\", \"渠道\", \"策略\", \"H5/素材\", \"人群\", \"发送\", \"点击\", \"回复\", \"退订\", \"风险\", \"状态\", \"操作\"],\n support: [\"工单ID\", \"类型\", \"用户摘要\", \"ASIN\", \"负责人\", \"平均响应\", \"工作时长\", \"出勤\", \"人均产出\", \"风险\", \"SLA\", \"操作\"],\n risk: [\"事件ID\", \"类型\", \"主体摘要\", \"关联字段\", \"状态\", \"风险\", \"操作\"],\n data: [\"日志ID\", \"来源\", \"同步频率\", \"最近同步\", \"状态\", \"记录数\", \"操作\"],\n reports: [\"报表ID\", \"报表名称\", \"可见角色\", \"周期\", \"生成计划\", \"上传/记录\", \"可导出\", \"脱敏\", \"操作\"],\n system: [\"配置ID\", \"模块\", \"状态\", \"负责人\", \"说明\", \"操作\"]\n };\n\n function escapeHtml(value) {\n return String(value)\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\"/g, \"&quot;\");\n }\n\n function toneClass(value) {\n if ([\"高\", \"紧急\", \"失败\", \"部分失败\"].includes(value)) return \"red\";\n if ([\"中\", \"待细化\", \"暂停待审\", \"风险复核\"].includes(value)) return \"amber\";\n if ([\"低\", \"正常\", \"已完成\", \"执行中\"].includes(value)) return \"green\";\n if ([\"模拟\", \"MVP 可模拟\"].includes(value)) return \"gray\";\n return \"blue\";\n }\n\n function tag(value, tone) {\n return `<span class=\"tag ${tone || toneClass(value)}\">${escapeHtml(value)}</span>`;\n }\n\n function setRoute(route, tab = \"all\") {\n state.route = route;\n state.activeTab = tab;\n window.location.hash = `${route}${tab !== \"all\" ? `:${tab}` : \"\"}`;\n render();\n }\n\n function renderNav() {\n const nav = document.getElementById(\"nav\");\n nav.innerHTML = routes.map((route) => `\n <button class=\"nav-button ${state.route === route.id ? \"active\" : \"\"}\" data-route=\"${route.id}\">\n <span class=\"nav-icon\">${route.icon}</span>\n <span class=\"nav-label\">${route.label}</span>\n <span class=\"nav-count\">${route.count}</span>\n </button>\n `).join(\"\");\n }\n\n function renderHeader(title, note, actions = \"\") {\n return `\n <div class=\"page-head\">\n <div>\n <h1>${title}</h1>\n <div class=\"page-note\">${note}</div>\n </div>\n <div class=\"button-row\">${actions}</div>\n </div>\n `;\n }\n\n function renderSourceNote() {\n return `\n <div class=\"source-note\">\n ${tag(\"模拟数据\", \"gray\")}\n <span>${DATA_SOURCE}</span>\n </div>\n `;\n }\n\n function renderTimeToolbar() {\n return `\n <div class=\"time-toolbar\">\n <div class=\"time-controls\">\n <strong>时间范围</strong>\n <input type=\"date\" value=\"${state.startDate}\" data-time=\"startDate\" />\n <span>至</span>\n <input type=\"date\" value=\"${state.endDate}\" data-time=\"endDate\" />\n <select data-time=\"preset\">\n <option>最近 7 天</option>\n <option>最近 30 天</option>\n <option>本月</option>\n <option>自定义</option>\n </select>\n </div>\n <div class=\"period-toggle\">\n ${[\"day\", \"week\", \"month\"].map((period) => `\n <button class=\"${state.period === period ? \"active\" : \"\"}\" data-period=\"${period}\">\n ${period === \"day\" ? \"日\" : period === \"week\" ? \"周\" : \"月\"}\n </button>\n `).join(\"\")}\n </div>\n <div class=\"source-note\">\n ${tag(\"周/月预生成\", \"gray\")}\n <span>周、月数据可由后台异步预生成,降低页面访问卡顿。</span>\n </div>\n </div>\n `;\n }\n\n function renderSpark(values) {\n const max = Math.max(...values, 1);\n return `\n <span class=\"spark\" aria-hidden=\"true\">\n ${values.map((value) => `<i style=\"height:${Math.max(6, Math.round((value / max) * 24))}px\"></i>`).join(\"\")}\n </span>\n `;\n }\n\n function renderKpis() {\n return `\n <div class=\"grid kpi-grid\">\n ${records.kpis.map((kpi) => `\n <button class=\"kpi-card\" data-route=\"${kpi.route}\" data-tab=\"${kpi.filter}\">\n <div class=\"kpi-top\">\n <div class=\"kpi-title\">${escapeHtml(kpi.title)}</div>\n ${tag(kpi.filter, kpi.tone)}\n </div>\n <div class=\"kpi-value\">${kpi.value}</div>\n <div class=\"kpi-foot\">\n <span>${escapeHtml(kpi.desc)}</span>\n <span>查看</span>\n </div>\n <div class=\"trend-line\">\n <span>日 ${kpi.trend.day}</span>\n <span>周 ${kpi.trend.week}</span>\n <span>月 ${kpi.trend.month}</span>\n </div>\n <div class=\"kpi-foot\">\n ${renderSpark(kpi.spark)}\n ${tag(kpi.trend.risk, kpi.tone)}\n </div>\n </button>\n `).join(\"\")}\n </div>\n `;\n }\n\n function renderDashboard() {\n return `\n ${renderCommandStatusStrip()}\n <div class=\"command-grid\">\n ${renderPriorityQueue()}\n <div class=\"side-stack\">\n ${renderRiskSummaryBoard()}\n ${renderApprovalAgingBoard()}\n </div>\n </div>\n <div class=\"matrix-grid\">\n ${renderThemeMatrix()}\n ${renderChannelMatrix()}\n </div>\n `;\n }\n\n function renderCommandStatusStrip() {\n const units = [\n { name: \"P0 待处理\", value: \"3\", sub: \"最长等待 6h\", tone: \"alert\", route: \"plans\", tab: \"blocked\", priority: 3 },\n { name: \"审核卡点\", value: \"4\", sub: \"影响 2 个计划\", tone: \"warning\", route: \"plans\", tab: \"approval\", priority: 4 },\n { name: \"紧急 Listing\", value: \"7\", sub: \"新 3 / 存量 4\", tone: \"alert\", route: \"listings\", tab: \"emergency\", priority: 5 },\n { name: \"黑名单失败\", value: \"2\", sub: \"高危 1\", tone: \"alert\", route: \"risk\", tab: \"sync_failed\", priority: 6 },\n { name: \"推送复核\", value: \"3\", sub: \"EDM 风险高\", tone: \"warning\", route: \"push\", tab: \"risk\", priority: 7 },\n { name: \"评价产出\", value: \"96\", sub: \"近 7 天稳定\", tone: \"\", route: \"reports\", tab: \"review_done\", priority: 8 },\n { name: \"目标完成度\", value: \"76%\", sub: \"周目标差 6%\", tone: \"goal warning\", route: \"reports\", tab: \"okr\", priority: 1, featured: true, progress: 76 },\n { name: \"问题总结\", value: \"9\", sub: \"数据 4 / OKR 2 / 项目 3\", tone: \"alert\", route: \"reports\", tab: \"issue_summary\", priority: 2, featured: true }\n ];\n const coreUnits = units.filter((unit) => unit.featured);\n const restUnits = units.filter((unit) => !unit.featured);\n const orderedRest = state.statusPriorityFirst\n ? [...restUnits].sort((a, b) => a.priority - b.priority)\n : restUnits;\n const ordered = [...coreUnits, ...orderedRest];\n return `\n <section class=\"command-board\">\n <div class=\"command-board-head\">\n <div class=\"command-board-title\">\n <h2>核心看板</h2>\n <span>目标 / 问题 / 卡点</span>\n </div>\n </div>\n <div class=\"command-status-strip ${state.statusExpanded ? \"is-expanded\" : \"is-collapsed\"}\">\n ${ordered.map((unit, index) => `\n <button class=\"status-unit ${unit.tone} ${unit.featured ? \"featured\" : \"\"} ${!unit.featured && index > 5 ? \"optional\" : \"\"}\" data-route=\"${unit.route}\" data-tab=\"${unit.tab}\">\n <div class=\"status-name\">${unit.name}</div>\n <div class=\"status-value\"><span>${unit.value}</span><small>${unit.sub}</small></div>\n ${unit.progress ? `<div class=\"status-progress\" aria-label=\"目标完成进度\"><span style=\"--progress:${unit.progress}%;\"></span></div>` : \"\"}\n </button>\n `).join(\"\")}\n </div>\n <div class=\"command-board-actions\">\n <button class=\"mini-btn ${state.statusPriorityFirst ? \"primary\" : \"\"}\" data-action=\"priority-status\">\n ${state.statusPriorityFirst ? \"高风险\" : \"原序\"}\n </button>\n <button class=\"mini-btn\" data-action=\"toggle-status\">\n ${state.statusExpanded ? \"收起\" : \"展开\"}\n </button>\n </div>\n </section>\n `;\n }\n\n function renderPriorityQueue() {\n const rows = [\n [\"P0\", \"紧急 Listing 策略等待确认\", \"B0TES005 / JP / 评分 4.21\", \"Amazon 总监\", \"超 4h\", \"审批\", \"critical\", \"plans\", \"blocked\"],\n [\"P0\", \"黑名单同步失败需判断严重度\", \"JH-****-2098 / 接口超时 / 高危 1\", \"风险负责人\", \"2h\", \"处理\", \"critical\", \"risk\", \"sync_failed\"],\n [\"P1\", \"EDM 推送复核后再放量\", \"PS-0502-006 / 退订率 2.9%\", \"用户运营组长\", \"今日 12:00\", \"复核\", \"warning\", \"push\", \"risk\"],\n [\"P1\", \"Amazon 已批需求待接收\", \"8 个测评需求 / 最长等待 6h\", \"用户运营负责人\", \"今日 18:00\", \"接收\", \"warning\", \"plans\", \"amazon_approved\"],\n [\"P2\", \"菲律宾 TEL 排班缺口\", \"关键岗位缺 1 / 影响回访覆盖\", \"客服负责人\", \"明日 10:00\", \"分配\", \"\", \"support\", \"ph\"]\n ];\n return `\n <section class=\"panel\">\n <div class=\"panel-head panel-toolbar\">\n <div>\n <h2 class=\"panel-title\">P0/P1 处理队列</h2>\n <div class=\"panel-note\">首页唯一主任务区:风险、对象、负责人、时限和操作放在同一行。</div>\n </div>\n <div class=\"compact-tabs\">\n <button class=\"active\" data-tab=\"all\">全部</button>\n <button data-route=\"plans\" data-tab=\"blocked\">审核</button>\n <button data-route=\"listings\" data-tab=\"emergency\">Listing</button>\n <button data-route=\"risk\" data-tab=\"sync_failed\">黑名单</button>\n <button data-route=\"push\" data-tab=\"risk\">推送</button>\n </div>\n </div>\n <div class=\"panel-body priority-table\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr><th>级别</th><th>事项</th><th>对象</th><th>负责人</th><th>时限</th><th>操作</th></tr>\n </thead>\n <tbody>\n ${rows.map(([level, title, object, owner, due, action, cls, route, tab]) => `\n <tr>\n <td>${tag(level, level === \"P0\" ? \"red\" : level === \"P1\" ? \"amber\" : \"blue\")}</td>\n <td><div class=\"row-title\">${title}</div><div class=\"row-sub\">${cls === \"critical\" ? \"需要管理层确认\" : \"责任部门可处理,异常自动升级\"}</div></td>\n <td>${object}</td>\n <td>${owner}</td>\n <td>${due}</td>\n <td>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">${action}</button>\n <button class=\"mini-btn\" data-detail=\"workItems\" data-id=\"WK-20260503-001\">详情</button>\n </td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderRiskSummaryBoard() {\n const rows = [\n [\"数据分析\", \"Listing 4.2 附近 3 个,目标完成度拖累 6%\", \"高\", \"alert\", \"reports\", \"issue_summary\"],\n [\"OKR 总结\", \"周目标完成 76%,测评接收与推送复核是主要缺口\", \"中\", \"warning\", \"reports\", \"okr\"],\n [\"负责人提交\", \"EDM 退订超过基线,项目负责人建议暂停放量\", \"中\", \"warning\", \"push\", \"risk\"]\n ];\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">问题总结入口</h2>\n <div class=\"panel-note\">数据分析、OKR 总结、项目负责人提交统一进入这里。</div>\n </div>\n </div>\n <div class=\"side-list\">\n ${rows.map(([name, meta, risk, cls, route, tab]) => `\n <button class=\"side-row ${cls}\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"side-row-title\"><span>${name}</span>${tag(risk)}</div>\n <div class=\"side-row-meta\">${meta}</div>\n </button>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderApprovalAgingBoard() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">审核时效</h2>\n <div class=\"panel-note\">看是否卡住业务流。</div>\n </div>\n <button class=\"btn\" data-route=\"plans\" data-tab=\"approval\">全部审批</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"chart-row\">\n ${[\n [\"0-2h\", 42, \"green\"],\n [\"2-6h\", 28, \"blue\"],\n [\"6-12h\", 18, \"amber\"],\n [\"12h+\", 12, \"red\"]\n ].map(([name, value, color]) => `\n <div class=\"bar-line\">\n <span>${name}</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${value}%; background:var(--${color});\"></div></div>\n <span>${value}%</span>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function renderThemeMatrix() {\n const rows = [\n [\"目标完成度\", \"76%\", \"80%\", \"88%\", \"低于周目标 6%\", \"查看问题总结\", \"reports\", \"okr\"],\n [\"测评需求\", \"18\", \"74\", \"236\", \"已批 8 / 待接收 8\", \"用户运营接收\", \"plans\", \"amazon_approved\"],\n [\"Listing 健康\", \"新 3\", \"11\", \"29\", \"4.2 附近\", \"紧急策略审批\", \"listings\", \"emergency\"],\n [\"诈骗黑名单\", \"5\", \"18\", \"64\", \"失败 2 / 高危 1\", \"复核并同步\", \"risk\", \"sync_failed\"],\n [\"评价产出\", \"18\", \"96\", \"384\", \"稳定\", \"查看周报\", \"reports\", \"review_done\"],\n [\"客服质量\", \"12m\", \"14m\", \"16m\", \"关键岗缺 1\", \"调整排班\", \"support\", \"quality\"]\n ];\n return `\n <section class=\"panel matrix-table\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">经营主题矩阵</h2>\n <div class=\"panel-note\">每组数据有趋势、阈值和下一步动作。</div>\n </div>\n </div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>主题</th><th>日</th><th>周</th><th>月</th><th>状态</th><th>下一步</th><th>操作</th></tr></thead>\n <tbody>\n ${rows.map(([name, day, week, month, status, next, route, tab]) => `\n <tr>\n <td><strong>${name}</strong></td>\n <td>${day}</td>\n <td>${week}</td>\n <td>${month}</td>\n <td>${tag(status, status.includes(\"失败\") || status.includes(\"4.2\") || status.includes(\"缺\") || status.includes(\"低于\") ? \"red\" : status.includes(\"待\") ? \"amber\" : \"green\")}</td>\n <td>${next}</td>\n <td><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">查看</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderChannelMatrix() {\n const rows = [\n [\"IM\", \"正常\", \"980\", \"132\", \"继续\"],\n [\"EDM\", \"高风险\", \"1600\", \"87\", \"复核\"],\n [\"TEL\", \"资源紧\", \"740\", \"66\", \"排班\"],\n [\"PR/KOC\", \"逾期 2\", \"27\", \"11\", \"补资料\"],\n [\"PH 团队\", \"缺口 1\", \"-\", \"-\", \"调班\"]\n ];\n return `\n <section class=\"panel channel-table\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">渠道与团队</h2>\n <div class=\"panel-note\">只看状态和动作,不展开全量过程。</div>\n </div>\n </div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>对象</th><th>状态</th><th>触达</th><th>回复</th><th>动作</th></tr></thead>\n <tbody>\n ${rows.map(([name, status, sent, reply, action]) => `\n <tr>\n <td><strong>${name}</strong></td>\n <td>${tag(status, status === \"正常\" ? \"green\" : status.includes(\"高\") || status.includes(\"缺\") ? \"red\" : \"amber\")}</td>\n <td>${sent}</td>\n <td>${reply}</td>\n <td><button class=\"mini-btn primary\" data-route=\"${name === \"PH 团队\" ? \"support\" : \"push\"}\" data-tab=\"${name === \"EDM\" ? \"risk\" : \"all\"}\">${action}</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderExecutiveHero() {\n return `\n <section class=\"executive-hero\">\n <div class=\"focus-card\">\n <div class=\"focus-eyebrow\">今日管理判断</div>\n <h2 class=\"focus-title\">当前不是数据量问题,主要风险集中在审核卡点、紧急 Listing 和推送复核。</h2>\n <div class=\"health-score\">\n <div class=\"health-number\">78</div>\n <div class=\"health-copy\">\n 经营健康指数 / 100<br />\n 较昨日下降 4 分。需要优先处理 P0 审批和 4.2 附近 Listing。\n </div>\n </div>\n <div class=\"focus-metrics\">\n <div class=\"focus-metric\"><strong>4</strong><span>审核卡点</span></div>\n <div class=\"focus-metric\"><strong>7</strong><span>未处理紧急</span></div>\n <div class=\"focus-metric\"><strong>6h</strong><span>最长等待</span></div>\n </div>\n </div>\n <div class=\"decision-panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">需要处理的 3 件事</h2>\n <div class=\"panel-note\">按影响程度排序,只保留系统管理员需要介入的判断。</div>\n </div>\n <div class=\"button-row\">\n <button class=\"btn primary\" data-route=\"plans\" data-tab=\"blocked\">处理卡点</button>\n <button class=\"btn warning\" data-route=\"risk\" data-tab=\"risk_summary\">风险汇总</button>\n <button class=\"btn\" data-route=\"reports\" data-tab=\"weekly\">周报</button>\n </div>\n </div>\n <div class=\"decision-list\">\n ${[\n [\"P0\", \"紧急 Listing 策略等待确认\", \"B0TES005 评分 4.21,策略审批等待超过 4 小时。\", \"critical\", \"plans\", \"blocked\"],\n [\"P0\", \"黑名单同步失败需判断严重度\", \"2 条失败记录中 1 条高危,可能影响诈骗拦截。\", \"critical\", \"risk\", \"sync_failed\"],\n [\"P1\", \"EDM 推送复核后再放量\", \"退订率高于基线,周计划需要暂停同策略任务。\", \"warning\", \"push\", \"risk\"]\n ].map(([level, title, desc, cls, route, tab]) => `\n <div class=\"decision-row ${cls}\">\n <div>${tag(level, level === \"P0\" ? \"red\" : \"amber\")}</div>\n <div>\n <div class=\"decision-title\">${title}</div>\n <div class=\"decision-desc\">${desc}</div>\n </div>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">处理</button>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function renderExecutiveSnapshot() {\n const cards = [\n [\"测评需求与计划\", \"18 申请 / 8 已批\", \"primary\", \"日 18\", \"周 74\", \"月 236\", \"Amazon 提交后,用户运营接收仍有等待。\", \"plans\", \"amazon_approved\"],\n [\"Listing 健康\", \"7 未处理紧急\", \"risk\", \"新 3\", \"周 11\", \"月 29\", \"4.2 附近 Listing 是当前最高风险。\", \"listings\", \"emergency\"],\n [\"诈骗与黑名单\", \"高危 1 / 失败 2\", \"risk\", \"昨 5\", \"周 18\", \"月 64\", \"看严重度和同步失败影响,不展示全量明细。\", \"risk\", \"sync_failed\"],\n [\"评价与推送产出\", \"周 96 / 回复 296\", \"good\", \"日 18\", \"周 96\", \"月 384\", \"评价产出稳定,但 EDM 风险需要复核。\", \"reports\", \"review_done\"]\n ];\n return `\n <section class=\"executive-grid\">\n ${cards.map(([title, value, cls, day, week, month, desc, route, tab]) => `\n <button class=\"executive-card ${cls}\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"executive-title\">\n <span>${title}</span>\n ${tag(cls === \"risk\" ? \"风险\" : cls === \"good\" ? \"稳定\" : \"关注\", cls === \"risk\" ? \"red\" : cls === \"good\" ? \"green\" : \"blue\")}\n </div>\n <div class=\"executive-value\">${value}</div>\n <div class=\"period-stats\">\n <div class=\"period-stat\"><strong>${day}</strong><span>日</span></div>\n <div class=\"period-stat\"><strong>${week}</strong><span>周</span></div>\n <div class=\"period-stat\"><strong>${month}</strong><span>月</span></div>\n </div>\n <div class=\"insight-desc\">${desc}</div>\n </button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderOpsStrip() {\n const cards = [\n [\"IM\", \"正常\", \"触达 980回复 132继续执行。\", \"green\", \"push\", \"im\"],\n [\"EDM\", \"需复核\", \"退订率 2.9%,暂停同策略放量。\", \"amber\", \"push\", \"risk\"],\n [\"TEL\", \"资源紧\", \"客服回访排班接近满负载。\", \"amber\", \"support\", \"tel\"],\n [\"PR/KOC/KOL\", \"2 个逾期\", \"价格、CODE、返点信息需补齐。\", \"purple\", \"push\", \"kol\"],\n [\"菲律宾团队\", \"关键岗缺 1\", \"请假与缺席影响 TEL 覆盖。\", \"red\", \"support\", \"ph\"]\n ];\n return `\n <section class=\"ops-strip\">\n ${cards.map(([name, status, desc, tone, route, tab]) => `\n <button class=\"ops-card\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"ops-name\"><span>${name}</span>${tag(status, tone)}</div>\n <div class=\"ops-status\">${desc}</div>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${tone === \"green\" ? \"72\" : tone === \"red\" ? \"84\" : \"58\"}%; background:var(--${tone === \"purple\" ? \"purple\" : tone});\"></div></div>\n </button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderDrilldownGrid() {\n const buttons = [\n [\"待审核需求\", \"requests\", \"pending_review\"],\n [\"计划覆盖缺口\", \"plans\", \"coverage\"],\n [\"紧急 Listing\", \"listings\", \"emergency\"],\n [\"客服质量\", \"support\", \"quality\"],\n [\"报表生成\", \"reports\", \"weekly\"]\n ];\n return `\n <section class=\"drilldown-grid\">\n ${buttons.map(([label, route, tab]) => `\n <button class=\"drilldown-button\" data-route=\"${route}\" data-tab=\"${tab}\">${label}</button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderWorkPanel() {\n const tabs = [\n [\"all\", \"全部\"],\n [\"amazon_approved\", \"Amazon 已批\"],\n [\"risk_review\", \"用户运营接收\"],\n [\"support\", \"客服升级\"],\n [\"fraud\", \"风险复核\"]\n ];\n const filtered = state.activeTab === \"all\"\n ? records.workItems\n : records.workItems.filter((item) => item.status === state.activeTab);\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">跨部门待办流</h2>\n <div class=\"panel-note\">把 Amazon 已通过、用户运营接收、客服升级、风险复核放在同一条管理队列。</div>\n </div>\n <div class=\"tabs\">\n ${tabs.map(([id, label]) => `<button class=\"tab ${state.activeTab === id ? \"active\" : \"\"}\" data-tab=\"${id}\">${label}</button>`).join(\"\")}\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>来源</th><th>类型</th><th>ASIN/站点</th><th>当前环节</th>\n <th>负责人</th><th>风险</th><th>截止</th><th>动作</th>\n </tr>\n </thead>\n <tbody>\n ${filtered.map((item) => `\n <tr>\n <td>${escapeHtml(item.source)}</td>\n <td>${tag(item.type, \"blue\")}</td>\n <td>${escapeHtml(item.asin)} / ${escapeHtml(item.site)}</td>\n <td>${escapeHtml(item.stage)}</td>\n <td>${escapeHtml(item.owner)}</td>\n <td>${tag(item.risk)}</td>\n <td>${escapeHtml(item.due)}</td>\n <td>\n <button class=\"mini-btn primary\" data-detail=\"workItems\" data-id=\"${item.id}\">${escapeHtml(item.action)}</button>\n <button class=\"mini-btn\" data-action=\"open-modal\" data-modal=\"assign\" data-target=\"${item.id}\">分配</button>\n </td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderListingPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">Listing 与评价健康</h2>\n <div class=\"panel-note\">4.5 以下进入补强,接近 4.2 进入紧急协同。</div>\n </div>\n <button class=\"btn\" data-route=\"listings\" data-tab=\"all\">更多</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"chart-row\">\n ${[\n [\"4.7 以上\", 62, \"green\"],\n [\"4.5 - 4.7\", 24, \"blue\"],\n [\"4.2 - 4.5\", 11, \"amber\"],\n [\"接近 4.2\", 3, \"red\"]\n ].map(([name, value, color]) => `\n <div class=\"bar-line\">\n <span>${name}</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${value}%; background:var(--${color});\"></div></div>\n <span>${value}%</span>\n </div>\n `).join(\"\")}\n </div>\n <div class=\"table-wrap\" style=\"margin-top:12px;\">\n <table>\n <thead><tr><th>ASIN</th><th>站点</th><th>评分</th><th>健康</th><th>阶段</th><th>动作</th></tr></thead>\n <tbody>\n ${records.listings.slice(0, 4).map((item) => `\n <tr>\n <td>${item.asin}</td><td>${item.site}</td><td>${item.rating}</td>\n <td>${tag(item.health)}</td><td>${item.stage}</td>\n <td><button class=\"mini-btn primary\" data-detail=\"listings\" data-id=\"${item.id}\">查看</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderRiskPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">风险雷达</h2>\n <div class=\"panel-note\">诈骗同步、推送风险、规则提醒、数据同步异常。</div>\n </div>\n <button class=\"btn\" data-route=\"risk\" data-tab=\"all\">进入风险中心</button>\n </div>\n <div class=\"panel-body risk-list\">\n ${records.risks.map((risk) => `\n <div class=\"risk-item ${risk.risk === \"高\" ? \"high\" : \"mid\"}\">\n <div class=\"item-title\">\n <span>${escapeHtml(risk.type)}</span>\n ${tag(risk.risk)}\n </div>\n <div class=\"item-desc\">${escapeHtml(risk.subject)} · ${escapeHtml(risk.relation)} · ${escapeHtml(risk.status)}</div>\n <div><button class=\"mini-btn primary\" data-detail=\"risks\" data-id=\"${risk.id}\">处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderBlockingPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">审核卡点与已发现问题</h2>\n <div class=\"panel-note\">系统管理员页优先展示已经识别的问题,避免逐表查找。</div>\n </div>\n <button class=\"btn\" data-route=\"plans\" data-tab=\"blocked\">处理卡点</button>\n </div>\n <div class=\"panel-body risk-list\">\n ${[\n [\"紧急策略审批超 4h\", \"PL-0503-002 接近 4.2 Listing等待系统管理员确认。\", \"高\", \"plans\", \"blocked\"],\n [\"需求已批但未接收\", \"8 个 Amazon 已批准测评需求待用户运营接收,最长等待 6h。\", \"中\", \"plans\", \"amazon_approved\"],\n [\"推送风险待复核\", \"EDM 退订高于基线,相关周计划不应继续放量。\", \"高\", \"push\", \"risk\"]\n ].map(([title, desc, risk, route, tab]) => `\n <div class=\"risk-item ${risk === \"高\" ? \"high\" : \"mid\"}\">\n <div class=\"item-title\"><span>${title}</span>${tag(risk)}</div>\n <div class=\"item-desc\">${desc}</div>\n <div><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">去处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n\n function renderSuggestPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">管理动作建议</h2>\n <div class=\"panel-note\">按 P0/P1 优先级生成,后期可由算法模块增强。</div>\n </div>\n </div>\n <div class=\"panel-body suggest-list\">\n ${[\n [\"先处理 3 个紧急 Listing\", \"需要 Amazon 与用户运营共同确认跟进策略,避免评分继续逼近 4.2。\", \"listings\", \"emergency\"],\n [\"复核昨日高风险推送\", \"检查人群、素材、文案与退订反馈,必要时暂停同策略任务。\", \"push\", \"risk\"],\n [\"审核新增诈骗事件\", \"确认后同步黑名单子系统,失败记录进入重试队列和审计。\", \"risk\", \"fraud\"]\n ].map(([title, desc, route, tab]) => `\n <div class=\"suggest-item\">\n <div class=\"item-title\"><span>${title}</span>${tag(\"建议\", \"purple\")}</div>\n <div class=\"item-desc\">${desc}</div>\n <div><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">去处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderSummaryPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">业务复盘与中期趋势</h2>\n <div class=\"panel-note\">日/周/月切换;系统管理员、负责人/总监、组长都能看到趋势与风险提示。</div>\n </div>\n <button class=\"btn\" data-route=\"reports\" data-tab=\"yesterday\">查看报表</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"summary-grid\">\n ${[\n [\"2,840\", \"昨日触达用户\"],\n [\"285\", \"用户回复\"],\n [\"96\", \"近 7 天评价完成\"],\n [\"4\", \"审核卡点\"]\n ].map(([value, label]) => `\n <div class=\"summary-cell\">\n <div class=\"summary-value\">${value}</div>\n <div class=\"summary-label\">${label}</div>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function getRows(route) {\n if (route === \"requests\") return records.workItems;\n if (route === \"listings\") return records.listings;\n if (route === \"plans\") return records.plans;\n if (route === \"push\") return records.pushes;\n if (route === \"support\") return records.support;\n if (route === \"risk\") return records.risks;\n if (route === \"data\") return records.syncLogs;\n if (route === \"reports\") return records.reports;\n if (route === \"system\") return records.system;\n return [];\n }\n\n function rowToCells(route, item) {\n if (route === \"requests\") {\n return [item.id, tag(item.type, \"blue\"), item.submitter, item.reviewer, tag(item.approval), item.sourceForm, `${item.asin}/${item.site}`, item.stage, item.owner, tag(item.risk), item.due];\n }\n if (route === \"listings\") {\n return [item.asin, item.marketplaces, item.rating, tag(item.grade, item.grade === \"S\" ? \"red\" : item.grade === \"A\" ? \"amber\" : \"blue\"), item.reviews, item.negative, tag(item.health), item.owner, item.issue, `${item.participants} / ${item.progress}`];\n }\n if (route === \"plans\") {\n return [item.id, tag(item.type, \"blue\"), item.requestId, `${item.asin}/${item.site}`, tag(item.coverage, item.coverage === \"已覆盖\" ? \"green\" : \"amber\"), item.channelMix, item.target, item.status, item.approver, tag(item.risk)];\n }\n if (route === \"push\") {\n return [item.id, item.plan, item.channel, item.strategy, `${item.h5} / ${item.assets}`, item.audience, item.sent, item.click, item.reply, item.optout, tag(item.risk), item.status];\n }\n if (route === \"support\") {\n return [item.id, tag(item.type, \"blue\"), item.user, item.asin, item.owner, item.avgResponse, item.workHours, item.attendance, item.output, tag(item.risk), item.sla];\n }\n if (route === \"risk\") {\n return [item.id, tag(item.type, \"blue\"), item.subject, item.relation, item.status, tag(item.risk)];\n }\n if (route === \"data\") {\n return [item.id, item.source, item.interval, item.last, tag(item.status), item.rows];\n }\n if (route === \"reports\") {\n return [item.id, item.name, item.owner, item.range, item.schedule, item.upload, tag(item.exportable, \"green\"), tag(item.masked, \"gray\")];\n }\n if (route === \"system\") {\n return [item.id, item.module, tag(item.status), item.owner, item.note];\n }\n return [];\n }\n\n function renderListPage(route) {\n const routeMeta = routes.find((item) => item.id === route);\n const rows = getRows(route);\n const schema = tableSchemas[route] || [];\n const actions = listActions(route);\n return `\n ${renderHeader(routeMeta.label, pageNotes(route), actions)}\n ${renderModuleInsights(route)}\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">${routeMeta.label}列表</h2>\n <div class=\"panel-note\">当前筛选:${escapeHtml(state.activeTab)};所有记录为模拟数据。</div>\n </div>\n ${renderSourceNote()}\n </div>\n <div class=\"panel-body\">\n ${route === \"requests\" ? renderPendingStrip(\"待审核需求 6 个,其中测评需求必须由 Amazon 运营提交;飞书表单可作为创建入口并同步到 ERP。\", \"requests\", \"pending_review\") : \"\"}\n ${renderFilterBar(route)}\n <div class=\"table-wrap\">\n <table>\n <thead><tr>${schema.map((col) => `<th>${col}</th>`).join(\"\")}</tr></thead>\n <tbody>\n ${rows.map((item) => `\n <tr>\n ${rowToCells(route, item).map((cell) => `<td>${cell}</td>`).join(\"\")}\n <td>${renderRowActions(route, item)}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderModuleInsights(route) {\n const insightMap = {\n requests: [\n [\"新增需求量\", \"日 18 / 周 74 / 月 236\", \"较上周 +12%,待审核入口需前置。\", \"blue\"],\n [\"需求满足量\", \"日 11 / 周 61\", \"已完成与已覆盖需求比例 82%。\", \"green\"],\n [\"关键产品绑定率\", \"S 级 68%\", \"通过数据库定期更新,低于 60% 标记风险。\", \"amber\"]\n ],\n listings: [\n [\"评分分层\", \"4.8+ 24 / 4.5+ 81\", \"4.2-4.5 有 11 个4.2 以下 2 个。\", \"red\"],\n [\"S/A 级跟进\", \"S 级 6 / A 级 14\", \"重点看责任人、问题和参与人员进度。\", \"blue\"],\n [\"跨站点 ASIN\", \"US/CA 3 个\", \"同一 ASIN 多站点联动,需按站点分别归因。\", \"purple\"]\n ],\n plans: [\n [\"需求覆盖率\", \"已覆盖 82%\", \"未覆盖 7 个,部分覆盖 5 个。\", \"amber\"],\n [\"资源分配\", \"IM 46% / EDM 29% / TEL 25%\", \"按计划策略与团队资源匹配。\", \"blue\"],\n [\"异常计划\", \"卡点 4\", \"审批积压、资源不足、风险复核未完成。\", \"red\"]\n ],\n push: [\n [\"渠道分配\", \"IM 46% / EDM 29% / TEL 18% / PR 7%\", \"与计划中心统一看资源和执行。\", \"blue\"],\n [\"反馈效果\", \"点击 453 / 回复 296\", \"按 H5、图片、文案和用户画像拆解。\", \"green\"],\n [\"优化历史\", \"本周 8 次\", \"记录暂停、放量、换图、换文案等策略变化。\", \"purple\"]\n ],\n support: [\n [\"平均响应\", \"12m\", \"日周月响应时长与 SLA 趋势。\", \"green\"],\n [\"出勤风险\", \"请假 2 / 缺席 1\", \"菲律宾团队关键岗位缺口需提示。\", \"amber\"],\n [\"人均产出\", \"16.4 单/日\", \"统计工单、IM、EDM、TEL 处理与评价产出。\", \"blue\"]\n ],\n risk: [\n [\"新增诈骗\", \"昨 5 / 周 18 / 月 64\", \"同步黑名单前需要审核与脱敏。\", \"red\"],\n [\"同步失败严重度\", \"失败 2 / 高危 1\", \"系统管理员只看影响范围与是否严重。\", \"amber\"],\n [\"规则提醒\", \"待复核 6\", \"自动提醒规则和审核风控风险。\", \"blue\"]\n ],\n data: [\n [\"订单同步\", \"10 分钟\", \"Amazon 与独立站订单同步状态。\", \"green\"],\n [\"周月预生成\", \"已排队 4\", \"复杂统计异步处理,减少页面卡顿。\", \"blue\"],\n [\"数据异常\", \"部分失败 1\", \"黑名单接口待确认,失败进入重试。\", \"amber\"]\n ],\n reports: [\n [\"目标完成度\", \"76%\", \"系统管理员入口优先显示目标差距和影响原因。\", \"red\"],\n [\"问题总结\", \"9 条\", \"来源包括数据分析、OKR 总结、项目负责人提交。\", \"amber\"],\n [\"指定报表\", \"12 个\", \"支持日、周、月生成和下载。\", \"blue\"]\n ],\n system: [\n [\"账号管理\", \"新增 3 / 离职 1\", \"新建账号、停用账号、交接任务。\", \"blue\"],\n [\"授权变更\", \"待审 4\", \"导出、审批、敏感信息、黑名单同步独立授权。\", \"amber\"],\n [\"审计风险\", \"高风险 2\", \"查看敏感信息和导出操作需要记录原因。\", \"red\"]\n ]\n };\n const items = insightMap[route];\n if (!items) return \"\";\n return `\n <div class=\"module-charts\">\n ${items.map(([title, value, desc, tone]) => `\n <div class=\"chart-card\">\n <div class=\"chart-title\">${escapeHtml(title)} ${tag(state.period === \"day\" ? \"日\" : state.period === \"week\" ? \"周\" : \"月\", tone)}</div>\n <div class=\"insight-value\">${escapeHtml(value)}</div>\n <div class=\"insight-desc\">${escapeHtml(desc)}</div>\n <div class=\"mini-stat-row\">\n <span>趋势</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${tone === \"red\" ? \"78\" : tone === \"amber\" ? \"58\" : \"68\"}%; background:var(--${tone});\"></div></div>\n <span>${tone === \"red\" ? \"高\" : tone === \"amber\" ? \"注意\" : \"正常\"}</span>\n </div>\n </div>\n `).join(\"\")}\n </div>\n `;\n }\n\n function renderPendingStrip(text, route, tab) {\n return `\n <div class=\"pending-strip\">\n <strong>待处理入口</strong>\n <span>${escapeHtml(text)}</span>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">进入处理</button>\n </div>\n `;\n }\n\n function pageNotes(route) {\n const notes = {\n requests: \"承接需求提交与审核记录;测评需求由 Amazon 运营提交,飞书表单可同步进入 ERP。\",\n listings: \"按评分层级、S/A/B 等级、站点组合、责任人、问题和参与进度管理。\",\n plans: \"关注计划与需求匹配关系,确认需求后生成推广计划和紧急策略。\",\n push: \"与计划中心联动,管理 IM、EDM、TEL、PR/KOC/KOL、H5、素材、反馈和优化历史。\",\n support: \"处理工单沟通,同时关注日周月响应时长、工作时长、出勤、人均产出和菲律宾团队风险。\",\n risk: \"同步诈骗事件、黑名单状态、规则提醒与审计风险。\",\n data: \"展示订单、评价、用户、黑名单等同步状态,不作为数据仓库入口。\",\n reports: \"指定报表生成、下载、上传补充记录和导出审计,支持日/周/月。\",\n system: \"处理系统授权、新建账号、离职管理、权限分配、审批流和审计日志。\"\n };\n return notes[route] || \"\";\n }\n\n function listActions(route) {\n const common = `<button class=\"btn\" data-action=\"open-modal\" data-modal=\"export\">导出</button>`;\n const map = {\n requests: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"create-request\">Amazon 提交测评需求</button><button class=\"btn\" data-route=\"requests\" data-tab=\"pending_review\">待审核入口</button>${common}`,\n listings: `<button class=\"btn warning\" data-action=\"open-modal\" data-modal=\"emergency\">创建紧急策略</button>${common}`,\n plans: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"generate-plan\">生成计划</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"approve\">批量审批</button>`,\n push: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"push-plan\">计划与推送分配</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"risk-review\">风险复核</button>`,\n support: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"assign\">分配工单</button>${common}`,\n risk: `<button class=\"btn danger\" data-action=\"open-modal\" data-modal=\"blacklist\">同步黑名单</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"risk-review\">规则复核</button>`,\n data: `<button class=\"btn\" data-action=\"open-modal\" data-modal=\"sync\">立即同步</button>`,\n reports: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"export\">生成/下载报表</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"upload-report\">上传记录</button>`,\n system: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"new-account\">新建账号</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"offboarding\">离职管理</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"permission\">权限分配</button>`\n };\n return map[route] || common;\n }\n\n function renderFilterBar(route) {\n return `\n <div class=\"filter-bar\">\n <input placeholder=\"关键词ID / ASIN / 负责人 / 用户摘要\" value=\"${escapeHtml(state.keyword)}\" data-filter=\"keyword\" />\n <input type=\"date\" value=\"${state.startDate}\" data-time=\"startDate\" />\n <input type=\"date\" value=\"${state.endDate}\" data-time=\"endDate\" />\n <select><option>全部站点</option><option>US</option><option>CA</option><option>US/CA</option><option>UK</option><option>DE</option><option>JP</option></select>\n <select><option>全部状态</option><option>待审批</option><option>执行中</option><option>风险复核</option><option>已完成</option></select>\n <select><option>全部风险</option><option>紧急</option><option>高</option><option>中</option><option>低</option></select>\n <select><option>全部负责人</option><option>张三</option><option>李四</option><option>王五</option></select>\n <button class=\"btn primary\" data-action=\"toast\" data-message=\"已按当前条件执行模拟查询\">查询</button>\n </div>\n `;\n }\n\n function renderRowActions(route, item) {\n const detailGroup = {\n requests: \"workItems\",\n listings: \"listings\",\n plans: \"plans\",\n push: \"pushes\",\n support: \"support\",\n risk: \"risks\",\n data: \"syncLogs\",\n reports: \"reports\",\n system: \"system\"\n }[route];\n const primaryText = route === \"risk\" ? \"处理\" : route === \"plans\" ? \"审批\" : \"查看\";\n return `\n <button class=\"mini-btn primary\" data-detail=\"${detailGroup}\" data-id=\"${item.id}\">${primaryText}</button>\n <button class=\"mini-btn\" data-action=\"open-modal\" data-modal=\"${route === \"reports\" ? \"export\" : \"approve\"}\" data-target=\"${item.id}\">${route === \"reports\" ? \"导出\" : \"流转\"}</button>\n `;\n }\n\n function openDrawer(group, id) {\n const list = records[group] || [];\n const item = list.find((entry) => entry.id === id);\n if (!item) return;\n document.getElementById(\"drawerTitle\").textContent = `${id} 详情`;\n document.getElementById(\"drawerSubtitle\").textContent = `${DATA_SOURCE};敏感字段默认脱敏。`;\n document.getElementById(\"drawerBody\").innerHTML = `\n <div class=\"detail-grid\">\n ${Object.entries(item).map(([key, value]) => `\n <div class=\"detail-cell\">\n <div class=\"detail-label\">${escapeHtml(key)}</div>\n <div class=\"detail-value\">${escapeHtml(value)}</div>\n </div>\n `).join(\"\")}\n </div>\n <section class=\"panel\">\n <div class=\"panel-head\"><h3 class=\"panel-title\">状态流转记录</h3></div>\n <div class=\"panel-body timeline\">\n <div class=\"timeline-item\">2026-05-03 09:10 创建记录</div>\n <div class=\"timeline-item\">2026-05-03 09:40 自动规则提醒完成</div>\n <div class=\"timeline-item\">2026-05-03 10:20 等待当前负责人处理</div>\n </div>\n </section>\n <section class=\"panel\">\n <div class=\"panel-head\"><h3 class=\"panel-title\">脱敏与审计</h3></div>\n <div class=\"panel-body\">\n <div class=\"item-desc\">JOYHUB ID、邮箱、电话、设备号、IP、订单号等字段在 MVP 原型中仅展示脱敏摘要。点击“查看完整信息”会记录审计,本原型仅模拟弹窗。</div>\n </div>\n </section>\n `;\n document.getElementById(\"drawerFoot\").innerHTML = `\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"audit\">查看完整信息</button>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"assign\">分配</button>\n <button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"approve\">审批/确认</button>\n `;\n document.getElementById(\"drawerMask\").classList.add(\"open\");\n document.getElementById(\"drawer\").classList.add(\"open\");\n }\n\n function closeDrawer() {\n document.getElementById(\"drawerMask\").classList.remove(\"open\");\n document.getElementById(\"drawer\").classList.remove(\"open\");\n }\n\n function openModal(type, target = \"\") {\n const configs = {\n notice: [\"通知中心\", \"展示待办、审批退回、风险提醒与同步失败通知。\", \"标记已读\"],\n export: [\"导出确认\", \"仅主管和系统管理员可导出。导出字段默认脱敏,并写入审计日志。\", \"确认导出\"],\n assign: [\"任务分配\", \"选择下一个责任部门和负责人,支持设置截止时间。\", \"确认分配\"],\n approve: [\"审批/流转\", \"选择通过、退回、转交、升级或关闭,并填写审批意见。\", \"提交审批\"],\n \"create-request\": [\"Amazon 提交测评需求\", \"测评需求由 Amazon 运营提交客服、KOC/KOL、诈骗等其他需求由对应部门或飞书表单入口同步。\", \"提交审核\"],\n emergency: [\"紧急 Listing 策略\", \"用于接近 4.2 的 Listing需 Amazon 与用户运营共同确认。\", \"提交策略审批\"],\n \"generate-plan\": [\"自动生成计划\", \"根据 Listing 健康度、站点目标和用户画像生成计划草稿。\", \"生成草稿\"],\n \"push-plan\": [\"计划与推送分配\", \"按计划资源分配 IM、EDM、TEL、PR/KOC/KOL绑定 H5 页面、图片、文案实验和发送窗口。\", \"保存分配\"],\n \"risk-review\": [\"规则与风险复核\", \"复核推送风险、规则提醒、退订异常和客服升级。\", \"确认复核\"],\n blacklist: [\"同步黑名单\", \"确认诈骗事件后同步黑名单子系统,失败时进入重试队列。\", \"确认同步\"],\n sync: [\"立即同步\", \"触发订单、评价、黑名单或推送回执同步。本原型只模拟动作。\", \"开始同步\"],\n permission: [\"权限调整\", \"维护总监、负责人、组长、组员、客服、系统管理员等权限。\", \"保存权限\"],\n \"new-account\": [\"新建账号\", \"按部门、角色、站点、数据范围创建账号,并记录授权审批。\", \"创建账号\"],\n offboarding: [\"离职管理\", \"停用账号、交接任务、回收导出与敏感信息权限。\", \"确认离职处理\"],\n \"upload-report\": [\"上传报表记录\", \"上传人工复核附件、外部表单、补充报表或下载记录,进入报表审计。\", \"保存记录\"],\n audit: [\"敏感信息审计\", \"查看完整敏感信息需要填写原因,并记录审计日志。\", \"确认查看\"]\n };\n const [title, desc, submit] = configs[type] || configs.approve;\n document.getElementById(\"modalTitle\").textContent = target ? `${title} · ${target}` : title;\n document.getElementById(\"modalBody\").innerHTML = `\n <div class=\"item-desc\">${desc}</div>\n <div class=\"form-row\">\n <label>动作类型</label>\n <select>\n <option>通过 / 确认</option>\n <option>退回修改</option>\n <option>转交</option>\n <option>升级</option>\n <option>关闭</option>\n </select>\n </div>\n <div class=\"form-row\">\n <label>下一负责人</label>\n <select>\n <option>用户运营负责人</option>\n <option>Amazon 运营总监</option>\n <option>客服负责人</option>\n <option>风险负责人</option>\n <option>系统管理员</option>\n </select>\n </div>\n <div class=\"form-row\">\n <label>处理意见</label>\n <textarea placeholder=\"请输入审批意见、分配说明、风险确认或导出原因。\"></textarea>\n </div>\n ${renderSourceNote()}\n `;\n document.getElementById(\"modalFoot\").innerHTML = `\n <button class=\"btn\" data-action=\"close-modal\">取消</button>\n <button class=\"btn primary\" data-action=\"submit-modal\" data-message=\"${submit}成功,已写入模拟操作记录\">${submit}</button>\n `;\n document.getElementById(\"modalMask\").classList.add(\"open\");\n document.getElementById(\"modal\").classList.add(\"open\");\n }\n\n function closeModal() {\n document.getElementById(\"modalMask\").classList.remove(\"open\");\n document.getElementById(\"modal\").classList.remove(\"open\");\n }\n\n function showToast(message) {\n const toast = document.getElementById(\"toast\");\n const item = document.createElement(\"div\");\n item.className = \"toast-item\";\n item.textContent = message;\n toast.appendChild(item);\n window.setTimeout(() => item.remove(), 2600);\n }\n\n function render() {\n renderNav();\n const content = document.getElementById(\"content\");\n updateTopContext();\n if (state.route === \"dashboard\") {\n content.innerHTML = renderDashboard();\n } else {\n content.innerHTML = renderListPage(state.route);\n }\n }\n\n function updateTopContext() {\n const routeMeta = routes.find((item) => item.id === state.route);\n const title = document.getElementById(\"topPageTitle\");\n const subtitle = document.getElementById(\"topPageSubtitle\");\n if (title && routeMeta) title.textContent = routeMeta.label === \"工作台\" ? \"经营总览\" : routeMeta.label;\n if (subtitle) {\n const scopeText = {\n all: \"全部部门\",\n amazon: \"Amazon 运营\",\n user_ops: \"用户运营\",\n support: \"客服\"\n }[state.scope] || \"全部部门\";\n subtitle.textContent = `系统管理员(最高权限) · ${scopeText}`;\n }\n document.querySelectorAll(\".top-period button\").forEach((button) => {\n button.classList.toggle(\"active\", button.dataset.period === state.period);\n });\n }\n\n function bindEvents() {\n document.body.addEventListener(\"click\", (event) => {\n const target = event.target.closest(\"button\");\n if (!target) return;\n const route = target.dataset.route;\n if (route) {\n setRoute(route, target.dataset.tab || \"all\");\n return;\n }\n if (target.dataset.tab) {\n state.activeTab = target.dataset.tab;\n render();\n return;\n }\n if (target.dataset.detail) {\n openDrawer(target.dataset.detail, target.dataset.id);\n return;\n }\n const action = target.dataset.action;\n if (action === \"toggle-status\") {\n state.statusExpanded = !state.statusExpanded;\n render();\n showToast(state.statusExpanded ? \"核心看板已展开全部事项\" : \"核心看板已收起次要事项\");\n return;\n }\n if (action === \"priority-status\") {\n state.statusPriorityFirst = !state.statusPriorityFirst;\n render();\n showToast(state.statusPriorityFirst ? \"已按重要度优先排序\" : \"已恢复原始顺序\");\n return;\n }\n if (action === \"close-drawer\") closeDrawer();\n if (action === \"close-modal\") closeModal();\n if (action === \"open-modal\") openModal(target.dataset.modal, target.dataset.target);\n if (action === \"submit-modal\") {\n closeModal();\n showToast(target.dataset.message || \"操作成功\");\n }\n if (action === \"toast\") showToast(target.dataset.message || \"已执行\");\n });\n\n document.getElementById(\"drawerMask\").addEventListener(\"click\", closeDrawer);\n document.getElementById(\"modalMask\").addEventListener(\"click\", closeModal);\n document.getElementById(\"globalSearch\").addEventListener(\"input\", (event) => {\n state.keyword = event.target.value;\n });\n document.getElementById(\"scopeSelect\").addEventListener(\"change\", (event) => {\n state.scope = event.target.value;\n updateTopContext();\n showToast(`已切换数据范围:${event.target.options[event.target.selectedIndex].text}`);\n });\n document.body.addEventListener(\"change\", (event) => {\n const input = event.target.closest(\"[data-time]\");\n if (!input) return;\n const key = input.dataset.time;\n if (key === \"startDate\" || key === \"endDate\") {\n state[key] = input.value;\n showToast(`时间范围已更新:${state.startDate} 至 ${state.endDate}`);\n }\n });\n document.body.addEventListener(\"click\", (event) => {\n const target = event.target.closest(\"[data-period]\");\n if (!target) return;\n state.period = target.dataset.period;\n render();\n showToast(`已切换为${state.period === \"day\" ? \"日\" : state.period === \"week\" ? \"周\" : \"月\"}视角`);\n });\n window.addEventListener(\"hashchange\", readHash);\n }\n\n function readHash() {\n const hash = window.location.hash.replace(\"#\", \"\");\n if (!hash) return;\n const [route, tab] = hash.split(\":\");\n if (routes.some((item) => item.id === route)) {\n state.route = route;\n state.activeTab = tab || \"all\";\n render();\n }\n }\n\n bindEvents();\n readHash();\n render();\n </script>\n</body>\n</html>\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2",
"type": "document",
"name": "USER 评价业务闭环 — 共用能力图与渠道专属流程 v2.2",
"filePath": "05_需求文档/20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2.md",
"summary": "USER 评价业务闭环 — 共用能力图与渠道专属流程 v2.2 文件信息 文件名称: 20260517 USER评价业务闭环 共用能力图与渠道专属流程 v2.2.md 项目路径: C:\\XCODE\\USER 当前版本: v2.2 最近更新: 2026 05 17 上游基线: 工作基线 v1.2 20260517 USER评价业务闭环主流程与后续工作基线 v1",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "# USER 评价业务闭环 — 共用能力图与渠道专属流程 v2.2\n\n## 文件信息\n\n- 文件名称:`20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 当前版本:`v2.2`\n- 最近更新:`2026-05-17`\n- 上游基线:[工作基线 v1.2](20260517_USER评价业务闭环主流程与后续工作基线_v1.2.md)\n- 前一版本:\n - `20260517_USER评价业务闭环_共用能力图与渠道专属流程_v1.1.md`\n - `20260517_USER评价业务闭环点击操作模拟_v2.1.md`\n- 文件目的:在基线 v1.2 确认的额度规则和真实人体系上,拆出系统级共用能力图与 IM / EDM / APP / TEL / 客服 / KOC-KOL 六条渠道的专属执行流程,每个节点标注 查 / 写 / 状态 / 提醒 / 拦截。\n- 资料依据IM 推送业务流脑图、电话业务流程知识库、客服相关模块、后台回评工作流对接事项、状态机 v4、页面设计 v4、原型 HTML。\n- 使用方式:先读基线 v1.2,再读本文件;第三步数据流设计直接引用本文件的节点规则表和数据对象建议。本文件取代 `v1.1` 与 `v2.1` 作为当前第二步主稿。\n\n---\n\n### 1. 总览\n\n```mermaid\nflowchart LR\n A[\"销售 / ASIN数据形成\"] --> B[\"需求触发\"]\n B --> C[\"用户运营评估\"]\n C --> D{\"计划类型\"}\n D --> E[\"评价型计划<br/>推新 / 回评\"]\n D --> F[\"免评计划\"]\n E --> G[\"执行拆解\"]\n F --> G\n G --> SHARED[\"共用能力层\"]\n SHARED --> I1[\"IM\"]\n SHARED --> I2[\"EDM\"]\n SHARED --> I3[\"APP\"]\n SHARED --> I4[\"TEL\"]\n SHARED --> I5[\"客服\"]\n SHARED --> I6[\"KOC / KOL\"]\n I1 & I2 & I3 & I4 & I5 --> J[\"用户互动 / 服务 / 跟进\"]\n J --> K[\"用户真实提交评价\"]\n K --> L[\"计入累计评价额度12\"]\n L --> M[\"Amazon展示确认\"]\n M --> N[\"ASIN / 计划 / 用户 / 风险结果回流\"]\n I6 --> O[\"免评结果跟踪\"]\n O --> N\n N --> C\n\n style SHARED fill:#f5f5f5,stroke:#333,stroke-width:3px\n```\n\n#### 节点审查标准\n\n每个关键节点按以下 8 问审:\n\n| ## | 问题 | 标注 |\n| --- | --- | --- |\n| 1 | 入口是什么 | 触发条件 |\n| 2 | 先查什么 | **查** |\n| 3 | 判断什么 | 分岔条件 |\n| 4 | 写什么 | **写** |\n| 5 | 状态怎么变 | **状态** |\n| 6 | 何时提醒 | **提醒** |\n| 7 | 何时拦截 | **拦截** |\n| 8 | 何时转人工 | **转人工** |\n\n---\n\n## 第一部分:共用能力图\n\n### 2. 共用能力一:真实人识别与用户上下文卡\n\n#### 2.1 流程图\n\n```mermaid\nflowchart TB\n A[\"新互动 / 新订单 / 新任务\"] --> B[\"读取身份线索\"]\n B --> B1[\"JOYHUB ID\"]\n B --> B2[\"邮箱\"]\n B --> B3[\"电话\"]\n B --> B4[\"设备号\"]\n B --> B5[\"订单号\"]\n B --> B6[\"姓名 + 地址\"]\n\n B1 & B2 & B3 & B4 & B5 & B6 --> C[\"归并真实人\"]\n C --> D{\"匹配结果\"}\n D -->|\"标准化姓名+地址一致\"| E[\"强关联 → 同一真实人\"]\n D -->|\"地址一致姓名不同\"| F[\"家庭/关联风险 → 不直接合并\"]\n D -->|\"多线索交叉\"| G[\"按设备/电话/邮箱/收款信息权重合并\"]\n\n E & F & G --> H[\"生成 / 更新真实人 ID\"]\n H --> I[\"拉取用户上下文卡\"]\n\n I --> J[\"历史交易<br/>订单/购买/退款/返款/ASIN\"]\n I --> K[\"历史服务<br/>工单/聊天/电话/承诺/提醒\"]\n I --> L[\"历史风险<br/>黑名单/诈骗/关联/异常\"]\n I --> M[\"当前设备<br/>型号/版本/换机记录\"]\n I --> N[\"触达历史<br/>IM/EDM/APP/TEL 近期记录\"]\n\n J & K & L & M & N --> O[\"上下文卡快照 → 供客服/运营/风险使用\"]\n```\n\n#### 2.2 用户上下文卡字段组\n\n| 字段组 | 具体内容 |\n| --- | --- |\n| 当前身份 | JOYHUB ID、邮箱、电话、当前订单、真实人 ID |\n| 真实人归并 | 姓名+地址标准化、设备号、电话、邮箱、Profile ID、收款信息、关联账号列表 |\n| 历史交易 | 历史订单、购买频次、最近购买、历史退款、历史返款、目标 ASIN 购买记录 |\n| 历史服务 | 历史工单、聊天记录、通话记录、已承诺事项、已发送提醒、工单关闭原因 |\n| 历史风险 | 黑名单标记、强关联记录、弱关联记录、疑似诈骗、双重退款、异常订单 |\n| 当前设备 | 设备号摘要、设备型号/类型、系统版本、APP 版本、最近设备变化(换机/多设备) |\n| 触达历史 | IM 最近触达/回复/退订、EDM 最近打开/点击/退订、APP 最近 Push、TEL 最近拨打 |\n\n#### 2.3 节点规则\n\n| 节点 | 查 | 写 | 状态 | 提醒 | 拦截 |\n| --- | --- | --- | --- | --- | --- |\n| 归并真实人 | JOYHUB、邮箱、电话、设备、订单、地址 | 真实人匹配结果、匹配证据、置信度 | 新真实人 / 已存在 | 标准化姓名+地址一致时强提示 | - |\n| 拉取上下文卡 | 交易、工单、风险、设备、触达全量记录 | 上下文快照(含快照时间) | 首次生成 / 增量更新 | 命中黑名单/异常时高亮 | 严重风险标记时阻止自动通过 |\n| 设备变化识别 | 设备号、型号、系统版本、APP版本 | 设备变化记录、变化时间 | 设备正常 / 近期换机 / 多设备 | 近期换机或同设备多账号提示 | - |\n\n---\n\n### 3. 共用能力二:人群生成与画像拆解\n\n#### 3.1 流程图\n\n```mermaid\nflowchart TB\n A[\"计划进入人群生成\"] --> B[\"基础过滤\"]\n B --> B1[\"硬排除:国家/站点/可达性/退订/黑名单/未关闭工单\"]\n\n B1 --> C[\"画像匹配\"]\n C --> C1[\"基础画像:国家/语言/性别/年龄段/注册时间\"]\n C --> C2[\"产品关系:绑定玩具/绑定数量/绑定品类/目标产品\"]\n C --> C3[\"交易画像:历史订单/购买频次/是否买过目标ASIN\"]\n C --> C4[\"行为画像:活跃度/打开率/点击率/历史回评率/配合率\"]\n C --> C5[\"触达画像:各渠道可达性/最近触达/退订\"]\n C --> C6[\"风险画像:黑名单/设备关联/地址关联/退款异常\"]\n C --> C7[\"计划画像:是否参加过推新/回评/免评/最近结果\"]\n\n C1 & C2 & C3 & C4 & C5 & C6 & C7 --> D[\"历史行为评分\"]\n\n D --> E[\"额度与频控校验<br/>(进入 §4 共用能力三)\"]\n E --> F[\"风险复检<br/>(进入 §6 共用能力五)\"]\n F --> G[\"生成候选人群快照 + 排除快照\"]\n```\n\n#### 3.2 画像字段的三类用途\n\n| 类型 | 作用 | 示例字段 |\n| --- | --- | --- |\n| **硬过滤** | 决定能不能进池 | 国家、可达性、黑名单、退订、未关闭工单、额度超限 |\n| **匹配条件** | 决定是否适合当前计划 | 绑定玩具、目标品类、年龄、性别、是否买过目标 ASIN |\n| **排序权重** | 决定触达优先级 | 活跃度、历史回评率、历史配合率、最近互动时间 |\n\n#### 3.3 节点规则\n\n| 节点 | 查 | 写 | 状态 | 提醒 | 拦截 |\n| --- | --- | --- | --- | --- | --- |\n| 基础过滤 | 国家、站点、可达性、退订、黑名单、未关闭工单 | 排除原因记录 | 入池 / 排除 | - | 黑名单/退订/强关联直接排除 |\n| 画像匹配 | 7 组画像字段 | 匹配分组与得分 | 匹配 / 不匹配 / 待补全 | 画像缺失可补全 | - |\n| 历史行为评分 | 活跃、点击、回复、回评率、配合率、投诉 | 评分结果、排序权重 | 高分 / 中分 / 低分 | 低活跃用户降级提醒 | - |\n| 生成快照 | 过滤、匹配、评分、额度、风险全量结果 | 人群快照、排除快照、快照时间 | 已生成 | 排除比例异常时提醒 | 快照为空时拦截 |\n\n---\n\n### 4. 共用能力三:额度台账与频控控制\n\n#### 4.1 已确认额度规则\n\n| 规则 | 统计对象 | 计数口径 | 计数时点 |\n| --- | --- | --- | --- |\n| 每月测评最多 4 次 | 真实人 | 已完成 + 进行中 + 已预占 | - |\n| 每月免评最多 4 次 | 真实人 | 已完成 + 进行中 + 已预占 | - |\n| 累计真实提交评价最多 12 个 | 真实人 | 用户真实提交评价后立即计数 | 用户真实提交评价时 |\n\n#### 4.2 流程图\n\n```mermaid\nflowchart TB\n A[\"识别真实人\"] --> B[\"读取额度台账\"]\n B --> B1[\"本月测评:已完成 / 进行中 / 已预占\"]\n B --> B2[\"本月免评:已完成 / 进行中 / 已预占\"]\n B --> B3[\"累计真实提交:当前 / 上限 12\"]\n B --> B4[\"并发占用:跨计划重复入选检测\"]\n\n B1 & B2 & B3 & B4 --> C{\"额度判断\"}\n C -->|\"剩余 ≥ 本次拟发送\"| D[\"进入普通候选池<br/>→ 预占额度\"]\n C -->|\"剩余不足但 > 0\"| E[\"进入预警池<br/>→ 预占额度 → 发送前人工复核\"]\n C -->|\"已用 + 预占 + 本次 ≥ 上限\"| F[\"排除自动推送\"]\n\n D --> G[\"写入预占记录\"]\n E --> G\n\n G --> H[\"频控复核\"]\n H --> H1[\"渠道频控IM/EDM/APP/TEL 最近触达间隔\"]\n H --> H2[\"单 ASIN 短期触达次数\"]\n H --> H3[\"用户反感度/投诉/退订状态\"]\n\n H1 & H2 & H3 --> I{\"频控判断\"}\n I -->|通过| J[\"进入发送队列\"]\n I -->|不通过| K[\"延后 / 降频 / 排除\"]\n\n J --> L[\"发送前再次读取最新额度 + 风险\"]\n L --> M{\"最终校验\"}\n M -->|通过| N[\"发送\"]\n M -->|新增超限/风险| O[\"撤出本批次\"]\n```\n\n#### 4.3 额度 vs 频控的区别\n\n| 类别 | 统计维度 | 周期 | 拦截时机 |\n| --- | --- | --- | --- |\n| **渠道频控** | 单渠道触达次数/间隔 | 按日/周/月 | 发送前 |\n| **月度业务额度** | 真实人测评 4 / 免评 4 | 自然月 | 人群生成 + 发送前 |\n| **累计评价额度** | 真实人累计 12 | 永久累计 | 用户提交评价时更新、下次人群生成时判断 |\n| **并发占用控制** | 进行中 + 已预占 + 跨计划重复 | 实时 | 人群生成 + 预占时 |\n\n#### 4.4 节点规则\n\n| 节点 | 查 | 写 | 状态 | 提醒 | 拦截 |\n| --- | --- | --- | --- | --- | --- |\n| 读取额度台账 | 本月测评/免评、累计提交、进行中、已预占 | 当前额度快照 | - | 剩余 ≤ 1 或本批次将打满时预警 | - |\n| 预占额度 | 候选计划、预计发送量、当前剩余 | 额度预占记录 | 已预占 | - | 预计超限阻止进入自动发送 |\n| 频控复核 | IM/EDM/APP/TEL 最近触达、ASIN频次、退订/投诉 | 频控校验结果 | 通过 / 降频 / 排除 | 接近频控上限时提醒 | 超频直接排除 |\n| 发送前终校 | 最新额度、最新风险、最新未关闭工单 | 发送前校验结果 | 准入 / 撤出 | 任何新增异常立即提示 | 新增超限/风险撤出本批次 |\n\n---\n\n### 5. 共用能力四:每次有效互动复检\n\n#### 5.1 流程图\n\n```mermaid\nflowchart TB\n A[\"触发复检的事件\"] --> A1[\"主动推送后回复\"]\n A --> A2[\"再次联系\"]\n A --> A3[\"补充订单号\"]\n A --> A4[\"客服回访\"]\n A --> A5[\"电话来电\"]\n A --> A6[\"退款/返款/继续推送前\"]\n\n A1 & A2 & A3 & A4 & A5 & A6 --> X[\"重新读取四组数据\"]\n\n X --> X1[\"身份:真实人/JOYHUB/邮箱/电话/设备/订单/地址\"]\n X --> X2[\"历史:订单/工单/触达/退款/返款\"]\n X --> X3[\"额度:本月测评/免评/累计提交/进行中/预占\"]\n X --> X4[\"风险:黑名单/强弱关联/双重退款/异常订单\"]\n\n X1 & X2 & X3 & X4 --> Y{\"判断结果\"}\n Y -->|正常 + 额度充足| Z[\"继续业务\"]\n Y -->|弱风险 / 接近额度上限| W[\"继续但显著提示 → 人工关注\"]\n Y -->|强风险 / 额度超限| V[\"暂停当前动作 → 转风险中心或人工复核\"]\n```\n\n#### 5.2 节点规则\n\n| 节点 | 查 | 写 | 状态 | 提醒 | 拦截 |\n| --- | --- | --- | --- | --- | --- |\n| 身份复检 | JOYHUB、邮箱、电话、设备、订单、地址是否变化 | 身份变化记录 | 未变 / 新增关联 / 冲突 | 设备变化/地址变化提示 | - |\n| 历史复检 | 是否有新订单、新工单、新触达、新退款 | 历史变化记录 | 无变化 / 有更新 | 新退款/新工单提示 | - |\n| 额度复检 | 最新测评/免评/累计额度 | 最新额度快照 | 充足 / 预警 / 超限 | 接近上限预警 | 超限拦截 |\n| 风险复检 | 黑名单、强弱关联、双重退款、异常 | 最新风险结果 | 正常 / 弱风险 / 强风险 | 任何命中高亮提醒 | 强关联暂停自动操作 |\n\n---\n\n### 6. 共用能力五:风险判断与黑名单\n\n#### 6.1 风险分层\n\n| 风险类型 | 关联项 | 处理原则 |\n| --- | --- | --- |\n| **强关联** | 邮箱、设备号、电话、收件人姓名+地址、订单号、聊天记录、Profile ID、收款信息 | 一旦命中,直接进入高风险或黑名单链路 |\n| **弱关联** | IP 单独命中、姓名单独命中、同址异名 | 进入高风险观察 + 人工复核,不直接认定诈骗 |\n\n#### 6.2 流程图\n\n```mermaid\nflowchart TB\n A[\"风险信号进入<br/>(新订单同步/触达回应/用户接入/退款申请/再次跟进)\"] --> B[\"强弱关联判断\"]\n\n B --> C{\"关联等级\"}\n C -->|强关联| D[\"高风险 / 黑名单链路\"]\n C -->|弱关联| E[\"高风险观察 + 人工复核\"]\n C -->|无关联| F[\"正常继续\"]\n\n D --> D1[\"拦截继续推送\"]\n D --> D2[\"拦截自动退款\"]\n D --> D3[\"拦截自动放行\"]\n D1 & D2 & D3 --> G[\"回写工单 / 推送 / 计划状态\"]\n G --> H[\"提醒客服 / 用户运营 / 审核人员\"]\n\n E --> E1[\"显著风险提醒\"]\n E1 --> E2[\"人工复核\"]\n E2 --> E3{\"复核结论\"}\n E3 -->|确认风险| D\n E3 -->|排除风险| F\n```\n\n#### 6.3 已确认业务问题\n\n1. **双重退款**APP/OA 已退款 + 用户又向 Amazon 申请退款 → 需要 Amazon 退款与 OA 返款自动比对\n2. **高风险用户**:一旦标记,支付/返款需要人工复核\n3. **风险可见性**:客服、审核、退款等环节必须都能看到风险提醒\n4. **非 APP 用户盲区**:直接走邮件退款,缺设备/注册邮箱等维度,识别能力下降\n5. **每次互动重判**:风险判断不是一次性的,每次有效互动都要重新执行\n\n#### 6.4 节点规则\n\n| 节点 | 查 | 写 | 状态 | 提醒 | 拦截 |\n| --- | --- | --- | --- | --- | --- |\n| 强弱关联判断 | 邮箱/设备/电话/地址/订单/ProfileID/收款信息/IP | 关联结果、命中维度列表 | 强关联 / 弱关联 / 无 | 命中时高亮命中维度 | - |\n| 高风险链路 | 当前推送/退款/返款状态 | 风险事件、拦截记录 | 已拦截 / 待复核 | 通知所有关联环节 | 拦截继续推送/自动退款/自动放行 |\n| 双重退款检测 | Amazon退款记录 + OA返款记录 | 匹配结果、差异 | 无重复 / 疑似重复 / 确认重复 | 确认重复时强告警 | 确认重复时阻止后续返款 |\n\n---\n\n### 7. 共用能力六:审批工作流\n\n```mermaid\nflowchart LR\n PLAN[\"计划草案\"] --> R1{\"计划类型\"}\n R1 -->|测评计划| A1[\"Amazon运营总监审批\"]\n R1 -->|回评计划| A2[\"Amazon运营总监或指定负责人\"]\n R1 -->|免评计划| A3[\"Amazon运营总监 + 用户负责人\"]\n R1 -->|紧急计划| A4[\"Amazon运营负责人 + 用户负责人 + 主管\"]\n\n A1 & A2 & A3 & A4 --> NEXT[\"周/月推送计划\"]\n NEXT --> N1[\"用户负责人审批\"]\n N1 --> N2[\"渠道负责人审批\"]\n N2 --> APPROVED[\"已批准 → 执行\"]\n```\n\n#### 7.1 审批节点规则\n\n| 节点 | 查 | 写 | 状态 | 提醒 | 拦截 |\n| --- | --- | --- | --- | --- | --- |\n| Amazon运营总监审批 | 计划详情、ASIN健康、风险提醒 | 审批结果、审批意见 | 通过 / 驳回 / 待补充 | 驳回时通知提交人 | - |\n| 用户负责人审批 | 人群快照、额度占用、频控结果 | 审批结果 | 通过 / 驳回 | 额度接近上限时预警 | - |\n| 渠道负责人审批 | 渠道容量、素材、合规 | 审批结果 | 通过 / 驳回 | 素材/文案风险提醒 | 合规风险时拦截 |\n\n---\n\n### 8. 共用能力七:审计与通知中心\n\n| 模块 | 职责 | 关键记录内容 |\n| --- | --- | --- |\n| 状态变更审计 | 所有业务对象的状态流转留痕 | 对象ID、旧状态、新状态、操作人、时间、原因 |\n| 敏感字段访问 | 涉密字段的每次读取记录 | 访问人、访问时间、访问字段、访问上下文 |\n| 导出操作 | 所有数据导出行为留痕 | 导出人、时间、范围、原因、是否含敏感字段 |\n| 人工复核操作 | 所有人工干预决策留痕 | 决策人、决策内容、决策依据、决策时间 |\n| **规则风控提醒** | 触发规则/审核/风控阈值时通知 | 同一ASIN频控过高、同一用户多次推送、设备/邮箱异常、站点任务过密 |\n| **紧急Listing预警** | 评分接近4.2时通知 | ASIN、当前评分、差评摘要、建议动作 |\n| **客服超时提醒** | 工单/答应配合超时通知 | 工单ID、超时类型、超时时长、责任人 |\n| **额度预警** | 额度接近上限时通知 | 真实人、额度类型、已用/上限、受影响计划 |\n\n---\n\n## 第二部分:渠道专属流程图\n\n### 9. 渠道一IM 推送专属流程\n\n#### 9.1 用户分层与推送策略\n\n```mermaid\nflowchart TB\n U[\"用户注册 + 绑定玩具\"] --> L1{\"识别用户分层\"}\n\n L1 -->|\"A 未参与过<br/>从未走过回评/测评\"| A1[\"推送前校验\"]\n A1 --> A1a[\"查JOYHUB ID、设备ID、黑名单、绑定产品\"]\n A1 --> A1b{\"设备ID在黑名单\"}\n A1b -->|是| A2[\"写:打标'长期测评人'<br/>拦截:不推回评/测评卡片<br/>推送:免评产品卡片\"]\n A1b -->|否| A3[\"推送:对应绑定产品的回评卡片<br/>写:推送记录\"]\n\n L1 -->|\"B 已参与过<br/>真实人累计真实提交评价 < 12\"| B1[\"优先催评\"]\n B1 --> B1a[\"查:未回评测评单、真实人累计评价数、标签\"]\n B1 --> B1b[\"推送:催评卡片/消息\"]\n B1b --> B2{\"完成好评提交?\"}\n B2 -->|是| B3[\"写:重新计算真实人累计评价数\"]\n B3 --> B4{\"累计真实提交评价仍 < 12\"}\n B4 -->|是| B5[\"推送:当日测评计划对应卡片<br/>写:二次转化记录\"]\n B4 -->|否| B6[\"写:打标'长期测评人'→ 推送免评产品\"]\n\n L1 -->|\"C 长期测评人<br/>真实人累计真实提交评价 ≥ 12\"| C1[\"拦截:不推送普通回评/测评卡片<br/>推送:当日免评补单产品<br/>写:免评推送记录\"]\n\n style A2 fill:#fce4ec\n style C1 fill:#fff3e0\n```\n\n#### 9.2 IM 用户提交后的核验与流转\n\n```mermaid\nflowchart TB\n SUBMIT[\"入口用户在IM中提交回评/测评信息\"] --> ITEMS[\"提交内容:订单号 + 返款账号 + 评论截图/链接\"]\n\n ITEMS --> AUTO[\"查:当前用户标签、关联计划<br/>写:系统自动登记提交记录<br/>状态:待核验\"]\n\n AUTO --> VERIFY[\"订单号核实\"]\n VERIFY --> V1{\"查:是否测评单?\"}\n VERIFY --> V2{\"查:是否为公司产品?\"}\n VERIFY --> V3{\"查:单号格式 xxx-xxxxxxx-xxxxxxx\"}\n\n V1 & V2 & V3 -->|全部通过| PASS[\"写:登记进系统<br/>状态:已登记\"]\n V1 & V2 & V3 -->|任一不通过| CS[\"转人工:推送客服<br/>状态:待客服处理\"]\n\n CS --> CS1[\"客服沟通用户 → 补充/修正信息\"]\n CS1 --> CS2[\"写:修正记录 → 回到核验\"]\n\n PASS --> CHECK{\"信息完整?\"}\n CHECK -->|完整| FINANCE[\"写:推送财务返款提醒<br/>状态:待返款\"]\n CHECK -->|缺返款账号| TAG1[\"写:打标'xx产品待返款'<br/>提醒:自动通知用户补充<br/>状态:信息待补全\"]\n CHECK -->|缺评论截图/链接| TAG2[\"写:打标'xx产品待回评'<br/>提醒:自动通知用户补充<br/>状态:信息待补全\"]\n\n FINANCE --> PAY[\"查:付款凭证<br/>写:自动推送返款/礼品卡通知<br/>状态:已返款\"]\n PAY --> DONE[\"状态:回评流程走完\"]\n DONE --> TAG3[\"写:打标'xx产品已回评用户'<br/>推送:测评卡片(二次转化)\"]\n\n style SUBMIT fill:#e8f5e9\n style PASS fill:#c8e6c9\n style CS fill:#fff3e0\n style DONE fill:#e3f2fd\n```\n\n#### 9.3 IM 新测评流程\n\n```mermaid\nflowchart TB\n START[\"入口:用户收到测评卡片 → 提交测评信息\"] --> VFY[\"查:订单号是否撤销、是否退款<br/>查:真实人月度测评额度与累计真实提交评价\"]\n\n VFY -->|\"额度允许 + 订单有效\"| REG[\"写:登记进系统<br/>写:打标'xx产品测评单登记'<br/>状态:已登记\"]\n\n REG --> INFO{\"信息完整?\"}\n INFO -->|只有订单号<br/>缺返款账号+截图| TAG_A[\"写:打标'xx产品测评待返款'<br/>提醒:自动通知用户<br/>状态:待补全\"]\n INFO -->|只有截图+链接<br/>缺订单号+返款账号| TAG_B[\"写:打标'xx产品测评单待回评'<br/>提醒:自动通知用户<br/>状态:待补全\"]\n INFO -->|完整| COMP[\"状态:测评流程走完\"]\n\n COMP --> RECALC[\"查:重新计算 review 数量<br/>写review 数量更新\"]\n RECALC -->|\"累计真实提交评价 ≥ 12\"| LC[\"写:打标'长期测评人'<br/>推送:免评产品卡片\"]\n RECALC -->|\"≤ 12 review\"| NEXT[\"推送:当日测评计划对应卡片<br/>写:二次转化记录\"]\n\n style COMP fill:#c8e6c9\n style LC fill:#fff3e0\n```\n\n#### 9.4 IM 核心标签汇总\n\n| 分类 | 标签 | 触发时机 | 后续动作 |\n| --- | --- | --- | --- |\n| **用户层级** | 未参与过用户 (A) | 注册+绑定后首次识别 | 推送回评卡片 |\n| | 参与过用户 (B) | 已有回评/测评记录review < 12 | 优先催评 → 二次转化 |\n| | 长期测评人 (C) | review > 12 | 仅推送免评产品 |\n| **回评流程** | xx产品已回评用户 | 回评流程走完 | 推送测评卡片 |\n| | xx产品待回评用户 | 缺截图/链接 | 自动通知补全 |\n| | xx产品待返款 | 缺返款账号 | 自动通知补全 |\n| **测评流程** | xx产品测评单登记 | 订单核实通过 | 继续信息补全 |\n| | xx产品测评待返款用户 | 测评缺返款 | 自动通知补全 |\n| | xx产品测评单待回评 | 测评缺截图 | 自动通知补全 |\n| | xx产品测评单 | 测评流程走完 | review重算 |\n| **免评流程** | xx产品的免评 | 长期测评人参与免评单 | 不再推回评/测评 |\n\n#### 9.5 IM 推送动作与流转动作\n\n| 动作类型 | 动作 | 说明 |\n| --- | --- | --- |\n| **推送** | 回评卡片 | A类用户首次推送 |\n| | 测评卡片 | B类二次转化 / A类设备在黑名单 |\n| | 免评产品卡片 | C类用户 / 黑名单命中用户 |\n| | 催评消息 | B类优先催评 / 紧急催评 |\n| | 返款/礼品卡通知 | 财务有凭证后推送 |\n| **流转** | 推送客服 | 订单号不符合 / 异常 |\n| | 推送财务 | 订单登记完成后 |\n| | 自动打标 | 各流程节点完成时 |\n| | 二次转化 | 回评完成 → 推送测评卡片 |\n\n---\n\n### 10. 渠道二EDM 邮件推送专属流程\n\n#### 10.1 流程图\n\n```mermaid\nflowchart TB\n START[\"入口计划已批准进入EDM执行拆解\"] --> POOL[\"筛选EDM目标用户池\"]\n\n POOL --> COND{\"查:用户条件\"}\n COND -->|\"非APP用户\"| NON[\"进入EDM队列\"]\n COND -->|\"APP低活跃\"| LOW[\"查IM频控通过后进入EDM队列\"]\n COND -->|\"APP活跃\"| SKIP[\"拦截跳过EDM走IM/APP\"]\n\n NON --> PRECHK[\"推送前检查\"]\n LOW --> PRECHK\n\n PRECHK --> C1[\"查:身份——是否有有效邮箱\"]\n PRECHK --> C2[\"查:风险——邮箱是否命中黑名单\"]\n PRECHK --> C3[\"查:退订——是否已退订/硬退信\"]\n PRECHK --> C4[\"查资格——OA是否有资格\"]\n PRECHK --> C5[\"查:国家——站点与邮箱类型匹配\"]\n\n C1 & C2 & C3 & C4 & C5 -->|全部通过| BEHAVIOR[\"行为筛选\"]\n C1 & C2 & C3 & C4 & C5 -->|任一不通过| EXCLUDE[\"写:排除原因<br/>拦截:不发送\"]\n\n BEHAVIOR --> B1[\"查:最近打开时间、总打开次数\"]\n BEHAVIOR --> B2[\"查最近3/5次是否连续0打开\"]\n BEHAVIOR --> B3[\"查:最近回复时间、回复后又发送数\"]\n BEHAVIOR --> B4[\"查:是否点击评论链接但未回复\"]\n BEHAVIOR --> B5[\"查:单月收信次数、各邮件类型发送次数\"]\n\n B1 & B2 & B3 & B4 & B5 --> RHYTHM{\"节奏判断\"}\n RHYTHM -->|适合触达| SEND[\"发送EDM<br/>写:发送记录<br/>状态:已发送\"]\n RHYTHM -->|需降频| DELAY[\"写:延后标记<br/>状态:观察中\"]\n RHYTHM -->|不适合| SWITCH[\"切换其他渠道或排除\"]\n\n SEND --> TRACK[\"追踪回收\"]\n TRACK --> T1[\"送达 → 写:送达时间\"]\n T1 --> T2[\"打开 → 写:打开时间、打开次数+1\"]\n T2 --> T3[\"点击 → 写:点击时间、点击目标\"]\n T3 --> T4[\"跳转至APP下载页/产品页\"]\n T4 --> RESULT{\"用户行为\"}\n RESULT -->|\"下载并注册APP\"| TO_IM[\"写:用户渠道升级<br/>后续走IM主流程\"]\n RESULT -->|\"直接回复邮件\"| TO_CS[\"写:生成客服工单<br/>走客服执行流程\"]\n RESULT -->|\"未响应\"| RETRY[\"写:进入再触达队列<br/>(遵循频控间隔)\"]\n RESULT -->|\"退订\"| UNSUB[\"写:退订标记<br/>拦截:该渠道永久排除\"]\n\n SEND --> METRICS[\"写EDM指标<br/>发送数/送达率/打开率/点击率/回复率/转化数/退订数\"]\n\n style EXCLUDE fill:#fce4ec\n style UNSUB fill:#fce4ec\n style TO_IM fill:#e3f2fd\n style TO_CS fill:#fff3e0\n```\n\n#### 10.2 EDM 专属行为指标\n\n| 字段组 | 具体指标 | 用途 |\n| --- | --- | --- |\n| **打开行为** | 最近打开时间、总打开次数、最近3/5次0打开 | 判断活跃度 → 决定是否继续发 |\n| **回复行为** | 最近回复时间、回复后又发送封数 | 判断兴趣度 → 决定触达节奏 |\n| **点击行为** | 是否点击评论链接、点击后未回复时长 | 判断意向 → 决定是否追加触达 |\n| **触达频率** | 单月收信次数、各邮件类型发送次数 | 频控 → 防止疲劳 |\n| **邮件属性** | 邮件类型、邮箱后缀标签、国家站点 | 匹配 → 确定发送内容 |\n| **排除项** | 风险用户、黑名单、退订、硬退信、OA无资格 | 硬过滤 → 不进池 |\n\n#### 10.3 EDM vs IM 关键差异\n\n| 维度 | IM | EDM |\n| --- | --- | --- |\n| 用户身份强度 | 强JOYHUB ID + 设备 + 订单绑定) | 弱仅邮箱可能无JOYHUB ID |\n| 风险识别能力 | 高(多维度交叉) | 低(缺设备/注册邮箱等维度) |\n| 转化路径 | 直接提交 → 核验 → 返款 | 引导注册APP → 再进入IM链路 |\n| 退订机制 | 社区屏蔽/消息免打扰 | 邮件退订链接 + 硬退信 |\n| 频控周期 | 按日/按类目 | 按周/按月 |\n| 行为信号 | 绑定/活跃/点击/回复/标签 | 打开/点击/回复/退订/连续0打开 |\n\n---\n\n### 11. 渠道三APP Push 专属流程\n\n#### 11.1 流程图\n\n```mermaid\nflowchart TB\n START[\"触发源\"] --> T1[\"用户绑定新玩具\"]\n START --> T2[\"用户长期未活跃7天+\"]\n START --> T3[\"测评/回评计划到期\"]\n START --> T4[\"Listing健康紧急\"]\n START --> T5[\"活动/促销通知\"]\n\n T1 & T2 & T3 & T4 & T5 --> FILTER[\"查:共用能力过滤\"]\n\n FILTER --> F1[\"查身份——JOYHUB ID + 设备在线\"]\n FILTER --> F2[\"查:风险——黑名单 + 关联检测\"]\n FILTER --> F3[\"查频控——当日Push次数 + 用户通知设置\"]\n FILTER --> F4[\"查:标签——匹配推送策略\"]\n\n F1 & F2 & F3 & F4 -->|通过| PUSH[\"发送APP Push<br/>写:推送记录<br/>状态:已发送\"]\n F1 & F2 & F3 & F4 -->|不通过| SKIP[\"写:跳过原因<br/>状态:已跳过\"]\n\n PUSH --> USER{\"用户响应\"}\n USER -->|\"点击打开\"| IN_APP[\"进入APP → 落地页\"]\n USER -->|\"忽略/关闭\"| NOOP[\"写:曝光记录<br/>拦截:短期内不重复推\"]\n USER -->|\"卸载/禁用通知\"| UNINSTALL[\"写:不可再推送标记<br/>降级转入EDM候选池\"]\n\n IN_APP --> ACT{\"APP内动作\"}\n ACT -->|\"提交回评/测评\"| IM_FLOW[\"走IM提交核验流程§9.2\"]\n ACT -->|\"联系客服\"| CS_FLOW[\"生成客服工单§12\"]\n ACT -->|\"仅浏览\"| TAG[\"写:记录行为,更新活跃标签\"]\n\n style IN_APP fill:#e3f2fd\n style UNINSTALL fill:#fce4ec\n```\n\n#### 11.2 APP Push 与 IM 的分工\n\n| 场景 | 用 APP Push | 用 IM |\n| --- | --- | --- |\n| 新绑定玩具 → 引导测评 | - | 推送回评/测评卡片 |\n| 用户7天未活跃 | 推送召回通知 | - |\n| 测评计划到期提醒 | - | 推送催评消息 |\n| Listing 紧急 | 推送紧急通知 | 推送紧急催评卡片 |\n| 返款已到账 | 推送到账通知 | - |\n| 活动/促销 | 推送活动通知 | - |\n\n#### 11.3 APP 必查字段\n\n| 字段组 | 内容 |\n| --- | --- |\n| 用户资料 | 注册邮箱、JOYHUB ID、国家、语言 |\n| 设备上下文 | 设备号、设备型号/类型、APP版本、系统版本 |\n| 产品关系 | 绑定玩具、绑定时间、目标产品关系 |\n| 行为数据 | 活跃、打开、点击、回复、站内浏览、广告互动 |\n\n---\n\n### 12. 渠道四TEL 电话专属流程\n\n#### 12.1 流程图\n\n```mermaid\nflowchart TB\n START[\"触发电话任务\"] --> S1[\"用户答应配合但超时未提交\"]\n START --> S2[\"高价值用户需深度跟进\"]\n START --> S3[\"复杂售后无法文字解决\"]\n START --> S4[\"IM/EDM多次触达无响应\"]\n START --> S5[\"紧急Listing需人工沟通\"]\n START --> S6[\"Amazon页面/说明书来电\"]\n START --> S7[\"计划生成的外呼任务\"]\n\n S1 & S2 & S3 & S4 & S5 & S6 & S7 --> TICKET[\"写:生成电话类客服工单<br/>状态:待分配\"]\n\n TICKET --> PREPARE[\"拨打前准备(必须)\"]\n PREPARE --> P1[\"查:用户完整画像<br/>(身份/订单/历史/标签/风险)\"]\n PREPARE --> P2[\"查:风险状态<br/>拦截:强关联命中 → 暂停拨打 → 先复核\"]\n PREPARE --> P3[\"查:历史沟通记录<br/>(避免重复询问)\"]\n PREPARE --> P4[\"写:准备话术和问题清单\"]\n\n P1 & P2 & P3 & P4 --> CONTACT[\"客服电话联系用户<br/>写:拨打记录<br/>状态:处理中\"]\n\n CONTACT --> RESULT{\"通话结果\"}\n RESULT -->|\"接通-售后问题\"| AFTERSALE[\"先解决售后<br/>查:订单/产品/凭证<br/>写:处理方案<br/>状态:售后处理中\"]\n RESULT -->|\"接通-直接配合\"| COOP[\"确认评价提交时间<br/>写:登记答应配合<br/>状态:答应配合\"]\n RESULT -->|\"接通-拒绝\"| REJECT[\"写:记录拒绝原因<br/>状态:已关闭\"]\n RESULT -->|\"接通-疑似诈骗\"| FRAUD[\"创建诈骗事件<br/>写:诈骗记录<br/>转风险链路§6\"]\n RESULT -->|\"未接通\"| RETRY[\"写:拨打次数+1<br/>提醒:安排重试\"]\n\n AFTERSALE --> SAT{\"是否解决/满意?\"}\n SAT -->|是| INVITE[\"引导回评/邀请测评\"]\n SAT -->|否| ESCALATE[\"升级处理 → 转组长/负责人\"]\n\n INVITE --> FOLLOW[\"写:进入答应配合跟进<br/>状态:待提醒\"]\n COOP --> FOLLOW\n FOLLOW --> UPDATE[\"写:更新工单 + 用户标签\"]\n\n RETRY --> DECIDE{\"重试策略\"}\n DECIDE -->|\"< 3次\"| CONTACT\n DECIDE -->|\"≥ 3次未接通\"| DOWNGRADE[\"写降级至EDM/放弃<br/>状态:待关闭\"]\n\n CONTACT --> RECORD[\"写:通话记录<br/>来电时间/来源/联系方式/订单号<br/>问题类型/描述/处理方案<br/>是否解决/是否邀请测评/用户是否接受\"]\n\n style CONTACT fill:#fff3e0,stroke:#ef6c00\n style FRAUD fill:#fce4ec,stroke:#c62828\n style AFTERSALE fill:#e3f2fd\n```\n\n#### 12.2 TEL 必填记录字段\n\n| 类别 | 字段 | 涉密 |\n| --- | --- | --- |\n| 来电基础 | 来电时间、来源Amazon页/说明书/外呼)、客服、联系方式 | - |\n| 订单信息 | Amazon订单号、产品型号/款式/颜色、购买时间 | 订单号涉密 |\n| 问题信息 | 问题类型、问题描述、图片/视频凭证 | - |\n| 处理信息 | 处理方案、是否解决、是否需要后续跟进 | - |\n| 评价相关 | 是否邀请回评/测评、用户是否接受、是否涉及差评 | - |\n| 拨打统计 | 拨打次数、通话时长、接通状态 | - |\n\n---\n\n### 13. 渠道五:客服工单执行流程\n\n#### 13.1 流程图\n\n```mermaid\nflowchart TB\n A[\"入口:用户消息 / 推送转人工 / 电话后续 / 风险触发\"] --> B[\"写:生成工单<br/>状态:待分配\"]\n\n B --> C[\"查:班次、在线状态、当前负载、最大工单数<br/>写:自动分配到客服组<br/>状态:已分配\"]\n\n C --> D[\"客服组长分派到组员<br/>状态:处理中\"]\n\n D --> E[\"查:展示用户上下文卡<br/>(身份/历史/风险/设备/触达)\"]\n\n E --> F[\"客服开始处理\"]\n\n F --> G{\"处理结果\"}\n G -->|\"等待用户回复\"| H[\"状态:等待用户<br/>提醒:超时提醒机制\"]\n G -->|\"等待内部协同\"| I[\"状态:等待内部<br/>提醒:超时升级\"]\n G -->|\"用户答应配合\"| J[\"写:生成跟进任务<br/>状态:答应配合<br/>进入答应配合状态机\"]\n G -->|\"疑似诈骗\"| K[\"写:诈骗疑似标记<br/>提醒:组长/负责人复核<br/>转风险链路§6\"]\n G -->|\"问题已解决\"| L[\"写:解决记录<br/>状态:已解决\"]\n\n H --> F\n I --> F\n\n J --> M[\"提醒/再联系/等待提交\"]\n M --> N[\"用户提交评价或反馈<br/>状态:已提交评价/已提交反馈\"]\n\n K --> P[\"组长/负责人复核\"]\n P --> Q{\"复核结论\"}\n Q -->|确认诈骗| R[\"转风险链路 → 同步黑名单\"]\n Q -->|退回继续处理| F\n\n L --> S[\"写:关闭工单<br/>状态:已关闭\"]\n```\n\n#### 13.2 三套并行状态\n\n| 状态体系 | 典型状态 | 说明 |\n| --- | --- | --- |\n| **工单状态** | 待分配 → 已分配 → 处理中 → 等待用户/等待内部 → 已解决 / 疑似诈骗 → 已关闭 | 工单生命周期 |\n| **答应配合状态** | 已答应配合 → 待分配负责人 → 待提醒 → 等待提交 → 已提交评价/已提交反馈 → 超时 → 需再次联系 → 已关闭 | 防止承诺用户流失 |\n| **风险状态** | 无异常 → 弱关联高风险 → 强关联高风险 → 疑似诈骗 → 已确认诈骗 → 已同步黑名单 | 风险独立跟踪 |\n\n---\n\n### 14. 客服管理支撑流程\n\n#### 14.1 流程图\n\n```mermaid\nflowchart LR\n A[\"排班设置\"] --> B[\"在线客服池\"]\n C[\"出勤记录\"] --> B\n B --> D[\"工单自动分配<br/>查:在线状态/排班/当前负载/最大工单数\"]\n D --> E[\"回复效率统计\"]\n D --> F[\"转化统计\"]\n F --> G[\"目标完成统计\"]\n E --> H[\"主管看板\"]\n F --> H\n G --> H\n```\n\n#### 14.2 管理指标\n\n| 模块 | 指标 |\n| --- | --- |\n| **出勤** | 应出勤、实际出勤、出勤率、迟到、早退、请假、缺勤 |\n| **回复效率** | 回复用户数、处理工单数、发送消息数、首次回复时长(平均/中位数/最大/最小) |\n| **转化** | RSO回评登记订单数、RDO测评登记订单数、获取评价数、评价完成率 |\n| **目标** | 月目标、当前完成、完成率、历史趋势 |\n\n---\n\n### 15. 评价完成流程\n\n#### 15.1 流程图\n\n```mermaid\nflowchart TB\n A[\"用户提交评价\"] --> B[\"写:记录真实提交事实<br/>状态:已提交待核验\"]\n B --> C[\"写:更新真实人累计评价额度(+1<br/>提醒接近12时预警\"]\n\n C --> D{\"查Amazon是否展示 / 是否可核验\"}\n D -->|\"展示或可核验\"| E[\"写:计入计划完成<br/>状态:已确认展示\"]\n D -->|\"未展示 / 暂不可核验\"| F[\"写:保留已提交事实<br/>状态:未展示待观察\"]\n\n E --> G[\"写更新ASIN健康与计划完成度\"]\n F --> H[\"进入异常观察队列<br/>提醒:定期复查\"]\n\n G --> I[\"结果回流:更新经营层数据\"]\n```\n\n#### 15.2 必须拆开的两个事实\n\n| 事实 | 是否计入累计12额度 | 是否计入计划完成 | 计数时点 |\n| --- | --- | --- | --- |\n| 用户真实提交评价 | **是** | 还不一定 | 提交时立即计数 |\n| Amazon 展示确认 | 已在上一步计过 | **是** | 展示确认时 |\n\n---\n\n### 16. 渠道六KOC/KOL 协作专属流程(免评核心通道)\n\n#### 16.1 流程图\n\n```mermaid\nflowchart TB\n START[\"入口:免评计划 / 推新计划已批准\"] --> PLAN[\"查:计划参数<br/>写拆解KOC/KOL执行方案\"]\n\n PLAN --> STEP1[\"匹配合作对象\"]\n STEP1 --> S1A[\"查:按国家/平台/粉丝量/历史效果筛选\"]\n STEP1 --> S1B[\"查按产品类目匹配KOC/KOL专长\"]\n STEP1 --> S1C[\"查:合作对象风险(历史纠纷/违约)<br/>提醒:有风险记录时提示\"]\n\n S1A & S1B & S1C --> STEP2[\"写分配Code/素材/内容Brief\"]\n STEP2 --> STEP3[\"KOC/KOL内容发布\"]\n\n STEP3 --> TRACK[\"跟踪执行结果\"]\n TRACK --> T1[\"查:内容发布链接\"]\n TRACK --> T2[\"查:点击/跳转数据\"]\n TRACK --> T3[\"查Code使用量\"]\n TRACK --> T4[\"查:带货订单\"]\n TRACK --> T5[\"查:转化销量\"]\n TRACK --> T6[\"查Listing权重变化\"]\n\n T1 & T2 & T3 & T4 & T5 & T6 --> SYNC[\"从JOYCOLLAB同步数据至USER<br/>写:同步记录<br/>提醒:同步失败时告警\"]\n\n SYNC --> EVAL{\"执行评估\"}\n EVAL -->|\"达标\"| DONE[\"写:结果回流<br/>更新ASIN健康/计划完成度<br/>状态:已完成\"]\n EVAL -->|\"未达标\"| ADJUST[\"调整策略<br/>写:调整记录<br/>更换KOC/调整素材/追加Code\"]\n\n SYNC --> FINANCE[\"财务侧<br/>查:提成计算/返点核算/提款记录<br/>提醒:财务数据独立权限\"]\n```\n\n#### 16.2 KOC/KOL 与评价型渠道的本质差异\n\n| 维度 | 评价型IM/EDM/APP/TEL | KOC/KOL |\n| --- | --- | --- |\n| 执行主体 | 系统 + 客服 | 外部KOC/KOL + 运营协同 |\n| 终点 | 用户提交评价 | 内容发布/Code使用/带货销量/权重 |\n| 用户关系 | 平台 ↔ 买家 | 品牌 ↔ 达人 ↔ 达人粉丝 |\n| 数据源 | USER系统内部 | JOYCOLLAB同步 |\n| 财务 | 返款(固定金额) | 提成+返点(按效果) |\n| 风险关注 | 诈骗/双重退款 | 合作纠纷/违约/虚假流量 |\n\n#### 16.3 IM/EDM/APP 在免评中的协同角色\n\n| 协同动作 | 渠道 | 说明 |\n| --- | --- | --- |\n| KOC内容二次分发 | IM/APP | 将KOC发布的优质内容推送给站内用户 |\n| 免评Code触达 | IM/EDM | 将免评Code分发给符合条件的站内用户 |\n| 活动引流 | APP Push | 推送活动通知引导用户进入KOC内容页 |\n| 结果通知 | IM/APP | 通知用户Code到账、订单确认 |\n\n#### 16.4 免评核心结果组\n\n| 结果组 | 跟踪内容 |\n| --- | --- |\n| 内容 | 发布状态、链接、发布时间、互动数据 |\n| 引流 | 点击量、跳转量、Code使用量 |\n| 成交 | 订单数、转化量、销量 |\n| 经营 | 权重变化、ASIN健康变化、品牌搜索变化 |\n\n---\n\n### 17. 店铺紧急催评流程IM渠道专属子流程\n\n```mermaid\nflowchart TB\n TRIGGER[\"触发条件<br/>查:店铺当日掉评/差评/需紧急拿好评稳评分<br/>状态:紧急触发\"] --> CALC[\"计算推送量<br/>目标好评数 ÷ 2% = 需触达用户数<br/>写:推送方案\"]\n\n CALC --> EXEC[\"执行\"]\n EXEC --> E1[\"查:筛选可触达用户<br/>写:推送紧急催评消息\"]\n EXEC --> E2[\"查:优先触达高完成率用户\"]\n EXEC --> E3[\"查:持续跟踪回评提交状态\"]\n\n E1 & E2 & E3 --> RESULT{\"结果\"}\n RESULT -->|\"已提交好评\"| R1[\"写:更新已回评/测评完成<br/>状态:已完成\"]\n RESULT -->|\"未提交\"| R2[\"写:保留在待催评池<br/>状态:待催评\"]\n RESULT -->|\"异常\"| R3[\"转人工:推送客服跟进<br/>状态:转客服\"]\n\n style TRIGGER fill:#fce4ec,stroke:#c62828\n```\n\n---\n\n## 第三部分:渠道交叉与协同规则\n\n### 18. 渠道优先级路由\n\n```mermaid\nflowchart LR\n USER_IN[\"同一个用户\"] --> D1{\"查:用户状态\"}\n D1 -->|\"APP注册 + 活跃 + 已绑定\"| IM[\"IM 优先\"]\n D1 -->|\"APP注册 + 低活跃\"| APP_PUSH[\"APP Push优先 + IM补充\"]\n D1 -->|\"未注册APP\"| EDM[\"EDM优先 → 引导注册后转IM\"]\n D1 -->|\"高价值 + 多次无响应\"| TEL[\"TEL人工\"]\n D1 -->|\"长期测评人C类\"| IM_FREE[\"IM免评卡片 + KOC/KOL协同\"]\n\n style IM fill:#e3f2fd\n style EDM fill:#fff3e0\n style TEL fill:#fce4ec\n```\n\n### 19. 渠道间去重规则\n\n| 规则 | 说明 |\n| --- | --- |\n| 同一计划同一用户 | 不重复通过多渠道路由,优先走最高优先级渠道 |\n| 用户已在客服工单中 | 暂停自动触达,等待工单关闭后再判断 |\n| 用户已提交评价(待核验) | 所有渠道暂停催评,等待核验结果 |\n| 用户已退订某渠道 | 该渠道永久排除,不影响其他渠道 |\n| 用户命中强关联风险 | **所有渠道暂停自动触达**,进入人工复核 |\n| 用户命中弱关联风险 | 降频 + 提示后继续,但需人工关注 |\n\n### 20. 用户状态 × 渠道可用性矩阵\n\n| 用户状态 | IM | EDM | APP Push | TEL | KOC/KOL |\n| --- | --- | --- | --- | --- | --- |\n| APP活跃 + 已绑定 | **首选** | 不送 | 补充 | - | - |\n| APP活跃 + 未绑定 | 引导绑定 | - | 活动通知 | - | - |\n| APP低活跃 | 降频 | 补充 | **召回** | - | - |\n| 未注册APP | - | **首选** | - | 高价值时 | - |\n| 已答应配合 | 提醒 | - | 到期提醒 | **超时拨打** | - |\n| 长期测评人 (C) | **仅免评** | - | - | - | 可协同 |\n| 黑名单/强关联 | **全暂停** | **全暂停** | **全暂停** | **需复核** | **暂停** |\n| 弱关联风险 | 降频+提示 | 降频+提示 | 降频+提示 | 提示后执行 | 提示 |\n| 累计接近12 | 预警+人工 | 预警+人工 | 预警+人工 | 可正常服务;涉及普通测评邀请时需人工复核 | - |\n| 累计已满12 | 仅免评 | 仅免评 | 仅免评 | 可正常服务;不得绕过普通测评限制 | 可协同 |\n\n---\n\n## 第四部分:第三步数据对象建议\n\n### 21. 第三步建议优先产出的数据对象\n\n| 优先级 | 对象 | 来源能力/渠道 |\n| --- | --- | --- |\n| **P0** | `person_profiles`(真实人) | §2 真实人识别 |\n| **P0** | `person_identity_links`(身份关联) | §2 真实人识别 |\n| **P0** | `contact_context_snapshots`(用户上下文快照) | §2 用户上下文卡 |\n| **P0** | `person_quota_ledgers`(额度台账) | §4 额度台账 |\n| **P0** | `quota_reservations`(额度预占) | §4 额度台账 |\n| **P0** | `risk_signals`(风险信号) | §6 风险判断 |\n| **P0** | `risk_cases`(风险事件) | §6 风险判断 |\n| **P0** | `blacklist_entities`(黑名单实体) | §6 风险判断 |\n| **P0** | `audience_snapshots`(人群快照) | §3 人群生成 |\n| **P0** | `audience_exclusions`(人群排除记录) | §3 人群生成 |\n| **P0** | `channel_route_decisions`(渠道路由决策) | §18 渠道优先级 |\n| **P0** | `channel_dedup_records`(渠道去重记录) | §19 渠道间去重 |\n| **P1** | `im_interaction_records`IM交互记录 | §9 IM |\n| **P1** | `im_flow_tags`IM流程标签 | §9 IM |\n| **P1** | `edm_message_events`EDM事件 | §10 EDM |\n| **P1** | `edm_user_behavior_profiles`EDM用户行为画像 | §10 EDM |\n| **P1** | `app_touch_events`APP触达事件 | §11 APP |\n| **P1** | `tel_call_records`TEL通话记录 | §12 TEL |\n| **P1** | `support_tickets`(客服工单) | §13 客服 |\n| **P1** | `support_followups`(答应配合跟进) | §13 客服 |\n| **P1** | `support_assignment_logs`(工单分配日志) | §13 客服 |\n| **P1** | `review_submission_records`(评价提交记录) | §15 评价完成 |\n| **P1** | `review_display_checks`(评价展示核验) | §15 评价完成 |\n| **P1** | `exemption_plan_tasks`(免评计划任务) | §16 KOC/KOL |\n| **P1** | `creator_content_records`KOC内容记录 | §16 KOC/KOL |\n| **P1** | `amazon_refund_records`Amazon退款记录 | §6 双重退款 |\n| **P1** | `oa_refund_records`OA返款记录 | §6 双重退款 |\n| **P1** | `refund_match_results`(退款比对结果) | §6 双重退款 |\n| **P2** | `attendance_records`(出勤记录) | §14 客服管理 |\n| **P2** | `shift_schedules`(排班表) | §14 客服管理 |\n| **P2** | `support_goal_records`(客服目标) | §14 客服管理 |\n| **P2** | `support_performance_snapshots`(绩效快照) | §14 客服管理 |\n| **P2** | `interaction_audit_logs`(互动审计日志) | §8 审计 |\n| **P2** | `manual_review_tasks`(人工复核任务) | §5/§6 复检与风险 |\n\n---\n\n### 22. 与基线 v1.2 的关系\n\n本文件是基线 v1.2 的下游细化产物:\n\n| 基线 v1.2 章节 | 本文件对应 |\n| --- | --- |\n| §6.1 主动触达支线 | §9 IM、§10 EDM、§11 APP Push |\n| §6.2 免评执行支线 | §16 KOC/KOL + §16.3 协同角色 |\n| §6.3 被动售后与TEL支线 | §12 TEL |\n| §6.4 风险/诈骗拦截支线 | §6 风险判断与黑名单 |\n| §6.5 客服工单与客服管理支线 | §13 客服工单、§14 客服管理 |\n| §7 真实人识别、用户上下文与额度规则 | §2 真实人识别、§4 额度台账 |\n| §8 渠道专属补充事实 | §9-§16 各渠道专属流程 |\n| §11 第二步新入口 | 本文件整体 |\n\n---\n\n### 23. 本版结论\n\nv2.2 吸收了前序文档中的以下优势:\n\n1. **额度体系**测评4/免评4/累计12作为独立共用能力含台账/预占/预警/拦截\n2. **画像拆解**为 7 组字段 × 3 类用途\n3. **节点规则表**统一用 查/写/状态/提醒/拦截/转人工 格式\n4. **EDM 专属行为指标**3/5次0打开、点击未回复时长、单月收信次数\n5. **客服管理支撑流**(排班/出勤/绩效/目标)\n6. **评价完成流程**中拆开\"提交即计12\"vs\"展示才计完成\"\n7. **P0/P1/P2 数据对象**优先级\n\n同时保留了我版的核心优势\n\n1. **IM A/B/C 三层用户完整流转**(提交核验、测评流程、标签汇总、推送/流转动作表)\n2. **渠道交叉与协同规则**(优先级路由、去重规则、用户状态 × 渠道可用性矩阵)\n3. **KOC/KOL JOYCOLLAB 同步链路**及免评协同角色表\n4. **TEL 拨打前准备五步 + 重试策略**\n5. **店铺紧急催评**独立子流程\n6. **三套并行客服状态**(工单/答应配合/风险)\n\n并完成以下收口\n\n1. 将 IM 里残留的 `Amazon 账号 < / > 12 review` 全部改为 `真实人累计真实提交评价` 口径\n2. 明确 TEL 可继续服务,但不能绕开普通测评额度限制\n3. 补齐渠道路由、渠道去重、IM 流程标签和 EDM 行为画像对应的数据对象\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260517_USER评价业务闭环主流程与后续工作基线_v1.2",
"type": "document",
"name": "USER 评价业务闭环主流程与后续工作基线 v1.2",
"filePath": "05_需求文档/20260517_USER评价业务闭环主流程与后续工作基线_v1.2.md",
"summary": "USER 评价业务闭环主流程与后续工作基线 v1.2 文件信息 文件名称: 20260517 USER评价业务闭环主流程与后续工作基线 v1.2.md 项目路径: C:\\XCODE\\USER 当前版本: v1.2 最近更新: 2026 05 17 前一版本: 20260517 USER评价业务闭环主流程与后续工作基线 v1.1.md 文件目的:在既有销售到评",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# USER 评价业务闭环主流程与后续工作基线 v1.2\n\n## 文件信息\n\n- 文件名称:`20260517_USER评价业务闭环主流程与后续工作基线_v1.2.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 当前版本:`v1.2`\n- 最近更新:`2026-05-17`\n- 前一版本:`20260517_USER评价业务闭环主流程与后续工作基线_v1.1.md`\n- 文件目的:在既有销售到评价闭环基线上,补入真实人识别、测评 / 免评额度、用户历史上下文、IM / EDM / TEL / 客服细化口径,作为新版第二步和后续数据流设计的统一依据。\n- 适用范围:当前阶段的 Amazon 业务闭环设计;如后续扩展到独立站或非 Amazon 评价体系,需要在本文件基础上另行增补。\n- 使用方式:下一次继续本项目时,先读取本文件,再读取 `20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2.md`,不要再从旧版页面链路重新推导业务主干。\n\n---\n\n## 版本记录\n\n| 版本 | 日期 | 说明 |\n| --- | --- | --- |\n| v1 | 2026-05-17 | 首次固化销售到评价完成的 USER 业务闭环主流程 |\n| v1.1 | 2026-05-17 | 将免评改为独立闭环;明确每次有效互动都要重新做身份与风险判断;明确当前版本不单列商家角色 |\n| v1.2 | 2026-05-17 | 补入用户历史与设备上下文、真实人级 `测评4 / 免评4 / 累计真实提交评价12` 规则、IM / EDM / TEL / 客服新增细节,并把第二步入口改为“共用能力 + 渠道专属流程” |\n\n---\n\n## 1. 已确认目标\n\n1. 系统要支持 USER 部门工作,而不是只做一个回评记录工具。\n2. 业务流必须从“销售发生 / 需求形成”开始,而不是从“推送”开始。\n3. Amazon 运营既可以人工提需求,系统也可以因 Listing 健康或评价缺口自动触发需求。\n4. 用户运营是“需求评估 + 计划调度中心”,负责把需求转成可执行计划并跟踪结果。\n5. 计划类型必须正式保留:\n - 推新计划\n - 回评计划\n - 免评计划\n6. `免评计划` 不是边缘例外,而是需要正式保留的关键业务类型;其与 KOC / KOL、社媒带货、站外流量和 Amazon 权重有关。\n7. 用户提交评价与系统确认评价完成必须拆成两个节点:\n - 用户已真实提交评价\n - Amazon 已展示 / 系统已确认计入计划完成\n8. `真实人` 是后续额度、风险、历史和用户画像的核心对象,不应只围绕某个 JOYHUB ID、邮箱或 Amazon 账号看用户。\n9. 已确认的额度规则为:\n - 同一真实人每月最多参与 `4 次测评`\n - 同一真实人每月最多参与 `4 次免评`\n - 同一真实人累计最多计入 `12 个真实提交的评价`\n10. `12` 的计数时点是 `用户真实提交评价`,不是 `Amazon 展示评价`。\n11. 每次有效互动都要重新做身份、历史、额度和风险判断;主动推送后的回复也不例外。\n12. 客服接入时必须能快速看到用户历史、订单历史、设备上下文、既往风险和当前提醒,而不是只看到当前对话。\n13. 后续系统设计顺序已经确定:\n 1. 先定业务流\n 2. 再做点击操作模拟\n 3. 最后根据业务需求整合现有数据,形成新的数据流和中间表需求\n\n---\n\n## 2. 当前边界与资料依据\n\n### 2.1 当前纳入范围\n\n- Amazon 业务\n- 销售到评价闭环\n- 推新、回评、免评\n- IM、EDM、APP、TEL、KOC / KOL\n- 售后接入\n- 客服执行与客服管理支撑\n- 黑名单与诈骗风险\n- ASIN 健康回流\n\n### 2.2 当前不作为本版主流程展开的内容\n\n- 独立站全链路\n- 完整 BI / 财务 / ROI 系统\n- 完整 KOC / KOL 结算系统\n- 所有历史后台页面逐页重构\n- 数据库最终物理设计\n\n### 2.3 资料依据\n\n本文件基于以下材料整理\n\n1. `C:\\XCODE\\USER\\评价业务流闭环项目架构文档_v0.8.docx`\n2. `C:\\XCODE\\USER\\docs\\evaluation-business-architecture.md`\n3. `C:\\XCODE\\USER\\docs\\project-phase-one-plan.md`\n4. `C:\\XCODE\\USER\\output\\docs\\20260503_USER后台ERP一期功能与页面设计_v4.md`\n5. `C:\\XCODE\\USER\\output\\docs\\20260503_USER后台ERP自动推送与计划状态机_v4.md`\n6. `C:\\XCODE\\USER\\output\\docs\\20260503_USER后台ERP一期页面原型说明_v4.md`\n7. `C:\\XCODE\\USER\\output\\docs\\20260503_USER后台ERP_MVP角色首页UI规划_v1.md`\n8. `C:\\tcode\\飞书\\飞书聊天记录库\\cloud_files` 中当前主原型 HTML 与 `客服执行.html`\n9. `C:\\Users\\wu_zh\\Downloads\\20260407-法国诈骗问题(已扩散美国).docx`\n10. `C:\\Users\\wu_zh\\Desktop\\表头.xlsx`\n11. `C:\\Users\\wu_zh\\Downloads\\IM 推送业务流.mm`\n12. `C:\\Users\\wu_zh\\Downloads\\后台回评工作流对接事项.docx`\n13. `C:\\Users\\wu_zh\\Downloads\\客服相关模块.docx`\n14. `C:\\Users\\wu_zh\\Downloads\\电话业务流程知识库.docx`\n15. 用户在当前对话中补充确认的业务规则\n\n若历史资料与当前对话确认口径冲突以当前对话中最新确认口径为准。\n\n---\n\n## 3. 角色与职责\n\n| 角色 | 核心职责 |\n| --- | --- |\n| Amazon 运营 | 依据销售、ASIN、评价目标提出推新 / 回评 / 免评需求 |\n| Amazon 运营总监 | 审批相关计划,确认优先级与业务必要性 |\n| 品牌运营 | 负责品牌推广、站外节奏和与用户运营 / 内容运营协同 |\n| 内容运营 | 承接社区广告、APP 广告位、内容流量等侧向支持 |\n| 用户运营 | 评估需求、生成计划、分配资源、协调渠道、跟踪结果 |\n| 用户运营负责人 / 组长 | 复核计划、分配组员、处理重点风险和异常 |\n| 菲律宾客服负责人 | 关注工单压力、分配客服组、处理升级工单、查看绩效 |\n| 菲律宾客服组长 | 分配组内工单、复核升级、控制逾期和重点工单 |\n| 菲律宾客服组员 | 实际接待、电话沟通、记录、回复、回访、提交疑似诈骗 |\n| 风险 / 黑名单相关人员 | 接收诈骗疑似、复核、同步黑名单、维护风险口径 |\n| KOC / KOL 运营 | 承接站外带货、合作关系、内容和导购协同 |\n\n当前版本不单列“商家 / 商家运营”角色。这里的“商家”如出现,均按 Amazon 卖家侧语义理解,由 Amazon 运营承接;品牌商当前也只纳入 Amazon 内评价相关协同。\n\n---\n\n## 4. 总体业务结构\n\n### 4.1 主流程\n\n```mermaid\nflowchart LR\n A[\"销售发生 / ASIN销售数据形成\"] --> B[\"需求触发\"]\n B --> B1[\"Amazon运营人工提需求\"]\n B --> B2[\"系统按评价缺口或Listing健康自动触发\"]\n B1 --> C[\"用户运营评估需求\"]\n B2 --> C\n C --> D[\"形成业务计划\"]\n D --> D1[\"推新计划\"]\n D --> D2[\"回评计划\"]\n D --> D3[\"免评计划\"]\n D1 --> E[\"规则 / 风险 / 额度复核\"]\n D2 --> E\n D3 --> E\n E --> F[\"审批通过\"]\n F --> G[\"执行拆解\"]\n G --> H1[\"评价型执行闭环\"]\n G --> H2[\"免评型执行闭环\"]\n H1 --> I1[\"IM / EDM / APP / TEL / 客服协同\"]\n I1 --> J1[\"用户被触达或主动进入\"]\n J1 --> K1[\"每次有效互动均重做身份 / 历史 / 额度 / 风险核验\"]\n K1 --> L1[\"服务 / 售后 / 跟进\"]\n L1 --> M1[\"用户真实提交评价\"]\n M1 --> N1[\"计入真实人累计评价额度\"]\n N1 --> O1[\"Amazon是否展示 / 系统是否确认完成\"]\n O1 --> P[\"结果回流\"]\n H2 --> I2[\"KOC / KOL为核心IM / EDM / APP等协同参与\"]\n I2 --> J2[\"内容发布 / 站外引流 / 带货执行\"]\n J2 --> K2[\"跟踪点击、Code、订单、转化与权重结果\"]\n K2 --> P\n P --> Q[\"更新ASIN健康、计划完成度、用户画像、流量结果、风险记录\"]\n Q --> C\n```\n\n### 4.2 五个业务层\n\n| 业务层 | 说明 |\n| --- | --- |\n| 经营层 | 销售、ASIN、需求、品牌 / 内容 / KOC-KOL 侧影响 |\n| 计划层 | 推新、回评、免评、审批、规则、额度、风险 |\n| 执行层 | IM、EDM、APP、TEL、客服工单、KOC / KOL 协作 |\n| 服务与身份层 | 用户接入、真实人归并、订单核验、用户上下文、售后处理 |\n| 结果与风险层 | 用户真实提交评价、Amazon 展示确认、免评结果、黑名单、诈骗、结果回流 |\n\n---\n\n## 5. 主流程详细说明\n\n| 阶段 | 业务说明 | 必须检查 | 主要输出 |\n| --- | --- | --- | --- |\n| 1. 销售与需求形成 | 销售发生后Amazon 运营根据目标或系统根据健康度触发需求 | 销售、ASIN、评分、评价缺口、历史计划 | 新需求 |\n| 2. 用户运营评估 | 判断需求是否成立、是否可做、优先级如何 | ASIN 健康、目标数量、历史完成、当前资源、风险 | 已确认需求 / 待补充 / 驳回 |\n| 3. 计划生成 | 将需求转为推新、回评或免评计划 | 用户池、渠道容量、目标、周期 | 计划草案 |\n| 4. 计划复核与审批 | 对计划做规则、额度和风险复核,再进入审批 | 黑名单、频控、渠道风险、真实人额度、审批权限 | 已批准计划 |\n| 5. 执行拆解 | 把计划拆成渠道任务和人工任务 | 可触达用户、素材、客服负载、KOC / KOL协作 | 推送任务 / TEL任务 / 客服工单 / 协作任务 |\n| 6A. 评价型执行 | 推新、回评进入用户触达、服务与评价链路 | 真实人、订单、历史、额度、风险、售后情况 | 当前处理路径 |\n| 6B. 免评型执行 | 免评以 KOC / KOL 与站外流量为核心,同时可由 IM / EDM / APP 等协同参与 | 合作对象、内容、Code、渠道、素材、节奏、免评额度 | 内容任务 / 引流任务 / 带货任务 |\n| 7A. 用户真实提交评价 | 记录用户是否已经实际提交评价 | 用户反馈、提交证据、对应计划、真实人累计额度 | 已提交评价事实 |\n| 7B. 免评结果跟踪 | 记录免评计划的执行结果 | 内容发布、点击、Code、订单、转化、销量、权重变化 | 免评执行结果 |\n| 8. 评价确认 | 区分用户提交与 Amazon 展示结果 | Amazon 是否展示、是否能核验、是否属本计划 | 计入完成 / 待确认 |\n| 9. 结果回流 | 把评价结果与免评结果重新反馈给经营与计划层 | 计划完成、ASIN 健康、流量结果、风险变化、用户标签 | 新一轮决策输入 |\n\n---\n\n## 6. 关键业务支线\n\n### 6.1 主动触达支线\n\n```mermaid\nflowchart LR\n A[\"计划通过\"] --> B[\"筛选可触达用户池\"]\n B --> C[\"真实人识别 + 人群画像 + 额度校验\"]\n C --> D[\"渠道分配\"]\n D --> D1[\"IM\"]\n D --> D2[\"EDM\"]\n D --> D3[\"APP\"]\n D --> D4[\"TEL\"]\n D1 --> E[\"用户回应\"]\n D2 --> E\n D3 --> E\n D4 --> E\n E --> F[\"每次回应都重做身份 / 历史 / 额度 / 风险核验\"]\n F --> G[\"订单核验\"]\n G --> H[\"服务 / 跟进\"]\n H --> I[\"用户真实提交评价\"]\n```\n\n#### 关键规则\n\n1. IM、EDM、APP 可自动化TEL 属于人工执行渠道。\n2. `IM` 需要识别用户分层、绑定玩具、设备、测评 / 免评额度和标签流转。\n3. `EDM` 需要识别最近打开、最近回复、点击评论链接但未回复、月度收信次数、最近 3 / 5 次 0 打开、邮箱类型、退订和硬退信。\n4. 计划生成前必须先检查:\n - 用户是否可触达\n - 是否命中风险\n - 是否超频\n - 是否符合站点 / 国家 / 产品目标\n - 是否接近或达到真实人额度上限\n5. 用户回应后,不能沿用上一次判断结果,必须重新检查当前身份、订单、设备、地址、历史、额度与风险状态。\n\n### 6.2 免评执行支线\n\n```mermaid\nflowchart LR\n A[\"免评计划通过\"] --> B[\"拆解执行方案\"]\n B --> C1[\"KOC / KOL协作\"]\n B --> C2[\"IM / EDM / APP辅助触达\"]\n B --> C3[\"内容 / 运营协同\"]\n C1 --> D[\"内容发布 / Code使用 / 站外引流\"]\n C2 --> D\n C3 --> D\n D --> E[\"跟踪点击、跳转、Code、订单、转化、销量与权重变化\"]\n E --> F[\"结果回流到ASIN健康与后续计划\"]\n```\n\n#### 关键规则1\n\n1. 免评计划不是评价型计划的弱化版本,而是以站外流量、带货、销量和权重结果为终点的独立闭环。\n2. KOC / KOL 是免评计划的核心执行通道,但 IM、EDM、APP 等也可以参与协同。\n3. 同一真实人每月最多参与 `4 次免评`;免评额度也要做预警、预占和拦截。\n4. 免评计划不以“用户提交评价”作为完成条件必须另行跟踪内容发布、Code、点击、订单、转化、销量和权重变化。\n5. 如果免评执行过程中发生用户互动、售后或返款等行为,仍须进入统一的身份与风险判断机制。\n\n### 6.3 被动售后与 TEL 支线\n\n```mermaid\nflowchart LR\n A[\"用户主动联系 / 电话呼入\"] --> B[\"接入即预查\"]\n B --> C[\"识别来源、身份、订单、历史、风险\"]\n C --> D{\"是否有售后问题\"}\n D -->|有| E[\"问题分类与解决方案\"]\n E --> F[\"确认是否解决 / 是否满意\"]\n F --> G[\"满意后进入回评 / 测评邀请\"]\n D -->|无| H[\"确认无其他需求\"]\n H --> I[\"可进入测评邀请\"]\n G --> J[\"记录电话 / 工单 / 后续跟进\"]\n I --> J\n```\n\n#### 关键规则2\n\n1. TEL 当前至少包含两类入口:\n - 计划生成后的人工外呼任务\n - 用户从 Amazon 页面或说明书主动呼入\n2. 有售后问题时,必须先解决售后,再谈评价或测评邀请。\n3. 电话中需要尽量确认:\n - 购买平台\n - 订单号\n - 产品型号 / 款式 / 颜色\n - 购买时间\n - 问题类型\n - 是否有图片、视频或其他凭证\n4. 每通电话结束后,至少要记录:\n - 来电时间\n - 来源\n - 联系方式\n - 订单号\n - 问题类型和描述\n - 处理方案\n - 是否已解决\n - 是否需要后续跟进\n - 是否邀请测评 / 回评\n - 用户是否接受\n5. 当前电话业务的核心是:\n - 自然单回评转化\n - 充分利用电话用户的测评资源\n\n### 6.4 风险 / 诈骗拦截支线\n\n```mermaid\nflowchart LR\n A[\"新订单同步 / 主动触达回应 / 用户接入 / 退款申请 / 再次跟进\"] --> B[\"重新做风险识别\"]\n B --> C{\"是否命中强关联\"}\n C -->|是| D[\"直接进入高风险或黑名单链路\"]\n C -->|否| E{\"是否命中弱关联\"}\n E -->|是| F[\"进入高风险观察 + 人工复核\"]\n E -->|否| G[\"继续正常流程\"]\n D --> H[\"拦截自动退款、继续推送、自动放行\"]\n F --> H\n H --> I[\"提醒客服 / 用户运营 / 审核人员\"]\n```\n\n#### 已确认风险口径\n\n| 风险类型 | 关联项 | 处理原则 |\n| --- | --- | --- |\n| 强关联 | 邮箱、设备号、电话、收件人姓名+地址、订单号、聊天记录、Profile ID、收款信息 | 一旦命中,可直接进入高风险或黑名单链路 |\n| 弱关联 | IP 单独命中、姓名单独命中、同址异名 | 进入高风险观察,不直接认定诈骗 |\n\n#### 已确认业务问题\n\n1. 当前真实事故中存在“双重退款”风险:\n - APP / OA 已退款\n - 用户又向 Amazon 申请退款\n2. 需要把 Amazon 退款与 OA 返款自动比对。\n3. 高风险用户一旦标记,支付 / 返款需要人工复核。\n4. 客服、审核、退款等环节必须都能看到风险提醒。\n5. 非 APP 用户如果直接走邮件退款,因缺少设备、注册邮箱等维度,风险识别能力明显下降。\n6. 风险判断不是一次性的接入动作,而是每次有效互动都要重新执行。\n\n### 6.5 客服工单与客服管理支线\n\n```mermaid\nflowchart LR\n A[\"用户消息进入 / 推送转人工 / 售后触发 / 风险触发\"] --> B[\"生成工单\"]\n B --> C[\"按班次、在线状态、当前负载自动分配\"]\n C --> D[\"客服处理\"]\n D --> E{\"处理结果\"}\n E -->|等待用户| F[\"等待用户回复\"]\n E -->|等待内部| G[\"等待内部协同\"]\n E -->|答应配合| H[\"生成后续跟进\"]\n E -->|疑似诈骗| I[\"转风险链路\"]\n E -->|已解决| J[\"关闭工单\"]\n D --> K[\"回复效率 / 转化 / 目标完成统计\"]\n```\n\n#### 工单与管理事实\n\n1. 客服相关模块不只包括工单,还包括:\n - 出勤管理\n - 排班管理\n - 回复效率统计\n - 转化统计\n - 目标管理\n2. `排班` 与 `在线状态` 会直接影响自动分配。\n3. `工单状态`、`答应配合状态`、`风险状态` 必须拆开存。\n4. 客服转化要区分:\n - RSO 回评\n - RDO 测评\n5. 回复效率至少要统计:\n - 回复用户数\n - 处理工单数\n - 发送消息数\n - 平均 / 中位数 / 最大 / 最小首次回复时长\n6. 转化统计至少要看:\n - 登记订单数\n - 获取评价数\n - 评价完成率\n7. 主管需要看到出勤、排班、绩效、目标完成和工单分配,而不是只看单个会话。\n\n---\n\n## 7. 真实人识别、用户上下文与额度规则\n\n### 7.1 真实人识别原则\n\n1. 当前系统不应只围绕 `JOYHUB ID` 看用户,而应同时围绕:\n - 账号\n - 订单\n - 实际收件人\n - 设备\n - 联系方式\n - 风险关系\n2. 如果用户在 JOYHUB 内提交订单,则订单可直接关联到当前 JOYHUB ID。\n3. 如果用户通过邮件联系:\n - 先问是否有 JOYHUB ID\n - 再用注册邮箱与 JOYHUB ID 做关系查询\n4. 如果用户通过电话联系:\n - 先确认是否注册 APP\n - 结合电话、订单、收件人、地址、设备、邮箱继续识别\n5. 非 APP 用户如需继续参与相关流程,应优先引导注册 APP再继续后续动作。\n\n### 7.2 实际收件人判定\n\n| 情况 | 处理原则 |\n| --- | --- |\n| 标准化后姓名 + 地址完全一致 | 直接认为是同一实际收件人 |\n| 地址一致但姓名不同 | 只认为存在家庭 / 关联风险,不直接判定同一人 |\n| 邮箱不同、JOYHUB ID 不同 | 不能单独否定“同一实际人” |\n| 订单号命中历史异常 | 应立即拉出历史上下文和风险记录 |\n\n### 7.3 用户上下文卡\n\n客服和用户运营在必要节点应能看到\n\n| 字段组 | 例子 |\n| --- | --- |\n| 当前身份 | JOYHUB ID、邮箱、电话、真实人 ID、当前订单 |\n| 历史交易 | 历史订单、最近购买、退款 / 返款、目标 ASIN 购买情况 |\n| 历史服务 | 历史工单、聊天、电话、承诺、提醒、关闭原因 |\n| 历史风险 | 黑名单、关联账号、疑似诈骗、双重退款、异常订单 |\n| 当前设备 | 设备号摘要、设备型号 / 类型、系统版本、APP 版本、最近设备变化 |\n| 触达历史 | IM / EDM / APP / TEL 最近触达、回复、退订、投诉 |\n\n### 7.4 额度规则\n\n| 规则 | 统计对象 | 计数口径 |\n| --- | --- | --- |\n| 月度测评最多 4 次 | 真实人 | 已完成 + 进行中 + 已预占 |\n| 月度免评最多 4 次 | 真实人 | 已完成 + 进行中 + 已预占 |\n| 累计真实提交评价最多 12 个 | 真实人 | 用户真实提交评价后立即计数 |\n\n### 7.5 额度控制原则\n\n1. 额度判断必须放在 `真实人识别` 之后,而不是只看单一账号。\n2. 系统不能等到真正超限才提示,必须在接近上限时提前预警。\n3. 一旦 `已用 + 进行中 + 已预占 + 本次拟发送` 会导致超限,就不能进入自动推送。\n4. `Amazon 未展示` 不影响 12 次累计额度,因为口径已经确认按 `真实提交` 计数。\n\n---\n\n## 8. 渠道专属补充事实\n\n### 8.1 IM\n\n- 用户需要分层:未参与过、参与过、长期测评人。\n- 触发条件包括注册 App、绑定玩具、识别绑定产品。\n- 需要校验设备 ID、黑名单、绑定产品、额度与标签。\n- 用户提交订单号、返款账号、评论截图 / 链接后,要继续做订单核验和资格登记。\n\n### 8.2 EDM\n\n- EDM 不是简单“发邮件”,而是独立的筛选与节奏引擎。\n- 需要支持:\n - 最近打开时间\n - 最近回复时间\n - 打开次数\n - 最近 3 / 5 次推送 0 打开\n - 点击评论链接但未回复时长\n - 单月收信次数\n - 各邮件类型发送次数\n - 邮箱后缀标签\n - 国家站点\n - 退订、硬退信、风险用户、黑名单、OA 无资格用户排除\n\n### 8.3 APP\n\n- APP 侧至少要纳入:\n - 注册邮箱\n - 设备号\n - 设备型号 / 类型\n - APP 版本\n - 系统版本\n - 用户行为数据\n - 绑定玩具\n - 活跃与点击行为\n- APP 不只是触达渠道,也是身份识别、设备变化和行为画像的重要来源。\n\n### 8.4 TEL\n\n- TEL 同时承担主动外呼和被动来电。\n- 其价值不只是“打电话”,而是:\n - 解决售后\n - 捕捉自然单回评机会\n - 充分利用电话用户的测评资源\n\n---\n\n## 9. 评价结果规则\n\n### 9.1 必须拆开的两个节点\n\n```mermaid\nflowchart LR\n A[\"用户已真实提交评价\"] --> B[\"计入真实人累计评价额度\"]\n B --> C{\"Amazon是否展示 / 是否可核验\"}\n C -->|展示或可核验| D[\"计入计划完成\"]\n C -->|未展示 / 暂不可核验| E[\"保留用户已提交事实\"]\n E --> F[\"进入待确认 / 异常观察\"]\n D --> G[\"更新ASIN健康与计划完成度\"]\n```\n\n### 9.2 原因\n\n1. 用户可能确实已经提交评价。\n2. Amazon 可能因为其他原因不展示该评价。\n3. `额度计数` 与 `计划完成确认` 不是同一个业务事实。\n4. 如果系统只保留一个“评价完成”状态,会把平台展示问题错误归因给执行人员或用户。\n\n---\n\n## 10. 贯穿全程的数据检查点\n\n| 检查点 | 发生时机 | 核心检查 |\n| --- | --- | --- |\n| 经营检查 | 需求形成前 | 销售、ASIN、评分、评价缺口、历史计划 |\n| 计划检查 | 生成计划前 | 人群、渠道、容量、规则、黑名单 |\n| 画像检查 | 生成人群时 | 国家、站点、性别、年龄、绑定玩具、产品关系、活跃、历史行为 |\n| 额度检查 | 生成人群、发送前、继续推进前 | 测评 4、免评 4、累计真实提交 12、进行中与已预占 |\n| 身份检查 | 首次接入与每次有效互动时 | JOYHUB、邮箱、电话、设备、订单、地址、历史记录 |\n| 互动复检 | 主动触达回应、再次联系、补充订单号、客服回访时 | 关键属性是否变化,是否出现新订单、新地址、新设备、新返款记录 |\n| 风险检查 | 每次有效互动、退款、返款、继续推送前 | 双重退款、强弱关联、黑名单、历史异常 |\n| 结果检查 | 评价提交与确认后 | 首评 / 回评、是否属本计划、是否展示、ASIN 健康变化 |\n\n---\n\n## 11. 第二步的新入口\n\n第二步不再按旧版页面链路推进而改成\n\n### 11.1 共用能力图\n\n1. 真实人识别与用户上下文卡\n2. 人群生成与画像拆解\n3. 额度与频控控制\n4. 每次有效互动复检\n5. 风险与黑名单\n\n### 11.2 渠道 / 模块专属流程图\n\n1. IM\n2. EDM\n3. APP\n4. TEL\n5. 客服工单\n6. 客服管理支撑\n7. 评价完成\n8. 免评执行\n\n### 11.3 每张图都必须回答\n\n- 进入条件是什么\n- 要先查什么\n- 如何判断\n- 写入什么\n- 状态怎么变\n- 何时提醒\n- 何时拦截\n- 何时转人工\n\n---\n\n## 12. 下一次继续工作时的直接提示\n\n1. 先读取本文件。\n2. 不要重新讨论“是否从销售开始”“是否保留免评”“评价提交与展示是否拆开”,这些已确认。\n3. 额度口径按当前版本执行:\n - 测评每月最多 4\n - 免评每月最多 4\n - 同一真实人累计真实提交评价最多 12\n4. 不要再把风险判断理解成“首次接入才做一次”;每次有效互动都需要重做判断。\n5. 不要再把第二步按页面链路拆;直接进入 `20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2.md`。\n6. 旧版 `v1` / `v1.1` 保留为历史版本,不再作为后续主口径。\n\n---\n\n## 13. 本版结论\n\nUSER 部门未来系统的核心,不是单独记录“谁评价了”,而是把以下内容放进同一条可追踪闭环中:\n\n1. 销售与需求\n2. 计划生成与审批\n3. 真实人识别与用户上下文\n4. 测评 / 免评 / 累计评价额度控制\n5. IM / EDM / APP / TEL / 客服协同\n6. 用户身份与订单核验\n7. 售后服务与评价引导\n8. 免评执行与站外流量结果\n9. 用户真实提交评价\n10. Amazon 展示与系统确认\n11. ASIN 健康回流\n12. 风险与黑名单拦截\n\n只有这条闭环建立起来后续的点击设计、页面设计和数据设计才不会彼此脱节。\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/客服执行",
"type": "document",
"name": "客服执行看板",
"filePath": "05_需求文档/客服执行.html",
"summary": "客服执行看板",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "<!doctype html>\n<html lang=\"zh-CN\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>客服执行看板</title>\n <style>\n:root{color-scheme:light;--bg: #f4f6f8;--surface: #ffffff;--surface-soft: #eef3f5;--line: #d8e1e7;--text: #1d252c;--muted: #677681;--nav: #17242d;--blue: #2563a8;--green: #23745b;--amber: #a8661f;--red: #b7433d;--cyan: #247686;--shadow: 0 16px 38px rgba(28, 41, 52, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:var(--bg);font-family:Segoe UI,Microsoft YaHei,Arial,sans-serif}button{min-height:38px;border:1px solid var(--line);border-radius:7px;padding:0 14px;background:var(--surface);color:var(--text);cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr)}.sidebar{background:var(--nav);color:#edf4f7;padding:22px 16px}.brand{display:flex;align-items:center;gap:10px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.14)}.brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#2f7fb9;font-weight:800}.brand strong{font-size:17px}nav{display:grid;gap:8px;margin-top:20px}nav a{padding:11px 12px;border-radius:7px;color:#c8d6dc}nav a.active,nav a:hover{background:#ffffff1a;color:#fff}.workspace{padding:24px;display:grid;gap:18px}.topbar,.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar h1,.panel h2{margin:0;letter-spacing:0}.topbar h1{font-size:28px}.panel h2{font-size:18px}.eyebrow{margin:0 0 5px;color:var(--muted);font-size:12px;text-transform:uppercase}.filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.ghost{background:transparent}.metric-grid,.split-layout,.detail-layout{display:grid;gap:16px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.split-layout,.detail-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.metric-card,.panel,.shift-block,.channel-card{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.metric-card{padding:18px}.metric-card span,.shift-block span,.profile-item span{color:var(--muted);font-size:13px}.metric-card strong{display:block;margin-top:8px;font-size:30px}.metric-card p,.shift-block p,.channel-card p{margin:8px 0 0;color:var(--muted)}.metric-card.good strong{color:var(--green)}.panel{padding:18px;overflow:hidden}.shift-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.shift-block{padding:14px;box-shadow:none;background:var(--surface-soft)}.shift-block strong{display:block;margin-top:8px;font-size:24px}.channel-bars,.channel-summary{display:grid;gap:12px;margin-top:16px}.bar-row{display:grid;grid-template-columns:48px minmax(0,1fr) 54px;align-items:center;gap:12px;color:var(--muted)}.bar-track{height:10px;border-radius:999px;background:#e4ebef;overflow:hidden}.bar-track i{display:block;height:100%;border-radius:inherit;background:var(--cyan)}.channel-card{padding:14px;box-shadow:none}.channel-card strong{display:block;margin-top:10px;font-size:18px}.channel,.status{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700}.channel.IM{background:#e8f1fb;color:var(--blue)}.channel.EDM{background:#e9f5ee;color:var(--green)}.channel.TEL{background:#fff2df;color:var(--amber)}.table-wrap{margin-top:14px;overflow-x:auto}table{width:100%;min-width:920px;border-collapse:collapse}th,td{padding:13px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{color:var(--muted);font-size:13px;font-weight:700;background:#f7fafb}td span{display:block;margin-top:3px;color:var(--muted);font-size:12px}.profile-grid,.metric-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.profile-item{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fafcfd}.profile-item strong{display:block;margin-top:7px;font-size:18px}.calendar{display:grid;grid-template-columns:repeat(10,minmax(44px,1fr));gap:8px;margin-top:16px}.day{min-height:56px;padding:8px 6px;border-radius:7px;border:1px solid var(--line);background:#f9fbfc}.day strong,.day span{display:block;text-align:center}.day span{margin-top:4px;color:var(--muted);font-size:12px}@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split-layout,.detail-layout{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}nav{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{padding:16px}.topbar,.panel-head{align-items:flex-start;flex-direction:column}.filters{justify-content:flex-start}.metric-grid,.shift-grid,.profile-grid,.metric-list{grid-template-columns:1fr}.calendar{grid-template-columns:repeat(5,minmax(44px,1fr))}}.header-note{margin:8px 0 0;color:var(--muted)}.sub-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sub-tabs button{min-height:76px;padding:12px;text-align:left;background:var(--surface);box-shadow:var(--shadow)}.sub-tabs button.active{border-color:var(--blue);background:#eef6fd}.sub-tabs strong,.sub-tabs span{display:block}.sub-tabs span{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.4}.support-subnav{display:grid;gap:6px;margin:-3px 0 4px 16px;padding-left:12px;border-left:1px solid rgba(255,255,255,.16)}.support-subnav button{justify-content:flex-start;min-height:34px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#b9cbd3;text-align:left}.support-subnav button.active,.support-subnav button:hover{background:#ffffff1f;color:#fff}.channel-matrix{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.status.出勤{background:#e7f4ed;color:var(--green)}.status.迟到{background:#fff3df;color:var(--amber)}.status.缺勤{background:#fde9e7;color:var(--red)}.status.休息{background:#edf1f4;color:var(--muted)}.attendance-list,.agent-selector{display:grid;gap:10px;margin-top:16px}.agent-row,.agent-selector button{display:grid;grid-template-columns:minmax(120px,1fr) 70px auto auto;align-items:center;gap:10px;min-height:54px;text-align:left}.agent-row.active,.agent-selector button.active{border-color:var(--blue);background:#eef6fd}.agent-selector button{grid-template-columns:1fr;align-items:start}.agent-selector button span{color:var(--muted);font-size:12px}tbody tr{cursor:pointer}tbody tr.selected,tbody tr:hover{background:#f4f9fc}.day.出勤{border-color:#9fd0b8;background:#edf8f2}.day.迟到{border-color:#e0bd80;background:#fff7e9}.day.缺勤{border-color:#e8aaa5;background:#fff0ef}@media(max-width:760px){.sub-tabs,.channel-matrix,.agent-row{grid-template-columns:1fr}}.support-app-shell{min-height:100vh;display:grid;grid-template-columns:232px minmax(0,1fr);background:#f3f6f8;color:#1d252c}.support-sidebar{background:#17242d;color:#eef5f7;padding:22px 16px}.support-brand{display:flex;align-items:center;gap:10px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.14)}.support-brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#2f7fb9;font-weight:800}.support-brand strong{font-size:17px}.support-nav{display:grid;gap:7px;margin-top:20px}.support-nav button{justify-content:flex-start;min-height:40px;border:0;background:transparent;color:#c8d6dc;text-align:left}.support-nav button.active,.support-nav button:hover{background:#ffffff1a;color:#fff}.support-workspace{display:grid;align-content:start;gap:18px;padding:24px}.support-topbar,.support-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.support-topbar h1,.support-panel h2{margin:0;letter-spacing:0}.support-topbar h1{font-size:28px}.support-panel h2{font-size:18px}.support-eyebrow{margin:0 0 5px;color:#667681;font-size:12px;text-transform:uppercase}.support-filters,.support-actions,.support-inline-filters,.goal-editor{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.support-filters button.active{border-color:#2563a8;background:#2563a8;color:#fff}.support-filters select,.support-filters input,.support-inline-filters select,.support-inline-filters input,.support-actions select,.goal-editor select,.goal-editor input{min-height:38px;border:1px solid #d8e1e7;border-radius:7px;padding:0 12px;background:#fff;color:#1d252c}.support-actions button.active{border-color:#2563a8;background:#2563a8;color:#fff}.interaction-note{min-height:40px;padding:11px 14px;border:1px solid #c8dbe9;border-radius:8px;background:#eef6fd;color:#2563a8;font-weight:700}.support-panel,.support-metric,.permission-panel,.shift-type-card{border:1px solid #d8e1e7;border-radius:8px;background:#fff;box-shadow:0 16px 38px #1c293414}.support-panel{padding:18px;overflow:hidden}.support-metric-grid,.support-split,.shift-type-grid{display:grid;gap:16px}.support-metric-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.support-metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.support-metric-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.support-metric-grid.compact{margin-top:16px}.support-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.support-metric{min-height:132px;padding:18px}.support-metric span,.shift-type-card span,.info-item span{color:#667681;font-size:13px}.support-metric strong{display:block;margin-top:8px;color:#2563a8;font-size:30px}.support-metric.green strong{color:#23745b}.support-metric.amber strong{color:#a8661f}.support-metric p{margin:8px 0 0;color:#667681}.permission-panel.active{border-color:#2f7fb9}.permission-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.permission-list span{min-height:40px;padding:10px 12px;border:1px solid #d8e1e7;border-radius:7px;background:#f8fbfc}.support-pill{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700}.support-pill.blue{background:#e8f1fb;color:#2563a8}.support-pill.green{background:#e7f4ed;color:#23745b}.support-pill.amber{background:#fff3df;color:#a8661f}.support-pill.gray{background:#edf1f4;color:#667681}.assignment-list,.rank-list,.chat-log{display:grid;gap:10px;margin-top:16px}.assignment-card,.rank-row{display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(180px,.8fr);align-items:center;gap:12px;min-height:64px;padding:12px;border:1px solid #d8e1e7;border-radius:8px;background:#f8fbfc}.assignment-card span,.rank-row span,.schedule-name span,.schedule-cell span,td span{display:block;margin-top:4px;color:#667681;font-size:12px}.support-progress{display:grid;gap:5px}.support-progress div{height:9px;overflow:hidden;border-radius:999px;background:#e4ebef}.support-progress i{display:block;height:100%;border-radius:inherit;background:#247686}.support-progress span{color:#667681;font-size:12px;white-space:nowrap}.support-table-wrap{margin-top:16px;overflow-x:auto}.support-table-wrap table{min-width:980px}.support-table-wrap tr.selected,.support-table-wrap tbody tr:hover{background:#f4f9fc}.calendar-grid{display:grid;grid-template-columns:repeat(10,minmax(48px,1fr));gap:8px;margin-top:16px}.calendar-day{min-height:58px;padding:8px 6px;border:1px solid #d8e1e7;border-radius:7px;background:#f9fbfc;text-align:center}.calendar-day span{display:block;margin-top:4px;color:#667681;font-size:12px}.calendar-day[data-status=正常出勤]{border-color:#9fd0b8;background:#edf8f2}.calendar-day[data-status=迟到],.calendar-day[data-status=早退]{border-color:#e0bd80;background:#fff7e9}.calendar-day[data-status=缺勤]{border-color:#e8aaa5;background:#fff0ef}.shift-type-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.shift-type-card{padding:14px;background:#f8fbfc;box-shadow:none}.shift-type-card strong{display:block;margin-top:7px;font-size:18px}.schedule-board{display:grid;grid-template-columns:150px repeat(7,minmax(100px,1fr));gap:1px;margin-top:16px;overflow-x:auto;border:1px solid #d8e1e7;background:#d8e1e7}.schedule-head,.schedule-name,.schedule-cell{min-height:58px;padding:11px;background:#fff}.schedule-head{color:#667681;font-weight:700;background:#f7fafb}.ticket-flow{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:8px;margin-top:16px}.ticket-flow span{min-height:42px;padding:11px 10px;border:1px solid #d8e1e7;border-radius:7px;background:#f8fbfc;text-align:center}.ticket-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.info-item{padding:12px;border:1px solid #d8e1e7;border-radius:7px;background:#f8fbfc}.info-item strong{display:block;margin-top:6px}.chat-log article{max-width:78%;padding:12px;border-radius:8px;background:#eef3f5}.chat-log article.agent{justify-self:end;background:#e8f1fb}.chat-log p{margin:6px 0 0}.goal-editor{justify-content:flex-start;margin-top:16px}.trend-bars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:14px;height:260px;margin-top:16px}.trend-item{display:grid;grid-template-rows:22px 1fr 24px;height:100%;text-align:center}.trend-item i{align-self:end;border-radius:7px 7px 0 0;background:#2f7fb9}.trend-item span,.trend-item strong{color:#667681;font-size:13px}@media(max-width:1180px){.support-metric-grid.five,.support-metric-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.support-split{grid-template-columns:1fr}.ticket-flow{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.support-app-shell{grid-template-columns:1fr}.support-workspace{padding:16px}.support-topbar,.support-panel-head{align-items:flex-start;flex-direction:column}.support-filters,.support-actions,.support-inline-filters{justify-content:flex-start}.support-metric-grid.five,.support-metric-grid.four,.support-metric-grid.three,.permission-list,.shift-type-grid,.ticket-detail-grid,.assignment-card,.rank-row{grid-template-columns:1fr}.calendar-grid{grid-template-columns:repeat(5,minmax(44px,1fr))}.ticket-flow{grid-template-columns:1fr}}\n\n </style>\n </head>\n <body>\n <div id=\"root\"></div>\n <script type=\"module\">\n(function(){const b=document.createElement(\"link\").relList;if(b&&b.supports&&b.supports(\"modulepreload\"))return;for(const A of document.querySelectorAll('link[rel=\"modulepreload\"]'))s(A);new MutationObserver(A=>{for(const _ of A)if(_.type===\"childList\")for(const U of _.addedNodes)U.tagName===\"LINK\"&&U.rel===\"modulepreload\"&&s(U)}).observe(document,{childList:!0,subtree:!0});function z(A){const _={};return A.integrity&&(_.integrity=A.integrity),A.referrerPolicy&&(_.referrerPolicy=A.referrerPolicy),A.crossOrigin===\"use-credentials\"?_.credentials=\"include\":A.crossOrigin===\"anonymous\"?_.credentials=\"omit\":_.credentials=\"same-origin\",_}function s(A){if(A.ep)return;A.ep=!0;const _=z(A);fetch(A.href,_)}})();var bf={exports:{}},_u={};/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var _h;function Tm(){if(_h)return _u;_h=1;var d=Symbol.for(\"react.transitional.element\"),b=Symbol.for(\"react.fragment\");function z(s,A,_){var U=null;if(_!==void 0&&(U=\"\"+_),A.key!==void 0&&(U=\"\"+A.key),\"key\"in A){_={};for(var q in A)q!==\"key\"&&(_[q]=A[q])}else _=A;return A=_.ref,{$$typeof:d,type:s,key:U,ref:A!==void 0?A:null,props:_}}return _u.Fragment=b,_u.jsx=z,_u.jsxs=z,_u}var Dh;function zm(){return Dh||(Dh=1,bf.exports=Tm()),bf.exports}var c=zm(),jf={exports:{}},K={};/**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var Nh;function Am(){if(Nh)return K;Nh=1;var d=Symbol.for(\"react.transitional.element\"),b=Symbol.for(\"react.portal\"),z=Symbol.for(\"react.fragment\"),s=Symbol.for(\"react.strict_mode\"),A=Symbol.for(\"react.profiler\"),_=Symbol.for(\"react.consumer\"),U=Symbol.for(\"react.context\"),q=Symbol.for(\"react.forward_ref\"),j=Symbol.for(\"react.suspense\"),g=Symbol.for(\"react.memo\"),D=Symbol.for(\"react.lazy\"),B=Symbol.for(\"react.activity\"),H=Symbol.iterator;function el(r){return r===null||typeof r!=\"object\"?null:(r=H&&r[H]||r[\"@@iterator\"],typeof r==\"function\"?r:null)}var Hl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Xl=Object.assign,it={};function Fl(r,M,C){this.props=r,this.context=M,this.refs=it,this.updater=C||Hl}Fl.prototype.isReactComponent={},Fl.prototype.setState=function(r,M){if(typeof r!=\"object\"&&typeof r!=\"function\"&&r!=null)throw Error(\"takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,r,M,\"setState\")},Fl.prototype.forceUpdate=function(r){this.updater.enqueueForceUpdate(this,r,\"forceUpdate\")};function $l(){}$l.prototype=Fl.prototype;function El(r,M,C){this.props=r,this.context=M,this.refs=it,this.updater=C||Hl}var Il=El.prototype=new $l;Il.constructor=El,Xl(Il,Fl.prototype),Il.isPureReactComponent=!0;var ct=Array.isArray;function ql(){}var W={H:null,A:null,T:null,S:null},Ol=Object.prototype.hasOwnProperty;function jt(r,M,C){var G=C.ref;return{$$typeof:d,type:r,key:M,ref:G!==void 0?G:null,props:C}}function ce(r,M){return jt(r.type,M,r.props)}function ft(r){return typeof r==\"object\"&&r!==null&&r.$$typeof===d}function bl(r){var M={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+r.replace(/[=:]/g,function(C){return M[C]})}var Qt=/\\/+/g;function Rt(r,M){return typeof r==\"object\"&&r!==null&&r.key!=null?bl(\"\"+r.key):M.toString(36)}function Ml(r){switch(r.status){case\"fulfilled\":return r.value;case\"rejected\":throw r.reason;default:switch(typeof r.status==\"string\"?r.then(ql,ql):(r.status=\"pending\",r.then(function(M){r.status===\"pending\"&&(r.status=\"fulfilled\",r.value=M)},function(M){r.status===\"pending\"&&(r.status=\"rejected\",r.reason=M)})),r.status){case\"fulfilled\":return r.value;case\"rejected\":throw r.reason}}throw r}function x(r,M,C,G,V){var $=typeof r;($===\"undefined\"||$===\"boolean\")&&(r=null);var ul=!1;if(r===null)ul=!0;else switch($){case\"bigint\":case\"string\":case\"number\":ul=!0;break;case\"object\":switch(r.$$typeof){case d:case b:ul=!0;break;case D:return ul=r._init,x(ul(r._payload),M,C,G,V)}}if(ul)return V=V(r),ul=G===\"\"?\".\"+Rt(r,0):G,ct(V)?(C=\"\",ul!=null&&(C=ul.replace(Qt,\"$&/\")+\"/\"),x(V,M,C,\"\",function(fe){return fe})):V!=null&&(ft(V)&&(V=ce(V,C+(V.key==null||r&&r.key===V.key?\"\":(\"\"+V.key).replace(Qt,\"$&/\")+\"/\")+ul)),M.push(V)),1;ul=0;var Ql=G===\"\"?\".\":G+\":\";if(ct(r))for(var pl=0;pl<r.length;pl++)G=r[pl],$=Ql+Rt(G,pl),ul+=x(G,M,C,$,V);else if(pl=el(r),typeof pl==\"function\")for(r=pl.call(r),pl=0;!(G=r.next()).done;)G=G.value,$=Ql+Rt(G,pl++),ul+=x(G,M,C,$,V);else if($===\"object\"){if(typeof r.then==\"function\")return x(Ml(r),M,C,G,V);throw M=String(r),Error(\"Objects are not valid as a React child (found: \"+(M===\"[object Object]\"?\"object with keys {\"+Object.keys(r).join(\", \")+\"}\":M)+\"). If you meant to render a collection of children, use an array instead.\")}return ul}function N(r,M,C){if(r==null)return r;var G=[],V=0;return x(r,G,\"\",\"\",function($){return M.call(C,$,V++)}),G}function Z(r){if(r._status===-1){var M=r._result;M=M(),M.then(function(C){(r._status===0||r._status===-1)&&(r._status=1,r._result=C)},function(C){(r._status===0||r._status===-1)&&(r._status=2,r._result=C)}),r._status===-1&&(r._status=0,r._result=M)}if(r._status===1)return r._result.default;throw r._result}var al=typeof reportError==\"function\"?reportError:function(r){if(typeof window==\"object\"&&typeof window.ErrorEvent==\"function\"){var M=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:typeof r==\"object\"&&r!==null&&typeof r.message==\"string\"?String(r.message):String(r),error:r});if(!window.dispatchEvent(M))return}else if(typeof process==\"object\"&&typeof process.emit==\"function\"){process.emit(\"uncaughtException\",r);return}console.error(r)},fl={map:N,forEach:function(r,M,C){N(r,function(){M.apply(this,arguments)},C)},count:function(r){var M=0;return N(r,function(){M++}),M},toArray:function(r){return N(r,function(M){return M})||[]},only:function(r){if(!ft(r))throw Error(\"React.Children.only expected to receive a single React element child.\");return r}};return K.Activity=B,K.Children=fl,K.Component=Fl,K.Fragment=z,K.Profiler=A,K.PureComponent=El,K.StrictMode=s,K.Suspense=j,K.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=W,K.__COMPILER_RUNTIME={__proto__:null,c:function(r){return W.H.useMemoCache(r)}},K.cache=function(r){return function(){return r.apply(null,arguments)}},K.cacheSignal=function(){return null},K.cloneElement=function(r,M,C){if(r==null)throw Error(\"The argument must be a React element, but you passed \"+r+\".\");var G=Xl({},r.props),V=r.key;if(M!=null)for($ in M.key!==void 0&&(V=\"\"+M.key),M)!Ol.call(M,$)||$===\"key\"||$===\"__self\"||$===\"__source\"||$===\"ref\"&&M.ref===void 0||(G[$]=M[$]);var $=arguments.length-2;if($===1)G.children=C;else if(1<$){for(var ul=Array($),Ql=0;Ql<$;Ql++)ul[Ql]=arguments[Ql+2];G.children=ul}return jt(r.type,V,G)},K.createContext=function(r){return r={$$typeof:U,_currentValue:r,_currentValue2:r,_threadCount:0,Provider:null,Consumer:null},r.Provider=r,r.Consumer={$$typeof:_,_context:r},r},K.createElement=function(r,M,C){var G,V={},$=null;if(M!=null)for(G in M.key!==void 0&&($=\"\"+M.key),M)Ol.call(M,G)&&G!==\"key\"&&G!==\"__self\"&&G!==\"__source\"&&(V[G]=M[G]);var ul=arguments.length-2;if(ul===1)V.children=C;else if(1<ul){for(var Ql=Array(ul),pl=0;pl<ul;pl++)Ql[pl]=arguments[pl+2];V.children=Ql}if(r&&r.defaultProps)for(G in ul=r.defaultProps,ul)V[G]===void 0&&(V[G]=ul[G]);return jt(r,$,V)},K.createRef=function(){return{current:null}},K.forwardRef=function(r){return{$$typeof:q,render:r}},K.isValidElement=ft,K.lazy=function(r){return{$$typeof:D,_payload:{_status:-1,_result:r},_init:Z}},K.memo=function(r,M){return{$$typeof:g,type:r,compare:M===void 0?null:M}},K.startTransition=function(r){var M=W.T,C={};W.T=C;try{var G=r(),V=W.S;V!==null&&V(C,G),typeof G==\"object\"&&G!==null&&typeof G.then==\"function\"&&G.then(ql,al)}catch($){al($)}finally{M!==null&&C.types!==null&&(M.types=C.types),W.T=M}},K.unstable_useCacheRefresh=function(){return W.H.useCacheRefresh()},K.use=function(r){return W.H.use(r)},K.useActionState=function(r,M,C){return W.H.useActionState(r,M,C)},K.useCallback=function(r,M){return W.H.useCallback(r,M)},K.useContext=function(r){return W.H.useContext(r)},K.useDebugValue=function(){},K.useDeferredValue=function(r,M){return W.H.useDeferredValue(r,M)},K.useEffect=function(r,M){return W.H.useEffect(r,M)},K.useEffectEvent=function(r){return W.H.useEffectEvent(r)},K.useId=function(){return W.H.useId()},K.useImperativeHandle=function(r,M,C){return W.H.useImperativeHandle(r,M,C)},K.useInsertionEffect=function(r,M){return W.H.useInsertionEffect(r,M)},K.useLayoutEffect=function(r,M){return W.H.useLayoutEffect(r,M)},K.useMemo=function(r,M){return W.H.useMemo(r,M)},K.useOptimistic=function(r,M){return W.H.useOptimistic(r,M)},K.useReducer=function(r,M,C){return W.H.useReducer(r,M,C)},K.useRef=function(r){return W.H.useRef(r)},K.useState=function(r){return W.H.useState(r)},K.useSyncExternalStore=function(r,M,C){return W.H.useSyncExternalStore(r,M,C)},K.useTransition=function(){return W.H.useTransition()},K.version=\"19.2.5\",K}var Rh;function Of(){return Rh||(Rh=1,jf.exports=Am()),jf.exports}var Gl=Of(),xf={exports:{}},Du={},Tf={exports:{}},zf={};/**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var Uh;function Em(){return Uh||(Uh=1,(function(d){function b(x,N){var Z=x.length;x.push(N);l:for(;0<Z;){var al=Z-1>>>1,fl=x[al];if(0<A(fl,N))x[al]=N,x[Z]=fl,Z=al;else break l}}function z(x){return x.length===0?null:x[0]}function s(x){if(x.length===0)return null;var N=x[0],Z=x.pop();if(Z!==N){x[0]=Z;l:for(var al=0,fl=x.length,r=fl>>>1;al<r;){var M=2*(al+1)-1,C=x[M],G=M+1,V=x[G];if(0>A(C,Z))G<fl&&0>A(V,C)?(x[al]=V,x[G]=Z,al=G):(x[al]=C,x[M]=Z,al=M);else if(G<fl&&0>A(V,Z))x[al]=V,x[G]=Z,al=G;else break l}}return N}function A(x,N){var Z=x.sortIndex-N.sortIndex;return Z!==0?Z:x.id-N.id}if(d.unstable_now=void 0,typeof performance==\"object\"&&typeof performance.now==\"function\"){var _=performance;d.unstable_now=function(){return _.now()}}else{var U=Date,q=U.now();d.unstable_now=function(){return U.now()-q}}var j=[],g=[],D=1,B=null,H=3,el=!1,Hl=!1,Xl=!1,it=!1,Fl=typeof setTimeout==\"function\"?setTimeout:null,$l=typeof clearTimeout==\"function\"?clearTimeout:null,El=typeof setImmediate<\"u\"?setImmediate:null;function Il(x){for(var N=z(g);N!==null;){if(N.callback===null)s(g);else if(N.startTime<=x)s(g),N.sortIndex=N.expirationTime,b(j,N);else break;N=z(g)}}function ct(x){if(Xl=!1,Il(x),!Hl)if(z(j)!==null)Hl=!0,ql||(ql=!0,bl());else{var N=z(g);N!==null&&Ml(ct,N.startTime-x)}}var ql=!1,W=-1,Ol=5,jt=-1;function ce(){return it?!0:!(d.unstable_now()-jt<Ol)}function ft(){if(it=!1,ql){var x=d.unstable_now();jt=x;var N=!0;try{l:{Hl=!1,Xl&&(Xl=!1,$l(W),W=-1),el=!0;var Z=H;try{t:{for(Il(x),B=z(j);B!==null&&!(B.expirationTime>x&&ce());){var al=B.callback;if(typeof al==\"function\"){B.callback=null,H=B.priorityLevel;var fl=al(B.expirationTime<=x);if(x=d.unstable_now(),typeof fl==\"function\"){B.callback=fl,Il(x),N=!0;break t}B===z(j)&&s(j),Il(x)}else s(j);B=z(j)}if(B!==null)N=!0;else{var r=z(g);r!==null&&Ml(ct,r.startTime-x),N=!1}}break l}finally{B=null,H=Z,el=!1}N=void 0}}finally{N?bl():ql=!1}}}var bl;if(typeof El==\"function\")bl=function(){El(ft)};else if(typeof MessageChannel<\"u\"){var Qt=new MessageChannel,Rt=Qt.port2;Qt.port1.onmessage=ft,bl=function(){Rt.postMessage(null)}}else bl=function(){Fl(ft,0)};function Ml(x,N){W=Fl(function(){x(d.unstable_now())},N)}d.unstable_IdlePriority=5,d.unstable_ImmediatePriority=1,d.unstable_LowPriority=4,d.unstable_NormalPriority=3,d.unstable_Profiling=null,d.unstable_UserBlockingPriority=2,d.unstable_cancelCallback=function(x){x.callback=null},d.unstable_forceFrameRate=function(x){0>x||125<x?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):Ol=0<x?Math.floor(1e3/x):5},d.unstable_getCurrentPriorityLevel=function(){return H},d.unstable_next=function(x){switch(H){case 1:case 2:case 3:var N=3;break;default:N=H}var Z=H;H=N;try{return x()}finally{H=Z}},d.unstable_requestPaint=function(){it=!0},d.unstable_runWithPriority=function(x,N){switch(x){case 1:case 2:case 3:case 4:case 5:break;default:x=3}var Z=H;H=x;try{return N()}finally{H=Z}},d.unstable_scheduleCallback=function(x,N,Z){var al=d.unstable_now();switch(typeof Z==\"object\"&&Z!==null?(Z=Z.delay,Z=typeof Z==\"number\"&&0<Z?al+Z:al):Z=al,x){case 1:var fl=-1;break;case 2:fl=250;break;case 5:fl=1073741823;break;case 4:fl=1e4;break;default:fl=5e3}return fl=Z+fl,x={id:D++,callback:N,priorityLevel:x,startTime:Z,expirationTime:fl,sortIndex:-1},Z>al?(x.sortIndex=Z,b(g,x),z(j)===null&&x===z(g)&&(Xl?($l(W),W=-1):Xl=!0,Ml(ct,Z-al))):(x.sortIndex=fl,b(j,x),Hl||el||(Hl=!0,ql||(ql=!0,bl()))),x},d.unstable_shouldYield=ce,d.unstable_wrapCallback=function(x){var N=H;return function(){var Z=H;H=N;try{return x.apply(this,arguments)}finally{H=Z}}}})(zf)),zf}var Ch;function Om(){return Ch||(Ch=1,Tf.exports=Em()),Tf.exports}var Af={exports:{}},Wl={};/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var Hh;function Mm(){if(Hh)return Wl;Hh=1;var d=Of();function b(j){var g=\"https://react.dev/errors/\"+j;if(1<arguments.length){g+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var D=2;D<arguments.length;D++)g+=\"&args[]=\"+encodeURIComponent(arguments[D])}return\"Minified React error #\"+j+\"; visit \"+g+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function z(){}var s={d:{f:z,r:function(){throw Error(b(522))},D:z,C:z,L:z,m:z,X:z,S:z,M:z},p:0,findDOMNode:null},A=Symbol.for(\"react.portal\");function _(j,g,D){var B=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:A,key:B==null?null:\"\"+B,children:j,containerInfo:g,implementation:D}}var U=d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function q(j,g){if(j===\"font\")return\"\";if(typeof g==\"string\")return g===\"use-credentials\"?g:\"\"}return Wl.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=s,Wl.createPortal=function(j,g){var D=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!g||g.nodeType!==1&&g.nodeType!==9&&g.nodeType!==11)throw Error(b(299));return _(j,g,null,D)},Wl.flushSync=function(j){var g=U.T,D=s.p;try{if(U.T=null,s.p=2,j)return j()}finally{U.T=g,s.p=D,s.d.f()}},Wl.preconnect=function(j,g){typeof j==\"string\"&&(g?(g=g.crossOrigin,g=typeof g==\"string\"?g===\"use-credentials\"?g:\"\":void 0):g=null,s.d.C(j,g))},Wl.prefetchDNS=function(j){typeof j==\"string\"&&s.d.D(j)},Wl.preinit=function(j,g){if(typeof j==\"string\"&&g&&typeof g.as==\"string\"){var D=g.as,B=q(D,g.crossOrigin),H=typeof g.integrity==\"string\"?g.integrity:void 0,el=typeof g.fetchPriority==\"string\"?g.fetchPriority:void 0;D===\"style\"?s.d.S(j,typeof g.precedence==\"string\"?g.precedence:void 0,{crossOrigin:B,integrity:H,fetchPriority:el}):D===\"script\"&&s.d.X(j,{crossOrigin:B,integrity:H,fetchPriority:el,nonce:typeof g.nonce==\"string\"?g.nonce:void 0})}},Wl.preinitModule=function(j,g){if(typeof j==\"string\")if(typeof g==\"object\"&&g!==null){if(g.as==null||g.as===\"script\"){var D=q(g.as,g.crossOrigin);s.d.M(j,{crossOrigin:D,integrity:typeof g.integrity==\"string\"?g.integrity:void 0,nonce:typeof g.nonce==\"string\"?g.nonce:void 0})}}else g==null&&s.d.M(j)},Wl.preload=function(j,g){if(typeof j==\"string\"&&typeof g==\"object\"&&g!==null&&typeof g.as==\"string\"){var D=g.as,B=q(D,g.crossOrigin);s.d.L(j,D,{crossOrigin:B,integrity:typeof g.integrity==\"string\"?g.integrity:void 0,nonce:typeof g.nonce==\"string\"?g.nonce:void 0,type:typeof g.type==\"string\"?g.type:void 0,fetchPriority:typeof g.fetchPriority==\"string\"?g.fetchPriority:void 0,referrerPolicy:typeof g.referrerPolicy==\"string\"?g.referrerPolicy:void 0,imageSrcSet:typeof g.imageSrcSet==\"string\"?g.imageSrcSet:void 0,imageSizes:typeof g.imageSizes==\"string\"?g.imageSizes:void 0,media:typeof g.media==\"string\"?g.media:void 0})}},Wl.preloadModule=function(j,g){if(typeof j==\"string\")if(g){var D=q(g.as,g.crossOrigin);s.d.m(j,{as:typeof g.as==\"string\"&&g.as!==\"script\"?g.as:void 0,crossOrigin:D,integrity:typeof g.integrity==\"string\"?g.integrity:void 0})}else s.d.m(j)},Wl.requestFormReset=function(j){s.d.r(j)},Wl.unstable_batchedUpdates=function(j,g){return j(g)},Wl.useFormState=function(j,g,D){return U.H.useFormState(j,g,D)},Wl.useFormStatus=function(){return U.H.useHostTransitionStatus()},Wl.version=\"19.2.5\",Wl}var qh;function _m(){if(qh)return Af.exports;qh=1;function d(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(d)}catch(b){console.error(b)}}return d(),Af.exports=Mm(),Af.exports}/**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var Bh;function Dm(){if(Bh)return Du;Bh=1;var d=Om(),b=Of(),z=_m();function s(l){var t=\"https://react.dev/errors/\"+l;if(1<arguments.length){t+=\"?args[]=\"+encodeURIComponent(arguments[1]);for(var e=2;e<arguments.length;e++)t+=\"&args[]=\"+encodeURIComponent(arguments[e])}return\"Minified React error #\"+l+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}function A(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}function _(l){var t=l,e=l;if(l.alternate)for(;t.return;)t=t.return;else{l=t;do t=l,(t.flags&4098)!==0&&(e=t.return),l=t.return;while(l)}return t.tag===3?e:null}function U(l){if(l.tag===13){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}function q(l){if(l.tag===31){var t=l.memoizedState;if(t===null&&(l=l.alternate,l!==null&&(t=l.memoizedState)),t!==null)return t.dehydrated}return null}function j(l){if(_(l)!==l)throw Error(s(188))}function g(l){var t=l.alternate;if(!t){if(t=_(l),t===null)throw Error(s(188));return t!==l?null:l}for(var e=l,a=t;;){var u=e.return;if(u===null)break;var n=u.alternate;if(n===null){if(a=u.return,a!==null){e=a;continue}break}if(u.child===n.child){for(n=u.child;n;){if(n===e)return j(u),l;if(n===a)return j(u),t;n=n.sibling}throw Error(s(188))}if(e.return!==a.return)e=u,a=n;else{for(var i=!1,f=u.child;f;){if(f===e){i=!0,e=u,a=n;break}if(f===a){i=!0,a=u,e=n;break}f=f.sibling}if(!i){for(f=n.child;f;){if(f===e){i=!0,e=n,a=u;break}if(f===a){i=!0,a=n,e=u;break}f=f.sibling}if(!i)throw Error(s(189))}}if(e.alternate!==a)throw Error(s(190))}if(e.tag!==3)throw Error(s(188));return e.stateNode.current===e?l:t}function D(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l;for(l=l.child;l!==null;){if(t=D(l),t!==null)return t;l=l.sibling}return null}var B=Object.assign,H=Symbol.for(\"react.element\"),el=Symbol.for(\"react.transitional.element\"),Hl=Symbol.for(\"react.portal\"),Xl=Symbol.for(\"react.fragment\"),it=Symbol.for(\"react.strict_mode\"),Fl=Symbol.for(\"react.profiler\"),$l=Symbol.for(\"react.consumer\"),El=Symbol.for(\"react.context\"),Il=Symbol.for(\"react.forward_ref\"),ct=Symbol.for(\"react.suspense\"),ql=Symbol.for(\"react.suspense_list\"),W=Symbol.for(\"react.memo\"),Ol=Symbol.for(\"react.lazy\"),jt=Symbol.for(\"react.activity\"),ce=Symbol.for(\"react.memo_cache_sentinel\"),ft=Symbol.iterator;function bl(l){return l===null||typeof l!=\"object\"?null:(l=ft&&l[ft]||l[\"@@iterator\"],typeof l==\"function\"?l:null)}var Qt=Symbol.for(\"react.client.reference\");function Rt(l){if(l==null)return null;if(typeof l==\"function\")return l.$$typeof===Qt?null:l.displayName||l.name||null;if(typeof l==\"string\")return l;switch(l){case Xl:return\"Fragment\";case Fl:return\"Profiler\";case it:return\"StrictMode\";case ct:return\"Suspense\";case ql:return\"SuspenseList\";case jt:return\"Activity\"}if(typeof l==\"object\")switch(l.$$typeof){case Hl:return\"Portal\";case El:return l.displayName||\"Context\";case $l:return(l._context.displayName||\"Context\")+\".Consumer\";case Il:var t=l.render;return l=l.displayName,l||(l=t.displayName||t.name||\"\",l=l!==\"\"?\"ForwardRef(\"+l+\")\":\"ForwardRef\"),l;case W:return t=l.displayName||null,t!==null?t:Rt(l.type)||\"Memo\";case Ol:t=l._payload,l=l._init;try{return Rt(l(t))}catch{}}return null}var Ml=Array.isArray,x=b.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,N=z.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Z={pending:!1,data:null,method:null,action:null},al=[],fl=-1;function r(l){return{current:l}}function M(l){0>fl||(l.current=al[fl],al[fl]=null,fl--)}function C(l,t){fl++,al[fl]=l.current,l.current=t}var G=r(null),V=r(null),$=r(null),ul=r(null);function Ql(l,t){switch(C($,t),C(V,l),C(G,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?I0(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=I0(t),l=P0(t,l);else switch(l){case\"svg\":l=1;break;case\"math\":l=2;break;default:l=0}}M(G),C(G,l)}function pl(){M(G),M(V),M($)}function fe(l){l.memoizedState!==null&&C(ul,l);var t=G.current,e=P0(t,l.type);t!==e&&(C(V,l),C(G,e))}function R(l){V.current===l&&(M(G),M(V)),ul.current===l&&(M(ul),Au._currentValue=Z)}var vl,jl;function ll(l){if(vl===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\\n( *(at )?)/);vl=t&&t[1]||\"\",jl=-1<e.stack.indexOf(`\n at`)?\" (<anonymous>)\":-1<e.stack.indexOf(\"@\")?\"@unknown:0:0\":\"\"}return`\n`+vl+l+jl}var st=!1;function ai(l,t){if(!l||st)return\"\";st=!0;var e=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(t){var O=function(){throw Error()};if(Object.defineProperty(O.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(O,[])}catch(p){var S=p}Reflect.construct(l,[],O)}else{try{O.call()}catch(p){S=p}l.call(O.prototype)}}else{try{throw Error()}catch(p){S=p}(O=l())&&typeof O.catch==\"function\"&&O.catch(function(){})}}catch(p){if(p&&S&&typeof p.stack==\"string\")return[p.stack,S.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName=\"DetermineComponentFrameRoot\";var u=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,\"name\");u&&u.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,\"name\",{value:\"DetermineComponentFrameRoot\"});var n=a.DetermineComponentFrameRoot(),i=n[0],f=n[1];if(i&&f){var h=i.split(`\n`),y=f.split(`\n`);for(u=a=0;a<h.length&&!h[a].includes(\"DetermineComponentFrameRoot\");)a++;for(;u<y.length&&!y[u].includes(\"DetermineComponentFrameRoot\");)u++;if(a===h.length||u===y.length)for(a=h.length-1,u=y.length-1;1<=a&&0<=u&&h[a]!==y[u];)u--;for(;1<=a&&0<=u;a--,u--)if(h[a]!==y[u]){if(a!==1||u!==1)do if(a--,u--,0>u||h[a]!==y[u]){var T=`\n`+h[a].replace(\" at new \",\" at \");return l.displayName&&T.includes(\"<anonymous>\")&&(T=T.replace(\"<anonymous>\",l.displayName)),T}while(1<=a&&0<=u);break}}}finally{st=!1,Error.prepareStackTrace=e}return(e=l?l.displayName||l.name:\"\")?ll(e):\"\"}function Ph(l,t){switch(l.tag){case 26:case 27:case 5:return ll(l.type);case 16:return ll(\"Lazy\");case 13:return l.child!==t&&t!==null?ll(\"Suspense Fallback\"):ll(\"Suspense\");case 19:return ll(\"SuspenseList\");case 0:case 15:return ai(l.type,!1);case 11:return ai(l.type.render,!1);case 1:return ai(l.type,!0);case 31:return ll(\"Activity\");default:return\"\"}}function _f(l){try{var t=\"\",e=null;do t+=Ph(l,e),e=l,l=l.return;while(l);return t}catch(a){return`\nError generating stack: `+a.message+`\n`+a.stack}}var ui=Object.prototype.hasOwnProperty,ni=d.unstable_scheduleCallback,ii=d.unstable_cancelCallback,lo=d.unstable_shouldYield,to=d.unstable_requestPaint,dt=d.unstable_now,eo=d.unstable_getCurrentPriorityLevel,Df=d.unstable_ImmediatePriority,Nf=d.unstable_UserBlockingPriority,Cu=d.unstable_NormalPriority,ao=d.unstable_LowPriority,Rf=d.unstable_IdlePriority,uo=d.log,no=d.unstable_setDisableYieldValue,Ba=null,ht=null;function se(l){if(typeof uo==\"function\"&&no(l),ht&&typeof ht.setStrictMode==\"function\")try{ht.setStrictMode(Ba,l)}catch{}}var ot=Math.clz32?Math.clz32:fo,io=Math.log,co=Math.LN2;function fo(l){return l>>>=0,l===0?32:31-(io(l)/co|0)|0}var Hu=256,qu=262144,Bu=4194304;function He(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Yu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var u=0,n=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var f=a&134217727;return f!==0?(a=f&~n,a!==0?u=He(a):(i&=f,i!==0?u=He(i):e||(e=f&~l,e!==0&&(u=He(e))))):(f=a&~n,f!==0?u=He(f):i!==0?u=He(i):e||(e=a&~l,e!==0&&(u=He(e)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,e=t&-t,n>=e||n===32&&(e&4194048)!==0)?t:u}function Ya(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function so(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Uf(){var l=Bu;return Bu<<=1,(Bu&62914560)===0&&(Bu=4194304),l}function ci(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function Ga(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function ho(l,t,e,a,u,n){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var f=l.entanglements,h=l.expirationTimes,y=l.hiddenUpdates;for(e=i&~e;0<e;){var T=31-ot(e),O=1<<T;f[T]=0,h[T]=-1;var S=y[T];if(S!==null)for(y[T]=null,T=0;T<S.length;T++){var p=S[T];p!==null&&(p.lane&=-536870913)}e&=~O}a!==0&&Cf(l,a,0),n!==0&&u===0&&l.tag!==0&&(l.suspendedLanes|=n&~(i&~t))}function Cf(l,t,e){l.pendingLanes|=t,l.suspendedLanes&=~t;var a=31-ot(t);l.entangledLanes|=t,l.entanglements[a]=l.entanglements[a]|1073741824|e&261930}function Hf(l,t){var e=l.entangledLanes|=t;for(l=l.entanglements;e;){var a=31-ot(e),u=1<<a;u&t|l[a]&t&&(l[a]|=t),e&=~u}}function qf(l,t){var e=t&-t;return e=(e&42)!==0?1:fi(e),(e&(l.suspendedLanes|t))!==0?0:e}function fi(l){switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:l=128;break;case 268435456:l=134217728;break;default:l=0}return l}function si(l){return l&=-l,2<l?8<l?(l&134217727)!==0?32:268435456:8:2}function Bf(){var l=N.p;return l!==0?l:(l=window.event,l===void 0?32:xh(l.type))}function Yf(l,t){var e=N.p;try{return N.p=l,t()}finally{N.p=e}}var de=Math.random().toString(36).slice(2),Zl=\"__reactFiber$\"+de,Pl=\"__reactProps$\"+de,Pe=\"__reactContainer$\"+de,di=\"__reactEvents$\"+de,oo=\"__reactListeners$\"+de,ro=\"__reactHandles$\"+de,Gf=\"__reactResources$\"+de,Xa=\"__reactMarker$\"+de;function hi(l){delete l[Zl],delete l[Pl],delete l[di],delete l[oo],delete l[ro]}function la(l){var t=l[Zl];if(t)return t;for(var e=l.parentNode;e;){if(t=e[Pe]||e[Zl]){if(e=t.alternate,t.child!==null||e!==null&&e.child!==null)for(l=ih(l);l!==null;){if(e=l[Zl])return e;l=ih(l)}return t}l=e,e=l.parentNode}return null}function ta(l){if(l=l[Zl]||l[Pe]){var t=l.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return l}return null}function Qa(l){var t=l.tag;if(t===5||t===26||t===27||t===6)return l.stateNode;throw Error(s(33))}function ea(l){var t=l[Gf];return t||(t=l[Gf]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function Bl(l){l[Xa]=!0}var Xf=new Set,Qf={};function qe(l,t){aa(l,t),aa(l+\"Capture\",t)}function aa(l,t){for(Qf[l]=t,l=0;l<t.length;l++)Xf.add(t[l])}var mo=RegExp(\"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"),Zf={},Lf={};function vo(l){return ui.call(Lf,l)?!0:ui.call(Zf,l)?!1:mo.test(l)?Lf[l]=!0:(Zf[l]=!0,!1)}function Gu(l,t,e){if(vo(t))if(e===null)l.removeAttribute(t);else{switch(typeof e){case\"undefined\":case\"function\":case\"symbol\":l.removeAttribute(t);return;case\"boolean\":var a=t.toLowerCase().slice(0,5);if(a!==\"data-\"&&a!==\"aria-\"){l.removeAttribute(t);return}}l.setAttribute(t,\"\"+e)}}function Xu(l,t,e){if(e===null)l.removeAttribute(t);else{switch(typeof e){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":l.removeAttribute(t);return}l.setAttribute(t,\"\"+e)}}function Zt(l,t,e,a){if(a===null)l.removeAttribute(e);else{switch(typeof a){case\"undefined\":case\"function\":case\"symbol\":case\"boolean\":l.removeAttribute(e);return}l.setAttributeNS(t,e,\"\"+a)}}function xt(l){switch(typeof l){case\"bigint\":case\"boolean\":case\"number\":case\"string\":case\"undefined\":return l;case\"object\":return l;default:return\"\"}}function Vf(l){var t=l.type;return(l=l.nodeName)&&l.toLowerCase()===\"input\"&&(t===\"checkbox\"||t===\"radio\")}function yo(l,t,e){var a=Object.getOwnPropertyDescriptor(l.constructor.prototype,t);if(!l.hasOwnProperty(t)&&typeof a<\"u\"&&typeof a.get==\"function\"&&typeof a.set==\"function\"){var u=a.get,n=a.set;return Object.defineProperty(l,t,{configurable:!0,get:function(){return u.call(this)},set:function(i){e=\"\"+i,n.call(this,i)}}),Object.defineProperty(l,t,{enumerable:a.enumerable}),{getValue:function(){return e},setValue:function(i){e=\"\"+i},stopTracking:function(){l._valueTracker=null,delete l[t]}}}}function oi(l){if(!l._valueTracker){var t=Vf(l)?\"checked\":\"value\";l._valueTracker=yo(l,t,\"\"+l[t])}}function Kf(l){if(!l)return!1;var t=l._valueTracker;if(!t)return!0;var e=t.getValue(),a=\"\";return l&&(a=Vf(l)?l.checked?\"true\":\"false\":l.value),l=a,l!==e?(t.setValue(l),!0):!1}function Qu(l){if(l=l||(typeof document<\"u\"?document:void 0),typeof l>\"u\")return null;try{return l.activeElement||l.body}catch{return l.body}}var go=/[\\n\"\\\\]/g;function Tt(l){return l.replace(go,function(t){return\"\\\\\"+t.charCodeAt(0).toString(16)+\" \"})}function ri(l,t,e,a,u,n,i,f){l.name=\"\",i!=null&&typeof i!=\"function\"&&typeof i!=\"symbol\"&&typeof i!=\"boolean\"?l.type=i:l.removeAttribute(\"type\"),t!=null?i===\"number\"?(t===0&&l.value===\"\"||l.value!=t)&&(l.value=\"\"+xt(t)):l.value!==\"\"+xt(t)&&(l.value=\"\"+xt(t)):i!==\"submit\"&&i!==\"reset\"||l.removeAttribute(\"value\"),t!=null?mi(l,i,xt(t)):e!=null?mi(l,i,xt(e)):a!=null&&l.removeAttribute(\"value\"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!=\"function\"&&typeof u!=\"symbol\"),f!=null&&typeof f!=\"function\"&&typeof f!=\"symbol\"&&typeof f!=\"boolean\"?l.name=\"\"+xt(f):l.removeAttribute(\"name\")}function Jf(l,t,e,a,u,n,i,f){if(n!=null&&typeof n!=\"function\"&&typeof n!=\"symbol\"&&typeof n!=\"boolean\"&&(l.type=n),t!=null||e!=null){if(!(n!==\"submit\"&&n!==\"reset\"||t!=null)){oi(l);return}e=e!=null?\"\"+xt(e):\"\",t=t!=null?\"\"+xt(t):e,f||t===l.value||(l.value=t),l.defaultValue=t}a=a??u,a=typeof a!=\"function\"&&typeof a!=\"symbol\"&&!!a,l.checked=f?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!=\"function\"&&typeof i!=\"symbol\"&&typeof i!=\"boolean\"&&(l.name=i),oi(l)}function mi(l,t,e){t===\"number\"&&Qu(l.ownerDocument)===l||l.defaultValue===\"\"+e||(l.defaultValue=\"\"+e)}function ua(l,t,e,a){if(l=l.options,t){t={};for(var u=0;u<e.length;u++)t[\"$\"+e[u]]=!0;for(e=0;e<l.length;e++)u=t.hasOwnProperty(\"$\"+l[e].value),l[e].selected!==u&&(l[e].selected=u),u&&a&&(l[e].defaultSelected=!0)}else{for(e=\"\"+xt(e),t=null,u=0;u<l.length;u++){if(l[u].value===e){l[u].selected=!0,a&&(l[u].defaultSelected=!0);return}t!==null||l[u].disabled||(t=l[u])}t!==null&&(t.selected=!0)}}function wf(l,t,e){if(t!=null&&(t=\"\"+xt(t),t!==l.value&&(l.value=t),e==null)){l.defaultValue!==t&&(l.defaultValue=t);return}l.defaultValue=e!=null?\"\"+xt(e):\"\"}function $f(l,t,e,a){if(t==null){if(a!=null){if(e!=null)throw Error(s(92));if(Ml(a)){if(1<a.length)throw Error(s(93));a=a[0]}e=a}e==null&&(e=\"\"),t=e}e=xt(t),l.defaultValue=e,a=l.textContent,a===e&&a!==\"\"&&a!==null&&(l.value=a),oi(l)}function na(l,t){if(t){var e=l.firstChild;if(e&&e===l.lastChild&&e.nodeType===3){e.nodeValue=t;return}}l.textContent=t}var So=new Set(\"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\" \"));function Wf(l,t,e){var a=t.indexOf(\"--\")===0;e==null||typeof e==\"boolean\"||e===\"\"?a?l.setProperty(t,\"\"):t===\"float\"?l.cssFloat=\"\":l[t]=\"\":a?l.setProperty(t,e):typeof e!=\"number\"||e===0||So.has(t)?t===\"float\"?l.cssFloat=e:l[t]=(\"\"+e).trim():l[t]=e+\"px\"}function Ff(l,t,e){if(t!=null&&typeof t!=\"object\")throw Error(s(62));if(l=l.style,e!=null){for(var a in e)!e.hasOwnProperty(a)||t!=null&&t.hasOwnProperty(a)||(a.indexOf(\"--\")===0?l.setProperty(a,\"\"):a===\"float\"?l.cssFloat=\"\":l[a]=\"\");for(var u in t)a=t[u],t.hasOwnProperty(u)&&e[u]!==a&&Wf(l,u,a)}else for(var n in t)t.hasOwnProperty(n)&&Wf(l,n,t[n])}function vi(l){if(l.indexOf(\"-\")===-1)return!1;switch(l){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var po=new Map([[\"acceptCharset\",\"accept-charset\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"],[\"crossOrigin\",\"crossorigin\"],[\"accentHeight\",\"accent-height\"],[\"alignmentBaseline\",\"alignment-baseline\"],[\"arabicForm\",\"arabic-form\"],[\"baselineShift\",\"baseline-shift\"],[\"capHeight\",\"cap-height\"],[\"clipPath\",\"clip-path\"],[\"clipRule\",\"clip-rule\"],[\"colorInterpolation\",\"color-interpolation\"],[\"colorInterpolationFilters\",\"color-interpolation-filters\"],[\"colorProfile\",\"color-profile\"],[\"colorRendering\",\"color-rendering\"],[\"dominantBaseline\",\"dominant-baseline\"],[\"enableBackground\",\"enable-background\"],[\"fillOpacity\",\"fill-opacity\"],[\"fillRule\",\"fill-rule\"],[\"floodColor\",\"flood-color\"],[\"floodOpacity\",\"flood-opacity\"],[\"fontFamily\",\"font-family\"],[\"fontSize\",\"font-size\"],[\"fontSizeAdjust\",\"font-size-adjust\"],[\"fontStretch\",\"font-stretch\"],[\"fontStyle\",\"font-style\"],[\"fontVariant\",\"font-variant\"],[\"fontWeight\",\"font-weight\"],[\"glyphName\",\"glyph-name\"],[\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\"],[\"glyphOrientationVertical\",\"glyph-orientation-vertical\"],[\"horizAdvX\",\"horiz-adv-x\"],[\"horizOriginX\",\"horiz-origin-x\"],[\"imageRendering\",\"image-rendering\"],[\"letterSpacing\",\"letter-spacing\"],[\"lightingColor\",\"lighting-color\"],[\"markerEnd\",\"marker-end\"],[\"markerMid\",\"marker-mid\"],[\"markerStart\",\"marker-start\"],[\"overlinePosition\",\"overline-position\"],[\"overlineThickness\",\"overline-thickness\"],[\"paintOrder\",\"paint-order\"],[\"panose-1\",\"panose-1\"],[\"pointerEvents\",\"pointer-events\"],[\"renderingIntent\",\"rendering-intent\"],[\"shapeRendering\",\"shape-rendering\"],[\"stopColor\",\"stop-color\"],[\"stopOpacity\",\"stop-opacity\"],[\"strikethroughPosition\",\"strikethrough-position\"],[\"strikethroughThickness\",\"strikethrough-thickness\"],[\"strokeDasharray\",\"stroke-dasharray\"],[\"strokeDashoffset\",\"stroke-dashoffset\"],[\"strokeLinecap\",\"stroke-linecap\"],[\"strokeLinejoin\",\"stroke-linejoin\"],[\"strokeMiterlimit\",\"stroke-miterlimit\"],[\"strokeOpacity\",\"stroke-opacity\"],[\"strokeWidth\",\"stroke-width\"],[\"textAnchor\",\"text-anchor\"],[\"textDecoration\",\"text-decoration\"],[\"textRendering\",\"text-rendering\"],[\"transformOrigin\",\"transform-origin\"],[\"underlinePosition\",\"underline-position\"],[\"underlineThickness\",\"underline-thickness\"],[\"unicodeBidi\",\"unicode-bidi\"],[\"unicodeRange\",\"unicode-range\"],[\"unitsPerEm\",\"units-per-em\"],[\"vAlphabetic\",\"v-alphabetic\"],[\"vHanging\",\"v-hanging\"],[\"vIdeographic\",\"v-ideographic\"],[\"vMathematical\",\"v-mathematical\"],[\"vectorEffect\",\"vector-effect\"],[\"vertAdvY\",\"vert-adv-y\"],[\"vertOriginX\",\"vert-origin-x\"],[\"vertOriginY\",\"vert-origin-y\"],[\"wordSpacing\",\"word-spacing\"],[\"writingMode\",\"writing-mode\"],[\"xmlnsXlink\",\"xmlns:xlink\"],[\"xHeight\",\"x-height\"]]),bo=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i;function Zu(l){return bo.test(\"\"+l)?\"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\":l}function Lt(){}var yi=null;function gi(l){return l=l.target||l.srcElement||window,l.correspondingUseElement&&(l=l.correspondingUseElement),l.nodeType===3?l.parentNode:l}var ia=null,ca=null;function kf(l){var t=ta(l);if(t&&(l=t.stateNode)){var e=l[Pl]||null;l:switch(l=t.stateNode,t.type){case\"input\":if(ri(l,e.value,e.defaultValue,e.defaultValue,e.checked,e.defaultChecked,e.type,e.name),t=e.name,e.type===\"radio\"&&t!=null){for(e=l;e.parentNode;)e=e.parentNode;for(e=e.querySelectorAll('input[name=\"'+Tt(\"\"+t)+'\"][type=\"radio\"]'),t=0;t<e.length;t++){var a=e[t];if(a!==l&&a.form===l.form){var u=a[Pl]||null;if(!u)throw Error(s(90));ri(a,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name)}}for(t=0;t<e.length;t++)a=e[t],a.form===l.form&&Kf(a)}break l;case\"textarea\":wf(l,e.value,e.defaultValue);break l;case\"select\":t=e.value,t!=null&&ua(l,!!e.multiple,t,!1)}}}var Si=!1;function If(l,t,e){if(Si)return l(t,e);Si=!0;try{var a=l(t);return a}finally{if(Si=!1,(ia!==null||ca!==null)&&(Dn(),ia&&(t=ia,l=ca,ca=ia=null,kf(t),l)))for(t=0;t<l.length;t++)kf(l[t])}}function Za(l,t){var e=l.stateNode;if(e===null)return null;var a=e[Pl]||null;if(a===null)return null;e=a[t];l:switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(a=!a.disabled)||(l=l.type,a=!(l===\"button\"||l===\"input\"||l===\"select\"||l===\"textarea\")),l=!a;break l;default:l=!1}if(l)return null;if(e&&typeof e!=\"function\")throw Error(s(231,t,typeof e));return e}var Vt=!(typeof window>\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),pi=!1;if(Vt)try{var La={};Object.defineProperty(La,\"passive\",{get:function(){pi=!0}}),window.addEventListener(\"test\",La,La),window.removeEventListener(\"test\",La,La)}catch{pi=!1}var he=null,bi=null,Lu=null;function Pf(){if(Lu)return Lu;var l,t=bi,e=t.length,a,u=\"value\"in he?he.value:he.textContent,n=u.length;for(l=0;l<e&&t[l]===u[l];l++);var i=e-l;for(a=1;a<=i&&t[e-a]===u[n-a];a++);return Lu=u.slice(l,1<a?1-a:void 0)}function Vu(l){var t=l.keyCode;return\"charCode\"in l?(l=l.charCode,l===0&&t===13&&(l=13)):l=t,l===10&&(l=13),32<=l||l===13?l:0}function Ku(){return!0}function ls(){return!1}function lt(l){function t(e,a,u,n,i){this._reactName=e,this._targetInst=u,this.type=a,this.nativeEvent=n,this.target=i,this.currentTarget=null;for(var f in l)l.hasOwnProperty(f)&&(e=l[f],this[f]=e?e(n):n[f]);return this.isDefaultPrevented=(n.defaultPrevented!=null?n.defaultPrevented:n.returnValue===!1)?Ku:ls,this.isPropagationStopped=ls,this}return B(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=\"unknown\"&&(e.returnValue=!1),this.isDefaultPrevented=Ku)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=\"unknown\"&&(e.cancelBubble=!0),this.isPropagationStopped=Ku)},persist:function(){},isPersistent:Ku}),t}var Be={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(l){return l.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ju=lt(Be),Va=B({},Be,{view:0,detail:0}),jo=lt(Va),ji,xi,Ka,wu=B({},Va,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zi,button:0,buttons:0,relatedTarget:function(l){return l.relatedTarget===void 0?l.fromElement===l.srcElement?l.toElement:l.fromElement:l.relatedTarget},movementX:function(l){return\"movementX\"in l?l.movementX:(l!==Ka&&(Ka&&l.type===\"mousemove\"?(ji=l.screenX-Ka.screenX,xi=l.screenY-Ka.screenY):xi=ji=0,Ka=l),ji)},movementY:function(l){return\"movementY\"in l?l.movementY:xi}}),ts=lt(wu),xo=B({},wu,{dataTransfer:0}),To=lt(xo),zo=B({},Va,{relatedTarget:0}),Ti=lt(zo),Ao=B({},Be,{animationName:0,elapsedTime:0,pseudoElement:0}),Eo=lt(Ao),Oo=B({},Be,{clipboardData:function(l){return\"clipboardData\"in l?l.clipboardData:window.clipboardData}}),Mo=lt(Oo),_o=B({},Be,{data:0}),es=lt(_o),Do={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},No={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Ro={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Uo(l){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(l):(l=Ro[l])?!!t[l]:!1}function zi(){return Uo}var Co=B({},Va,{key:function(l){if(l.key){var t=Do[l.key]||l.key;if(t!==\"Unidentified\")return t}return l.type===\"keypress\"?(l=Vu(l),l===13?\"Enter\":String.fromCharCode(l)):l.type===\"keydown\"||l.type===\"keyup\"?No[l.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zi,charCode:function(l){return l.type===\"keypress\"?Vu(l):0},keyCode:function(l){return l.type===\"keydown\"||l.type===\"keyup\"?l.keyCode:0},which:function(l){return l.type===\"keypress\"?Vu(l):l.type===\"keydown\"||l.type===\"keyup\"?l.keyCode:0}}),Ho=lt(Co),qo=B({},wu,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),as=lt(qo),Bo=B({},Va,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zi}),Yo=lt(Bo),Go=B({},Be,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xo=lt(Go),Qo=B({},wu,{deltaX:function(l){return\"deltaX\"in l?l.deltaX:\"wheelDeltaX\"in l?-l.wheelDeltaX:0},deltaY:function(l){return\"deltaY\"in l?l.deltaY:\"wheelDeltaY\"in l?-l.wheelDeltaY:\"wheelDelta\"in l?-l.wheelDelta:0},deltaZ:0,deltaMode:0}),Zo=lt(Qo),Lo=B({},Be,{newState:0,oldState:0}),Vo=lt(Lo),Ko=[9,13,27,32],Ai=Vt&&\"CompositionEvent\"in window,Ja=null;Vt&&\"documentMode\"in document&&(Ja=document.documentMode);var Jo=Vt&&\"TextEvent\"in window&&!Ja,us=Vt&&(!Ai||Ja&&8<Ja&&11>=Ja),ns=\" \",is=!1;function cs(l,t){switch(l){case\"keyup\":return Ko.indexOf(t.keyCode)!==-1;case\"keydown\":return t.keyCode!==229;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function fs(l){return l=l.detail,typeof l==\"object\"&&\"data\"in l?l.data:null}var fa=!1;function wo(l,t){switch(l){case\"compositionend\":return fs(t);case\"keypress\":return t.which!==32?null:(is=!0,ns);case\"textInput\":return l=t.data,l===ns&&is?null:l;default:return null}}function $o(l,t){if(fa)return l===\"compositionend\"||!Ai&&cs(l,t)?(l=Pf(),Lu=bi=he=null,fa=!1,l):null;switch(l){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return us&&t.locale!==\"ko\"?null:t.data;default:return null}}var Wo={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function ss(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t===\"input\"?!!Wo[l.type]:t===\"textarea\"}function ds(l,t,e,a){ia?ca?ca.push(a):ca=[a]:ia=a,t=Bn(t,\"onChange\"),0<t.length&&(e=new Ju(\"onChange\",\"change\",null,e,a),l.push({event:e,listeners:t}))}var wa=null,$a=null;function Fo(l){J0(l,0)}function $u(l){var t=Qa(l);if(Kf(t))return l}function hs(l,t){if(l===\"change\")return t}var os=!1;if(Vt){var Ei;if(Vt){var Oi=\"oninput\"in document;if(!Oi){var rs=document.createElement(\"div\");rs.setAttribute(\"oninput\",\"return;\"),Oi=typeof rs.oninput==\"function\"}Ei=Oi}else Ei=!1;os=Ei&&(!document.documentMode||9<document.documentMode)}function ms(){wa&&(wa.detachEvent(\"onpropertychange\",vs),$a=wa=null)}function vs(l){if(l.propertyName===\"value\"&&$u($a)){var t=[];ds(t,$a,l,gi(l)),If(Fo,t)}}function ko(l,t,e){l===\"focusin\"?(ms(),wa=t,$a=e,wa.attachEvent(\"onpropertychange\",vs)):l===\"focusout\"&&ms()}function Io(l){if(l===\"selectionchange\"||l===\"keyup\"||l===\"keydown\")return $u($a)}function Po(l,t){if(l===\"click\")return $u(t)}function lr(l,t){if(l===\"input\"||l===\"change\")return $u(t)}function tr(l,t){return l===t&&(l!==0||1/l===1/t)||l!==l&&t!==t}var rt=typeof Object.is==\"function\"?Object.is:tr;function Wa(l,t){if(rt(l,t))return!0;if(typeof l!=\"object\"||l===null||typeof t!=\"object\"||t===null)return!1;var e=Object.keys(l),a=Object.keys(t);if(e.length!==a.length)return!1;for(a=0;a<e.length;a++){var u=e[a];if(!ui.call(t,u)||!rt(l[u],t[u]))return!1}return!0}function ys(l){for(;l&&l.firstChild;)l=l.firstChild;return l}function gs(l,t){var e=ys(l);l=0;for(var a;e;){if(e.nodeType===3){if(a=l+e.textContent.length,l<=t&&a>=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=ys(e)}}function Ss(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?Ss(l,t.parentNode):\"contains\"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function ps(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=Qu(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href==\"string\"}catch{e=!1}if(e)l=t.contentWindow;else break;t=Qu(l.document)}return t}function Mi(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t===\"input\"&&(l.type===\"text\"||l.type===\"search\"||l.type===\"tel\"||l.type===\"url\"||l.type===\"password\")||t===\"textarea\"||l.contentEditable===\"true\")}var er=Vt&&\"documentMode\"in document&&11>=document.documentMode,sa=null,_i=null,Fa=null,Di=!1;function bs(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;Di||sa==null||sa!==Qu(a)||(a=sa,\"selectionStart\"in a&&Mi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Fa&&Wa(Fa,a)||(Fa=a,a=Bn(_i,\"onSelect\"),0<a.length&&(t=new Ju(\"onSelect\",\"select\",null,t,e),l.push({event:t,listeners:a}),t.target=sa)))}function Ye(l,t){var e={};return e[l.toLowerCase()]=t.toLowerCase(),e[\"Webkit\"+l]=\"webkit\"+t,e[\"Moz\"+l]=\"moz\"+t,e}var da={animationend:Ye(\"Animation\",\"AnimationEnd\"),animationiteration:Ye(\"Animation\",\"AnimationIteration\"),animationstart:Ye(\"Animation\",\"AnimationStart\"),transitionrun:Ye(\"Transition\",\"TransitionRun\"),transitionstart:Ye(\"Transition\",\"TransitionStart\"),transitioncancel:Ye(\"Transition\",\"TransitionCancel\"),transitionend:Ye(\"Transition\",\"TransitionEnd\")},Ni={},js={};Vt&&(js=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete da.animationend.animation,delete da.animationiteration.animation,delete da.animationstart.animation),\"TransitionEvent\"in window||delete da.transitionend.transition);function Ge(l){if(Ni[l])return Ni[l];if(!da[l])return l;var t=da[l],e;for(e in t)if(t.hasOwnProperty(e)&&e in js)return Ni[l]=t[e];return l}var xs=Ge(\"animationend\"),Ts=Ge(\"animationiteration\"),zs=Ge(\"animationstart\"),ar=Ge(\"transitionrun\"),ur=Ge(\"transitionstart\"),nr=Ge(\"transitioncancel\"),As=Ge(\"transitionend\"),Es=new Map,Ri=\"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");Ri.push(\"scrollEnd\");function Ut(l,t){Es.set(l,t),qe(t,[l])}var Wu=typeof reportError==\"function\"?reportError:function(l){if(typeof window==\"object\"&&typeof window.ErrorEvent==\"function\"){var t=new window.ErrorEvent(\"error\",{bubbles:!0,cancelable:!0,message:typeof l==\"object\"&&l!==null&&typeof l.message==\"string\"?String(l.message):String(l),error:l});if(!window.dispatchEvent(t))return}else if(typeof process==\"object\"&&typeof process.emit==\"function\"){process.emit(\"uncaughtException\",l);return}console.error(l)},zt=[],ha=0,Ui=0;function Fu(){for(var l=ha,t=Ui=ha=0;t<l;){var e=zt[t];zt[t++]=null;var a=zt[t];zt[t++]=null;var u=zt[t];zt[t++]=null;var n=zt[t];if(zt[t++]=null,a!==null&&u!==null){var i=a.pending;i===null?u.next=u:(u.next=i.next,i.next=u),a.pending=u}n!==0&&Os(e,u,n)}}function ku(l,t,e,a){zt[ha++]=l,zt[ha++]=t,zt[ha++]=e,zt[ha++]=a,Ui|=a,l.lanes|=a,l=l.alternate,l!==null&&(l.lanes|=a)}function Ci(l,t,e,a){return ku(l,t,e,a),Iu(l)}function Xe(l,t){return ku(l,null,null,t),Iu(l)}function Os(l,t,e){l.lanes|=e;var a=l.alternate;a!==null&&(a.lanes|=e);for(var u=!1,n=l.return;n!==null;)n.childLanes|=e,a=n.alternate,a!==null&&(a.childLanes|=e),n.tag===22&&(l=n.stateNode,l===null||l._visibility&1||(u=!0)),l=n,n=n.return;return l.tag===3?(n=l.stateNode,u&&t!==null&&(u=31-ot(e),l=n.hiddenUpdates,a=l[u],a===null?l[u]=[t]:a.push(t),t.lane=e|536870912),n):null}function Iu(l){if(50<Su)throw Su=0,Lc=null,Error(s(185));for(var t=l.return;t!==null;)l=t,t=l.return;return l.tag===3?l.stateNode:null}var oa={};function ir(l,t,e,a){this.tag=l,this.key=e,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function mt(l,t,e,a){return new ir(l,t,e,a)}function Hi(l){return l=l.prototype,!(!l||!l.isReactComponent)}function Kt(l,t){var e=l.alternate;return e===null?(e=mt(l.tag,t,l.key,l.mode),e.elementType=l.elementType,e.type=l.type,e.stateNode=l.stateNode,e.alternate=l,l.alternate=e):(e.pendingProps=t,e.type=l.type,e.flags=0,e.subtreeFlags=0,e.deletions=null),e.flags=l.flags&65011712,e.childLanes=l.childLanes,e.lanes=l.lanes,e.child=l.child,e.memoizedProps=l.memoizedProps,e.memoizedState=l.memoizedState,e.updateQueue=l.updateQueue,t=l.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},e.sibling=l.sibling,e.index=l.index,e.ref=l.ref,e.refCleanup=l.refCleanup,e}function Ms(l,t){l.flags&=65011714;var e=l.alternate;return e===null?(l.childLanes=0,l.lanes=t,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=e.childLanes,l.lanes=e.lanes,l.child=e.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=e.memoizedProps,l.memoizedState=e.memoizedState,l.updateQueue=e.updateQueue,l.type=e.type,t=e.dependencies,l.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),l}function Pu(l,t,e,a,u,n){var i=0;if(a=l,typeof l==\"function\")Hi(l)&&(i=1);else if(typeof l==\"string\")i=hm(l,e,G.current)?26:l===\"html\"||l===\"head\"||l===\"body\"?27:5;else l:switch(l){case jt:return l=mt(31,e,t,u),l.elementType=jt,l.lanes=n,l;case Xl:return Qe(e.children,u,n,t);case it:i=8,u|=24;break;case Fl:return l=mt(12,e,t,u|2),l.elementType=Fl,l.lanes=n,l;case ct:return l=mt(13,e,t,u),l.elementType=ct,l.lanes=n,l;case ql:return l=mt(19,e,t,u),l.elementType=ql,l.lanes=n,l;default:if(typeof l==\"object\"&&l!==null)switch(l.$$typeof){case El:i=10;break l;case $l:i=9;break l;case Il:i=11;break l;case W:i=14;break l;case Ol:i=16,a=null;break l}i=29,e=Error(s(130,l===null?\"null\":typeof l,\"\")),a=null}return t=mt(i,e,t,u),t.elementType=l,t.type=a,t.lanes=n,t}function Qe(l,t,e,a){return l=mt(7,l,a,t),l.lanes=e,l}function qi(l,t,e){return l=mt(6,l,null,t),l.lanes=e,l}function _s(l){var t=mt(18,null,null,0);return t.stateNode=l,t}function Bi(l,t,e){return t=mt(4,l.children!==null?l.children:[],l.key,t),t.lanes=e,t.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},t}var Ds=new WeakMap;function At(l,t){if(typeof l==\"object\"&&l!==null){var e=Ds.get(l);return e!==void 0?e:(t={value:l,source:t,stack:_f(t)},Ds.set(l,t),t)}return{value:l,source:t,stack:_f(t)}}var ra=[],ma=0,ln=null,ka=0,Et=[],Ot=0,oe=null,Bt=1,Yt=\"\";function Jt(l,t){ra[ma++]=ka,ra[ma++]=ln,ln=l,ka=t}function Ns(l,t,e){Et[Ot++]=Bt,Et[Ot++]=Yt,Et[Ot++]=oe,oe=l;var a=Bt;l=Yt;var u=32-ot(a)-1;a&=~(1<<u),e+=1;var n=32-ot(t)+u;if(30<n){var i=u-u%5;n=(a&(1<<i)-1).toString(32),a>>=i,u-=i,Bt=1<<32-ot(t)+u|e<<u|a,Yt=n+l}else Bt=1<<n|e<<u|a,Yt=l}function Yi(l){l.return!==null&&(Jt(l,1),Ns(l,1,0))}function Gi(l){for(;l===ln;)ln=ra[--ma],ra[ma]=null,ka=ra[--ma],ra[ma]=null;for(;l===oe;)oe=Et[--Ot],Et[Ot]=null,Yt=Et[--Ot],Et[Ot]=null,Bt=Et[--Ot],Et[Ot]=null}function Rs(l,t){Et[Ot++]=Bt,Et[Ot++]=Yt,Et[Ot++]=oe,Bt=t.id,Yt=t.overflow,oe=l}var Ll=null,yl=null,tl=!1,re=null,Mt=!1,Xi=Error(s(519));function me(l){var t=Error(s(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?\"text\":\"HTML\",\"\"));throw Ia(At(t,l)),Xi}function Us(l){var t=l.stateNode,e=l.type,a=l.memoizedProps;switch(t[Zl]=l,t[Pl]=a,e){case\"dialog\":k(\"cancel\",t),k(\"close\",t);break;case\"iframe\":case\"object\":case\"embed\":k(\"load\",t);break;case\"video\":case\"audio\":for(e=0;e<bu.length;e++)k(bu[e],t);break;case\"source\":k(\"error\",t);break;case\"img\":case\"image\":case\"link\":k(\"error\",t),k(\"load\",t);break;case\"details\":k(\"toggle\",t);break;case\"input\":k(\"invalid\",t),Jf(t,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case\"select\":k(\"invalid\",t);break;case\"textarea\":k(\"invalid\",t),$f(t,a.value,a.defaultValue,a.children)}e=a.children,typeof e!=\"string\"&&typeof e!=\"number\"&&typeof e!=\"bigint\"||t.textContent===\"\"+e||a.suppressHydrationWarning===!0||F0(t.textContent,e)?(a.popover!=null&&(k(\"beforetoggle\",t),k(\"toggle\",t)),a.onScroll!=null&&k(\"scroll\",t),a.onScrollEnd!=null&&k(\"scrollend\",t),a.onClick!=null&&(t.onclick=Lt),t=!0):t=!1,t||me(l,!0)}function Cs(l){for(Ll=l.return;Ll;)switch(Ll.tag){case 5:case 31:case 13:Mt=!1;return;case 27:case 3:Mt=!0;return;default:Ll=Ll.return}}function va(l){if(l!==Ll)return!1;if(!tl)return Cs(l),tl=!0,!1;var t=l.tag,e;if((e=t!==3&&t!==27)&&((e=t===5)&&(e=l.type,e=!(e!==\"form\"&&e!==\"button\")||uf(l.type,l.memoizedProps)),e=!e),e&&yl&&me(l),Cs(l),t===13){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(s(317));yl=nh(l)}else if(t===31){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(s(317));yl=nh(l)}else t===27?(t=yl,Me(l.type)?(l=df,df=null,yl=l):yl=t):yl=Ll?Dt(l.stateNode.nextSibling):null;return!0}function Ze(){yl=Ll=null,tl=!1}function Qi(){var l=re;return l!==null&&(ut===null?ut=l:ut.push.apply(ut,l),re=null),l}function Ia(l){re===null?re=[l]:re.push(l)}var Zi=r(null),Le=null,wt=null;function ve(l,t,e){C(Zi,t._currentValue),t._currentValue=e}function $t(l){l._currentValue=Zi.current,M(Zi)}function Li(l,t,e){for(;l!==null;){var a=l.alternate;if((l.childLanes&t)!==t?(l.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),l===e)break;l=l.return}}function Vi(l,t,e,a){var u=l.child;for(u!==null&&(u.return=l);u!==null;){var n=u.dependencies;if(n!==null){var i=u.child;n=n.firstContext;l:for(;n!==null;){var f=n;n=u;for(var h=0;h<t.length;h++)if(f.context===t[h]){n.lanes|=e,f=n.alternate,f!==null&&(f.lanes|=e),Li(n.return,e,l),a||(i=null);break l}n=f.next}}else if(u.tag===18){if(i=u.return,i===null)throw Error(s(341));i.lanes|=e,n=i.alternate,n!==null&&(n.lanes|=e),Li(i,e,l),i=null}else i=u.child;if(i!==null)i.return=u;else for(i=u;i!==null;){if(i===l){i=null;break}if(u=i.sibling,u!==null){u.return=i.return,i=u;break}i=i.return}u=i}}function ya(l,t,e,a){l=null;for(var u=t,n=!1;u!==null;){if(!n){if((u.flags&524288)!==0)n=!0;else if((u.flags&262144)!==0)break}if(u.tag===10){var i=u.alternate;if(i===null)throw Error(s(387));if(i=i.memoizedProps,i!==null){var f=u.type;rt(u.pendingProps.value,i.value)||(l!==null?l.push(f):l=[f])}}else if(u===ul.current){if(i=u.alternate,i===null)throw Error(s(387));i.memoizedState.memoizedState!==u.memoizedState.memoizedState&&(l!==null?l.push(Au):l=[Au])}u=u.return}l!==null&&Vi(t,l,e,a),t.flags|=262144}function tn(l){for(l=l.firstContext;l!==null;){if(!rt(l.context._currentValue,l.memoizedValue))return!0;l=l.next}return!1}function Ve(l){Le=l,wt=null,l=l.dependencies,l!==null&&(l.firstContext=null)}function Vl(l){return Hs(Le,l)}function en(l,t){return Le===null&&Ve(l),Hs(l,t)}function Hs(l,t){var e=t._currentValue;if(t={context:t,memoizedValue:e,next:null},wt===null){if(l===null)throw Error(s(308));wt=t,l.dependencies={lanes:0,firstContext:t},l.flags|=524288}else wt=wt.next=t;return e}var cr=typeof AbortController<\"u\"?AbortController:function(){var l=[],t=this.signal={aborted:!1,addEventListener:function(e,a){l.push(a)}};this.abort=function(){t.aborted=!0,l.forEach(function(e){return e()})}},fr=d.unstable_scheduleCallback,sr=d.unstable_NormalPriority,_l={$$typeof:El,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ki(){return{controller:new cr,data:new Map,refCount:0}}function Pa(l){l.refCount--,l.refCount===0&&fr(sr,function(){l.controller.abort()})}var lu=null,Ji=0,ga=0,Sa=null;function dr(l,t){if(lu===null){var e=lu=[];Ji=0,ga=Wc(),Sa={status:\"pending\",value:void 0,then:function(a){e.push(a)}}}return Ji++,t.then(qs,qs),t}function qs(){if(--Ji===0&&lu!==null){Sa!==null&&(Sa.status=\"fulfilled\");var l=lu;lu=null,ga=0,Sa=null;for(var t=0;t<l.length;t++)(0,l[t])()}}function hr(l,t){var e=[],a={status:\"pending\",value:null,reason:null,then:function(u){e.push(u)}};return l.then(function(){a.status=\"fulfilled\",a.value=t;for(var u=0;u<e.length;u++)(0,e[u])(t)},function(u){for(a.status=\"rejected\",a.reason=u,u=0;u<e.length;u++)(0,e[u])(void 0)}),a}var Bs=x.S;x.S=function(l,t){b0=dt(),typeof t==\"object\"&&t!==null&&typeof t.then==\"function\"&&dr(l,t),Bs!==null&&Bs(l,t)};var Ke=r(null);function wi(){var l=Ke.current;return l!==null?l:ml.pooledCache}function an(l,t){t===null?C(Ke,Ke.current):C(Ke,t.pool)}function Ys(){var l=wi();return l===null?null:{parent:_l._currentValue,pool:l}}var pa=Error(s(460)),$i=Error(s(474)),un=Error(s(542)),nn={then:function(){}};function Gs(l){return l=l.status,l===\"fulfilled\"||l===\"rejected\"}function Xs(l,t,e){switch(e=l[e],e===void 0?l.push(t):e!==t&&(t.then(Lt,Lt),t=e),t.status){case\"fulfilled\":return t.value;case\"rejected\":throw l=t.reason,Zs(l),l;default:if(typeof t.status==\"string\")t.then(Lt,Lt);else{if(l=ml,l!==null&&100<l.shellSuspendCounter)throw Error(s(482));l=t,l.status=\"pending\",l.then(function(a){if(t.status===\"pending\"){var u=t;u.status=\"fulfilled\",u.value=a}},function(a){if(t.status===\"pending\"){var u=t;u.status=\"rejected\",u.reason=a}})}switch(t.status){case\"fulfilled\":return t.value;case\"rejected\":throw l=t.reason,Zs(l),l}throw we=t,pa}}function Je(l){try{var t=l._init;return t(l._payload)}catch(e){throw e!==null&&typeof e==\"object\"&&typeof e.then==\"function\"?(we=e,pa):e}}var we=null;function Qs(){if(we===null)throw Error(s(459));var l=we;return we=null,l}function Zs(l){if(l===pa||l===un)throw Error(s(483))}var ba=null,tu=0;function cn(l){var t=tu;return tu+=1,ba===null&&(ba=[]),Xs(ba,l,t)}function eu(l,t){t=t.props.ref,l.ref=t!==void 0?t:null}function fn(l,t){throw t.$$typeof===H?Error(s(525)):(l=Object.prototype.toString.call(t),Error(s(31,l===\"[object Object]\"?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":l)))}function Ls(l){function t(m,o){if(l){var v=m.deletions;v===null?(m.deletions=[o],m.flags|=16):v.push(o)}}function e(m,o){if(!l)return null;for(;o!==null;)t(m,o),o=o.sibling;return null}function a(m){for(var o=new Map;m!==null;)m.key!==null?o.set(m.key,m):o.set(m.index,m),m=m.sibling;return o}function u(m,o){return m=Kt(m,o),m.index=0,m.sibling=null,m}function n(m,o,v){return m.index=v,l?(v=m.alternate,v!==null?(v=v.index,v<o?(m.flags|=67108866,o):v):(m.flags|=67108866,o)):(m.flags|=1048576,o)}function i(m){return l&&m.alternate===null&&(m.flags|=67108866),m}function f(m,o,v,E){return o===null||o.tag!==6?(o=qi(v,m.mode,E),o.return=m,o):(o=u(o,v),o.return=m,o)}function h(m,o,v,E){var Q=v.type;return Q===Xl?T(m,o,v.props.children,E,v.key):o!==null&&(o.elementType===Q||typeof Q==\"object\"&&Q!==null&&Q.$$typeof===Ol&&Je(Q)===o.type)?(o=u(o,v.props),eu(o,v),o.return=m,o):(o=Pu(v.type,v.key,v.props,null,m.mode,E),eu(o,v),o.return=m,o)}function y(m,o,v,E){return o===null||o.tag!==4||o.stateNode.containerInfo!==v.containerInfo||o.stateNode.implementation!==v.implementation?(o=Bi(v,m.mode,E),o.return=m,o):(o=u(o,v.children||[]),o.return=m,o)}function T(m,o,v,E,Q){return o===null||o.tag!==7?(o=Qe(v,m.mode,E,Q),o.return=m,o):(o=u(o,v),o.return=m,o)}function O(m,o,v){if(typeof o==\"string\"&&o!==\"\"||typeof o==\"number\"||typeof o==\"bigint\")return o=qi(\"\"+o,m.mode,v),o.return=m,o;if(typeof o==\"object\"&&o!==null){switch(o.$$typeof){case el:return v=Pu(o.type,o.key,o.props,null,m.mode,v),eu(v,o),v.return=m,v;case Hl:return o=Bi(o,m.mode,v),o.return=m,o;case Ol:return o=Je(o),O(m,o,v)}if(Ml(o)||bl(o))return o=Qe(o,m.mode,v,null),o.return=m,o;if(typeof o.then==\"function\")return O(m,cn(o),v);if(o.$$typeof===El)return O(m,en(m,o),v);fn(m,o)}return null}function S(m,o,v,E){var Q=o!==null?o.key:null;if(typeof v==\"string\"&&v!==\"\"||typeof v==\"number\"||typeof v==\"bigint\")return Q!==null?null:f(m,o,\"\"+v,E);if(typeof v==\"object\"&&v!==null){switch(v.$$typeof){case el:return v.key===Q?h(m,o,v,E):null;case Hl:return v.key===Q?y(m,o,v,E):null;case Ol:return v=Je(v),S(m,o,v,E)}if(Ml(v)||bl(v))return Q!==null?null:T(m,o,v,E,null);if(typeof v.then==\"function\")return S(m,o,cn(v),E);if(v.$$typeof===El)return S(m,o,en(m,v),E);fn(m,v)}return null}function p(m,o,v,E,Q){if(typeof E==\"string\"&&E!==\"\"||typeof E==\"number\"||typeof E==\"bigint\")return m=m.get(v)||null,f(o,m,\"\"+E,Q);if(typeof E==\"object\"&&E!==null){switch(E.$$typeof){case el:return m=m.get(E.key===null?v:E.key)||null,h(o,m,E,Q);case Hl:return m=m.get(E.key===null?v:E.key)||null,y(o,m,E,Q);case Ol:return E=Je(E),p(m,o,v,E,Q)}if(Ml(E)||bl(E))return m=m.get(v)||null,T(o,m,E,Q,null);if(typeof E.then==\"function\")return p(m,o,v,cn(E),Q);if(E.$$typeof===El)return p(m,o,v,en(o,E),Q);fn(o,E)}return null}function Y(m,o,v,E){for(var Q=null,nl=null,X=o,w=o=0,P=null;X!==null&&w<v.length;w++){X.index>w?(P=X,X=null):P=X.sibling;var il=S(m,X,v[w],E);if(il===null){X===null&&(X=P);break}l&&X&&il.alternate===null&&t(m,X),o=n(il,o,w),nl===null?Q=il:nl.sibling=il,nl=il,X=P}if(w===v.length)return e(m,X),tl&&Jt(m,w),Q;if(X===null){for(;w<v.length;w++)X=O(m,v[w],E),X!==null&&(o=n(X,o,w),nl===null?Q=X:nl.sibling=X,nl=X);return tl&&Jt(m,w),Q}for(X=a(X);w<v.length;w++)P=p(X,m,w,v[w],E),P!==null&&(l&&P.alternate!==null&&X.delete(P.key===null?w:P.key),o=n(P,o,w),nl===null?Q=P:nl.sibling=P,nl=P);return l&&X.forEach(function(Ue){return t(m,Ue)}),tl&&Jt(m,w),Q}function L(m,o,v,E){if(v==null)throw Error(s(151));for(var Q=null,nl=null,X=o,w=o=0,P=null,il=v.next();X!==null&&!il.done;w++,il=v.next()){X.index>w?(P=X,X=null):P=X.sibling;var Ue=S(m,X,il.value,E);if(Ue===null){X===null&&(X=P);break}l&&X&&Ue.alternate===null&&t(m,X),o=n(Ue,o,w),nl===null?Q=Ue:nl.sibling=Ue,nl=Ue,X=P}if(il.done)return e(m,X),tl&&Jt(m,w),Q;if(X===null){for(;!il.done;w++,il=v.next())il=O(m,il.value,E),il!==null&&(o=n(il,o,w),nl===null?Q=il:nl.sibling=il,nl=il);return tl&&Jt(m,w),Q}for(X=a(X);!il.done;w++,il=v.next())il=p(X,m,w,il.value,E),il!==null&&(l&&il.alternate!==null&&X.delete(il.key===null?w:il.key),o=n(il,o,w),nl===null?Q=il:nl.sibling=il,nl=il);return l&&X.forEach(function(xm){return t(m,xm)}),tl&&Jt(m,w),Q}function rl(m,o,v,E){if(typeof v==\"object\"&&v!==null&&v.type===Xl&&v.key===null&&(v=v.props.children),typeof v==\"object\"&&v!==null){switch(v.$$typeof){case el:l:{for(var Q=v.key;o!==null;){if(o.key===Q){if(Q=v.type,Q===Xl){if(o.tag===7){e(m,o.sibling),E=u(o,v.props.children),E.return=m,m=E;break l}}else if(o.elementType===Q||typeof Q==\"object\"&&Q!==null&&Q.$$typeof===Ol&&Je(Q)===o.type){e(m,o.sibling),E=u(o,v.props),eu(E,v),E.return=m,m=E;break l}e(m,o);break}else t(m,o);o=o.sibling}v.type===Xl?(E=Qe(v.props.children,m.mode,E,v.key),E.return=m,m=E):(E=Pu(v.type,v.key,v.props,null,m.mode,E),eu(E,v),E.return=m,m=E)}return i(m);case Hl:l:{for(Q=v.key;o!==null;){if(o.key===Q)if(o.tag===4&&o.stateNode.containerInfo===v.containerInfo&&o.stateNode.implementation===v.implementation){e(m,o.sibling),E=u(o,v.children||[]),E.return=m,m=E;break l}else{e(m,o);break}else t(m,o);o=o.sibling}E=Bi(v,m.mode,E),E.return=m,m=E}return i(m);case Ol:return v=Je(v),rl(m,o,v,E)}if(Ml(v))return Y(m,o,v,E);if(bl(v)){if(Q=bl(v),typeof Q!=\"function\")throw Error(s(150));return v=Q.call(v),L(m,o,v,E)}if(typeof v.then==\"function\")return rl(m,o,cn(v),E);if(v.$$typeof===El)return rl(m,o,en(m,v),E);fn(m,v)}return typeof v==\"string\"&&v!==\"\"||typeof v==\"number\"||typeof v==\"bigint\"?(v=\"\"+v,o!==null&&o.tag===6?(e(m,o.sibling),E=u(o,v),E.return=m,m=E):(e(m,o),E=qi(v,m.mode,E),E.return=m,m=E),i(m)):e(m,o)}return function(m,o,v,E){try{tu=0;var Q=rl(m,o,v,E);return ba=null,Q}catch(X){if(X===pa||X===un)throw X;var nl=mt(29,X,null,m.mode);return nl.lanes=E,nl.return=m,nl}finally{}}}var $e=Ls(!0),Vs=Ls(!1),ye=!1;function Wi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fi(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ge(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function Se(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(cl&2)!==0){var u=a.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),a.pending=t,t=Iu(l),Os(l,null,e),t}return ku(l,a,t,e),Iu(l)}function au(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Hf(l,e)}}function ki(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var u=null,n=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};n===null?u=n=i:n=n.next=i,e=e.next}while(e!==null);n===null?u=n=t:n=n.next=t}else u=n=t;e={baseState:a.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var Ii=!1;function uu(){if(Ii){var l=Sa;if(l!==null)throw l}}function nu(l,t,e,a){Ii=!1;var u=l.updateQueue;ye=!1;var n=u.firstBaseUpdate,i=u.lastBaseUpdate,f=u.shared.pending;if(f!==null){u.shared.pending=null;var h=f,y=h.next;h.next=null,i===null?n=y:i.next=y,i=h;var T=l.alternate;T!==null&&(T=T.updateQueue,f=T.lastBaseUpdate,f!==i&&(f===null?T.firstBaseUpdate=y:f.next=y,T.lastBaseUpdate=h))}if(n!==null){var O=u.baseState;i=0,T=y=h=null,f=n;do{var S=f.lane&-536870913,p=S!==f.lane;if(p?(I&S)===S:(a&S)===S){S!==0&&S===ga&&(Ii=!0),T!==null&&(T=T.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});l:{var Y=l,L=f;S=t;var rl=e;switch(L.tag){case 1:if(Y=L.payload,typeof Y==\"function\"){O=Y.call(rl,O,S);break l}O=Y;break l;case 3:Y.flags=Y.flags&-65537|128;case 0:if(Y=L.payload,S=typeof Y==\"function\"?Y.call(rl,O,S):Y,S==null)break l;O=B({},O,S);break l;case 2:ye=!0}}S=f.callback,S!==null&&(l.flags|=64,p&&(l.flags|=8192),p=u.callbacks,p===null?u.callbacks=[S]:p.push(S))}else p={lane:S,tag:f.tag,payload:f.payload,callback:f.callback,next:null},T===null?(y=T=p,h=O):T=T.next=p,i|=S;if(f=f.next,f===null){if(f=u.shared.pending,f===null)break;p=f,f=p.next,p.next=null,u.lastBaseUpdate=p,u.shared.pending=null}}while(!0);T===null&&(h=O),u.baseState=h,u.firstBaseUpdate=y,u.lastBaseUpdate=T,n===null&&(u.shared.lanes=0),Te|=i,l.lanes=i,l.memoizedState=O}}function Ks(l,t){if(typeof l!=\"function\")throw Error(s(191,l));l.call(t)}function Js(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;l<e.length;l++)Ks(e[l],t)}var ja=r(null),sn=r(0);function ws(l,t){l=ae,C(sn,l),C(ja,t),ae=l|t.baseLanes}function Pi(){C(sn,ae),C(ja,ja.current)}function lc(){ae=sn.current,M(ja),M(sn)}var vt=r(null),_t=null;function pe(l){var t=l.alternate;C(zl,zl.current&1),C(vt,l),_t===null&&(t===null||ja.current!==null||t.memoizedState!==null)&&(_t=l)}function tc(l){C(zl,zl.current),C(vt,l),_t===null&&(_t=l)}function $s(l){l.tag===22?(C(zl,zl.current),C(vt,l),_t===null&&(_t=l)):be()}function be(){C(zl,zl.current),C(vt,vt.current)}function yt(l){M(vt),_t===l&&(_t=null),M(zl)}var zl=r(0);function dn(l){for(var t=l;t!==null;){if(t.tag===13){var e=t.memoizedState;if(e!==null&&(e=e.dehydrated,e===null||ff(e)||sf(e)))return t}else if(t.tag===19&&(t.memoizedProps.revealOrder===\"forwards\"||t.memoizedProps.revealOrder===\"backwards\"||t.memoizedProps.revealOrder===\"unstable_legacy-backwards\"||t.memoizedProps.revealOrder===\"together\")){if((t.flags&128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===l)break;for(;t.sibling===null;){if(t.return===null||t.return===l)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Wt=0,J=null,hl=null,Dl=null,hn=!1,xa=!1,We=!1,on=0,iu=0,Ta=null,or=0;function xl(){throw Error(s(321))}function ec(l,t){if(t===null)return!1;for(var e=0;e<t.length&&e<l.length;e++)if(!rt(l[e],t[e]))return!1;return!0}function ac(l,t,e,a,u,n){return Wt=n,J=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,x.H=l===null||l.memoizedState===null?Nd:Sc,We=!1,n=e(a,u),We=!1,xa&&(n=Fs(t,e,a,u)),Ws(l),n}function Ws(l){x.H=su;var t=hl!==null&&hl.next!==null;if(Wt=0,Dl=hl=J=null,hn=!1,iu=0,Ta=null,t)throw Error(s(300));l===null||Nl||(l=l.dependencies,l!==null&&tn(l)&&(Nl=!0))}function Fs(l,t,e,a){J=l;var u=0;do{if(xa&&(Ta=null),iu=0,xa=!1,25<=u)throw Error(s(301));if(u+=1,Dl=hl=null,l.updateQueue!=null){var n=l.updateQueue;n.lastEffect=null,n.events=null,n.stores=null,n.memoCache!=null&&(n.memoCache.index=0)}x.H=Rd,n=t(e,a)}while(xa);return n}function rr(){var l=x.H,t=l.useState()[0];return t=typeof t.then==\"function\"?cu(t):t,l=l.useState()[0],(hl!==null?hl.memoizedState:null)!==l&&(J.flags|=1024),t}function uc(){var l=on!==0;return on=0,l}function nc(l,t,e){t.updateQueue=l.updateQueue,t.flags&=-2053,l.lanes&=~e}function ic(l){if(hn){for(l=l.memoizedState;l!==null;){var t=l.queue;t!==null&&(t.pending=null),l=l.next}hn=!1}Wt=0,Dl=hl=J=null,xa=!1,iu=on=0,Ta=null}function kl(){var l={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Dl===null?J.memoizedState=Dl=l:Dl=Dl.next=l,Dl}function Al(){if(hl===null){var l=J.alternate;l=l!==null?l.memoizedState:null}else l=hl.next;var t=Dl===null?J.memoizedState:Dl.next;if(t!==null)Dl=t,hl=l;else{if(l===null)throw J.alternate===null?Error(s(467)):Error(s(310));hl=l,l={memoizedState:hl.memoizedState,baseState:hl.baseState,baseQueue:hl.baseQueue,queue:hl.queue,next:null},Dl===null?J.memoizedState=Dl=l:Dl=Dl.next=l}return Dl}function rn(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function cu(l){var t=iu;return iu+=1,Ta===null&&(Ta=[]),l=Xs(Ta,l,t),t=J,(Dl===null?t.memoizedState:Dl.next)===null&&(t=t.alternate,x.H=t===null||t.memoizedState===null?Nd:Sc),l}function mn(l){if(l!==null&&typeof l==\"object\"){if(typeof l.then==\"function\")return cu(l);if(l.$$typeof===El)return Vl(l)}throw Error(s(438,String(l)))}function cc(l){var t=null,e=J.updateQueue;if(e!==null&&(t=e.memoCache),t==null){var a=J.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(t={data:a.data.map(function(u){return u.slice()}),index:0})))}if(t==null&&(t={data:[],index:0}),e===null&&(e=rn(),J.updateQueue=e),e.memoCache=t,e=t.data[t.index],e===void 0)for(e=t.data[t.index]=Array(l),a=0;a<l;a++)e[a]=ce;return t.index++,e}function Ft(l,t){return typeof t==\"function\"?t(l):t}function vn(l){var t=Al();return fc(t,hl,l)}function fc(l,t,e){var a=l.queue;if(a===null)throw Error(s(311));a.lastRenderedReducer=e;var u=l.baseQueue,n=a.pending;if(n!==null){if(u!==null){var i=u.next;u.next=n.next,n.next=i}t.baseQueue=u=n,a.pending=null}if(n=l.baseState,u===null)l.memoizedState=n;else{t=u.next;var f=i=null,h=null,y=t,T=!1;do{var O=y.lane&-536870913;if(O!==y.lane?(I&O)===O:(Wt&O)===O){var S=y.revertLane;if(S===0)h!==null&&(h=h.next={lane:0,revertLane:0,gesture:null,action:y.action,hasEagerState:y.hasEagerState,eagerState:y.eagerState,next:null}),O===ga&&(T=!0);else if((Wt&S)===S){y=y.next,S===ga&&(T=!0);continue}else O={lane:0,revertLane:y.revertLane,gesture:null,action:y.action,hasEagerState:y.hasEagerState,eagerState:y.eagerState,next:null},h===null?(f=h=O,i=n):h=h.next=O,J.lanes|=S,Te|=S;O=y.action,We&&e(n,O),n=y.hasEagerState?y.eagerState:e(n,O)}else S={lane:O,revertLane:y.revertLane,gesture:y.gesture,action:y.action,hasEagerState:y.hasEagerState,eagerState:y.eagerState,next:null},h===null?(f=h=S,i=n):h=h.next=S,J.lanes|=O,Te|=O;y=y.next}while(y!==null&&y!==t);if(h===null?i=n:h.next=f,!rt(n,l.memoizedState)&&(Nl=!0,T&&(e=Sa,e!==null)))throw e;l.memoizedState=n,l.baseState=i,l.baseQueue=h,a.lastRenderedState=n}return u===null&&(a.lanes=0),[l.memoizedState,a.dispatch]}function sc(l){var t=Al(),e=t.queue;if(e===null)throw Error(s(311));e.lastRenderedReducer=l;var a=e.dispatch,u=e.pending,n=t.memoizedState;if(u!==null){e.pending=null;var i=u=u.next;do n=l(n,i.action),i=i.next;while(i!==u);rt(n,t.memoizedState)||(Nl=!0),t.memoizedState=n,t.baseQueue===null&&(t.baseState=n),e.lastRenderedState=n}return[n,a]}function ks(l,t,e){var a=J,u=Al(),n=tl;if(n){if(e===void 0)throw Error(s(407));e=e()}else e=t();var i=!rt((hl||u).memoizedState,e);if(i&&(u.memoizedState=e,Nl=!0),u=u.queue,oc(ld.bind(null,a,u,l),[l]),u.getSnapshot!==t||i||Dl!==null&&Dl.memoizedState.tag&1){if(a.flags|=2048,za(9,{destroy:void 0},Ps.bind(null,a,u,e,t),null),ml===null)throw Error(s(349));n||(Wt&127)!==0||Is(a,t,e)}return e}function Is(l,t,e){l.flags|=16384,l={getSnapshot:t,value:e},t=J.updateQueue,t===null?(t=rn(),J.updateQueue=t,t.stores=[l]):(e=t.stores,e===null?t.stores=[l]:e.push(l))}function Ps(l,t,e,a){t.value=e,t.getSnapshot=a,td(t)&&ed(l)}function ld(l,t,e){return e(function(){td(t)&&ed(l)})}function td(l){var t=l.getSnapshot;l=l.value;try{var e=t();return!rt(l,e)}catch{return!0}}function ed(l){var t=Xe(l,2);t!==null&&nt(t,l,2)}function dc(l){var t=kl();if(typeof l==\"function\"){var e=l;if(l=e(),We){se(!0);try{e()}finally{se(!1)}}}return t.memoizedState=t.baseState=l,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ft,lastRenderedState:l},t}function ad(l,t,e,a){return l.baseState=e,fc(l,hl,typeof a==\"function\"?a:Ft)}function mr(l,t,e,a,u){if(Sn(l))throw Error(s(485));if(l=t.action,l!==null){var n={payload:u,action:l,next:null,isTransition:!0,status:\"pending\",value:null,reason:null,listeners:[],then:function(i){n.listeners.push(i)}};x.T!==null?e(!0):n.isTransition=!1,a(n),e=t.pending,e===null?(n.next=t.pending=n,ud(t,n)):(n.next=e.next,t.pending=e.next=n)}}function ud(l,t){var e=t.action,a=t.payload,u=l.state;if(t.isTransition){var n=x.T,i={};x.T=i;try{var f=e(u,a),h=x.S;h!==null&&h(i,f),nd(l,t,f)}catch(y){hc(l,t,y)}finally{n!==null&&i.types!==null&&(n.types=i.types),x.T=n}}else try{n=e(u,a),nd(l,t,n)}catch(y){hc(l,t,y)}}function nd(l,t,e){e!==null&&typeof e==\"object\"&&typeof e.then==\"function\"?e.then(function(a){id(l,t,a)},function(a){return hc(l,t,a)}):id(l,t,e)}function id(l,t,e){t.status=\"fulfilled\",t.value=e,cd(t),l.state=e,t=l.pending,t!==null&&(e=t.next,e===t?l.pending=null:(e=e.next,t.next=e,ud(l,e)))}function hc(l,t,e){var a=l.pending;if(l.pending=null,a!==null){a=a.next;do t.status=\"rejected\",t.reason=e,cd(t),t=t.next;while(t!==a)}l.action=null}function cd(l){l=l.listeners;for(var t=0;t<l.length;t++)(0,l[t])()}function fd(l,t){return t}function sd(l,t){if(tl){var e=ml.formState;if(e!==null){l:{var a=J;if(tl){if(yl){t:{for(var u=yl,n=Mt;u.nodeType!==8;){if(!n){u=null;break t}if(u=Dt(u.nextSibling),u===null){u=null;break t}}n=u.data,u=n===\"F!\"||n===\"F\"?u:null}if(u){yl=Dt(u.nextSibling),a=u.data===\"F!\";break l}}me(a)}a=!1}a&&(t=e[0])}}return e=kl(),e.memoizedState=e.baseState=t,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:fd,lastRenderedState:t},e.queue=a,e=Md.bind(null,J,a),a.dispatch=e,a=dc(!1),n=gc.bind(null,J,!1,a.queue),a=kl(),u={state:t,dispatch:null,action:l,pending:null},a.queue=u,e=mr.bind(null,J,u,n,e),u.dispatch=e,a.memoizedState=l,[t,e,!1]}function dd(l){var t=Al();return hd(t,hl,l)}function hd(l,t,e){if(t=fc(l,t,fd)[0],l=vn(Ft)[0],typeof t==\"object\"&&t!==null&&typeof t.then==\"function\")try{var a=cu(t)}catch(i){throw i===pa?un:i}else a=t;t=Al();var u=t.queue,n=u.dispatch;return e!==t.memoizedState&&(J.flags|=2048,za(9,{destroy:void 0},vr.bind(null,u,e),null)),[a,n,l]}function vr(l,t){l.action=t}function od(l){var t=Al(),e=hl;if(e!==null)return hd(t,e,l);Al(),t=t.memoizedState,e=Al();var a=e.queue.dispatch;return e.memoizedState=l,[t,a,!1]}function za(l,t,e,a){return l={tag:l,create:e,deps:a,inst:t,next:null},t=J.updateQueue,t===null&&(t=rn(),J.updateQueue=t),e=t.lastEffect,e===null?t.lastEffect=l.next=l:(a=e.next,e.next=l,l.next=a,t.lastEffect=l),l}function rd(){return Al().memoizedState}function yn(l,t,e,a){var u=kl();J.flags|=l,u.memoizedState=za(1|t,{destroy:void 0},e,a===void 0?null:a)}function gn(l,t,e,a){var u=Al();a=a===void 0?null:a;var n=u.memoizedState.inst;hl!==null&&a!==null&&ec(a,hl.memoizedState.deps)?u.memoizedState=za(t,n,e,a):(J.flags|=l,u.memoizedState=za(1|t,n,e,a))}function md(l,t){yn(8390656,8,l,t)}function oc(l,t){gn(2048,8,l,t)}function yr(l){J.flags|=4;var t=J.updateQueue;if(t===null)t=rn(),J.updateQueue=t,t.events=[l];else{var e=t.events;e===null?t.events=[l]:e.push(l)}}function vd(l){var t=Al().memoizedState;return yr({ref:t,nextImpl:l}),function(){if((cl&2)!==0)throw Error(s(440));return t.impl.apply(void 0,arguments)}}function yd(l,t){return gn(4,2,l,t)}function gd(l,t){return gn(4,4,l,t)}function Sd(l,t){if(typeof t==\"function\"){l=l();var e=t(l);return function(){typeof e==\"function\"?e():t(null)}}if(t!=null)return l=l(),t.current=l,function(){t.current=null}}function pd(l,t,e){e=e!=null?e.concat([l]):null,gn(4,4,Sd.bind(null,t,l),e)}function rc(){}function bd(l,t){var e=Al();t=t===void 0?null:t;var a=e.memoizedState;return t!==null&&ec(t,a[1])?a[0]:(e.memoizedState=[l,t],l)}function jd(l,t){var e=Al();t=t===void 0?null:t;var a=e.memoizedState;if(t!==null&&ec(t,a[1]))return a[0];if(a=l(),We){se(!0);try{l()}finally{se(!1)}}return e.memoizedState=[a,t],a}function mc(l,t,e){return e===void 0||(Wt&1073741824)!==0&&(I&261930)===0?l.memoizedState=t:(l.memoizedState=e,l=x0(),J.lanes|=l,Te|=l,e)}function xd(l,t,e,a){return rt(e,t)?e:ja.current!==null?(l=mc(l,e,a),rt(l,t)||(Nl=!0),l):(Wt&42)===0||(Wt&1073741824)!==0&&(I&261930)===0?(Nl=!0,l.memoizedState=e):(l=x0(),J.lanes|=l,Te|=l,t)}function Td(l,t,e,a,u){var n=N.p;N.p=n!==0&&8>n?n:8;var i=x.T,f={};x.T=f,gc(l,!1,t,e);try{var h=u(),y=x.S;if(y!==null&&y(f,h),h!==null&&typeof h==\"object\"&&typeof h.then==\"function\"){var T=hr(h,a);fu(l,t,T,pt(l))}else fu(l,t,a,pt(l))}catch(O){fu(l,t,{then:function(){},status:\"rejected\",reason:O},pt())}finally{N.p=n,i!==null&&f.types!==null&&(i.types=f.types),x.T=i}}function gr(){}function vc(l,t,e,a){if(l.tag!==5)throw Error(s(476));var u=zd(l).queue;Td(l,u,t,Z,e===null?gr:function(){return Ad(l),e(a)})}function zd(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:Z,baseState:Z,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ft,lastRenderedState:Z},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ft,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function Ad(l){var t=zd(l);t.next===null&&(t=l.alternate.memoizedState),fu(l,t.next.queue,{},pt())}function yc(){return Vl(Au)}function Ed(){return Al().memoizedState}function Od(){return Al().memoizedState}function Sr(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=pt();l=ge(e);var a=Se(t,l,e);a!==null&&(nt(a,t,e),au(a,t,e)),t={cache:Ki()},l.payload=t;return}t=t.return}}function pr(l,t,e){var a=pt();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},Sn(l)?_d(t,e):(e=Ci(l,t,e,a),e!==null&&(nt(e,l,a),Dd(e,t,a)))}function Md(l,t,e){var a=pt();fu(l,t,e,a)}function fu(l,t,e,a){var u={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(Sn(l))_d(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var i=t.lastRenderedState,f=n(i,e);if(u.hasEagerState=!0,u.eagerState=f,rt(f,i))return ku(l,t,u,0),ml===null&&Fu(),!1}catch{}finally{}if(e=Ci(l,t,u,a),e!==null)return nt(e,l,a),Dd(e,t,a),!0}return!1}function gc(l,t,e,a){if(a={lane:2,revertLane:Wc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Sn(l)){if(t)throw Error(s(479))}else t=Ci(l,e,a,2),t!==null&&nt(t,l,2)}function Sn(l){var t=l.alternate;return l===J||t!==null&&t===J}function _d(l,t){xa=hn=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function Dd(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,Hf(l,e)}}var su={readContext:Vl,use:mn,useCallback:xl,useContext:xl,useEffect:xl,useImperativeHandle:xl,useLayoutEffect:xl,useInsertionEffect:xl,useMemo:xl,useReducer:xl,useRef:xl,useState:xl,useDebugValue:xl,useDeferredValue:xl,useTransition:xl,useSyncExternalStore:xl,useId:xl,useHostTransitionStatus:xl,useFormState:xl,useActionState:xl,useOptimistic:xl,useMemoCache:xl,useCacheRefresh:xl};su.useEffectEvent=xl;var Nd={readContext:Vl,use:mn,useCallback:function(l,t){return kl().memoizedState=[l,t===void 0?null:t],l},useContext:Vl,useEffect:md,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,yn(4194308,4,Sd.bind(null,t,l),e)},useLayoutEffect:function(l,t){return yn(4194308,4,l,t)},useInsertionEffect:function(l,t){yn(4,2,l,t)},useMemo:function(l,t){var e=kl();t=t===void 0?null:t;var a=l();if(We){se(!0);try{l()}finally{se(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=kl();if(e!==void 0){var u=e(t);if(We){se(!0);try{e(t)}finally{se(!1)}}}else u=t;return a.memoizedState=a.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},a.queue=l,l=l.dispatch=pr.bind(null,J,l),[a.memoizedState,l]},useRef:function(l){var t=kl();return l={current:l},t.memoizedState=l},useState:function(l){l=dc(l);var t=l.queue,e=Md.bind(null,J,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:rc,useDeferredValue:function(l,t){var e=kl();return mc(e,l,t)},useTransition:function(){var l=dc(!1);return l=Td.bind(null,J,l.queue,!0,!1),kl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=J,u=kl();if(tl){if(e===void 0)throw Error(s(407));e=e()}else{if(e=t(),ml===null)throw Error(s(349));(I&127)!==0||Is(a,t,e)}u.memoizedState=e;var n={value:e,getSnapshot:t};return u.queue=n,md(ld.bind(null,a,n,l),[l]),a.flags|=2048,za(9,{destroy:void 0},Ps.bind(null,a,n,e,t),null),e},useId:function(){var l=kl(),t=ml.identifierPrefix;if(tl){var e=Yt,a=Bt;e=(a&~(1<<32-ot(a)-1)).toString(32)+e,t=\"_\"+t+\"R_\"+e,e=on++,0<e&&(t+=\"H\"+e.toString(32)),t+=\"_\"}else e=or++,t=\"_\"+t+\"r_\"+e.toString(32)+\"_\";return l.memoizedState=t},useHostTransitionStatus:yc,useFormState:sd,useActionState:sd,useOptimistic:function(l){var t=kl();t.memoizedState=t.baseState=l;var e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=e,t=gc.bind(null,J,!0,e),e.dispatch=t,[l,t]},useMemoCache:cc,useCacheRefresh:function(){return kl().memoizedState=Sr.bind(null,J)},useEffectEvent:function(l){var t=kl(),e={impl:l};return t.memoizedState=e,function(){if((cl&2)!==0)throw Error(s(440));return e.impl.apply(void 0,arguments)}}},Sc={readContext:Vl,use:mn,useCallback:bd,useContext:Vl,useEffect:oc,useImperativeHandle:pd,useInsertionEffect:yd,useLayoutEffect:gd,useMemo:jd,useReducer:vn,useRef:rd,useState:function(){return vn(Ft)},useDebugValue:rc,useDeferredValue:function(l,t){var e=Al();return xd(e,hl.memoizedState,l,t)},useTransition:function(){var l=vn(Ft)[0],t=Al().memoizedState;return[typeof l==\"boolean\"?l:cu(l),t]},useSyncExternalStore:ks,useId:Ed,useHostTransitionStatus:yc,useFormState:dd,useActionState:dd,useOptimistic:function(l,t){var e=Al();return ad(e,hl,l,t)},useMemoCache:cc,useCacheRefresh:Od};Sc.useEffectEvent=vd;var Rd={readContext:Vl,use:mn,useCallback:bd,useContext:Vl,useEffect:oc,useImperativeHandle:pd,useInsertionEffect:yd,useLayoutEffect:gd,useMemo:jd,useReducer:sc,useRef:rd,useState:function(){return sc(Ft)},useDebugValue:rc,useDeferredValue:function(l,t){var e=Al();return hl===null?mc(e,l,t):xd(e,hl.memoizedState,l,t)},useTransition:function(){var l=sc(Ft)[0],t=Al().memoizedState;return[typeof l==\"boolean\"?l:cu(l),t]},useSyncExternalStore:ks,useId:Ed,useHostTransitionStatus:yc,useFormState:od,useActionState:od,useOptimistic:function(l,t){var e=Al();return hl!==null?ad(e,hl,l,t):(e.baseState=l,[l,e.queue.dispatch])},useMemoCache:cc,useCacheRefresh:Od};Rd.useEffectEvent=vd;function pc(l,t,e,a){t=l.memoizedState,e=e(a,t),e=e==null?t:B({},t,e),l.memoizedState=e,l.lanes===0&&(l.updateQueue.baseState=e)}var bc={enqueueSetState:function(l,t,e){l=l._reactInternals;var a=pt(),u=ge(a);u.payload=t,e!=null&&(u.callback=e),t=Se(l,u,a),t!==null&&(nt(t,l,a),au(t,l,a))},enqueueReplaceState:function(l,t,e){l=l._reactInternals;var a=pt(),u=ge(a);u.tag=1,u.payload=t,e!=null&&(u.callback=e),t=Se(l,u,a),t!==null&&(nt(t,l,a),au(t,l,a))},enqueueForceUpdate:function(l,t){l=l._reactInternals;var e=pt(),a=ge(e);a.tag=2,t!=null&&(a.callback=t),t=Se(l,a,e),t!==null&&(nt(t,l,e),au(t,l,e))}};function Ud(l,t,e,a,u,n,i){return l=l.stateNode,typeof l.shouldComponentUpdate==\"function\"?l.shouldComponentUpdate(a,n,i):t.prototype&&t.prototype.isPureReactComponent?!Wa(e,a)||!Wa(u,n):!0}function Cd(l,t,e,a){l=t.state,typeof t.componentWillReceiveProps==\"function\"&&t.componentWillReceiveProps(e,a),typeof t.UNSAFE_componentWillReceiveProps==\"function\"&&t.UNSAFE_componentWillReceiveProps(e,a),t.state!==l&&bc.enqueueReplaceState(t,t.state,null)}function Fe(l,t){var e=t;if(\"ref\"in t){e={};for(var a in t)a!==\"ref\"&&(e[a]=t[a])}if(l=l.defaultProps){e===t&&(e=B({},e));for(var u in l)e[u]===void 0&&(e[u]=l[u])}return e}function Hd(l){Wu(l)}function qd(l){console.error(l)}function Bd(l){Wu(l)}function pn(l,t){try{var e=l.onUncaughtError;e(t.value,{componentStack:t.stack})}catch(a){setTimeout(function(){throw a})}}function Yd(l,t,e){try{var a=l.onCaughtError;a(e.value,{componentStack:e.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(u){setTimeout(function(){throw u})}}function jc(l,t,e){return e=ge(e),e.tag=3,e.payload={element:null},e.callback=function(){pn(l,t)},e}function Gd(l){return l=ge(l),l.tag=3,l}function Xd(l,t,e,a){var u=e.type.getDerivedStateFromError;if(typeof u==\"function\"){var n=a.value;l.payload=function(){return u(n)},l.callback=function(){Yd(t,e,a)}}var i=e.stateNode;i!==null&&typeof i.componentDidCatch==\"function\"&&(l.callback=function(){Yd(t,e,a),typeof u!=\"function\"&&(ze===null?ze=new Set([this]):ze.add(this));var f=a.stack;this.componentDidCatch(a.value,{componentStack:f!==null?f:\"\"})})}function br(l,t,e,a,u){if(e.flags|=32768,a!==null&&typeof a==\"object\"&&typeof a.then==\"function\"){if(t=e.alternate,t!==null&&ya(t,e,u,!0),e=vt.current,e!==null){switch(e.tag){case 31:case 13:return _t===null?Nn():e.alternate===null&&Tl===0&&(Tl=3),e.flags&=-257,e.flags|=65536,e.lanes=u,a===nn?e.flags|=16384:(t=e.updateQueue,t===null?e.updateQueue=new Set([a]):t.add(a),Jc(l,a,u)),!1;case 22:return e.flags|=65536,a===nn?e.flags|=16384:(t=e.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([a])},e.updateQueue=t):(e=t.retryQueue,e===null?t.retryQueue=new Set([a]):e.add(a)),Jc(l,a,u)),!1}throw Error(s(435,e.tag))}return Jc(l,a,u),Nn(),!1}if(tl)return t=vt.current,t!==null?((t.flags&65536)===0&&(t.flags|=256),t.flags|=65536,t.lanes=u,a!==Xi&&(l=Error(s(422),{cause:a}),Ia(At(l,e)))):(a!==Xi&&(t=Error(s(423),{cause:a}),Ia(At(t,e))),l=l.current.alternate,l.flags|=65536,u&=-u,l.lanes|=u,a=At(a,e),u=jc(l.stateNode,a,u),ki(l,u),Tl!==4&&(Tl=2)),!1;var n=Error(s(520),{cause:a});if(n=At(n,e),gu===null?gu=[n]:gu.push(n),Tl!==4&&(Tl=2),t===null)return!0;a=At(a,e),e=t;do{switch(e.tag){case 3:return e.flags|=65536,l=u&-u,e.lanes|=l,l=jc(e.stateNode,a,l),ki(e,l),!1;case 1:if(t=e.type,n=e.stateNode,(e.flags&128)===0&&(typeof t.getDerivedStateFromError==\"function\"||n!==null&&typeof n.componentDidCatch==\"function\"&&(ze===null||!ze.has(n))))return e.flags|=65536,u&=-u,e.lanes|=u,u=Gd(u),Xd(u,l,e,a),ki(e,u),!1}e=e.return}while(e!==null);return!1}var xc=Error(s(461)),Nl=!1;function Kl(l,t,e,a){t.child=l===null?Vs(t,null,e,a):$e(t,l.child,e,a)}function Qd(l,t,e,a,u){e=e.render;var n=t.ref;if(\"ref\"in a){var i={};for(var f in a)f!==\"ref\"&&(i[f]=a[f])}else i=a;return Ve(t),a=ac(l,t,e,i,n,u),f=uc(),l!==null&&!Nl?(nc(l,t,u),kt(l,t,u)):(tl&&f&&Yi(t),t.flags|=1,Kl(l,t,a,u),t.child)}function Zd(l,t,e,a,u){if(l===null){var n=e.type;return typeof n==\"function\"&&!Hi(n)&&n.defaultProps===void 0&&e.compare===null?(t.tag=15,t.type=n,Ld(l,t,n,a,u)):(l=Pu(e.type,null,a,t,t.mode,u),l.ref=t.ref,l.return=t,t.child=l)}if(n=l.child,!Dc(l,u)){var i=n.memoizedProps;if(e=e.compare,e=e!==null?e:Wa,e(i,a)&&l.ref===t.ref)return kt(l,t,u)}return t.flags|=1,l=Kt(n,a),l.ref=t.ref,l.return=t,t.child=l}function Ld(l,t,e,a,u){if(l!==null){var n=l.memoizedProps;if(Wa(n,a)&&l.ref===t.ref)if(Nl=!1,t.pendingProps=a=n,Dc(l,u))(l.flags&131072)!==0&&(Nl=!0);else return t.lanes=l.lanes,kt(l,t,u)}return Tc(l,t,e,a,u)}function Vd(l,t,e,a){var u=a.children,n=l!==null?l.memoizedState:null;if(l===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode===\"hidden\"){if((t.flags&128)!==0){if(n=n!==null?n.baseLanes|e:e,l!==null){for(a=t.child=l.child,u=0;a!==null;)u=u|a.lanes|a.childLanes,a=a.sibling;a=u&~n}else a=0,t.child=null;return Kd(l,t,n,e,a)}if((e&536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},l!==null&&an(t,n!==null?n.cachePool:null),n!==null?ws(t,n):Pi(),$s(t);else return a=t.lanes=536870912,Kd(l,t,n!==null?n.baseLanes|e:e,e,a)}else n!==null?(an(t,n.cachePool),ws(t,n),be(),t.memoizedState=null):(l!==null&&an(t,null),Pi(),be());return Kl(l,t,u,e),t.child}function du(l,t){return l!==null&&l.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Kd(l,t,e,a,u){var n=wi();return n=n===null?null:{parent:_l._currentValue,pool:n},t.memoizedState={baseLanes:e,cachePool:n},l!==null&&an(t,null),Pi(),$s(t),l!==null&&ya(l,t,a,!0),t.childLanes=u,null}function bn(l,t){return t=xn({mode:t.mode,children:t.children},l.mode),t.ref=l.ref,l.child=t,t.return=l,t}function Jd(l,t,e){return $e(t,l.child,null,e),l=bn(t,t.pendingProps),l.flags|=2,yt(t),t.memoizedState=null,l}function jr(l,t,e){var a=t.pendingProps,u=(t.flags&128)!==0;if(t.flags&=-129,l===null){if(tl){if(a.mode===\"hidden\")return l=bn(t,a),t.lanes=536870912,du(null,l);if(tc(t),(l=yl)?(l=uh(l,Mt),l=l!==null&&l.data===\"&\"?l:null,l!==null&&(t.memoizedState={dehydrated:l,treeContext:oe!==null?{id:Bt,overflow:Yt}:null,retryLane:536870912,hydrationErrors:null},e=_s(l),e.return=t,t.child=e,Ll=t,yl=null)):l=null,l===null)throw me(t);return t.lanes=536870912,null}return bn(t,a)}var n=l.memoizedState;if(n!==null){var i=n.dehydrated;if(tc(t),u)if(t.flags&256)t.flags&=-257,t=Jd(l,t,e);else if(t.memoizedState!==null)t.child=l.child,t.flags|=128,t=null;else throw Error(s(558));else if(Nl||ya(l,t,e,!1),u=(e&l.childLanes)!==0,Nl||u){if(a=ml,a!==null&&(i=qf(a,e),i!==0&&i!==n.retryLane))throw n.retryLane=i,Xe(l,i),nt(a,l,i),xc;Nn(),t=Jd(l,t,e)}else l=n.treeContext,yl=Dt(i.nextSibling),Ll=t,tl=!0,re=null,Mt=!1,l!==null&&Rs(t,l),t=bn(t,a),t.flags|=4096;return t}return l=Kt(l.child,{mode:a.mode,children:a.children}),l.ref=t.ref,t.child=l,l.return=t,l}function jn(l,t){var e=t.ref;if(e===null)l!==null&&l.ref!==null&&(t.flags|=4194816);else{if(typeof e!=\"function\"&&typeof e!=\"object\")throw Error(s(284));(l===null||l.ref!==e)&&(t.flags|=4194816)}}function Tc(l,t,e,a,u){return Ve(t),e=ac(l,t,e,a,void 0,u),a=uc(),l!==null&&!Nl?(nc(l,t,u),kt(l,t,u)):(tl&&a&&Yi(t),t.flags|=1,Kl(l,t,e,u),t.child)}function wd(l,t,e,a,u,n){return Ve(t),t.updateQueue=null,e=Fs(t,a,e,u),Ws(l),a=uc(),l!==null&&!Nl?(nc(l,t,n),kt(l,t,n)):(tl&&a&&Yi(t),t.flags|=1,Kl(l,t,e,n),t.child)}function $d(l,t,e,a,u){if(Ve(t),t.stateNode===null){var n=oa,i=e.contextType;typeof i==\"object\"&&i!==null&&(n=Vl(i)),n=new e(a,n),t.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=bc,t.stateNode=n,n._reactInternals=t,n=t.stateNode,n.props=a,n.state=t.memoizedState,n.refs={},Wi(t),i=e.contextType,n.context=typeof i==\"object\"&&i!==null?Vl(i):oa,n.state=t.memoizedState,i=e.getDerivedStateFromProps,typeof i==\"function\"&&(pc(t,e,i,a),n.state=t.memoizedState),typeof e.getDerivedStateFromProps==\"function\"||typeof n.getSnapshotBeforeUpdate==\"function\"||typeof n.UNSAFE_componentWillMount!=\"function\"&&typeof n.componentWillMount!=\"function\"||(i=n.state,typeof n.componentWillMount==\"function\"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount==\"function\"&&n.UNSAFE_componentWillMount(),i!==n.state&&bc.enqueueReplaceState(n,n.state,null),nu(t,a,n,u),uu(),n.state=t.memoizedState),typeof n.componentDidMount==\"function\"&&(t.flags|=4194308),a=!0}else if(l===null){n=t.stateNode;var f=t.memoizedProps,h=Fe(e,f);n.props=h;var y=n.context,T=e.contextType;i=oa,typeof T==\"object\"&&T!==null&&(i=Vl(T));var O=e.getDerivedStateFromProps;T=typeof O==\"function\"||typeof n.getSnapshotBeforeUpdate==\"function\",f=t.pendingProps!==f,T||typeof n.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof n.componentWillReceiveProps!=\"function\"||(f||y!==i)&&Cd(t,n,a,i),ye=!1;var S=t.memoizedState;n.state=S,nu(t,a,n,u),uu(),y=t.memoizedState,f||S!==y||ye?(typeof O==\"function\"&&(pc(t,e,O,a),y=t.memoizedState),(h=ye||Ud(t,e,h,a,S,y,i))?(T||typeof n.UNSAFE_componentWillMount!=\"function\"&&typeof n.componentWillMount!=\"function\"||(typeof n.componentWillMount==\"function\"&&n.componentWillMount(),typeof n.UNSAFE_componentWillMount==\"function\"&&n.UNSAFE_componentWillMount()),typeof n.componentDidMount==\"function\"&&(t.flags|=4194308)):(typeof n.componentDidMount==\"function\"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=y),n.props=a,n.state=y,n.context=i,a=h):(typeof n.componentDidMount==\"function\"&&(t.flags|=4194308),a=!1)}else{n=t.stateNode,Fi(l,t),i=t.memoizedProps,T=Fe(e,i),n.props=T,O=t.pendingProps,S=n.context,y=e.contextType,h=oa,typeof y==\"object\"&&y!==null&&(h=Vl(y)),f=e.getDerivedStateFromProps,(y=typeof f==\"function\"||typeof n.getSnapshotBeforeUpdate==\"function\")||typeof n.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof n.componentWillReceiveProps!=\"function\"||(i!==O||S!==h)&&Cd(t,n,a,h),ye=!1,S=t.memoizedState,n.state=S,nu(t,a,n,u),uu();var p=t.memoizedState;i!==O||S!==p||ye||l!==null&&l.dependencies!==null&&tn(l.dependencies)?(typeof f==\"function\"&&(pc(t,e,f,a),p=t.memoizedState),(T=ye||Ud(t,e,T,a,S,p,h)||l!==null&&l.dependencies!==null&&tn(l.dependencies))?(y||typeof n.UNSAFE_componentWillUpdate!=\"function\"&&typeof n.componentWillUpdate!=\"function\"||(typeof n.componentWillUpdate==\"function\"&&n.componentWillUpdate(a,p,h),typeof n.UNSAFE_componentWillUpdate==\"function\"&&n.UNSAFE_componentWillUpdate(a,p,h)),typeof n.componentDidUpdate==\"function\"&&(t.flags|=4),typeof n.getSnapshotBeforeUpdate==\"function\"&&(t.flags|=1024)):(typeof n.componentDidUpdate!=\"function\"||i===l.memoizedProps&&S===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!=\"function\"||i===l.memoizedProps&&S===l.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=p),n.props=a,n.state=p,n.context=h,a=T):(typeof n.componentDidUpdate!=\"function\"||i===l.memoizedProps&&S===l.memoizedState||(t.flags|=4),typeof n.getSnapshotBeforeUpdate!=\"function\"||i===l.memoizedProps&&S===l.memoizedState||(t.flags|=1024),a=!1)}return n=a,jn(l,t),a=(t.flags&128)!==0,n||a?(n=t.stateNode,e=a&&typeof e.getDerivedStateFromError!=\"function\"?null:n.render(),t.flags|=1,l!==null&&a?(t.child=$e(t,l.child,null,u),t.child=$e(t,null,e,u)):Kl(l,t,e,u),t.memoizedState=n.state,l=t.child):l=kt(l,t,u),l}function Wd(l,t,e,a){return Ze(),t.flags|=256,Kl(l,t,e,a),t.child}var zc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Ac(l){return{baseLanes:l,cachePool:Ys()}}function Ec(l,t,e){return l=l!==null?l.childLanes&~e:0,t&&(l|=St),l}function Fd(l,t,e){var a=t.pendingProps,u=!1,n=(t.flags&128)!==0,i;if((i=n)||(i=l!==null&&l.memoizedState===null?!1:(zl.current&2)!==0),i&&(u=!0,t.flags&=-129),i=(t.flags&32)!==0,t.flags&=-33,l===null){if(tl){if(u?pe(t):be(),(l=yl)?(l=uh(l,Mt),l=l!==null&&l.data!==\"&\"?l:null,l!==null&&(t.memoizedState={dehydrated:l,treeContext:oe!==null?{id:Bt,overflow:Yt}:null,retryLane:536870912,hydrationErrors:null},e=_s(l),e.return=t,t.child=e,Ll=t,yl=null)):l=null,l===null)throw me(t);return sf(l)?t.lanes=32:t.lanes=536870912,null}var f=a.children;return a=a.fallback,u?(be(),u=t.mode,f=xn({mode:\"hidden\",children:f},u),a=Qe(a,u,e,null),f.return=t,a.return=t,f.sibling=a,t.child=f,a=t.child,a.memoizedState=Ac(e),a.childLanes=Ec(l,i,e),t.memoizedState=zc,du(null,a)):(pe(t),Oc(t,f))}var h=l.memoizedState;if(h!==null&&(f=h.dehydrated,f!==null)){if(n)t.flags&256?(pe(t),t.flags&=-257,t=Mc(l,t,e)):t.memoizedState!==null?(be(),t.child=l.child,t.flags|=128,t=null):(be(),f=a.fallback,u=t.mode,a=xn({mode:\"visible\",children:a.children},u),f=Qe(f,u,e,null),f.flags|=2,a.return=t,f.return=t,a.sibling=f,t.child=a,$e(t,l.child,null,e),a=t.child,a.memoizedState=Ac(e),a.childLanes=Ec(l,i,e),t.memoizedState=zc,t=du(null,a));else if(pe(t),sf(f)){if(i=f.nextSibling&&f.nextSibling.dataset,i)var y=i.dgst;i=y,a=Error(s(419)),a.stack=\"\",a.digest=i,Ia({value:a,source:null,stack:null}),t=Mc(l,t,e)}else if(Nl||ya(l,t,e,!1),i=(e&l.childLanes)!==0,Nl||i){if(i=ml,i!==null&&(a=qf(i,e),a!==0&&a!==h.retryLane))throw h.retryLane=a,Xe(l,a),nt(i,l,a),xc;ff(f)||Nn(),t=Mc(l,t,e)}else ff(f)?(t.flags|=192,t.child=l.child,t=null):(l=h.treeContext,yl=Dt(f.nextSibling),Ll=t,tl=!0,re=null,Mt=!1,l!==null&&Rs(t,l),t=Oc(t,a.children),t.flags|=4096);return t}return u?(be(),f=a.fallback,u=t.mode,h=l.child,y=h.sibling,a=Kt(h,{mode:\"hidden\",children:a.children}),a.subtreeFlags=h.subtreeFlags&65011712,y!==null?f=Kt(y,f):(f=Qe(f,u,e,null),f.flags|=2),f.return=t,a.return=t,a.sibling=f,t.child=a,du(null,a),a=t.child,f=l.child.memoizedState,f===null?f=Ac(e):(u=f.cachePool,u!==null?(h=_l._currentValue,u=u.parent!==h?{parent:h,pool:h}:u):u=Ys(),f={baseLanes:f.baseLanes|e,cachePool:u}),a.memoizedState=f,a.childLanes=Ec(l,i,e),t.memoizedState=zc,du(l.child,a)):(pe(t),e=l.child,l=e.sibling,e=Kt(e,{mode:\"visible\",children:a.children}),e.return=t,e.sibling=null,l!==null&&(i=t.deletions,i===null?(t.deletions=[l],t.flags|=16):i.push(l)),t.child=e,t.memoizedState=null,e)}function Oc(l,t){return t=xn({mode:\"visible\",children:t},l.mode),t.return=l,l.child=t}function xn(l,t){return l=mt(22,l,null,t),l.lanes=0,l}function Mc(l,t,e){return $e(t,l.child,null,e),l=Oc(t,t.pendingProps.children),l.flags|=2,t.memoizedState=null,l}function kd(l,t,e){l.lanes|=t;var a=l.alternate;a!==null&&(a.lanes|=t),Li(l.return,t,e)}function _c(l,t,e,a,u,n){var i=l.memoizedState;i===null?l.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:e,tailMode:u,treeForkCount:n}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=a,i.tail=e,i.tailMode=u,i.treeForkCount=n)}function Id(l,t,e){var a=t.pendingProps,u=a.revealOrder,n=a.tail;a=a.children;var i=zl.current,f=(i&2)!==0;if(f?(i=i&1|2,t.flags|=128):i&=1,C(zl,i),Kl(l,t,a,e),a=tl?ka:0,!f&&l!==null&&(l.flags&128)!==0)l:for(l=t.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&kd(l,e,t);else if(l.tag===19)kd(l,e,t);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break l;for(;l.sibling===null;){if(l.return===null||l.return===t)break l;l=l.return}l.sibling.return=l.return,l=l.sibling}switch(u){case\"forwards\":for(e=t.child,u=null;e!==null;)l=e.alternate,l!==null&&dn(l)===null&&(u=e),e=e.sibling;e=u,e===null?(u=t.child,t.child=null):(u=e.sibling,e.sibling=null),_c(t,!1,u,e,n,a);break;case\"backwards\":case\"unstable_legacy-backwards\":for(e=null,u=t.child,t.child=null;u!==null;){if(l=u.alternate,l!==null&&dn(l)===null){t.child=u;break}l=u.sibling,u.sibling=e,e=u,u=l}_c(t,!0,e,null,n,a);break;case\"together\":_c(t,!1,null,null,void 0,a);break;default:t.memoizedState=null}return t.child}function kt(l,t,e){if(l!==null&&(t.dependencies=l.dependencies),Te|=t.lanes,(e&t.childLanes)===0)if(l!==null){if(ya(l,t,e,!1),(e&t.childLanes)===0)return null}else return null;if(l!==null&&t.child!==l.child)throw Error(s(153));if(t.child!==null){for(l=t.child,e=Kt(l,l.pendingProps),t.child=e,e.return=t;l.sibling!==null;)l=l.sibling,e=e.sibling=Kt(l,l.pendingProps),e.return=t;e.sibling=null}return t.child}function Dc(l,t){return(l.lanes&t)!==0?!0:(l=l.dependencies,!!(l!==null&&tn(l)))}function xr(l,t,e){switch(t.tag){case 3:Ql(t,t.stateNode.containerInfo),ve(t,_l,l.memoizedState.cache),Ze();break;case 27:case 5:fe(t);break;case 4:Ql(t,t.stateNode.containerInfo);break;case 10:ve(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,tc(t),null;break;case 13:var a=t.memoizedState;if(a!==null)return a.dehydrated!==null?(pe(t),t.flags|=128,null):(e&t.child.childLanes)!==0?Fd(l,t,e):(pe(t),l=kt(l,t,e),l!==null?l.sibling:null);pe(t);break;case 19:var u=(l.flags&128)!==0;if(a=(e&t.childLanes)!==0,a||(ya(l,t,e,!1),a=(e&t.childLanes)!==0),u){if(a)return Id(l,t,e);t.flags|=128}if(u=t.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),C(zl,zl.current),a)break;return null;case 22:return t.lanes=0,Vd(l,t,e,t.pendingProps);case 24:ve(t,_l,l.memoizedState.cache)}return kt(l,t,e)}function Pd(l,t,e){if(l!==null)if(l.memoizedProps!==t.pendingProps)Nl=!0;else{if(!Dc(l,e)&&(t.flags&128)===0)return Nl=!1,xr(l,t,e);Nl=(l.flags&131072)!==0}else Nl=!1,tl&&(t.flags&1048576)!==0&&Ns(t,ka,t.index);switch(t.lanes=0,t.tag){case 16:l:{var a=t.pendingProps;if(l=Je(t.elementType),t.type=l,typeof l==\"function\")Hi(l)?(a=Fe(l,a),t.tag=1,t=$d(null,t,l,a,e)):(t.tag=0,t=Tc(null,t,l,a,e));else{if(l!=null){var u=l.$$typeof;if(u===Il){t.tag=11,t=Qd(null,t,l,a,e);break l}else if(u===W){t.tag=14,t=Zd(null,t,l,a,e);break l}}throw t=Rt(l)||l,Error(s(306,t,\"\"))}}return t;case 0:return Tc(l,t,t.type,t.pendingProps,e);case 1:return a=t.type,u=Fe(a,t.pendingProps),$d(l,t,a,u,e);case 3:l:{if(Ql(t,t.stateNode.containerInfo),l===null)throw Error(s(387));a=t.pendingProps;var n=t.memoizedState;u=n.element,Fi(l,t),nu(t,a,null,e);var i=t.memoizedState;if(a=i.cache,ve(t,_l,a),a!==n.cache&&Vi(t,[_l],e,!0),uu(),a=i.element,n.isDehydrated)if(n={element:a,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=n,t.memoizedState=n,t.flags&256){t=Wd(l,t,a,e);break l}else if(a!==u){u=At(Error(s(424)),t),Ia(u),t=Wd(l,t,a,e);break l}else{switch(l=t.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName===\"HTML\"?l.ownerDocument.body:l}for(yl=Dt(l.firstChild),Ll=t,tl=!0,re=null,Mt=!0,e=Vs(t,null,a,e),t.child=e;e;)e.flags=e.flags&-3|4096,e=e.sibling}else{if(Ze(),a===u){t=kt(l,t,e);break l}Kl(l,t,a,e)}t=t.child}return t;case 26:return jn(l,t),l===null?(e=dh(t.type,null,t.pendingProps,null))?t.memoizedState=e:tl||(e=t.type,l=t.pendingProps,a=Yn($.current).createElement(e),a[Zl]=t,a[Pl]=l,Jl(a,e,l),Bl(a),t.stateNode=a):t.memoizedState=dh(t.type,l.memoizedProps,t.pendingProps,l.memoizedState),null;case 27:return fe(t),l===null&&tl&&(a=t.stateNode=ch(t.type,t.pendingProps,$.current),Ll=t,Mt=!0,u=yl,Me(t.type)?(df=u,yl=Dt(a.firstChild)):yl=u),Kl(l,t,t.pendingProps.children,e),jn(l,t),l===null&&(t.flags|=4194304),t.child;case 5:return l===null&&tl&&((u=a=yl)&&(a=Ir(a,t.type,t.pendingProps,Mt),a!==null?(t.stateNode=a,Ll=t,yl=Dt(a.firstChild),Mt=!1,u=!0):u=!1),u||me(t)),fe(t),u=t.type,n=t.pendingProps,i=l!==null?l.memoizedProps:null,a=n.children,uf(u,n)?a=null:i!==null&&uf(u,i)&&(t.flags|=32),t.memoizedState!==null&&(u=ac(l,t,rr,null,null,e),Au._currentValue=u),jn(l,t),Kl(l,t,a,e),t.child;case 6:return l===null&&tl&&((l=e=yl)&&(e=Pr(e,t.pendingProps,Mt),e!==null?(t.stateNode=e,Ll=t,yl=null,l=!0):l=!1),l||me(t)),null;case 13:return Fd(l,t,e);case 4:return Ql(t,t.stateNode.containerInfo),a=t.pendingProps,l===null?t.child=$e(t,null,a,e):Kl(l,t,a,e),t.child;case 11:return Qd(l,t,t.type,t.pendingProps,e);case 7:return Kl(l,t,t.pendingProps,e),t.child;case 8:return Kl(l,t,t.pendingProps.children,e),t.child;case 12:return Kl(l,t,t.pendingProps.children,e),t.child;case 10:return a=t.pendingProps,ve(t,t.type,a.value),Kl(l,t,a.children,e),t.child;case 9:return u=t.type._context,a=t.pendingProps.children,Ve(t),u=Vl(u),a=a(u),t.flags|=1,Kl(l,t,a,e),t.child;case 14:return Zd(l,t,t.type,t.pendingProps,e);case 15:return Ld(l,t,t.type,t.pendingProps,e);case 19:return Id(l,t,e);case 31:return jr(l,t,e);case 22:return Vd(l,t,e,t.pendingProps);case 24:return Ve(t),a=Vl(_l),l===null?(u=wi(),u===null&&(u=ml,n=Ki(),u.pooledCache=n,n.refCount++,n!==null&&(u.pooledCacheLanes|=e),u=n),t.memoizedState={parent:a,cache:u},Wi(t),ve(t,_l,u)):((l.lanes&e)!==0&&(Fi(l,t),nu(t,null,null,e),uu()),u=l.memoizedState,n=t.memoizedState,u.parent!==a?(u={parent:a,cache:a},t.memoizedState=u,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=u),ve(t,_l,a)):(a=n.cache,ve(t,_l,a),a!==u.cache&&Vi(t,[_l],e,!0))),Kl(l,t,t.pendingProps.children,e),t.child;case 29:throw t.pendingProps}throw Error(s(156,t.tag))}function It(l){l.flags|=4}function Nc(l,t,e,a,u){if((t=(l.mode&32)!==0)&&(t=!1),t){if(l.flags|=16777216,(u&335544128)===u)if(l.stateNode.complete)l.flags|=8192;else if(E0())l.flags|=8192;else throw we=nn,$i}else l.flags&=-16777217}function l0(l,t){if(t.type!==\"stylesheet\"||(t.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!vh(t))if(E0())l.flags|=8192;else throw we=nn,$i}function Tn(l,t){t!==null&&(l.flags|=4),l.flags&16384&&(t=l.tag!==22?Uf():536870912,l.lanes|=t,Ma|=t)}function hu(l,t){if(!tl)switch(l.tailMode){case\"hidden\":t=l.tail;for(var e=null;t!==null;)t.alternate!==null&&(e=t),t=t.sibling;e===null?l.tail=null:e.sibling=null;break;case\"collapsed\":e=l.tail;for(var a=null;e!==null;)e.alternate!==null&&(a=e),e=e.sibling;a===null?t||l.tail===null?l.tail=null:l.tail.sibling=null:a.sibling=null}}function gl(l){var t=l.alternate!==null&&l.alternate.child===l.child,e=0,a=0;if(t)for(var u=l.child;u!==null;)e|=u.lanes|u.childLanes,a|=u.subtreeFlags&65011712,a|=u.flags&65011712,u.return=l,u=u.sibling;else for(u=l.child;u!==null;)e|=u.lanes|u.childLanes,a|=u.subtreeFlags,a|=u.flags,u.return=l,u=u.sibling;return l.subtreeFlags|=a,l.childLanes=e,t}function Tr(l,t,e){var a=t.pendingProps;switch(Gi(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return gl(t),null;case 1:return gl(t),null;case 3:return e=t.stateNode,a=null,l!==null&&(a=l.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),$t(_l),pl(),e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null),(l===null||l.child===null)&&(va(t)?It(t):l===null||l.memoizedState.isDehydrated&&(t.flags&256)===0||(t.flags|=1024,Qi())),gl(t),null;case 26:var u=t.type,n=t.memoizedState;return l===null?(It(t),n!==null?(gl(t),l0(t,n)):(gl(t),Nc(t,u,null,a,e))):n?n!==l.memoizedState?(It(t),gl(t),l0(t,n)):(gl(t),t.flags&=-16777217):(l=l.memoizedProps,l!==a&&It(t),gl(t),Nc(t,u,l,a,e)),null;case 27:if(R(t),e=$.current,u=t.type,l!==null&&t.stateNode!=null)l.memoizedProps!==a&&It(t);else{if(!a){if(t.stateNode===null)throw Error(s(166));return gl(t),null}l=G.current,va(t)?Us(t):(l=ch(u,a,e),t.stateNode=l,It(t))}return gl(t),null;case 5:if(R(t),u=t.type,l!==null&&t.stateNode!=null)l.memoizedProps!==a&&It(t);else{if(!a){if(t.stateNode===null)throw Error(s(166));return gl(t),null}if(n=G.current,va(t))Us(t);else{var i=Yn($.current);switch(n){case 1:n=i.createElementNS(\"http://www.w3.org/2000/svg\",u);break;case 2:n=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",u);break;default:switch(u){case\"svg\":n=i.createElementNS(\"http://www.w3.org/2000/svg\",u);break;case\"math\":n=i.createElementNS(\"http://www.w3.org/1998/Math/MathML\",u);break;case\"script\":n=i.createElement(\"div\"),n.innerHTML=\"<script><\\/script>\",n=n.removeChild(n.firstChild);break;case\"select\":n=typeof a.is==\"string\"?i.createElement(\"select\",{is:a.is}):i.createElement(\"select\"),a.multiple?n.multiple=!0:a.size&&(n.size=a.size);break;default:n=typeof a.is==\"string\"?i.createElement(u,{is:a.is}):i.createElement(u)}}n[Zl]=t,n[Pl]=a;l:for(i=t.child;i!==null;){if(i.tag===5||i.tag===6)n.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=n;l:switch(Jl(n,u,a),u){case\"button\":case\"input\":case\"select\":case\"textarea\":a=!!a.autoFocus;break l;case\"img\":a=!0;break l;default:a=!1}a&&It(t)}}return gl(t),Nc(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&It(t);else{if(typeof a!=\"string\"&&t.stateNode===null)throw Error(s(166));if(l=$.current,va(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,u=Ll,u!==null)switch(u.tag){case 27:case 5:a=u.memoizedProps}l[Zl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||F0(l.nodeValue,e)),l||me(t,!0)}else l=Yn(l).createTextNode(a),l[Zl]=t,t.stateNode=l}return gl(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=va(t),e!==null){if(l===null){if(!a)throw Error(s(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(s(557));l[Zl]=t}else Ze(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;gl(t),l=!1}else e=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(yt(t),t):(yt(t),null);if((t.flags&128)!==0)throw Error(s(558))}return gl(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=va(t),a!==null&&a.dehydrated!==null){if(l===null){if(!u)throw Error(s(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(s(317));u[Zl]=t}else Ze(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;gl(t),u=!1}else u=Qi(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(yt(t),t):(yt(t),null)}return yt(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.child,u=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(u=a.alternate.memoizedState.cachePool.pool),n=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(n=a.memoizedState.cachePool.pool),n!==u&&(a.flags|=2048)),e!==l&&e&&(t.child.flags|=8192),Tn(t,t.updateQueue),gl(t),null);case 4:return pl(),l===null&&Pc(t.stateNode.containerInfo),gl(t),null;case 10:return $t(t.type),gl(t),null;case 19:if(M(zl),a=t.memoizedState,a===null)return gl(t),null;if(u=(t.flags&128)!==0,n=a.rendering,n===null)if(u)hu(a,!1);else{if(Tl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=dn(l),n!==null){for(t.flags|=128,hu(a,!1),l=n.updateQueue,t.updateQueue=l,Tn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)Ms(e,l),e=e.sibling;return C(zl,zl.current&1|2),tl&&Jt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&dt()>Mn&&(t.flags|=128,u=!0,hu(a,!1),t.lanes=4194304)}else{if(!u)if(l=dn(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,Tn(t,l),hu(a,!0),a.tail===null&&a.tailMode===\"hidden\"&&!n.alternate&&!tl)return gl(t),null}else 2*dt()-a.renderingStartTime>Mn&&e!==536870912&&(t.flags|=128,u=!0,hu(a,!1),t.lanes=4194304);a.isBackwards?(n.sibling=t.child,t.child=n):(l=a.last,l!==null?l.sibling=n:t.child=n,a.last=n)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=dt(),l.sibling=null,e=zl.current,C(zl,u?e&1|2:e&1),tl&&Jt(t,a.treeForkCount),l):(gl(t),null);case 22:case 23:return yt(t),lc(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(gl(t),t.subtreeFlags&6&&(t.flags|=8192)):gl(t),e=t.updateQueue,e!==null&&Tn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&M(Ke),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),$t(_l),gl(t),null;case 25:return null;case 30:return null}throw Error(s(156,t.tag))}function zr(l,t){switch(Gi(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return $t(_l),pl(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return R(t),null;case 31:if(t.memoizedState!==null){if(yt(t),t.alternate===null)throw Error(s(340));Ze()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(yt(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(s(340));Ze()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return M(zl),null;case 4:return pl(),null;case 10:return $t(t.type),null;case 22:case 23:return yt(t),lc(),l!==null&&M(Ke),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return $t(_l),null;case 25:return null;default:return null}}function t0(l,t){switch(Gi(t),t.tag){case 3:$t(_l),pl();break;case 26:case 27:case 5:R(t);break;case 4:pl();break;case 31:t.memoizedState!==null&&yt(t);break;case 13:yt(t);break;case 19:M(zl);break;case 10:$t(t.type);break;case 22:case 23:yt(t),lc(),l!==null&&M(Ke);break;case 24:$t(_l)}}function ou(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var u=a.next;e=u;do{if((e.tag&l)===l){a=void 0;var n=e.create,i=e.inst;a=n(),i.destroy=a}e=e.next}while(e!==u)}}catch(f){dl(t,t.return,f)}}function je(l,t,e){try{var a=t.updateQueue,u=a!==null?a.lastEffect:null;if(u!==null){var n=u.next;a=n;do{if((a.tag&l)===l){var i=a.inst,f=i.destroy;if(f!==void 0){i.destroy=void 0,u=t;var h=e,y=f;try{y()}catch(T){dl(u,h,T)}}}a=a.next}while(a!==n)}}catch(T){dl(t,t.return,T)}}function e0(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{Js(t,e)}catch(a){dl(l,l.return,a)}}}function a0(l,t,e){e.props=Fe(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){dl(l,t,a)}}function ru(l,t){try{var e=l.ref;if(e!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof e==\"function\"?l.refCleanup=e(a):e.current=a}}catch(u){dl(l,t,u)}}function Gt(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a==\"function\")try{a()}catch(u){dl(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e==\"function\")try{e(null)}catch(u){dl(l,t,u)}else e.current=null}function u0(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case\"button\":case\"input\":case\"select\":case\"textarea\":e.autoFocus&&a.focus();break l;case\"img\":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(u){dl(l,l.return,u)}}function Rc(l,t,e){try{var a=l.stateNode;Jr(a,l.type,e,t),a[Pl]=t}catch(u){dl(l,l.return,u)}}function n0(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&Me(l.type)||l.tag===4}function Uc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||n0(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&Me(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function Cc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName===\"HTML\"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName===\"HTML\"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=Lt));else if(a!==4&&(a===27&&Me(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(Cc(l,t,e),l=l.sibling;l!==null;)Cc(l,t,e),l=l.sibling}function zn(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&Me(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(zn(l,t,e),l=l.sibling;l!==null;)zn(l,t,e),l=l.sibling}function i0(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);Jl(t,a,e),t[Zl]=l,t[Pl]=e}catch(n){dl(l,l.return,n)}}var Pt=!1,Rl=!1,Hc=!1,c0=typeof WeakSet==\"function\"?WeakSet:Set,Yl=null;function Ar(l,t){if(l=l.containerInfo,ef=Kn,l=ps(l),Mi(l)){if(\"selectionStart\"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var u=a.anchorOffset,n=a.focusNode;a=a.focusOffset;try{e.nodeType,n.nodeType}catch{e=null;break l}var i=0,f=-1,h=-1,y=0,T=0,O=l,S=null;t:for(;;){for(var p;O!==e||u!==0&&O.nodeType!==3||(f=i+u),O!==n||a!==0&&O.nodeType!==3||(h=i+a),O.nodeType===3&&(i+=O.nodeValue.length),(p=O.firstChild)!==null;)S=O,O=p;for(;;){if(O===l)break t;if(S===e&&++y===u&&(f=i),S===n&&++T===a&&(h=i),(p=O.nextSibling)!==null)break;O=S,S=O.parentNode}O=p}e=f===-1||h===-1?null:{start:f,end:h}}else e=null}e=e||{start:0,end:0}}else e=null;for(af={focusedElem:l,selectionRange:e},Kn=!1,Yl=t;Yl!==null;)if(t=Yl,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Yl=l;else for(;Yl!==null;){switch(t=Yl,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e<l.length;e++)u=l[e],u.ref.impl=u.nextImpl;break;case 11:case 15:break;case 1:if((l&1024)!==0&&n!==null){l=void 0,e=t,u=n.memoizedProps,n=n.memoizedState,a=e.stateNode;try{var Y=Fe(e.type,u);l=a.getSnapshotBeforeUpdate(Y,n),a.__reactInternalSnapshotBeforeUpdate=l}catch(L){dl(e,e.return,L)}}break;case 3:if((l&1024)!==0){if(l=t.stateNode.containerInfo,e=l.nodeType,e===9)cf(l);else if(e===1)switch(l.nodeName){case\"HEAD\":case\"HTML\":case\"BODY\":cf(l);break;default:l.textContent=\"\"}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((l&1024)!==0)throw Error(s(163))}if(l=t.sibling,l!==null){l.return=t.return,Yl=l;break}Yl=t.return}}function f0(l,t,e){var a=e.flags;switch(e.tag){case 0:case 11:case 15:te(l,e),a&4&&ou(5,e);break;case 1:if(te(l,e),a&4)if(l=e.stateNode,t===null)try{l.componentDidMount()}catch(i){dl(e,e.return,i)}else{var u=Fe(e.type,t.memoizedProps);t=t.memoizedState;try{l.componentDidUpdate(u,t,l.__reactInternalSnapshotBeforeUpdate)}catch(i){dl(e,e.return,i)}}a&64&&e0(e),a&512&&ru(e,e.return);break;case 3:if(te(l,e),a&64&&(l=e.updateQueue,l!==null)){if(t=null,e.child!==null)switch(e.child.tag){case 27:case 5:t=e.child.stateNode;break;case 1:t=e.child.stateNode}try{Js(l,t)}catch(i){dl(e,e.return,i)}}break;case 27:t===null&&a&4&&i0(e);case 26:case 5:te(l,e),t===null&&a&4&&u0(e),a&512&&ru(e,e.return);break;case 12:te(l,e);break;case 31:te(l,e),a&4&&h0(l,e);break;case 13:te(l,e),a&4&&o0(l,e),a&64&&(l=e.memoizedState,l!==null&&(l=l.dehydrated,l!==null&&(e=Cr.bind(null,e),lm(l,e))));break;case 22:if(a=e.memoizedState!==null||Pt,!a){t=t!==null&&t.memoizedState!==null||Rl,u=Pt;var n=Rl;Pt=a,(Rl=t)&&!n?ee(l,e,(e.subtreeFlags&8772)!==0):te(l,e),Pt=u,Rl=n}break;case 30:break;default:te(l,e)}}function s0(l){var t=l.alternate;t!==null&&(l.alternate=null,s0(t)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(t=l.stateNode,t!==null&&hi(t)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}var Sl=null,tt=!1;function le(l,t,e){for(e=e.child;e!==null;)d0(l,t,e),e=e.sibling}function d0(l,t,e){if(ht&&typeof ht.onCommitFiberUnmount==\"function\")try{ht.onCommitFiberUnmount(Ba,e)}catch{}switch(e.tag){case 26:Rl||Gt(e,t),le(l,t,e),e.memoizedState?e.memoizedState.count--:e.stateNode&&(e=e.stateNode,e.parentNode.removeChild(e));break;case 27:Rl||Gt(e,t);var a=Sl,u=tt;Me(e.type)&&(Sl=e.stateNode,tt=!1),le(l,t,e),xu(e.stateNode),Sl=a,tt=u;break;case 5:Rl||Gt(e,t);case 6:if(a=Sl,u=tt,Sl=null,le(l,t,e),Sl=a,tt=u,Sl!==null)if(tt)try{(Sl.nodeType===9?Sl.body:Sl.nodeName===\"HTML\"?Sl.ownerDocument.body:Sl).removeChild(e.stateNode)}catch(n){dl(e,t,n)}else try{Sl.removeChild(e.stateNode)}catch(n){dl(e,t,n)}break;case 18:Sl!==null&&(tt?(l=Sl,eh(l.nodeType===9?l.body:l.nodeName===\"HTML\"?l.ownerDocument.body:l,e.stateNode),qa(l)):eh(Sl,e.stateNode));break;case 4:a=Sl,u=tt,Sl=e.stateNode.containerInfo,tt=!0,le(l,t,e),Sl=a,tt=u;break;case 0:case 11:case 14:case 15:je(2,e,t),Rl||je(4,e,t),le(l,t,e);break;case 1:Rl||(Gt(e,t),a=e.stateNode,typeof a.componentWillUnmount==\"function\"&&a0(e,t,a)),le(l,t,e);break;case 21:le(l,t,e);break;case 22:Rl=(a=Rl)||e.memoizedState!==null,le(l,t,e),Rl=a;break;default:le(l,t,e)}}function h0(l,t){if(t.memoizedState===null&&(l=t.alternate,l!==null&&(l=l.memoizedState,l!==null))){l=l.dehydrated;try{qa(l)}catch(e){dl(t,t.return,e)}}}function o0(l,t){if(t.memoizedState===null&&(l=t.alternate,l!==null&&(l=l.memoizedState,l!==null&&(l=l.dehydrated,l!==null))))try{qa(l)}catch(e){dl(t,t.return,e)}}function Er(l){switch(l.tag){case 31:case 13:case 19:var t=l.stateNode;return t===null&&(t=l.stateNode=new c0),t;case 22:return l=l.stateNode,t=l._retryCache,t===null&&(t=l._retryCache=new c0),t;default:throw Error(s(435,l.tag))}}function An(l,t){var e=Er(l);t.forEach(function(a){if(!e.has(a)){e.add(a);var u=Hr.bind(null,l,a);a.then(u,u)}})}function et(l,t){var e=t.deletions;if(e!==null)for(var a=0;a<e.length;a++){var u=e[a],n=l,i=t,f=i;l:for(;f!==null;){switch(f.tag){case 27:if(Me(f.type)){Sl=f.stateNode,tt=!1;break l}break;case 5:Sl=f.stateNode,tt=!1;break l;case 3:case 4:Sl=f.stateNode.containerInfo,tt=!0;break l}f=f.return}if(Sl===null)throw Error(s(160));d0(n,i,u),Sl=null,tt=!1,n=u.alternate,n!==null&&(n.return=null),u.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)r0(t,l),t=t.sibling}var Ct=null;function r0(l,t){var e=l.alternate,a=l.flags;switch(l.tag){case 0:case 11:case 14:case 15:et(t,l),at(l),a&4&&(je(3,l,l.return),ou(3,l),je(5,l,l.return));break;case 1:et(t,l),at(l),a&512&&(Rl||e===null||Gt(e,e.return)),a&64&&Pt&&(l=l.updateQueue,l!==null&&(a=l.callbacks,a!==null&&(e=l.shared.hiddenCallbacks,l.shared.hiddenCallbacks=e===null?a:e.concat(a))));break;case 26:var u=Ct;if(et(t,l),at(l),a&512&&(Rl||e===null||Gt(e,e.return)),a&4){var n=e!==null?e.memoizedState:null;if(a=l.memoizedState,e===null)if(a===null)if(l.stateNode===null){l:{a=l.type,e=l.memoizedProps,u=u.ownerDocument||u;t:switch(a){case\"title\":n=u.getElementsByTagName(\"title\")[0],(!n||n[Xa]||n[Zl]||n.namespaceURI===\"http://www.w3.org/2000/svg\"||n.hasAttribute(\"itemprop\"))&&(n=u.createElement(a),u.head.insertBefore(n,u.querySelector(\"head > title\"))),Jl(n,a,e),n[Zl]=l,Bl(n),a=n;break l;case\"link\":var i=rh(\"link\",\"href\",u).get(a+(e.href||\"\"));if(i){for(var f=0;f<i.length;f++)if(n=i[f],n.getAttribute(\"href\")===(e.href==null||e.href===\"\"?null:e.href)&&n.getAttribute(\"rel\")===(e.rel==null?null:e.rel)&&n.getAttribute(\"title\")===(e.title==null?null:e.title)&&n.getAttribute(\"crossorigin\")===(e.crossOrigin==null?null:e.crossOrigin)){i.splice(f,1);break t}}n=u.createElement(a),Jl(n,a,e),u.head.appendChild(n);break;case\"meta\":if(i=rh(\"meta\",\"content\",u).get(a+(e.content||\"\"))){for(f=0;f<i.length;f++)if(n=i[f],n.getAttribute(\"content\")===(e.content==null?null:\"\"+e.content)&&n.getAttribute(\"name\")===(e.name==null?null:e.name)&&n.getAttribute(\"property\")===(e.property==null?null:e.property)&&n.getAttribute(\"http-equiv\")===(e.httpEquiv==null?null:e.httpEquiv)&&n.getAttribute(\"charset\")===(e.charSet==null?null:e.charSet)){i.splice(f,1);break t}}n=u.createElement(a),Jl(n,a,e),u.head.appendChild(n);break;default:throw Error(s(468,a))}n[Zl]=l,Bl(n),a=n}l.stateNode=a}else mh(u,l.type,l.stateNode);else l.stateNode=oh(u,a,l.memoizedProps);else n!==a?(n===null?e.stateNode!==null&&(e=e.stateNode,e.parentNode.removeChild(e)):n.count--,a===null?mh(u,l.type,l.stateNode):oh(u,a,l.memoizedProps)):a===null&&l.stateNode!==null&&Rc(l,l.memoizedProps,e.memoizedProps)}break;case 27:et(t,l),at(l),a&512&&(Rl||e===null||Gt(e,e.return)),e!==null&&a&4&&Rc(l,l.memoizedProps,e.memoizedProps);break;case 5:if(et(t,l),at(l),a&512&&(Rl||e===null||Gt(e,e.return)),l.flags&32){u=l.stateNode;try{na(u,\"\")}catch(Y){dl(l,l.return,Y)}}a&4&&l.stateNode!=null&&(u=l.memoizedProps,Rc(l,u,e!==null?e.memoizedProps:u)),a&1024&&(Hc=!0);break;case 6:if(et(t,l),at(l),a&4){if(l.stateNode===null)throw Error(s(162));a=l.memoizedProps,e=l.stateNode;try{e.nodeValue=a}catch(Y){dl(l,l.return,Y)}}break;case 3:if(Qn=null,u=Ct,Ct=Gn(t.containerInfo),et(t,l),Ct=u,at(l),a&4&&e!==null&&e.memoizedState.isDehydrated)try{qa(t.containerInfo)}catch(Y){dl(l,l.return,Y)}Hc&&(Hc=!1,m0(l));break;case 4:a=Ct,Ct=Gn(l.stateNode.containerInfo),et(t,l),at(l),Ct=a;break;case 12:et(t,l),at(l);break;case 31:et(t,l),at(l),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,An(l,a)));break;case 13:et(t,l),at(l),l.child.flags&8192&&l.memoizedState!==null!=(e!==null&&e.memoizedState!==null)&&(On=dt()),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,An(l,a)));break;case 22:u=l.memoizedState!==null;var h=e!==null&&e.memoizedState!==null,y=Pt,T=Rl;if(Pt=y||u,Rl=T||h,et(t,l),Rl=T,Pt=y,at(l),a&8192)l:for(t=l.stateNode,t._visibility=u?t._visibility&-2:t._visibility|1,u&&(e===null||h||Pt||Rl||ke(l)),e=null,t=l;;){if(t.tag===5||t.tag===26){if(e===null){h=e=t;try{if(n=h.stateNode,u)i=n.style,typeof i.setProperty==\"function\"?i.setProperty(\"display\",\"none\",\"important\"):i.display=\"none\";else{f=h.stateNode;var O=h.memoizedProps.style,S=O!=null&&O.hasOwnProperty(\"display\")?O.display:null;f.style.display=S==null||typeof S==\"boolean\"?\"\":(\"\"+S).trim()}}catch(Y){dl(h,h.return,Y)}}}else if(t.tag===6){if(e===null){h=t;try{h.stateNode.nodeValue=u?\"\":h.memoizedProps}catch(Y){dl(h,h.return,Y)}}}else if(t.tag===18){if(e===null){h=t;try{var p=h.stateNode;u?ah(p,!0):ah(h.stateNode,!1)}catch(Y){dl(h,h.return,Y)}}}else if((t.tag!==22&&t.tag!==23||t.memoizedState===null||t===l)&&t.child!==null){t.child.return=t,t=t.child;continue}if(t===l)break l;for(;t.sibling===null;){if(t.return===null||t.return===l)break l;e===t&&(e=null),t=t.return}e===t&&(e=null),t.sibling.return=t.return,t=t.sibling}a&4&&(a=l.updateQueue,a!==null&&(e=a.retryQueue,e!==null&&(a.retryQueue=null,An(l,e))));break;case 19:et(t,l),at(l),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,An(l,a)));break;case 30:break;case 21:break;default:et(t,l),at(l)}}function at(l){var t=l.flags;if(t&2){try{for(var e,a=l.return;a!==null;){if(n0(a)){e=a;break}a=a.return}if(e==null)throw Error(s(160));switch(e.tag){case 27:var u=e.stateNode,n=Uc(l);zn(l,n,u);break;case 5:var i=e.stateNode;e.flags&32&&(na(i,\"\"),e.flags&=-33);var f=Uc(l);zn(l,f,i);break;case 3:case 4:var h=e.stateNode.containerInfo,y=Uc(l);Cc(l,y,h);break;default:throw Error(s(161))}}catch(T){dl(l,l.return,T)}l.flags&=-3}t&4096&&(l.flags&=-4097)}function m0(l){if(l.subtreeFlags&1024)for(l=l.child;l!==null;){var t=l;m0(t),t.tag===5&&t.flags&1024&&t.stateNode.reset(),l=l.sibling}}function te(l,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)f0(l,t.alternate,t),t=t.sibling}function ke(l){for(l=l.child;l!==null;){var t=l;switch(t.tag){case 0:case 11:case 14:case 15:je(4,t,t.return),ke(t);break;case 1:Gt(t,t.return);var e=t.stateNode;typeof e.componentWillUnmount==\"function\"&&a0(t,t.return,e),ke(t);break;case 27:xu(t.stateNode);case 26:case 5:Gt(t,t.return),ke(t);break;case 22:t.memoizedState===null&&ke(t);break;case 30:ke(t);break;default:ke(t)}l=l.sibling}}function ee(l,t,e){for(e=e&&(t.subtreeFlags&8772)!==0,t=t.child;t!==null;){var a=t.alternate,u=l,n=t,i=n.flags;switch(n.tag){case 0:case 11:case 15:ee(u,n,e),ou(4,n);break;case 1:if(ee(u,n,e),a=n,u=a.stateNode,typeof u.componentDidMount==\"function\")try{u.componentDidMount()}catch(y){dl(a,a.return,y)}if(a=n,u=a.updateQueue,u!==null){var f=a.stateNode;try{var h=u.shared.hiddenCallbacks;if(h!==null)for(u.shared.hiddenCallbacks=null,u=0;u<h.length;u++)Ks(h[u],f)}catch(y){dl(a,a.return,y)}}e&&i&64&&e0(n),ru(n,n.return);break;case 27:i0(n);case 26:case 5:ee(u,n,e),e&&a===null&&i&4&&u0(n),ru(n,n.return);break;case 12:ee(u,n,e);break;case 31:ee(u,n,e),e&&i&4&&h0(u,n);break;case 13:ee(u,n,e),e&&i&4&&o0(u,n);break;case 22:n.memoizedState===null&&ee(u,n,e),ru(n,n.return);break;case 30:break;default:ee(u,n,e)}t=t.sibling}}function qc(l,t){var e=null;l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),l=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(l=t.memoizedState.cachePool.pool),l!==e&&(l!=null&&l.refCount++,e!=null&&Pa(e))}function Bc(l,t){l=null,t.alternate!==null&&(l=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==l&&(t.refCount++,l!=null&&Pa(l))}function Ht(l,t,e,a){if(t.subtreeFlags&10256)for(t=t.child;t!==null;)v0(l,t,e,a),t=t.sibling}function v0(l,t,e,a){var u=t.flags;switch(t.tag){case 0:case 11:case 15:Ht(l,t,e,a),u&2048&&ou(9,t);break;case 1:Ht(l,t,e,a);break;case 3:Ht(l,t,e,a),u&2048&&(l=null,t.alternate!==null&&(l=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==l&&(t.refCount++,l!=null&&Pa(l)));break;case 12:if(u&2048){Ht(l,t,e,a),l=t.stateNode;try{var n=t.memoizedProps,i=n.id,f=n.onPostCommit;typeof f==\"function\"&&f(i,t.alternate===null?\"mount\":\"update\",l.passiveEffectDuration,-0)}catch(h){dl(t,t.return,h)}}else Ht(l,t,e,a);break;case 31:Ht(l,t,e,a);break;case 13:Ht(l,t,e,a);break;case 23:break;case 22:n=t.stateNode,i=t.alternate,t.memoizedState!==null?n._visibility&2?Ht(l,t,e,a):mu(l,t):n._visibility&2?Ht(l,t,e,a):(n._visibility|=2,Aa(l,t,e,a,(t.subtreeFlags&10256)!==0||!1)),u&2048&&qc(i,t);break;case 24:Ht(l,t,e,a),u&2048&&Bc(t.alternate,t);break;default:Ht(l,t,e,a)}}function Aa(l,t,e,a,u){for(u=u&&((t.subtreeFlags&10256)!==0||!1),t=t.child;t!==null;){var n=l,i=t,f=e,h=a,y=i.flags;switch(i.tag){case 0:case 11:case 15:Aa(n,i,f,h,u),ou(8,i);break;case 23:break;case 22:var T=i.stateNode;i.memoizedState!==null?T._visibility&2?Aa(n,i,f,h,u):mu(n,i):(T._visibility|=2,Aa(n,i,f,h,u)),u&&y&2048&&qc(i.alternate,i);break;case 24:Aa(n,i,f,h,u),u&&y&2048&&Bc(i.alternate,i);break;default:Aa(n,i,f,h,u)}t=t.sibling}}function mu(l,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var e=l,a=t,u=a.flags;switch(a.tag){case 22:mu(e,a),u&2048&&qc(a.alternate,a);break;case 24:mu(e,a),u&2048&&Bc(a.alternate,a);break;default:mu(e,a)}t=t.sibling}}var vu=8192;function Ea(l,t,e){if(l.subtreeFlags&vu)for(l=l.child;l!==null;)y0(l,t,e),l=l.sibling}function y0(l,t,e){switch(l.tag){case 26:Ea(l,t,e),l.flags&vu&&l.memoizedState!==null&&om(e,Ct,l.memoizedState,l.memoizedProps);break;case 5:Ea(l,t,e);break;case 3:case 4:var a=Ct;Ct=Gn(l.stateNode.containerInfo),Ea(l,t,e),Ct=a;break;case 22:l.memoizedState===null&&(a=l.alternate,a!==null&&a.memoizedState!==null?(a=vu,vu=16777216,Ea(l,t,e),vu=a):Ea(l,t,e));break;default:Ea(l,t,e)}}function g0(l){var t=l.alternate;if(t!==null&&(l=t.child,l!==null)){t.child=null;do t=l.sibling,l.sibling=null,l=t;while(l!==null)}}function yu(l){var t=l.deletions;if((l.flags&16)!==0){if(t!==null)for(var e=0;e<t.length;e++){var a=t[e];Yl=a,p0(a,l)}g0(l)}if(l.subtreeFlags&10256)for(l=l.child;l!==null;)S0(l),l=l.sibling}function S0(l){switch(l.tag){case 0:case 11:case 15:yu(l),l.flags&2048&&je(9,l,l.return);break;case 3:yu(l);break;case 12:yu(l);break;case 22:var t=l.stateNode;l.memoizedState!==null&&t._visibility&2&&(l.return===null||l.return.tag!==13)?(t._visibility&=-3,En(l)):yu(l);break;default:yu(l)}}function En(l){var t=l.deletions;if((l.flags&16)!==0){if(t!==null)for(var e=0;e<t.length;e++){var a=t[e];Yl=a,p0(a,l)}g0(l)}for(l=l.child;l!==null;){switch(t=l,t.tag){case 0:case 11:case 15:je(8,t,t.return),En(t);break;case 22:e=t.stateNode,e._visibility&2&&(e._visibility&=-3,En(t));break;default:En(t)}l=l.sibling}}function p0(l,t){for(;Yl!==null;){var e=Yl;switch(e.tag){case 0:case 11:case 15:je(8,e,t);break;case 23:case 22:if(e.memoizedState!==null&&e.memoizedState.cachePool!==null){var a=e.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:Pa(e.memoizedState.cache)}if(a=e.child,a!==null)a.return=e,Yl=a;else l:for(e=l;Yl!==null;){a=Yl;var u=a.sibling,n=a.return;if(s0(a),a===e){Yl=null;break l}if(u!==null){u.return=n,Yl=u;break l}Yl=n}}}var Or={getCacheForType:function(l){var t=Vl(_l),e=t.data.get(l);return e===void 0&&(e=l(),t.data.set(l,e)),e},cacheSignal:function(){return Vl(_l).controller.signal}},Mr=typeof WeakMap==\"function\"?WeakMap:Map,cl=0,ml=null,F=null,I=0,sl=0,gt=null,xe=!1,Oa=!1,Yc=!1,ae=0,Tl=0,Te=0,Ie=0,Gc=0,St=0,Ma=0,gu=null,ut=null,Xc=!1,On=0,b0=0,Mn=1/0,_n=null,ze=null,Ul=0,Ae=null,_a=null,ue=0,Qc=0,Zc=null,j0=null,Su=0,Lc=null;function pt(){return(cl&2)!==0&&I!==0?I&-I:x.T!==null?Wc():Bf()}function x0(){if(St===0)if((I&536870912)===0||tl){var l=qu;qu<<=1,(qu&3932160)===0&&(qu=262144),St=l}else St=536870912;return l=vt.current,l!==null&&(l.flags|=32),St}function nt(l,t,e){(l===ml&&(sl===2||sl===9)||l.cancelPendingCommit!==null)&&(Da(l,0),Ee(l,I,St,!1)),Ga(l,e),((cl&2)===0||l!==ml)&&(l===ml&&((cl&2)===0&&(Ie|=e),Tl===4&&Ee(l,I,St,!1)),Xt(l))}function T0(l,t,e){if((cl&6)!==0)throw Error(s(327));var a=!e&&(t&127)===0&&(t&l.expiredLanes)===0||Ya(l,t),u=a?Nr(l,t):Kc(l,t,!0),n=a;do{if(u===0){Oa&&!a&&Ee(l,t,0,!1);break}else{if(e=l.current.alternate,n&&!_r(e)){u=Kc(l,t,!1),n=!1;continue}if(u===2){if(n=t,l.errorRecoveryDisabledLanes&n)var i=0;else i=l.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){t=i;l:{var f=l;u=gu;var h=f.current.memoizedState.isDehydrated;if(h&&(Da(f,i).flags|=256),i=Kc(f,i,!1),i!==2){if(Yc&&!h){f.errorRecoveryDisabledLanes|=n,Ie|=n,u=4;break l}n=ut,ut=u,n!==null&&(ut===null?ut=n:ut.push.apply(ut,n))}u=i}if(n=!1,u!==2)continue}}if(u===1){Da(l,0),Ee(l,t,0,!0);break}l:{switch(a=l,n=u,n){case 0:case 1:throw Error(s(345));case 4:if((t&4194048)!==t)break;case 6:Ee(a,t,St,!xe);break l;case 2:ut=null;break;case 3:case 5:break;default:throw Error(s(329))}if((t&62914560)===t&&(u=On+300-dt(),10<u)){if(Ee(a,t,St,!xe),Yu(a,0,!0)!==0)break l;ue=t,a.timeoutHandle=lh(z0.bind(null,a,e,ut,_n,Xc,t,St,Ie,Ma,xe,n,\"Throttled\",-0,0),u);break l}z0(a,e,ut,_n,Xc,t,St,Ie,Ma,xe,n,null,-0,0)}}break}while(!0);Xt(l)}function z0(l,t,e,a,u,n,i,f,h,y,T,O,S,p){if(l.timeoutHandle=-1,O=t.subtreeFlags,O&8192||(O&16785408)===16785408){O={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Lt},y0(t,n,O);var Y=(n&62914560)===n?On-dt():(n&4194048)===n?b0-dt():0;if(Y=rm(O,Y),Y!==null){ue=n,l.cancelPendingCommit=Y(R0.bind(null,l,t,n,e,a,u,i,f,h,T,O,null,S,p)),Ee(l,n,i,!y);return}}R0(l,t,n,e,a,u,i,f,h)}function _r(l){for(var t=l;;){var e=t.tag;if((e===0||e===11||e===15)&&t.flags&16384&&(e=t.updateQueue,e!==null&&(e=e.stores,e!==null)))for(var a=0;a<e.length;a++){var u=e[a],n=u.getSnapshot;u=u.value;try{if(!rt(n(),u))return!1}catch{return!1}}if(e=t.child,t.subtreeFlags&16384&&e!==null)e.return=t,t=e;else{if(t===l)break;for(;t.sibling===null;){if(t.return===null||t.return===l)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Ee(l,t,e,a){t&=~Gc,t&=~Ie,l.suspendedLanes|=t,l.pingedLanes&=~t,a&&(l.warmLanes|=t),a=l.expirationTimes;for(var u=t;0<u;){var n=31-ot(u),i=1<<n;a[n]=-1,u&=~i}e!==0&&Cf(l,e,t)}function Dn(){return(cl&6)===0?(pu(0),!1):!0}function Vc(){if(F!==null){if(sl===0)var l=F.return;else l=F,wt=Le=null,ic(l),ba=null,tu=0,l=F;for(;l!==null;)t0(l.alternate,l),l=l.return;F=null}}function Da(l,t){var e=l.timeoutHandle;e!==-1&&(l.timeoutHandle=-1,Wr(e)),e=l.cancelPendingCommit,e!==null&&(l.cancelPendingCommit=null,e()),ue=0,Vc(),ml=l,F=e=Kt(l.current,null),I=t,sl=0,gt=null,xe=!1,Oa=Ya(l,t),Yc=!1,Ma=St=Gc=Ie=Te=Tl=0,ut=gu=null,Xc=!1,(t&8)!==0&&(t|=t&32);var a=l.entangledLanes;if(a!==0)for(l=l.entanglements,a&=t;0<a;){var u=31-ot(a),n=1<<u;t|=l[u],a&=~n}return ae=t,Fu(),e}function A0(l,t){J=null,x.H=su,t===pa||t===un?(t=Qs(),sl=3):t===$i?(t=Qs(),sl=4):sl=t===xc?8:t!==null&&typeof t==\"object\"&&typeof t.then==\"function\"?6:1,gt=t,F===null&&(Tl=1,pn(l,At(t,l.current)))}function E0(){var l=vt.current;return l===null?!0:(I&4194048)===I?_t===null:(I&62914560)===I||(I&536870912)!==0?l===_t:!1}function O0(){var l=x.H;return x.H=su,l===null?su:l}function M0(){var l=x.A;return x.A=Or,l}function Nn(){Tl=4,xe||(I&4194048)!==I&&vt.current!==null||(Oa=!0),(Te&134217727)===0&&(Ie&134217727)===0||ml===null||Ee(ml,I,St,!1)}function Kc(l,t,e){var a=cl;cl|=2;var u=O0(),n=M0();(ml!==l||I!==t)&&(_n=null,Da(l,t)),t=!1;var i=Tl;l:do try{if(sl!==0&&F!==null){var f=F,h=gt;switch(sl){case 8:Vc(),i=6;break l;case 3:case 2:case 9:case 6:vt.current===null&&(t=!0);var y=sl;if(sl=0,gt=null,Na(l,f,h,y),e&&Oa){i=0;break l}break;default:y=sl,sl=0,gt=null,Na(l,f,h,y)}}Dr(),i=Tl;break}catch(T){A0(l,T)}while(!0);return t&&l.shellSuspendCounter++,wt=Le=null,cl=a,x.H=u,x.A=n,F===null&&(ml=null,I=0,Fu()),i}function Dr(){for(;F!==null;)_0(F)}function Nr(l,t){var e=cl;cl|=2;var a=O0(),u=M0();ml!==l||I!==t?(_n=null,Mn=dt()+500,Da(l,t)):Oa=Ya(l,t);l:do try{if(sl!==0&&F!==null){t=F;var n=gt;t:switch(sl){case 1:sl=0,gt=null,Na(l,t,n,1);break;case 2:case 9:if(Gs(n)){sl=0,gt=null,D0(t);break}t=function(){sl!==2&&sl!==9||ml!==l||(sl=7),Xt(l)},n.then(t,t);break l;case 3:sl=7;break l;case 4:sl=5;break l;case 7:Gs(n)?(sl=0,gt=null,D0(t)):(sl=0,gt=null,Na(l,t,n,7));break;case 5:var i=null;switch(F.tag){case 26:i=F.memoizedState;case 5:case 27:var f=F;if(i?vh(i):f.stateNode.complete){sl=0,gt=null;var h=f.sibling;if(h!==null)F=h;else{var y=f.return;y!==null?(F=y,Rn(y)):F=null}break t}}sl=0,gt=null,Na(l,t,n,5);break;case 6:sl=0,gt=null,Na(l,t,n,6);break;case 8:Vc(),Tl=6;break l;default:throw Error(s(462))}}Rr();break}catch(T){A0(l,T)}while(!0);return wt=Le=null,x.H=a,x.A=u,cl=e,F!==null?0:(ml=null,I=0,Fu(),Tl)}function Rr(){for(;F!==null&&!lo();)_0(F)}function _0(l){var t=Pd(l.alternate,l,ae);l.memoizedProps=l.pendingProps,t===null?Rn(l):F=t}function D0(l){var t=l,e=t.alternate;switch(t.tag){case 15:case 0:t=wd(e,t,t.pendingProps,t.type,void 0,I);break;case 11:t=wd(e,t,t.pendingProps,t.type.render,t.ref,I);break;case 5:ic(t);default:t0(e,t),t=F=Ms(t,ae),t=Pd(e,t,ae)}l.memoizedProps=l.pendingProps,t===null?Rn(l):F=t}function Na(l,t,e,a){wt=Le=null,ic(t),ba=null,tu=0;var u=t.return;try{if(br(l,u,t,e,I)){Tl=1,pn(l,At(e,l.current)),F=null;return}}catch(n){if(u!==null)throw F=u,n;Tl=1,pn(l,At(e,l.current)),F=null;return}t.flags&32768?(tl||a===1?l=!0:Oa||(I&536870912)!==0?l=!1:(xe=l=!0,(a===2||a===9||a===3||a===6)&&(a=vt.current,a!==null&&a.tag===13&&(a.flags|=16384))),N0(t,l)):Rn(t)}function Rn(l){var t=l;do{if((t.flags&32768)!==0){N0(t,xe);return}l=t.return;var e=Tr(t.alternate,t,ae);if(e!==null){F=e;return}if(t=t.sibling,t!==null){F=t;return}F=t=l}while(t!==null);Tl===0&&(Tl=5)}function N0(l,t){do{var e=zr(l.alternate,l);if(e!==null){e.flags&=32767,F=e;return}if(e=l.return,e!==null&&(e.flags|=32768,e.subtreeFlags=0,e.deletions=null),!t&&(l=l.sibling,l!==null)){F=l;return}F=l=e}while(l!==null);Tl=6,F=null}function R0(l,t,e,a,u,n,i,f,h){l.cancelPendingCommit=null;do Un();while(Ul!==0);if((cl&6)!==0)throw Error(s(327));if(t!==null){if(t===l.current)throw Error(s(177));if(n=t.lanes|t.childLanes,n|=Ui,ho(l,e,n,i,f,h),l===ml&&(F=ml=null,I=0),_a=t,Ae=l,ue=e,Qc=n,Zc=u,j0=a,(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?(l.callbackNode=null,l.callbackPriority=0,qr(Cu,function(){return B0(),null})):(l.callbackNode=null,l.callbackPriority=0),a=(t.flags&13878)!==0,(t.subtreeFlags&13878)!==0||a){a=x.T,x.T=null,u=N.p,N.p=2,i=cl,cl|=4;try{Ar(l,t,e)}finally{cl=i,N.p=u,x.T=a}}Ul=1,U0(),C0(),H0()}}function U0(){if(Ul===1){Ul=0;var l=Ae,t=_a,e=(t.flags&13878)!==0;if((t.subtreeFlags&13878)!==0||e){e=x.T,x.T=null;var a=N.p;N.p=2;var u=cl;cl|=4;try{r0(t,l);var n=af,i=ps(l.containerInfo),f=n.focusedElem,h=n.selectionRange;if(i!==f&&f&&f.ownerDocument&&Ss(f.ownerDocument.documentElement,f)){if(h!==null&&Mi(f)){var y=h.start,T=h.end;if(T===void 0&&(T=y),\"selectionStart\"in f)f.selectionStart=y,f.selectionEnd=Math.min(T,f.value.length);else{var O=f.ownerDocument||document,S=O&&O.defaultView||window;if(S.getSelection){var p=S.getSelection(),Y=f.textContent.length,L=Math.min(h.start,Y),rl=h.end===void 0?L:Math.min(h.end,Y);!p.extend&&L>rl&&(i=rl,rl=L,L=i);var m=gs(f,L),o=gs(f,rl);if(m&&o&&(p.rangeCount!==1||p.anchorNode!==m.node||p.anchorOffset!==m.offset||p.focusNode!==o.node||p.focusOffset!==o.offset)){var v=O.createRange();v.setStart(m.node,m.offset),p.removeAllRanges(),L>rl?(p.addRange(v),p.extend(o.node,o.offset)):(v.setEnd(o.node,o.offset),p.addRange(v))}}}}for(O=[],p=f;p=p.parentNode;)p.nodeType===1&&O.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof f.focus==\"function\"&&f.focus(),f=0;f<O.length;f++){var E=O[f];E.element.scrollLeft=E.left,E.element.scrollTop=E.top}}Kn=!!ef,af=ef=null}finally{cl=u,N.p=a,x.T=e}}l.current=t,Ul=2}}function C0(){if(Ul===2){Ul=0;var l=Ae,t=_a,e=(t.flags&8772)!==0;if((t.subtreeFlags&8772)!==0||e){e=x.T,x.T=null;var a=N.p;N.p=2;var u=cl;cl|=4;try{f0(l,t.alternate,t)}finally{cl=u,N.p=a,x.T=e}}Ul=3}}function H0(){if(Ul===4||Ul===3){Ul=0,to();var l=Ae,t=_a,e=ue,a=j0;(t.subtreeFlags&10256)!==0||(t.flags&10256)!==0?Ul=5:(Ul=0,_a=Ae=null,q0(l,l.pendingLanes));var u=l.pendingLanes;if(u===0&&(ze=null),si(e),t=t.stateNode,ht&&typeof ht.onCommitFiberRoot==\"function\")try{ht.onCommitFiberRoot(Ba,t,void 0,(t.current.flags&128)===128)}catch{}if(a!==null){t=x.T,u=N.p,N.p=2,x.T=null;try{for(var n=l.onRecoverableError,i=0;i<a.length;i++){var f=a[i];n(f.value,{componentStack:f.stack})}}finally{x.T=t,N.p=u}}(ue&3)!==0&&Un(),Xt(l),u=l.pendingLanes,(e&261930)!==0&&(u&42)!==0?l===Lc?Su++:(Su=0,Lc=l):Su=0,pu(0)}}function q0(l,t){(l.pooledCacheLanes&=t)===0&&(t=l.pooledCache,t!=null&&(l.pooledCache=null,Pa(t)))}function Un(){return U0(),C0(),H0(),B0()}function B0(){if(Ul!==5)return!1;var l=Ae,t=Qc;Qc=0;var e=si(ue),a=x.T,u=N.p;try{N.p=32>e?32:e,x.T=null,e=Zc,Zc=null;var n=Ae,i=ue;if(Ul=0,_a=Ae=null,ue=0,(cl&6)!==0)throw Error(s(331));var f=cl;if(cl|=4,S0(n.current),v0(n,n.current,i,e),cl=f,pu(0,!1),ht&&typeof ht.onPostCommitFiberRoot==\"function\")try{ht.onPostCommitFiberRoot(Ba,n)}catch{}return!0}finally{N.p=u,x.T=a,q0(l,t)}}function Y0(l,t,e){t=At(e,t),t=jc(l.stateNode,t,2),l=Se(l,t,2),l!==null&&(Ga(l,2),Xt(l))}function dl(l,t,e){if(l.tag===3)Y0(l,l,e);else for(;t!==null;){if(t.tag===3){Y0(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError==\"function\"||typeof a.componentDidCatch==\"function\"&&(ze===null||!ze.has(a))){l=At(e,l),e=Gd(2),a=Se(t,e,2),a!==null&&(Xd(e,a,t,l),Ga(a,2),Xt(a));break}}t=t.return}}function Jc(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new Mr;var u=new Set;a.set(t,u)}else u=a.get(t),u===void 0&&(u=new Set,a.set(t,u));u.has(e)||(Yc=!0,u.add(e),l=Ur.bind(null,l,t,e),t.then(l,l))}function Ur(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,ml===l&&(I&e)===e&&(Tl===4||Tl===3&&(I&62914560)===I&&300>dt()-On?(cl&2)===0&&Da(l,0):Gc|=e,Ma===I&&(Ma=0)),Xt(l)}function G0(l,t){t===0&&(t=Uf()),l=Xe(l,t),l!==null&&(Ga(l,t),Xt(l))}function Cr(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),G0(l,e)}function Hr(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,u=l.memoizedState;u!==null&&(e=u.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(s(314))}a!==null&&a.delete(t),G0(l,e)}function qr(l,t){return ni(l,t)}var Cn=null,Ra=null,wc=!1,Hn=!1,$c=!1,Oe=0;function Xt(l){l!==Ra&&l.next===null&&(Ra===null?Cn=Ra=l:Ra=Ra.next=l),Hn=!0,wc||(wc=!0,Yr())}function pu(l,t){if(!$c&&Hn){$c=!0;do for(var e=!1,a=Cn;a!==null;){if(l!==0){var u=a.pendingLanes;if(u===0)var n=0;else{var i=a.suspendedLanes,f=a.pingedLanes;n=(1<<31-ot(42|l)+1)-1,n&=u&~(i&~f),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(e=!0,L0(a,n))}else n=I,n=Yu(a,a===ml?n:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(n&3)===0||Ya(a,n)||(e=!0,L0(a,n));a=a.next}while(e);$c=!1}}function Br(){X0()}function X0(){Hn=wc=!1;var l=0;Oe!==0&&$r()&&(l=Oe);for(var t=dt(),e=null,a=Cn;a!==null;){var u=a.next,n=Q0(a,t);n===0?(a.next=null,e===null?Cn=u:e.next=u,u===null&&(Ra=e)):(e=a,(l!==0||(n&3)!==0)&&(Hn=!0)),a=u}Ul!==0&&Ul!==5||pu(l),Oe!==0&&(Oe=0)}function Q0(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0<n;){var i=31-ot(n),f=1<<i,h=u[i];h===-1?((f&e)===0||(f&a)!==0)&&(u[i]=so(f,t)):h<=t&&(l.expiredLanes|=f),n&=~f}if(t=ml,e=I,e=Yu(l,l===t?e:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),a=l.callbackNode,e===0||l===t&&(sl===2||sl===9)||l.cancelPendingCommit!==null)return a!==null&&a!==null&&ii(a),l.callbackNode=null,l.callbackPriority=0;if((e&3)===0||Ya(l,e)){if(t=e&-e,t===l.callbackPriority)return t;switch(a!==null&&ii(a),si(e)){case 2:case 8:e=Nf;break;case 32:e=Cu;break;case 268435456:e=Rf;break;default:e=Cu}return a=Z0.bind(null,l),e=ni(e,a),l.callbackPriority=t,l.callbackNode=e,t}return a!==null&&a!==null&&ii(a),l.callbackPriority=2,l.callbackNode=null,2}function Z0(l,t){if(Ul!==0&&Ul!==5)return l.callbackNode=null,l.callbackPriority=0,null;var e=l.callbackNode;if(Un()&&l.callbackNode!==e)return null;var a=I;return a=Yu(l,l===ml?a:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),a===0?null:(T0(l,a,t),Q0(l,dt()),l.callbackNode!=null&&l.callbackNode===e?Z0.bind(null,l):null)}function L0(l,t){if(Un())return null;T0(l,t,!0)}function Yr(){Fr(function(){(cl&6)!==0?ni(Df,Br):X0()})}function Wc(){if(Oe===0){var l=ga;l===0&&(l=Hu,Hu<<=1,(Hu&261888)===0&&(Hu=256)),Oe=l}return Oe}function V0(l){return l==null||typeof l==\"symbol\"||typeof l==\"boolean\"?null:typeof l==\"function\"?l:Zu(\"\"+l)}function K0(l,t){var e=t.ownerDocument.createElement(\"input\");return e.name=t.name,e.value=t.value,l.id&&e.setAttribute(\"form\",l.id),t.parentNode.insertBefore(e,t),l=new FormData(l),e.parentNode.removeChild(e),l}function Gr(l,t,e,a,u){if(t===\"submit\"&&e&&e.stateNode===u){var n=V0((u[Pl]||null).action),i=a.submitter;i&&(t=(t=i[Pl]||null)?V0(t.formAction):i.getAttribute(\"formAction\"),t!==null&&(n=t,i=null));var f=new Ju(\"action\",\"action\",null,a,u);l.push({event:f,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(Oe!==0){var h=i?K0(u,i):new FormData(u);vc(e,{pending:!0,data:h,method:u.method,action:n},null,h)}}else typeof n==\"function\"&&(f.preventDefault(),h=i?K0(u,i):new FormData(u),vc(e,{pending:!0,data:h,method:u.method,action:n},n,h))},currentTarget:u}]})}}for(var Fc=0;Fc<Ri.length;Fc++){var kc=Ri[Fc],Xr=kc.toLowerCase(),Qr=kc[0].toUpperCase()+kc.slice(1);Ut(Xr,\"on\"+Qr)}Ut(xs,\"onAnimationEnd\"),Ut(Ts,\"onAnimationIteration\"),Ut(zs,\"onAnimationStart\"),Ut(\"dblclick\",\"onDoubleClick\"),Ut(\"focusin\",\"onFocus\"),Ut(\"focusout\",\"onBlur\"),Ut(ar,\"onTransitionRun\"),Ut(ur,\"onTransitionStart\"),Ut(nr,\"onTransitionCancel\"),Ut(As,\"onTransitionEnd\"),aa(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),aa(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),aa(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),aa(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),qe(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \")),qe(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \")),qe(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),qe(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \")),qe(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")),qe(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var bu=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Zr=new Set(\"beforetoggle cancel close invalid load scroll scrollend toggle\".split(\" \").concat(bu));function J0(l,t){t=(t&4)!==0;for(var e=0;e<l.length;e++){var a=l[e],u=a.event;a=a.listeners;l:{var n=void 0;if(t)for(var i=a.length-1;0<=i;i--){var f=a[i],h=f.instance,y=f.currentTarget;if(f=f.listener,h!==n&&u.isPropagationStopped())break l;n=f,u.currentTarget=y;try{n(u)}catch(T){Wu(T)}u.currentTarget=null,n=h}else for(i=0;i<a.length;i++){if(f=a[i],h=f.instance,y=f.currentTarget,f=f.listener,h!==n&&u.isPropagationStopped())break l;n=f,u.currentTarget=y;try{n(u)}catch(T){Wu(T)}u.currentTarget=null,n=h}}}}function k(l,t){var e=t[di];e===void 0&&(e=t[di]=new Set);var a=l+\"__bubble\";e.has(a)||(w0(t,l,2,!1),e.add(a))}function Ic(l,t,e){var a=0;t&&(a|=4),w0(e,l,a,t)}var qn=\"_reactListening\"+Math.random().toString(36).slice(2);function Pc(l){if(!l[qn]){l[qn]=!0,Xf.forEach(function(e){e!==\"selectionchange\"&&(Zr.has(e)||Ic(e,!1,l),Ic(e,!0,l))});var t=l.nodeType===9?l:l.ownerDocument;t===null||t[qn]||(t[qn]=!0,Ic(\"selectionchange\",!1,t))}}function w0(l,t,e,a){switch(xh(t)){case 2:var u=ym;break;case 8:u=gm;break;default:u=vf}e=u.bind(null,t,e,l),u=void 0,!pi||t!==\"touchstart\"&&t!==\"touchmove\"&&t!==\"wheel\"||(u=!0),a?u!==void 0?l.addEventListener(t,e,{capture:!0,passive:u}):l.addEventListener(t,e,!0):u!==void 0?l.addEventListener(t,e,{passive:u}):l.addEventListener(t,e,!1)}function lf(l,t,e,a,u){var n=a;if((t&1)===0&&(t&2)===0&&a!==null)l:for(;;){if(a===null)return;var i=a.tag;if(i===3||i===4){var f=a.stateNode.containerInfo;if(f===u)break;if(i===4)for(i=a.return;i!==null;){var h=i.tag;if((h===3||h===4)&&i.stateNode.containerInfo===u)return;i=i.return}for(;f!==null;){if(i=la(f),i===null)return;if(h=i.tag,h===5||h===6||h===26||h===27){a=n=i;continue l}f=f.parentNode}}a=a.return}If(function(){var y=n,T=gi(e),O=[];l:{var S=Es.get(l);if(S!==void 0){var p=Ju,Y=l;switch(l){case\"keypress\":if(Vu(e)===0)break l;case\"keydown\":case\"keyup\":p=Ho;break;case\"focusin\":Y=\"focus\",p=Ti;break;case\"focusout\":Y=\"blur\",p=Ti;break;case\"beforeblur\":case\"afterblur\":p=Ti;break;case\"click\":if(e.button===2)break l;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":p=ts;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":p=To;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":p=Yo;break;case xs:case Ts:case zs:p=Eo;break;case As:p=Xo;break;case\"scroll\":case\"scrollend\":p=jo;break;case\"wheel\":p=Zo;break;case\"copy\":case\"cut\":case\"paste\":p=Mo;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":p=as;break;case\"toggle\":case\"beforetoggle\":p=Vo}var L=(t&4)!==0,rl=!L&&(l===\"scroll\"||l===\"scrollend\"),m=L?S!==null?S+\"Capture\":null:S;L=[];for(var o=y,v;o!==null;){var E=o;if(v=E.stateNode,E=E.tag,E!==5&&E!==26&&E!==27||v===null||m===null||(E=Za(o,m),E!=null&&L.push(ju(o,E,v))),rl)break;o=o.return}0<L.length&&(S=new p(S,Y,null,e,T),O.push({event:S,listeners:L}))}}if((t&7)===0){l:{if(S=l===\"mouseover\"||l===\"pointerover\",p=l===\"mouseout\"||l===\"pointerout\",S&&e!==yi&&(Y=e.relatedTarget||e.fromElement)&&(la(Y)||Y[Pe]))break l;if((p||S)&&(S=T.window===T?T:(S=T.ownerDocument)?S.defaultView||S.parentWindow:window,p?(Y=e.relatedTarget||e.toElement,p=y,Y=Y?la(Y):null,Y!==null&&(rl=_(Y),L=Y.tag,Y!==rl||L!==5&&L!==27&&L!==6)&&(Y=null)):(p=null,Y=y),p!==Y)){if(L=ts,E=\"onMouseLeave\",m=\"onMouseEnter\",o=\"mouse\",(l===\"pointerout\"||l===\"pointerover\")&&(L=as,E=\"onPointerLeave\",m=\"onPointerEnter\",o=\"pointer\"),rl=p==null?S:Qa(p),v=Y==null?S:Qa(Y),S=new L(E,o+\"leave\",p,e,T),S.target=rl,S.relatedTarget=v,E=null,la(T)===y&&(L=new L(m,o+\"enter\",Y,e,T),L.target=v,L.relatedTarget=rl,E=L),rl=E,p&&Y)t:{for(L=Lr,m=p,o=Y,v=0,E=m;E;E=L(E))v++;E=0;for(var Q=o;Q;Q=L(Q))E++;for(;0<v-E;)m=L(m),v--;for(;0<E-v;)o=L(o),E--;for(;v--;){if(m===o||o!==null&&m===o.alternate){L=m;break t}m=L(m),o=L(o)}L=null}else L=null;p!==null&&$0(O,S,p,L,!1),Y!==null&&rl!==null&&$0(O,rl,Y,L,!0)}}l:{if(S=y?Qa(y):window,p=S.nodeName&&S.nodeName.toLowerCase(),p===\"select\"||p===\"input\"&&S.type===\"file\")var nl=hs;else if(ss(S))if(os)nl=lr;else{nl=Io;var X=ko}else p=S.nodeName,!p||p.toLowerCase()!==\"input\"||S.type!==\"checkbox\"&&S.type!==\"radio\"?y&&vi(y.elementType)&&(nl=hs):nl=Po;if(nl&&(nl=nl(l,y))){ds(O,nl,e,T);break l}X&&X(l,S,y),l===\"focusout\"&&y&&S.type===\"number\"&&y.memoizedProps.value!=null&&mi(S,\"number\",S.value)}switch(X=y?Qa(y):window,l){case\"focusin\":(ss(X)||X.contentEditable===\"true\")&&(sa=X,_i=y,Fa=null);break;case\"focusout\":Fa=_i=sa=null;break;case\"mousedown\":Di=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":Di=!1,bs(O,e,T);break;case\"selectionchange\":if(er)break;case\"keydown\":case\"keyup\":bs(O,e,T)}var w;if(Ai)l:{switch(l){case\"compositionstart\":var P=\"onCompositionStart\";break l;case\"compositionend\":P=\"onCompositionEnd\";break l;case\"compositionupdate\":P=\"onCompositionUpdate\";break l}P=void 0}else fa?cs(l,e)&&(P=\"onCompositionEnd\"):l===\"keydown\"&&e.keyCode===229&&(P=\"onCompositionStart\");P&&(us&&e.locale!==\"ko\"&&(fa||P!==\"onCompositionStart\"?P===\"onCompositionEnd\"&&fa&&(w=Pf()):(he=T,bi=\"value\"in he?he.value:he.textContent,fa=!0)),X=Bn(y,P),0<X.length&&(P=new es(P,l,null,e,T),O.push({event:P,listeners:X}),w?P.data=w:(w=fs(e),w!==null&&(P.data=w)))),(w=Jo?wo(l,e):$o(l,e))&&(P=Bn(y,\"onBeforeInput\"),0<P.length&&(X=new es(\"onBeforeInput\",\"beforeinput\",null,e,T),O.push({event:X,listeners:P}),X.data=w)),Gr(O,l,y,e,T)}J0(O,t)})}function ju(l,t,e){return{instance:l,listener:t,currentTarget:e}}function Bn(l,t){for(var e=t+\"Capture\",a=[];l!==null;){var u=l,n=u.stateNode;if(u=u.tag,u!==5&&u!==26&&u!==27||n===null||(u=Za(l,e),u!=null&&a.unshift(ju(l,u,n)),u=Za(l,t),u!=null&&a.push(ju(l,u,n))),l.tag===3)return a;l=l.return}return[]}function Lr(l){if(l===null)return null;do l=l.return;while(l&&l.tag!==5&&l.tag!==27);return l||null}function $0(l,t,e,a,u){for(var n=t._reactName,i=[];e!==null&&e!==a;){var f=e,h=f.alternate,y=f.stateNode;if(f=f.tag,h!==null&&h===a)break;f!==5&&f!==26&&f!==27||y===null||(h=y,u?(y=Za(e,n),y!=null&&i.unshift(ju(e,y,h))):u||(y=Za(e,n),y!=null&&i.push(ju(e,y,h)))),e=e.return}i.length!==0&&l.push({event:t,listeners:i})}var Vr=/\\r\\n?/g,Kr=/\\u0000|\\uFFFD/g;function W0(l){return(typeof l==\"string\"?l:\"\"+l).replace(Vr,`\n`).replace(Kr,\"\")}function F0(l,t){return t=W0(t),W0(l)===t}function ol(l,t,e,a,u,n){switch(e){case\"children\":typeof a==\"string\"?t===\"body\"||t===\"textarea\"&&a===\"\"||na(l,a):(typeof a==\"number\"||typeof a==\"bigint\")&&t!==\"body\"&&na(l,\"\"+a);break;case\"className\":Xu(l,\"class\",a);break;case\"tabIndex\":Xu(l,\"tabindex\",a);break;case\"dir\":case\"role\":case\"viewBox\":case\"width\":case\"height\":Xu(l,e,a);break;case\"style\":Ff(l,a,n);break;case\"data\":if(t!==\"object\"){Xu(l,\"data\",a);break}case\"src\":case\"href\":if(a===\"\"&&(t!==\"a\"||e!==\"href\")){l.removeAttribute(e);break}if(a==null||typeof a==\"function\"||typeof a==\"symbol\"||typeof a==\"boolean\"){l.removeAttribute(e);break}a=Zu(\"\"+a),l.setAttribute(e,a);break;case\"action\":case\"formAction\":if(typeof a==\"function\"){l.setAttribute(e,\"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\");break}else typeof n==\"function\"&&(e===\"formAction\"?(t!==\"input\"&&ol(l,t,\"name\",u.name,u,null),ol(l,t,\"formEncType\",u.formEncType,u,null),ol(l,t,\"formMethod\",u.formMethod,u,null),ol(l,t,\"formTarget\",u.formTarget,u,null)):(ol(l,t,\"encType\",u.encType,u,null),ol(l,t,\"method\",u.method,u,null),ol(l,t,\"target\",u.target,u,null)));if(a==null||typeof a==\"symbol\"||typeof a==\"boolean\"){l.removeAttribute(e);break}a=Zu(\"\"+a),l.setAttribute(e,a);break;case\"onClick\":a!=null&&(l.onclick=Lt);break;case\"onScroll\":a!=null&&k(\"scroll\",l);break;case\"onScrollEnd\":a!=null&&k(\"scrollend\",l);break;case\"dangerouslySetInnerHTML\":if(a!=null){if(typeof a!=\"object\"||!(\"__html\"in a))throw Error(s(61));if(e=a.__html,e!=null){if(u.children!=null)throw Error(s(60));l.innerHTML=e}}break;case\"multiple\":l.multiple=a&&typeof a!=\"function\"&&typeof a!=\"symbol\";break;case\"muted\":l.muted=a&&typeof a!=\"function\"&&typeof a!=\"symbol\";break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"defaultValue\":case\"defaultChecked\":case\"innerHTML\":case\"ref\":break;case\"autoFocus\":break;case\"xlinkHref\":if(a==null||typeof a==\"function\"||typeof a==\"boolean\"||typeof a==\"symbol\"){l.removeAttribute(\"xlink:href\");break}e=Zu(\"\"+a),l.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",e);break;case\"contentEditable\":case\"spellCheck\":case\"draggable\":case\"value\":case\"autoReverse\":case\"externalResourcesRequired\":case\"focusable\":case\"preserveAlpha\":a!=null&&typeof a!=\"function\"&&typeof a!=\"symbol\"?l.setAttribute(e,\"\"+a):l.removeAttribute(e);break;case\"inert\":case\"allowFullScreen\":case\"async\":case\"autoPlay\":case\"controls\":case\"default\":case\"defer\":case\"disabled\":case\"disablePictureInPicture\":case\"disableRemotePlayback\":case\"formNoValidate\":case\"hidden\":case\"loop\":case\"noModule\":case\"noValidate\":case\"open\":case\"playsInline\":case\"readOnly\":case\"required\":case\"reversed\":case\"scoped\":case\"seamless\":case\"itemScope\":a&&typeof a!=\"function\"&&typeof a!=\"symbol\"?l.setAttribute(e,\"\"):l.removeAttribute(e);break;case\"capture\":case\"download\":a===!0?l.setAttribute(e,\"\"):a!==!1&&a!=null&&typeof a!=\"function\"&&typeof a!=\"symbol\"?l.setAttribute(e,a):l.removeAttribute(e);break;case\"cols\":case\"rows\":case\"size\":case\"span\":a!=null&&typeof a!=\"function\"&&typeof a!=\"symbol\"&&!isNaN(a)&&1<=a?l.setAttribute(e,a):l.removeAttribute(e);break;case\"rowSpan\":case\"start\":a==null||typeof a==\"function\"||typeof a==\"symbol\"||isNaN(a)?l.removeAttribute(e):l.setAttribute(e,a);break;case\"popover\":k(\"beforetoggle\",l),k(\"toggle\",l),Gu(l,\"popover\",a);break;case\"xlinkActuate\":Zt(l,\"http://www.w3.org/1999/xlink\",\"xlink:actuate\",a);break;case\"xlinkArcrole\":Zt(l,\"http://www.w3.org/1999/xlink\",\"xlink:arcrole\",a);break;case\"xlinkRole\":Zt(l,\"http://www.w3.org/1999/xlink\",\"xlink:role\",a);break;case\"xlinkShow\":Zt(l,\"http://www.w3.org/1999/xlink\",\"xlink:show\",a);break;case\"xlinkTitle\":Zt(l,\"http://www.w3.org/1999/xlink\",\"xlink:title\",a);break;case\"xlinkType\":Zt(l,\"http://www.w3.org/1999/xlink\",\"xlink:type\",a);break;case\"xmlBase\":Zt(l,\"http://www.w3.org/XML/1998/namespace\",\"xml:base\",a);break;case\"xmlLang\":Zt(l,\"http://www.w3.org/XML/1998/namespace\",\"xml:lang\",a);break;case\"xmlSpace\":Zt(l,\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",a);break;case\"is\":Gu(l,\"is\",a);break;case\"innerText\":case\"textContent\":break;default:(!(2<e.length)||e[0]!==\"o\"&&e[0]!==\"O\"||e[1]!==\"n\"&&e[1]!==\"N\")&&(e=po.get(e)||e,Gu(l,e,a))}}function tf(l,t,e,a,u,n){switch(e){case\"style\":Ff(l,a,n);break;case\"dangerouslySetInnerHTML\":if(a!=null){if(typeof a!=\"object\"||!(\"__html\"in a))throw Error(s(61));if(e=a.__html,e!=null){if(u.children!=null)throw Error(s(60));l.innerHTML=e}}break;case\"children\":typeof a==\"string\"?na(l,a):(typeof a==\"number\"||typeof a==\"bigint\")&&na(l,\"\"+a);break;case\"onScroll\":a!=null&&k(\"scroll\",l);break;case\"onScrollEnd\":a!=null&&k(\"scrollend\",l);break;case\"onClick\":a!=null&&(l.onclick=Lt);break;case\"suppressContentEditableWarning\":case\"suppressHydrationWarning\":case\"innerHTML\":case\"ref\":break;case\"innerText\":case\"textContent\":break;default:if(!Qf.hasOwnProperty(e))l:{if(e[0]===\"o\"&&e[1]===\"n\"&&(u=e.endsWith(\"Capture\"),t=e.slice(2,u?e.length-7:void 0),n=l[Pl]||null,n=n!=null?n[e]:null,typeof n==\"function\"&&l.removeEventListener(t,n,u),typeof a==\"function\")){typeof n!=\"function\"&&n!==null&&(e in l?l[e]=null:l.hasAttribute(e)&&l.removeAttribute(e)),l.addEventListener(t,a,u);break l}e in l?l[e]=a:a===!0?l.setAttribute(e,\"\"):Gu(l,e,a)}}}function Jl(l,t,e){switch(t){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"img\":k(\"error\",l),k(\"load\",l);var a=!1,u=!1,n;for(n in e)if(e.hasOwnProperty(n)){var i=e[n];if(i!=null)switch(n){case\"src\":a=!0;break;case\"srcSet\":u=!0;break;case\"children\":case\"dangerouslySetInnerHTML\":throw Error(s(137,t));default:ol(l,t,n,i,e,null)}}u&&ol(l,t,\"srcSet\",e.srcSet,e,null),a&&ol(l,t,\"src\",e.src,e,null);return;case\"input\":k(\"invalid\",l);var f=n=i=u=null,h=null,y=null;for(a in e)if(e.hasOwnProperty(a)){var T=e[a];if(T!=null)switch(a){case\"name\":u=T;break;case\"type\":i=T;break;case\"checked\":h=T;break;case\"defaultChecked\":y=T;break;case\"value\":n=T;break;case\"defaultValue\":f=T;break;case\"children\":case\"dangerouslySetInnerHTML\":if(T!=null)throw Error(s(137,t));break;default:ol(l,t,a,T,e,null)}}Jf(l,n,f,h,y,i,u,!1);return;case\"select\":k(\"invalid\",l),a=i=n=null;for(u in e)if(e.hasOwnProperty(u)&&(f=e[u],f!=null))switch(u){case\"value\":n=f;break;case\"defaultValue\":i=f;break;case\"multiple\":a=f;default:ol(l,t,u,f,e,null)}t=n,e=i,l.multiple=!!a,t!=null?ua(l,!!a,t,!1):e!=null&&ua(l,!!a,e,!0);return;case\"textarea\":k(\"invalid\",l),n=u=a=null;for(i in e)if(e.hasOwnProperty(i)&&(f=e[i],f!=null))switch(i){case\"value\":a=f;break;case\"defaultValue\":u=f;break;case\"children\":n=f;break;case\"dangerouslySetInnerHTML\":if(f!=null)throw Error(s(91));break;default:ol(l,t,i,f,e,null)}$f(l,a,u,n);return;case\"option\":for(h in e)if(e.hasOwnProperty(h)&&(a=e[h],a!=null))switch(h){case\"selected\":l.selected=a&&typeof a!=\"function\"&&typeof a!=\"symbol\";break;default:ol(l,t,h,a,e,null)}return;case\"dialog\":k(\"beforetoggle\",l),k(\"toggle\",l),k(\"cancel\",l),k(\"close\",l);break;case\"iframe\":case\"object\":k(\"load\",l);break;case\"video\":case\"audio\":for(a=0;a<bu.length;a++)k(bu[a],l);break;case\"image\":k(\"error\",l),k(\"load\",l);break;case\"details\":k(\"toggle\",l);break;case\"embed\":case\"source\":case\"link\":k(\"error\",l),k(\"load\",l);case\"area\":case\"base\":case\"br\":case\"col\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"track\":case\"wbr\":case\"menuitem\":for(y in e)if(e.hasOwnProperty(y)&&(a=e[y],a!=null))switch(y){case\"children\":case\"dangerouslySetInnerHTML\":throw Error(s(137,t));default:ol(l,t,y,a,e,null)}return;default:if(vi(t)){for(T in e)e.hasOwnProperty(T)&&(a=e[T],a!==void 0&&tf(l,t,T,a,e,void 0));return}}for(f in e)e.hasOwnProperty(f)&&(a=e[f],a!=null&&ol(l,t,f,a,e,null))}function Jr(l,t,e,a){switch(t){case\"div\":case\"span\":case\"svg\":case\"path\":case\"a\":case\"g\":case\"p\":case\"li\":break;case\"input\":var u=null,n=null,i=null,f=null,h=null,y=null,T=null;for(p in e){var O=e[p];if(e.hasOwnProperty(p)&&O!=null)switch(p){case\"checked\":break;case\"value\":break;case\"defaultValue\":h=O;default:a.hasOwnProperty(p)||ol(l,t,p,null,a,O)}}for(var S in a){var p=a[S];if(O=e[S],a.hasOwnProperty(S)&&(p!=null||O!=null))switch(S){case\"type\":n=p;break;case\"name\":u=p;break;case\"checked\":y=p;break;case\"defaultChecked\":T=p;break;case\"value\":i=p;break;case\"defaultValue\":f=p;break;case\"children\":case\"dangerouslySetInnerHTML\":if(p!=null)throw Error(s(137,t));break;default:p!==O&&ol(l,t,S,p,a,O)}}ri(l,i,f,h,y,T,n,u);return;case\"select\":p=i=f=S=null;for(n in e)if(h=e[n],e.hasOwnProperty(n)&&h!=null)switch(n){case\"value\":break;case\"multiple\":p=h;default:a.hasOwnProperty(n)||ol(l,t,n,null,a,h)}for(u in a)if(n=a[u],h=e[u],a.hasOwnProperty(u)&&(n!=null||h!=null))switch(u){case\"value\":S=n;break;case\"defaultValue\":f=n;break;case\"multiple\":i=n;default:n!==h&&ol(l,t,u,n,a,h)}t=f,e=i,a=p,S!=null?ua(l,!!e,S,!1):!!a!=!!e&&(t!=null?ua(l,!!e,t,!0):ua(l,!!e,e?[]:\"\",!1));return;case\"textarea\":p=S=null;for(f in e)if(u=e[f],e.hasOwnProperty(f)&&u!=null&&!a.hasOwnProperty(f))switch(f){case\"value\":break;case\"children\":break;default:ol(l,t,f,null,a,u)}for(i in a)if(u=a[i],n=e[i],a.hasOwnProperty(i)&&(u!=null||n!=null))switch(i){case\"value\":S=u;break;case\"defaultValue\":p=u;break;case\"children\":break;case\"dangerouslySetInnerHTML\":if(u!=null)throw Error(s(91));break;default:u!==n&&ol(l,t,i,u,a,n)}wf(l,S,p);return;case\"option\":for(var Y in e)if(S=e[Y],e.hasOwnProperty(Y)&&S!=null&&!a.hasOwnProperty(Y))switch(Y){case\"selected\":l.selected=!1;break;default:ol(l,t,Y,null,a,S)}for(h in a)if(S=a[h],p=e[h],a.hasOwnProperty(h)&&S!==p&&(S!=null||p!=null))switch(h){case\"selected\":l.selected=S&&typeof S!=\"function\"&&typeof S!=\"symbol\";break;default:ol(l,t,h,S,a,p)}return;case\"img\":case\"link\":case\"area\":case\"base\":case\"br\":case\"col\":case\"embed\":case\"hr\":case\"keygen\":case\"meta\":case\"param\":case\"source\":case\"track\":case\"wbr\":case\"menuitem\":for(var L in e)S=e[L],e.hasOwnProperty(L)&&S!=null&&!a.hasOwnProperty(L)&&ol(l,t,L,null,a,S);for(y in a)if(S=a[y],p=e[y],a.hasOwnProperty(y)&&S!==p&&(S!=null||p!=null))switch(y){case\"children\":case\"dangerouslySetInnerHTML\":if(S!=null)throw Error(s(137,t));break;default:ol(l,t,y,S,a,p)}return;default:if(vi(t)){for(var rl in e)S=e[rl],e.hasOwnProperty(rl)&&S!==void 0&&!a.hasOwnProperty(rl)&&tf(l,t,rl,void 0,a,S);for(T in a)S=a[T],p=e[T],!a.hasOwnProperty(T)||S===p||S===void 0&&p===void 0||tf(l,t,T,S,a,p);return}}for(var m in e)S=e[m],e.hasOwnProperty(m)&&S!=null&&!a.hasOwnProperty(m)&&ol(l,t,m,null,a,S);for(O in a)S=a[O],p=e[O],!a.hasOwnProperty(O)||S===p||S==null&&p==null||ol(l,t,O,S,a,p)}function k0(l){switch(l){case\"css\":case\"script\":case\"font\":case\"img\":case\"image\":case\"input\":case\"link\":return!0;default:return!1}}function wr(){if(typeof performance.getEntriesByType==\"function\"){for(var l=0,t=0,e=performance.getEntriesByType(\"resource\"),a=0;a<e.length;a++){var u=e[a],n=u.transferSize,i=u.initiatorType,f=u.duration;if(n&&f&&k0(i)){for(i=0,f=u.responseEnd,a+=1;a<e.length;a++){var h=e[a],y=h.startTime;if(y>f)break;var T=h.transferSize,O=h.initiatorType;T&&k0(O)&&(h=h.responseEnd,i+=T*(h<f?1:(f-y)/(h-y)))}if(--a,t+=8*(n+i)/(u.duration/1e3),l++,10<l)break}}if(0<l)return t/l/1e6}return navigator.connection&&(l=navigator.connection.downlink,typeof l==\"number\")?l:5}var ef=null,af=null;function Yn(l){return l.nodeType===9?l:l.ownerDocument}function I0(l){switch(l){case\"http://www.w3.org/2000/svg\":return 1;case\"http://www.w3.org/1998/Math/MathML\":return 2;default:return 0}}function P0(l,t){if(l===0)switch(t){case\"svg\":return 1;case\"math\":return 2;default:return 0}return l===1&&t===\"foreignObject\"?0:l}function uf(l,t){return l===\"textarea\"||l===\"noscript\"||typeof t.children==\"string\"||typeof t.children==\"number\"||typeof t.children==\"bigint\"||typeof t.dangerouslySetInnerHTML==\"object\"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var nf=null;function $r(){var l=window.event;return l&&l.type===\"popstate\"?l===nf?!1:(nf=l,!0):(nf=null,!1)}var lh=typeof setTimeout==\"function\"?setTimeout:void 0,Wr=typeof clearTimeout==\"function\"?clearTimeout:void 0,th=typeof Promise==\"function\"?Promise:void 0,Fr=typeof queueMicrotask==\"function\"?queueMicrotask:typeof th<\"u\"?function(l){return th.resolve(null).then(l).catch(kr)}:lh;function kr(l){setTimeout(function(){throw l})}function Me(l){return l===\"head\"}function eh(l,t){var e=t,a=0;do{var u=e.nextSibling;if(l.removeChild(e),u&&u.nodeType===8)if(e=u.data,e===\"/$\"||e===\"/&\"){if(a===0){l.removeChild(u),qa(t);return}a--}else if(e===\"$\"||e===\"$?\"||e===\"$~\"||e===\"$!\"||e===\"&\")a++;else if(e===\"html\")xu(l.ownerDocument.documentElement);else if(e===\"head\"){e=l.ownerDocument.head,xu(e);for(var n=e.firstChild;n;){var i=n.nextSibling,f=n.nodeName;n[Xa]||f===\"SCRIPT\"||f===\"STYLE\"||f===\"LINK\"&&n.rel.toLowerCase()===\"stylesheet\"||e.removeChild(n),n=i}}else e===\"body\"&&xu(l.ownerDocument.body);e=u}while(e);qa(t)}function ah(l,t){var e=l;l=0;do{var a=e.nextSibling;if(e.nodeType===1?t?(e._stashedDisplay=e.style.display,e.style.display=\"none\"):(e.style.display=e._stashedDisplay||\"\",e.getAttribute(\"style\")===\"\"&&e.removeAttribute(\"style\")):e.nodeType===3&&(t?(e._stashedText=e.nodeValue,e.nodeValue=\"\"):e.nodeValue=e._stashedText||\"\"),a&&a.nodeType===8)if(e=a.data,e===\"/$\"){if(l===0)break;l--}else e!==\"$\"&&e!==\"$?\"&&e!==\"$~\"&&e!==\"$!\"||l++;e=a}while(e)}function cf(l){var t=l.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var e=t;switch(t=t.nextSibling,e.nodeName){case\"HTML\":case\"HEAD\":case\"BODY\":cf(e),hi(e);continue;case\"SCRIPT\":case\"STYLE\":continue;case\"LINK\":if(e.rel.toLowerCase()===\"stylesheet\")continue}l.removeChild(e)}}function Ir(l,t,e,a){for(;l.nodeType===1;){var u=e;if(l.nodeName.toLowerCase()!==t.toLowerCase()){if(!a&&(l.nodeName!==\"INPUT\"||l.type!==\"hidden\"))break}else if(a){if(!l[Xa])switch(t){case\"meta\":if(!l.hasAttribute(\"itemprop\"))break;return l;case\"link\":if(n=l.getAttribute(\"rel\"),n===\"stylesheet\"&&l.hasAttribute(\"data-precedence\"))break;if(n!==u.rel||l.getAttribute(\"href\")!==(u.href==null||u.href===\"\"?null:u.href)||l.getAttribute(\"crossorigin\")!==(u.crossOrigin==null?null:u.crossOrigin)||l.getAttribute(\"title\")!==(u.title==null?null:u.title))break;return l;case\"style\":if(l.hasAttribute(\"data-precedence\"))break;return l;case\"script\":if(n=l.getAttribute(\"src\"),(n!==(u.src==null?null:u.src)||l.getAttribute(\"type\")!==(u.type==null?null:u.type)||l.getAttribute(\"crossorigin\")!==(u.crossOrigin==null?null:u.crossOrigin))&&n&&l.hasAttribute(\"async\")&&!l.hasAttribute(\"itemprop\"))break;return l;default:return l}}else if(t===\"input\"&&l.type===\"hidden\"){var n=u.name==null?null:\"\"+u.name;if(u.type===\"hidden\"&&l.getAttribute(\"name\")===n)return l}else return l;if(l=Dt(l.nextSibling),l===null)break}return null}function Pr(l,t,e){if(t===\"\")return null;for(;l.nodeType!==3;)if((l.nodeType!==1||l.nodeName!==\"INPUT\"||l.type!==\"hidden\")&&!e||(l=Dt(l.nextSibling),l===null))return null;return l}function uh(l,t){for(;l.nodeType!==8;)if((l.nodeType!==1||l.nodeName!==\"INPUT\"||l.type!==\"hidden\")&&!t||(l=Dt(l.nextSibling),l===null))return null;return l}function ff(l){return l.data===\"$?\"||l.data===\"$~\"}function sf(l){return l.data===\"$!\"||l.data===\"$?\"&&l.ownerDocument.readyState!==\"loading\"}function lm(l,t){var e=l.ownerDocument;if(l.data===\"$~\")l._reactRetry=t;else if(l.data!==\"$?\"||e.readyState!==\"loading\")t();else{var a=function(){t(),e.removeEventListener(\"DOMContentLoaded\",a)};e.addEventListener(\"DOMContentLoaded\",a),l._reactRetry=a}}function Dt(l){for(;l!=null;l=l.nextSibling){var t=l.nodeType;if(t===1||t===3)break;if(t===8){if(t=l.data,t===\"$\"||t===\"$!\"||t===\"$?\"||t===\"$~\"||t===\"&\"||t===\"F!\"||t===\"F\")break;if(t===\"/$\"||t===\"/&\")return null}}return l}var df=null;function nh(l){l=l.nextSibling;for(var t=0;l;){if(l.nodeType===8){var e=l.data;if(e===\"/$\"||e===\"/&\"){if(t===0)return Dt(l.nextSibling);t--}else e!==\"$\"&&e!==\"$!\"&&e!==\"$?\"&&e!==\"$~\"&&e!==\"&\"||t++}l=l.nextSibling}return null}function ih(l){l=l.previousSibling;for(var t=0;l;){if(l.nodeType===8){var e=l.data;if(e===\"$\"||e===\"$!\"||e===\"$?\"||e===\"$~\"||e===\"&\"){if(t===0)return l;t--}else e!==\"/$\"&&e!==\"/&\"||t++}l=l.previousSibling}return null}function ch(l,t,e){switch(t=Yn(e),l){case\"html\":if(l=t.documentElement,!l)throw Error(s(452));return l;case\"head\":if(l=t.head,!l)throw Error(s(453));return l;case\"body\":if(l=t.body,!l)throw Error(s(454));return l;default:throw Error(s(451))}}function xu(l){for(var t=l.attributes;t.length;)l.removeAttributeNode(t[0]);hi(l)}var Nt=new Map,fh=new Set;function Gn(l){return typeof l.getRootNode==\"function\"?l.getRootNode():l.nodeType===9?l:l.ownerDocument}var ne=N.d;N.d={f:tm,r:em,D:am,C:um,L:nm,m:im,X:fm,S:cm,M:sm};function tm(){var l=ne.f(),t=Dn();return l||t}function em(l){var t=ta(l);t!==null&&t.tag===5&&t.type===\"form\"?Ad(t):ne.r(l)}var Ua=typeof document>\"u\"?null:document;function sh(l,t,e){var a=Ua;if(a&&typeof t==\"string\"&&t){var u=Tt(t);u='link[rel=\"'+l+'\"][href=\"'+u+'\"]',typeof e==\"string\"&&(u+='[crossorigin=\"'+e+'\"]'),fh.has(u)||(fh.add(u),l={rel:l,crossOrigin:e,href:t},a.querySelector(u)===null&&(t=a.createElement(\"link\"),Jl(t,\"link\",l),Bl(t),a.head.appendChild(t)))}}function am(l){ne.D(l),sh(\"dns-prefetch\",l,null)}function um(l,t){ne.C(l,t),sh(\"preconnect\",l,t)}function nm(l,t,e){ne.L(l,t,e);var a=Ua;if(a&&l&&t){var u='link[rel=\"preload\"][as=\"'+Tt(t)+'\"]';t===\"image\"&&e&&e.imageSrcSet?(u+='[imagesrcset=\"'+Tt(e.imageSrcSet)+'\"]',typeof e.imageSizes==\"string\"&&(u+='[imagesizes=\"'+Tt(e.imageSizes)+'\"]')):u+='[href=\"'+Tt(l)+'\"]';var n=u;switch(t){case\"style\":n=Ca(l);break;case\"script\":n=Ha(l)}Nt.has(n)||(l=B({rel:\"preload\",href:t===\"image\"&&e&&e.imageSrcSet?void 0:l,as:t},e),Nt.set(n,l),a.querySelector(u)!==null||t===\"style\"&&a.querySelector(Tu(n))||t===\"script\"&&a.querySelector(zu(n))||(t=a.createElement(\"link\"),Jl(t,\"link\",l),Bl(t),a.head.appendChild(t)))}}function im(l,t){ne.m(l,t);var e=Ua;if(e&&l){var a=t&&typeof t.as==\"string\"?t.as:\"script\",u='link[rel=\"modulepreload\"][as=\"'+Tt(a)+'\"][href=\"'+Tt(l)+'\"]',n=u;switch(a){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":n=Ha(l)}if(!Nt.has(n)&&(l=B({rel:\"modulepreload\",href:l},t),Nt.set(n,l),e.querySelector(u)===null)){switch(a){case\"audioworklet\":case\"paintworklet\":case\"serviceworker\":case\"sharedworker\":case\"worker\":case\"script\":if(e.querySelector(zu(n)))return}a=e.createElement(\"link\"),Jl(a,\"link\",l),Bl(a),e.head.appendChild(a)}}}function cm(l,t,e){ne.S(l,t,e);var a=Ua;if(a&&l){var u=ea(a).hoistableStyles,n=Ca(l);t=t||\"default\";var i=u.get(n);if(!i){var f={loading:0,preload:null};if(i=a.querySelector(Tu(n)))f.loading=5;else{l=B({rel:\"stylesheet\",href:l,\"data-precedence\":t},e),(e=Nt.get(n))&&hf(l,e);var h=i=a.createElement(\"link\");Bl(h),Jl(h,\"link\",l),h._p=new Promise(function(y,T){h.onload=y,h.onerror=T}),h.addEventListener(\"load\",function(){f.loading|=1}),h.addEventListener(\"error\",function(){f.loading|=2}),f.loading|=4,Xn(i,t,a)}i={type:\"stylesheet\",instance:i,count:1,state:f},u.set(n,i)}}}function fm(l,t){ne.X(l,t);var e=Ua;if(e&&l){var a=ea(e).hoistableScripts,u=Ha(l),n=a.get(u);n||(n=e.querySelector(zu(u)),n||(l=B({src:l,async:!0},t),(t=Nt.get(u))&&of(l,t),n=e.createElement(\"script\"),Bl(n),Jl(n,\"link\",l),e.head.appendChild(n)),n={type:\"script\",instance:n,count:1,state:null},a.set(u,n))}}function sm(l,t){ne.M(l,t);var e=Ua;if(e&&l){var a=ea(e).hoistableScripts,u=Ha(l),n=a.get(u);n||(n=e.querySelector(zu(u)),n||(l=B({src:l,async:!0,type:\"module\"},t),(t=Nt.get(u))&&of(l,t),n=e.createElement(\"script\"),Bl(n),Jl(n,\"link\",l),e.head.appendChild(n)),n={type:\"script\",instance:n,count:1,state:null},a.set(u,n))}}function dh(l,t,e,a){var u=(u=$.current)?Gn(u):null;if(!u)throw Error(s(446));switch(l){case\"meta\":case\"title\":return null;case\"style\":return typeof e.precedence==\"string\"&&typeof e.href==\"string\"?(t=Ca(e.href),e=ea(u).hoistableStyles,a=e.get(t),a||(a={type:\"style\",instance:null,count:0,state:null},e.set(t,a)),a):{type:\"void\",instance:null,count:0,state:null};case\"link\":if(e.rel===\"stylesheet\"&&typeof e.href==\"string\"&&typeof e.precedence==\"string\"){l=Ca(e.href);var n=ea(u).hoistableStyles,i=n.get(l);if(i||(u=u.ownerDocument||u,i={type:\"stylesheet\",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,i),(n=u.querySelector(Tu(l)))&&!n._p&&(i.instance=n,i.state.loading=5),Nt.has(l)||(e={rel:\"preload\",as:\"style\",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},Nt.set(l,e),n||dm(u,l,e,i.state))),t&&a===null)throw Error(s(528,\"\"));return i}if(t&&a!==null)throw Error(s(529,\"\"));return null;case\"script\":return t=e.async,e=e.src,typeof e==\"string\"&&t&&typeof t!=\"function\"&&typeof t!=\"symbol\"?(t=Ha(e),e=ea(u).hoistableScripts,a=e.get(t),a||(a={type:\"script\",instance:null,count:0,state:null},e.set(t,a)),a):{type:\"void\",instance:null,count:0,state:null};default:throw Error(s(444,l))}}function Ca(l){return'href=\"'+Tt(l)+'\"'}function Tu(l){return'link[rel=\"stylesheet\"]['+l+\"]\"}function hh(l){return B({},l,{\"data-precedence\":l.precedence,precedence:null})}function dm(l,t,e,a){l.querySelector('link[rel=\"preload\"][as=\"style\"]['+t+\"]\")?a.loading=1:(t=l.createElement(\"link\"),a.preload=t,t.addEventListener(\"load\",function(){return a.loading|=1}),t.addEventListener(\"error\",function(){return a.loading|=2}),Jl(t,\"link\",e),Bl(t),l.head.appendChild(t))}function Ha(l){return'[src=\"'+Tt(l)+'\"]'}function zu(l){return\"script[async]\"+l}function oh(l,t,e){if(t.count++,t.instance===null)switch(t.type){case\"style\":var a=l.querySelector('style[data-href~=\"'+Tt(e.href)+'\"]');if(a)return t.instance=a,Bl(a),a;var u=B({},e,{\"data-href\":e.href,\"data-precedence\":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement(\"style\"),Bl(a),Jl(a,\"style\",u),Xn(a,e.precedence,l),t.instance=a;case\"stylesheet\":u=Ca(e.href);var n=l.querySelector(Tu(u));if(n)return t.state.loading|=4,t.instance=n,Bl(n),n;a=hh(e),(u=Nt.get(u))&&hf(a,u),n=(l.ownerDocument||l).createElement(\"link\"),Bl(n);var i=n;return i._p=new Promise(function(f,h){i.onload=f,i.onerror=h}),Jl(n,\"link\",a),t.state.loading|=4,Xn(n,e.precedence,l),t.instance=n;case\"script\":return n=Ha(e.src),(u=l.querySelector(zu(n)))?(t.instance=u,Bl(u),u):(a=e,(u=Nt.get(n))&&(a=B({},e),of(a,u)),l=l.ownerDocument||l,u=l.createElement(\"script\"),Bl(u),Jl(u,\"link\",a),l.head.appendChild(u),t.instance=u);case\"void\":return null;default:throw Error(s(443,t.type))}else t.type===\"stylesheet\"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,Xn(a,e.precedence,l));return t.instance}function Xn(l,t,e){for(var a=e.querySelectorAll('link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'),u=a.length?a[a.length-1]:null,n=u,i=0;i<a.length;i++){var f=a[i];if(f.dataset.precedence===t)n=f;else if(n!==u)break}n?n.parentNode.insertBefore(l,n.nextSibling):(t=e.nodeType===9?e.head:e,t.insertBefore(l,t.firstChild))}function hf(l,t){l.crossOrigin==null&&(l.crossOrigin=t.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=t.referrerPolicy),l.title==null&&(l.title=t.title)}function of(l,t){l.crossOrigin==null&&(l.crossOrigin=t.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=t.referrerPolicy),l.integrity==null&&(l.integrity=t.integrity)}var Qn=null;function rh(l,t,e){if(Qn===null){var a=new Map,u=Qn=new Map;u.set(e,a)}else u=Qn,a=u.get(e),a||(a=new Map,u.set(e,a));if(a.has(l))return a;for(a.set(l,null),e=e.getElementsByTagName(l),u=0;u<e.length;u++){var n=e[u];if(!(n[Xa]||n[Zl]||l===\"link\"&&n.getAttribute(\"rel\")===\"stylesheet\")&&n.namespaceURI!==\"http://www.w3.org/2000/svg\"){var i=n.getAttribute(t)||\"\";i=l+i;var f=a.get(i);f?f.push(n):a.set(i,[n])}}return a}function mh(l,t,e){l=l.ownerDocument||l,l.head.insertBefore(e,t===\"title\"?l.querySelector(\"head > title\"):null)}function hm(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case\"meta\":case\"title\":return!0;case\"style\":if(typeof t.precedence!=\"string\"||typeof t.href!=\"string\"||t.href===\"\")break;return!0;case\"link\":if(typeof t.rel!=\"string\"||typeof t.href!=\"string\"||t.href===\"\"||t.onLoad||t.onError)break;switch(t.rel){case\"stylesheet\":return l=t.disabled,typeof t.precedence==\"string\"&&l==null;default:return!0}case\"script\":if(t.async&&typeof t.async!=\"function\"&&typeof t.async!=\"symbol\"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==\"string\")return!0}return!1}function vh(l){return!(l.type===\"stylesheet\"&&(l.state.loading&3)===0)}function om(l,t,e,a){if(e.type===\"stylesheet\"&&(typeof a.media!=\"string\"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var u=Ca(a.href),n=t.querySelector(Tu(u));if(n){t=n._p,t!==null&&typeof t==\"object\"&&typeof t.then==\"function\"&&(l.count++,l=Zn.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=n,Bl(n);return}n=t.ownerDocument||t,a=hh(a),(u=Nt.get(u))&&hf(a,u),n=n.createElement(\"link\"),Bl(n);var i=n;i._p=new Promise(function(f,h){i.onload=f,i.onerror=h}),Jl(n,\"link\",a),e.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Zn.bind(l),t.addEventListener(\"load\",e),t.addEventListener(\"error\",e))}}var rf=0;function rm(l,t){return l.stylesheets&&l.count===0&&Vn(l,l.stylesheets),0<l.count||0<l.imgCount?function(e){var a=setTimeout(function(){if(l.stylesheets&&Vn(l,l.stylesheets),l.unsuspend){var n=l.unsuspend;l.unsuspend=null,n()}},6e4+t);0<l.imgBytes&&rf===0&&(rf=62500*wr());var u=setTimeout(function(){if(l.waitingForImages=!1,l.count===0&&(l.stylesheets&&Vn(l,l.stylesheets),l.unsuspend)){var n=l.unsuspend;l.unsuspend=null,n()}},(l.imgBytes>rf?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(u)}}:null}function Zn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Vn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Ln=null;function Vn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Ln=new Map,t.forEach(mm,l),Ln=null,Zn.call(l))}function mm(l,t){if(!(t.state.loading&4)){var e=Ln.get(l);if(e)var a=e.get(null);else{e=new Map,Ln.set(l,e);for(var u=l.querySelectorAll(\"link[data-precedence],style[data-precedence]\"),n=0;n<u.length;n++){var i=u[n];(i.nodeName===\"LINK\"||i.getAttribute(\"media\")!==\"not all\")&&(e.set(i.dataset.precedence,i),a=i)}a&&e.set(null,a)}u=t.instance,i=u.getAttribute(\"data-precedence\"),n=e.get(i)||a,n===a&&e.set(null,u),e.set(i,u),this.count++,a=Zn.bind(this),u.addEventListener(\"load\",a),u.addEventListener(\"error\",a),n?n.parentNode.insertBefore(u,n.nextSibling):(l=l.nodeType===9?l.head:l,l.insertBefore(u,l.firstChild)),t.state.loading|=4}}var Au={$$typeof:El,Provider:null,Consumer:null,_currentValue:Z,_currentValue2:Z,_threadCount:0};function vm(l,t,e,a,u,n,i,f,h){this.tag=1,this.containerInfo=l,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=ci(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ci(0),this.hiddenUpdates=ci(null),this.identifierPrefix=a,this.onUncaughtError=u,this.onCaughtError=n,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=h,this.incompleteTransitions=new Map}function yh(l,t,e,a,u,n,i,f,h,y,T,O){return l=new vm(l,t,e,i,h,y,T,O,f),t=1,n===!0&&(t|=24),n=mt(3,null,null,t),l.current=n,n.stateNode=l,t=Ki(),t.refCount++,l.pooledCache=t,t.refCount++,n.memoizedState={element:a,isDehydrated:e,cache:t},Wi(n),l}function gh(l){return l?(l=oa,l):oa}function Sh(l,t,e,a,u,n){u=gh(u),a.context===null?a.context=u:a.pendingContext=u,a=ge(t),a.payload={element:e},n=n===void 0?null:n,n!==null&&(a.callback=n),e=Se(l,a,t),e!==null&&(nt(e,l,t),au(e,l,t))}function ph(l,t){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var e=l.retryLane;l.retryLane=e!==0&&e<t?e:t}}function mf(l,t){ph(l,t),(l=l.alternate)&&ph(l,t)}function bh(l){if(l.tag===13||l.tag===31){var t=Xe(l,67108864);t!==null&&nt(t,l,67108864),mf(l,67108864)}}function jh(l){if(l.tag===13||l.tag===31){var t=pt();t=fi(t);var e=Xe(l,t);e!==null&&nt(e,l,t),mf(l,t)}}var Kn=!0;function ym(l,t,e,a){var u=x.T;x.T=null;var n=N.p;try{N.p=2,vf(l,t,e,a)}finally{N.p=n,x.T=u}}function gm(l,t,e,a){var u=x.T;x.T=null;var n=N.p;try{N.p=8,vf(l,t,e,a)}finally{N.p=n,x.T=u}}function vf(l,t,e,a){if(Kn){var u=yf(a);if(u===null)lf(l,t,a,Jn,e),Th(l,a);else if(pm(u,l,t,e,a))a.stopPropagation();else if(Th(l,a),t&4&&-1<Sm.indexOf(l)){for(;u!==null;){var n=ta(u);if(n!==null)switch(n.tag){case 3:if(n=n.stateNode,n.current.memoizedState.isDehydrated){var i=He(n.pendingLanes);if(i!==0){var f=n;for(f.pendingLanes|=2,f.entangledLanes|=2;i;){var h=1<<31-ot(i);f.entanglements[1]|=h,i&=~h}Xt(n),(cl&6)===0&&(Mn=dt()+500,pu(0))}}break;case 31:case 13:f=Xe(n,2),f!==null&&nt(f,n,2),Dn(),mf(n,2)}if(n=yf(a),n===null&&lf(l,t,a,Jn,e),n===u)break;u=n}u!==null&&a.stopPropagation()}else lf(l,t,a,null,e)}}function yf(l){return l=gi(l),gf(l)}var Jn=null;function gf(l){if(Jn=null,l=la(l),l!==null){var t=_(l);if(t===null)l=null;else{var e=t.tag;if(e===13){if(l=U(t),l!==null)return l;l=null}else if(e===31){if(l=q(t),l!==null)return l;l=null}else if(e===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;l=null}else t!==l&&(l=null)}}return Jn=l,null}function xh(l){switch(l){case\"beforetoggle\":case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"toggle\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 2;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 8;case\"message\":switch(eo()){case Df:return 2;case Nf:return 8;case Cu:case ao:return 32;case Rf:return 268435456;default:return 32}default:return 32}}var Sf=!1,_e=null,De=null,Ne=null,Eu=new Map,Ou=new Map,Re=[],Sm=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\" \");function Th(l,t){switch(l){case\"focusin\":case\"focusout\":_e=null;break;case\"dragenter\":case\"dragleave\":De=null;break;case\"mouseover\":case\"mouseout\":Ne=null;break;case\"pointerover\":case\"pointerout\":Eu.delete(t.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":Ou.delete(t.pointerId)}}function Mu(l,t,e,a,u,n){return l===null||l.nativeEvent!==n?(l={blockedOn:t,domEventName:e,eventSystemFlags:a,nativeEvent:n,targetContainers:[u]},t!==null&&(t=ta(t),t!==null&&bh(t)),l):(l.eventSystemFlags|=a,t=l.targetContainers,u!==null&&t.indexOf(u)===-1&&t.push(u),l)}function pm(l,t,e,a,u){switch(t){case\"focusin\":return _e=Mu(_e,l,t,e,a,u),!0;case\"dragenter\":return De=Mu(De,l,t,e,a,u),!0;case\"mouseover\":return Ne=Mu(Ne,l,t,e,a,u),!0;case\"pointerover\":var n=u.pointerId;return Eu.set(n,Mu(Eu.get(n)||null,l,t,e,a,u)),!0;case\"gotpointercapture\":return n=u.pointerId,Ou.set(n,Mu(Ou.get(n)||null,l,t,e,a,u)),!0}return!1}function zh(l){var t=la(l.target);if(t!==null){var e=_(t);if(e!==null){if(t=e.tag,t===13){if(t=U(e),t!==null){l.blockedOn=t,Yf(l.priority,function(){jh(e)});return}}else if(t===31){if(t=q(e),t!==null){l.blockedOn=t,Yf(l.priority,function(){jh(e)});return}}else if(t===3&&e.stateNode.current.memoizedState.isDehydrated){l.blockedOn=e.tag===3?e.stateNode.containerInfo:null;return}}}l.blockedOn=null}function wn(l){if(l.blockedOn!==null)return!1;for(var t=l.targetContainers;0<t.length;){var e=yf(l.nativeEvent);if(e===null){e=l.nativeEvent;var a=new e.constructor(e.type,e);yi=a,e.target.dispatchEvent(a),yi=null}else return t=ta(e),t!==null&&bh(t),l.blockedOn=e,!1;t.shift()}return!0}function Ah(l,t,e){wn(l)&&e.delete(t)}function bm(){Sf=!1,_e!==null&&wn(_e)&&(_e=null),De!==null&&wn(De)&&(De=null),Ne!==null&&wn(Ne)&&(Ne=null),Eu.forEach(Ah),Ou.forEach(Ah)}function $n(l,t){l.blockedOn===t&&(l.blockedOn=null,Sf||(Sf=!0,d.unstable_scheduleCallback(d.unstable_NormalPriority,bm)))}var Wn=null;function Eh(l){Wn!==l&&(Wn=l,d.unstable_scheduleCallback(d.unstable_NormalPriority,function(){Wn===l&&(Wn=null);for(var t=0;t<l.length;t+=3){var e=l[t],a=l[t+1],u=l[t+2];if(typeof a!=\"function\"){if(gf(a||e)===null)continue;break}var n=ta(e);n!==null&&(l.splice(t,3),t-=3,vc(n,{pending:!0,data:u,method:e.method,action:a},a,u))}}))}function qa(l){function t(h){return $n(h,l)}_e!==null&&$n(_e,l),De!==null&&$n(De,l),Ne!==null&&$n(Ne,l),Eu.forEach(t),Ou.forEach(t);for(var e=0;e<Re.length;e++){var a=Re[e];a.blockedOn===l&&(a.blockedOn=null)}for(;0<Re.length&&(e=Re[0],e.blockedOn===null);)zh(e),e.blockedOn===null&&Re.shift();if(e=(l.ownerDocument||l).$$reactFormReplay,e!=null)for(a=0;a<e.length;a+=3){var u=e[a],n=e[a+1],i=u[Pl]||null;if(typeof n==\"function\")i||Eh(e);else if(i){var f=null;if(n&&n.hasAttribute(\"formAction\")){if(u=n,i=n[Pl]||null)f=i.formAction;else if(gf(u)!==null)continue}else f=i.action;typeof f==\"function\"?e[a+1]=f:(e.splice(a,3),a-=3),Eh(e)}}}function Oh(){function l(n){n.canIntercept&&n.info===\"react-transition\"&&n.intercept({handler:function(){return new Promise(function(i){return u=i})},focusReset:\"manual\",scroll:\"manual\"})}function t(){u!==null&&(u(),u=null),a||setTimeout(e,20)}function e(){if(!a&&!navigation.transition){var n=navigation.currentEntry;n&&n.url!=null&&navigation.navigate(n.url,{state:n.getState(),info:\"react-transition\",history:\"replace\"})}}if(typeof navigation==\"object\"){var a=!1,u=null;return navigation.addEventListener(\"navigate\",l),navigation.addEventListener(\"navigatesuccess\",t),navigation.addEventListener(\"navigateerror\",t),setTimeout(e,100),function(){a=!0,navigation.removeEventListener(\"navigate\",l),navigation.removeEventListener(\"navigatesuccess\",t),navigation.removeEventListener(\"navigateerror\",t),u!==null&&(u(),u=null)}}}function pf(l){this._internalRoot=l}Fn.prototype.render=pf.prototype.render=function(l){var t=this._internalRoot;if(t===null)throw Error(s(409));var e=t.current,a=pt();Sh(e,a,l,t,null,null)},Fn.prototype.unmount=pf.prototype.unmount=function(){var l=this._internalRoot;if(l!==null){this._internalRoot=null;var t=l.containerInfo;Sh(l.current,2,null,l,null,null),Dn(),t[Pe]=null}};function Fn(l){this._internalRoot=l}Fn.prototype.unstable_scheduleHydration=function(l){if(l){var t=Bf();l={blockedOn:null,target:l,priority:t};for(var e=0;e<Re.length&&t!==0&&t<Re[e].priority;e++);Re.splice(e,0,l),e===0&&zh(l)}};var Mh=b.version;if(Mh!==\"19.2.5\")throw Error(s(527,Mh,\"19.2.5\"));N.findDOMNode=function(l){var t=l._reactInternals;if(t===void 0)throw typeof l.render==\"function\"?Error(s(188)):(l=Object.keys(l).join(\",\"),Error(s(268,l)));return l=g(t),l=l!==null?D(l):null,l=l===null?null:l.stateNode,l};var jm={bundleType:0,version:\"19.2.5\",rendererPackageName:\"react-dom\",currentDispatcherRef:x,reconcilerVersion:\"19.2.5\"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"){var kn=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!kn.isDisabled&&kn.supportsFiber)try{Ba=kn.inject(jm),ht=kn}catch{}}return Du.createRoot=function(l,t){if(!A(l))throw Error(s(299));var e=!1,a=\"\",u=Hd,n=qd,i=Bd;return t!=null&&(t.unstable_strictMode===!0&&(e=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onUncaughtError!==void 0&&(u=t.onUncaughtError),t.onCaughtError!==void 0&&(n=t.onCaughtError),t.onRecoverableError!==void 0&&(i=t.onRecoverableError)),t=yh(l,1,!1,null,null,e,a,null,u,n,i,Oh),l[Pe]=t.current,Pc(l),new pf(t)},Du.hydrateRoot=function(l,t,e){if(!A(l))throw Error(s(299));var a=!1,u=\"\",n=Hd,i=qd,f=Bd,h=null;return e!=null&&(e.unstable_strictMode===!0&&(a=!0),e.identifierPrefix!==void 0&&(u=e.identifierPrefix),e.onUncaughtError!==void 0&&(n=e.onUncaughtError),e.onCaughtError!==void 0&&(i=e.onCaughtError),e.onRecoverableError!==void 0&&(f=e.onRecoverableError),e.formState!==void 0&&(h=e.formState)),t=yh(l,1,!0,t,e??null,a,u,h,n,i,f,Oh),t.context=gh(null),e=t.current,a=pt(),a=fi(a),u=ge(a),u.callback=null,Se(e,u,a),e=a,t.current.lanes=e,Ga(t,e),Xt(t),l[Pe]=t.current,Pc(l),new Fn(t)},Du.version=\"19.2.5\",Du}var Yh;function Nm(){if(Yh)return xf.exports;Yh=1;function d(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(d)}catch(b){console.error(b)}}return d(),xf.exports=Dm(),xf.exports}var Rm=Nm();const Gh=[{key:\"dashboard\",label:\"首页Dashboard\"},{key:\"attendance\",label:\"出勤管理\"},{key:\"schedule\",label:\"排班管理\"},{key:\"tickets\",label:\"工单管理\"},{key:\"reply\",label:\"回复统计\"},{key:\"conversion\",label:\"转化绩效\"},{key:\"goals\",label:\"目标管理\"},{key:\"roles\",label:\"角色权限\"}],wl=[{id:\"CS-001\",name:\"Mia Santos\",group:\"A组\",channel:\"IM\",shift:\"早班\",online:!0,maxTickets:8},{id:\"CS-002\",name:\"Ana Cruz\",group:\"A组\",channel:\"EDM\",shift:\"午班\",online:!0,maxTickets:8},{id:\"CS-003\",name:\"Lina Reyes\",group:\"B组\",channel:\"TEL\",shift:\"晚班\",online:!0,maxTickets:6},{id:\"CS-004\",name:\"Bea Flores\",group:\"B组\",channel:\"IM\",shift:\"早班\",online:!1,maxTickets:8},{id:\"CS-005\",name:\"Nina Cruz\",group:\"C组\",channel:\"IM\",shift:\"午班\",online:!0,maxTickets:7}],Um=[...Nu(\"CS-001\",[1,2,3,6,7,8,9,10,13,14,15,16,17,20,21,22,23,24,27,28],[29],[30],[],[]),...Nu(\"CS-002\",[1,2,3,6,7,8,9,10,13,14,15,16,17,20,21,22,23,24,27],[],[],[28],[29]),...Nu(\"CS-003\",[1,2,6,7,8,9,13,14,15,16,20,21,22,23,24,27,28],[29],[],[3],[10]),...Nu(\"CS-004\",[1,2,3,6,7,8,9,13,14,15,16,20,21,22,23,24],[],[],[10,17],[29]),...Nu(\"CS-005\",[1,2,3,6,7,8,9,10,13,14,15,16,17,20,21,22,23,24,27,28,29],[],[30],[],[])],Cm=[...Ru(\"CS-001\",\"早班\",\"IM\"),...Ru(\"CS-002\",\"午班\",\"EDM\"),...Ru(\"CS-003\",\"晚班\",\"TEL\"),...Ru(\"CS-004\",\"早班\",\"IM\"),...Ru(\"CS-005\",\"午班\",\"IM\")],Xh=[Ce(\"TK-20260427-001\",\"U-1207\",\"Rita\",\"已解决\",\"CS-001\",\"2026-04-27 09:12\",\"2026-04-27 09:38\",\"2026-04-27 09:16\",\"2026-04-27 09:42\"),Ce(\"TK-20260428-001\",\"U-3349\",\"Mark\",\"已关闭\",\"CS-002\",\"2026-04-28 14:05\",\"2026-04-28 14:35\",\"2026-04-28 14:10\",\"2026-04-28 14:48\"),Ce(\"TK-20260429-001\",\"U-9831\",\"Amy\",\"处理中\",\"CS-001\",\"2026-04-29 09:08\",\"2026-04-29 09:22\",\"2026-04-29 09:11\"),Ce(\"TK-20260429-002\",\"U-8120\",\"Ben\",\"等待用户回复\",\"CS-002\",\"2026-04-29 10:15\",\"2026-04-29 10:31\",\"2026-04-29 10:18\"),Ce(\"TK-20260429-003\",\"U-2288\",\"Chris\",\"待处理\",\"CS-003\",\"2026-04-29 11:20\",\"2026-04-29 11:20\"),Ce(\"TK-20260429-004\",\"U-6671\",\"Dora\",\"待分配\",void 0,\"2026-04-29 12:04\",\"2026-04-29 12:04\"),Ce(\"TK-20260429-005\",\"U-7302\",\"Evan\",\"已解决\",\"CS-005\",\"2026-04-29 08:40\",\"2026-04-29 09:02\",\"2026-04-29 08:43\",\"2026-04-29 09:06\"),Ce(\"TK-20260430-001\",\"U-4412\",\"Sofia\",\"待处理\",\"CS-005\",\"2026-04-30 16:20\",\"2026-04-30 16:20\")],Zh=[{ticketId:\"TK-20260429-001\",sender:\"用户\",senderName:\"Amy\",time:\"09:08\",content:\"订单已经收到,想确认评价返现流程。\"},{ticketId:\"TK-20260429-001\",sender:\"客服\",senderName:\"Mia Santos\",time:\"09:11\",content:\"已收到,请发送订单截图,我会帮你登记。\"},{ticketId:\"TK-20260429-001\",sender:\"用户\",senderName:\"Amy\",time:\"09:18\",content:\"截图已发送。\"},{ticketId:\"TK-20260429-001\",sender:\"客服\",senderName:\"Mia Santos\",time:\"09:22\",content:\"订单已登记,评价完成后请回传截图。\"}],Lh=[...Pn(\"2026-04-27\",[8,3,7,2,5,1,4,1,9,4]),...Pn(\"2026-04-28\",[11,4,8,3,6,2,3,1,10,5]),...Pn(\"2026-04-29\",[14,7,10,4,7,2,0,0,12,6]),...Pn(\"2026-04-30\",[9,4,12,5,8,3,5,2,7,3])],Hm=[{agentId:\"CS-001\",month:\"2026-04\",type:\"RSO登记订单目标\",target:260,current:218},{agentId:\"CS-001\",month:\"2026-04\",type:\"RSO上评目标\",target:120,current:94},{agentId:\"CS-001\",month:\"2026-04\",type:\"RDO登记订单目标\",target:120,current:86},{agentId:\"CS-001\",month:\"2026-04\",type:\"RDO上评目标\",target:60,current:38},{agentId:\"CS-002\",month:\"2026-04\",type:\"RSO登记订单目标\",target:230,current:197},{agentId:\"CS-002\",month:\"2026-04\",type:\"RSO上评目标\",target:100,current:78},{agentId:\"CS-003\",month:\"2026-04\",type:\"RSO登记订单目标\",target:180,current:142},{agentId:\"CS-003\",month:\"2026-04\",type:\"RSO上评目标\",target:80,current:45},{agentId:\"CS-004\",month:\"2026-04\",type:\"RSO登记订单目标\",target:180,current:111},{agentId:\"CS-004\",month:\"2026-04\",type:\"RSO上评目标\",target:80,current:38},{agentId:\"CS-005\",month:\"2026-04\",type:\"RSO登记订单目标\",target:240,current:226},{agentId:\"CS-005\",month:\"2026-04\",type:\"RSO上评目标\",target:110,current:102}];function qm(){var fe;const[d,b]=Gl.useState(\"dashboard\"),[z,s]=Gl.useState(\"主管/管理员\"),[A,_]=Gl.useState(wl[0].id),[U,q]=Gl.useState(\"全部小组\"),[j,g]=Gl.useState(\"2026-04-29\"),[D,B]=Gl.useState(\"2026-04\"),[H,el]=Gl.useState(\"today\"),[Hl,Xl]=Gl.useState(\"2026-04-27\"),[it,Fl]=Gl.useState(\"2026-04-30\"),[$l,El]=Gl.useState(Xh),[Il,ct]=Gl.useState(Xh[2].id),[ql,W]=Gl.useState(Hm),[Ol,jt]=Gl.useState({agentId:wl[0].id,month:\"2026-04\",type:\"RSO登记订单目标\",target:200}),[ce,ft]=Gl.useState(Cm),[bl,Qt]=Gl.useState({agentId:wl[0].id,date:\"2026-04-29\",shift:\"早班\",channel:\"IM\"}),[Rt,Ml]=Gl.useState(\"已开启交互模式:筛选、切换、保存会即时更新页面数据。\"),x=ie(A),N=Gl.useMemo(()=>wl.filter(R=>z===\"客服\"?R.id===A:U===\"全部小组\"||R.group===U),[z,A,U]),Z=$h(H,j,Hl,it),al=$l.filter(R=>(z===\"客服\"?R.agentId===A:N.some(jl=>jl.id===R.agentId)||!R.agentId)&&Wh(R.createdAt.slice(0,10),Z.start,Z.end)),fl=$l.find(R=>R.id===Il)??al[0]??$l[0],r=ql.filter(R=>N.some(vl=>vl.id===R.agentId)&&R.month===D),M=Wm($l,ql,j,D,N);function C(R){s(R),Ml(R===\"客服\"?\"已切换到客服视角:只显示当前客服自己的工单、排班、绩效和目标。\":\"已切换到主管/管理员视角:可查看团队数据并调整工单、排班、目标。\")}function G(){const R=$l.find(jl=>jl.status===\"待分配\");if(!R){Ml(\"当前没有待分配工单。\");return}const vl=Pm($l);El(jl=>jl.map(ll=>ll.id===R.id?{...ll,agentId:vl.id,status:\"待处理\",lastReplyAt:`${j} 12:10`}:ll)),ct(R.id),Ml(`已按在线优先和当前工单量,把 ${R.id} 分配给 ${vl.name}。`)}function V(R,vl){El(jl=>jl.map(ll=>ll.id===R?{...ll,agentId:vl,status:ll.status===\"待分配\"?\"待处理\":ll.status}:ll)),Ml(`工单 ${R} 已转移给 ${ie(vl).name}。`)}function $(R,vl){El(jl=>jl.map(ll=>ll.id===R?{...ll,status:vl,closedAt:[\"已解决\",\"已关闭\"].includes(vl)?`${j} 18:00`:ll.closedAt}:ll)),Ml(`工单 ${R} 状态已更新为「${vl}」。`)}function ul(){const R={...bl};ft(vl=>vl.some(ll=>ll.agentId===R.agentId&&ll.date===R.date)?vl.map(ll=>ll.agentId===R.agentId&&ll.date===R.date?R:ll):[...vl,R]),Ml(`${ie(R.agentId).name} 在 ${R.date} 的排班已调整为 ${R.shift} / ${Uu(R.channel)}。`)}function Ql(){const R=wh(bl.date);ft(vl=>[...vl.filter(ll=>!(ll.agentId===bl.agentId&&R.includes(ll.date))),...R.map(ll=>({...bl,date:ll}))]),Ml(`已为 ${ie(bl.agentId).name} 从 ${bl.date} 开始批量排班 7 天。`)}function pl(){var vl;const R={...Ol,current:((vl=ql.find(jl=>jl.agentId===Ol.agentId&&jl.month===Ol.month&&jl.type===Ol.type))==null?void 0:vl.current)??0};W(jl=>jl.some(st=>st.agentId===R.agentId&&st.month===R.month&&st.type===R.type)?jl.map(st=>st.agentId===R.agentId&&st.month===R.month&&st.type===R.type?{...st,target:R.target}:st):[...jl,R]),Ml(`${ie(R.agentId).name} 的 ${R.month}「${R.type}」已保存为 ${R.target}。`)}return c.jsxs(\"main\",{className:\"support-app-shell\",children:[c.jsxs(\"aside\",{className:\"support-sidebar\",children:[c.jsxs(\"div\",{className:\"support-brand\",children:[c.jsx(\"span\",{children:\"CS\"}),c.jsx(\"strong\",{children:\"客服执行\"})]}),c.jsx(\"nav\",{className:\"support-nav\",\"aria-label\":\"客服执行模块\",children:Gh.map(R=>c.jsx(\"button\",{className:d===R.key?\"active\":\"\",onClick:()=>b(R.key),type:\"button\",children:R.label},R.key))})]}),c.jsxs(\"section\",{className:\"support-workspace\",children:[c.jsxs(\"header\",{className:\"support-topbar\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"用户运营后台 / 客服执行\"}),c.jsx(\"h1\",{children:(fe=Gh.find(R=>R.key===d))==null?void 0:fe.label})]}),c.jsxs(\"div\",{className:\"support-filters\",children:[c.jsx(\"button\",{className:z===\"主管/管理员\"?\"active\":\"\",onClick:()=>C(\"主管/管理员\"),type:\"button\",children:\"主管/管理员\"}),c.jsx(\"button\",{className:z===\"客服\"?\"active\":\"\",onClick:()=>C(\"客服\"),type:\"button\",children:\"客服视角\"}),c.jsx(\"select\",{\"aria-label\":\"选择客服\",onChange:R=>_(R.target.value),value:A,children:wl.map(R=>c.jsx(\"option\",{value:R.id,children:R.name},R.id))}),c.jsxs(\"select\",{\"aria-label\":\"客服组\",onChange:R=>q(R.target.value),value:U,children:[c.jsx(\"option\",{children:\"全部小组\"}),c.jsx(\"option\",{children:\"A组\"}),c.jsx(\"option\",{children:\"B组\"}),c.jsx(\"option\",{children:\"C组\"})]}),c.jsx(\"input\",{\"aria-label\":\"日期\",onChange:R=>g(R.target.value),type:\"date\",value:j}),c.jsx(\"input\",{\"aria-label\":\"月份\",onChange:R=>B(R.target.value),type:\"month\",value:D})]})]}),c.jsx(\"div\",{className:\"interaction-note\",children:Rt}),d===\"dashboard\"&&c.jsx(Bm,{dashboard:M,filteredAgents:N,setActiveTab:b,tickets:$l}),d===\"attendance\"&&c.jsx(Ym,{attendance:Um,selectedAgent:x,selectedDate:j,selectedMonth:D,setSelectedAgentId:_,visibleAgents:N}),d===\"schedule\"&&c.jsx(Gm,{draftSchedule:bl,saveSchedule:ul,batchSchedule:Ql,schedules:ce,selectedAgent:x,setDraftSchedule:Qt,visibleAgents:N}),d===\"tickets\"&&c.jsx(Xm,{autoAssignTicket:G,range:H,selectedTicket:fl,setCustomEnd:Fl,setCustomStart:Xl,setRange:el,setSelectedTicketId:ct,tickets:al,transferTicket:V,updateTicketStatus:$,customEnd:it,customStart:Hl}),d===\"reply\"&&c.jsx(Qm,{agentsForView:N,tickets:al}),d===\"conversion\"&&c.jsx(Zm,{agentsForView:N,range:H,setRange:el,customEnd:it,customStart:Hl,selectedDate:j}),d===\"goals\"&&c.jsx(Lm,{draftGoal:Ol,goals:r,saveGoal:pl,selectedAgent:x,setDraftGoal:jt}),d===\"roles\"&&c.jsx(Vm,{roleMode:z})]})]})}function Bm({dashboard:d,filteredAgents:b,setActiveTab:z,tickets:s}){return c.jsxs(c.Fragment,{children:[c.jsxs(\"section\",{className:\"support-metric-grid five\",children:[c.jsx(Cl,{label:\"在线客服数\",value:`${d.onlineAgents} 人`,note:\"当前筛选范围\",tone:\"green\"}),c.jsx(Cl,{label:\"今日工单数\",value:`${d.todayTickets} 单`,note:\"随日期筛选变化\"}),c.jsx(Cl,{label:\"待处理工单\",value:`${d.pendingTickets} 单`,note:\"待分配 + 待处理\",tone:\"amber\"}),c.jsx(Cl,{label:\"今日回复消息数\",value:`${d.todayMessages} 条`,note:\"按工单与聊天记录估算\"}),c.jsx(Cl,{label:\"今日转化数\",value:`${d.todayReviews} 条`,note:\"RSO + RDO 获取评价\",tone:\"green\"})]}),c.jsxs(\"section\",{className:\"support-split\",children:[c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"本月数据\"}),c.jsx(\"h2\",{children:\"转化与目标\"})]}),c.jsx(\"button\",{onClick:()=>z(\"goals\"),type:\"button\",children:\"查看目标\"})]}),c.jsxs(\"div\",{className:\"support-metric-grid three compact\",children:[c.jsx(Cl,{label:\"本月转化\",value:`${d.monthReviews} 条`,note:\"当前月份获取评价\"}),c.jsx(Cl,{label:\"本月目标完成率\",value:bt(d.goalRate),note:\"当前完成数 / 目标数\",tone:\"green\"}),c.jsx(Cl,{label:\"绩效第一\",value:d.topAgent.name,note:`${d.topAgent.group} / ${Uu(d.topAgent.channel)}`})]}),c.jsx(ti,{title:\"本月绩效排行\",rows:d.goalRank})]}),c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"工单负载\"}),c.jsx(\"h2\",{children:\"在线优先与最大工单数\"})]}),c.jsx(\"button\",{onClick:()=>z(\"tickets\"),type:\"button\",children:\"查看工单\"})]}),c.jsx(\"div\",{className:\"assignment-list\",children:b.map(A=>{const _=s.filter(U=>U.agentId===A.id&&![\"已解决\",\"已关闭\"].includes(U.status)).length;return c.jsxs(\"article\",{className:\"assignment-card\",children:[c.jsxs(\"div\",{children:[c.jsx(\"strong\",{children:A.name}),c.jsxs(\"span\",{children:[A.group,\" / \",A.shift,\" / \",Uu(A.channel)]})]}),c.jsx(ei,{label:A.online?\"在线\":\"离线\",tone:A.online?\"green\":\"gray\"}),c.jsx(Mf,{value:_,max:A.maxTickets,label:`${_}/${A.maxTickets} 工单`})]},A.id)})})]})]})]})}function Ym({attendance:d,selectedAgent:b,selectedDate:z,selectedMonth:s,setSelectedAgentId:A,visibleAgents:_}){const U=d.filter(D=>D.date===z&&_.some(B=>B.id===D.agentId)),q=U.length,j=U.filter(D=>Fh(D.status)).length,g=_.map(D=>Fm(D,d,s));return c.jsxs(c.Fragment,{children:[c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsx(\"div\",{className:\"support-panel-head\",children:c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"出勤总览\"}),c.jsxs(\"h2\",{children:[z,\" / \",s]})]})}),c.jsxs(\"section\",{className:\"support-metric-grid three\",children:[c.jsx(Cl,{label:\"今日出勤率\",value:bt(qt(j,q)),note:`${j}/${q} 人`,tone:\"green\"}),c.jsx(Cl,{label:\"本月出勤率\",value:bt(qt(g.reduce((D,B)=>D+B.presentDays,0),g.reduce((D,B)=>D+B.workDays,0))),note:\"按当前小组/客服统计\"}),c.jsx(Cl,{label:\"迟到次数\",value:`${g.reduce((D,B)=>D+B.lateDays,0)} 次`,note:\"当前月份累计\",tone:\"amber\"})]}),c.jsx(\"div\",{className:\"support-table-wrap\",children:c.jsxs(\"table\",{children:[c.jsx(\"thead\",{children:c.jsxs(\"tr\",{children:[c.jsx(\"th\",{children:\"客服姓名\"}),c.jsx(\"th\",{children:\"本月出勤天数\"}),c.jsx(\"th\",{children:\"缺勤天数\"}),c.jsx(\"th\",{children:\"请假天数\"}),c.jsx(\"th\",{children:\"迟到次数\"})]})}),c.jsx(\"tbody\",{children:g.map(D=>c.jsxs(\"tr\",{onClick:()=>A(D.agent.id),children:[c.jsxs(\"td\",{children:[c.jsx(\"strong\",{children:D.agent.name}),c.jsx(\"span\",{children:D.agent.group})]}),c.jsx(\"td\",{children:D.presentDays}),c.jsx(\"td\",{children:D.absentDays}),c.jsx(\"td\",{children:D.leaveDays}),c.jsx(\"td\",{children:D.lateDays})]},D.agent.id))})]})})]}),c.jsxs(\"section\",{className:\"support-split\",children:[c.jsx(ti,{title:\"客服出勤排行\",rows:g.map(D=>({label:D.agent.name,value:`${D.presentDays} 天`,percent:qt(D.presentDays,D.workDays)})).sort((D,B)=>B.percent-D.percent)}),c.jsx(Km,{agent:b,attendance:d,selectedMonth:s})]})]})}function Gm({batchSchedule:d,draftSchedule:b,saveSchedule:z,schedules:s,selectedAgent:A,setDraftSchedule:_,visibleAgents:U}){const q=wh(b.date);return c.jsxs(c.Fragment,{children:[c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"排班设置\"}),c.jsx(\"h2\",{children:\"班次安排会立即反映到排班表\"})]}),c.jsxs(\"div\",{className:\"support-actions\",children:[c.jsx(\"button\",{onClick:z,type:\"button\",children:\"保存单日排班\"}),c.jsx(\"button\",{onClick:d,type:\"button\",children:\"批量排班7天\"})]})]}),c.jsxs(\"div\",{className:\"goal-editor\",children:[c.jsx(\"select\",{value:b.agentId,onChange:j=>_({...b,agentId:j.target.value}),children:wl.map(j=>c.jsx(\"option\",{value:j.id,children:j.name},j.id))}),c.jsx(\"input\",{type:\"date\",value:b.date,onChange:j=>_({...b,date:j.target.value})}),c.jsxs(\"select\",{value:b.shift,onChange:j=>_({...b,shift:j.target.value}),children:[c.jsx(\"option\",{children:\"早班\"}),c.jsx(\"option\",{children:\"午班\"}),c.jsx(\"option\",{children:\"晚班\"})]}),c.jsxs(\"select\",{value:b.channel,onChange:j=>_({...b,channel:j.target.value}),children:[c.jsx(\"option\",{children:\"IM\"}),c.jsx(\"option\",{children:\"EDM\"}),c.jsx(\"option\",{children:\"TEL\"})]})]}),c.jsxs(\"div\",{className:\"shift-type-grid\",children:[c.jsx(Ef,{title:\"早班\",time:\"08:00 - 16:00\"}),c.jsx(Ef,{title:\"午班\",time:\"12:00 - 20:00\"}),c.jsx(Ef,{title:\"晚班\",time:\"16:00 - 24:00\"})]}),c.jsxs(\"div\",{className:\"schedule-board\",children:[c.jsx(\"div\",{className:\"schedule-head\",children:\"客服\"}),q.map(j=>c.jsx(\"div\",{className:\"schedule-head\",children:j.slice(5)},j)),U.map(j=>c.jsx(Jm,{agent:j,schedules:s,weekDays:q},j.id))]})]}),c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsx(\"div\",{className:\"support-panel-head\",children:c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"排班查看\"}),c.jsxs(\"h2\",{children:[A.name,\" 的排班与渠道\"]})]})}),c.jsx(\"div\",{className:\"support-table-wrap\",children:c.jsxs(\"table\",{children:[c.jsx(\"thead\",{children:c.jsxs(\"tr\",{children:[c.jsx(\"th\",{children:\"日期\"}),c.jsx(\"th\",{children:\"班次\"}),c.jsx(\"th\",{children:\"渠道\"})]})}),c.jsx(\"tbody\",{children:s.filter(j=>j.agentId===A.id).slice(0,12).map(j=>c.jsxs(\"tr\",{children:[c.jsx(\"td\",{children:j.date}),c.jsx(\"td\",{children:j.shift}),c.jsx(\"td\",{children:Uu(j.channel)})]},`${j.agentId}-${j.date}`))})]})})]})]})}function Xm({autoAssignTicket:d,customEnd:b,customStart:z,range:s,selectedTicket:A,setCustomEnd:_,setCustomStart:U,setRange:q,setSelectedTicketId:j,tickets:g,transferTicket:D,updateTicketStatus:B}){return c.jsxs(c.Fragment,{children:[c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"工单自动分配\"}),c.jsx(\"h2\",{children:\"筛选和转移都会即时更新\"})]}),c.jsxs(\"div\",{className:\"support-actions\",children:[c.jsx(Vh,{range:s,setRange:q}),c.jsx(\"button\",{onClick:d,type:\"button\",children:\"随机分配待分配工单\"})]})]}),s===\"custom\"&&c.jsxs(\"div\",{className:\"goal-editor\",children:[c.jsx(\"input\",{type:\"date\",value:z,onChange:H=>U(H.target.value)}),c.jsx(\"input\",{type:\"date\",value:b,onChange:H=>_(H.target.value)})]}),c.jsx(wm,{}),c.jsx(\"div\",{className:\"support-table-wrap\",children:c.jsxs(\"table\",{children:[c.jsx(\"thead\",{children:c.jsxs(\"tr\",{children:[c.jsx(\"th\",{children:\"工单ID\"}),c.jsx(\"th\",{children:\"用户ID\"}),c.jsx(\"th\",{children:\"用户昵称\"}),c.jsx(\"th\",{children:\"当前状态\"}),c.jsx(\"th\",{children:\"当前处理客服\"}),c.jsx(\"th\",{children:\"转移给\"}),c.jsx(\"th\",{children:\"创建时间\"}),c.jsx(\"th\",{children:\"最后回复时间\"})]})}),c.jsx(\"tbody\",{children:g.map(H=>c.jsxs(\"tr\",{className:A.id===H.id?\"selected\":\"\",onClick:()=>j(H.id),children:[c.jsx(\"td\",{children:c.jsx(\"strong\",{children:H.id})}),c.jsx(\"td\",{children:H.userId}),c.jsx(\"td\",{children:H.userName}),c.jsx(\"td\",{children:c.jsx(Kh,{status:H.status})}),c.jsx(\"td\",{children:H.agentId?ie(H.agentId).name:\"未分配\"}),c.jsx(\"td\",{children:c.jsxs(\"select\",{value:H.agentId??\"\",onClick:el=>el.stopPropagation(),onChange:el=>D(H.id,el.target.value),children:[c.jsx(\"option\",{value:\"\",children:\"未分配\"}),wl.map(el=>c.jsx(\"option\",{value:el.id,children:el.name},el.id))]})}),c.jsx(\"td\",{children:H.createdAt}),c.jsx(\"td\",{children:H.lastReplyAt})]},H.id))})]})})]}),c.jsx($m,{ticket:A,updateTicketStatus:B})]})}function Qm({agentsForView:d,tickets:b}){const z=d.map(s=>km(s,b));return c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"客服数据看板\"}),c.jsx(\"h2\",{children:\"回复效率随工单筛选变化\"})]}),c.jsx(\"button\",{type:\"button\",children:\"导出 Excel\"})]}),c.jsxs(\"section\",{className:\"support-metric-grid four\",children:[c.jsx(Cl,{label:\"回复用户数\",value:`${z.reduce((s,A)=>s+A.repliedUsers,0)} 人`,note:\"筛选范围内\"}),c.jsx(Cl,{label:\"处理工单数\",value:`${z.reduce((s,A)=>s+A.ticketCount,0)} 单`,note:\"已分配工单\"}),c.jsx(Cl,{label:\"发送消息数\",value:`${z.reduce((s,A)=>s+A.messageCount,0)} 条`,note:\"客服发送消息\"}),c.jsx(Cl,{label:\"平均首次回复\",value:`${Ih(z.map(s=>s.averageFirstReply)).toFixed(1)} 分钟`,note:\"客服首次回复 - 用户首次消息\",tone:\"green\"})]}),c.jsx(\"div\",{className:\"support-table-wrap\",children:c.jsxs(\"table\",{children:[c.jsx(\"thead\",{children:c.jsxs(\"tr\",{children:[c.jsx(\"th\",{children:\"客服\"}),c.jsx(\"th\",{children:\"客服组\"}),c.jsx(\"th\",{children:\"回复用户数\"}),c.jsx(\"th\",{children:\"处理工单数\"}),c.jsx(\"th\",{children:\"发送消息数\"}),c.jsx(\"th\",{children:\"平均首次回复\"}),c.jsx(\"th\",{children:\"中位数\"}),c.jsx(\"th\",{children:\"最大\"}),c.jsx(\"th\",{children:\"最小\"})]})}),c.jsx(\"tbody\",{children:z.map(s=>c.jsxs(\"tr\",{children:[c.jsxs(\"td\",{children:[c.jsx(\"strong\",{children:s.agent.name}),c.jsx(\"span\",{children:s.agent.id})]}),c.jsx(\"td\",{children:s.agent.group}),c.jsx(\"td\",{children:s.repliedUsers}),c.jsx(\"td\",{children:s.ticketCount}),c.jsx(\"td\",{children:s.messageCount}),c.jsxs(\"td\",{children:[s.averageFirstReply.toFixed(1),\" 分钟\"]}),c.jsxs(\"td\",{children:[s.medianFirstReply.toFixed(1),\" 分钟\"]}),c.jsxs(\"td\",{children:[s.maxFirstReply,\" 分钟\"]}),c.jsxs(\"td\",{children:[s.minFirstReply,\" 分钟\"]})]},s.agent.id))})]})})]})}function Zm({agentsForView:d,customEnd:b,customStart:z,range:s,selectedDate:A,setRange:_}){var j;const U=$h(s,A,z,b),q=d.map(g=>Im(g,Lh.filter(D=>Wh(D.date,U.start,U.end))));return c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"转化绩效页\"}),c.jsx(\"h2\",{children:\"RSO / RDO 转化统计\"})]}),c.jsx(\"div\",{className:\"support-actions\",children:c.jsx(Vh,{range:s,setRange:_})})]}),c.jsxs(\"section\",{className:\"support-metric-grid four\",children:[c.jsx(Cl,{label:\"团队总转化\",value:`${q.reduce((g,D)=>g+D.rsoReviews+D.rdoReviews,0)} 条`,note:\"获取评价总数\",tone:\"green\"}),c.jsx(Cl,{label:\"RSO完成率\",value:bt(qt(q.reduce((g,D)=>g+D.rsoReviews,0),q.reduce((g,D)=>g+D.rsoOrders,0))),note:\"获取评价数 / 登记订单数\"}),c.jsx(Cl,{label:\"RDO完成率\",value:bt(qt(q.reduce((g,D)=>g+D.rdoReviews,0),q.reduce((g,D)=>g+D.rdoOrders,0))),note:\"获取评价数 / 登记订单数\"}),c.jsx(Cl,{label:\"完成率第一\",value:((j=q[0])==null?void 0:j.agent.name)??\"-\",note:q[0]?`${bt(q[0].totalRate)} 总完成率`:\"-\"})]}),c.jsx(\"div\",{className:\"support-table-wrap\",children:c.jsxs(\"table\",{children:[c.jsx(\"thead\",{children:c.jsxs(\"tr\",{children:[c.jsx(\"th\",{children:\"客服\"}),c.jsx(\"th\",{children:\"RSO登记订单\"}),c.jsx(\"th\",{children:\"RSO获取评价\"}),c.jsx(\"th\",{children:\"RSO Review Completion Rate\"}),c.jsx(\"th\",{children:\"RDO登记订单\"}),c.jsx(\"th\",{children:\"RDO获取评价\"}),c.jsx(\"th\",{children:\"RDO Review Completion Rate\"}),c.jsx(\"th\",{children:\"总完成率\"})]})}),c.jsx(\"tbody\",{children:q.map(g=>c.jsxs(\"tr\",{children:[c.jsxs(\"td\",{children:[c.jsx(\"strong\",{children:g.agent.name}),c.jsx(\"span\",{children:g.agent.group})]}),c.jsx(\"td\",{children:g.rsoOrders}),c.jsx(\"td\",{children:g.rsoReviews}),c.jsx(\"td\",{children:bt(g.rsoRate)}),c.jsx(\"td\",{children:g.rdoOrders}),c.jsx(\"td\",{children:g.rdoReviews}),c.jsx(\"td\",{children:bt(g.rdoRate)}),c.jsx(\"td\",{children:bt(g.totalRate)})]},g.agent.id))})]})}),c.jsx(ti,{title:\"转化排行 / 完成率排行\",rows:q.map(g=>({label:g.agent.name,value:bt(g.totalRate),percent:g.totalRate})).sort((g,D)=>D.percent-g.percent)})]})}function Lm({draftGoal:d,goals:b,saveGoal:z,selectedAgent:s,setDraftGoal:A}){return c.jsxs(c.Fragment,{children:[c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"设置月目标\"}),c.jsx(\"h2\",{children:\"保存后表格和完成率会更新\"})]}),c.jsx(\"button\",{onClick:z,type:\"button\",children:\"保存月目标\"})]}),c.jsxs(\"div\",{className:\"goal-editor\",children:[c.jsx(\"select\",{value:d.agentId,onChange:_=>A({...d,agentId:_.target.value}),children:wl.map(_=>c.jsx(\"option\",{value:_.id,children:_.name},_.id))}),c.jsx(\"input\",{type:\"month\",value:d.month,onChange:_=>A({...d,month:_.target.value})}),c.jsxs(\"select\",{value:d.type,onChange:_=>A({...d,type:_.target.value}),children:[c.jsx(\"option\",{children:\"RSO登记订单目标\"}),c.jsx(\"option\",{children:\"RSO上评目标\"}),c.jsx(\"option\",{children:\"RDO登记订单目标\"}),c.jsx(\"option\",{children:\"RDO上评目标\"})]}),c.jsx(\"input\",{min:\"0\",type:\"number\",value:d.target,onChange:_=>A({...d,target:Number(_.target.value)})})]}),c.jsx(\"div\",{className:\"support-table-wrap\",children:c.jsxs(\"table\",{children:[c.jsx(\"thead\",{children:c.jsxs(\"tr\",{children:[c.jsx(\"th\",{children:\"客服\"}),c.jsx(\"th\",{children:\"月份\"}),c.jsx(\"th\",{children:\"目标类型\"}),c.jsx(\"th\",{children:\"目标数\"}),c.jsx(\"th\",{children:\"当前完成数\"}),c.jsx(\"th\",{children:\"目标完成率\"})]})}),c.jsx(\"tbody\",{children:b.map(_=>c.jsxs(\"tr\",{children:[c.jsxs(\"td\",{children:[c.jsx(\"strong\",{children:ie(_.agentId).name}),c.jsx(\"span\",{children:ie(_.agentId).group})]}),c.jsx(\"td\",{children:_.month}),c.jsx(\"td\",{children:_.type}),c.jsx(\"td\",{children:_.target}),c.jsx(\"td\",{children:_.current}),c.jsx(\"td\",{children:c.jsx(Mf,{value:_.current,max:_.target,label:bt(qt(_.current,_.target))})})]},`${_.agentId}-${_.month}-${_.type}`))})]})})]}),c.jsxs(\"section\",{className:\"support-split\",children:[c.jsx(ti,{title:\"历史完成率排行\",rows:Jh(b)}),c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsx(\"div\",{className:\"support-panel-head\",children:c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"历史绩效趋势\"}),c.jsx(\"h2\",{children:s.name})]})}),c.jsx(\"div\",{className:\"trend-bars\",children:[.68,.74,.81,.87].map((_,U)=>c.jsxs(\"div\",{className:\"trend-item\",children:[c.jsx(\"span\",{children:`${U+1}月`}),c.jsx(\"i\",{style:{height:`${_*100}%`}}),c.jsx(\"strong\",{children:bt(_)})]},_))})]})]})]})}function Vm({roleMode:d}){return c.jsxs(\"section\",{className:\"support-split\",children:[c.jsx(Qh,{active:d===\"客服\",title:\"客服\",permissions:[\"查看自己工单\",\"回复用户\",\"查看自己的排班\",\"查看自己的绩效\",\"查看自己的目标完成情况\"]}),c.jsx(Qh,{active:d===\"主管/管理员\",title:\"主管/管理员\",permissions:[\"查看所有客服数据\",\"设置排班\",\"设置每月目标\",\"查看绩效统计\",\"查看工单分配\",\"调整工单\",\"查看出勤情况\"]})]})}function Vh({range:d,setRange:b}){const z=[{key:\"today\",label:\"今日\"},{key:\"week\",label:\"本周\"},{key:\"month\",label:\"本月\"},{key:\"custom\",label:\"自定义\"}];return c.jsx(c.Fragment,{children:z.map(s=>c.jsx(\"button\",{className:d===s.key?\"active\":\"\",onClick:()=>b(s.key),type:\"button\",children:s.label},s.key))})}function Cl({label:d,note:b,tone:z=\"blue\",value:s}){return c.jsxs(\"article\",{className:`support-metric ${z}`,children:[c.jsx(\"span\",{children:d}),c.jsx(\"strong\",{children:s}),c.jsx(\"p\",{children:b})]})}function Qh({active:d,permissions:b,title:z}){return c.jsxs(\"section\",{className:`support-panel permission-panel ${d?\"active\":\"\"}`,children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"系统角色\"}),c.jsx(\"h2\",{children:z})]}),c.jsx(ei,{label:d?\"当前视角\":\"可切换\",tone:d?\"green\":\"gray\"})]}),c.jsx(\"div\",{className:\"permission-list\",children:b.map(s=>c.jsx(\"span\",{children:s},s))})]})}function ti({rows:d,title:b}){return c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsx(\"div\",{className:\"support-panel-head\",children:c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"Ranking\"}),c.jsx(\"h2\",{children:b})]})}),c.jsx(\"div\",{className:\"rank-list\",children:d.map((z,s)=>c.jsxs(\"article\",{className:\"rank-row\",children:[c.jsx(\"span\",{children:s+1}),c.jsx(\"strong\",{children:z.label}),c.jsx(Mf,{value:Math.round(z.percent*100),max:100,label:z.value})]},`${z.label}-${s}`))})]})}function Km({agent:d,attendance:b,selectedMonth:z}){const s=b.filter(A=>A.agentId===d.id&&A.date.startsWith(z));return c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"个人出勤详情\"}),c.jsx(\"h2\",{children:d.name})]}),c.jsx(ei,{label:d.group,tone:\"blue\"})]}),c.jsx(\"div\",{className:\"calendar-grid\",children:s.map(A=>c.jsxs(\"div\",{className:\"calendar-day\",\"data-status\":A.status,children:[c.jsx(\"strong\",{children:A.date.slice(-2)}),c.jsx(\"span\",{children:A.status})]},A.date))})]})}function Ef({time:d,title:b}){return c.jsxs(\"article\",{className:\"shift-type-card\",children:[c.jsx(\"span\",{children:b}),c.jsx(\"strong\",{children:d})]})}function Jm({agent:d,schedules:b,weekDays:z}){return c.jsxs(c.Fragment,{children:[c.jsxs(\"div\",{className:\"schedule-name\",children:[c.jsx(\"strong\",{children:d.name}),c.jsx(\"span\",{children:d.group})]}),z.map(s=>{const A=b.find(_=>_.agentId===d.id&&_.date===s);return c.jsxs(\"div\",{className:\"schedule-cell\",children:[c.jsx(\"strong\",{children:(A==null?void 0:A.shift)??\"休息\"}),c.jsx(\"span\",{children:A?Uu(A.channel):\"-\"})]},`${d.id}-${s}`)})]})}function wm(){return c.jsx(\"div\",{className:\"ticket-flow\",children:[\"用户发送消息\",\"生成待处理工单\",\"系统随机分配客服\",\"客服处理中\",\"等待用户回复\",\"已解决/关闭\"].map(d=>c.jsx(\"span\",{children:d},d))})}function $m({ticket:d,updateTicketStatus:b}){const z=Zh.filter(s=>s.ticketId===d.id);return c.jsxs(\"section\",{className:\"support-panel\",children:[c.jsxs(\"div\",{className:\"support-panel-head\",children:[c.jsxs(\"div\",{children:[c.jsx(\"p\",{className:\"support-eyebrow\",children:\"工单详情页\"}),c.jsx(\"h2\",{children:d.id})]}),c.jsxs(\"div\",{className:\"support-actions\",children:[c.jsxs(\"select\",{value:d.status,onChange:s=>b(d.id,s.target.value),children:[c.jsx(\"option\",{children:\"待分配\"}),c.jsx(\"option\",{children:\"待处理\"}),c.jsx(\"option\",{children:\"处理中\"}),c.jsx(\"option\",{children:\"等待用户回复\"}),c.jsx(\"option\",{children:\"已解决\"}),c.jsx(\"option\",{children:\"已关闭\"})]}),c.jsx(Kh,{status:d.status})]})]}),c.jsxs(\"div\",{className:\"ticket-detail-grid\",children:[c.jsx(In,{label:\"创建时间\",value:d.createdAt}),c.jsx(In,{label:\"处理时长\",value:ev(d.createdAt,d.closedAt??d.lastReplyAt)}),c.jsx(In,{label:\"当前客服\",value:d.agentId?ie(d.agentId).name:\"未分配\"}),c.jsx(In,{label:\"用户昵称\",value:d.userName})]}),c.jsx(\"div\",{className:\"chat-log\",children:(z.length>0?z:[{ticketId:d.id,sender:\"用户\",senderName:d.userName,time:d.createdAt.slice(-5),content:\"用户消息已进入待处理队列。\"}]).map(s=>c.jsxs(\"article\",{className:s.sender===\"客服\"?\"agent\":\"\",children:[c.jsxs(\"span\",{children:[s.senderName,\" · \",s.time]}),c.jsx(\"p\",{children:s.content})]},`${s.ticketId}-${s.time}-${s.sender}`))})]})}function In({label:d,value:b}){return c.jsxs(\"div\",{className:\"info-item\",children:[c.jsx(\"span\",{children:d}),c.jsx(\"strong\",{children:b})]})}function Mf({label:d,max:b,value:z}){const s=b===0?0:Math.min(100,Math.round(z/b*100));return c.jsxs(\"div\",{className:\"support-progress\",children:[c.jsx(\"div\",{children:c.jsx(\"i\",{style:{width:`${s}%`}})}),c.jsx(\"span\",{children:d})]})}function ei({label:d,tone:b}){return c.jsx(\"span\",{className:`support-pill ${b}`,children:d})}function Kh({status:d}){const b=d===\"已解决\"||d===\"已关闭\"?\"green\":d===\"待分配\"||d===\"待处理\"?\"amber\":\"blue\";return c.jsx(ei,{label:d,tone:b})}function Nu(d,b,z,s,A,_){return Array.from({length:30},(U,q)=>{const j=q+1,g=z.includes(j)?\"迟到\":s.includes(j)?\"早退\":A.includes(j)?\"请假\":_.includes(j)?\"缺勤\":b.includes(j)?\"正常出勤\":\"请假\";return{agentId:d,date:`2026-04-${String(j).padStart(2,\"0\")}`,status:g}})}function Ru(d,b,z){return Array.from({length:30},(s,A)=>({agentId:d,channel:z,date:`2026-04-${String(A+1).padStart(2,\"0\")}`,shift:b}))}function Ce(d,b,z,s,A,_,U,q,j){return{id:d,userId:b,userName:z,status:s,agentId:A,createdAt:_,lastReplyAt:U,firstUserMessageAt:_,firstAgentReplyAt:q,closedAt:j}}function Pn(d,b){return wl.flatMap((z,s)=>[{agentId:z.id,date:d,type:\"RSO\",registeredOrders:b[s*2],reviews:Math.floor(b[s*2+1])},{agentId:z.id,date:d,type:\"RDO\",registeredOrders:Math.max(0,b[s*2]-4),reviews:Math.max(0,Math.floor(b[s*2+1]/2))}])}function Wm(d,b,z,s,A){var D,B;const _=new Set(A.map(H=>H.id)),U=d.filter(H=>H.createdAt.startsWith(z)&&(!H.agentId||_.has(H.agentId))),q=b.filter(H=>H.month===s&&_.has(H.agentId)),j=Lh.filter(H=>H.date.startsWith(s)&&_.has(H.agentId)),g=Jh(q);return{goalRank:g,goalRate:qt(q.reduce((H,el)=>H+el.current,0),q.reduce((H,el)=>H+el.target,0)),monthReviews:j.reduce((H,el)=>H+el.reviews,0),onlineAgents:A.filter(H=>H.online).length,pendingTickets:U.filter(H=>H.status===\"待分配\"||H.status===\"待处理\").length,todayMessages:U.length*18+Zh.filter(H=>H.sender===\"客服\").length,todayReviews:j.filter(H=>H.date===z).reduce((H,el)=>H+el.reviews,0),todayTickets:U.length,topAgent:lv(((D=g[0])==null?void 0:D.label)??((B=A[0])==null?void 0:B.name)??wl[0].name)}}function Fm(d,b,z){const s=b.filter(j=>j.agentId===d.id&&j.date.startsWith(z)),A=s.filter(j=>Fh(j.status)).length,_=s.filter(j=>j.status===\"缺勤\").length,U=s.filter(j=>j.status===\"请假\").length,q=s.filter(j=>j.status===\"迟到\").length;return{absentDays:_,agent:d,lateDays:q,leaveDays:U,presentDays:A,workDays:s.length}}function km(d,b){const z=b.filter(_=>_.agentId===d.id),s=z.map(_=>tv(_)).filter(_=>_!==void 0),A=s.length>0?s:[3,5,8];return{agent:d,averageFirstReply:Ih(A),maxFirstReply:Math.max(...A),medianFirstReply:av(A),messageCount:28+z.length*17,minFirstReply:Math.min(...A),repliedUsers:Math.max(0,z.length*11),ticketCount:z.length}}function Im(d,b){const z=b.filter(q=>q.agentId===d.id),s=z.filter(q=>q.type===\"RSO\").reduce((q,j)=>q+j.registeredOrders,0),A=z.filter(q=>q.type===\"RSO\").reduce((q,j)=>q+j.reviews,0),_=z.filter(q=>q.type===\"RDO\").reduce((q,j)=>q+j.registeredOrders,0),U=z.filter(q=>q.type===\"RDO\").reduce((q,j)=>q+j.reviews,0);return{agent:d,rdoOrders:_,rdoRate:qt(U,_),rdoReviews:U,rsoOrders:s,rsoRate:qt(A,s),rsoReviews:A,totalRate:qt(A+U,s+_)}}function Jh(d){return wl.map(b=>{const z=d.filter(U=>U.agentId===b.id),s=z.reduce((U,q)=>U+q.current,0),A=z.reduce((U,q)=>U+q.target,0),_=qt(s,A);return{label:b.name,percent:_,value:bt(_)}}).filter(b=>b.percent>0).sort((b,z)=>z.percent-b.percent)}function Pm(d){var z;const b=wl.filter(s=>s.online);return((z=b.map(s=>({agent:s,count:d.filter(A=>A.agentId===s.id&&![\"已解决\",\"已关闭\"].includes(A.status)).length})).filter(s=>s.count<s.agent.maxTickets).sort((s,A)=>s.count-A.count)[0])==null?void 0:z.agent)??b[0]??wl[0]}function wh(d){const b=new Date(`${d}T00:00:00`);return Array.from({length:7},(z,s)=>{const A=new Date(b);return A.setDate(b.getDate()+s),A.toISOString().slice(0,10)})}function $h(d,b,z,s){return d===\"today\"?{start:b,end:b}:d===\"week\"?{start:\"2026-04-27\",end:\"2026-05-03\"}:d===\"month\"?{start:`${b.slice(0,7)}-01`,end:`${b.slice(0,7)}-30`}:{start:z,end:s}}function Wh(d,b,z){return d>=b&&d<=z}function Fh(d){return d===\"正常出勤\"||d===\"迟到\"||d===\"早退\"}function ie(d){return wl.find(b=>b.id===d)??wl[0]}function lv(d){return wl.find(b=>b.name===d)??wl[0]}function tv(d){if(d.firstAgentReplyAt)return kh(d.firstUserMessageAt,d.firstAgentReplyAt)}function kh(d,b){return Math.max(0,Math.round((new Date(b.replace(\" \",\"T\")).getTime()-new Date(d.replace(\" \",\"T\")).getTime())/6e4))}function ev(d,b){const z=kh(d,b);return z<60?`${z} 分钟`:`${Math.floor(z/60)} 小时 ${z%60} 分钟`}function Ih(d){return d.length===0?0:d.reduce((b,z)=>b+z,0)/d.length}function av(d){if(d.length===0)return 0;const b=[...d].sort((s,A)=>s-A),z=Math.floor(b.length/2);return b.length%2===0?(b[z-1]+b[z])/2:b[z]}function qt(d,b){return b===0?0:d/b}function bt(d){return`${Math.round(d*100)}%`}function Uu(d){return d===\"TEL\"?\"电话\":d}li(\"IM\",[1,2,3,6,7,8,9,10,13,14,15,16,17,20,21,22,23,29],[24],[27]),li(\"EDM\",[1,2,3,6,7,8,9,10,13,14,15,16,17,20,21,22,23,29],[],[28]),li(\"TEL\",[1,2,6,7,8,9,13,14,15,16,20,21,22,23,27,29],[3,10],[29]),li(\"IM\",[1,2,3,6,7,8,9,13,14,15,16,20,21,22,23],[10,17,29],[]);function li(d,b,z,s){return Array.from({length:30},(A,_)=>{const U=_+1,q=`2026-04-${String(U).padStart(2,\"0\")}`,j=z.includes(U)?\"缺勤\":s.includes(U)?\"迟到\":b.includes(U)?\"出勤\":\"休息\",g=j===\"出勤\"||j===\"迟到\";return{date:q,attendance:j,usersReplied:d===\"TEL\"?void 0:g?20+U%18:0,messagesSent:d===\"IM\"&&g?70+U*2:void 0,emailsSent:d===\"EDM\"&&g?28+U:void 0,callsMade:d===\"TEL\"&&g?18+U:void 0,callsAnswered:d===\"TEL\"&&g?8+U%12:void 0,averageReplyTime:d===\"IM\"?`${2+U%4}分${String(10+U).padStart(2,\"0\")}秒`:void 0,medianReplyTime:d===\"IM\"?`${2+U%3}分${String(6+U).padStart(2,\"0\")}秒`:void 0,registeredOrders:g?3+U%9:0,uploadedReviews:g?1+U%5:0}})}function uv(){return c.jsx(qm,{})}Rm.createRoot(document.getElementById(\"root\")).render(c.jsx(Gl.StrictMode,{children:c.jsx(uv,{})}));\n\n </script>\n </body>\n</html>\r\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/用户运营系统-单文件",
"type": "document",
"name": "USER评价业务闭环系统",
"filePath": "05_需求文档/用户运营系统-单文件.html",
"summary": "USER评价业务闭环系统",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n <head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>USER评价业务闭环系统</title>\n <script type=\"module\">\nvar Q1e=Object.defineProperty;var eye=(e,t,r)=>t in e?Q1e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Tu=(e,t,r)=>eye(e,typeof t!=\"symbol\"?t+\"\":t,r);function F9(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!=\"string\"&&!Array.isArray(n)){for(const a in n)if(a!==\"default\"&&!(a in e)){const i=Object.getOwnPropertyDescriptor(n,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}))}(function(){const t=document.createElement(\"link\").relList;if(t&&t.supports&&t.supports(\"modulepreload\"))return;for(const a of document.querySelectorAll('link[rel=\"modulepreload\"]'))n(a);new MutationObserver(a=>{for(const i of a)if(i.type===\"childList\")for(const o of i.addedNodes)o.tagName===\"LINK\"&&o.rel===\"modulepreload\"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(a){const i={};return a.integrity&&(i.integrity=a.integrity),a.referrerPolicy&&(i.referrerPolicy=a.referrerPolicy),a.crossOrigin===\"use-credentials\"?i.credentials=\"include\":a.crossOrigin===\"anonymous\"?i.credentials=\"omit\":i.credentials=\"same-origin\",i}function n(a){if(a.ep)return;a.ep=!0;const i=r(a);fetch(a.href,i)}})();const tye=\"modulepreload\",rye=function(e,t){return new URL(e,t).href},gL={},Fn=function(t,r,n){let a=Promise.resolve();if(r&&r.length>0){const o=document.getElementsByTagName(\"link\"),l=document.querySelector(\"meta[property=csp-nonce]\"),s=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute(\"nonce\"));a=Promise.allSettled(r.map(u=>{if(u=rye(u,n),u in gL)return;gL[u]=!0;const c=u.endsWith(\".css\"),d=c?'[rel=\"stylesheet\"]':\"\";if(!!n)for(let p=o.length-1;p>=0;p--){const v=o[p];if(v.href===u&&(!c||v.rel===\"stylesheet\"))return}else if(document.querySelector(`link[href=\"${u}\"]${d}`))return;const h=document.createElement(\"link\");if(h.rel=c?\"stylesheet\":tye,c||(h.as=\"script\"),h.crossOrigin=\"\",h.href=u,s&&h.setAttribute(\"nonce\",s),document.head.appendChild(h),c)return new Promise((p,v)=>{h.addEventListener(\"load\",p),h.addEventListener(\"error\",()=>v(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(o){const l=new Event(\"vite:preloadError\",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return a.then(o=>{for(const l of o||[])l.status===\"rejected\"&&i(l.reason);return t().catch(i)})};var oi=typeof globalThis<\"u\"?globalThis:typeof window<\"u\"?window:typeof global<\"u\"?global:typeof self<\"u\"?self:{};function Yo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}var gee={exports:{}},F4={},yee={exports:{}},gn={};/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var J2=Symbol.for(\"react.element\"),nye=Symbol.for(\"react.portal\"),aye=Symbol.for(\"react.fragment\"),iye=Symbol.for(\"react.strict_mode\"),oye=Symbol.for(\"react.profiler\"),lye=Symbol.for(\"react.provider\"),sye=Symbol.for(\"react.context\"),uye=Symbol.for(\"react.forward_ref\"),cye=Symbol.for(\"react.suspense\"),dye=Symbol.for(\"react.memo\"),fye=Symbol.for(\"react.lazy\"),yL=Symbol.iterator;function hye(e){return e===null||typeof e!=\"object\"?null:(e=yL&&e[yL]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var bee={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},xee=Object.assign,Cee={};function pg(e,t,r){this.props=e,this.context=t,this.refs=Cee,this.updater=r||bee}pg.prototype.isReactComponent={};pg.prototype.setState=function(e,t){if(typeof e!=\"object\"&&typeof e!=\"function\"&&e!=null)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")};pg.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};function Fee(){}Fee.prototype=pg.prototype;function S9(e,t,r){this.props=e,this.context=t,this.refs=Cee,this.updater=r||bee}var w9=S9.prototype=new Fee;w9.constructor=S9;xee(w9,pg.prototype);w9.isPureReactComponent=!0;var bL=Array.isArray,See=Object.prototype.hasOwnProperty,E9={current:null},wee={key:!0,ref:!0,__self:!0,__source:!0};function Eee(e,t,r){var n,a={},i=null,o=null;if(t!=null)for(n in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=\"\"+t.key),t)See.call(t,n)&&!wee.hasOwnProperty(n)&&(a[n]=t[n]);var l=arguments.length-2;if(l===1)a.children=r;else if(1<l){for(var s=Array(l),u=0;u<l;u++)s[u]=arguments[u+2];a.children=s}if(e&&e.defaultProps)for(n in l=e.defaultProps,l)a[n]===void 0&&(a[n]=l[n]);return{$$typeof:J2,type:e,key:i,ref:o,props:a,_owner:E9.current}}function pye(e,t){return{$$typeof:J2,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function D9(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===J2}function mye(e){var t={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+e.replace(/[=:]/g,function(r){return t[r]})}var xL=/\\/+/g;function RA(e,t){return typeof e==\"object\"&&e!==null&&e.key!=null?mye(\"\"+e.key):t.toString(36)}function jS(e,t,r,n,a){var i=typeof e;(i===\"undefined\"||i===\"boolean\")&&(e=null);var o=!1;if(e===null)o=!0;else switch(i){case\"string\":case\"number\":o=!0;break;case\"object\":switch(e.$$typeof){case J2:case nye:o=!0}}if(o)return o=e,a=a(o),e=n===\"\"?\".\"+RA(o,0):n,bL(a)?(r=\"\",e!=null&&(r=e.replace(xL,\"$&/\")+\"/\"),jS(a,t,r,\"\",function(u){return u})):a!=null&&(D9(a)&&(a=pye(a,r+(!a.key||o&&o.key===a.key?\"\":(\"\"+a.key).replace(xL,\"$&/\")+\"/\")+e)),t.push(a)),1;if(o=0,n=n===\"\"?\".\":n+\":\",bL(e))for(var l=0;l<e.length;l++){i=e[l];var s=n+RA(i,l);o+=jS(i,t,r,s,a)}else if(s=hye(e),typeof s==\"function\")for(e=s.call(e),l=0;!(i=e.next()).done;)i=i.value,s=n+RA(i,l++),o+=jS(i,t,r,s,a);else if(i===\"object\")throw t=String(e),Error(\"Objects are not valid as a React child (found: \"+(t===\"[object Object]\"?\"object with keys {\"+Object.keys(e).join(\", \")+\"}\":t)+\"). If you meant to render a collection of children, use an array instead.\");return o}function xC(e,t,r){if(e==null)return e;var n=[],a=0;return jS(e,n,\"\",\"\",function(i){return t.call(r,i,a++)}),n}function vye(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var qo={current:null},zS={transition:null},gye={ReactCurrentDispatcher:qo,ReactCurrentBatchConfig:zS,ReactCurrentOwner:E9};function Dee(){throw Error(\"act(...) is not supported in production builds of React.\")}gn.Children={map:xC,forEach:function(e,t,r){xC(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return xC(e,function(){t++}),t},toArray:function(e){return xC(e,function(t){return t})||[]},only:function(e){if(!D9(e))throw Error(\"React.Children.only expected to receive a single React element child.\");return e}};gn.Component=pg;gn.Fragment=aye;gn.Profiler=oye;gn.PureComponent=S9;gn.StrictMode=iye;gn.Suspense=cye;gn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=gye;gn.act=Dee;gn.cloneElement=function(e,t,r){if(e==null)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+e+\".\");var n=xee({},e.props),a=e.key,i=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,o=E9.current),t.key!==void 0&&(a=\"\"+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(s in t)See.call(t,s)&&!wee.hasOwnProperty(s)&&(n[s]=t[s]===void 0&&l!==void 0?l[s]:t[s])}var s=arguments.length-2;if(s===1)n.children=r;else if(1<s){l=Array(s);for(var u=0;u<s;u++)l[u]=arguments[u+2];n.children=l}return{$$typeof:J2,type:e.type,key:a,ref:i,props:n,_owner:o}};gn.createContext=function(e){return e={$$typeof:sye,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:lye,_context:e},e.Consumer=e};gn.createElement=Eee;gn.createFactory=function(e){var t=Eee.bind(null,e);return t.type=e,t};gn.createRef=function(){return{current:null}};gn.forwardRef=function(e){return{$$typeof:uye,render:e}};gn.isValidElement=D9;gn.lazy=function(e){return{$$typeof:fye,_payload:{_status:-1,_result:e},_init:vye}};gn.memo=function(e,t){return{$$typeof:dye,type:e,compare:t===void 0?null:t}};gn.startTransition=function(e){var t=zS.transition;zS.transition={};try{e()}finally{zS.transition=t}};gn.unstable_act=Dee;gn.useCallback=function(e,t){return qo.current.useCallback(e,t)};gn.useContext=function(e){return qo.current.useContext(e)};gn.useDebugValue=function(){};gn.useDeferredValue=function(e){return qo.current.useDeferredValue(e)};gn.useEffect=function(e,t){return qo.current.useEffect(e,t)};gn.useId=function(){return qo.current.useId()};gn.useImperativeHandle=function(e,t,r){return qo.current.useImperativeHandle(e,t,r)};gn.useInsertionEffect=function(e,t){return qo.current.useInsertionEffect(e,t)};gn.useLayoutEffect=function(e,t){return qo.current.useLayoutEffect(e,t)};gn.useMemo=function(e,t){return qo.current.useMemo(e,t)};gn.useReducer=function(e,t,r){return qo.current.useReducer(e,t,r)};gn.useRef=function(e){return qo.current.useRef(e)};gn.useState=function(e){return qo.current.useState(e)};gn.useSyncExternalStore=function(e,t,r){return qo.current.useSyncExternalStore(e,t,r)};gn.useTransition=function(){return qo.current.useTransition()};gn.version=\"18.3.1\";yee.exports=gn;var m=yee.exports;const le=Yo(m),Z2=F9({__proto__:null,default:le},[m]);/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var yye=m,bye=Symbol.for(\"react.element\"),xye=Symbol.for(\"react.fragment\"),Cye=Object.prototype.hasOwnProperty,Fye=yye.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Sye={key:!0,ref:!0,__self:!0,__source:!0};function Aee(e,t,r){var n,a={},i=null,o=null;r!==void 0&&(i=\"\"+r),t.key!==void 0&&(i=\"\"+t.key),t.ref!==void 0&&(o=t.ref);for(n in t)Cye.call(t,n)&&!Sye.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:bye,type:e,key:i,ref:o,props:a,_owner:Fye.current}}F4.Fragment=xye;F4.jsx=Aee;F4.jsxs=Aee;gee.exports=F4;var C=gee.exports,Ik={},_ee={exports:{}},zl={},Tee={exports:{}},Iee={};/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */(function(e){function t(N,O){var z=N.length;N.push(O);e:for(;0<z;){var W=z-1>>>1,L=N[W];if(0<a(L,O))N[W]=O,N[z]=L,z=W;else break e}}function r(N){return N.length===0?null:N[0]}function n(N){if(N.length===0)return null;var O=N[0],z=N.pop();if(z!==O){N[0]=z;e:for(var W=0,L=N.length,j=L>>>1;W<j;){var H=2*(W+1)-1,V=N[H],U=H+1,Q=N[U];if(0>a(V,z))U<L&&0>a(Q,V)?(N[W]=Q,N[U]=z,W=U):(N[W]=V,N[H]=z,W=H);else if(U<L&&0>a(Q,z))N[W]=Q,N[U]=z,W=U;else break e}}return O}function a(N,O){var z=N.sortIndex-O.sortIndex;return z!==0?z:N.id-O.id}if(typeof performance==\"object\"&&typeof performance.now==\"function\"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var s=[],u=[],c=1,d=null,f=3,h=!1,p=!1,v=!1,g=typeof setTimeout==\"function\"?setTimeout:null,y=typeof clearTimeout==\"function\"?clearTimeout:null,b=typeof setImmediate<\"u\"?setImmediate:null;typeof navigator<\"u\"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x(N){for(var O=r(u);O!==null;){if(O.callback===null)n(u);else if(O.startTime<=N)n(u),O.sortIndex=O.expirationTime,t(s,O);else break;O=r(u)}}function F(N){if(v=!1,x(N),!p)if(r(s)!==null)p=!0,P(S);else{var O=r(u);O!==null&&B(F,O.startTime-N)}}function S(N,O){p=!1,v&&(v=!1,y(D),D=-1),h=!0;var z=f;try{for(x(O),d=r(s);d!==null&&(!(d.expirationTime>O)||N&&!I());){var W=d.callback;if(typeof W==\"function\"){d.callback=null,f=d.priorityLevel;var L=W(d.expirationTime<=O);O=e.unstable_now(),typeof L==\"function\"?d.callback=L:d===r(s)&&n(s),x(O)}else n(s);d=r(s)}if(d!==null)var j=!0;else{var H=r(u);H!==null&&B(F,H.startTime-O),j=!1}return j}finally{d=null,f=z,h=!1}}var E=!1,w=null,D=-1,A=5,_=-1;function I(){return!(e.unstable_now()-_<A)}function M(){if(w!==null){var N=e.unstable_now();_=N;var O=!0;try{O=w(!0,N)}finally{O?T():(E=!1,w=null)}}else E=!1}var T;if(typeof b==\"function\")T=function(){b(M)};else if(typeof MessageChannel<\"u\"){var k=new MessageChannel,R=k.port2;k.port1.onmessage=M,T=function(){R.postMessage(null)}}else T=function(){g(M,0)};function P(N){w=N,E||(E=!0,T())}function B(N,O){D=g(function(){N(e.unstable_now())},O)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(N){N.callback=null},e.unstable_continueExecution=function(){p||h||(p=!0,P(S))},e.unstable_forceFrameRate=function(N){0>N||125<N?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):A=0<N?Math.floor(1e3/N):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return r(s)},e.unstable_next=function(N){switch(f){case 1:case 2:case 3:var O=3;break;default:O=f}var z=f;f=O;try{return N()}finally{f=z}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(N,O){switch(N){case 1:case 2:case 3:case 4:case 5:break;default:N=3}var z=f;f=N;try{return O()}finally{f=z}},e.unstable_scheduleCallback=function(N,O,z){var W=e.unstable_now();switch(typeof z==\"object\"&&z!==null?(z=z.delay,z=typeof z==\"number\"&&0<z?W+z:W):z=W,N){case 1:var L=-1;break;case 2:L=250;break;case 5:L=1073741823;break;case 4:L=1e4;break;default:L=5e3}return L=z+L,N={id:c++,callback:O,priorityLevel:N,startTime:z,expirationTime:L,sortIndex:-1},z>W?(N.sortIndex=z,t(u,N),r(s)===null&&N===r(u)&&(v?(y(D),D=-1):v=!0,B(F,z-W))):(N.sortIndex=L,t(s,N),p||h||(p=!0,P(S))),N},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(N){var O=f;return function(){var z=f;f=O;try{return N.apply(this,arguments)}finally{f=z}}}})(Iee);Tee.exports=Iee;var wye=Tee.exports;/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var Eye=m,Nl=wye;function Mt(e){for(var t=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+e,r=1;r<arguments.length;r++)t+=\"&args[]=\"+encodeURIComponent(arguments[r]);return\"Minified React error #\"+e+\"; visit \"+t+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var kee=new Set,wb={};function dm(e,t){M0(e,t),M0(e+\"Capture\",t)}function M0(e,t){for(wb[e]=t,e=0;e<t.length;e++)kee.add(t[e])}var Qc=!(typeof window>\"u\"||typeof window.document>\"u\"||typeof window.document.createElement>\"u\"),kk=Object.prototype.hasOwnProperty,Dye=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,CL={},FL={};function Aye(e){return kk.call(FL,e)?!0:kk.call(CL,e)?!1:Dye.test(e)?FL[e]=!0:(CL[e]=!0,!1)}function _ye(e,t,r,n){if(r!==null&&r.type===0)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":return n?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!==\"data-\"&&e!==\"aria-\");default:return!1}}function Tye(e,t,r,n){if(t===null||typeof t>\"u\"||_ye(e,t,r,n))return!0;if(n)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Xo(e,t,r,n,a,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=a,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var Gi={};\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(e){Gi[e]=new Xo(e,0,!1,e,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(e){var t=e[0];Gi[t]=new Xo(t,1,!1,e[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(e){Gi[e]=new Xo(e,2,!1,e.toLowerCase(),null,!1,!1)});[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(e){Gi[e]=new Xo(e,2,!1,e,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(e){Gi[e]=new Xo(e,3,!1,e.toLowerCase(),null,!1,!1)});[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(e){Gi[e]=new Xo(e,3,!0,e,null,!1,!1)});[\"capture\",\"download\"].forEach(function(e){Gi[e]=new Xo(e,4,!1,e,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(e){Gi[e]=new Xo(e,6,!1,e,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(e){Gi[e]=new Xo(e,5,!1,e.toLowerCase(),null,!1,!1)});var A9=/[\\-:]([a-z])/g;function _9(e){return e[1].toUpperCase()}\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(e){var t=e.replace(A9,_9);Gi[t]=new Xo(t,1,!1,e,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(e){var t=e.replace(A9,_9);Gi[t]=new Xo(t,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(e){var t=e.replace(A9,_9);Gi[t]=new Xo(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(e){Gi[e]=new Xo(e,1,!1,e.toLowerCase(),null,!1,!1)});Gi.xlinkHref=new Xo(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(e){Gi[e]=new Xo(e,1,!1,e.toLowerCase(),null,!0,!0)});function T9(e,t,r,n){var a=Gi.hasOwnProperty(t)?Gi[t]:null;(a!==null?a.type!==0:n||!(2<t.length)||t[0]!==\"o\"&&t[0]!==\"O\"||t[1]!==\"n\"&&t[1]!==\"N\")&&(Tye(t,r,a,n)&&(r=null),n||a===null?Aye(t)&&(r===null?e.removeAttribute(t):e.setAttribute(t,\"\"+r)):a.mustUseProperty?e[a.propertyName]=r===null?a.type===3?!1:\"\":r:(t=a.attributeName,n=a.attributeNamespace,r===null?e.removeAttribute(t):(a=a.type,r=a===3||a===4&&r===!0?\"\":\"\"+r,n?e.setAttributeNS(n,t,r):e.setAttribute(t,r))))}var bd=Eye.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,CC=Symbol.for(\"react.element\"),zv=Symbol.for(\"react.portal\"),Hv=Symbol.for(\"react.fragment\"),I9=Symbol.for(\"react.strict_mode\"),Rk=Symbol.for(\"react.profiler\"),Ree=Symbol.for(\"react.provider\"),Mee=Symbol.for(\"react.context\"),k9=Symbol.for(\"react.forward_ref\"),Mk=Symbol.for(\"react.suspense\"),Pk=Symbol.for(\"react.suspense_list\"),R9=Symbol.for(\"react.memo\"),Kd=Symbol.for(\"react.lazy\"),Pee=Symbol.for(\"react.offscreen\"),SL=Symbol.iterator;function u1(e){return e===null||typeof e!=\"object\"?null:(e=SL&&e[SL]||e[\"@@iterator\"],typeof e==\"function\"?e:null)}var ya=Object.assign,MA;function ay(e){if(MA===void 0)try{throw Error()}catch(r){var t=r.stack.trim().match(/\\n( *(at )?)/);MA=t&&t[1]||\"\"}return`\n`+MA+e}var PA=!1;function OA(e,t){if(!e||PA)return\"\";PA=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,\"props\",{set:function(){throw Error()}}),typeof Reflect==\"object\"&&Reflect.construct){try{Reflect.construct(t,[])}catch(u){var n=u}Reflect.construct(e,[],t)}else{try{t.call()}catch(u){n=u}e.call(t.prototype)}else{try{throw Error()}catch(u){n=u}e()}}catch(u){if(u&&n&&typeof u.stack==\"string\"){for(var a=u.stack.split(`\n`),i=n.stack.split(`\n`),o=a.length-1,l=i.length-1;1<=o&&0<=l&&a[o]!==i[l];)l--;for(;1<=o&&0<=l;o--,l--)if(a[o]!==i[l]){if(o!==1||l!==1)do if(o--,l--,0>l||a[o]!==i[l]){var s=`\n`+a[o].replace(\" at new \",\" at \");return e.displayName&&s.includes(\"<anonymous>\")&&(s=s.replace(\"<anonymous>\",e.displayName)),s}while(1<=o&&0<=l);break}}}finally{PA=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:\"\")?ay(e):\"\"}function Iye(e){switch(e.tag){case 5:return ay(e.type);case 16:return ay(\"Lazy\");case 13:return ay(\"Suspense\");case 19:return ay(\"SuspenseList\");case 0:case 2:case 15:return e=OA(e.type,!1),e;case 11:return e=OA(e.type.render,!1),e;case 1:return e=OA(e.type,!0),e;default:return\"\"}}function Ok(e){if(e==null)return null;if(typeof e==\"function\")return e.displayName||e.name||null;if(typeof e==\"string\")return e;switch(e){case Hv:return\"Fragment\";case zv:return\"Portal\";case Rk:return\"Profiler\";case I9:return\"StrictMode\";case Mk:return\"Suspense\";case Pk:return\"SuspenseList\"}if(typeof e==\"object\")switch(e.$$typeof){case Mee:return(e.displayName||\"Context\")+\".Consumer\";case Ree:return(e._context.displayName||\"Context\")+\".Provider\";case k9:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||\"\",e=e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\"),e;case R9:return t=e.displayName||null,t!==null?t:Ok(e.type)||\"Memo\";case Kd:t=e._payload,e=e._init;try{return Ok(e(t))}catch{}}return null}function kye(e){var t=e.type;switch(e.tag){case 24:return\"Cache\";case 9:return(t.displayName||\"Context\")+\".Consumer\";case 10:return(t._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return e=t.render,e=e.displayName||e.name||\"\",t.displayName||(e!==\"\"?\"ForwardRef(\"+e+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return t;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Ok(t);case 8:return t===I9?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";case 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==\"function\")return t.displayName||t.name||null;if(typeof t==\"string\")return t}return null}function Bf(e){switch(typeof e){case\"boolean\":case\"number\":case\"string\":case\"undefined\":return e;case\"object\":return e;default:return\"\"}}function Oee(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===\"input\"&&(t===\"checkbox\"||t===\"radio\")}function Rye(e){var t=Oee(e)?\"checked\":\"value\",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=\"\"+e[t];if(!e.hasOwnProperty(t)&&typeof r<\"u\"&&typeof r.get==\"function\"&&typeof r.set==\"function\"){var a=r.get,i=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(o){n=\"\"+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=\"\"+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function FC(e){e._valueTracker||(e._valueTracker=Rye(e))}function Bee(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n=\"\";return e&&(n=Oee(e)?e.checked?\"true\":\"false\":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Gw(e){if(e=e||(typeof document<\"u\"?document:void 0),typeof e>\"u\")return null;try{return e.activeElement||e.body}catch{return e.body}}function Bk(e,t){var r=t.checked;return ya({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function wL(e,t){var r=t.defaultValue==null?\"\":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=Bf(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type===\"checkbox\"||t.type===\"radio\"?t.checked!=null:t.value!=null}}function Nee(e,t){t=t.checked,t!=null&&T9(e,\"checked\",t,!1)}function Nk(e,t){Nee(e,t);var r=Bf(t.value),n=t.type;if(r!=null)n===\"number\"?(r===0&&e.value===\"\"||e.value!=r)&&(e.value=\"\"+r):e.value!==\"\"+r&&(e.value=\"\"+r);else if(n===\"submit\"||n===\"reset\"){e.removeAttribute(\"value\");return}t.hasOwnProperty(\"value\")?$k(e,t.type,r):t.hasOwnProperty(\"defaultValue\")&&$k(e,t.type,Bf(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function EL(e,t,r){if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var n=t.type;if(!(n!==\"submit\"&&n!==\"reset\"||t.value!==void 0&&t.value!==null))return;t=\"\"+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==\"\"&&(e.name=\"\"),e.defaultChecked=!!e._wrapperState.initialChecked,r!==\"\"&&(e.name=r)}function $k(e,t,r){(t!==\"number\"||Gw(e.ownerDocument)!==e)&&(r==null?e.defaultValue=\"\"+e._wrapperState.initialValue:e.defaultValue!==\"\"+r&&(e.defaultValue=\"\"+r))}var iy=Array.isArray;function u0(e,t,r,n){if(e=e.options,t){t={};for(var a=0;a<r.length;a++)t[\"$\"+r[a]]=!0;for(r=0;r<e.length;r++)a=t.hasOwnProperty(\"$\"+e[r].value),e[r].selected!==a&&(e[r].selected=a),a&&n&&(e[r].defaultSelected=!0)}else{for(r=\"\"+Bf(r),t=null,a=0;a<e.length;a++){if(e[a].value===r){e[a].selected=!0,n&&(e[a].defaultSelected=!0);return}t!==null||e[a].disabled||(t=e[a])}t!==null&&(t.selected=!0)}}function Lk(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(Mt(91));return ya({},t,{value:void 0,defaultValue:void 0,children:\"\"+e._wrapperState.initialValue})}function DL(e,t){var r=t.value;if(r==null){if(r=t.children,t=t.defaultValue,r!=null){if(t!=null)throw Error(Mt(92));if(iy(r)){if(1<r.length)throw Error(Mt(93));r=r[0]}t=r}t==null&&(t=\"\"),r=t}e._wrapperState={initialValue:Bf(r)}}function $ee(e,t){var r=Bf(t.value),n=Bf(t.defaultValue);r!=null&&(r=\"\"+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),n!=null&&(e.defaultValue=\"\"+n)}function AL(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==\"\"&&t!==null&&(e.value=t)}function Lee(e){switch(e){case\"svg\":return\"http://www.w3.org/2000/svg\";case\"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function jk(e,t){return e==null||e===\"http://www.w3.org/1999/xhtml\"?Lee(t):e===\"http://www.w3.org/2000/svg\"&&t===\"foreignObject\"?\"http://www.w3.org/1999/xhtml\":e}var SC,jee=function(e){return typeof MSApp<\"u\"&&MSApp.execUnsafeLocalFunction?function(t,r,n,a){MSApp.execUnsafeLocalFunction(function(){return e(t,r,n,a)})}:e}(function(e,t){if(e.namespaceURI!==\"http://www.w3.org/2000/svg\"||\"innerHTML\"in e)e.innerHTML=t;else{for(SC=SC||document.createElement(\"div\"),SC.innerHTML=\"<svg>\"+t.valueOf().toString()+\"</svg>\",t=SC.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Eb(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Iy={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Mye=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(Iy).forEach(function(e){Mye.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Iy[t]=Iy[e]})});function zee(e,t,r){return t==null||typeof t==\"boolean\"||t===\"\"?\"\":r||typeof t!=\"number\"||t===0||Iy.hasOwnProperty(e)&&Iy[e]?(\"\"+t).trim():t+\"px\"}function Hee(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf(\"--\")===0,a=zee(r,t[r],n);r===\"float\"&&(r=\"cssFloat\"),n?e.setProperty(r,a):e[r]=a}}var Pye=ya({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function zk(e,t){if(t){if(Pye[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(Mt(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(Mt(60));if(typeof t.dangerouslySetInnerHTML!=\"object\"||!(\"__html\"in t.dangerouslySetInnerHTML))throw Error(Mt(61))}if(t.style!=null&&typeof t.style!=\"object\")throw Error(Mt(62))}}function Hk(e,t){if(e.indexOf(\"-\")===-1)return typeof t.is==\"string\";switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var Vk=null;function M9(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Wk=null,c0=null,d0=null;function _L(e){if(e=tx(e)){if(typeof Wk!=\"function\")throw Error(Mt(280));var t=e.stateNode;t&&(t=A4(t),Wk(e.stateNode,e.type,t))}}function Vee(e){c0?d0?d0.push(e):d0=[e]:c0=e}function Wee(){if(c0){var e=c0,t=d0;if(d0=c0=null,_L(e),t)for(e=0;e<t.length;e++)_L(t[e])}}function Gee(e,t){return e(t)}function Uee(){}var BA=!1;function Kee(e,t,r){if(BA)return e(t,r);BA=!0;try{return Gee(e,t,r)}finally{BA=!1,(c0!==null||d0!==null)&&(Uee(),Wee())}}function Db(e,t){var r=e.stateNode;if(r===null)return null;var n=A4(r);if(n===null)return null;r=n[t];e:switch(t){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":(n=!n.disabled)||(e=e.type,n=!(e===\"button\"||e===\"input\"||e===\"select\"||e===\"textarea\")),e=!n;break e;default:e=!1}if(e)return null;if(r&&typeof r!=\"function\")throw Error(Mt(231,t,typeof r));return r}var Gk=!1;if(Qc)try{var c1={};Object.defineProperty(c1,\"passive\",{get:function(){Gk=!0}}),window.addEventListener(\"test\",c1,c1),window.removeEventListener(\"test\",c1,c1)}catch{Gk=!1}function Oye(e,t,r,n,a,i,o,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(r,u)}catch(c){this.onError(c)}}var ky=!1,Uw=null,Kw=!1,Uk=null,Bye={onError:function(e){ky=!0,Uw=e}};function Nye(e,t,r,n,a,i,o,l,s){ky=!1,Uw=null,Oye.apply(Bye,arguments)}function $ye(e,t,r,n,a,i,o,l,s){if(Nye.apply(this,arguments),ky){if(ky){var u=Uw;ky=!1,Uw=null}else throw Error(Mt(198));Kw||(Kw=!0,Uk=u)}}function fm(e){var t=e,r=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(r=t.return),e=t.return;while(e)}return t.tag===3?r:null}function Yee(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function TL(e){if(fm(e)!==e)throw Error(Mt(188))}function Lye(e){var t=e.alternate;if(!t){if(t=fm(e),t===null)throw Error(Mt(188));return t!==e?null:e}for(var r=e,n=t;;){var a=r.return;if(a===null)break;var i=a.alternate;if(i===null){if(n=a.return,n!==null){r=n;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===r)return TL(a),e;if(i===n)return TL(a),t;i=i.sibling}throw Error(Mt(188))}if(r.return!==n.return)r=a,n=i;else{for(var o=!1,l=a.child;l;){if(l===r){o=!0,r=a,n=i;break}if(l===n){o=!0,n=a,r=i;break}l=l.sibling}if(!o){for(l=i.child;l;){if(l===r){o=!0,r=i,n=a;break}if(l===n){o=!0,n=i,r=a;break}l=l.sibling}if(!o)throw Error(Mt(189))}}if(r.alternate!==n)throw Error(Mt(190))}if(r.tag!==3)throw Error(Mt(188));return r.stateNode.current===r?e:t}function qee(e){return e=Lye(e),e!==null?Xee(e):null}function Xee(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Xee(e);if(t!==null)return t;e=e.sibling}return null}var Jee=Nl.unstable_scheduleCallback,IL=Nl.unstable_cancelCallback,jye=Nl.unstable_shouldYield,zye=Nl.unstable_requestPaint,Pa=Nl.unstable_now,Hye=Nl.unstable_getCurrentPriorityLevel,P9=Nl.unstable_ImmediatePriority,Zee=Nl.unstable_UserBlockingPriority,Yw=Nl.unstable_NormalPriority,Vye=Nl.unstable_LowPriority,Qee=Nl.unstable_IdlePriority,S4=null,Qu=null;function Wye(e){if(Qu&&typeof Qu.onCommitFiberRoot==\"function\")try{Qu.onCommitFiberRoot(S4,e,void 0,(e.current.flags&128)===128)}catch{}}var nu=Math.clz32?Math.clz32:Kye,Gye=Math.log,Uye=Math.LN2;function Kye(e){return e>>>=0,e===0?32:31-(Gye(e)/Uye|0)|0}var wC=64,EC=4194304;function oy(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function qw(e,t){var r=e.pendingLanes;if(r===0)return 0;var n=0,a=e.suspendedLanes,i=e.pingedLanes,o=r&268435455;if(o!==0){var l=o&~a;l!==0?n=oy(l):(i&=o,i!==0&&(n=oy(i)))}else o=r&~a,o!==0?n=oy(o):i!==0&&(n=oy(i));if(n===0)return 0;if(t!==0&&t!==n&&!(t&a)&&(a=n&-n,i=t&-t,a>=i||a===16&&(i&4194240)!==0))return t;if(n&4&&(n|=r&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=n;0<t;)r=31-nu(t),a=1<<r,n|=e[r],t&=~a;return n}function Yye(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function qye(e,t){for(var r=e.suspendedLanes,n=e.pingedLanes,a=e.expirationTimes,i=e.pendingLanes;0<i;){var o=31-nu(i),l=1<<o,s=a[o];s===-1?(!(l&r)||l&n)&&(a[o]=Yye(l,t)):s<=t&&(e.expiredLanes|=l),i&=~l}}function Kk(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function ete(){var e=wC;return wC<<=1,!(wC&4194240)&&(wC=64),e}function NA(e){for(var t=[],r=0;31>r;r++)t.push(e);return t}function Q2(e,t,r){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-nu(t),e[t]=r}function Xye(e,t){var r=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var n=e.eventTimes;for(e=e.expirationTimes;0<r;){var a=31-nu(r),i=1<<a;t[a]=0,n[a]=-1,e[a]=-1,r&=~i}}function O9(e,t){var r=e.entangledLanes|=t;for(e=e.entanglements;r;){var n=31-nu(r),a=1<<n;a&t|e[n]&t&&(e[n]|=t),r&=~a}}var Hn=0;function tte(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var rte,B9,nte,ate,ite,Yk=!1,DC=[],yf=null,bf=null,xf=null,Ab=new Map,_b=new Map,Zd=[],Jye=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");function kL(e,t){switch(e){case\"focusin\":case\"focusout\":yf=null;break;case\"dragenter\":case\"dragleave\":bf=null;break;case\"mouseover\":case\"mouseout\":xf=null;break;case\"pointerover\":case\"pointerout\":Ab.delete(t.pointerId);break;case\"gotpointercapture\":case\"lostpointercapture\":_b.delete(t.pointerId)}}function d1(e,t,r,n,a,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:r,eventSystemFlags:n,nativeEvent:i,targetContainers:[a]},t!==null&&(t=tx(t),t!==null&&B9(t)),e):(e.eventSystemFlags|=n,t=e.targetContainers,a!==null&&t.indexOf(a)===-1&&t.push(a),e)}function Zye(e,t,r,n,a){switch(t){case\"focusin\":return yf=d1(yf,e,t,r,n,a),!0;case\"dragenter\":return bf=d1(bf,e,t,r,n,a),!0;case\"mouseover\":return xf=d1(xf,e,t,r,n,a),!0;case\"pointerover\":var i=a.pointerId;return Ab.set(i,d1(Ab.get(i)||null,e,t,r,n,a)),!0;case\"gotpointercapture\":return i=a.pointerId,_b.set(i,d1(_b.get(i)||null,e,t,r,n,a)),!0}return!1}function ote(e){var t=ap(e.target);if(t!==null){var r=fm(t);if(r!==null){if(t=r.tag,t===13){if(t=Yee(r),t!==null){e.blockedOn=t,ite(e.priority,function(){nte(r)});return}}else if(t===3&&r.stateNode.current.memoizedState.isDehydrated){e.blockedOn=r.tag===3?r.stateNode.containerInfo:null;return}}}e.blockedOn=null}function HS(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var r=qk(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(r===null){r=e.nativeEvent;var n=new r.constructor(r.type,r);Vk=n,r.target.dispatchEvent(n),Vk=null}else return t=tx(r),t!==null&&B9(t),e.blockedOn=r,!1;t.shift()}return!0}function RL(e,t,r){HS(e)&&r.delete(t)}function Qye(){Yk=!1,yf!==null&&HS(yf)&&(yf=null),bf!==null&&HS(bf)&&(bf=null),xf!==null&&HS(xf)&&(xf=null),Ab.forEach(RL),_b.forEach(RL)}function f1(e,t){e.blockedOn===t&&(e.blockedOn=null,Yk||(Yk=!0,Nl.unstable_scheduleCallback(Nl.unstable_NormalPriority,Qye)))}function Tb(e){function t(a){return f1(a,e)}if(0<DC.length){f1(DC[0],e);for(var r=1;r<DC.length;r++){var n=DC[r];n.blockedOn===e&&(n.blockedOn=null)}}for(yf!==null&&f1(yf,e),bf!==null&&f1(bf,e),xf!==null&&f1(xf,e),Ab.forEach(t),_b.forEach(t),r=0;r<Zd.length;r++)n=Zd[r],n.blockedOn===e&&(n.blockedOn=null);for(;0<Zd.length&&(r=Zd[0],r.blockedOn===null);)ote(r),r.blockedOn===null&&Zd.shift()}var f0=bd.ReactCurrentBatchConfig,Xw=!0;function ebe(e,t,r,n){var a=Hn,i=f0.transition;f0.transition=null;try{Hn=1,N9(e,t,r,n)}finally{Hn=a,f0.transition=i}}function tbe(e,t,r,n){var a=Hn,i=f0.transition;f0.transition=null;try{Hn=4,N9(e,t,r,n)}finally{Hn=a,f0.transition=i}}function N9(e,t,r,n){if(Xw){var a=qk(e,t,r,n);if(a===null)KA(e,t,n,Jw,r),kL(e,n);else if(Zye(a,e,t,r,n))n.stopPropagation();else if(kL(e,n),t&4&&-1<Jye.indexOf(e)){for(;a!==null;){var i=tx(a);if(i!==null&&rte(i),i=qk(e,t,r,n),i===null&&KA(e,t,n,Jw,r),i===a)break;a=i}a!==null&&n.stopPropagation()}else KA(e,t,n,null,r)}}var Jw=null;function qk(e,t,r,n){if(Jw=null,e=M9(n),e=ap(e),e!==null)if(t=fm(e),t===null)e=null;else if(r=t.tag,r===13){if(e=Yee(t),e!==null)return e;e=null}else if(r===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Jw=e,null}function lte(e){switch(e){case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return 1;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"toggle\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return 4;case\"message\":switch(Hye()){case P9:return 1;case Zee:return 4;case Yw:case Vye:return 16;case Qee:return 536870912;default:return 16}default:return 16}}var tf=null,$9=null,VS=null;function ste(){if(VS)return VS;var e,t=$9,r=t.length,n,a=\"value\"in tf?tf.value:tf.textContent,i=a.length;for(e=0;e<r&&t[e]===a[e];e++);var o=r-e;for(n=1;n<=o&&t[r-n]===a[i-n];n++);return VS=a.slice(e,1<n?1-n:void 0)}function WS(e){var t=e.keyCode;return\"charCode\"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function AC(){return!0}function ML(){return!1}function Hl(e){function t(r,n,a,i,o){this._reactName=r,this._targetInst=a,this.type=n,this.nativeEvent=i,this.target=o,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(r=e[l],this[l]=r?r(i):i[l]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?AC:ML,this.isPropagationStopped=ML,this}return ya(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var r=this.nativeEvent;r&&(r.preventDefault?r.preventDefault():typeof r.returnValue!=\"unknown\"&&(r.returnValue=!1),this.isDefaultPrevented=AC)},stopPropagation:function(){var r=this.nativeEvent;r&&(r.stopPropagation?r.stopPropagation():typeof r.cancelBubble!=\"unknown\"&&(r.cancelBubble=!0),this.isPropagationStopped=AC)},persist:function(){},isPersistent:AC}),t}var mg={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},L9=Hl(mg),ex=ya({},mg,{view:0,detail:0}),rbe=Hl(ex),$A,LA,h1,w4=ya({},ex,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:j9,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(e!==h1&&(h1&&e.type===\"mousemove\"?($A=e.screenX-h1.screenX,LA=e.screenY-h1.screenY):LA=$A=0,h1=e),$A)},movementY:function(e){return\"movementY\"in e?e.movementY:LA}}),PL=Hl(w4),nbe=ya({},w4,{dataTransfer:0}),abe=Hl(nbe),ibe=ya({},ex,{relatedTarget:0}),jA=Hl(ibe),obe=ya({},mg,{animationName:0,elapsedTime:0,pseudoElement:0}),lbe=Hl(obe),sbe=ya({},mg,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}}),ube=Hl(sbe),cbe=ya({},mg,{data:0}),OL=Hl(cbe),dbe={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},fbe={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},hbe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function pbe(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=hbe[e])?!!t[e]:!1}function j9(){return pbe}var mbe=ya({},ex,{key:function(e){if(e.key){var t=dbe[e.key]||e.key;if(t!==\"Unidentified\")return t}return e.type===\"keypress\"?(e=WS(e),e===13?\"Enter\":String.fromCharCode(e)):e.type===\"keydown\"||e.type===\"keyup\"?fbe[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:j9,charCode:function(e){return e.type===\"keypress\"?WS(e):0},keyCode:function(e){return e.type===\"keydown\"||e.type===\"keyup\"?e.keyCode:0},which:function(e){return e.type===\"keypress\"?WS(e):e.type===\"keydown\"||e.type===\"keyup\"?e.keyCode:0}}),vbe=Hl(mbe),gbe=ya({},w4,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),BL=Hl(gbe),ybe=ya({},ex,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:j9}),bbe=Hl(ybe),xbe=ya({},mg,{propertyName:0,elapsedTime:0,pseudoElement:0}),Cbe=Hl(xbe),Fbe=ya({},w4,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Sbe=Hl(Fbe),wbe=[9,13,27,32],z9=Qc&&\"CompositionEvent\"in window,Ry=null;Qc&&\"documentMode\"in document&&(Ry=document.documentMode);var Ebe=Qc&&\"TextEvent\"in window&&!Ry,ute=Qc&&(!z9||Ry&&8<Ry&&11>=Ry),NL=\" \",$L=!1;function cte(e,t){switch(e){case\"keyup\":return wbe.indexOf(t.keyCode)!==-1;case\"keydown\":return t.keyCode!==229;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function dte(e){return e=e.detail,typeof e==\"object\"&&\"data\"in e?e.data:null}var Vv=!1;function Dbe(e,t){switch(e){case\"compositionend\":return dte(t);case\"keypress\":return t.which!==32?null:($L=!0,NL);case\"textInput\":return e=t.data,e===NL&&$L?null:e;default:return null}}function Abe(e,t){if(Vv)return e===\"compositionend\"||!z9&&cte(e,t)?(e=ste(),VS=$9=tf=null,Vv=!1,e):null;switch(e){case\"paste\":return null;case\"keypress\":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return ute&&t.locale!==\"ko\"?null:t.data;default:return null}}var _be={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function LL(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===\"input\"?!!_be[e.type]:t===\"textarea\"}function fte(e,t,r,n){Vee(n),t=Zw(t,\"onChange\"),0<t.length&&(r=new L9(\"onChange\",\"change\",null,r,n),e.push({event:r,listeners:t}))}var My=null,Ib=null;function Tbe(e){Ste(e,0)}function E4(e){var t=Uv(e);if(Bee(t))return e}function Ibe(e,t){if(e===\"change\")return t}var hte=!1;if(Qc){var zA;if(Qc){var HA=\"oninput\"in document;if(!HA){var jL=document.createElement(\"div\");jL.setAttribute(\"oninput\",\"return;\"),HA=typeof jL.oninput==\"function\"}zA=HA}else zA=!1;hte=zA&&(!document.documentMode||9<document.documentMode)}function zL(){My&&(My.detachEvent(\"onpropertychange\",pte),Ib=My=null)}function pte(e){if(e.propertyName===\"value\"&&E4(Ib)){var t=[];fte(t,Ib,e,M9(e)),Kee(Tbe,t)}}function kbe(e,t,r){e===\"focusin\"?(zL(),My=t,Ib=r,My.attachEvent(\"onpropertychange\",pte)):e===\"focusout\"&&zL()}function Rbe(e){if(e===\"selectionchange\"||e===\"keyup\"||e===\"keydown\")return E4(Ib)}function Mbe(e,t){if(e===\"click\")return E4(t)}function Pbe(e,t){if(e===\"input\"||e===\"change\")return E4(t)}function Obe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var pu=typeof Object.is==\"function\"?Object.is:Obe;function kb(e,t){if(pu(e,t))return!0;if(typeof e!=\"object\"||e===null||typeof t!=\"object\"||t===null)return!1;var r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(n=0;n<r.length;n++){var a=r[n];if(!kk.call(t,a)||!pu(e[a],t[a]))return!1}return!0}function HL(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function VL(e,t){var r=HL(e);e=0;for(var n;r;){if(r.nodeType===3){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=HL(r)}}function mte(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?mte(e,t.parentNode):\"contains\"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function vte(){for(var e=window,t=Gw();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href==\"string\"}catch{r=!1}if(r)e=t.contentWindow;else break;t=Gw(e.document)}return t}function H9(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===\"input\"&&(e.type===\"text\"||e.type===\"search\"||e.type===\"tel\"||e.type===\"url\"||e.type===\"password\")||t===\"textarea\"||e.contentEditable===\"true\")}function Bbe(e){var t=vte(),r=e.focusedElem,n=e.selectionRange;if(t!==r&&r&&r.ownerDocument&&mte(r.ownerDocument.documentElement,r)){if(n!==null&&H9(r)){if(t=n.start,e=n.end,e===void 0&&(e=t),\"selectionStart\"in r)r.selectionStart=t,r.selectionEnd=Math.min(e,r.value.length);else if(e=(t=r.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=r.textContent.length,i=Math.min(n.start,a);n=n.end===void 0?i:Math.min(n.end,a),!e.extend&&i>n&&(a=n,n=i,i=a),a=VL(r,i);var o=VL(r,n);a&&o&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),i>n?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=r;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof r.focus==\"function\"&&r.focus(),r=0;r<t.length;r++)e=t[r],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Nbe=Qc&&\"documentMode\"in document&&11>=document.documentMode,Wv=null,Xk=null,Py=null,Jk=!1;function WL(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;Jk||Wv==null||Wv!==Gw(n)||(n=Wv,\"selectionStart\"in n&&H9(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Py&&kb(Py,n)||(Py=n,n=Zw(Xk,\"onSelect\"),0<n.length&&(t=new L9(\"onSelect\",\"select\",null,t,r),e.push({event:t,listeners:n}),t.target=Wv)))}function _C(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r[\"Webkit\"+e]=\"webkit\"+t,r[\"Moz\"+e]=\"moz\"+t,r}var Gv={animationend:_C(\"Animation\",\"AnimationEnd\"),animationiteration:_C(\"Animation\",\"AnimationIteration\"),animationstart:_C(\"Animation\",\"AnimationStart\"),transitionend:_C(\"Transition\",\"TransitionEnd\")},VA={},gte={};Qc&&(gte=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Gv.animationend.animation,delete Gv.animationiteration.animation,delete Gv.animationstart.animation),\"TransitionEvent\"in window||delete Gv.transitionend.transition);function D4(e){if(VA[e])return VA[e];if(!Gv[e])return e;var t=Gv[e],r;for(r in t)if(t.hasOwnProperty(r)&&r in gte)return VA[e]=t[r];return e}var yte=D4(\"animationend\"),bte=D4(\"animationiteration\"),xte=D4(\"animationstart\"),Cte=D4(\"transitionend\"),Fte=new Map,GL=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");function Qf(e,t){Fte.set(e,t),dm(t,[e])}for(var WA=0;WA<GL.length;WA++){var GA=GL[WA],$be=GA.toLowerCase(),Lbe=GA[0].toUpperCase()+GA.slice(1);Qf($be,\"on\"+Lbe)}Qf(yte,\"onAnimationEnd\");Qf(bte,\"onAnimationIteration\");Qf(xte,\"onAnimationStart\");Qf(\"dblclick\",\"onDoubleClick\");Qf(\"focusin\",\"onFocus\");Qf(\"focusout\",\"onBlur\");Qf(Cte,\"onTransitionEnd\");M0(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);M0(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);M0(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);M0(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);dm(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));dm(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));dm(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);dm(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));dm(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));dm(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var ly=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),jbe=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(ly));function UL(e,t,r){var n=e.type||\"unknown-event\";e.currentTarget=r,$ye(n,t,void 0,e),e.currentTarget=null}function Ste(e,t){t=(t&4)!==0;for(var r=0;r<e.length;r++){var n=e[r],a=n.event;n=n.listeners;e:{var i=void 0;if(t)for(var o=n.length-1;0<=o;o--){var l=n[o],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==i&&a.isPropagationStopped())break e;UL(a,l,u),i=s}else for(o=0;o<n.length;o++){if(l=n[o],s=l.instance,u=l.currentTarget,l=l.listener,s!==i&&a.isPropagationStopped())break e;UL(a,l,u),i=s}}}if(Kw)throw e=Uk,Kw=!1,Uk=null,e}function aa(e,t){var r=t[r8];r===void 0&&(r=t[r8]=new Set);var n=e+\"__bubble\";r.has(n)||(wte(t,e,2,!1),r.add(n))}function UA(e,t,r){var n=0;t&&(n|=4),wte(r,e,n,t)}var TC=\"_reactListening\"+Math.random().toString(36).slice(2);function Rb(e){if(!e[TC]){e[TC]=!0,kee.forEach(function(r){r!==\"selectionchange\"&&(jbe.has(r)||UA(r,!1,e),UA(r,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[TC]||(t[TC]=!0,UA(\"selectionchange\",!1,t))}}function wte(e,t,r,n){switch(lte(t)){case 1:var a=ebe;break;case 4:a=tbe;break;default:a=N9}r=a.bind(null,t,r,e),a=void 0,!Gk||t!==\"touchstart\"&&t!==\"touchmove\"&&t!==\"wheel\"||(a=!0),n?a!==void 0?e.addEventListener(t,r,{capture:!0,passive:a}):e.addEventListener(t,r,!0):a!==void 0?e.addEventListener(t,r,{passive:a}):e.addEventListener(t,r,!1)}function KA(e,t,r,n,a){var i=n;if(!(t&1)&&!(t&2)&&n!==null)e:for(;;){if(n===null)return;var o=n.tag;if(o===3||o===4){var l=n.stateNode.containerInfo;if(l===a||l.nodeType===8&&l.parentNode===a)break;if(o===4)for(o=n.return;o!==null;){var s=o.tag;if((s===3||s===4)&&(s=o.stateNode.containerInfo,s===a||s.nodeType===8&&s.parentNode===a))return;o=o.return}for(;l!==null;){if(o=ap(l),o===null)return;if(s=o.tag,s===5||s===6){n=i=o;continue e}l=l.parentNode}}n=n.return}Kee(function(){var u=i,c=M9(r),d=[];e:{var f=Fte.get(e);if(f!==void 0){var h=L9,p=e;switch(e){case\"keypress\":if(WS(r)===0)break e;case\"keydown\":case\"keyup\":h=vbe;break;case\"focusin\":p=\"focus\",h=jA;break;case\"focusout\":p=\"blur\",h=jA;break;case\"beforeblur\":case\"afterblur\":h=jA;break;case\"click\":if(r.button===2)break e;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":h=PL;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":h=abe;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":h=bbe;break;case yte:case bte:case xte:h=lbe;break;case Cte:h=Cbe;break;case\"scroll\":h=rbe;break;case\"wheel\":h=Sbe;break;case\"copy\":case\"cut\":case\"paste\":h=ube;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":h=BL}var v=(t&4)!==0,g=!v&&e===\"scroll\",y=v?f!==null?f+\"Capture\":null:f;v=[];for(var b=u,x;b!==null;){x=b;var F=x.stateNode;if(x.tag===5&&F!==null&&(x=F,y!==null&&(F=Db(b,y),F!=null&&v.push(Mb(b,F,x)))),g)break;b=b.return}0<v.length&&(f=new h(f,p,null,r,c),d.push({event:f,listeners:v}))}}if(!(t&7)){e:{if(f=e===\"mouseover\"||e===\"pointerover\",h=e===\"mouseout\"||e===\"pointerout\",f&&r!==Vk&&(p=r.relatedTarget||r.fromElement)&&(ap(p)||p[ed]))break e;if((h||f)&&(f=c.window===c?c:(f=c.ownerDocument)?f.defaultView||f.parentWindow:window,h?(p=r.relatedTarget||r.toElement,h=u,p=p?ap(p):null,p!==null&&(g=fm(p),p!==g||p.tag!==5&&p.tag!==6)&&(p=null)):(h=null,p=u),h!==p)){if(v=PL,F=\"onMouseLeave\",y=\"onMouseEnter\",b=\"mouse\",(e===\"pointerout\"||e===\"pointerover\")&&(v=BL,F=\"onPointerLeave\",y=\"onPointerEnter\",b=\"pointer\"),g=h==null?f:Uv(h),x=p==null?f:Uv(p),f=new v(F,b+\"leave\",h,r,c),f.target=g,f.relatedTarget=x,F=null,ap(c)===u&&(v=new v(y,b+\"enter\",p,r,c),v.target=x,v.relatedTarget=g,F=v),g=F,h&&p)t:{for(v=h,y=p,b=0,x=v;x;x=Wm(x))b++;for(x=0,F=y;F;F=Wm(F))x++;for(;0<b-x;)v=Wm(v),b--;for(;0<x-b;)y=Wm(y),x--;for(;b--;){if(v===y||y!==null&&v===y.alternate)break t;v=Wm(v),y=Wm(y)}v=null}else v=null;h!==null&&KL(d,f,h,v,!1),p!==null&&g!==null&&KL(d,g,p,v,!0)}}e:{if(f=u?Uv(u):window,h=f.nodeName&&f.nodeName.toLowerCase(),h===\"select\"||h===\"input\"&&f.type===\"file\")var S=Ibe;else if(LL(f))if(hte)S=Pbe;else{S=Rbe;var E=kbe}else(h=f.nodeName)&&h.toLowerCase()===\"input\"&&(f.type===\"checkbox\"||f.type===\"radio\")&&(S=Mbe);if(S&&(S=S(e,u))){fte(d,S,r,c);break e}E&&E(e,f,u),e===\"focusout\"&&(E=f._wrapperState)&&E.controlled&&f.type===\"number\"&&$k(f,\"number\",f.value)}switch(E=u?Uv(u):window,e){case\"focusin\":(LL(E)||E.contentEditable===\"true\")&&(Wv=E,Xk=u,Py=null);break;case\"focusout\":Py=Xk=Wv=null;break;case\"mousedown\":Jk=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":Jk=!1,WL(d,r,c);break;case\"selectionchange\":if(Nbe)break;case\"keydown\":case\"keyup\":WL(d,r,c)}var w;if(z9)e:{switch(e){case\"compositionstart\":var D=\"onCompositionStart\";break e;case\"compositionend\":D=\"onCompositionEnd\";break e;case\"compositionupdate\":D=\"onCompositionUpdate\";break e}D=void 0}else Vv?cte(e,r)&&(D=\"onCompositionEnd\"):e===\"keydown\"&&r.keyCode===229&&(D=\"onCompositionStart\");D&&(ute&&r.locale!==\"ko\"&&(Vv||D!==\"onCompositionStart\"?D===\"onCompositionEnd\"&&Vv&&(w=ste()):(tf=c,$9=\"value\"in tf?tf.value:tf.textContent,Vv=!0)),E=Zw(u,D),0<E.length&&(D=new OL(D,e,null,r,c),d.push({event:D,listeners:E}),w?D.data=w:(w=dte(r),w!==null&&(D.data=w)))),(w=Ebe?Dbe(e,r):Abe(e,r))&&(u=Zw(u,\"onBeforeInput\"),0<u.length&&(c=new OL(\"onBeforeInput\",\"beforeinput\",null,r,c),d.push({event:c,listeners:u}),c.data=w))}Ste(d,t)})}function Mb(e,t,r){return{instance:e,listener:t,currentTarget:r}}function Zw(e,t){for(var r=t+\"Capture\",n=[];e!==null;){var a=e,i=a.stateNode;a.tag===5&&i!==null&&(a=i,i=Db(e,r),i!=null&&n.unshift(Mb(e,i,a)),i=Db(e,t),i!=null&&n.push(Mb(e,i,a))),e=e.return}return n}function Wm(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function KL(e,t,r,n,a){for(var i=t._reactName,o=[];r!==null&&r!==n;){var l=r,s=l.alternate,u=l.stateNode;if(s!==null&&s===n)break;l.tag===5&&u!==null&&(l=u,a?(s=Db(r,i),s!=null&&o.unshift(Mb(r,s,l))):a||(s=Db(r,i),s!=null&&o.push(Mb(r,s,l)))),r=r.return}o.length!==0&&e.push({event:t,listeners:o})}var zbe=/\\r\\n?/g,Hbe=/\\u0000|\\uFFFD/g;function YL(e){return(typeof e==\"string\"?e:\"\"+e).replace(zbe,`\n`).replace(Hbe,\"\")}function IC(e,t,r){if(t=YL(t),YL(e)!==t&&r)throw Error(Mt(425))}function Qw(){}var Zk=null,Qk=null;function e8(e,t){return e===\"textarea\"||e===\"noscript\"||typeof t.children==\"string\"||typeof t.children==\"number\"||typeof t.dangerouslySetInnerHTML==\"object\"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var t8=typeof setTimeout==\"function\"?setTimeout:void 0,Vbe=typeof clearTimeout==\"function\"?clearTimeout:void 0,qL=typeof Promise==\"function\"?Promise:void 0,Wbe=typeof queueMicrotask==\"function\"?queueMicrotask:typeof qL<\"u\"?function(e){return qL.resolve(null).then(e).catch(Gbe)}:t8;function Gbe(e){setTimeout(function(){throw e})}function YA(e,t){var r=t,n=0;do{var a=r.nextSibling;if(e.removeChild(r),a&&a.nodeType===8)if(r=a.data,r===\"/$\"){if(n===0){e.removeChild(a),Tb(t);return}n--}else r!==\"$\"&&r!==\"$?\"&&r!==\"$!\"||n++;r=a}while(r);Tb(t)}function Cf(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===\"$\"||t===\"$!\"||t===\"$?\")break;if(t===\"/$\")return null}}return e}function XL(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r===\"$\"||r===\"$!\"||r===\"$?\"){if(t===0)return e;t--}else r===\"/$\"&&t++}e=e.previousSibling}return null}var vg=Math.random().toString(36).slice(2),Wu=\"__reactFiber$\"+vg,Pb=\"__reactProps$\"+vg,ed=\"__reactContainer$\"+vg,r8=\"__reactEvents$\"+vg,Ube=\"__reactListeners$\"+vg,Kbe=\"__reactHandles$\"+vg;function ap(e){var t=e[Wu];if(t)return t;for(var r=e.parentNode;r;){if(t=r[ed]||r[Wu]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=XL(e);e!==null;){if(r=e[Wu])return r;e=XL(e)}return t}e=r,r=e.parentNode}return null}function tx(e){return e=e[Wu]||e[ed],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Uv(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(Mt(33))}function A4(e){return e[Pb]||null}var n8=[],Kv=-1;function eh(e){return{current:e}}function ia(e){0>Kv||(e.current=n8[Kv],n8[Kv]=null,Kv--)}function ta(e,t){Kv++,n8[Kv]=e.current,e.current=t}var Nf={},Co=eh(Nf),sl=eh(!1),Lp=Nf;function P0(e,t){var r=e.type.contextTypes;if(!r)return Nf;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var a={},i;for(i in r)a[i]=t[i];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function ul(e){return e=e.childContextTypes,e!=null}function eE(){ia(sl),ia(Co)}function JL(e,t,r){if(Co.current!==Nf)throw Error(Mt(168));ta(Co,t),ta(sl,r)}function Ete(e,t,r){var n=e.stateNode;if(t=t.childContextTypes,typeof n.getChildContext!=\"function\")return r;n=n.getChildContext();for(var a in n)if(!(a in t))throw Error(Mt(108,kye(e)||\"Unknown\",a));return ya({},r,n)}function tE(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Nf,Lp=Co.current,ta(Co,e),ta(sl,sl.current),!0}function ZL(e,t,r){var n=e.stateNode;if(!n)throw Error(Mt(169));r?(e=Ete(e,t,Lp),n.__reactInternalMemoizedMergedChildContext=e,ia(sl),ia(Co),ta(Co,e)):ia(sl),ta(sl,r)}var Oc=null,_4=!1,qA=!1;function Dte(e){Oc===null?Oc=[e]:Oc.push(e)}function Ybe(e){_4=!0,Dte(e)}function th(){if(!qA&&Oc!==null){qA=!0;var e=0,t=Hn;try{var r=Oc;for(Hn=1;e<r.length;e++){var n=r[e];do n=n(!0);while(n!==null)}Oc=null,_4=!1}catch(a){throw Oc!==null&&(Oc=Oc.slice(e+1)),Jee(P9,th),a}finally{Hn=t,qA=!1}}return null}var Yv=[],qv=0,rE=null,nE=0,cs=[],ds=0,jp=null,Nc=1,$c=\"\";function Hh(e,t){Yv[qv++]=nE,Yv[qv++]=rE,rE=e,nE=t}function Ate(e,t,r){cs[ds++]=Nc,cs[ds++]=$c,cs[ds++]=jp,jp=e;var n=Nc;e=$c;var a=32-nu(n)-1;n&=~(1<<a),r+=1;var i=32-nu(t)+a;if(30<i){var o=a-a%5;i=(n&(1<<o)-1).toString(32),n>>=o,a-=o,Nc=1<<32-nu(t)+a|r<<a|n,$c=i+e}else Nc=1<<i|r<<a|n,$c=e}function V9(e){e.return!==null&&(Hh(e,1),Ate(e,1,0))}function W9(e){for(;e===rE;)rE=Yv[--qv],Yv[qv]=null,nE=Yv[--qv],Yv[qv]=null;for(;e===jp;)jp=cs[--ds],cs[ds]=null,$c=cs[--ds],cs[ds]=null,Nc=cs[--ds],cs[ds]=null}var Ol=null,Il=null,ca=!1,Js=null;function _te(e,t){var r=ms(5,null,null,0);r.elementType=\"DELETED\",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function QL(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Ol=e,Il=Cf(t.firstChild),!0):!1;case 6:return t=e.pendingProps===\"\"||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Ol=e,Il=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=jp!==null?{id:Nc,overflow:$c}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=ms(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,Ol=e,Il=null,!0):!1;default:return!1}}function a8(e){return(e.mode&1)!==0&&(e.flags&128)===0}function i8(e){if(ca){var t=Il;if(t){var r=t;if(!QL(e,t)){if(a8(e))throw Error(Mt(418));t=Cf(r.nextSibling);var n=Ol;t&&QL(e,t)?_te(n,r):(e.flags=e.flags&-4097|2,ca=!1,Ol=e)}}else{if(a8(e))throw Error(Mt(418));e.flags=e.flags&-4097|2,ca=!1,Ol=e}}}function ej(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Ol=e}function kC(e){if(e!==Ol)return!1;if(!ca)return ej(e),ca=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!==\"head\"&&t!==\"body\"&&!e8(e.type,e.memoizedProps)),t&&(t=Il)){if(a8(e))throw Tte(),Error(Mt(418));for(;t;)_te(e,t),t=Cf(t.nextSibling)}if(ej(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(Mt(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var r=e.data;if(r===\"/$\"){if(t===0){Il=Cf(e.nextSibling);break e}t--}else r!==\"$\"&&r!==\"$!\"&&r!==\"$?\"||t++}e=e.nextSibling}Il=null}}else Il=Ol?Cf(e.stateNode.nextSibling):null;return!0}function Tte(){for(var e=Il;e;)e=Cf(e.nextSibling)}function O0(){Il=Ol=null,ca=!1}function G9(e){Js===null?Js=[e]:Js.push(e)}var qbe=bd.ReactCurrentBatchConfig;function p1(e,t,r){if(e=r.ref,e!==null&&typeof e!=\"function\"&&typeof e!=\"object\"){if(r._owner){if(r=r._owner,r){if(r.tag!==1)throw Error(Mt(309));var n=r.stateNode}if(!n)throw Error(Mt(147,e));var a=n,i=\"\"+e;return t!==null&&t.ref!==null&&typeof t.ref==\"function\"&&t.ref._stringRef===i?t.ref:(t=function(o){var l=a.refs;o===null?delete l[i]:l[i]=o},t._stringRef=i,t)}if(typeof e!=\"string\")throw Error(Mt(284));if(!r._owner)throw Error(Mt(290,e))}return e}function RC(e,t){throw e=Object.prototype.toString.call(t),Error(Mt(31,e===\"[object Object]\"?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":e))}function tj(e){var t=e._init;return t(e._payload)}function Ite(e){function t(y,b){if(e){var x=y.deletions;x===null?(y.deletions=[b],y.flags|=16):x.push(b)}}function r(y,b){if(!e)return null;for(;b!==null;)t(y,b),b=b.sibling;return null}function n(y,b){for(y=new Map;b!==null;)b.key!==null?y.set(b.key,b):y.set(b.index,b),b=b.sibling;return y}function a(y,b){return y=Ef(y,b),y.index=0,y.sibling=null,y}function i(y,b,x){return y.index=x,e?(x=y.alternate,x!==null?(x=x.index,x<b?(y.flags|=2,b):x):(y.flags|=2,b)):(y.flags|=1048576,b)}function o(y){return e&&y.alternate===null&&(y.flags|=2),y}function l(y,b,x,F){return b===null||b.tag!==6?(b=r_(x,y.mode,F),b.return=y,b):(b=a(b,x),b.return=y,b)}function s(y,b,x,F){var S=x.type;return S===Hv?c(y,b,x.props.children,F,x.key):b!==null&&(b.elementType===S||typeof S==\"object\"&&S!==null&&S.$$typeof===Kd&&tj(S)===b.type)?(F=a(b,x.props),F.ref=p1(y,b,x),F.return=y,F):(F=JS(x.type,x.key,x.props,null,y.mode,F),F.ref=p1(y,b,x),F.return=y,F)}function u(y,b,x,F){return b===null||b.tag!==4||b.stateNode.containerInfo!==x.containerInfo||b.stateNode.implementation!==x.implementation?(b=n_(x,y.mode,F),b.return=y,b):(b=a(b,x.children||[]),b.return=y,b)}function c(y,b,x,F,S){return b===null||b.tag!==7?(b=Cp(x,y.mode,F,S),b.return=y,b):(b=a(b,x),b.return=y,b)}function d(y,b,x){if(typeof b==\"string\"&&b!==\"\"||typeof b==\"number\")return b=r_(\"\"+b,y.mode,x),b.return=y,b;if(typeof b==\"object\"&&b!==null){switch(b.$$typeof){case CC:return x=JS(b.type,b.key,b.props,null,y.mode,x),x.ref=p1(y,null,b),x.return=y,x;case zv:return b=n_(b,y.mode,x),b.return=y,b;case Kd:var F=b._init;return d(y,F(b._payload),x)}if(iy(b)||u1(b))return b=Cp(b,y.mode,x,null),b.return=y,b;RC(y,b)}return null}function f(y,b,x,F){var S=b!==null?b.key:null;if(typeof x==\"string\"&&x!==\"\"||typeof x==\"number\")return S!==null?null:l(y,b,\"\"+x,F);if(typeof x==\"object\"&&x!==null){switch(x.$$typeof){case CC:return x.key===S?s(y,b,x,F):null;case zv:return x.key===S?u(y,b,x,F):null;case Kd:return S=x._init,f(y,b,S(x._payload),F)}if(iy(x)||u1(x))return S!==null?null:c(y,b,x,F,null);RC(y,x)}return null}function h(y,b,x,F,S){if(typeof F==\"string\"&&F!==\"\"||typeof F==\"number\")return y=y.get(x)||null,l(b,y,\"\"+F,S);if(typeof F==\"object\"&&F!==null){switch(F.$$typeof){case CC:return y=y.get(F.key===null?x:F.key)||null,s(b,y,F,S);case zv:return y=y.get(F.key===null?x:F.key)||null,u(b,y,F,S);case Kd:var E=F._init;return h(y,b,x,E(F._payload),S)}if(iy(F)||u1(F))return y=y.get(x)||null,c(b,y,F,S,null);RC(b,F)}return null}function p(y,b,x,F){for(var S=null,E=null,w=b,D=b=0,A=null;w!==null&&D<x.length;D++){w.index>D?(A=w,w=null):A=w.sibling;var _=f(y,w,x[D],F);if(_===null){w===null&&(w=A);break}e&&w&&_.alternate===null&&t(y,w),b=i(_,b,D),E===null?S=_:E.sibling=_,E=_,w=A}if(D===x.length)return r(y,w),ca&&Hh(y,D),S;if(w===null){for(;D<x.length;D++)w=d(y,x[D],F),w!==null&&(b=i(w,b,D),E===null?S=w:E.sibling=w,E=w);return ca&&Hh(y,D),S}for(w=n(y,w);D<x.length;D++)A=h(w,y,D,x[D],F),A!==null&&(e&&A.alternate!==null&&w.delete(A.key===null?D:A.key),b=i(A,b,D),E===null?S=A:E.sibling=A,E=A);return e&&w.forEach(function(I){return t(y,I)}),ca&&Hh(y,D),S}function v(y,b,x,F){var S=u1(x);if(typeof S!=\"function\")throw Error(Mt(150));if(x=S.call(x),x==null)throw Error(Mt(151));for(var E=S=null,w=b,D=b=0,A=null,_=x.next();w!==null&&!_.done;D++,_=x.next()){w.index>D?(A=w,w=null):A=w.sibling;var I=f(y,w,_.value,F);if(I===null){w===null&&(w=A);break}e&&w&&I.alternate===null&&t(y,w),b=i(I,b,D),E===null?S=I:E.sibling=I,E=I,w=A}if(_.done)return r(y,w),ca&&Hh(y,D),S;if(w===null){for(;!_.done;D++,_=x.next())_=d(y,_.value,F),_!==null&&(b=i(_,b,D),E===null?S=_:E.sibling=_,E=_);return ca&&Hh(y,D),S}for(w=n(y,w);!_.done;D++,_=x.next())_=h(w,y,D,_.value,F),_!==null&&(e&&_.alternate!==null&&w.delete(_.key===null?D:_.key),b=i(_,b,D),E===null?S=_:E.sibling=_,E=_);return e&&w.forEach(function(M){return t(y,M)}),ca&&Hh(y,D),S}function g(y,b,x,F){if(typeof x==\"object\"&&x!==null&&x.type===Hv&&x.key===null&&(x=x.props.children),typeof x==\"object\"&&x!==null){switch(x.$$typeof){case CC:e:{for(var S=x.key,E=b;E!==null;){if(E.key===S){if(S=x.type,S===Hv){if(E.tag===7){r(y,E.sibling),b=a(E,x.props.children),b.return=y,y=b;break e}}else if(E.elementType===S||typeof S==\"object\"&&S!==null&&S.$$typeof===Kd&&tj(S)===E.type){r(y,E.sibling),b=a(E,x.props),b.ref=p1(y,E,x),b.return=y,y=b;break e}r(y,E);break}else t(y,E);E=E.sibling}x.type===Hv?(b=Cp(x.props.children,y.mode,F,x.key),b.return=y,y=b):(F=JS(x.type,x.key,x.props,null,y.mode,F),F.ref=p1(y,b,x),F.return=y,y=F)}return o(y);case zv:e:{for(E=x.key;b!==null;){if(b.key===E)if(b.tag===4&&b.stateNode.containerInfo===x.containerInfo&&b.stateNode.implementation===x.implementation){r(y,b.sibling),b=a(b,x.children||[]),b.return=y,y=b;break e}else{r(y,b);break}else t(y,b);b=b.sibling}b=n_(x,y.mode,F),b.return=y,y=b}return o(y);case Kd:return E=x._init,g(y,b,E(x._payload),F)}if(iy(x))return p(y,b,x,F);if(u1(x))return v(y,b,x,F);RC(y,x)}return typeof x==\"string\"&&x!==\"\"||typeof x==\"number\"?(x=\"\"+x,b!==null&&b.tag===6?(r(y,b.sibling),b=a(b,x),b.return=y,y=b):(r(y,b),b=r_(x,y.mode,F),b.return=y,y=b),o(y)):r(y,b)}return g}var B0=Ite(!0),kte=Ite(!1),aE=eh(null),iE=null,Xv=null,U9=null;function K9(){U9=Xv=iE=null}function Y9(e){var t=aE.current;ia(aE),e._currentValue=t}function o8(e,t,r){for(;e!==null;){var n=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,n!==null&&(n.childLanes|=t)):n!==null&&(n.childLanes&t)!==t&&(n.childLanes|=t),e===r)break;e=e.return}}function h0(e,t){iE=e,U9=Xv=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ll=!0),e.firstContext=null)}function xs(e){var t=e._currentValue;if(U9!==e)if(e={context:e,memoizedValue:t,next:null},Xv===null){if(iE===null)throw Error(Mt(308));Xv=e,iE.dependencies={lanes:0,firstContext:e}}else Xv=Xv.next=e;return t}var ip=null;function q9(e){ip===null?ip=[e]:ip.push(e)}function Rte(e,t,r,n){var a=t.interleaved;return a===null?(r.next=r,q9(t)):(r.next=a.next,a.next=r),t.interleaved=r,td(e,n)}function td(e,t){e.lanes|=t;var r=e.alternate;for(r!==null&&(r.lanes|=t),r=e,e=e.return;e!==null;)e.childLanes|=t,r=e.alternate,r!==null&&(r.childLanes|=t),r=e,e=e.return;return r.tag===3?r.stateNode:null}var Yd=!1;function X9(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Mte(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Gc(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ff(e,t,r){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,Sn&2){var a=n.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),n.pending=t,td(e,r)}return a=n.interleaved,a===null?(t.next=t,q9(n)):(t.next=a.next,a.next=t),n.interleaved=t,td(e,r)}function GS(e,t,r){if(t=t.updateQueue,t!==null&&(t=t.shared,(r&4194240)!==0)){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,O9(e,r)}}function rj(e,t){var r=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,r===n)){var a=null,i=null;if(r=r.firstBaseUpdate,r!==null){do{var o={eventTime:r.eventTime,lane:r.lane,tag:r.tag,payload:r.payload,callback:r.callback,next:null};i===null?a=i=o:i=i.next=o,r=r.next}while(r!==null);i===null?a=i=t:i=i.next=t}else a=i=t;r={baseState:n.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:n.shared,effects:n.effects},e.updateQueue=r;return}e=r.lastBaseUpdate,e===null?r.firstBaseUpdate=t:e.next=t,r.lastBaseUpdate=t}function oE(e,t,r,n){var a=e.updateQueue;Yd=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(l!==null){a.shared.pending=null;var s=l,u=s.next;s.next=null,o===null?i=u:o.next=u,o=s;var c=e.alternate;c!==null&&(c=c.updateQueue,l=c.lastBaseUpdate,l!==o&&(l===null?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(i!==null){var d=a.baseState;o=0,c=u=s=null,l=i;do{var f=l.lane,h=l.eventTime;if((n&f)===f){c!==null&&(c=c.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var p=e,v=l;switch(f=t,h=r,v.tag){case 1:if(p=v.payload,typeof p==\"function\"){d=p.call(h,d,f);break e}d=p;break e;case 3:p.flags=p.flags&-65537|128;case 0:if(p=v.payload,f=typeof p==\"function\"?p.call(h,d,f):p,f==null)break e;d=ya({},d,f);break e;case 2:Yd=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,f=a.effects,f===null?a.effects=[l]:f.push(l))}else h={eventTime:h,lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},c===null?(u=c=h,s=d):c=c.next=h,o|=f;if(l=l.next,l===null){if(l=a.shared.pending,l===null)break;f=l,l=f.next,f.next=null,a.lastBaseUpdate=f,a.shared.pending=null}}while(!0);if(c===null&&(s=d),a.baseState=s,a.firstBaseUpdate=u,a.lastBaseUpdate=c,t=a.shared.interleaved,t!==null){a=t;do o|=a.lane,a=a.next;while(a!==t)}else i===null&&(a.shared.lanes=0);Hp|=o,e.lanes=o,e.memoizedState=d}}function nj(e,t,r){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var n=e[t],a=n.callback;if(a!==null){if(n.callback=null,n=r,typeof a!=\"function\")throw Error(Mt(191,a));a.call(n)}}}var rx={},ec=eh(rx),Ob=eh(rx),Bb=eh(rx);function op(e){if(e===rx)throw Error(Mt(174));return e}function J9(e,t){switch(ta(Bb,t),ta(Ob,e),ta(ec,rx),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:jk(null,\"\");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=jk(t,e)}ia(ec),ta(ec,t)}function N0(){ia(ec),ia(Ob),ia(Bb)}function Pte(e){op(Bb.current);var t=op(ec.current),r=jk(t,e.type);t!==r&&(ta(Ob,e),ta(ec,r))}function Z9(e){Ob.current===e&&(ia(ec),ia(Ob))}var pa=eh(0);function lE(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data===\"$?\"||r.data===\"$!\"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var XA=[];function Q9(){for(var e=0;e<XA.length;e++)XA[e]._workInProgressVersionPrimary=null;XA.length=0}var US=bd.ReactCurrentDispatcher,JA=bd.ReactCurrentBatchConfig,zp=0,va=null,ai=null,Ci=null,sE=!1,Oy=!1,Nb=0,Xbe=0;function Zi(){throw Error(Mt(321))}function e7(e,t){if(t===null)return!1;for(var r=0;r<t.length&&r<e.length;r++)if(!pu(e[r],t[r]))return!1;return!0}function t7(e,t,r,n,a,i){if(zp=i,va=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,US.current=e===null||e.memoizedState===null?e2e:t2e,e=r(n,a),Oy){i=0;do{if(Oy=!1,Nb=0,25<=i)throw Error(Mt(301));i+=1,Ci=ai=null,t.updateQueue=null,US.current=r2e,e=r(n,a)}while(Oy)}if(US.current=uE,t=ai!==null&&ai.next!==null,zp=0,Ci=ai=va=null,sE=!1,t)throw Error(Mt(300));return e}function r7(){var e=Nb!==0;return Nb=0,e}function zu(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ci===null?va.memoizedState=Ci=e:Ci=Ci.next=e,Ci}function Cs(){if(ai===null){var e=va.alternate;e=e!==null?e.memoizedState:null}else e=ai.next;var t=Ci===null?va.memoizedState:Ci.next;if(t!==null)Ci=t,ai=e;else{if(e===null)throw Error(Mt(310));ai=e,e={memoizedState:ai.memoizedState,baseState:ai.baseState,baseQueue:ai.baseQueue,queue:ai.queue,next:null},Ci===null?va.memoizedState=Ci=e:Ci=Ci.next=e}return Ci}function $b(e,t){return typeof t==\"function\"?t(e):t}function ZA(e){var t=Cs(),r=t.queue;if(r===null)throw Error(Mt(311));r.lastRenderedReducer=e;var n=ai,a=n.baseQueue,i=r.pending;if(i!==null){if(a!==null){var o=a.next;a.next=i.next,i.next=o}n.baseQueue=a=i,r.pending=null}if(a!==null){i=a.next,n=n.baseState;var l=o=null,s=null,u=i;do{var c=u.lane;if((zp&c)===c)s!==null&&(s=s.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),n=u.hasEagerState?u.eagerState:e(n,u.action);else{var d={lane:c,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};s===null?(l=s=d,o=n):s=s.next=d,va.lanes|=c,Hp|=c}u=u.next}while(u!==null&&u!==i);s===null?o=n:s.next=l,pu(n,t.memoizedState)||(ll=!0),t.memoizedState=n,t.baseState=o,t.baseQueue=s,r.lastRenderedState=n}if(e=r.interleaved,e!==null){a=e;do i=a.lane,va.lanes|=i,Hp|=i,a=a.next;while(a!==e)}else a===null&&(r.lanes=0);return[t.memoizedState,r.dispatch]}function QA(e){var t=Cs(),r=t.queue;if(r===null)throw Error(Mt(311));r.lastRenderedReducer=e;var n=r.dispatch,a=r.pending,i=t.memoizedState;if(a!==null){r.pending=null;var o=a=a.next;do i=e(i,o.action),o=o.next;while(o!==a);pu(i,t.memoizedState)||(ll=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),r.lastRenderedState=i}return[i,n]}function Ote(){}function Bte(e,t){var r=va,n=Cs(),a=t(),i=!pu(n.memoizedState,a);if(i&&(n.memoizedState=a,ll=!0),n=n.queue,n7(Lte.bind(null,r,n,e),[e]),n.getSnapshot!==t||i||Ci!==null&&Ci.memoizedState.tag&1){if(r.flags|=2048,Lb(9,$te.bind(null,r,n,a,t),void 0,null),Ai===null)throw Error(Mt(349));zp&30||Nte(r,t,a)}return a}function Nte(e,t,r){e.flags|=16384,e={getSnapshot:t,value:r},t=va.updateQueue,t===null?(t={lastEffect:null,stores:null},va.updateQueue=t,t.stores=[e]):(r=t.stores,r===null?t.stores=[e]:r.push(e))}function $te(e,t,r,n){t.value=r,t.getSnapshot=n,jte(t)&&zte(e)}function Lte(e,t,r){return r(function(){jte(t)&&zte(e)})}function jte(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!pu(e,r)}catch{return!0}}function zte(e){var t=td(e,1);t!==null&&au(t,e,1,-1)}function aj(e){var t=zu();return typeof e==\"function\"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:$b,lastRenderedState:e},t.queue=e,e=e.dispatch=Qbe.bind(null,va,e),[t.memoizedState,e]}function Lb(e,t,r,n){return e={tag:e,create:t,destroy:r,deps:n,next:null},t=va.updateQueue,t===null?(t={lastEffect:null,stores:null},va.updateQueue=t,t.lastEffect=e.next=e):(r=t.lastEffect,r===null?t.lastEffect=e.next=e:(n=r.next,r.next=e,e.next=n,t.lastEffect=e)),e}function Hte(){return Cs().memoizedState}function KS(e,t,r,n){var a=zu();va.flags|=e,a.memoizedState=Lb(1|t,r,void 0,n===void 0?null:n)}function T4(e,t,r,n){var a=Cs();n=n===void 0?null:n;var i=void 0;if(ai!==null){var o=ai.memoizedState;if(i=o.destroy,n!==null&&e7(n,o.deps)){a.memoizedState=Lb(t,r,i,n);return}}va.flags|=e,a.memoizedState=Lb(1|t,r,i,n)}function ij(e,t){return KS(8390656,8,e,t)}function n7(e,t){return T4(2048,8,e,t)}function Vte(e,t){return T4(4,2,e,t)}function Wte(e,t){return T4(4,4,e,t)}function Gte(e,t){if(typeof t==\"function\")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Ute(e,t,r){return r=r!=null?r.concat([e]):null,T4(4,4,Gte.bind(null,t,e),r)}function a7(){}function Kte(e,t){var r=Cs();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&e7(t,n[1])?n[0]:(r.memoizedState=[e,t],e)}function Yte(e,t){var r=Cs();t=t===void 0?null:t;var n=r.memoizedState;return n!==null&&t!==null&&e7(t,n[1])?n[0]:(e=e(),r.memoizedState=[e,t],e)}function qte(e,t,r){return zp&21?(pu(r,t)||(r=ete(),va.lanes|=r,Hp|=r,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,ll=!0),e.memoizedState=r)}function Jbe(e,t){var r=Hn;Hn=r!==0&&4>r?r:4,e(!0);var n=JA.transition;JA.transition={};try{e(!1),t()}finally{Hn=r,JA.transition=n}}function Xte(){return Cs().memoizedState}function Zbe(e,t,r){var n=wf(e);if(r={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null},Jte(e))Zte(t,r);else if(r=Rte(e,t,r,n),r!==null){var a=Lo();au(r,e,n,a),Qte(r,t,n)}}function Qbe(e,t,r){var n=wf(e),a={lane:n,action:r,hasEagerState:!1,eagerState:null,next:null};if(Jte(e))Zte(t,a);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,r);if(a.hasEagerState=!0,a.eagerState=l,pu(l,o)){var s=t.interleaved;s===null?(a.next=a,q9(t)):(a.next=s.next,s.next=a),t.interleaved=a;return}}catch{}finally{}r=Rte(e,t,a,n),r!==null&&(a=Lo(),au(r,e,n,a),Qte(r,t,n))}}function Jte(e){var t=e.alternate;return e===va||t!==null&&t===va}function Zte(e,t){Oy=sE=!0;var r=e.pending;r===null?t.next=t:(t.next=r.next,r.next=t),e.pending=t}function Qte(e,t,r){if(r&4194240){var n=t.lanes;n&=e.pendingLanes,r|=n,t.lanes=r,O9(e,r)}}var uE={readContext:xs,useCallback:Zi,useContext:Zi,useEffect:Zi,useImperativeHandle:Zi,useInsertionEffect:Zi,useLayoutEffect:Zi,useMemo:Zi,useReducer:Zi,useRef:Zi,useState:Zi,useDebugValue:Zi,useDeferredValue:Zi,useTransition:Zi,useMutableSource:Zi,useSyncExternalStore:Zi,useId:Zi,unstable_isNewReconciler:!1},e2e={readContext:xs,useCallback:function(e,t){return zu().memoizedState=[e,t===void 0?null:t],e},useContext:xs,useEffect:ij,useImperativeHandle:function(e,t,r){return r=r!=null?r.concat([e]):null,KS(4194308,4,Gte.bind(null,t,e),r)},useLayoutEffect:function(e,t){return KS(4194308,4,e,t)},useInsertionEffect:function(e,t){return KS(4,2,e,t)},useMemo:function(e,t){var r=zu();return t=t===void 0?null:t,e=e(),r.memoizedState=[e,t],e},useReducer:function(e,t,r){var n=zu();return t=r!==void 0?r(t):t,n.memoizedState=n.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},n.queue=e,e=e.dispatch=Zbe.bind(null,va,e),[n.memoizedState,e]},useRef:function(e){var t=zu();return e={current:e},t.memoizedState=e},useState:aj,useDebugValue:a7,useDeferredValue:function(e){return zu().memoizedState=e},useTransition:function(){var e=aj(!1),t=e[0];return e=Jbe.bind(null,e[1]),zu().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var n=va,a=zu();if(ca){if(r===void 0)throw Error(Mt(407));r=r()}else{if(r=t(),Ai===null)throw Error(Mt(349));zp&30||Nte(n,t,r)}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,ij(Lte.bind(null,n,i,e),[e]),n.flags|=2048,Lb(9,$te.bind(null,n,i,r,t),void 0,null),r},useId:function(){var e=zu(),t=Ai.identifierPrefix;if(ca){var r=$c,n=Nc;r=(n&~(1<<32-nu(n)-1)).toString(32)+r,t=\":\"+t+\"R\"+r,r=Nb++,0<r&&(t+=\"H\"+r.toString(32)),t+=\":\"}else r=Xbe++,t=\":\"+t+\"r\"+r.toString(32)+\":\";return e.memoizedState=t},unstable_isNewReconciler:!1},t2e={readContext:xs,useCallback:Kte,useContext:xs,useEffect:n7,useImperativeHandle:Ute,useInsertionEffect:Vte,useLayoutEffect:Wte,useMemo:Yte,useReducer:ZA,useRef:Hte,useState:function(){return ZA($b)},useDebugValue:a7,useDeferredValue:function(e){var t=Cs();return qte(t,ai.memoizedState,e)},useTransition:function(){var e=ZA($b)[0],t=Cs().memoizedState;return[e,t]},useMutableSource:Ote,useSyncExternalStore:Bte,useId:Xte,unstable_isNewReconciler:!1},r2e={readContext:xs,useCallback:Kte,useContext:xs,useEffect:n7,useImperativeHandle:Ute,useInsertionEffect:Vte,useLayoutEffect:Wte,useMemo:Yte,useReducer:QA,useRef:Hte,useState:function(){return QA($b)},useDebugValue:a7,useDeferredValue:function(e){var t=Cs();return ai===null?t.memoizedState=e:qte(t,ai.memoizedState,e)},useTransition:function(){var e=QA($b)[0],t=Cs().memoizedState;return[e,t]},useMutableSource:Ote,useSyncExternalStore:Bte,useId:Xte,unstable_isNewReconciler:!1};function Ks(e,t){if(e&&e.defaultProps){t=ya({},t),e=e.defaultProps;for(var r in e)t[r]===void 0&&(t[r]=e[r]);return t}return t}function l8(e,t,r,n){t=e.memoizedState,r=r(n,t),r=r==null?t:ya({},t,r),e.memoizedState=r,e.lanes===0&&(e.updateQueue.baseState=r)}var I4={isMounted:function(e){return(e=e._reactInternals)?fm(e)===e:!1},enqueueSetState:function(e,t,r){e=e._reactInternals;var n=Lo(),a=wf(e),i=Gc(n,a);i.payload=t,r!=null&&(i.callback=r),t=Ff(e,i,a),t!==null&&(au(t,e,a,n),GS(t,e,a))},enqueueReplaceState:function(e,t,r){e=e._reactInternals;var n=Lo(),a=wf(e),i=Gc(n,a);i.tag=1,i.payload=t,r!=null&&(i.callback=r),t=Ff(e,i,a),t!==null&&(au(t,e,a,n),GS(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var r=Lo(),n=wf(e),a=Gc(r,n);a.tag=2,t!=null&&(a.callback=t),t=Ff(e,a,n),t!==null&&(au(t,e,n,r),GS(t,e,n))}};function oj(e,t,r,n,a,i,o){return e=e.stateNode,typeof e.shouldComponentUpdate==\"function\"?e.shouldComponentUpdate(n,i,o):t.prototype&&t.prototype.isPureReactComponent?!kb(r,n)||!kb(a,i):!0}function ere(e,t,r){var n=!1,a=Nf,i=t.contextType;return typeof i==\"object\"&&i!==null?i=xs(i):(a=ul(t)?Lp:Co.current,n=t.contextTypes,i=(n=n!=null)?P0(e,a):Nf),t=new t(r,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=I4,e.stateNode=t,t._reactInternals=e,n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=i),t}function lj(e,t,r,n){e=t.state,typeof t.componentWillReceiveProps==\"function\"&&t.componentWillReceiveProps(r,n),typeof t.UNSAFE_componentWillReceiveProps==\"function\"&&t.UNSAFE_componentWillReceiveProps(r,n),t.state!==e&&I4.enqueueReplaceState(t,t.state,null)}function s8(e,t,r,n){var a=e.stateNode;a.props=r,a.state=e.memoizedState,a.refs={},X9(e);var i=t.contextType;typeof i==\"object\"&&i!==null?a.context=xs(i):(i=ul(t)?Lp:Co.current,a.context=P0(e,i)),a.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i==\"function\"&&(l8(e,t,i,r),a.state=e.memoizedState),typeof t.getDerivedStateFromProps==\"function\"||typeof a.getSnapshotBeforeUpdate==\"function\"||typeof a.UNSAFE_componentWillMount!=\"function\"&&typeof a.componentWillMount!=\"function\"||(t=a.state,typeof a.componentWillMount==\"function\"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==\"function\"&&a.UNSAFE_componentWillMount(),t!==a.state&&I4.enqueueReplaceState(a,a.state,null),oE(e,r,a,n),a.state=e.memoizedState),typeof a.componentDidMount==\"function\"&&(e.flags|=4194308)}function $0(e,t){try{var r=\"\",n=t;do r+=Iye(n),n=n.return;while(n);var a=r}catch(i){a=`\nError generating stack: `+i.message+`\n`+i.stack}return{value:e,source:t,stack:a,digest:null}}function e_(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function u8(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var n2e=typeof WeakMap==\"function\"?WeakMap:Map;function tre(e,t,r){r=Gc(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){dE||(dE=!0,b8=n),u8(e,t)},r}function rre(e,t,r){r=Gc(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n==\"function\"){var a=t.value;r.payload=function(){return n(a)},r.callback=function(){u8(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch==\"function\"&&(r.callback=function(){u8(e,t),typeof n!=\"function\"&&(Sf===null?Sf=new Set([this]):Sf.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:\"\"})}),r}function sj(e,t,r){var n=e.pingCache;if(n===null){n=e.pingCache=new n2e;var a=new Set;n.set(t,a)}else a=n.get(t),a===void 0&&(a=new Set,n.set(t,a));a.has(r)||(a.add(r),e=g2e.bind(null,e,t,r),t.then(e,e))}function uj(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function cj(e,t,r,n,a){return e.mode&1?(e.flags|=65536,e.lanes=a,e):(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=Gc(-1,1),t.tag=2,Ff(r,t,1))),r.lanes|=1),e)}var a2e=bd.ReactCurrentOwner,ll=!1;function ko(e,t,r,n){t.child=e===null?kte(t,null,r,n):B0(t,e.child,r,n)}function dj(e,t,r,n,a){r=r.render;var i=t.ref;return h0(t,a),n=t7(e,t,r,n,i,a),r=r7(),e!==null&&!ll?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,rd(e,t,a)):(ca&&r&&V9(t),t.flags|=1,ko(e,t,n,a),t.child)}function fj(e,t,r,n,a){if(e===null){var i=r.type;return typeof i==\"function\"&&!f7(i)&&i.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=i,nre(e,t,i,n,a)):(e=JS(r.type,null,n,t,t.mode,a),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&a)){var o=i.memoizedProps;if(r=r.compare,r=r!==null?r:kb,r(o,n)&&e.ref===t.ref)return rd(e,t,a)}return t.flags|=1,e=Ef(i,n),e.ref=t.ref,e.return=t,t.child=e}function nre(e,t,r,n,a){if(e!==null){var i=e.memoizedProps;if(kb(i,n)&&e.ref===t.ref)if(ll=!1,t.pendingProps=n=i,(e.lanes&a)!==0)e.flags&131072&&(ll=!0);else return t.lanes=e.lanes,rd(e,t,a)}return c8(e,t,r,n,a)}function are(e,t,r){var n=t.pendingProps,a=n.children,i=e!==null?e.memoizedState:null;if(n.mode===\"hidden\")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},ta(Zv,wl),wl|=r;else{if(!(r&1073741824))return e=i!==null?i.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,ta(Zv,wl),wl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},n=i!==null?i.baseLanes:r,ta(Zv,wl),wl|=n}else i!==null?(n=i.baseLanes|r,t.memoizedState=null):n=r,ta(Zv,wl),wl|=n;return ko(e,t,a,r),t.child}function ire(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function c8(e,t,r,n,a){var i=ul(r)?Lp:Co.current;return i=P0(t,i),h0(t,a),r=t7(e,t,r,n,i,a),n=r7(),e!==null&&!ll?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,rd(e,t,a)):(ca&&n&&V9(t),t.flags|=1,ko(e,t,r,a),t.child)}function hj(e,t,r,n,a){if(ul(r)){var i=!0;tE(t)}else i=!1;if(h0(t,a),t.stateNode===null)YS(e,t),ere(t,r,n),s8(t,r,n,a),n=!0;else if(e===null){var o=t.stateNode,l=t.memoizedProps;o.props=l;var s=o.context,u=r.contextType;typeof u==\"object\"&&u!==null?u=xs(u):(u=ul(r)?Lp:Co.current,u=P0(t,u));var c=r.getDerivedStateFromProps,d=typeof c==\"function\"||typeof o.getSnapshotBeforeUpdate==\"function\";d||typeof o.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof o.componentWillReceiveProps!=\"function\"||(l!==n||s!==u)&&lj(t,o,n,u),Yd=!1;var f=t.memoizedState;o.state=f,oE(t,n,o,a),s=t.memoizedState,l!==n||f!==s||sl.current||Yd?(typeof c==\"function\"&&(l8(t,r,c,n),s=t.memoizedState),(l=Yd||oj(t,r,l,n,f,s,u))?(d||typeof o.UNSAFE_componentWillMount!=\"function\"&&typeof o.componentWillMount!=\"function\"||(typeof o.componentWillMount==\"function\"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount==\"function\"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount==\"function\"&&(t.flags|=4194308)):(typeof o.componentDidMount==\"function\"&&(t.flags|=4194308),t.memoizedProps=n,t.memoizedState=s),o.props=n,o.state=s,o.context=u,n=l):(typeof o.componentDidMount==\"function\"&&(t.flags|=4194308),n=!1)}else{o=t.stateNode,Mte(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Ks(t.type,l),o.props=u,d=t.pendingProps,f=o.context,s=r.contextType,typeof s==\"object\"&&s!==null?s=xs(s):(s=ul(r)?Lp:Co.current,s=P0(t,s));var h=r.getDerivedStateFromProps;(c=typeof h==\"function\"||typeof o.getSnapshotBeforeUpdate==\"function\")||typeof o.UNSAFE_componentWillReceiveProps!=\"function\"&&typeof o.componentWillReceiveProps!=\"function\"||(l!==d||f!==s)&&lj(t,o,n,s),Yd=!1,f=t.memoizedState,o.state=f,oE(t,n,o,a);var p=t.memoizedState;l!==d||f!==p||sl.current||Yd?(typeof h==\"function\"&&(l8(t,r,h,n),p=t.memoizedState),(u=Yd||oj(t,r,u,n,f,p,s)||!1)?(c||typeof o.UNSAFE_componentWillUpdate!=\"function\"&&typeof o.componentWillUpdate!=\"function\"||(typeof o.componentWillUpdate==\"function\"&&o.componentWillUpdate(n,p,s),typeof o.UNSAFE_componentWillUpdate==\"function\"&&o.UNSAFE_componentWillUpdate(n,p,s)),typeof o.componentDidUpdate==\"function\"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate==\"function\"&&(t.flags|=1024)):(typeof o.componentDidUpdate!=\"function\"||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=\"function\"||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=n,t.memoizedState=p),o.props=n,o.state=p,o.context=s,n=u):(typeof o.componentDidUpdate!=\"function\"||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=\"function\"||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),n=!1)}return d8(e,t,r,n,i,a)}function d8(e,t,r,n,a,i){ire(e,t);var o=(t.flags&128)!==0;if(!n&&!o)return a&&ZL(t,r,!1),rd(e,t,i);n=t.stateNode,a2e.current=t;var l=o&&typeof r.getDerivedStateFromError!=\"function\"?null:n.render();return t.flags|=1,e!==null&&o?(t.child=B0(t,e.child,null,i),t.child=B0(t,null,l,i)):ko(e,t,l,i),t.memoizedState=n.state,a&&ZL(t,r,!0),t.child}function ore(e){var t=e.stateNode;t.pendingContext?JL(e,t.pendingContext,t.pendingContext!==t.context):t.context&&JL(e,t.context,!1),J9(e,t.containerInfo)}function pj(e,t,r,n,a){return O0(),G9(a),t.flags|=256,ko(e,t,r,n),t.child}var f8={dehydrated:null,treeContext:null,retryLane:0};function h8(e){return{baseLanes:e,cachePool:null,transitions:null}}function lre(e,t,r){var n=t.pendingProps,a=pa.current,i=!1,o=(t.flags&128)!==0,l;if((l=o)||(l=e!==null&&e.memoizedState===null?!1:(a&2)!==0),l?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(a|=1),ta(pa,a&1),e===null)return i8(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data===\"$!\"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=n.children,e=n.fallback,i?(n=t.mode,i=t.child,o={mode:\"hidden\",children:o},!(n&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=M4(o,n,0,null),e=Cp(e,n,r,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=h8(r),t.memoizedState=f8,e):i7(t,o));if(a=e.memoizedState,a!==null&&(l=a.dehydrated,l!==null))return i2e(e,t,o,n,l,a,r);if(i){i=n.fallback,o=t.mode,a=e.child,l=a.sibling;var s={mode:\"hidden\",children:n.children};return!(o&1)&&t.child!==a?(n=t.child,n.childLanes=0,n.pendingProps=s,t.deletions=null):(n=Ef(a,s),n.subtreeFlags=a.subtreeFlags&14680064),l!==null?i=Ef(l,i):(i=Cp(i,o,r,null),i.flags|=2),i.return=t,n.return=t,n.sibling=i,t.child=n,n=i,i=t.child,o=e.child.memoizedState,o=o===null?h8(r):{baseLanes:o.baseLanes|r,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~r,t.memoizedState=f8,n}return i=e.child,e=i.sibling,n=Ef(i,{mode:\"visible\",children:n.children}),!(t.mode&1)&&(n.lanes=r),n.return=t,n.sibling=null,e!==null&&(r=t.deletions,r===null?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n}function i7(e,t){return t=M4({mode:\"visible\",children:t},e.mode,0,null),t.return=e,e.child=t}function MC(e,t,r,n){return n!==null&&G9(n),B0(t,e.child,null,r),e=i7(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function i2e(e,t,r,n,a,i,o){if(r)return t.flags&256?(t.flags&=-257,n=e_(Error(Mt(422))),MC(e,t,o,n)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=n.fallback,a=t.mode,n=M4({mode:\"visible\",children:n.children},a,0,null),i=Cp(i,a,o,null),i.flags|=2,n.return=t,i.return=t,n.sibling=i,t.child=n,t.mode&1&&B0(t,e.child,null,o),t.child.memoizedState=h8(o),t.memoizedState=f8,i);if(!(t.mode&1))return MC(e,t,o,null);if(a.data===\"$!\"){if(n=a.nextSibling&&a.nextSibling.dataset,n)var l=n.dgst;return n=l,i=Error(Mt(419)),n=e_(i,n,void 0),MC(e,t,o,n)}if(l=(o&e.childLanes)!==0,ll||l){if(n=Ai,n!==null){switch(o&-o){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}a=a&(n.suspendedLanes|o)?0:a,a!==0&&a!==i.retryLane&&(i.retryLane=a,td(e,a),au(n,e,a,-1))}return d7(),n=e_(Error(Mt(421))),MC(e,t,o,n)}return a.data===\"$?\"?(t.flags|=128,t.child=e.child,t=y2e.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,Il=Cf(a.nextSibling),Ol=t,ca=!0,Js=null,e!==null&&(cs[ds++]=Nc,cs[ds++]=$c,cs[ds++]=jp,Nc=e.id,$c=e.overflow,jp=t),t=i7(t,n.children),t.flags|=4096,t)}function mj(e,t,r){e.lanes|=t;var n=e.alternate;n!==null&&(n.lanes|=t),o8(e.return,t,r)}function t_(e,t,r,n,a){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:n,tail:r,tailMode:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=n,i.tail=r,i.tailMode=a)}function sre(e,t,r){var n=t.pendingProps,a=n.revealOrder,i=n.tail;if(ko(e,t,n.children,r),n=pa.current,n&2)n=n&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&mj(e,r,t);else if(e.tag===19)mj(e,r,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}n&=1}if(ta(pa,n),!(t.mode&1))t.memoizedState=null;else switch(a){case\"forwards\":for(r=t.child,a=null;r!==null;)e=r.alternate,e!==null&&lE(e)===null&&(a=r),r=r.sibling;r=a,r===null?(a=t.child,t.child=null):(a=r.sibling,r.sibling=null),t_(t,!1,a,r,i);break;case\"backwards\":for(r=null,a=t.child,t.child=null;a!==null;){if(e=a.alternate,e!==null&&lE(e)===null){t.child=a;break}e=a.sibling,a.sibling=r,r=a,a=e}t_(t,!0,r,null,i);break;case\"together\":t_(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function YS(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function rd(e,t,r){if(e!==null&&(t.dependencies=e.dependencies),Hp|=t.lanes,!(r&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(Mt(153));if(t.child!==null){for(e=t.child,r=Ef(e,e.pendingProps),t.child=r,r.return=t;e.sibling!==null;)e=e.sibling,r=r.sibling=Ef(e,e.pendingProps),r.return=t;r.sibling=null}return t.child}function o2e(e,t,r){switch(t.tag){case 3:ore(t),O0();break;case 5:Pte(t);break;case 1:ul(t.type)&&tE(t);break;case 4:J9(t,t.stateNode.containerInfo);break;case 10:var n=t.type._context,a=t.memoizedProps.value;ta(aE,n._currentValue),n._currentValue=a;break;case 13:if(n=t.memoizedState,n!==null)return n.dehydrated!==null?(ta(pa,pa.current&1),t.flags|=128,null):r&t.child.childLanes?lre(e,t,r):(ta(pa,pa.current&1),e=rd(e,t,r),e!==null?e.sibling:null);ta(pa,pa.current&1);break;case 19:if(n=(r&t.childLanes)!==0,e.flags&128){if(n)return sre(e,t,r);t.flags|=128}if(a=t.memoizedState,a!==null&&(a.rendering=null,a.tail=null,a.lastEffect=null),ta(pa,pa.current),n)break;return null;case 22:case 23:return t.lanes=0,are(e,t,r)}return rd(e,t,r)}var ure,p8,cre,dre;ure=function(e,t){for(var r=t.child;r!==null;){if(r.tag===5||r.tag===6)e.appendChild(r.stateNode);else if(r.tag!==4&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}};p8=function(){};cre=function(e,t,r,n){var a=e.memoizedProps;if(a!==n){e=t.stateNode,op(ec.current);var i=null;switch(r){case\"input\":a=Bk(e,a),n=Bk(e,n),i=[];break;case\"select\":a=ya({},a,{value:void 0}),n=ya({},n,{value:void 0}),i=[];break;case\"textarea\":a=Lk(e,a),n=Lk(e,n),i=[];break;default:typeof a.onClick!=\"function\"&&typeof n.onClick==\"function\"&&(e.onclick=Qw)}zk(r,n);var o;r=null;for(u in a)if(!n.hasOwnProperty(u)&&a.hasOwnProperty(u)&&a[u]!=null)if(u===\"style\"){var l=a[u];for(o in l)l.hasOwnProperty(o)&&(r||(r={}),r[o]=\"\")}else u!==\"dangerouslySetInnerHTML\"&&u!==\"children\"&&u!==\"suppressContentEditableWarning\"&&u!==\"suppressHydrationWarning\"&&u!==\"autoFocus\"&&(wb.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in n){var s=n[u];if(l=a!=null?a[u]:void 0,n.hasOwnProperty(u)&&s!==l&&(s!=null||l!=null))if(u===\"style\")if(l){for(o in l)!l.hasOwnProperty(o)||s&&s.hasOwnProperty(o)||(r||(r={}),r[o]=\"\");for(o in s)s.hasOwnProperty(o)&&l[o]!==s[o]&&(r||(r={}),r[o]=s[o])}else r||(i||(i=[]),i.push(u,r)),r=s;else u===\"dangerouslySetInnerHTML\"?(s=s?s.__html:void 0,l=l?l.__html:void 0,s!=null&&l!==s&&(i=i||[]).push(u,s)):u===\"children\"?typeof s!=\"string\"&&typeof s!=\"number\"||(i=i||[]).push(u,\"\"+s):u!==\"suppressContentEditableWarning\"&&u!==\"suppressHydrationWarning\"&&(wb.hasOwnProperty(u)?(s!=null&&u===\"onScroll\"&&aa(\"scroll\",e),i||l===s||(i=[])):(i=i||[]).push(u,s))}r&&(i=i||[]).push(\"style\",r);var u=i;(t.updateQueue=u)&&(t.flags|=4)}};dre=function(e,t,r,n){r!==n&&(t.flags|=4)};function m1(e,t){if(!ca)switch(e.tailMode){case\"hidden\":t=e.tail;for(var r=null;t!==null;)t.alternate!==null&&(r=t),t=t.sibling;r===null?e.tail=null:r.sibling=null;break;case\"collapsed\":r=e.tail;for(var n=null;r!==null;)r.alternate!==null&&(n=r),r=r.sibling;n===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:n.sibling=null}}function Qi(e){var t=e.alternate!==null&&e.alternate.child===e.child,r=0,n=0;if(t)for(var a=e.child;a!==null;)r|=a.lanes|a.childLanes,n|=a.subtreeFlags&14680064,n|=a.flags&14680064,a.return=e,a=a.sibling;else for(a=e.child;a!==null;)r|=a.lanes|a.childLanes,n|=a.subtreeFlags,n|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=n,e.childLanes=r,t}function l2e(e,t,r){var n=t.pendingProps;switch(W9(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Qi(t),null;case 1:return ul(t.type)&&eE(),Qi(t),null;case 3:return n=t.stateNode,N0(),ia(sl),ia(Co),Q9(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(kC(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Js!==null&&(F8(Js),Js=null))),p8(e,t),Qi(t),null;case 5:Z9(t);var a=op(Bb.current);if(r=t.type,e!==null&&t.stateNode!=null)cre(e,t,r,n,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!n){if(t.stateNode===null)throw Error(Mt(166));return Qi(t),null}if(e=op(ec.current),kC(t)){n=t.stateNode,r=t.type;var i=t.memoizedProps;switch(n[Wu]=t,n[Pb]=i,e=(t.mode&1)!==0,r){case\"dialog\":aa(\"cancel\",n),aa(\"close\",n);break;case\"iframe\":case\"object\":case\"embed\":aa(\"load\",n);break;case\"video\":case\"audio\":for(a=0;a<ly.length;a++)aa(ly[a],n);break;case\"source\":aa(\"error\",n);break;case\"img\":case\"image\":case\"link\":aa(\"error\",n),aa(\"load\",n);break;case\"details\":aa(\"toggle\",n);break;case\"input\":wL(n,i),aa(\"invalid\",n);break;case\"select\":n._wrapperState={wasMultiple:!!i.multiple},aa(\"invalid\",n);break;case\"textarea\":DL(n,i),aa(\"invalid\",n)}zk(r,i),a=null;for(var o in i)if(i.hasOwnProperty(o)){var l=i[o];o===\"children\"?typeof l==\"string\"?n.textContent!==l&&(i.suppressHydrationWarning!==!0&&IC(n.textContent,l,e),a=[\"children\",l]):typeof l==\"number\"&&n.textContent!==\"\"+l&&(i.suppressHydrationWarning!==!0&&IC(n.textContent,l,e),a=[\"children\",\"\"+l]):wb.hasOwnProperty(o)&&l!=null&&o===\"onScroll\"&&aa(\"scroll\",n)}switch(r){case\"input\":FC(n),EL(n,i,!0);break;case\"textarea\":FC(n),AL(n);break;case\"select\":case\"option\":break;default:typeof i.onClick==\"function\"&&(n.onclick=Qw)}n=a,t.updateQueue=n,n!==null&&(t.flags|=4)}else{o=a.nodeType===9?a:a.ownerDocument,e===\"http://www.w3.org/1999/xhtml\"&&(e=Lee(r)),e===\"http://www.w3.org/1999/xhtml\"?r===\"script\"?(e=o.createElement(\"div\"),e.innerHTML=\"<script><\\/script>\",e=e.removeChild(e.firstChild)):typeof n.is==\"string\"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r===\"select\"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[Wu]=t,e[Pb]=n,ure(e,t,!1,!1),t.stateNode=e;e:{switch(o=Hk(r,n),r){case\"dialog\":aa(\"cancel\",e),aa(\"close\",e),a=n;break;case\"iframe\":case\"object\":case\"embed\":aa(\"load\",e),a=n;break;case\"video\":case\"audio\":for(a=0;a<ly.length;a++)aa(ly[a],e);a=n;break;case\"source\":aa(\"error\",e),a=n;break;case\"img\":case\"image\":case\"link\":aa(\"error\",e),aa(\"load\",e),a=n;break;case\"details\":aa(\"toggle\",e),a=n;break;case\"input\":wL(e,n),a=Bk(e,n),aa(\"invalid\",e);break;case\"option\":a=n;break;case\"select\":e._wrapperState={wasMultiple:!!n.multiple},a=ya({},n,{value:void 0}),aa(\"invalid\",e);break;case\"textarea\":DL(e,n),a=Lk(e,n),aa(\"invalid\",e);break;default:a=n}zk(r,a),l=a;for(i in l)if(l.hasOwnProperty(i)){var s=l[i];i===\"style\"?Hee(e,s):i===\"dangerouslySetInnerHTML\"?(s=s?s.__html:void 0,s!=null&&jee(e,s)):i===\"children\"?typeof s==\"string\"?(r!==\"textarea\"||s!==\"\")&&Eb(e,s):typeof s==\"number\"&&Eb(e,\"\"+s):i!==\"suppressContentEditableWarning\"&&i!==\"suppressHydrationWarning\"&&i!==\"autoFocus\"&&(wb.hasOwnProperty(i)?s!=null&&i===\"onScroll\"&&aa(\"scroll\",e):s!=null&&T9(e,i,s,o))}switch(r){case\"input\":FC(e),EL(e,n,!1);break;case\"textarea\":FC(e),AL(e);break;case\"option\":n.value!=null&&e.setAttribute(\"value\",\"\"+Bf(n.value));break;case\"select\":e.multiple=!!n.multiple,i=n.value,i!=null?u0(e,!!n.multiple,i,!1):n.defaultValue!=null&&u0(e,!!n.multiple,n.defaultValue,!0);break;default:typeof a.onClick==\"function\"&&(e.onclick=Qw)}switch(r){case\"button\":case\"input\":case\"select\":case\"textarea\":n=!!n.autoFocus;break e;case\"img\":n=!0;break e;default:n=!1}}n&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Qi(t),null;case 6:if(e&&t.stateNode!=null)dre(e,t,e.memoizedProps,n);else{if(typeof n!=\"string\"&&t.stateNode===null)throw Error(Mt(166));if(r=op(Bb.current),op(ec.current),kC(t)){if(n=t.stateNode,r=t.memoizedProps,n[Wu]=t,(i=n.nodeValue!==r)&&(e=Ol,e!==null))switch(e.tag){case 3:IC(n.nodeValue,r,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&IC(n.nodeValue,r,(e.mode&1)!==0)}i&&(t.flags|=4)}else n=(r.nodeType===9?r:r.ownerDocument).createTextNode(n),n[Wu]=t,t.stateNode=n}return Qi(t),null;case 13:if(ia(pa),n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ca&&Il!==null&&t.mode&1&&!(t.flags&128))Tte(),O0(),t.flags|=98560,i=!1;else if(i=kC(t),n!==null&&n.dehydrated!==null){if(e===null){if(!i)throw Error(Mt(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(Mt(317));i[Wu]=t}else O0(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Qi(t),i=!1}else Js!==null&&(F8(Js),Js=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=r,t):(n=n!==null,n!==(e!==null&&e.memoizedState!==null)&&n&&(t.child.flags|=8192,t.mode&1&&(e===null||pa.current&1?li===0&&(li=3):d7())),t.updateQueue!==null&&(t.flags|=4),Qi(t),null);case 4:return N0(),p8(e,t),e===null&&Rb(t.stateNode.containerInfo),Qi(t),null;case 10:return Y9(t.type._context),Qi(t),null;case 17:return ul(t.type)&&eE(),Qi(t),null;case 19:if(ia(pa),i=t.memoizedState,i===null)return Qi(t),null;if(n=(t.flags&128)!==0,o=i.rendering,o===null)if(n)m1(i,!1);else{if(li!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=lE(e),o!==null){for(t.flags|=128,m1(i,!1),n=o.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),t.subtreeFlags=0,n=r,r=t.child;r!==null;)i=r,e=n,i.flags&=14680066,o=i.alternate,o===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,i.type=o.type,e=o.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return ta(pa,pa.current&1|2),t.child}e=e.sibling}i.tail!==null&&Pa()>L0&&(t.flags|=128,n=!0,m1(i,!1),t.lanes=4194304)}else{if(!n)if(e=lE(o),e!==null){if(t.flags|=128,n=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),m1(i,!0),i.tail===null&&i.tailMode===\"hidden\"&&!o.alternate&&!ca)return Qi(t),null}else 2*Pa()-i.renderingStartTime>L0&&r!==1073741824&&(t.flags|=128,n=!0,m1(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(r=i.last,r!==null?r.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Pa(),t.sibling=null,r=pa.current,ta(pa,n?r&1|2:r&1),t):(Qi(t),null);case 22:case 23:return c7(),n=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==n&&(t.flags|=8192),n&&t.mode&1?wl&1073741824&&(Qi(t),t.subtreeFlags&6&&(t.flags|=8192)):Qi(t),null;case 24:return null;case 25:return null}throw Error(Mt(156,t.tag))}function s2e(e,t){switch(W9(t),t.tag){case 1:return ul(t.type)&&eE(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return N0(),ia(sl),ia(Co),Q9(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Z9(t),null;case 13:if(ia(pa),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(Mt(340));O0()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ia(pa),null;case 4:return N0(),null;case 10:return Y9(t.type._context),null;case 22:case 23:return c7(),null;case 24:return null;default:return null}}var PC=!1,ho=!1,u2e=typeof WeakSet==\"function\"?WeakSet:Set,dr=null;function Jv(e,t){var r=e.ref;if(r!==null)if(typeof r==\"function\")try{r(null)}catch(n){wa(e,t,n)}else r.current=null}function m8(e,t,r){try{r()}catch(n){wa(e,t,n)}}var vj=!1;function c2e(e,t){if(Zk=Xw,e=vte(),H9(e)){if(\"selectionStart\"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{r=(r=e.ownerDocument)&&r.defaultView||window;var n=r.getSelection&&r.getSelection();if(n&&n.rangeCount!==0){r=n.anchorNode;var a=n.anchorOffset,i=n.focusNode;n=n.focusOffset;try{r.nodeType,i.nodeType}catch{r=null;break e}var o=0,l=-1,s=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var h;d!==r||a!==0&&d.nodeType!==3||(l=o+a),d!==i||n!==0&&d.nodeType!==3||(s=o+n),d.nodeType===3&&(o+=d.nodeValue.length),(h=d.firstChild)!==null;)f=d,d=h;for(;;){if(d===e)break t;if(f===r&&++u===a&&(l=o),f===i&&++c===n&&(s=o),(h=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=h}r=l===-1||s===-1?null:{start:l,end:s}}else r=null}r=r||{start:0,end:0}}else r=null;for(Qk={focusedElem:e,selectionRange:r},Xw=!1,dr=t;dr!==null;)if(t=dr,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,dr=e;else for(;dr!==null;){t=dr;try{var p=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(p!==null){var v=p.memoizedProps,g=p.memoizedState,y=t.stateNode,b=y.getSnapshotBeforeUpdate(t.elementType===t.type?v:Ks(t.type,v),g);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent=\"\":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(Mt(163))}}catch(F){wa(t,t.return,F)}if(e=t.sibling,e!==null){e.return=t.return,dr=e;break}dr=t.return}return p=vj,vj=!1,p}function By(e,t,r){var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var a=n=n.next;do{if((a.tag&e)===e){var i=a.destroy;a.destroy=void 0,i!==void 0&&m8(t,r,i)}a=a.next}while(a!==n)}}function k4(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var r=t=t.next;do{if((r.tag&e)===e){var n=r.create;r.destroy=n()}r=r.next}while(r!==t)}}function v8(e){var t=e.ref;if(t!==null){var r=e.stateNode;switch(e.tag){case 5:e=r;break;default:e=r}typeof t==\"function\"?t(e):t.current=e}}function fre(e){var t=e.alternate;t!==null&&(e.alternate=null,fre(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Wu],delete t[Pb],delete t[r8],delete t[Ube],delete t[Kbe])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function hre(e){return e.tag===5||e.tag===3||e.tag===4}function gj(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||hre(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function g8(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=Qw));else if(n!==4&&(e=e.child,e!==null))for(g8(e,t,r),e=e.sibling;e!==null;)g8(e,t,r),e=e.sibling}function y8(e,t,r){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(y8(e,t,r),e=e.sibling;e!==null;)y8(e,t,r),e=e.sibling}var Ni=null,qs=!1;function Ad(e,t,r){for(r=r.child;r!==null;)pre(e,t,r),r=r.sibling}function pre(e,t,r){if(Qu&&typeof Qu.onCommitFiberUnmount==\"function\")try{Qu.onCommitFiberUnmount(S4,r)}catch{}switch(r.tag){case 5:ho||Jv(r,t);case 6:var n=Ni,a=qs;Ni=null,Ad(e,t,r),Ni=n,qs=a,Ni!==null&&(qs?(e=Ni,r=r.stateNode,e.nodeType===8?e.parentNode.removeChild(r):e.removeChild(r)):Ni.removeChild(r.stateNode));break;case 18:Ni!==null&&(qs?(e=Ni,r=r.stateNode,e.nodeType===8?YA(e.parentNode,r):e.nodeType===1&&YA(e,r),Tb(e)):YA(Ni,r.stateNode));break;case 4:n=Ni,a=qs,Ni=r.stateNode.containerInfo,qs=!0,Ad(e,t,r),Ni=n,qs=a;break;case 0:case 11:case 14:case 15:if(!ho&&(n=r.updateQueue,n!==null&&(n=n.lastEffect,n!==null))){a=n=n.next;do{var i=a,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&m8(r,t,o),a=a.next}while(a!==n)}Ad(e,t,r);break;case 1:if(!ho&&(Jv(r,t),n=r.stateNode,typeof n.componentWillUnmount==\"function\"))try{n.props=r.memoizedProps,n.state=r.memoizedState,n.componentWillUnmount()}catch(l){wa(r,t,l)}Ad(e,t,r);break;case 21:Ad(e,t,r);break;case 22:r.mode&1?(ho=(n=ho)||r.memoizedState!==null,Ad(e,t,r),ho=n):Ad(e,t,r);break;default:Ad(e,t,r)}}function yj(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var r=e.stateNode;r===null&&(r=e.stateNode=new u2e),t.forEach(function(n){var a=b2e.bind(null,e,n);r.has(n)||(r.add(n),n.then(a,a))})}}function $s(e,t){var r=t.deletions;if(r!==null)for(var n=0;n<r.length;n++){var a=r[n];try{var i=e,o=t,l=o;e:for(;l!==null;){switch(l.tag){case 5:Ni=l.stateNode,qs=!1;break e;case 3:Ni=l.stateNode.containerInfo,qs=!0;break e;case 4:Ni=l.stateNode.containerInfo,qs=!0;break e}l=l.return}if(Ni===null)throw Error(Mt(160));pre(i,o,a),Ni=null,qs=!1;var s=a.alternate;s!==null&&(s.return=null),a.return=null}catch(u){wa(a,t,u)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)mre(t,e),t=t.sibling}function mre(e,t){var r=e.alternate,n=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if($s(t,e),Iu(e),n&4){try{By(3,e,e.return),k4(3,e)}catch(v){wa(e,e.return,v)}try{By(5,e,e.return)}catch(v){wa(e,e.return,v)}}break;case 1:$s(t,e),Iu(e),n&512&&r!==null&&Jv(r,r.return);break;case 5:if($s(t,e),Iu(e),n&512&&r!==null&&Jv(r,r.return),e.flags&32){var a=e.stateNode;try{Eb(a,\"\")}catch(v){wa(e,e.return,v)}}if(n&4&&(a=e.stateNode,a!=null)){var i=e.memoizedProps,o=r!==null?r.memoizedProps:i,l=e.type,s=e.updateQueue;if(e.updateQueue=null,s!==null)try{l===\"input\"&&i.type===\"radio\"&&i.name!=null&&Nee(a,i),Hk(l,o);var u=Hk(l,i);for(o=0;o<s.length;o+=2){var c=s[o],d=s[o+1];c===\"style\"?Hee(a,d):c===\"dangerouslySetInnerHTML\"?jee(a,d):c===\"children\"?Eb(a,d):T9(a,c,d,u)}switch(l){case\"input\":Nk(a,i);break;case\"textarea\":$ee(a,i);break;case\"select\":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var h=i.value;h!=null?u0(a,!!i.multiple,h,!1):f!==!!i.multiple&&(i.defaultValue!=null?u0(a,!!i.multiple,i.defaultValue,!0):u0(a,!!i.multiple,i.multiple?[]:\"\",!1))}a[Pb]=i}catch(v){wa(e,e.return,v)}}break;case 6:if($s(t,e),Iu(e),n&4){if(e.stateNode===null)throw Error(Mt(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(v){wa(e,e.return,v)}}break;case 3:if($s(t,e),Iu(e),n&4&&r!==null&&r.memoizedState.isDehydrated)try{Tb(t.containerInfo)}catch(v){wa(e,e.return,v)}break;case 4:$s(t,e),Iu(e);break;case 13:$s(t,e),Iu(e),a=e.child,a.flags&8192&&(i=a.memoizedState!==null,a.stateNode.isHidden=i,!i||a.alternate!==null&&a.alternate.memoizedState!==null||(s7=Pa())),n&4&&yj(e);break;case 22:if(c=r!==null&&r.memoizedState!==null,e.mode&1?(ho=(u=ho)||c,$s(t,e),ho=u):$s(t,e),Iu(e),n&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!c&&e.mode&1)for(dr=e,c=e.child;c!==null;){for(d=dr=c;dr!==null;){switch(f=dr,h=f.child,f.tag){case 0:case 11:case 14:case 15:By(4,f,f.return);break;case 1:Jv(f,f.return);var p=f.stateNode;if(typeof p.componentWillUnmount==\"function\"){n=f,r=f.return;try{t=n,p.props=t.memoizedProps,p.state=t.memoizedState,p.componentWillUnmount()}catch(v){wa(n,r,v)}}break;case 5:Jv(f,f.return);break;case 22:if(f.memoizedState!==null){xj(d);continue}}h!==null?(h.return=f,dr=h):xj(d)}c=c.sibling}e:for(c=null,d=e;;){if(d.tag===5){if(c===null){c=d;try{a=d.stateNode,u?(i=a.style,typeof i.setProperty==\"function\"?i.setProperty(\"display\",\"none\",\"important\"):i.display=\"none\"):(l=d.stateNode,s=d.memoizedProps.style,o=s!=null&&s.hasOwnProperty(\"display\")?s.display:null,l.style.display=zee(\"display\",o))}catch(v){wa(e,e.return,v)}}}else if(d.tag===6){if(c===null)try{d.stateNode.nodeValue=u?\"\":d.memoizedProps}catch(v){wa(e,e.return,v)}}else if((d.tag!==22&&d.tag!==23||d.memoizedState===null||d===e)&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===e)break e;for(;d.sibling===null;){if(d.return===null||d.return===e)break e;c===d&&(c=null),d=d.return}c===d&&(c=null),d.sibling.return=d.return,d=d.sibling}}break;case 19:$s(t,e),Iu(e),n&4&&yj(e);break;case 21:break;default:$s(t,e),Iu(e)}}function Iu(e){var t=e.flags;if(t&2){try{e:{for(var r=e.return;r!==null;){if(hre(r)){var n=r;break e}r=r.return}throw Error(Mt(160))}switch(n.tag){case 5:var a=n.stateNode;n.flags&32&&(Eb(a,\"\"),n.flags&=-33);var i=gj(e);y8(e,i,a);break;case 3:case 4:var o=n.stateNode.containerInfo,l=gj(e);g8(e,l,o);break;default:throw Error(Mt(161))}}catch(s){wa(e,e.return,s)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function d2e(e,t,r){dr=e,vre(e)}function vre(e,t,r){for(var n=(e.mode&1)!==0;dr!==null;){var a=dr,i=a.child;if(a.tag===22&&n){var o=a.memoizedState!==null||PC;if(!o){var l=a.alternate,s=l!==null&&l.memoizedState!==null||ho;l=PC;var u=ho;if(PC=o,(ho=s)&&!u)for(dr=a;dr!==null;)o=dr,s=o.child,o.tag===22&&o.memoizedState!==null?Cj(a):s!==null?(s.return=o,dr=s):Cj(a);for(;i!==null;)dr=i,vre(i),i=i.sibling;dr=a,PC=l,ho=u}bj(e)}else a.subtreeFlags&8772&&i!==null?(i.return=a,dr=i):bj(e)}}function bj(e){for(;dr!==null;){var t=dr;if(t.flags&8772){var r=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:ho||k4(5,t);break;case 1:var n=t.stateNode;if(t.flags&4&&!ho)if(r===null)n.componentDidMount();else{var a=t.elementType===t.type?r.memoizedProps:Ks(t.type,r.memoizedProps);n.componentDidUpdate(a,r.memoizedState,n.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&nj(t,i,n);break;case 3:var o=t.updateQueue;if(o!==null){if(r=null,t.child!==null)switch(t.child.tag){case 5:r=t.child.stateNode;break;case 1:r=t.child.stateNode}nj(t,o,r)}break;case 5:var l=t.stateNode;if(r===null&&t.flags&4){r=l;var s=t.memoizedProps;switch(t.type){case\"button\":case\"input\":case\"select\":case\"textarea\":s.autoFocus&&r.focus();break;case\"img\":s.src&&(r.src=s.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var c=u.memoizedState;if(c!==null){var d=c.dehydrated;d!==null&&Tb(d)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(Mt(163))}ho||t.flags&512&&v8(t)}catch(f){wa(t,t.return,f)}}if(t===e){dr=null;break}if(r=t.sibling,r!==null){r.return=t.return,dr=r;break}dr=t.return}}function xj(e){for(;dr!==null;){var t=dr;if(t===e){dr=null;break}var r=t.sibling;if(r!==null){r.return=t.return,dr=r;break}dr=t.return}}function Cj(e){for(;dr!==null;){var t=dr;try{switch(t.tag){case 0:case 11:case 15:var r=t.return;try{k4(4,t)}catch(s){wa(t,r,s)}break;case 1:var n=t.stateNode;if(typeof n.componentDidMount==\"function\"){var a=t.return;try{n.componentDidMount()}catch(s){wa(t,a,s)}}var i=t.return;try{v8(t)}catch(s){wa(t,i,s)}break;case 5:var o=t.return;try{v8(t)}catch(s){wa(t,o,s)}}}catch(s){wa(t,t.return,s)}if(t===e){dr=null;break}var l=t.sibling;if(l!==null){l.return=t.return,dr=l;break}dr=t.return}}var f2e=Math.ceil,cE=bd.ReactCurrentDispatcher,o7=bd.ReactCurrentOwner,ys=bd.ReactCurrentBatchConfig,Sn=0,Ai=null,Ya=null,Vi=0,wl=0,Zv=eh(0),li=0,jb=null,Hp=0,R4=0,l7=0,Ny=null,tl=null,s7=0,L0=1/0,Rc=null,dE=!1,b8=null,Sf=null,OC=!1,rf=null,fE=0,$y=0,x8=null,qS=-1,XS=0;function Lo(){return Sn&6?Pa():qS!==-1?qS:qS=Pa()}function wf(e){return e.mode&1?Sn&2&&Vi!==0?Vi&-Vi:qbe.transition!==null?(XS===0&&(XS=ete()),XS):(e=Hn,e!==0||(e=window.event,e=e===void 0?16:lte(e.type)),e):1}function au(e,t,r,n){if(50<$y)throw $y=0,x8=null,Error(Mt(185));Q2(e,r,n),(!(Sn&2)||e!==Ai)&&(e===Ai&&(!(Sn&2)&&(R4|=r),li===4&&Qd(e,Vi)),cl(e,n),r===1&&Sn===0&&!(t.mode&1)&&(L0=Pa()+500,_4&&th()))}function cl(e,t){var r=e.callbackNode;qye(e,t);var n=qw(e,e===Ai?Vi:0);if(n===0)r!==null&&IL(r),e.callbackNode=null,e.callbackPriority=0;else if(t=n&-n,e.callbackPriority!==t){if(r!=null&&IL(r),t===1)e.tag===0?Ybe(Fj.bind(null,e)):Dte(Fj.bind(null,e)),Wbe(function(){!(Sn&6)&&th()}),r=null;else{switch(tte(n)){case 1:r=P9;break;case 4:r=Zee;break;case 16:r=Yw;break;case 536870912:r=Qee;break;default:r=Yw}r=wre(r,gre.bind(null,e))}e.callbackPriority=t,e.callbackNode=r}}function gre(e,t){if(qS=-1,XS=0,Sn&6)throw Error(Mt(327));var r=e.callbackNode;if(p0()&&e.callbackNode!==r)return null;var n=qw(e,e===Ai?Vi:0);if(n===0)return null;if(n&30||n&e.expiredLanes||t)t=hE(e,n);else{t=n;var a=Sn;Sn|=2;var i=bre();(Ai!==e||Vi!==t)&&(Rc=null,L0=Pa()+500,xp(e,t));do try{m2e();break}catch(l){yre(e,l)}while(!0);K9(),cE.current=i,Sn=a,Ya!==null?t=0:(Ai=null,Vi=0,t=li)}if(t!==0){if(t===2&&(a=Kk(e),a!==0&&(n=a,t=C8(e,a))),t===1)throw r=jb,xp(e,0),Qd(e,n),cl(e,Pa()),r;if(t===6)Qd(e,n);else{if(a=e.current.alternate,!(n&30)&&!h2e(a)&&(t=hE(e,n),t===2&&(i=Kk(e),i!==0&&(n=i,t=C8(e,i))),t===1))throw r=jb,xp(e,0),Qd(e,n),cl(e,Pa()),r;switch(e.finishedWork=a,e.finishedLanes=n,t){case 0:case 1:throw Error(Mt(345));case 2:Vh(e,tl,Rc);break;case 3:if(Qd(e,n),(n&130023424)===n&&(t=s7+500-Pa(),10<t)){if(qw(e,0)!==0)break;if(a=e.suspendedLanes,(a&n)!==n){Lo(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=t8(Vh.bind(null,e,tl,Rc),t);break}Vh(e,tl,Rc);break;case 4:if(Qd(e,n),(n&4194240)===n)break;for(t=e.eventTimes,a=-1;0<n;){var o=31-nu(n);i=1<<o,o=t[o],o>a&&(a=o),n&=~i}if(n=a,n=Pa()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*f2e(n/1960))-n,10<n){e.timeoutHandle=t8(Vh.bind(null,e,tl,Rc),n);break}Vh(e,tl,Rc);break;case 5:Vh(e,tl,Rc);break;default:throw Error(Mt(329))}}}return cl(e,Pa()),e.callbackNode===r?gre.bind(null,e):null}function C8(e,t){var r=Ny;return e.current.memoizedState.isDehydrated&&(xp(e,t).flags|=256),e=hE(e,t),e!==2&&(t=tl,tl=r,t!==null&&F8(t)),e}function F8(e){tl===null?tl=e:tl.push.apply(tl,e)}function h2e(e){for(var t=e;;){if(t.flags&16384){var r=t.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var n=0;n<r.length;n++){var a=r[n],i=a.getSnapshot;a=a.value;try{if(!pu(i(),a))return!1}catch{return!1}}}if(r=t.child,t.subtreeFlags&16384&&r!==null)r.return=t,t=r;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Qd(e,t){for(t&=~l7,t&=~R4,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-nu(t),n=1<<r;e[r]=-1,t&=~n}}function Fj(e){if(Sn&6)throw Error(Mt(327));p0();var t=qw(e,0);if(!(t&1))return cl(e,Pa()),null;var r=hE(e,t);if(e.tag!==0&&r===2){var n=Kk(e);n!==0&&(t=n,r=C8(e,n))}if(r===1)throw r=jb,xp(e,0),Qd(e,t),cl(e,Pa()),r;if(r===6)throw Error(Mt(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Vh(e,tl,Rc),cl(e,Pa()),null}function u7(e,t){var r=Sn;Sn|=1;try{return e(t)}finally{Sn=r,Sn===0&&(L0=Pa()+500,_4&&th())}}function Vp(e){rf!==null&&rf.tag===0&&!(Sn&6)&&p0();var t=Sn;Sn|=1;var r=ys.transition,n=Hn;try{if(ys.transition=null,Hn=1,e)return e()}finally{Hn=n,ys.transition=r,Sn=t,!(Sn&6)&&th()}}function c7(){wl=Zv.current,ia(Zv)}function xp(e,t){e.finishedWork=null,e.finishedLanes=0;var r=e.timeoutHandle;if(r!==-1&&(e.timeoutHandle=-1,Vbe(r)),Ya!==null)for(r=Ya.return;r!==null;){var n=r;switch(W9(n),n.tag){case 1:n=n.type.childContextTypes,n!=null&&eE();break;case 3:N0(),ia(sl),ia(Co),Q9();break;case 5:Z9(n);break;case 4:N0();break;case 13:ia(pa);break;case 19:ia(pa);break;case 10:Y9(n.type._context);break;case 22:case 23:c7()}r=r.return}if(Ai=e,Ya=e=Ef(e.current,null),Vi=wl=t,li=0,jb=null,l7=R4=Hp=0,tl=Ny=null,ip!==null){for(t=0;t<ip.length;t++)if(r=ip[t],n=r.interleaved,n!==null){r.interleaved=null;var a=n.next,i=r.pending;if(i!==null){var o=i.next;i.next=a,n.next=o}r.pending=n}ip=null}return e}function yre(e,t){do{var r=Ya;try{if(K9(),US.current=uE,sE){for(var n=va.memoizedState;n!==null;){var a=n.queue;a!==null&&(a.pending=null),n=n.next}sE=!1}if(zp=0,Ci=ai=va=null,Oy=!1,Nb=0,o7.current=null,r===null||r.return===null){li=1,jb=t,Ya=null;break}e:{var i=e,o=r.return,l=r,s=t;if(t=Vi,l.flags|=32768,s!==null&&typeof s==\"object\"&&typeof s.then==\"function\"){var u=s,c=l,d=c.tag;if(!(c.mode&1)&&(d===0||d===11||d===15)){var f=c.alternate;f?(c.updateQueue=f.updateQueue,c.memoizedState=f.memoizedState,c.lanes=f.lanes):(c.updateQueue=null,c.memoizedState=null)}var h=uj(o);if(h!==null){h.flags&=-257,cj(h,o,l,i,t),h.mode&1&&sj(i,u,t),t=h,s=u;var p=t.updateQueue;if(p===null){var v=new Set;v.add(s),t.updateQueue=v}else p.add(s);break e}else{if(!(t&1)){sj(i,u,t),d7();break e}s=Error(Mt(426))}}else if(ca&&l.mode&1){var g=uj(o);if(g!==null){!(g.flags&65536)&&(g.flags|=256),cj(g,o,l,i,t),G9($0(s,l));break e}}i=s=$0(s,l),li!==4&&(li=2),Ny===null?Ny=[i]:Ny.push(i),i=o;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var y=tre(i,s,t);rj(i,y);break e;case 1:l=s;var b=i.type,x=i.stateNode;if(!(i.flags&128)&&(typeof b.getDerivedStateFromError==\"function\"||x!==null&&typeof x.componentDidCatch==\"function\"&&(Sf===null||!Sf.has(x)))){i.flags|=65536,t&=-t,i.lanes|=t;var F=rre(i,l,t);rj(i,F);break e}}i=i.return}while(i!==null)}Cre(r)}catch(S){t=S,Ya===r&&r!==null&&(Ya=r=r.return);continue}break}while(!0)}function bre(){var e=cE.current;return cE.current=uE,e===null?uE:e}function d7(){(li===0||li===3||li===2)&&(li=4),Ai===null||!(Hp&268435455)&&!(R4&268435455)||Qd(Ai,Vi)}function hE(e,t){var r=Sn;Sn|=2;var n=bre();(Ai!==e||Vi!==t)&&(Rc=null,xp(e,t));do try{p2e();break}catch(a){yre(e,a)}while(!0);if(K9(),Sn=r,cE.current=n,Ya!==null)throw Error(Mt(261));return Ai=null,Vi=0,li}function p2e(){for(;Ya!==null;)xre(Ya)}function m2e(){for(;Ya!==null&&!jye();)xre(Ya)}function xre(e){var t=Sre(e.alternate,e,wl);e.memoizedProps=e.pendingProps,t===null?Cre(e):Ya=t,o7.current=null}function Cre(e){var t=e;do{var r=t.alternate;if(e=t.return,t.flags&32768){if(r=s2e(r,t),r!==null){r.flags&=32767,Ya=r;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{li=6,Ya=null;return}}else if(r=l2e(r,t,wl),r!==null){Ya=r;return}if(t=t.sibling,t!==null){Ya=t;return}Ya=t=e}while(t!==null);li===0&&(li=5)}function Vh(e,t,r){var n=Hn,a=ys.transition;try{ys.transition=null,Hn=1,v2e(e,t,r,n)}finally{ys.transition=a,Hn=n}return null}function v2e(e,t,r,n){do p0();while(rf!==null);if(Sn&6)throw Error(Mt(327));r=e.finishedWork;var a=e.finishedLanes;if(r===null)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(Mt(177));e.callbackNode=null,e.callbackPriority=0;var i=r.lanes|r.childLanes;if(Xye(e,i),e===Ai&&(Ya=Ai=null,Vi=0),!(r.subtreeFlags&2064)&&!(r.flags&2064)||OC||(OC=!0,wre(Yw,function(){return p0(),null})),i=(r.flags&15990)!==0,r.subtreeFlags&15990||i){i=ys.transition,ys.transition=null;var o=Hn;Hn=1;var l=Sn;Sn|=4,o7.current=null,c2e(e,r),mre(r,e),Bbe(Qk),Xw=!!Zk,Qk=Zk=null,e.current=r,d2e(r),zye(),Sn=l,Hn=o,ys.transition=i}else e.current=r;if(OC&&(OC=!1,rf=e,fE=a),i=e.pendingLanes,i===0&&(Sf=null),Wye(r.stateNode),cl(e,Pa()),t!==null)for(n=e.onRecoverableError,r=0;r<t.length;r++)a=t[r],n(a.value,{componentStack:a.stack,digest:a.digest});if(dE)throw dE=!1,e=b8,b8=null,e;return fE&1&&e.tag!==0&&p0(),i=e.pendingLanes,i&1?e===x8?$y++:($y=0,x8=e):$y=0,th(),null}function p0(){if(rf!==null){var e=tte(fE),t=ys.transition,r=Hn;try{if(ys.transition=null,Hn=16>e?16:e,rf===null)var n=!1;else{if(e=rf,rf=null,fE=0,Sn&6)throw Error(Mt(331));var a=Sn;for(Sn|=4,dr=e.current;dr!==null;){var i=dr,o=i.child;if(dr.flags&16){var l=i.deletions;if(l!==null){for(var s=0;s<l.length;s++){var u=l[s];for(dr=u;dr!==null;){var c=dr;switch(c.tag){case 0:case 11:case 15:By(8,c,i)}var d=c.child;if(d!==null)d.return=c,dr=d;else for(;dr!==null;){c=dr;var f=c.sibling,h=c.return;if(fre(c),c===u){dr=null;break}if(f!==null){f.return=h,dr=f;break}dr=h}}}var p=i.alternate;if(p!==null){var v=p.child;if(v!==null){p.child=null;do{var g=v.sibling;v.sibling=null,v=g}while(v!==null)}}dr=i}}if(i.subtreeFlags&2064&&o!==null)o.return=i,dr=o;else e:for(;dr!==null;){if(i=dr,i.flags&2048)switch(i.tag){case 0:case 11:case 15:By(9,i,i.return)}var y=i.sibling;if(y!==null){y.return=i.return,dr=y;break e}dr=i.return}}var b=e.current;for(dr=b;dr!==null;){o=dr;var x=o.child;if(o.subtreeFlags&2064&&x!==null)x.return=o,dr=x;else e:for(o=b;dr!==null;){if(l=dr,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:k4(9,l)}}catch(S){wa(l,l.return,S)}if(l===o){dr=null;break e}var F=l.sibling;if(F!==null){F.return=l.return,dr=F;break e}dr=l.return}}if(Sn=a,th(),Qu&&typeof Qu.onPostCommitFiberRoot==\"function\")try{Qu.onPostCommitFiberRoot(S4,e)}catch{}n=!0}return n}finally{Hn=r,ys.transition=t}}return!1}function Sj(e,t,r){t=$0(r,t),t=tre(e,t,1),e=Ff(e,t,1),t=Lo(),e!==null&&(Q2(e,1,t),cl(e,t))}function wa(e,t,r){if(e.tag===3)Sj(e,e,r);else for(;t!==null;){if(t.tag===3){Sj(t,e,r);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError==\"function\"||typeof n.componentDidCatch==\"function\"&&(Sf===null||!Sf.has(n))){e=$0(r,e),e=rre(t,e,1),t=Ff(t,e,1),e=Lo(),t!==null&&(Q2(t,1,e),cl(t,e));break}}t=t.return}}function g2e(e,t,r){var n=e.pingCache;n!==null&&n.delete(t),t=Lo(),e.pingedLanes|=e.suspendedLanes&r,Ai===e&&(Vi&r)===r&&(li===4||li===3&&(Vi&130023424)===Vi&&500>Pa()-s7?xp(e,0):l7|=r),cl(e,t)}function Fre(e,t){t===0&&(e.mode&1?(t=EC,EC<<=1,!(EC&130023424)&&(EC=4194304)):t=1);var r=Lo();e=td(e,t),e!==null&&(Q2(e,t,r),cl(e,r))}function y2e(e){var t=e.memoizedState,r=0;t!==null&&(r=t.retryLane),Fre(e,r)}function b2e(e,t){var r=0;switch(e.tag){case 13:var n=e.stateNode,a=e.memoizedState;a!==null&&(r=a.retryLane);break;case 19:n=e.stateNode;break;default:throw Error(Mt(314))}n!==null&&n.delete(t),Fre(e,r)}var Sre;Sre=function(e,t,r){if(e!==null)if(e.memoizedProps!==t.pendingProps||sl.current)ll=!0;else{if(!(e.lanes&r)&&!(t.flags&128))return ll=!1,o2e(e,t,r);ll=!!(e.flags&131072)}else ll=!1,ca&&t.flags&1048576&&Ate(t,nE,t.index);switch(t.lanes=0,t.tag){case 2:var n=t.type;YS(e,t),e=t.pendingProps;var a=P0(t,Co.current);h0(t,r),a=t7(null,t,n,e,a,r);var i=r7();return t.flags|=1,typeof a==\"object\"&&a!==null&&typeof a.render==\"function\"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ul(n)?(i=!0,tE(t)):i=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,X9(t),a.updater=I4,t.stateNode=a,a._reactInternals=t,s8(t,n,e,r),t=d8(null,t,n,!0,i,r)):(t.tag=0,ca&&i&&V9(t),ko(null,t,a,r),t=t.child),t;case 16:n=t.elementType;e:{switch(YS(e,t),e=t.pendingProps,a=n._init,n=a(n._payload),t.type=n,a=t.tag=C2e(n),e=Ks(n,e),a){case 0:t=c8(null,t,n,e,r);break e;case 1:t=hj(null,t,n,e,r);break e;case 11:t=dj(null,t,n,e,r);break e;case 14:t=fj(null,t,n,Ks(n.type,e),r);break e}throw Error(Mt(306,n,\"\"))}return t;case 0:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ks(n,a),c8(e,t,n,a,r);case 1:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ks(n,a),hj(e,t,n,a,r);case 3:e:{if(ore(t),e===null)throw Error(Mt(387));n=t.pendingProps,i=t.memoizedState,a=i.element,Mte(e,t),oE(t,n,null,r);var o=t.memoizedState;if(n=o.element,i.isDehydrated)if(i={element:n,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){a=$0(Error(Mt(423)),t),t=pj(e,t,n,r,a);break e}else if(n!==a){a=$0(Error(Mt(424)),t),t=pj(e,t,n,r,a);break e}else for(Il=Cf(t.stateNode.containerInfo.firstChild),Ol=t,ca=!0,Js=null,r=kte(t,null,n,r),t.child=r;r;)r.flags=r.flags&-3|4096,r=r.sibling;else{if(O0(),n===a){t=rd(e,t,r);break e}ko(e,t,n,r)}t=t.child}return t;case 5:return Pte(t),e===null&&i8(t),n=t.type,a=t.pendingProps,i=e!==null?e.memoizedProps:null,o=a.children,e8(n,a)?o=null:i!==null&&e8(n,i)&&(t.flags|=32),ire(e,t),ko(e,t,o,r),t.child;case 6:return e===null&&i8(t),null;case 13:return lre(e,t,r);case 4:return J9(t,t.stateNode.containerInfo),n=t.pendingProps,e===null?t.child=B0(t,null,n,r):ko(e,t,n,r),t.child;case 11:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ks(n,a),dj(e,t,n,a,r);case 7:return ko(e,t,t.pendingProps,r),t.child;case 8:return ko(e,t,t.pendingProps.children,r),t.child;case 12:return ko(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(n=t.type._context,a=t.pendingProps,i=t.memoizedProps,o=a.value,ta(aE,n._currentValue),n._currentValue=o,i!==null)if(pu(i.value,o)){if(i.children===a.children&&!sl.current){t=rd(e,t,r);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var s=l.firstContext;s!==null;){if(s.context===n){if(i.tag===1){s=Gc(-1,r&-r),s.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?s.next=s:(s.next=c.next,c.next=s),u.pending=s}}i.lanes|=r,s=i.alternate,s!==null&&(s.lanes|=r),o8(i.return,r,t),l.lanes|=r;break}s=s.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(Mt(341));o.lanes|=r,l=o.alternate,l!==null&&(l.lanes|=r),o8(o,r,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}ko(e,t,a.children,r),t=t.child}return t;case 9:return a=t.type,n=t.pendingProps.children,h0(t,r),a=xs(a),n=n(a),t.flags|=1,ko(e,t,n,r),t.child;case 14:return n=t.type,a=Ks(n,t.pendingProps),a=Ks(n.type,a),fj(e,t,n,a,r);case 15:return nre(e,t,t.type,t.pendingProps,r);case 17:return n=t.type,a=t.pendingProps,a=t.elementType===n?a:Ks(n,a),YS(e,t),t.tag=1,ul(n)?(e=!0,tE(t)):e=!1,h0(t,r),ere(t,n,a),s8(t,n,a,r),d8(null,t,n,!0,e,r);case 19:return sre(e,t,r);case 22:return are(e,t,r)}throw Error(Mt(156,t.tag))};function wre(e,t){return Jee(e,t)}function x2e(e,t,r,n){this.tag=e,this.key=r,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=n,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ms(e,t,r,n){return new x2e(e,t,r,n)}function f7(e){return e=e.prototype,!(!e||!e.isReactComponent)}function C2e(e){if(typeof e==\"function\")return f7(e)?1:0;if(e!=null){if(e=e.$$typeof,e===k9)return 11;if(e===R9)return 14}return 2}function Ef(e,t){var r=e.alternate;return r===null?(r=ms(e.tag,t,e.key,e.mode),r.elementType=e.elementType,r.type=e.type,r.stateNode=e.stateNode,r.alternate=e,e.alternate=r):(r.pendingProps=t,r.type=e.type,r.flags=0,r.subtreeFlags=0,r.deletions=null),r.flags=e.flags&14680064,r.childLanes=e.childLanes,r.lanes=e.lanes,r.child=e.child,r.memoizedProps=e.memoizedProps,r.memoizedState=e.memoizedState,r.updateQueue=e.updateQueue,t=e.dependencies,r.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},r.sibling=e.sibling,r.index=e.index,r.ref=e.ref,r}function JS(e,t,r,n,a,i){var o=2;if(n=e,typeof e==\"function\")f7(e)&&(o=1);else if(typeof e==\"string\")o=5;else e:switch(e){case Hv:return Cp(r.children,a,i,t);case I9:o=8,a|=8;break;case Rk:return e=ms(12,r,t,a|2),e.elementType=Rk,e.lanes=i,e;case Mk:return e=ms(13,r,t,a),e.elementType=Mk,e.lanes=i,e;case Pk:return e=ms(19,r,t,a),e.elementType=Pk,e.lanes=i,e;case Pee:return M4(r,a,i,t);default:if(typeof e==\"object\"&&e!==null)switch(e.$$typeof){case Ree:o=10;break e;case Mee:o=9;break e;case k9:o=11;break e;case R9:o=14;break e;case Kd:o=16,n=null;break e}throw Error(Mt(130,e==null?e:typeof e,\"\"))}return t=ms(o,r,t,a),t.elementType=e,t.type=n,t.lanes=i,t}function Cp(e,t,r,n){return e=ms(7,e,n,t),e.lanes=r,e}function M4(e,t,r,n){return e=ms(22,e,n,t),e.elementType=Pee,e.lanes=r,e.stateNode={isHidden:!1},e}function r_(e,t,r){return e=ms(6,e,null,t),e.lanes=r,e}function n_(e,t,r){return t=ms(4,e.children!==null?e.children:[],e.key,t),t.lanes=r,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function F2e(e,t,r,n,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=NA(0),this.expirationTimes=NA(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=NA(0),this.identifierPrefix=n,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function h7(e,t,r,n,a,i,o,l,s){return e=new F2e(e,t,r,l,s),t===1?(t=1,i===!0&&(t|=8)):t=0,i=ms(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:n,isDehydrated:r,cache:null,transitions:null,pendingSuspenseBoundaries:null},X9(i),e}function S2e(e,t,r){var n=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:zv,key:n==null?null:\"\"+n,children:e,containerInfo:t,implementation:r}}function Ere(e){if(!e)return Nf;e=e._reactInternals;e:{if(fm(e)!==e||e.tag!==1)throw Error(Mt(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(ul(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(Mt(171))}if(e.tag===1){var r=e.type;if(ul(r))return Ete(e,r,t)}return t}function Dre(e,t,r,n,a,i,o,l,s){return e=h7(r,n,!0,e,a,i,o,l,s),e.context=Ere(null),r=e.current,n=Lo(),a=wf(r),i=Gc(n,a),i.callback=t??null,Ff(r,i,a),e.current.lanes=a,Q2(e,a,n),cl(e,n),e}function P4(e,t,r,n){var a=t.current,i=Lo(),o=wf(a);return r=Ere(r),t.context===null?t.context=r:t.pendingContext=r,t=Gc(i,o),t.payload={element:e},n=n===void 0?null:n,n!==null&&(t.callback=n),e=Ff(a,t,o),e!==null&&(au(e,a,o,i),GS(e,a,o)),o}function pE(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function wj(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var r=e.retryLane;e.retryLane=r!==0&&r<t?r:t}}function p7(e,t){wj(e,t),(e=e.alternate)&&wj(e,t)}function w2e(){return null}var Are=typeof reportError==\"function\"?reportError:function(e){console.error(e)};function m7(e){this._internalRoot=e}O4.prototype.render=m7.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(Mt(409));P4(e,t,null,null)};O4.prototype.unmount=m7.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Vp(function(){P4(null,e,null,null)}),t[ed]=null}};function O4(e){this._internalRoot=e}O4.prototype.unstable_scheduleHydration=function(e){if(e){var t=ate();e={blockedOn:null,target:e,priority:t};for(var r=0;r<Zd.length&&t!==0&&t<Zd[r].priority;r++);Zd.splice(r,0,e),r===0&&ote(e)}};function v7(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function B4(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==\" react-mount-point-unstable \"))}function Ej(){}function E2e(e,t,r,n,a){if(a){if(typeof n==\"function\"){var i=n;n=function(){var u=pE(o);i.call(u)}}var o=Dre(t,n,e,0,null,!1,!1,\"\",Ej);return e._reactRootContainer=o,e[ed]=o.current,Rb(e.nodeType===8?e.parentNode:e),Vp(),o}for(;a=e.lastChild;)e.removeChild(a);if(typeof n==\"function\"){var l=n;n=function(){var u=pE(s);l.call(u)}}var s=h7(e,0,!1,null,null,!1,!1,\"\",Ej);return e._reactRootContainer=s,e[ed]=s.current,Rb(e.nodeType===8?e.parentNode:e),Vp(function(){P4(t,s,r,n)}),s}function N4(e,t,r,n,a){var i=r._reactRootContainer;if(i){var o=i;if(typeof a==\"function\"){var l=a;a=function(){var s=pE(o);l.call(s)}}P4(t,o,e,a)}else o=E2e(r,t,e,a,n);return pE(o)}rte=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var r=oy(t.pendingLanes);r!==0&&(O9(t,r|1),cl(t,Pa()),!(Sn&6)&&(L0=Pa()+500,th()))}break;case 13:Vp(function(){var n=td(e,1);if(n!==null){var a=Lo();au(n,e,1,a)}}),p7(e,1)}};B9=function(e){if(e.tag===13){var t=td(e,134217728);if(t!==null){var r=Lo();au(t,e,134217728,r)}p7(e,134217728)}};nte=function(e){if(e.tag===13){var t=wf(e),r=td(e,t);if(r!==null){var n=Lo();au(r,e,t,n)}p7(e,t)}};ate=function(){return Hn};ite=function(e,t){var r=Hn;try{return Hn=e,t()}finally{Hn=r}};Wk=function(e,t,r){switch(t){case\"input\":if(Nk(e,r),t=r.name,r.type===\"radio\"&&t!=null){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+t)+'][type=\"radio\"]'),t=0;t<r.length;t++){var n=r[t];if(n!==e&&n.form===e.form){var a=A4(n);if(!a)throw Error(Mt(90));Bee(n),Nk(n,a)}}}break;case\"textarea\":$ee(e,r);break;case\"select\":t=r.value,t!=null&&u0(e,!!r.multiple,t,!1)}};Gee=u7;Uee=Vp;var D2e={usingClientEntryPoint:!1,Events:[tx,Uv,A4,Vee,Wee,u7]},v1={findFiberByHostInstance:ap,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"},A2e={bundleType:v1.bundleType,version:v1.version,rendererPackageName:v1.rendererPackageName,rendererConfig:v1.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:bd.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=qee(e),e===null?null:e.stateNode},findFiberByHostInstance:v1.findFiberByHostInstance||w2e,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<\"u\"){var BC=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!BC.isDisabled&&BC.supportsFiber)try{S4=BC.inject(A2e),Qu=BC}catch{}}zl.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=D2e;zl.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!v7(t))throw Error(Mt(200));return S2e(e,t,null,r)};zl.createRoot=function(e,t){if(!v7(e))throw Error(Mt(299));var r=!1,n=\"\",a=Are;return t!=null&&(t.unstable_strictMode===!0&&(r=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=h7(e,1,!1,null,null,r,!1,n,a),e[ed]=t.current,Rb(e.nodeType===8?e.parentNode:e),new m7(t)};zl.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render==\"function\"?Error(Mt(188)):(e=Object.keys(e).join(\",\"),Error(Mt(268,e)));return e=qee(t),e=e===null?null:e.stateNode,e};zl.flushSync=function(e){return Vp(e)};zl.hydrate=function(e,t,r){if(!B4(t))throw Error(Mt(200));return N4(null,e,t,!0,r)};zl.hydrateRoot=function(e,t,r){if(!v7(e))throw Error(Mt(405));var n=r!=null&&r.hydratedSources||null,a=!1,i=\"\",o=Are;if(r!=null&&(r.unstable_strictMode===!0&&(a=!0),r.identifierPrefix!==void 0&&(i=r.identifierPrefix),r.onRecoverableError!==void 0&&(o=r.onRecoverableError)),t=Dre(t,null,e,1,r??null,a,!1,i,o),e[ed]=t.current,Rb(e),n)for(e=0;e<n.length;e++)r=n[e],a=r._getVersion,a=a(r._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[r,a]:t.mutableSourceEagerHydrationData.push(r,a);return new O4(t)};zl.render=function(e,t,r){if(!B4(t))throw Error(Mt(200));return N4(null,e,t,!1,r)};zl.unmountComponentAtNode=function(e){if(!B4(e))throw Error(Mt(40));return e._reactRootContainer?(Vp(function(){N4(null,null,e,!1,function(){e._reactRootContainer=null,e[ed]=null})}),!0):!1};zl.unstable_batchedUpdates=u7;zl.unstable_renderSubtreeIntoContainer=function(e,t,r,n){if(!B4(r))throw Error(Mt(200));if(e==null||e._reactInternals===void 0)throw Error(Mt(38));return N4(e,t,r,!1,n)};zl.version=\"18.3.1-next-f1338f8080-20240426\";function _re(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>\"u\"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=\"function\"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_re)}catch(e){console.error(e)}}_re(),_ee.exports=zl;var Fs=_ee.exports;const zb=Yo(Fs),_2e=F9({__proto__:null,default:zb},[Fs]);var Dj=Fs;Ik.createRoot=Dj.createRoot,Ik.hydrateRoot=Dj.hydrateRoot;var Tre={exports:{}},Ire={};/**\n * @license React\n * use-sync-external-store-with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var nx=m;function T2e(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var I2e=typeof Object.is==\"function\"?Object.is:T2e,k2e=nx.useSyncExternalStore,R2e=nx.useRef,M2e=nx.useEffect,P2e=nx.useMemo,O2e=nx.useDebugValue;Ire.useSyncExternalStoreWithSelector=function(e,t,r,n,a){var i=R2e(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=P2e(function(){function s(h){if(!u){if(u=!0,c=h,h=n(h),a!==void 0&&o.hasValue){var p=o.value;if(a(p,h))return d=p}return d=h}if(p=d,I2e(c,h))return p;var v=n(h);return a!==void 0&&a(p,v)?(c=h,p):(c=h,d=v)}var u=!1,c,d,f=r===void 0?null:r;return[function(){return s(t())},f===null?void 0:function(){return s(f())}]},[t,r,n,a]);var l=k2e(e,i[0],i[1]);return M2e(function(){o.hasValue=!0,o.value=l},[l]),O2e(l),l};Tre.exports=Ire;var B2e=Tre.exports;function N2e(e){e()}function $2e(){let e=null,t=null;return{clear(){e=null,t=null},notify(){N2e(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const a=t={callback:r,next:null,prev:t};return a.prev?a.prev.next=a:e=a,function(){!n||e===null||(n=!1,a.next?a.next.prev=a.prev:t=a.prev,a.prev?a.prev.next=a.next:e=a.next)}}}}var Aj={notify(){},get:()=>[]};function L2e(e,t){let r,n=Aj,a=0,i=!1;function o(v){c();const g=n.subscribe(v);let y=!1;return()=>{y||(y=!0,g(),d())}}function l(){n.notify()}function s(){p.onStateChange&&p.onStateChange()}function u(){return i}function c(){a++,r||(r=e.subscribe(s),n=$2e())}function d(){a--,r&&a===0&&(r(),r=void 0,n.clear(),n=Aj)}function f(){i||(i=!0,c())}function h(){i&&(i=!1,d())}const p={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:f,tryUnsubscribe:h,getListeners:()=>n};return p}var j2e=()=>typeof window<\"u\"&&typeof window.document<\"u\"&&typeof window.document.createElement<\"u\",z2e=j2e(),H2e=()=>typeof navigator<\"u\"&&navigator.product===\"ReactNative\",V2e=H2e(),W2e=()=>z2e||V2e?m.useLayoutEffect:m.useEffect,G2e=W2e(),a_=Symbol.for(\"react-redux-context\"),i_=typeof globalThis<\"u\"?globalThis:{};function U2e(){if(!m.createContext)return{};const e=i_[a_]??(i_[a_]=new Map);let t=e.get(m.createContext);return t||(t=m.createContext(null),e.set(m.createContext,t)),t}var $f=U2e();function K2e(e){const{children:t,context:r,serverState:n,store:a}=e,i=m.useMemo(()=>{const s=L2e(a);return{store:a,subscription:s,getServerState:n?()=>n:void 0}},[a,n]),o=m.useMemo(()=>a.getState(),[a]);G2e(()=>{const{subscription:s}=i;return s.onStateChange=s.notifyNestedSubs,s.trySubscribe(),o!==a.getState()&&s.notifyNestedSubs(),()=>{s.tryUnsubscribe(),s.onStateChange=void 0}},[i,o]);const l=r||$f;return m.createElement(l.Provider,{value:i},t)}var Y2e=K2e;function g7(e=$f){return function(){return m.useContext(e)}}var kre=g7();function Rre(e=$f){const t=e===$f?kre:g7(e),r=()=>{const{store:n}=t();return n};return Object.assign(r,{withTypes:()=>r}),r}var q2e=Rre();function X2e(e=$f){const t=e===$f?q2e:Rre(e),r=()=>t().dispatch;return Object.assign(r,{withTypes:()=>r}),r}var J2e=X2e(),Z2e=(e,t)=>e===t;function Q2e(e=$f){const t=e===$f?kre:g7(e),r=(n,a={})=>{const{equalityFn:i=Z2e}=typeof a==\"function\"?{equalityFn:a}:a,o=t(),{store:l,subscription:s,getServerState:u}=o;m.useRef(!0);const c=m.useCallback({[n.name](f){return n(f)}}[n.name],[n]),d=B2e.useSyncExternalStoreWithSelector(s.addNestedSub,l.getState,u||l.getState,c,i);return m.useDebugValue(d),d};return Object.assign(r,{withTypes:()=>r}),r}var exe=Q2e(),Mre={exports:{}};/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/(function(e){(function(){var t={}.hasOwnProperty;function r(){for(var i=\"\",o=0;o<arguments.length;o++){var l=arguments[o];l&&(i=a(i,n(l)))}return i}function n(i){if(typeof i==\"string\"||typeof i==\"number\")return i;if(typeof i!=\"object\")return\"\";if(Array.isArray(i))return r.apply(null,i);if(i.toString!==Object.prototype.toString&&!i.toString.toString().includes(\"[native code]\"))return i.toString();var o=\"\";for(var l in i)t.call(i,l)&&i[l]&&(o=a(o,l));return o}function a(i,o){return o?i?i+\" \"+o:i+o:i}e.exports?(r.default=r,e.exports=r):window.classNames=r})()})(Mre);var txe=Mre.exports;const ne=Yo(txe);function Ce(){return Ce=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},Ce.apply(null,arguments)}function Nt(e){\"@babel/helpers - typeof\";return Nt=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},Nt(e)}var rxe=Symbol.for(\"react.element\"),nxe=Symbol.for(\"react.transitional.element\"),axe=Symbol.for(\"react.fragment\");function Pre(e){return e&&Nt(e)===\"object\"&&(e.$$typeof===rxe||e.$$typeof===nxe)&&e.type===axe}function ba(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=[];return le.Children.forEach(e,function(n){n==null&&!t.keepEmpty||(Array.isArray(n)?r=r.concat(ba(n)):Pre(n)&&n.props?r=r.concat(ba(n.props.children,t)):r.push(n))}),r}var S8={},ixe=function(t){};function oxe(e,t){}function lxe(e,t){}function sxe(){S8={}}function Ore(e,t,r){!t&&!S8[r]&&(e(!1,r),S8[r]=!0)}function jn(e,t){Ore(oxe,e,t)}function uxe(e,t){Ore(lxe,e,t)}jn.preMessage=ixe;jn.resetWarned=sxe;jn.noteOnce=uxe;function cxe(e,t){if(Nt(e)!=\"object\"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Nt(n)!=\"object\")return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(t===\"string\"?String:Number)(e)}function Bre(e){var t=cxe(e,\"string\");return Nt(t)==\"symbol\"?t:t+\"\"}function Z(e,t,r){return(t=Bre(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _j(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ae(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_j(Object(r),!0).forEach(function(n){Z(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_j(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Hb(e){return e instanceof HTMLElement||e instanceof SVGElement}function ax(e){return e&&Nt(e)===\"object\"&&Hb(e.nativeElement)?e.nativeElement:Hb(e)?e:null}function ZS(e){var t=ax(e);if(t)return t;if(e instanceof le.Component){var r;return(r=zb.findDOMNode)===null||r===void 0?void 0:r.call(zb,e)}return null}var Nre={exports:{}},Gn={};/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */var y7=Symbol.for(\"react.element\"),b7=Symbol.for(\"react.portal\"),$4=Symbol.for(\"react.fragment\"),L4=Symbol.for(\"react.strict_mode\"),j4=Symbol.for(\"react.profiler\"),z4=Symbol.for(\"react.provider\"),H4=Symbol.for(\"react.context\"),dxe=Symbol.for(\"react.server_context\"),V4=Symbol.for(\"react.forward_ref\"),W4=Symbol.for(\"react.suspense\"),G4=Symbol.for(\"react.suspense_list\"),U4=Symbol.for(\"react.memo\"),K4=Symbol.for(\"react.lazy\"),fxe=Symbol.for(\"react.offscreen\"),$re;$re=Symbol.for(\"react.module.reference\");function _s(e){if(typeof e==\"object\"&&e!==null){var t=e.$$typeof;switch(t){case y7:switch(e=e.type,e){case $4:case j4:case L4:case W4:case G4:return e;default:switch(e=e&&e.$$typeof,e){case dxe:case H4:case V4:case K4:case U4:case z4:return e;default:return t}}case b7:return t}}}Gn.ContextConsumer=H4;Gn.ContextProvider=z4;Gn.Element=y7;Gn.ForwardRef=V4;Gn.Fragment=$4;Gn.Lazy=K4;Gn.Memo=U4;Gn.Portal=b7;Gn.Profiler=j4;Gn.StrictMode=L4;Gn.Suspense=W4;Gn.SuspenseList=G4;Gn.isAsyncMode=function(){return!1};Gn.isConcurrentMode=function(){return!1};Gn.isContextConsumer=function(e){return _s(e)===H4};Gn.isContextProvider=function(e){return _s(e)===z4};Gn.isElement=function(e){return typeof e==\"object\"&&e!==null&&e.$$typeof===y7};Gn.isForwardRef=function(e){return _s(e)===V4};Gn.isFragment=function(e){return _s(e)===$4};Gn.isLazy=function(e){return _s(e)===K4};Gn.isMemo=function(e){return _s(e)===U4};Gn.isPortal=function(e){return _s(e)===b7};Gn.isProfiler=function(e){return _s(e)===j4};Gn.isStrictMode=function(e){return _s(e)===L4};Gn.isSuspense=function(e){return _s(e)===W4};Gn.isSuspenseList=function(e){return _s(e)===G4};Gn.isValidElementType=function(e){return typeof e==\"string\"||typeof e==\"function\"||e===$4||e===j4||e===L4||e===W4||e===G4||e===fxe||typeof e==\"object\"&&e!==null&&(e.$$typeof===K4||e.$$typeof===U4||e.$$typeof===z4||e.$$typeof===H4||e.$$typeof===V4||e.$$typeof===$re||e.getModuleId!==void 0)};Gn.typeOf=_s;Nre.exports=Gn;var o_=Nre.exports;function hm(e,t,r){var n=m.useRef({});return(!(\"value\"in n.current)||r(n.current.condition,t))&&(n.current.value=e(),n.current.condition=t),n.current.value}var hxe=Number(m.version.split(\".\")[0]),Vb=function(t,r){typeof t==\"function\"?t(r):Nt(t)===\"object\"&&t&&\"current\"in t&&(t.current=r)},Qa=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];var a=r.filter(Boolean);return a.length<=1?a[0]:function(i){r.forEach(function(o){Vb(o,i)})}},yc=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return hm(function(){return Qa.apply(void 0,r)},r,function(a,i){return a.length!==i.length||a.every(function(o,l){return o!==i[l]})})},mu=function(t){var r,n;if(!t)return!1;if(x7(t)&&hxe>=19)return!0;var a=o_.isMemo(t)?t.type.type:t.type;return!(typeof a==\"function\"&&!((r=a.prototype)!==null&&r!==void 0&&r.render)&&a.$$typeof!==o_.ForwardRef||typeof t==\"function\"&&!((n=t.prototype)!==null&&n!==void 0&&n.render)&&t.$$typeof!==o_.ForwardRef)};function x7(e){return m.isValidElement(e)&&!Pre(e)}var pxe=function(t){return x7(t)&&mu(t)},rh=function(t){if(t&&x7(t)){var r=t;return r.props.propertyIsEnumerable(\"ref\")?r.props.ref:r.ref}return null},w8=m.createContext(null);function mxe(e){var t=e.children,r=e.onBatchResize,n=m.useRef(0),a=m.useRef([]),i=m.useContext(w8),o=m.useCallback(function(l,s,u){n.current+=1;var c=n.current;a.current.push({size:l,element:s,data:u}),Promise.resolve().then(function(){c===n.current&&(r==null||r(a.current),a.current=[])}),i==null||i(l,s,u)},[r,i]);return m.createElement(w8.Provider,{value:o},t)}var Lre=function(){if(typeof Map<\"u\")return Map;function e(t,r){var n=-1;return t.some(function(a,i){return a[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,\"size\",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),a=this.__entries__[n];return a&&a[1]},t.prototype.set=function(r,n){var a=e(this.__entries__,r);~a?this.__entries__[a][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,a=e(n,r);~a&&n.splice(a,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var a=0,i=this.__entries__;a<i.length;a++){var o=i[a];r.call(n,o[1],o[0])}},t}()}(),E8=typeof window<\"u\"&&typeof document<\"u\"&&window.document===document,mE=function(){return typeof global<\"u\"&&global.Math===Math?global:typeof self<\"u\"&&self.Math===Math?self:typeof window<\"u\"&&window.Math===Math?window:Function(\"return this\")()}(),vxe=function(){return typeof requestAnimationFrame==\"function\"?requestAnimationFrame.bind(mE):function(e){return setTimeout(function(){return e(Date.now())},1e3/60)}}(),gxe=2;function yxe(e,t){var r=!1,n=!1,a=0;function i(){r&&(r=!1,e()),n&&l()}function o(){vxe(i)}function l(){var s=Date.now();if(r){if(s-a<gxe)return;n=!0}else r=!0,n=!1,setTimeout(o,t);a=s}return l}var bxe=20,xxe=[\"top\",\"right\",\"bottom\",\"left\",\"width\",\"height\",\"size\",\"weight\"],Cxe=typeof MutationObserver<\"u\",Fxe=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=yxe(this.refresh.bind(this),bxe)}return e.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},e.prototype.removeObserver=function(t){var r=this.observers_,n=r.indexOf(t);~n&&r.splice(n,1),!r.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){var t=this.updateObservers_();t&&this.refresh()},e.prototype.updateObservers_=function(){var t=this.observers_.filter(function(r){return r.gatherActive(),r.hasActive()});return t.forEach(function(r){return r.broadcastActive()}),t.length>0},e.prototype.connect_=function(){!E8||this.connected_||(document.addEventListener(\"transitionend\",this.onTransitionEnd_),window.addEventListener(\"resize\",this.refresh),Cxe?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener(\"DOMSubtreeModified\",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!E8||!this.connected_||(document.removeEventListener(\"transitionend\",this.onTransitionEnd_),window.removeEventListener(\"resize\",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener(\"DOMSubtreeModified\",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?\"\":r,a=xxe.some(function(i){return!!~n.indexOf(i)});a&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),jre=function(e,t){for(var r=0,n=Object.keys(t);r<n.length;r++){var a=n[r];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},j0=function(e){var t=e&&e.ownerDocument&&e.ownerDocument.defaultView;return t||mE},zre=Y4(0,0,0,0);function vE(e){return parseFloat(e)||0}function Tj(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return t.reduce(function(n,a){var i=e[\"border-\"+a+\"-width\"];return n+vE(i)},0)}function Sxe(e){for(var t=[\"top\",\"right\",\"bottom\",\"left\"],r={},n=0,a=t;n<a.length;n++){var i=a[n],o=e[\"padding-\"+i];r[i]=vE(o)}return r}function wxe(e){var t=e.getBBox();return Y4(0,0,t.width,t.height)}function Exe(e){var t=e.clientWidth,r=e.clientHeight;if(!t&&!r)return zre;var n=j0(e).getComputedStyle(e),a=Sxe(n),i=a.left+a.right,o=a.top+a.bottom,l=vE(n.width),s=vE(n.height);if(n.boxSizing===\"border-box\"&&(Math.round(l+i)!==t&&(l-=Tj(n,\"left\",\"right\")+i),Math.round(s+o)!==r&&(s-=Tj(n,\"top\",\"bottom\")+o)),!Axe(e)){var u=Math.round(l+i)-t,c=Math.round(s+o)-r;Math.abs(u)!==1&&(l-=u),Math.abs(c)!==1&&(s-=c)}return Y4(a.left,a.top,l,s)}var Dxe=function(){return typeof SVGGraphicsElement<\"u\"?function(e){return e instanceof j0(e).SVGGraphicsElement}:function(e){return e instanceof j0(e).SVGElement&&typeof e.getBBox==\"function\"}}();function Axe(e){return e===j0(e).document.documentElement}function _xe(e){return E8?Dxe(e)?wxe(e):Exe(e):zre}function Txe(e){var t=e.x,r=e.y,n=e.width,a=e.height,i=typeof DOMRectReadOnly<\"u\"?DOMRectReadOnly:Object,o=Object.create(i.prototype);return jre(o,{x:t,y:r,width:n,height:a,top:r,right:t+n,bottom:a+r,left:t}),o}function Y4(e,t,r,n){return{x:e,y:t,width:r,height:n}}var Ixe=function(){function e(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=Y4(0,0,0,0),this.target=t}return e.prototype.isActive=function(){var t=_xe(this.target);return this.contentRect_=t,t.width!==this.broadcastWidth||t.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t},e}(),kxe=function(){function e(t,r){var n=Txe(r);jre(this,{target:t,contentRect:n})}return e}(),Rxe=function(){function e(t,r,n){if(this.activeObservations_=[],this.observations_=new Lre,typeof t!=\"function\")throw new TypeError(\"The callback provided as parameter 1 is not a function.\");this.callback_=t,this.controller_=r,this.callbackCtx_=n}return e.prototype.observe=function(t){if(!arguments.length)throw new TypeError(\"1 argument required, but only 0 present.\");if(!(typeof Element>\"u\"||!(Element instanceof Object))){if(!(t instanceof j0(t).Element))throw new TypeError('parameter 1 is not of type \"Element\".');var r=this.observations_;r.has(t)||(r.set(t,new Ixe(t)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError(\"1 argument required, but only 0 present.\");if(!(typeof Element>\"u\"||!(Element instanceof Object))){if(!(t instanceof j0(t).Element))throw new TypeError('parameter 1 is not of type \"Element\".');var r=this.observations_;r.has(t)&&(r.delete(t),r.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach(function(r){r.isActive()&&t.activeObservations_.push(r)})},e.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,r=this.activeObservations_.map(function(n){return new kxe(n.target,n.broadcastRect())});this.callback_.call(t,r,t),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),Hre=typeof WeakMap<\"u\"?new WeakMap:new Lre,Vre=function(){function e(t){if(!(this instanceof e))throw new TypeError(\"Cannot call a class as a function.\");if(!arguments.length)throw new TypeError(\"1 argument required, but only 0 present.\");var r=Fxe.getInstance(),n=new Rxe(t,r,this);Hre.set(this,n)}return e}();[\"observe\",\"unobserve\",\"disconnect\"].forEach(function(e){Vre.prototype[e]=function(){var t;return(t=Hre.get(this))[e].apply(t,arguments)}});var Mxe=function(){return typeof mE.ResizeObserver<\"u\"?mE.ResizeObserver:Vre}(),nf=new Map;function Pxe(e){e.forEach(function(t){var r,n=t.target;(r=nf.get(n))===null||r===void 0||r.forEach(function(a){return a(n)})})}var Wre=new Mxe(Pxe);function Oxe(e,t){nf.has(e)||(nf.set(e,new Set),Wre.observe(e)),nf.get(e).add(t)}function Bxe(e,t){nf.has(e)&&(nf.get(e).delete(t),nf.get(e).size||(Wre.unobserve(e),nf.delete(e)))}function Xn(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function Ij(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,Bre(n.key),n)}}function Jn(e,t,r){return t&&Ij(e.prototype,t),r&&Ij(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function Wb(e,t){return Wb=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},Wb(e,t)}function Vl(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&Wb(e,t)}function Wp(e){return Wp=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Wp(e)}function q4(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(q4=function(){return!!e})()}function Rt(e){if(e===void 0)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function Gre(e,t){if(t&&(Nt(t)==\"object\"||typeof t==\"function\"))return t;if(t!==void 0)throw new TypeError(\"Derived constructors may only return object or undefined\");return Rt(e)}function Ts(e){var t=q4();return function(){var r,n=Wp(e);if(t){var a=Wp(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return Gre(this,r)}}var Nxe=function(e){Vl(r,e);var t=Ts(r);function r(){return Xn(this,r),t.apply(this,arguments)}return Jn(r,[{key:\"render\",value:function(){return this.props.children}}]),r}(m.Component);function $xe(e,t){var r=e.children,n=e.disabled,a=m.useRef(null),i=m.useRef(null),o=m.useContext(w8),l=typeof r==\"function\",s=l?r(a):r,u=m.useRef({width:-1,height:-1,offsetWidth:-1,offsetHeight:-1}),c=!l&&m.isValidElement(s)&&mu(s),d=c?rh(s):null,f=yc(d,a),h=function(){var y;return ZS(a.current)||(a.current&&Nt(a.current)===\"object\"?ZS((y=a.current)===null||y===void 0?void 0:y.nativeElement):null)||ZS(i.current)};m.useImperativeHandle(t,function(){return h()});var p=m.useRef(e);p.current=e;var v=m.useCallback(function(g){var y=p.current,b=y.onResize,x=y.data,F=g.getBoundingClientRect(),S=F.width,E=F.height,w=g.offsetWidth,D=g.offsetHeight,A=Math.floor(S),_=Math.floor(E);if(u.current.width!==A||u.current.height!==_||u.current.offsetWidth!==w||u.current.offsetHeight!==D){var I={width:A,height:_,offsetWidth:w,offsetHeight:D};u.current=I;var M=w===Math.round(S)?S:w,T=D===Math.round(E)?E:D,k=ae(ae({},I),{},{offsetWidth:M,offsetHeight:T});o==null||o(k,g,x),b&&Promise.resolve().then(function(){b(k,g)})}},[]);return m.useEffect(function(){var g=h();return g&&!n&&Oxe(g,v),function(){return Bxe(g,v)}},[a.current,n]),m.createElement(Nxe,{ref:i},c?m.cloneElement(s,{ref:f}):s)}var Lxe=m.forwardRef($xe),jxe=\"rc-observer-key\";function zxe(e,t){var r=e.children,n=typeof r==\"function\"?[r]:ba(r);return n.map(function(a,i){var o=(a==null?void 0:a.key)||\"\".concat(jxe,\"-\").concat(i);return m.createElement(Lxe,Ce({},e,{key:o,ref:i===0?t:void 0}),a)})}var _i=m.forwardRef(zxe);_i.Collection=mxe;function D8(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function Hxe(e){if(Array.isArray(e))return D8(e)}function Ure(e){if(typeof Symbol<\"u\"&&e[Symbol.iterator]!=null||e[\"@@iterator\"]!=null)return Array.from(e)}function C7(e,t){if(e){if(typeof e==\"string\")return D8(e,t);var r={}.toString.call(e).slice(8,-1);return r===\"Object\"&&e.constructor&&(r=e.constructor.name),r===\"Map\"||r===\"Set\"?Array.from(e):r===\"Arguments\"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?D8(e,t):void 0}}function Vxe(){throw new TypeError(`Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function He(e){return Hxe(e)||Ure(e)||C7(e)||Vxe()}var Kre=function(t){return+setTimeout(t,16)},Yre=function(t){return clearTimeout(t)};typeof window<\"u\"&&\"requestAnimationFrame\"in window&&(Kre=function(t){return window.requestAnimationFrame(t)},Yre=function(t){return window.cancelAnimationFrame(t)});var kj=0,F7=new Map;function qre(e){F7.delete(e)}var Tr=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;kj+=1;var n=kj;function a(i){if(i===0)qre(n),t();else{var o=Kre(function(){a(i-1)});F7.set(n,o)}}return a(r),n};Tr.cancel=function(e){var t=F7.get(e);return qre(e),Yre(t)};function Xre(e){if(Array.isArray(e))return e}function Wxe(e,t){var r=e==null?null:typeof Symbol<\"u\"&&e[Symbol.iterator]||e[\"@@iterator\"];if(r!=null){var n,a,i,o,l=[],s=!0,u=!1;try{if(i=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=i.call(r)).done)&&(l.push(n.value),l.length!==t);s=!0);}catch(c){u=!0,a=c}finally{try{if(!s&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw a}}return l}}function Jre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ve(e,t){return Xre(e)||Wxe(e,t)||C7(e,t)||Jre()}function Gb(e){for(var t=0,r,n=0,a=e.length;a>=4;++n,a-=4)r=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,r=(r&65535)*1540483477+((r>>>16)*59797<<16),r^=r>>>24,t=(r&65535)*1540483477+((r>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(a){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}function ki(){return!!(typeof window<\"u\"&&window.document&&window.document.createElement)}function A8(e,t){if(!e)return!1;if(e.contains)return e.contains(t);for(var r=t;r;){if(r===e)return!0;r=r.parentNode}return!1}var Rj=\"data-rc-order\",Mj=\"data-rc-priority\",Gxe=\"rc-util-key\",_8=new Map;function Zre(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.mark;return t?t.startsWith(\"data-\")?t:\"data-\".concat(t):Gxe}function X4(e){if(e.attachTo)return e.attachTo;var t=document.querySelector(\"head\");return t||document.body}function Uxe(e){return e===\"queue\"?\"prependQueue\":e?\"prepend\":\"append\"}function S7(e){return Array.from((_8.get(e)||e).children).filter(function(t){return t.tagName===\"STYLE\"})}function Qre(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!ki())return null;var r=t.csp,n=t.prepend,a=t.priority,i=a===void 0?0:a,o=Uxe(n),l=o===\"prependQueue\",s=document.createElement(\"style\");s.setAttribute(Rj,o),l&&i&&s.setAttribute(Mj,\"\".concat(i)),r!=null&&r.nonce&&(s.nonce=r==null?void 0:r.nonce),s.innerHTML=e;var u=X4(t),c=u.firstChild;if(n){if(l){var d=(t.styles||S7(u)).filter(function(f){if(![\"prepend\",\"prependQueue\"].includes(f.getAttribute(Rj)))return!1;var h=Number(f.getAttribute(Mj)||0);return i>=h});if(d.length)return u.insertBefore(s,d[d.length-1].nextSibling),s}u.insertBefore(s,c)}else u.appendChild(s);return s}function ene(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=X4(t);return(t.styles||S7(r)).find(function(n){return n.getAttribute(Zre(t))===e})}function Ub(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=ene(e,t);if(r){var n=X4(t);n.removeChild(r)}}function Kxe(e,t){var r=_8.get(e);if(!r||!A8(document,r)){var n=Qre(\"\",t),a=n.parentNode;_8.set(e,a),e.removeChild(n)}}function Uc(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=X4(r),a=S7(n),i=ae(ae({},r),{},{styles:a});Kxe(n,i);var o=ene(t,i);if(o){var l,s;if((l=i.csp)!==null&&l!==void 0&&l.nonce&&o.nonce!==((s=i.csp)===null||s===void 0?void 0:s.nonce)){var u;o.nonce=(u=i.csp)===null||u===void 0?void 0:u.nonce}return o.innerHTML!==e&&(o.innerHTML=e),o}var c=Qre(e,i);return c.setAttribute(Zre(i),t),c}function Yxe(e,t){if(e==null)return{};var r={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(t.indexOf(n)!==-1)continue;r[n]=e[n]}return r}function Xt(e,t){if(e==null)return{};var r,n,a=Yxe(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)===-1&&{}.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}function vu(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=new Set;function a(i,o){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,s=n.has(i);if(jn(!s,\"Warning: There may be circular references\"),s)return!1;if(i===o)return!0;if(r&&l>1)return!1;n.add(i);var u=l+1;if(Array.isArray(i)){if(!Array.isArray(o)||i.length!==o.length)return!1;for(var c=0;c<i.length;c++)if(!a(i[c],o[c],u))return!1;return!0}if(i&&o&&Nt(i)===\"object\"&&Nt(o)===\"object\"){var d=Object.keys(i);return d.length!==Object.keys(o).length?!1:d.every(function(f){return a(i[f],o[f],u)})}return!1}return a(e,t)}var qxe=\"%\";function T8(e){return e.join(qxe)}var Xxe=function(){function e(t){Xn(this,e),Z(this,\"instanceId\",void 0),Z(this,\"cache\",new Map),Z(this,\"extracted\",new Set),this.instanceId=t}return Jn(e,[{key:\"get\",value:function(r){return this.opGet(T8(r))}},{key:\"opGet\",value:function(r){return this.cache.get(r)||null}},{key:\"update\",value:function(r,n){return this.opUpdate(T8(r),n)}},{key:\"opUpdate\",value:function(r,n){var a=this.cache.get(r),i=n(a);i===null?this.cache.delete(r):this.cache.set(r,i)}}]),e}(),z0=\"data-token-hash\",iu=\"data-css-hash\",af=\"__cssinjs_instance__\";function Jxe(){var e=Math.random().toString(12).slice(2);if(typeof document<\"u\"&&document.head&&document.body){var t=document.body.querySelectorAll(\"style[\".concat(iu,\"]\"))||[],r=document.head.firstChild;Array.from(t).forEach(function(a){a[af]=a[af]||e,a[af]===e&&document.head.insertBefore(a,r)});var n={};Array.from(document.querySelectorAll(\"style[\".concat(iu,\"]\"))).forEach(function(a){var i=a.getAttribute(iu);if(n[i]){if(a[af]===e){var o;(o=a.parentNode)===null||o===void 0||o.removeChild(a)}}else n[i]=!0})}return new Xxe(e)}var ix=m.createContext({hashPriority:\"low\",cache:Jxe(),defaultCache:!0});function Zxe(e,t){if(e.length!==t.length)return!1;for(var r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}var w7=function(){function e(){Xn(this,e),Z(this,\"cache\",void 0),Z(this,\"keys\",void 0),Z(this,\"cacheCallTimes\",void 0),this.cache=new Map,this.keys=[],this.cacheCallTimes=0}return Jn(e,[{key:\"size\",value:function(){return this.keys.length}},{key:\"internalGet\",value:function(r){var n,a,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,o={map:this.cache};return r.forEach(function(l){if(!o)o=void 0;else{var s;o=(s=o)===null||s===void 0||(s=s.map)===null||s===void 0?void 0:s.get(l)}}),(n=o)!==null&&n!==void 0&&n.value&&i&&(o.value[1]=this.cacheCallTimes++),(a=o)===null||a===void 0?void 0:a.value}},{key:\"get\",value:function(r){var n;return(n=this.internalGet(r,!0))===null||n===void 0?void 0:n[0]}},{key:\"has\",value:function(r){return!!this.internalGet(r)}},{key:\"set\",value:function(r,n){var a=this;if(!this.has(r)){if(this.size()+1>e.MAX_CACHE_SIZE+e.MAX_CACHE_OFFSET){var i=this.keys.reduce(function(u,c){var d=ve(u,2),f=d[1];return a.internalGet(c)[1]<f?[c,a.internalGet(c)[1]]:u},[this.keys[0],this.cacheCallTimes]),o=ve(i,1),l=o[0];this.delete(l)}this.keys.push(r)}var s=this.cache;r.forEach(function(u,c){if(c===r.length-1)s.set(u,{value:[n,a.cacheCallTimes++]});else{var d=s.get(u);d?d.map||(d.map=new Map):s.set(u,{map:new Map}),s=s.get(u).map}})}},{key:\"deleteByPath\",value:function(r,n){var a=r.get(n[0]);if(n.length===1){var i;return a.map?r.set(n[0],{map:a.map}):r.delete(n[0]),(i=a.value)===null||i===void 0?void 0:i[0]}var o=this.deleteByPath(a.map,n.slice(1));return(!a.map||a.map.size===0)&&!a.value&&r.delete(n[0]),o}},{key:\"delete\",value:function(r){if(this.has(r))return this.keys=this.keys.filter(function(n){return!Zxe(n,r)}),this.deleteByPath(this.cache,r)}}]),e}();Z(w7,\"MAX_CACHE_SIZE\",20);Z(w7,\"MAX_CACHE_OFFSET\",5);var Pj=0,tne=function(){function e(t){Xn(this,e),Z(this,\"derivatives\",void 0),Z(this,\"id\",void 0),this.derivatives=Array.isArray(t)?t:[t],this.id=Pj,t.length===0&&(t.length>0,void 0),Pj+=1}return Jn(e,[{key:\"getDerivativeToken\",value:function(r){return this.derivatives.reduce(function(n,a){return a(r,n)},void 0)}}]),e}(),l_=new w7;function I8(e){var t=Array.isArray(e)?e:[e];return l_.has(t)||l_.set(t,new tne(t)),l_.get(t)}var Qxe=new WeakMap,s_={};function eCe(e,t){for(var r=Qxe,n=0;n<t.length;n+=1){var a=t[n];r.has(a)||r.set(a,new WeakMap),r=r.get(a)}return r.has(s_)||r.set(s_,e()),r.get(s_)}var Oj=new WeakMap;function Ly(e){var t=Oj.get(e)||\"\";return t||(Object.keys(e).forEach(function(r){var n=e[r];t+=r,n instanceof tne?t+=n.id:n&&Nt(n)===\"object\"?t+=Ly(n):t+=n}),t=Gb(t),Oj.set(e,t)),t}function Bj(e,t){return Gb(\"\".concat(t,\"_\").concat(Ly(e)))}var k8=ki();function re(e){return typeof e==\"number\"?\"\".concat(e,\"px\"):e}function gE(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(a)return e;var i=ae(ae({},n),{},Z(Z({},z0,t),iu,r)),o=Object.keys(i).map(function(l){var s=i[l];return s?\"\".concat(l,'=\"').concat(s,'\"'):null}).filter(function(l){return l}).join(\" \");return\"<style \".concat(o,\">\").concat(e,\"</style>\")}var QS=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\";return\"--\".concat(r?\"\".concat(r,\"-\"):\"\").concat(t).replace(/([a-z0-9])([A-Z])/g,\"$1-$2\").replace(/([A-Z]+)([A-Z][a-z0-9]+)/g,\"$1-$2\").replace(/([a-z])([A-Z0-9])/g,\"$1-$2\").toLowerCase()},tCe=function(t,r,n){return Object.keys(t).length?\".\".concat(r).concat(n!=null&&n.scope?\".\".concat(n.scope):\"\",\"{\").concat(Object.entries(t).map(function(a){var i=ve(a,2),o=i[0],l=i[1];return\"\".concat(o,\":\").concat(l,\";\")}).join(\"\"),\"}\"):\"\"},rne=function(t,r,n){var a={},i={};return Object.entries(t).forEach(function(o){var l,s,u=ve(o,2),c=u[0],d=u[1];if(n!=null&&(l=n.preserve)!==null&&l!==void 0&&l[c])i[c]=d;else if((typeof d==\"string\"||typeof d==\"number\")&&!(n!=null&&(s=n.ignore)!==null&&s!==void 0&&s[c])){var f,h=QS(c,n==null?void 0:n.prefix);a[h]=typeof d==\"number\"&&!(n!=null&&(f=n.unitless)!==null&&f!==void 0&&f[c])?\"\".concat(d,\"px\"):String(d),i[c]=\"var(\".concat(h,\")\")}}),[i,tCe(a,r,{scope:n==null?void 0:n.scope})]},Nj=ki()?m.useLayoutEffect:m.useEffect,_r=function(t,r){var n=m.useRef(!0);Nj(function(){return t(n.current)},r),Nj(function(){return n.current=!1,function(){n.current=!0}},[])},Fp=function(t,r){_r(function(n){if(!n)return t()},r)},rCe=ae({},Z2),$j=rCe.useInsertionEffect,nCe=function(t,r,n){m.useMemo(t,n),_r(function(){return r(!0)},n)},aCe=$j?function(e,t,r){return $j(function(){return e(),t()},r)}:nCe,iCe=ae({},Z2),oCe=iCe.useInsertionEffect,lCe=function(t){var r=[],n=!1;function a(i){n||r.push(i)}return m.useEffect(function(){return n=!1,function(){n=!0,r.length&&r.forEach(function(i){return i()})}},t),a},sCe=function(){return function(t){t()}},uCe=typeof oCe<\"u\"?lCe:sCe;function E7(e,t,r,n,a){var i=m.useContext(ix),o=i.cache,l=[e].concat(He(t)),s=T8(l),u=uCe([s]),c=function(p){o.opUpdate(s,function(v){var g=v||[void 0,void 0],y=ve(g,2),b=y[0],x=b===void 0?0:b,F=y[1],S=F,E=S||r(),w=[x,E];return p?p(w):w})};m.useMemo(function(){c()},[s]);var d=o.opGet(s),f=d[1];return aCe(function(){a==null||a(f)},function(h){return c(function(p){var v=ve(p,2),g=v[0],y=v[1];return h&&g===0&&(a==null||a(f)),[g+1,y]}),function(){o.opUpdate(s,function(p){var v=p||[],g=ve(v,2),y=g[0],b=y===void 0?0:y,x=g[1],F=b-1;return F===0?(u(function(){(h||!o.opGet(s))&&(n==null||n(x,!1))}),null):[b-1,x]})}},[s]),f}var cCe={},dCe=\"css\",Xh=new Map;function fCe(e){Xh.set(e,(Xh.get(e)||0)+1)}function hCe(e,t){if(typeof document<\"u\"){var r=document.querySelectorAll(\"style[\".concat(z0,'=\"').concat(e,'\"]'));r.forEach(function(n){if(n[af]===t){var a;(a=n.parentNode)===null||a===void 0||a.removeChild(n)}})}}var pCe=0;function mCe(e,t){Xh.set(e,(Xh.get(e)||0)-1);var r=new Set;Xh.forEach(function(n,a){n<=0&&r.add(a)}),Xh.size-r.size>pCe&&r.forEach(function(n){hCe(n,t),Xh.delete(n)})}var vCe=function(t,r,n,a){var i=n.getDerivativeToken(t),o=ae(ae({},i),r);return a&&(o=a(o)),o},nne=\"token\";function gCe(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=m.useContext(ix),a=n.cache.instanceId,i=n.container,o=r.salt,l=o===void 0?\"\":o,s=r.override,u=s===void 0?cCe:s,c=r.formatToken,d=r.getComputedToken,f=r.cssVar,h=eCe(function(){return Object.assign.apply(Object,[{}].concat(He(t)))},t),p=Ly(h),v=Ly(u),g=f?Ly(f):\"\",y=E7(nne,[l,e.id,p,v,g],function(){var b,x=d?d(h,u,e):vCe(h,u,e,c),F=ae({},x),S=\"\";if(f){var E=rne(x,f.key,{prefix:f.prefix,ignore:f.ignore,unitless:f.unitless,preserve:f.preserve}),w=ve(E,2);x=w[0],S=w[1]}var D=Bj(x,l);x._tokenKey=D,F._tokenKey=Bj(F,l);var A=(b=f==null?void 0:f.key)!==null&&b!==void 0?b:D;x._themeKey=A,fCe(A);var _=\"\".concat(dCe,\"-\").concat(Gb(D));return x._hashId=_,[x,_,F,S,(f==null?void 0:f.key)||\"\"]},function(b){mCe(b[0]._themeKey,a)},function(b){var x=ve(b,4),F=x[0],S=x[3];if(f&&S){var E=Uc(S,Gb(\"css-variables-\".concat(F._themeKey)),{mark:iu,prepend:\"queue\",attachTo:i,priority:-999});E[af]=a,E.setAttribute(z0,F._themeKey)}});return y}var yCe=function(t,r,n){var a=ve(t,5),i=a[2],o=a[3],l=a[4],s=n||{},u=s.plain;if(!o)return null;var c=i._tokenKey,d=-999,f={\"data-rc-order\":\"prependQueue\",\"data-rc-priority\":\"\".concat(d)},h=gE(o,l,c,f,u);return[d,c,h]},bCe={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},ane=\"comm\",ine=\"rule\",one=\"decl\",xCe=\"@import\",CCe=\"@namespace\",FCe=\"@keyframes\",SCe=\"@layer\",wCe=Math.abs,jy=String.fromCharCode;function lne(e){return e.trim()}function R8(e,t,r){return e.replace(t,r)}function m0(e,t){return e.charCodeAt(t)|0}function H0(e,t,r){return e.slice(t,r)}function Hu(e){return e.length}function ECe(e){return e.length}function NC(e,t){return t.push(e),e}var J4=1,V0=1,sne=0,Ss=0,Ka=0,gg=\"\";function D7(e,t,r,n,a,i,o,l){return{value:e,root:t,parent:r,type:n,props:a,children:i,line:J4,column:V0,length:o,return:\"\",siblings:l}}function DCe(){return Ka}function ACe(){return Ka=Ss>0?m0(gg,--Ss):0,V0--,Ka===10&&(V0=1,J4--),Ka}function ou(){return Ka=Ss<sne?m0(gg,Ss++):0,V0++,Ka===10&&(V0=1,J4++),Ka}function of(){return m0(gg,Ss)}function ew(){return Ss}function Z4(e,t){return H0(gg,e,t)}function Kb(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function _Ce(e){return J4=V0=1,sne=Hu(gg=e),Ss=0,[]}function TCe(e){return gg=\"\",e}function u_(e){return lne(Z4(Ss-1,M8(e===91?e+2:e===40?e+1:e)))}function ICe(e){for(;(Ka=of())&&Ka<33;)ou();return Kb(e)>2||Kb(Ka)>3?\"\":\" \"}function kCe(e,t){for(;--t&&ou()&&!(Ka<48||Ka>102||Ka>57&&Ka<65||Ka>70&&Ka<97););return Z4(e,ew()+(t<6&&of()==32&&ou()==32))}function M8(e){for(;ou();)switch(Ka){case e:return Ss;case 34:case 39:e!==34&&e!==39&&M8(Ka);break;case 40:e===41&&M8(e);break;case 92:ou();break}return Ss}function RCe(e,t){for(;ou()&&e+Ka!==57;)if(e+Ka===84&&of()===47)break;return\"/*\"+Z4(t,Ss-1)+\"*\"+jy(e===47?e:ou())}function MCe(e){for(;!Kb(of());)ou();return Z4(e,Ss)}function PCe(e){return TCe(tw(\"\",null,null,null,[\"\"],e=_Ce(e),0,[0],e))}function tw(e,t,r,n,a,i,o,l,s){for(var u=0,c=0,d=o,f=0,h=0,p=0,v=1,g=1,y=1,b=0,x=0,F=\"\",S=a,E=i,w=n,D=F;g;)switch(p=x,x=ou()){case 40:p!=108&&m0(D,d-1)==58?(b++,D+=\"(\"):D+=u_(x);break;case 41:b--,D+=\")\";break;case 34:case 39:case 91:D+=u_(x);break;case 9:case 10:case 13:case 32:if(b>0){D+=jy(x);break}D+=ICe(p);break;case 92:D+=kCe(ew()-1,7);continue;case 47:switch(of()){case 42:case 47:NC(OCe(RCe(ou(),ew()),t,r,s),s),(Kb(p||1)==5||Kb(of()||1)==5)&&Hu(D)&&H0(D,-1,void 0)!==\" \"&&(D+=\" \");break;default:D+=\"/\"}break;case 123*v:l[u++]=Hu(D)*y;case 125*v:case 59:case 0:if(b>0&&x){D+=jy(x);break}switch(x){case 0:case 125:g=0;case 59+c:y==-1&&(D=R8(D,/\\f/g,\"\")),h>0&&(Hu(D)-d||v===0)&&NC(h>32?jj(D+\";\",n,r,d-1,s):jj(R8(D,\" \",\"\")+\";\",n,r,d-2,s),s);break;case 59:D+=\";\";default:if(NC(w=Lj(D,t,r,u,c,a,l,F,S=[],E=[],d,i),i),x===123)if(c===0)tw(D,t,w,w,S,i,d,l,E);else{switch(f){case 99:if(m0(D,3)===110)break;case 108:if(m0(D,2)===97)break;default:c=0;case 100:case 109:case 115:}c?tw(e,w,w,n&&NC(Lj(e,w,w,0,0,a,l,F,a,S=[],d,E),E),a,E,d,l,n?S:E):tw(D,w,w,w,[\"\"],E,0,l,E)}}u=c=h=0,v=y=1,F=D=\"\",d=o;break;case 58:d=1+Hu(D),h=p;default:if(v<1){if(x==123)--v;else if(x==125&&v++==0&&ACe()==125)continue}switch(D+=jy(x),x*v){case 38:y=c>0?1:(D+=\"\\f\",-1);break;case 44:if(b>0)break;l[u++]=(Hu(D)-1)*y,y=1;break;case 64:of()===45&&(D+=u_(ou())),f=of(),c=d=Hu(F=D+=MCe(ew())),x++;break;case 45:p===45&&Hu(D)==2&&(v=0)}}return i}function Lj(e,t,r,n,a,i,o,l,s,u,c,d){for(var f=a-1,h=a===0?i:[\"\"],p=ECe(h),v=0,g=0,y=0;v<n;++v)for(var b=0,x=H0(e,f+1,f=wCe(g=o[v])),F=e;b<p;++b)(F=lne(g>0?h[b]+\" \"+x:R8(x,/&\\f/g,h[b])))&&(s[y++]=F);return D7(e,t,r,a===0?ine:l,s,u,c,d)}function OCe(e,t,r,n){return D7(e,t,r,ane,jy(DCe()),H0(e,2,-2),0,n)}function jj(e,t,r,n,a){return D7(e,t,r,one,H0(e,0,n),H0(e,n+1,-1),n,a)}function P8(e,t){for(var r=\"\",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||\"\";return r}function BCe(e,t,r,n){switch(e.type){case SCe:if(e.children.length)break;case xCe:case CCe:case one:return e.return=e.return||e.value;case ane:return\"\";case FCe:return e.return=e.value+\"{\"+P8(e.children,n)+\"}\";case ine:if(!Hu(e.value=e.props.join(\",\")))return\"\"}return Hu(r=P8(e.children,n))?e.return=e.value+\"{\"+r+\"}\":\"\"}var zj=\"data-ant-cssinjs-cache-path\",une=\"_FILE_STYLE__\",Sp,cne=!0;function NCe(){if(!Sp&&(Sp={},ki())){var e=document.createElement(\"div\");e.className=zj,e.style.position=\"fixed\",e.style.visibility=\"hidden\",e.style.top=\"-9999px\",document.body.appendChild(e);var t=getComputedStyle(e).content||\"\";t=t.replace(/^\"/,\"\").replace(/\"$/,\"\"),t.split(\";\").forEach(function(a){var i=a.split(\":\"),o=ve(i,2),l=o[0],s=o[1];Sp[l]=s});var r=document.querySelector(\"style[\".concat(zj,\"]\"));if(r){var n;cne=!1,(n=r.parentNode)===null||n===void 0||n.removeChild(r)}document.body.removeChild(e)}}function $Ce(e){return NCe(),!!Sp[e]}function LCe(e){var t=Sp[e],r=null;if(t&&ki())if(cne)r=une;else{var n=document.querySelector(\"style[\".concat(iu,'=\"').concat(Sp[e],'\"]'));n?r=n.innerHTML:delete Sp[e]}return[r,t]}var jCe=\"_skip_check_\",dne=\"_multi_value_\";function rw(e){var t=P8(PCe(e),BCe);return t.replace(/\\{%%%\\:[^;];}/g,\";\")}function zCe(e){return Nt(e)===\"object\"&&e&&(jCe in e||dne in e)}function Hj(e,t,r){if(!t)return e;var n=\".\".concat(t),a=r===\"low\"?\":where(\".concat(n,\")\"):n,i=e.split(\",\").map(function(o){var l,s=o.trim().split(/\\s+/),u=s[0]||\"\",c=((l=u.match(/^\\w+/))===null||l===void 0?void 0:l[0])||\"\";return u=\"\".concat(c).concat(a).concat(u.slice(c.length)),[u].concat(He(s.slice(1))).join(\" \")});return i.join(\",\")}var HCe=function e(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]},a=n.root,i=n.injectHash,o=n.parentSelectors,l=r.hashId,s=r.layer;r.path;var u=r.hashPriority,c=r.transformers,d=c===void 0?[]:c;r.linters;var f=\"\",h={};function p(y){var b=y.getName(l);if(!h[b]){var x=e(y.style,r,{root:!1,parentSelectors:o}),F=ve(x,1),S=F[0];h[b]=\"@keyframes \".concat(y.getName(l)).concat(S)}}function v(y){var b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return y.forEach(function(x){Array.isArray(x)?v(x,b):x&&b.push(x)}),b}var g=v(Array.isArray(t)?t:[t]);return g.forEach(function(y){var b=typeof y==\"string\"&&!a?{}:y;if(typeof b==\"string\")f+=\"\".concat(b,`\n`);else if(b._keyframe)p(b);else{var x=d.reduce(function(F,S){var E;return(S==null||(E=S.visit)===null||E===void 0?void 0:E.call(S,F))||F},b);Object.keys(x).forEach(function(F){var S=x[F];if(Nt(S)===\"object\"&&S&&(F!==\"animationName\"||!S._keyframe)&&!zCe(S)){var E=!1,w=F.trim(),D=!1;(a||i)&&l?w.startsWith(\"@\")?E=!0:w===\"&\"?w=Hj(\"\",l,u):w=Hj(F,l,u):a&&!l&&(w===\"&\"||w===\"\")&&(w=\"\",D=!0);var A=e(S,r,{root:D,injectHash:E,parentSelectors:[].concat(He(o),[w])}),_=ve(A,2),I=_[0],M=_[1];h=ae(ae({},h),M),f+=\"\".concat(w).concat(I)}else{let R=function(P,B){var N=P.replace(/[A-Z]/g,function(z){return\"-\".concat(z.toLowerCase())}),O=B;!bCe[P]&&typeof O==\"number\"&&O!==0&&(O=\"\".concat(O,\"px\")),P===\"animationName\"&&B!==null&&B!==void 0&&B._keyframe&&(p(B),O=B.getName(l)),f+=\"\".concat(N,\":\").concat(O,\";\")};var T,k=(T=S==null?void 0:S.value)!==null&&T!==void 0?T:S;Nt(S)===\"object\"&&S!==null&&S!==void 0&&S[dne]&&Array.isArray(k)?k.forEach(function(P){R(F,P)}):R(F,k)}})}}),a?s&&(f&&(f=\"@layer \".concat(s.name,\" {\").concat(f,\"}\")),s.dependencies&&(h[\"@layer \".concat(s.name)]=s.dependencies.map(function(y){return\"@layer \".concat(y,\", \").concat(s.name,\";\")}).join(`\n`))):f=\"{\".concat(f,\"}\"),[f,h]};function fne(e,t){return Gb(\"\".concat(e.join(\"%\")).concat(t))}function VCe(){return null}var hne=\"style\";function O8(e,t){var r=e.token,n=e.path,a=e.hashId,i=e.layer,o=e.nonce,l=e.clientOnly,s=e.order,u=s===void 0?0:s,c=m.useContext(ix),d=c.autoClear;c.mock;var f=c.defaultCache,h=c.hashPriority,p=c.container,v=c.ssrInline,g=c.transformers,y=c.linters,b=c.cache,x=c.layer,F=r._tokenKey,S=[F];x&&S.push(\"layer\"),S.push.apply(S,He(n));var E=k8,w=E7(hne,S,function(){var M=S.join(\"|\");if($Ce(M)){var T=LCe(M),k=ve(T,2),R=k[0],P=k[1];if(R)return[R,F,P,{},l,u]}var B=t(),N=HCe(B,{hashId:a,hashPriority:h,layer:x?i:void 0,path:n.join(\"-\"),transformers:g,linters:y}),O=ve(N,2),z=O[0],W=O[1],L=rw(z),j=fne(S,L);return[L,F,j,W,l,u]},function(M,T){var k=ve(M,3),R=k[2];(T||d)&&k8&&Ub(R,{mark:iu,attachTo:p})},function(M){var T=ve(M,4),k=T[0];T[1];var R=T[2],P=T[3];if(E&&k!==une){var B={mark:iu,prepend:x?!1:\"queue\",attachTo:p,priority:u},N=typeof o==\"function\"?o():o;N&&(B.csp={nonce:N});var O=[],z=[];Object.keys(P).forEach(function(L){L.startsWith(\"@layer\")?O.push(L):z.push(L)}),O.forEach(function(L){Uc(rw(P[L]),\"_layer-\".concat(L),ae(ae({},B),{},{prepend:!0}))});var W=Uc(k,R,B);W[af]=b.instanceId,W.setAttribute(z0,F),z.forEach(function(L){Uc(rw(P[L]),\"_effect-\".concat(L),B)})}}),D=ve(w,3),A=D[0],_=D[1],I=D[2];return function(M){var T;return!v||E||!f?T=m.createElement(VCe,null):T=m.createElement(\"style\",Ce({},Z(Z({},z0,_),iu,I),{dangerouslySetInnerHTML:{__html:A}})),m.createElement(m.Fragment,null,T,M)}}var WCe=function(t,r,n){var a=ve(t,6),i=a[0],o=a[1],l=a[2],s=a[3],u=a[4],c=a[5],d=n||{},f=d.plain;if(u)return null;var h=i,p={\"data-rc-order\":\"prependQueue\",\"data-rc-priority\":\"\".concat(c)};return h=gE(i,o,l,p,f),s&&Object.keys(s).forEach(function(v){if(!r[v]){r[v]=!0;var g=rw(s[v]),y=gE(g,o,\"_effect-\".concat(v),p,f);v.startsWith(\"@layer\")?h=y+h:h+=y}}),[c,l,h]},pne=\"cssVar\",GCe=function(t,r){var n=t.key,a=t.prefix,i=t.unitless,o=t.ignore,l=t.token,s=t.scope,u=s===void 0?\"\":s,c=m.useContext(ix),d=c.cache.instanceId,f=c.container,h=l._tokenKey,p=[].concat(He(t.path),[n,u,h]),v=E7(pne,p,function(){var g=r(),y=rne(g,n,{prefix:a,unitless:i,ignore:o,scope:u}),b=ve(y,2),x=b[0],F=b[1],S=fne(p,F);return[x,F,S,n]},function(g){var y=ve(g,3),b=y[2];k8&&Ub(b,{mark:iu,attachTo:f})},function(g){var y=ve(g,3),b=y[1],x=y[2];if(b){var F=Uc(b,x,{mark:iu,prepend:\"queue\",attachTo:f,priority:-999});F[af]=d,F.setAttribute(z0,n)}});return v},UCe=function(t,r,n){var a=ve(t,4),i=a[1],o=a[2],l=a[3],s=n||{},u=s.plain;if(!i)return null;var c=-999,d={\"data-rc-order\":\"prependQueue\",\"data-rc-priority\":\"\".concat(c)},f=gE(i,l,o,d,u);return[c,o,f]};Z(Z(Z({},hne,WCe),nne,yCe),pne,UCe);var Br=function(){function e(t,r){Xn(this,e),Z(this,\"name\",void 0),Z(this,\"style\",void 0),Z(this,\"_keyframe\",!0),this.name=t,this.style=r}return Jn(e,[{key:\"getName\",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:\"\";return r?\"\".concat(r,\"-\").concat(this.name):this.name}}]),e}();function Gm(e){return e.notSplit=!0,e}Gm([\"borderTop\",\"borderBottom\"]),Gm([\"borderTop\"]),Gm([\"borderBottom\"]),Gm([\"borderLeft\",\"borderRight\"]),Gm([\"borderLeft\"]),Gm([\"borderRight\"]);var A7=m.createContext({});function mne(e){return Xre(e)||Ure(e)||C7(e)||Jre()}function No(e,t){for(var r=e,n=0;n<t.length;n+=1){if(r==null)return;r=r[t[n]]}return r}function vne(e,t,r,n){if(!t.length)return r;var a=mne(t),i=a[0],o=a.slice(1),l;return!e&&typeof i==\"number\"?l=[]:Array.isArray(e)?l=He(e):l=ae({},e),n&&r===void 0&&o.length===1?delete l[i][o[0]]:l[i]=vne(l[i],o,r,n),l}function us(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;return t.length&&n&&r===void 0&&!No(e,t.slice(0,-1))?e:vne(e,t,r,n)}function KCe(e){return Nt(e)===\"object\"&&e!==null&&Object.getPrototypeOf(e)===Object.prototype}function Vj(e){return Array.isArray(e)?[]:{}}var YCe=typeof Reflect>\"u\"?Object.keys:Reflect.ownKeys;function Qv(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=Vj(t[0]);return t.forEach(function(a){function i(o,l){var s=new Set(l),u=No(a,o),c=Array.isArray(u);if(c||KCe(u)){if(!s.has(u)){s.add(u);var d=No(n,o);c?n=us(n,o,[]):(!d||Nt(d)!==\"object\")&&(n=us(n,o,Vj(u))),YCe(u).forEach(function(f){i([].concat(He(o),[f]),s)})}}else n=us(n,o,u)}i([])}),n}function qCe(){}const XCe=m.createContext({}),bc=()=>{const e=()=>{};return e.deprecated=qCe,e},gne=m.createContext(void 0);var yne={items_per_page:\"/ page\",jump_to:\"Go to\",jump_to_confirm:\"confirm\",page:\"Page\",prev_page:\"Previous Page\",next_page:\"Next Page\",prev_5:\"Previous 5 Pages\",next_5:\"Next 5 Pages\",prev_3:\"Previous 3 Pages\",next_3:\"Next 3 Pages\",page_size:\"Page Size\"},JCe={yearFormat:\"YYYY\",dayFormat:\"D\",cellMeridiemFormat:\"A\",monthBeforeYear:!0},ZCe=ae(ae({},JCe),{},{locale:\"en_US\",today:\"Today\",now:\"Now\",backToToday:\"Back to today\",ok:\"OK\",clear:\"Clear\",week:\"Week\",month:\"Month\",year:\"Year\",timeSelect:\"select time\",dateSelect:\"select date\",weekSelect:\"Choose a week\",monthSelect:\"Choose a month\",yearSelect:\"Choose a year\",decadeSelect:\"Choose a decade\",dateFormat:\"M/D/YYYY\",dateTimeFormat:\"M/D/YYYY HH:mm:ss\",previousMonth:\"Previous month (PageUp)\",nextMonth:\"Next month (PageDown)\",previousYear:\"Last year (Control + left)\",nextYear:\"Next year (Control + right)\",previousDecade:\"Last decade\",nextDecade:\"Next decade\",previousCentury:\"Last century\",nextCentury:\"Next century\"});const bne={placeholder:\"Select time\",rangePlaceholder:[\"Start time\",\"End time\"]},yE={lang:Object.assign({placeholder:\"Select date\",yearPlaceholder:\"Select year\",quarterPlaceholder:\"Select quarter\",monthPlaceholder:\"Select month\",weekPlaceholder:\"Select week\",rangePlaceholder:[\"Start date\",\"End date\"],rangeYearPlaceholder:[\"Start year\",\"End year\"],rangeQuarterPlaceholder:[\"Start quarter\",\"End quarter\"],rangeMonthPlaceholder:[\"Start month\",\"End month\"],rangeWeekPlaceholder:[\"Start week\",\"End week\"]},ZCe),timePickerLocale:Object.assign({},bne)},yl=\"${label} is not a valid ${type}\",ws={locale:\"en\",Pagination:yne,DatePicker:yE,TimePicker:bne,Calendar:yE,global:{placeholder:\"Please select\",close:\"Close\"},Table:{filterTitle:\"Filter menu\",filterConfirm:\"OK\",filterReset:\"Reset\",filterEmptyText:\"No filters\",filterCheckAll:\"Select all items\",filterSearchPlaceholder:\"Search in filters\",emptyText:\"No data\",selectAll:\"Select current page\",selectInvert:\"Invert current page\",selectNone:\"Clear all data\",selectionAll:\"Select all data\",sortTitle:\"Sort\",expand:\"Expand row\",collapse:\"Collapse row\",triggerDesc:\"Click to sort descending\",triggerAsc:\"Click to sort ascending\",cancelSort:\"Click to cancel sorting\"},Tour:{Next:\"Next\",Previous:\"Previous\",Finish:\"Finish\"},Modal:{okText:\"OK\",cancelText:\"Cancel\",justOkText:\"OK\"},Popconfirm:{okText:\"OK\",cancelText:\"Cancel\"},Transfer:{titles:[\"\",\"\"],searchPlaceholder:\"Search here\",itemUnit:\"item\",itemsUnit:\"items\",remove:\"Remove\",selectCurrent:\"Select current page\",removeCurrent:\"Remove current page\",selectAll:\"Select all data\",deselectAll:\"Deselect all data\",removeAll:\"Remove all data\",selectInvert:\"Invert current page\"},Upload:{uploading:\"Uploading...\",removeFile:\"Remove file\",uploadError:\"Upload error\",previewFile:\"Preview file\",downloadFile:\"Download file\"},Empty:{description:\"No data\"},Icon:{icon:\"icon\"},Text:{edit:\"Edit\",copy:\"Copy\",copied:\"Copied\",expand:\"Expand\",collapse:\"Collapse\"},Form:{optional:\"(optional)\",defaultValidateMessages:{default:\"Field validation error for ${label}\",required:\"Please enter ${label}\",enum:\"${label} must be one of [${enum}]\",whitespace:\"${label} cannot be a blank character\",date:{format:\"${label} date format is invalid\",parse:\"${label} cannot be converted to a date\",invalid:\"${label} is an invalid date\"},types:{string:yl,method:yl,array:yl,object:yl,number:yl,date:yl,boolean:yl,integer:yl,float:yl,regexp:yl,email:yl,url:yl,hex:yl},string:{len:\"${label} must be ${len} characters\",min:\"${label} must be at least ${min} characters\",max:\"${label} must be up to ${max} characters\",range:\"${label} must be between ${min}-${max} characters\"},number:{len:\"${label} must be equal to ${len}\",min:\"${label} must be minimum ${min}\",max:\"${label} must be maximum ${max}\",range:\"${label} must be between ${min}-${max}\"},array:{len:\"Must be ${len} ${label}\",min:\"At least ${min} ${label}\",max:\"At most ${max} ${label}\",range:\"The amount of ${label} must be between ${min}-${max}\"},pattern:{mismatch:\"${label} does not match the pattern ${pattern}\"}}},Image:{preview:\"Preview\"},QRCode:{expired:\"QR code expired\",refresh:\"Refresh\",scanned:\"Scanned\"},ColorPicker:{presetEmpty:\"Empty\",transparent:\"Transparent\",singleColor:\"Single\",gradientColor:\"Gradient\"}};let nw=Object.assign({},ws.Modal),aw=[];const Wj=()=>aw.reduce((e,t)=>Object.assign(Object.assign({},e),t),ws.Modal);function QCe(e){if(e){const t=Object.assign({},e);return aw.push(t),nw=Wj(),()=>{aw=aw.filter(r=>r!==t),nw=Wj()}}nw=Object.assign({},ws.Modal)}function xne(){return nw}const _7=m.createContext(void 0),Jo=(e,t)=>{const r=m.useContext(_7),n=m.useMemo(()=>{var i;const o=t||ws[e],l=(i=r==null?void 0:r[e])!==null&&i!==void 0?i:{};return Object.assign(Object.assign({},typeof o==\"function\"?o():o),l||{})},[e,t,r]),a=m.useMemo(()=>{const i=r==null?void 0:r.locale;return r!=null&&r.exist&&!i?ws.locale:i},[r]);return[n,a]},eFe=\"internalMark\",tFe=e=>{const{locale:t={},children:r,_ANT_MARK__:n}=e;m.useEffect(()=>QCe(t==null?void 0:t.Modal),[t]);const a=m.useMemo(()=>Object.assign(Object.assign({},t),{exist:!0}),[t]);return m.createElement(_7.Provider,{value:a},r)},Cne={blue:\"#1677FF\",purple:\"#722ED1\",cyan:\"#13C2C2\",green:\"#52C41A\",magenta:\"#EB2F96\",pink:\"#EB2F96\",red:\"#F5222D\",orange:\"#FA8C16\",yellow:\"#FADB14\",volcano:\"#FA541C\",geekblue:\"#2F54EB\",gold:\"#FAAD14\",lime:\"#A0D911\"},Yb=Object.assign(Object.assign({},Cne),{colorPrimary:\"#1677ff\",colorSuccess:\"#52c41a\",colorWarning:\"#faad14\",colorError:\"#ff4d4f\",colorInfo:\"#1677ff\",colorLink:\"\",colorTextBase:\"\",colorBgBase:\"\",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,\n'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\n'Noto Color Emoji'`,fontFamilyCode:\"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace\",fontSize:14,lineWidth:1,lineType:\"solid\",motionUnit:.1,motionBase:0,motionEaseOutCirc:\"cubic-bezier(0.08, 0.82, 0.17, 1)\",motionEaseInOutCirc:\"cubic-bezier(0.78, 0.14, 0.15, 0.86)\",motionEaseOut:\"cubic-bezier(0.215, 0.61, 0.355, 1)\",motionEaseInOut:\"cubic-bezier(0.645, 0.045, 0.355, 1)\",motionEaseOutBack:\"cubic-bezier(0.12, 0.4, 0.29, 1.46)\",motionEaseInBack:\"cubic-bezier(0.71, -0.46, 0.88, 0.6)\",motionEaseInQuint:\"cubic-bezier(0.755, 0.05, 0.855, 0.06)\",motionEaseOutQuint:\"cubic-bezier(0.23, 1, 0.32, 1)\",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1,motion:!0}),bi=Math.round;function c_(e,t){const r=e.replace(/^[^(]*\\((.*)/,\"$1\").replace(/\\).*/,\"\").match(/\\d*\\.?\\d+%?/g)||[],n=r.map(a=>parseFloat(a));for(let a=0;a<3;a+=1)n[a]=t(n[a]||0,r[a]||\"\",a);return r[3]?n[3]=r[3].includes(\"%\")?n[3]/100:n[3]:n[3]=1,n}const Gj=(e,t,r)=>r===0?e:e/100;function g1(e,t){const r=t||255;return e>r?r:e<0?0:e}class $r{constructor(t){Z(this,\"isValid\",!0),Z(this,\"r\",0),Z(this,\"g\",0),Z(this,\"b\",0),Z(this,\"a\",1),Z(this,\"_h\",void 0),Z(this,\"_s\",void 0),Z(this,\"_l\",void 0),Z(this,\"_v\",void 0),Z(this,\"_max\",void 0),Z(this,\"_min\",void 0),Z(this,\"_brightness\",void 0);function r(n){return n[0]in t&&n[1]in t&&n[2]in t}if(t)if(typeof t==\"string\"){let a=function(i){return n.startsWith(i)};const n=t.trim();/^#?[A-F\\d]{3,8}$/i.test(n)?this.fromHexString(n):a(\"rgb\")?this.fromRgbString(n):a(\"hsl\")?this.fromHslString(n):(a(\"hsv\")||a(\"hsb\"))&&this.fromHsvString(n)}else if(t instanceof $r)this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this._h=t._h,this._s=t._s,this._l=t._l,this._v=t._v;else if(r(\"rgb\"))this.r=g1(t.r),this.g=g1(t.g),this.b=g1(t.b),this.a=typeof t.a==\"number\"?g1(t.a,1):1;else if(r(\"hsl\"))this.fromHsl(t);else if(r(\"hsv\"))this.fromHsv(t);else throw new Error(\"@ant-design/fast-color: unsupported input \"+JSON.stringify(t))}setR(t){return this._sc(\"r\",t)}setG(t){return this._sc(\"g\",t)}setB(t){return this._sc(\"b\",t)}setA(t){return this._sc(\"a\",t,1)}setHue(t){const r=this.toHsv();return r.h=t,this._c(r)}getLuminance(){function t(i){const o=i/255;return o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4)}const r=t(this.r),n=t(this.g),a=t(this.b);return .2126*r+.7152*n+.0722*a}getHue(){if(typeof this._h>\"u\"){const t=this.getMax()-this.getMin();t===0?this._h=0:this._h=bi(60*(this.r===this.getMax()?(this.g-this.b)/t+(this.g<this.b?6:0):this.g===this.getMax()?(this.b-this.r)/t+2:(this.r-this.g)/t+4))}return this._h}getSaturation(){if(typeof this._s>\"u\"){const t=this.getMax()-this.getMin();t===0?this._s=0:this._s=t/this.getMax()}return this._s}getLightness(){return typeof this._l>\"u\"&&(this._l=(this.getMax()+this.getMin())/510),this._l}getValue(){return typeof this._v>\"u\"&&(this._v=this.getMax()/255),this._v}getBrightness(){return typeof this._brightness>\"u\"&&(this._brightness=(this.r*299+this.g*587+this.b*114)/1e3),this._brightness}darken(t=10){const r=this.getHue(),n=this.getSaturation();let a=this.getLightness()-t/100;return a<0&&(a=0),this._c({h:r,s:n,l:a,a:this.a})}lighten(t=10){const r=this.getHue(),n=this.getSaturation();let a=this.getLightness()+t/100;return a>1&&(a=1),this._c({h:r,s:n,l:a,a:this.a})}mix(t,r=50){const n=this._c(t),a=r/100,i=l=>(n[l]-this[l])*a+this[l],o={r:bi(i(\"r\")),g:bi(i(\"g\")),b:bi(i(\"b\")),a:bi(i(\"a\")*100)/100};return this._c(o)}tint(t=10){return this.mix({r:255,g:255,b:255,a:1},t)}shade(t=10){return this.mix({r:0,g:0,b:0,a:1},t)}onBackground(t){const r=this._c(t),n=this.a+r.a*(1-this.a),a=i=>bi((this[i]*this.a+r[i]*r.a*(1-this.a))/n);return this._c({r:a(\"r\"),g:a(\"g\"),b:a(\"b\"),a:n})}isDark(){return this.getBrightness()<128}isLight(){return this.getBrightness()>=128}equals(t){return this.r===t.r&&this.g===t.g&&this.b===t.b&&this.a===t.a}clone(){return this._c(this)}toHexString(){let t=\"#\";const r=(this.r||0).toString(16);t+=r.length===2?r:\"0\"+r;const n=(this.g||0).toString(16);t+=n.length===2?n:\"0\"+n;const a=(this.b||0).toString(16);if(t+=a.length===2?a:\"0\"+a,typeof this.a==\"number\"&&this.a>=0&&this.a<1){const i=bi(this.a*255).toString(16);t+=i.length===2?i:\"0\"+i}return t}toHsl(){return{h:this.getHue(),s:this.getSaturation(),l:this.getLightness(),a:this.a}}toHslString(){const t=this.getHue(),r=bi(this.getSaturation()*100),n=bi(this.getLightness()*100);return this.a!==1?`hsla(${t},${r}%,${n}%,${this.a})`:`hsl(${t},${r}%,${n}%)`}toHsv(){return{h:this.getHue(),s:this.getSaturation(),v:this.getValue(),a:this.a}}toRgb(){return{r:this.r,g:this.g,b:this.b,a:this.a}}toRgbString(){return this.a!==1?`rgba(${this.r},${this.g},${this.b},${this.a})`:`rgb(${this.r},${this.g},${this.b})`}toString(){return this.toRgbString()}_sc(t,r,n){const a=this.clone();return a[t]=g1(r,n),a}_c(t){return new this.constructor(t)}getMax(){return typeof this._max>\"u\"&&(this._max=Math.max(this.r,this.g,this.b)),this._max}getMin(){return typeof this._min>\"u\"&&(this._min=Math.min(this.r,this.g,this.b)),this._min}fromHexString(t){const r=t.replace(\"#\",\"\");function n(a,i){return parseInt(r[a]+r[i||a],16)}r.length<6?(this.r=n(0),this.g=n(1),this.b=n(2),this.a=r[3]?n(3)/255:1):(this.r=n(0,1),this.g=n(2,3),this.b=n(4,5),this.a=r[6]?n(6,7)/255:1)}fromHsl({h:t,s:r,l:n,a}){if(this._h=t%360,this._s=r,this._l=n,this.a=typeof a==\"number\"?a:1,r<=0){const f=bi(n*255);this.r=f,this.g=f,this.b=f}let i=0,o=0,l=0;const s=t/60,u=(1-Math.abs(2*n-1))*r,c=u*(1-Math.abs(s%2-1));s>=0&&s<1?(i=u,o=c):s>=1&&s<2?(i=c,o=u):s>=2&&s<3?(o=u,l=c):s>=3&&s<4?(o=c,l=u):s>=4&&s<5?(i=c,l=u):s>=5&&s<6&&(i=u,l=c);const d=n-u/2;this.r=bi((i+d)*255),this.g=bi((o+d)*255),this.b=bi((l+d)*255)}fromHsv({h:t,s:r,v:n,a}){this._h=t%360,this._s=r,this._v=n,this.a=typeof a==\"number\"?a:1;const i=bi(n*255);if(this.r=i,this.g=i,this.b=i,r<=0)return;const o=t/60,l=Math.floor(o),s=o-l,u=bi(n*(1-r)*255),c=bi(n*(1-r*s)*255),d=bi(n*(1-r*(1-s))*255);switch(l){case 0:this.g=d,this.b=u;break;case 1:this.r=c,this.b=u;break;case 2:this.r=u,this.b=d;break;case 3:this.r=u,this.g=c;break;case 4:this.r=d,this.g=u;break;case 5:default:this.g=u,this.b=c;break}}fromHsvString(t){const r=c_(t,Gj);this.fromHsv({h:r[0],s:r[1],v:r[2],a:r[3]})}fromHslString(t){const r=c_(t,Gj);this.fromHsl({h:r[0],s:r[1],l:r[2],a:r[3]})}fromRgbString(t){const r=c_(t,(n,a)=>a.includes(\"%\")?bi(n/100*255):n);this.r=r[0],this.g=r[1],this.b=r[2],this.a=r[3]}}var $C=2,Uj=.16,rFe=.05,nFe=.05,aFe=.15,Fne=5,Sne=4,iFe=[{index:7,amount:15},{index:6,amount:25},{index:5,amount:30},{index:5,amount:45},{index:5,amount:65},{index:5,amount:85},{index:4,amount:90},{index:3,amount:95},{index:2,amount:97},{index:1,amount:98}];function Kj(e,t,r){var n;return Math.round(e.h)>=60&&Math.round(e.h)<=240?n=r?Math.round(e.h)-$C*t:Math.round(e.h)+$C*t:n=r?Math.round(e.h)+$C*t:Math.round(e.h)-$C*t,n<0?n+=360:n>=360&&(n-=360),n}function Yj(e,t,r){if(e.h===0&&e.s===0)return e.s;var n;return r?n=e.s-Uj*t:t===Sne?n=e.s+Uj:n=e.s+rFe*t,n>1&&(n=1),r&&t===Fne&&n>.1&&(n=.1),n<.06&&(n=.06),Math.round(n*100)/100}function qj(e,t,r){var n;return r?n=e.v+nFe*t:n=e.v-aFe*t,n=Math.max(0,Math.min(1,n)),Math.round(n*100)/100}function qb(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=[],n=new $r(e),a=n.toHsv(),i=Fne;i>0;i-=1){var o=new $r({h:Kj(a,i,!0),s:Yj(a,i,!0),v:qj(a,i,!0)});r.push(o)}r.push(n);for(var l=1;l<=Sne;l+=1){var s=new $r({h:Kj(a,l),s:Yj(a,l),v:qj(a,l)});r.push(s)}return t.theme===\"dark\"?iFe.map(function(u){var c=u.index,d=u.amount;return new $r(t.backgroundColor||\"#141414\").mix(r[c],d).toHexString()}):r.map(function(u){return u.toHexString()})}var v0={red:\"#F5222D\",volcano:\"#FA541C\",orange:\"#FA8C16\",gold:\"#FAAD14\",yellow:\"#FADB14\",lime:\"#A0D911\",green:\"#52C41A\",cyan:\"#13C2C2\",blue:\"#1677FF\",geekblue:\"#2F54EB\",purple:\"#722ED1\",magenta:\"#EB2F96\",grey:\"#666666\"},B8=[\"#fff1f0\",\"#ffccc7\",\"#ffa39e\",\"#ff7875\",\"#ff4d4f\",\"#f5222d\",\"#cf1322\",\"#a8071a\",\"#820014\",\"#5c0011\"];B8.primary=B8[5];var N8=[\"#fff2e8\",\"#ffd8bf\",\"#ffbb96\",\"#ff9c6e\",\"#ff7a45\",\"#fa541c\",\"#d4380d\",\"#ad2102\",\"#871400\",\"#610b00\"];N8.primary=N8[5];var $8=[\"#fff7e6\",\"#ffe7ba\",\"#ffd591\",\"#ffc069\",\"#ffa940\",\"#fa8c16\",\"#d46b08\",\"#ad4e00\",\"#873800\",\"#612500\"];$8.primary=$8[5];var bE=[\"#fffbe6\",\"#fff1b8\",\"#ffe58f\",\"#ffd666\",\"#ffc53d\",\"#faad14\",\"#d48806\",\"#ad6800\",\"#874d00\",\"#613400\"];bE.primary=bE[5];var L8=[\"#feffe6\",\"#ffffb8\",\"#fffb8f\",\"#fff566\",\"#ffec3d\",\"#fadb14\",\"#d4b106\",\"#ad8b00\",\"#876800\",\"#614700\"];L8.primary=L8[5];var j8=[\"#fcffe6\",\"#f4ffb8\",\"#eaff8f\",\"#d3f261\",\"#bae637\",\"#a0d911\",\"#7cb305\",\"#5b8c00\",\"#3f6600\",\"#254000\"];j8.primary=j8[5];var z8=[\"#f6ffed\",\"#d9f7be\",\"#b7eb8f\",\"#95de64\",\"#73d13d\",\"#52c41a\",\"#389e0d\",\"#237804\",\"#135200\",\"#092b00\"];z8.primary=z8[5];var H8=[\"#e6fffb\",\"#b5f5ec\",\"#87e8de\",\"#5cdbd3\",\"#36cfc9\",\"#13c2c2\",\"#08979c\",\"#006d75\",\"#00474f\",\"#002329\"];H8.primary=H8[5];var W0=[\"#e6f4ff\",\"#bae0ff\",\"#91caff\",\"#69b1ff\",\"#4096ff\",\"#1677ff\",\"#0958d9\",\"#003eb3\",\"#002c8c\",\"#001d66\"];W0.primary=W0[5];var V8=[\"#f0f5ff\",\"#d6e4ff\",\"#adc6ff\",\"#85a5ff\",\"#597ef7\",\"#2f54eb\",\"#1d39c4\",\"#10239e\",\"#061178\",\"#030852\"];V8.primary=V8[5];var W8=[\"#f9f0ff\",\"#efdbff\",\"#d3adf7\",\"#b37feb\",\"#9254de\",\"#722ed1\",\"#531dab\",\"#391085\",\"#22075e\",\"#120338\"];W8.primary=W8[5];var G8=[\"#fff0f6\",\"#ffd6e7\",\"#ffadd2\",\"#ff85c0\",\"#f759ab\",\"#eb2f96\",\"#c41d7f\",\"#9e1068\",\"#780650\",\"#520339\"];G8.primary=G8[5];var U8=[\"#a6a6a6\",\"#999999\",\"#8c8c8c\",\"#808080\",\"#737373\",\"#666666\",\"#404040\",\"#1a1a1a\",\"#000000\",\"#000000\"];U8.primary=U8[5];var d_={red:B8,volcano:N8,orange:$8,gold:bE,yellow:L8,lime:j8,green:z8,cyan:H8,blue:W0,geekblue:V8,purple:W8,magenta:G8,grey:U8};function oFe(e,{generateColorPalettes:t,generateNeutralColorPalettes:r}){const{colorSuccess:n,colorWarning:a,colorError:i,colorInfo:o,colorPrimary:l,colorBgBase:s,colorTextBase:u}=e,c=t(l),d=t(n),f=t(a),h=t(i),p=t(o),v=r(s,u),g=e.colorLink||e.colorInfo,y=t(g),b=new $r(h[1]).mix(new $r(h[3]),50).toHexString();return Object.assign(Object.assign({},v),{colorPrimaryBg:c[1],colorPrimaryBgHover:c[2],colorPrimaryBorder:c[3],colorPrimaryBorderHover:c[4],colorPrimaryHover:c[5],colorPrimary:c[6],colorPrimaryActive:c[7],colorPrimaryTextHover:c[8],colorPrimaryText:c[9],colorPrimaryTextActive:c[10],colorSuccessBg:d[1],colorSuccessBgHover:d[2],colorSuccessBorder:d[3],colorSuccessBorderHover:d[4],colorSuccessHover:d[4],colorSuccess:d[6],colorSuccessActive:d[7],colorSuccessTextHover:d[8],colorSuccessText:d[9],colorSuccessTextActive:d[10],colorErrorBg:h[1],colorErrorBgHover:h[2],colorErrorBgFilledHover:b,colorErrorBgActive:h[3],colorErrorBorder:h[3],colorErrorBorderHover:h[4],colorErrorHover:h[5],colorError:h[6],colorErrorActive:h[7],colorErrorTextHover:h[8],colorErrorText:h[9],colorErrorTextActive:h[10],colorWarningBg:f[1],colorWarningBgHover:f[2],colorWarningBorder:f[3],colorWarningBorderHover:f[4],colorWarningHover:f[4],colorWarning:f[6],colorWarningActive:f[7],colorWarningTextHover:f[8],colorWarningText:f[9],colorWarningTextActive:f[10],colorInfoBg:p[1],colorInfoBgHover:p[2],colorInfoBorder:p[3],colorInfoBorderHover:p[4],colorInfoHover:p[4],colorInfo:p[6],colorInfoActive:p[7],colorInfoTextHover:p[8],colorInfoText:p[9],colorInfoTextActive:p[10],colorLinkHover:y[4],colorLink:y[6],colorLinkActive:y[7],colorBgMask:new $r(\"#000\").setA(.45).toRgbString(),colorWhite:\"#fff\"})}const lFe=e=>{let t=e,r=e,n=e,a=e;return e<6&&e>=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?r=4:e<8&&e>=7?r=5:e<14&&e>=8?r=6:e<16&&e>=14?r=7:e>=16&&(r=8),e<6&&e>=2?n=1:e>=6&&(n=2),e>4&&e<8?a=4:e>=8&&(a=6),{borderRadius:e,borderRadiusXS:n,borderRadiusSM:r,borderRadiusLG:t,borderRadiusOuter:a}};function sFe(e){const{motionUnit:t,motionBase:r,borderRadius:n,lineWidth:a}=e;return Object.assign({motionDurationFast:`${(r+t).toFixed(1)}s`,motionDurationMid:`${(r+t*2).toFixed(1)}s`,motionDurationSlow:`${(r+t*3).toFixed(1)}s`,lineWidthBold:a+1},lFe(n))}const uFe=e=>{const{controlHeight:t}=e;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}};function iw(e){return(e+8)/e}function cFe(e){const t=Array.from({length:10}).map((r,n)=>{const a=n-1,i=e*Math.pow(Math.E,a/5),o=n>1?Math.floor(i):Math.ceil(i);return Math.floor(o/2)*2});return t[1]=e,t.map(r=>({size:r,lineHeight:iw(r)}))}const dFe=e=>{const t=cFe(e),r=t.map(c=>c.size),n=t.map(c=>c.lineHeight),a=r[1],i=r[0],o=r[2],l=n[1],s=n[0],u=n[2];return{fontSizeSM:i,fontSize:a,fontSizeLG:o,fontSizeXL:r[3],fontSizeHeading1:r[6],fontSizeHeading2:r[5],fontSizeHeading3:r[4],fontSizeHeading4:r[3],fontSizeHeading5:r[2],lineHeight:l,lineHeightLG:u,lineHeightSM:s,fontHeight:Math.round(l*a),fontHeightLG:Math.round(u*o),fontHeightSM:Math.round(s*i),lineHeightHeading1:n[6],lineHeightHeading2:n[5],lineHeightHeading3:n[4],lineHeightHeading4:n[3],lineHeightHeading5:n[2]}};function fFe(e){const{sizeUnit:t,sizeStep:r}=e;return{sizeXXL:t*(r+8),sizeXL:t*(r+4),sizeLG:t*(r+2),sizeMD:t*(r+1),sizeMS:t*r,size:t*r,sizeSM:t*(r-1),sizeXS:t*(r-2),sizeXXS:t*(r-3)}}const Ul=(e,t)=>new $r(e).setA(t).toRgbString(),y1=(e,t)=>new $r(e).darken(t).toHexString(),hFe=e=>{const t=qb(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},pFe=(e,t)=>{const r=e||\"#fff\",n=t||\"#000\";return{colorBgBase:r,colorTextBase:n,colorText:Ul(n,.88),colorTextSecondary:Ul(n,.65),colorTextTertiary:Ul(n,.45),colorTextQuaternary:Ul(n,.25),colorFill:Ul(n,.15),colorFillSecondary:Ul(n,.06),colorFillTertiary:Ul(n,.04),colorFillQuaternary:Ul(n,.02),colorBgSolid:Ul(n,1),colorBgSolidHover:Ul(n,.75),colorBgSolidActive:Ul(n,.95),colorBgLayout:y1(r,4),colorBgContainer:y1(r,0),colorBgElevated:y1(r,0),colorBgSpotlight:Ul(n,.85),colorBgBlur:\"transparent\",colorBorder:y1(r,15),colorBorderSecondary:y1(r,6)}};function mFe(e){v0.pink=v0.magenta,d_.pink=d_.magenta;const t=Object.keys(Cne).map(r=>{const n=e[r]===v0[r]?d_[r]:qb(e[r]);return Array.from({length:10},()=>1).reduce((a,i,o)=>(a[`${r}-${o+1}`]=n[o],a[`${r}${o+1}`]=n[o],a),{})}).reduce((r,n)=>(r=Object.assign(Object.assign({},r),n),r),{});return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},e),t),oFe(e,{generateColorPalettes:hFe,generateNeutralColorPalettes:pFe})),dFe(e.fontSize)),fFe(e)),uFe(e)),sFe(e))}const wne=I8(mFe),K8={token:Yb,override:{override:Yb},hashed:!0},Ene=le.createContext(K8),Xb=\"ant\",Q4=\"anticon\",vFe=[\"outlined\",\"borderless\",\"filled\",\"underlined\"],gFe=(e,t)=>t||(e?`${Xb}-${e}`:Xb),Ot=m.createContext({getPrefixCls:gFe,iconPrefixCls:Q4}),{Consumer:Akt}=Ot,Xj={};function na(e){const t=m.useContext(Ot),{getPrefixCls:r,direction:n,getPopupContainer:a}=t,i=t[e];return Object.assign(Object.assign({classNames:Xj,styles:Xj},i),{getPrefixCls:r,direction:n,getPopupContainer:a})}const yFe=`-ant-${Date.now()}-${Math.random()}`;function bFe(e,t){const r={},n=(o,l)=>{let s=o.clone();return s=(l==null?void 0:l(s))||s,s.toRgbString()},a=(o,l)=>{const s=new $r(o),u=qb(s.toRgbString());r[`${l}-color`]=n(s),r[`${l}-color-disabled`]=u[1],r[`${l}-color-hover`]=u[4],r[`${l}-color-active`]=u[6],r[`${l}-color-outline`]=s.clone().setA(.2).toRgbString(),r[`${l}-color-deprecated-bg`]=u[0],r[`${l}-color-deprecated-border`]=u[2]};if(t.primaryColor){a(t.primaryColor,\"primary\");const o=new $r(t.primaryColor),l=qb(o.toRgbString());l.forEach((u,c)=>{r[`primary-${c+1}`]=u}),r[\"primary-color-deprecated-l-35\"]=n(o,u=>u.lighten(35)),r[\"primary-color-deprecated-l-20\"]=n(o,u=>u.lighten(20)),r[\"primary-color-deprecated-t-20\"]=n(o,u=>u.tint(20)),r[\"primary-color-deprecated-t-50\"]=n(o,u=>u.tint(50)),r[\"primary-color-deprecated-f-12\"]=n(o,u=>u.setA(u.a*.12));const s=new $r(l[0]);r[\"primary-color-active-deprecated-f-30\"]=n(s,u=>u.setA(u.a*.3)),r[\"primary-color-active-deprecated-d-02\"]=n(s,u=>u.darken(2))}return t.successColor&&a(t.successColor,\"success\"),t.warningColor&&a(t.warningColor,\"warning\"),t.errorColor&&a(t.errorColor,\"error\"),t.infoColor&&a(t.infoColor,\"info\"),`\n :root {\n ${Object.keys(r).map(o=>`--${e}-${o}: ${r[o]};`).join(`\n`)}\n }\n `.trim()}function xFe(e,t){const r=bFe(e,t);ki()&&Uc(r,`${yFe}-dynamic-theme`)}const Ui=m.createContext(!1),T7=({children:e,disabled:t})=>{const r=m.useContext(Ui);return m.createElement(Ui.Provider,{value:t??r},e)},Gp=m.createContext(void 0),CFe=({children:e,size:t})=>{const r=m.useContext(Gp);return m.createElement(Gp.Provider,{value:t||r},e)};function FFe(){const e=m.useContext(Ui),t=m.useContext(Gp);return{componentDisabled:e,componentSize:t}}var Dne=Jn(function e(){Xn(this,e)}),Ane=\"CALC_UNIT\",SFe=new RegExp(Ane,\"g\");function f_(e){return typeof e==\"number\"?\"\".concat(e).concat(Ane):e}var wFe=function(e){Vl(r,e);var t=Ts(r);function r(n,a){var i;Xn(this,r),i=t.call(this),Z(Rt(i),\"result\",\"\"),Z(Rt(i),\"unitlessCssVar\",void 0),Z(Rt(i),\"lowPriority\",void 0);var o=Nt(n);return i.unitlessCssVar=a,n instanceof r?i.result=\"(\".concat(n.result,\")\"):o===\"number\"?i.result=f_(n):o===\"string\"&&(i.result=n),i}return Jn(r,[{key:\"add\",value:function(a){return a instanceof r?this.result=\"\".concat(this.result,\" + \").concat(a.getResult()):(typeof a==\"number\"||typeof a==\"string\")&&(this.result=\"\".concat(this.result,\" + \").concat(f_(a))),this.lowPriority=!0,this}},{key:\"sub\",value:function(a){return a instanceof r?this.result=\"\".concat(this.result,\" - \").concat(a.getResult()):(typeof a==\"number\"||typeof a==\"string\")&&(this.result=\"\".concat(this.result,\" - \").concat(f_(a))),this.lowPriority=!0,this}},{key:\"mul\",value:function(a){return this.lowPriority&&(this.result=\"(\".concat(this.result,\")\")),a instanceof r?this.result=\"\".concat(this.result,\" * \").concat(a.getResult(!0)):(typeof a==\"number\"||typeof a==\"string\")&&(this.result=\"\".concat(this.result,\" * \").concat(a)),this.lowPriority=!1,this}},{key:\"div\",value:function(a){return this.lowPriority&&(this.result=\"(\".concat(this.result,\")\")),a instanceof r?this.result=\"\".concat(this.result,\" / \").concat(a.getResult(!0)):(typeof a==\"number\"||typeof a==\"string\")&&(this.result=\"\".concat(this.result,\" / \").concat(a)),this.lowPriority=!1,this}},{key:\"getResult\",value:function(a){return this.lowPriority||a?\"(\".concat(this.result,\")\"):this.result}},{key:\"equal\",value:function(a){var i=this,o=a||{},l=o.unit,s=!0;return typeof l==\"boolean\"?s=l:Array.from(this.unitlessCssVar).some(function(u){return i.result.includes(u)})&&(s=!1),this.result=this.result.replace(SFe,s?\"px\":\"\"),typeof this.lowPriority<\"u\"?\"calc(\".concat(this.result,\")\"):this.result}}]),r}(Dne),EFe=function(e){Vl(r,e);var t=Ts(r);function r(n){var a;return Xn(this,r),a=t.call(this),Z(Rt(a),\"result\",0),n instanceof r?a.result=n.result:typeof n==\"number\"&&(a.result=n),a}return Jn(r,[{key:\"add\",value:function(a){return a instanceof r?this.result+=a.result:typeof a==\"number\"&&(this.result+=a),this}},{key:\"sub\",value:function(a){return a instanceof r?this.result-=a.result:typeof a==\"number\"&&(this.result-=a),this}},{key:\"mul\",value:function(a){return a instanceof r?this.result*=a.result:typeof a==\"number\"&&(this.result*=a),this}},{key:\"div\",value:function(a){return a instanceof r?this.result/=a.result:typeof a==\"number\"&&(this.result/=a),this}},{key:\"equal\",value:function(){return this.result}}]),r}(Dne),DFe=function(t,r){var n=t===\"css\"?wFe:EFe;return function(a){return new n(a,r)}},Jj=function(t,r){return\"\".concat([r,t.replace(/([A-Z]+)([A-Z][a-z]+)/g,\"$1-$2\").replace(/([a-z])([A-Z])/g,\"$1-$2\")].filter(Boolean).join(\"-\"))};function Pr(e){var t=m.useRef();t.current=e;var r=m.useCallback(function(){for(var n,a=arguments.length,i=new Array(a),o=0;o<a;o++)i[o]=arguments[o];return(n=t.current)===null||n===void 0?void 0:n.call.apply(n,[t].concat(i))},[]);return r}function Up(e){var t=m.useRef(!1),r=m.useState(e),n=ve(r,2),a=n[0],i=n[1];m.useEffect(function(){return t.current=!1,function(){t.current=!0}},[]);function o(l,s){s&&t.current||i(l)}return[a,o]}function h_(e){return e!==void 0}function un(e,t){var r=t||{},n=r.defaultValue,a=r.value,i=r.onChange,o=r.postState,l=Up(function(){return h_(a)?a:h_(n)?typeof n==\"function\"?n():n:typeof e==\"function\"?e():e}),s=ve(l,2),u=s[0],c=s[1],d=a!==void 0?a:u,f=o?o(d):d,h=Pr(i),p=Up([d]),v=ve(p,2),g=v[0],y=v[1];Fp(function(){var x=g[0];u!==x&&h(u,x)},[g]),Fp(function(){h_(a)||c(a)},[a]);var b=Pr(function(x,F){c(x,F),y([d],F)});return[f,b]}function Zj(e,t,r,n){var a=ae({},t[e]);if(n!=null&&n.deprecatedTokens){var i=n.deprecatedTokens;i.forEach(function(l){var s=ve(l,2),u=s[0],c=s[1];if(a!=null&&a[u]||a!=null&&a[c]){var d;(d=a[c])!==null&&d!==void 0||(a[c]=a==null?void 0:a[u])}})}var o=ae(ae({},r),a);return Object.keys(o).forEach(function(l){o[l]===t[l]&&delete o[l]}),o}var _ne=typeof CSSINJS_STATISTIC<\"u\",Y8=!0;function Sr(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];if(!_ne)return Object.assign.apply(Object,[{}].concat(t));Y8=!1;var n={};return t.forEach(function(a){if(Nt(a)===\"object\"){var i=Object.keys(a);i.forEach(function(o){Object.defineProperty(n,o,{configurable:!0,enumerable:!0,get:function(){return a[o]}})})}}),Y8=!0,n}var Qj={};function AFe(){}var _Fe=function(t){var r,n=t,a=AFe;return _ne&&typeof Proxy<\"u\"&&(r=new Set,n=new Proxy(t,{get:function(o,l){if(Y8){var s;(s=r)===null||s===void 0||s.add(l)}return o[l]}}),a=function(o,l){var s;Qj[o]={global:Array.from(r),component:ae(ae({},(s=Qj[o])===null||s===void 0?void 0:s.component),l)}}),{token:n,keys:r,flush:a}};function ez(e,t,r){if(typeof r==\"function\"){var n;return r(Sr(t,(n=t[e])!==null&&n!==void 0?n:{}))}return r??{}}function TFe(e){return e===\"js\"?{max:Math.max,min:Math.min}:{max:function(){for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];return\"max(\".concat(n.map(function(i){return re(i)}).join(\",\"),\")\")},min:function(){for(var r=arguments.length,n=new Array(r),a=0;a<r;a++)n[a]=arguments[a];return\"min(\".concat(n.map(function(i){return re(i)}).join(\",\"),\")\")}}}var IFe=1e3*60*10,kFe=function(){function e(){Xn(this,e),Z(this,\"map\",new Map),Z(this,\"objectIDMap\",new WeakMap),Z(this,\"nextID\",0),Z(this,\"lastAccessBeat\",new Map),Z(this,\"accessBeat\",0)}return Jn(e,[{key:\"set\",value:function(r,n){this.clear();var a=this.getCompositeKey(r);this.map.set(a,n),this.lastAccessBeat.set(a,Date.now())}},{key:\"get\",value:function(r){var n=this.getCompositeKey(r),a=this.map.get(n);return this.lastAccessBeat.set(n,Date.now()),this.accessBeat+=1,a}},{key:\"getCompositeKey\",value:function(r){var n=this,a=r.map(function(i){return i&&Nt(i)===\"object\"?\"obj_\".concat(n.getObjectID(i)):\"\".concat(Nt(i),\"_\").concat(i)});return a.join(\"|\")}},{key:\"getObjectID\",value:function(r){if(this.objectIDMap.has(r))return this.objectIDMap.get(r);var n=this.nextID;return this.objectIDMap.set(r,n),this.nextID+=1,n}},{key:\"clear\",value:function(){var r=this;if(this.accessBeat>1e4){var n=Date.now();this.lastAccessBeat.forEach(function(a,i){n-a>IFe&&(r.map.delete(i),r.lastAccessBeat.delete(i))}),this.accessBeat=0}}}]),e}(),tz=new kFe;function RFe(e,t){return le.useMemo(function(){var r=tz.get(t);if(r)return r;var n=e();return tz.set(t,n),n},t)}var MFe=function(){return{}};function PFe(e){var t=e.useCSP,r=t===void 0?MFe:t,n=e.useToken,a=e.usePrefix,i=e.getResetStyles,o=e.getCommonStyle,l=e.getCompUnitless;function s(f,h,p,v){var g=Array.isArray(f)?f[0]:f;function y(D){return\"\".concat(String(g)).concat(D.slice(0,1).toUpperCase()).concat(D.slice(1))}var b=(v==null?void 0:v.unitless)||{},x=typeof l==\"function\"?l(f):{},F=ae(ae({},x),{},Z({},y(\"zIndexPopup\"),!0));Object.keys(b).forEach(function(D){F[y(D)]=b[D]});var S=ae(ae({},v),{},{unitless:F,prefixToken:y}),E=c(f,h,p,S),w=u(g,p,S);return function(D){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:D,_=E(D,A),I=ve(_,2),M=I[1],T=w(A),k=ve(T,2),R=k[0],P=k[1];return[R,M,P]}}function u(f,h,p){var v=p.unitless,g=p.injectStyle,y=g===void 0?!0:g,b=p.prefixToken,x=p.ignore,F=function(w){var D=w.rootCls,A=w.cssVar,_=A===void 0?{}:A,I=n(),M=I.realToken;return GCe({path:[f],prefix:_.prefix,key:_.key,unitless:v,ignore:x,token:M,scope:D},function(){var T=ez(f,M,h),k=Zj(f,M,T,{deprecatedTokens:p==null?void 0:p.deprecatedTokens});return Object.keys(T).forEach(function(R){k[b(R)]=k[R],delete k[R]}),k}),null},S=function(w){var D=n(),A=D.cssVar;return[function(_){return y&&A?le.createElement(le.Fragment,null,le.createElement(F,{rootCls:w,cssVar:A,component:f}),_):_},A==null?void 0:A.key]};return S}function c(f,h,p){var v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},g=Array.isArray(f)?f:[f,f],y=ve(g,1),b=y[0],x=g.join(\"-\"),F=e.layer||{name:\"antd\"};return function(S){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:S,w=n(),D=w.theme,A=w.realToken,_=w.hashId,I=w.token,M=w.cssVar,T=a(),k=T.rootPrefixCls,R=T.iconPrefixCls,P=r(),B=M?\"css\":\"js\",N=RFe(function(){var H=new Set;return M&&Object.keys(v.unitless||{}).forEach(function(V){H.add(QS(V,M.prefix)),H.add(QS(V,Jj(b,M.prefix)))}),DFe(B,H)},[B,b,M==null?void 0:M.prefix]),O=TFe(B),z=O.max,W=O.min,L={theme:D,token:I,hashId:_,nonce:function(){return P.nonce},clientOnly:v.clientOnly,layer:F,order:v.order||-999};typeof i==\"function\"&&O8(ae(ae({},L),{},{clientOnly:!1,path:[\"Shared\",k]}),function(){return i(I,{prefix:{rootPrefixCls:k,iconPrefixCls:R},csp:P})});var j=O8(ae(ae({},L),{},{path:[x,S,R]}),function(){if(v.injectStyle===!1)return[];var H=_Fe(I),V=H.token,U=H.flush,Q=ez(b,A,p),K=\".\".concat(S),Y=Zj(b,A,Q,{deprecatedTokens:v.deprecatedTokens});M&&Q&&Nt(Q)===\"object\"&&Object.keys(Q).forEach(function(ce){Q[ce]=\"var(\".concat(QS(ce,Jj(b,M.prefix)),\")\")});var ee=Sr(V,{componentCls:K,prefixCls:S,iconCls:\".\".concat(R),antCls:\".\".concat(k),calc:N,max:z,min:W},M?Q:Y),J=h(ee,{hashId:_,prefixCls:S,rootPrefixCls:k,iconPrefixCls:R});U(b,Y);var X=typeof o==\"function\"?o(ee,S,E,v.resetFont):null;return[v.resetStyle===!1?null:X,J]});return[j,_]}}function d(f,h,p){var v=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},g=c(f,h,p,ae({resetStyle:!1,order:-998},v)),y=function(x){var F=x.prefixCls,S=x.rootCls,E=S===void 0?F:S;return g(F,E),null};return y}return{genStyleHooks:s,genSubStyleComponent:d,genComponentStyleHook:c}}const Lf=[\"blue\",\"purple\",\"cyan\",\"green\",\"magenta\",\"pink\",\"red\",\"orange\",\"yellow\",\"volcano\",\"geekblue\",\"lime\",\"gold\"],OFe=\"5.29.3\";function p_(e){return e>=0&&e<=255}function sy(e,t){const{r,g:n,b:a,a:i}=new $r(e).toRgb();if(i<1)return e;const{r:o,g:l,b:s}=new $r(t).toRgb();for(let u=.01;u<=1;u+=.01){const c=Math.round((r-o*(1-u))/u),d=Math.round((n-l*(1-u))/u),f=Math.round((a-s*(1-u))/u);if(p_(c)&&p_(d)&&p_(f))return new $r({r:c,g:d,b:f,a:Math.round(u*100)/100}).toRgbString()}return new $r({r,g:n,b:a,a:1}).toRgbString()}var BFe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function Tne(e){const{override:t}=e,r=BFe(e,[\"override\"]),n=Object.assign({},t);Object.keys(Yb).forEach(f=>{delete n[f]});const a=Object.assign(Object.assign({},r),n),i=480,o=576,l=768,s=992,u=1200,c=1600;if(a.motion===!1){const f=\"0s\";a.motionDurationFast=f,a.motionDurationMid=f,a.motionDurationSlow=f}return Object.assign(Object.assign(Object.assign({},a),{colorFillContent:a.colorFillSecondary,colorFillContentHover:a.colorFill,colorFillAlter:a.colorFillQuaternary,colorBgContainerDisabled:a.colorFillTertiary,colorBorderBg:a.colorBgContainer,colorSplit:sy(a.colorBorderSecondary,a.colorBgContainer),colorTextPlaceholder:a.colorTextQuaternary,colorTextDisabled:a.colorTextQuaternary,colorTextHeading:a.colorText,colorTextLabel:a.colorTextSecondary,colorTextDescription:a.colorTextTertiary,colorTextLightSolid:a.colorWhite,colorHighlight:a.colorError,colorBgTextHover:a.colorFillSecondary,colorBgTextActive:a.colorFill,colorIcon:a.colorTextTertiary,colorIconHover:a.colorText,colorErrorOutline:sy(a.colorErrorBg,a.colorBgContainer),colorWarningOutline:sy(a.colorWarningBg,a.colorBgContainer),fontSizeIcon:a.fontSizeSM,lineWidthFocus:a.lineWidth*3,lineWidth:a.lineWidth,controlOutlineWidth:a.lineWidth*2,controlInteractiveSize:a.controlHeight/2,controlItemBgHover:a.colorFillTertiary,controlItemBgActive:a.colorPrimaryBg,controlItemBgActiveHover:a.colorPrimaryBgHover,controlItemBgActiveDisabled:a.colorFill,controlTmpOutline:a.colorFillQuaternary,controlOutline:sy(a.colorPrimaryBg,a.colorBgContainer),lineType:a.lineType,borderRadius:a.borderRadius,borderRadiusXS:a.borderRadiusXS,borderRadiusSM:a.borderRadiusSM,borderRadiusLG:a.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:\"none\",linkHoverDecoration:\"none\",linkFocusDecoration:\"none\",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:a.sizeXXS,paddingXS:a.sizeXS,paddingSM:a.sizeSM,padding:a.size,paddingMD:a.sizeMD,paddingLG:a.sizeLG,paddingXL:a.sizeXL,paddingContentHorizontalLG:a.sizeLG,paddingContentVerticalLG:a.sizeMS,paddingContentHorizontal:a.sizeMS,paddingContentVertical:a.sizeSM,paddingContentHorizontalSM:a.size,paddingContentVerticalSM:a.sizeXS,marginXXS:a.sizeXXS,marginXS:a.sizeXS,marginSM:a.sizeSM,margin:a.size,marginMD:a.sizeMD,marginLG:a.sizeLG,marginXL:a.sizeXL,marginXXL:a.sizeXXL,boxShadow:`\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,boxShadowSecondary:`\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,boxShadowTertiary:`\n 0 1px 2px 0 rgba(0, 0, 0, 0.03),\n 0 1px 6px -1px rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(0, 0, 0, 0.02)\n `,screenXS:i,screenXSMin:i,screenXSMax:o-1,screenSM:o,screenSMMin:o,screenSMMax:l-1,screenMD:l,screenMDMin:l,screenMDMax:s-1,screenLG:s,screenLGMin:s,screenLGMax:u-1,screenXL:u,screenXLMin:u,screenXLMax:c-1,screenXXL:c,screenXXLMin:c,boxShadowPopoverArrow:\"2px 2px 5px rgba(0, 0, 0, 0.05)\",boxShadowCard:`\n 0 1px 2px -2px ${new $r(\"rgba(0, 0, 0, 0.16)\").toRgbString()},\n 0 3px 6px 0 ${new $r(\"rgba(0, 0, 0, 0.12)\").toRgbString()},\n 0 5px 12px 4px ${new $r(\"rgba(0, 0, 0, 0.09)\").toRgbString()}\n `,boxShadowDrawerRight:`\n -6px 0 16px 0 rgba(0, 0, 0, 0.08),\n -3px 0 6px -4px rgba(0, 0, 0, 0.12),\n -9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,boxShadowDrawerLeft:`\n 6px 0 16px 0 rgba(0, 0, 0, 0.08),\n 3px 0 6px -4px rgba(0, 0, 0, 0.12),\n 9px 0 28px 8px rgba(0, 0, 0, 0.05)\n `,boxShadowDrawerUp:`\n 0 6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 9px 28px 8px rgba(0, 0, 0, 0.05)\n `,boxShadowDrawerDown:`\n 0 -6px 16px 0 rgba(0, 0, 0, 0.08),\n 0 -3px 6px -4px rgba(0, 0, 0, 0.12),\n 0 -9px 28px 8px rgba(0, 0, 0, 0.05)\n `,boxShadowTabsOverflowLeft:\"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)\",boxShadowTabsOverflowRight:\"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)\",boxShadowTabsOverflowTop:\"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)\",boxShadowTabsOverflowBottom:\"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)\"}),n)}var rz=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Ine={lineHeight:!0,lineHeightSM:!0,lineHeightLG:!0,lineHeightHeading1:!0,lineHeightHeading2:!0,lineHeightHeading3:!0,lineHeightHeading4:!0,lineHeightHeading5:!0,opacityLoading:!0,fontWeightStrong:!0,zIndexPopupBase:!0,zIndexBase:!0,opacityImage:!0},NFe={motionBase:!0,motionUnit:!0},$Fe={screenXS:!0,screenXSMin:!0,screenXSMax:!0,screenSM:!0,screenSMMin:!0,screenSMMax:!0,screenMD:!0,screenMDMin:!0,screenMDMax:!0,screenLG:!0,screenLGMin:!0,screenLGMax:!0,screenXL:!0,screenXLMin:!0,screenXLMax:!0,screenXXL:!0,screenXXLMin:!0},kne=(e,t,r)=>{const n=r.getDerivativeToken(e),{override:a}=t,i=rz(t,[\"override\"]);let o=Object.assign(Object.assign({},n),{override:a});return o=Tne(o),i&&Object.entries(i).forEach(([l,s])=>{const{theme:u}=s,c=rz(s,[\"theme\"]);let d=c;u&&(d=kne(Object.assign(Object.assign({},o),c),{override:c},u)),o[l]=d}),o};function Mi(){const{token:e,hashed:t,theme:r,override:n,cssVar:a}=le.useContext(Ene),i=`${OFe}-${t||\"\"}`,o=r||wne,[l,s,u]=gCe(o,[Yb,e],{salt:i,override:n,getComputedToken:kne,formatToken:Tne,cssVar:a&&{prefix:a.prefix,key:a.key,unitless:Ine,ignore:NFe,preserve:$Fe}});return[o,u,t?s:\"\",l,a]}const $l={overflow:\"hidden\",whiteSpace:\"nowrap\",textOverflow:\"ellipsis\"},Hr=(e,t=!1)=>({boxSizing:\"border-box\",margin:0,padding:0,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,listStyle:\"none\",fontFamily:t?\"inherit\":e.fontFamily}),pm=()=>({display:\"inline-flex\",alignItems:\"center\",color:\"inherit\",fontStyle:\"normal\",lineHeight:0,textAlign:\"center\",textTransform:\"none\",verticalAlign:\"-0.125em\",textRendering:\"optimizeLegibility\",\"-webkit-font-smoothing\":\"antialiased\",\"-moz-osx-font-smoothing\":\"grayscale\",\"> *\":{lineHeight:1},svg:{display:\"inline-block\"}}),sc=()=>({\"&::before\":{display:\"table\",content:'\"\"'},\"&::after\":{display:\"table\",clear:\"both\",content:'\"\"'}}),LFe=e=>({a:{color:e.colorLink,textDecoration:e.linkDecoration,backgroundColor:\"transparent\",outline:\"none\",cursor:\"pointer\",transition:`color ${e.motionDurationSlow}`,\"-webkit-text-decoration-skip\":\"objects\",\"&:hover\":{color:e.colorLinkHover},\"&:active\":{color:e.colorLinkActive},\"&:active, &:hover\":{textDecoration:e.linkHoverDecoration,outline:0},\"&:focus\":{textDecoration:e.linkFocusDecoration,outline:0},\"&[disabled]\":{color:e.colorTextDisabled,cursor:\"not-allowed\"}}}),jFe=(e,t,r,n)=>{const a=`[class^=\"${t}\"], [class*=\" ${t}\"]`,i=r?`.${r}`:a,o={boxSizing:\"border-box\",\"&::before, &::after\":{boxSizing:\"border-box\"}};let l={};return n!==!1&&(l={fontFamily:e.fontFamily,fontSize:e.fontSize}),{[i]:Object.assign(Object.assign(Object.assign({},l),o),{[a]:o})}},uc=(e,t)=>({outline:`${re(e.lineWidthFocus)} solid ${e.colorPrimaryBorder}`,outlineOffset:t??1,transition:\"outline-offset 0s, outline 0s\"}),pl=(e,t)=>({\"&:focus-visible\":uc(e,t)}),Rne=e=>({[`.${e}`]:Object.assign(Object.assign({},pm()),{[`.${e} .${e}-icon`]:{display:\"block\"}})}),I7=e=>Object.assign(Object.assign({color:e.colorLink,textDecoration:e.linkDecoration,outline:\"none\",cursor:\"pointer\",transition:`all ${e.motionDurationSlow}`,border:0,padding:0,background:\"none\",userSelect:\"none\"},pl(e)),{\"&:hover\":{color:e.colorLinkHover,textDecoration:e.linkHoverDecoration},\"&:focus\":{color:e.colorLinkHover,textDecoration:e.linkFocusDecoration},\"&:active\":{color:e.colorLinkActive,textDecoration:e.linkHoverDecoration}}),{genStyleHooks:kr,genComponentStyleHook:zFe,genSubStyleComponent:yg}=PFe({usePrefix:()=>{const{getPrefixCls:e,iconPrefixCls:t}=m.useContext(Ot);return{rootPrefixCls:e(),iconPrefixCls:t}},useToken:()=>{const[e,t,r,n,a]=Mi();return{theme:e,realToken:t,hashId:r,token:n,cssVar:a}},useCSP:()=>{const{csp:e}=m.useContext(Ot);return e??{}},getResetStyles:(e,t)=>{var r;const n=LFe(e);return[n,{\"&\":n},Rne((r=t==null?void 0:t.prefix.iconPrefixCls)!==null&&r!==void 0?r:Q4)]},getCommonStyle:jFe,getCompUnitless:()=>Ine});function e6(e,t){return Lf.reduce((r,n)=>{const a=e[`${n}1`],i=e[`${n}3`],o=e[`${n}6`],l=e[`${n}7`];return Object.assign(Object.assign({},r),t(n,{lightColor:a,lightBorderColor:i,darkColor:o,textColor:l}))},{})}const HFe=(e,t)=>{const[r,n]=Mi();return O8({token:n,hashId:\"\",path:[\"ant-design-icons\",e],nonce:()=>t==null?void 0:t.nonce,layer:{name:\"antd\"}},()=>Rne(e))},VFe=Object.assign({},Z2),{useId:nz}=VFe,WFe=()=>\"\",GFe=typeof nz>\"u\"?WFe:nz;function UFe(e,t,r){var n;bc();const a=e||{},i=a.inherit===!1||!t?Object.assign(Object.assign({},K8),{hashed:(n=t==null?void 0:t.hashed)!==null&&n!==void 0?n:K8.hashed,cssVar:t==null?void 0:t.cssVar}):t,o=GFe();return hm(()=>{var l,s;if(!e)return t;const u=Object.assign({},i.components);Object.keys(e.components||{}).forEach(f=>{u[f]=Object.assign(Object.assign({},u[f]),e.components[f])});const c=`css-var-${o.replace(/:/g,\"\")}`,d=((l=a.cssVar)!==null&&l!==void 0?l:i.cssVar)&&Object.assign(Object.assign(Object.assign({prefix:r==null?void 0:r.prefixCls},typeof i.cssVar==\"object\"?i.cssVar:{}),typeof a.cssVar==\"object\"?a.cssVar:{}),{key:typeof a.cssVar==\"object\"&&((s=a.cssVar)===null||s===void 0?void 0:s.key)||c});return Object.assign(Object.assign(Object.assign({},i),a),{token:Object.assign(Object.assign({},i.token),a.token),components:u,cssVar:d})},[a,i],(l,s)=>l.some((u,c)=>{const d=s[c];return!vu(u,d,!0)}))}var KFe=[\"children\"],Mne=m.createContext({});function YFe(e){var t=e.children,r=Xt(e,KFe);return m.createElement(Mne.Provider,{value:r},t)}var qFe=function(e){Vl(r,e);var t=Ts(r);function r(){return Xn(this,r),t.apply(this,arguments)}return Jn(r,[{key:\"render\",value:function(){return this.props.children}}]),r}(m.Component);function XFe(e){var t=m.useReducer(function(l){return l+1},0),r=ve(t,2),n=r[1],a=m.useRef(e),i=Pr(function(){return a.current}),o=Pr(function(l){a.current=typeof l==\"function\"?l(a.current):l,n()});return[i,o]}var zd=\"none\",LC=\"appear\",jC=\"enter\",zC=\"leave\",az=\"none\",Xs=\"prepare\",e0=\"start\",t0=\"active\",k7=\"end\",Pne=\"prepared\";function iz(e,t){var r={};return r[e.toLowerCase()]=t.toLowerCase(),r[\"Webkit\".concat(e)]=\"webkit\".concat(t),r[\"Moz\".concat(e)]=\"moz\".concat(t),r[\"ms\".concat(e)]=\"MS\".concat(t),r[\"O\".concat(e)]=\"o\".concat(t.toLowerCase()),r}function JFe(e,t){var r={animationend:iz(\"Animation\",\"AnimationEnd\"),transitionend:iz(\"Transition\",\"TransitionEnd\")};return e&&(\"AnimationEvent\"in t||delete r.animationend.animation,\"TransitionEvent\"in t||delete r.transitionend.transition),r}var ZFe=JFe(ki(),typeof window<\"u\"?window:{}),One={};if(ki()){var QFe=document.createElement(\"div\");One=QFe.style}var HC={};function Bne(e){if(HC[e])return HC[e];var t=ZFe[e];if(t)for(var r=Object.keys(t),n=r.length,a=0;a<n;a+=1){var i=r[a];if(Object.prototype.hasOwnProperty.call(t,i)&&i in One)return HC[e]=t[i],HC[e]}return\"\"}var Nne=Bne(\"animationend\"),$ne=Bne(\"transitionend\"),Lne=!!(Nne&&$ne),oz=Nne||\"animationend\",lz=$ne||\"transitionend\";function sz(e,t){if(!e)return null;if(Nt(e)===\"object\"){var r=t.replace(/-\\w/g,function(n){return n[1].toUpperCase()});return e[r]}return\"\".concat(e,\"-\").concat(t)}const eSe=function(e){var t=m.useRef();function r(a){a&&(a.removeEventListener(lz,e),a.removeEventListener(oz,e))}function n(a){t.current&&t.current!==a&&r(t.current),a&&a!==t.current&&(a.addEventListener(lz,e),a.addEventListener(oz,e),t.current=a)}return m.useEffect(function(){return function(){r(t.current)}},[]),[n,r]};var jne=ki()?m.useLayoutEffect:m.useEffect;const tSe=function(){var e=m.useRef(null);function t(){Tr.cancel(e.current)}function r(n){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:2;t();var i=Tr(function(){a<=1?n({isCanceled:function(){return i!==e.current}}):r(n,a-1)});e.current=i}return m.useEffect(function(){return function(){t()}},[]),[r,t]};var rSe=[Xs,e0,t0,k7],nSe=[Xs,Pne],zne=!1,aSe=!0;function Hne(e){return e===t0||e===k7}const iSe=function(e,t,r){var n=Up(az),a=ve(n,2),i=a[0],o=a[1],l=tSe(),s=ve(l,2),u=s[0],c=s[1];function d(){o(Xs,!0)}var f=t?nSe:rSe;return jne(function(){if(i!==az&&i!==k7){var h=f.indexOf(i),p=f[h+1],v=r(i);v===zne?o(p,!0):p&&u(function(g){function y(){g.isCanceled()||o(p,!0)}v===!0?y():Promise.resolve(v).then(y)})}},[e,i]),m.useEffect(function(){return function(){c()}},[]),[d,i]};function oSe(e,t,r,n){var a=n.motionEnter,i=a===void 0?!0:a,o=n.motionAppear,l=o===void 0?!0:o,s=n.motionLeave,u=s===void 0?!0:s,c=n.motionDeadline,d=n.motionLeaveImmediately,f=n.onAppearPrepare,h=n.onEnterPrepare,p=n.onLeavePrepare,v=n.onAppearStart,g=n.onEnterStart,y=n.onLeaveStart,b=n.onAppearActive,x=n.onEnterActive,F=n.onLeaveActive,S=n.onAppearEnd,E=n.onEnterEnd,w=n.onLeaveEnd,D=n.onVisibleChanged,A=Up(),_=ve(A,2),I=_[0],M=_[1],T=XFe(zd),k=ve(T,2),R=k[0],P=k[1],B=Up(null),N=ve(B,2),O=N[0],z=N[1],W=R(),L=m.useRef(!1),j=m.useRef(null);function H(){return r()}var V=m.useRef(!1);function U(){P(zd),z(null,!0)}var Q=Pr(function(ye){var we=R();if(we!==zd){var Fe=H();if(!(ye&&!ye.deadline&&ye.target!==Fe)){var me=V.current,Me;we===LC&&me?Me=S==null?void 0:S(Fe,ye):we===jC&&me?Me=E==null?void 0:E(Fe,ye):we===zC&&me&&(Me=w==null?void 0:w(Fe,ye)),me&&Me!==!1&&U()}}}),K=eSe(Q),Y=ve(K,1),ee=Y[0],J=function(we){switch(we){case LC:return Z(Z(Z({},Xs,f),e0,v),t0,b);case jC:return Z(Z(Z({},Xs,h),e0,g),t0,x);case zC:return Z(Z(Z({},Xs,p),e0,y),t0,F);default:return{}}},X=m.useMemo(function(){return J(W)},[W]),ce=iSe(W,!e,function(ye){if(ye===Xs){var we=X[Xs];return we?we(H()):zne}if(ie in X){var Fe;z(((Fe=X[ie])===null||Fe===void 0?void 0:Fe.call(X,H(),null))||null)}return ie===t0&&W!==zd&&(ee(H()),c>0&&(clearTimeout(j.current),j.current=setTimeout(function(){Q({deadline:!0})},c))),ie===Pne&&U(),aSe}),oe=ve(ce,2),ue=oe[0],ie=oe[1],fe=Hne(ie);V.current=fe;var xe=m.useRef(null);jne(function(){if(!(L.current&&xe.current===t)){M(t);var ye=L.current;L.current=!0;var we;!ye&&t&&l&&(we=LC),ye&&t&&i&&(we=jC),(ye&&!t&&u||!ye&&d&&!t&&u)&&(we=zC);var Fe=J(we);we&&(e||Fe[Xs])?(P(we),ue()):P(zd),xe.current=t}},[t]),m.useEffect(function(){(W===LC&&!l||W===jC&&!i||W===zC&&!u)&&P(zd)},[l,i,u]),m.useEffect(function(){return function(){L.current=!1,clearTimeout(j.current)}},[]);var Ee=m.useRef(!1);m.useEffect(function(){I&&(Ee.current=!0),I!==void 0&&W===zd&&((Ee.current||I)&&(D==null||D(I)),Ee.current=!0)},[I,W]);var De=O;return X[Xs]&&ie===e0&&(De=ae({transition:\"none\"},De)),[W,ie,De,I??t]}function lSe(e){var t=e;Nt(e)===\"object\"&&(t=e.transitionSupport);function r(a,i){return!!(a.motionName&&t&&i!==!1)}var n=m.forwardRef(function(a,i){var o=a.visible,l=o===void 0?!0:o,s=a.removeOnLeave,u=s===void 0?!0:s,c=a.forceRender,d=a.children,f=a.motionName,h=a.leavedClassName,p=a.eventProps,v=m.useContext(Mne),g=v.motion,y=r(a,g),b=m.useRef(),x=m.useRef();function F(){try{return b.current instanceof HTMLElement?b.current:ZS(x.current)}catch{return null}}var S=oSe(y,l,F,a),E=ve(S,4),w=E[0],D=E[1],A=E[2],_=E[3],I=m.useRef(_);_&&(I.current=!0);var M=m.useCallback(function(N){b.current=N,Vb(i,N)},[i]),T,k=ae(ae({},p),{},{visible:l});if(!d)T=null;else if(w===zd)_?T=d(ae({},k),M):!u&&I.current&&h?T=d(ae(ae({},k),{},{className:h}),M):c||!u&&!h?T=d(ae(ae({},k),{},{style:{display:\"none\"}}),M):T=null;else{var R;D===Xs?R=\"prepare\":Hne(D)?R=\"active\":D===e0&&(R=\"start\");var P=sz(f,\"\".concat(w,\"-\").concat(R));T=d(ae(ae({},k),{},{className:ne(sz(f,w),Z(Z({},P,P&&R),f,typeof f==\"string\")),style:A}),M)}if(m.isValidElement(T)&&mu(T)){var B=rh(T);B||(T=m.cloneElement(T,{ref:M}))}return m.createElement(qFe,{ref:x},T)});return n.displayName=\"CSSMotion\",n}const fi=lSe(Lne);var q8=\"add\",X8=\"keep\",J8=\"remove\",m_=\"removed\";function sSe(e){var t;return e&&Nt(e)===\"object\"&&\"key\"in e?t=e:t={key:e},ae(ae({},t),{},{key:String(t.key)})}function Z8(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return e.map(sSe)}function uSe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=[],n=0,a=t.length,i=Z8(e),o=Z8(t);i.forEach(function(u){for(var c=!1,d=n;d<a;d+=1){var f=o[d];if(f.key===u.key){n<d&&(r=r.concat(o.slice(n,d).map(function(h){return ae(ae({},h),{},{status:q8})})),n=d),r.push(ae(ae({},f),{},{status:X8})),n+=1,c=!0;break}}c||r.push(ae(ae({},u),{},{status:J8}))}),n<a&&(r=r.concat(o.slice(n).map(function(u){return ae(ae({},u),{},{status:q8})})));var l={};r.forEach(function(u){var c=u.key;l[c]=(l[c]||0)+1});var s=Object.keys(l).filter(function(u){return l[u]>1});return s.forEach(function(u){r=r.filter(function(c){var d=c.key,f=c.status;return d!==u||f!==J8}),r.forEach(function(c){c.key===u&&(c.status=X8)})}),r}var cSe=[\"component\",\"children\",\"onVisibleChanged\",\"onAllRemoved\"],dSe=[\"status\"],fSe=[\"eventProps\",\"visible\",\"children\",\"motionName\",\"motionAppear\",\"motionEnter\",\"motionLeave\",\"motionLeaveImmediately\",\"motionDeadline\",\"removeOnLeave\",\"leavedClassName\",\"onAppearPrepare\",\"onAppearStart\",\"onAppearActive\",\"onAppearEnd\",\"onEnterStart\",\"onEnterActive\",\"onEnterEnd\",\"onLeaveStart\",\"onLeaveActive\",\"onLeaveEnd\"];function hSe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fi,r=function(n){Vl(i,n);var a=Ts(i);function i(){var o;Xn(this,i);for(var l=arguments.length,s=new Array(l),u=0;u<l;u++)s[u]=arguments[u];return o=a.call.apply(a,[this].concat(s)),Z(Rt(o),\"state\",{keyEntities:[]}),Z(Rt(o),\"removeKey\",function(c){o.setState(function(d){var f=d.keyEntities.map(function(h){return h.key!==c?h:ae(ae({},h),{},{status:m_})});return{keyEntities:f}},function(){var d=o.state.keyEntities,f=d.filter(function(h){var p=h.status;return p!==m_}).length;f===0&&o.props.onAllRemoved&&o.props.onAllRemoved()})}),o}return Jn(i,[{key:\"render\",value:function(){var l=this,s=this.state.keyEntities,u=this.props,c=u.component,d=u.children,f=u.onVisibleChanged;u.onAllRemoved;var h=Xt(u,cSe),p=c||m.Fragment,v={};return fSe.forEach(function(g){v[g]=h[g],delete h[g]}),delete h.keys,m.createElement(p,h,s.map(function(g,y){var b=g.status,x=Xt(g,dSe),F=b===q8||b===X8;return m.createElement(t,Ce({},v,{key:x.key,visible:F,eventProps:x,onVisibleChanged:function(E){f==null||f(E,{key:x.key}),E||l.removeKey(x.key)}}),function(S,E){return d(ae(ae({},S),{},{index:y}),E)})}))}}],[{key:\"getDerivedStateFromProps\",value:function(l,s){var u=l.keys,c=s.keyEntities,d=Z8(u),f=uSe(c,d);return{keyEntities:f.filter(function(h){var p=c.find(function(v){var g=v.key;return h.key===g});return!(p&&p.status===m_&&h.status===J8)})}}}]),i}(m.Component);return Z(r,\"defaultProps\",{component:\"div\"}),r}const R7=hSe(Lne),uz=m.createContext(!0);function pSe(e){const t=m.useContext(uz),{children:r}=e,[,n]=Mi(),{motion:a}=n,i=m.useRef(!1);return i.current||(i.current=t!==a),i.current?m.createElement(uz.Provider,{value:a},m.createElement(YFe,{motion:a},r)):r}const mSe=()=>null;var vSe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const gSe=[\"getTargetContainer\",\"getPopupContainer\",\"renderEmpty\",\"input\",\"pagination\",\"form\",\"select\",\"button\"];let xE,Vne,Wne,Gne;function ow(){return xE||Xb}function ySe(){return Vne||Q4}function bSe(e){return Object.keys(e).some(t=>t.endsWith(\"Color\"))}const xSe=e=>{const{prefixCls:t,iconPrefixCls:r,theme:n,holderRender:a}=e;t!==void 0&&(xE=t),r!==void 0&&(Vne=r),\"holderRender\"in e&&(Gne=a),n&&(bSe(n)?xFe(ow(),n):Wne=n)},Une=()=>({getPrefixCls:(e,t)=>t||(e?`${ow()}-${e}`:ow()),getIconPrefixCls:ySe,getRootPrefixCls:()=>xE||ow(),getTheme:()=>Wne,holderRender:Gne}),CSe=e=>{const{children:t,csp:r,autoInsertSpaceInButton:n,alert:a,anchor:i,form:o,locale:l,componentSize:s,direction:u,space:c,splitter:d,virtual:f,dropdownMatchSelectWidth:h,popupMatchSelectWidth:p,popupOverflow:v,legacyLocale:g,parentContext:y,iconPrefixCls:b,theme:x,componentDisabled:F,segmented:S,statistic:E,spin:w,calendar:D,carousel:A,cascader:_,collapse:I,typography:M,checkbox:T,descriptions:k,divider:R,drawer:P,skeleton:B,steps:N,image:O,layout:z,list:W,mentions:L,modal:j,progress:H,result:V,slider:U,breadcrumb:Q,menu:K,pagination:Y,input:ee,textArea:J,empty:X,badge:ce,radio:oe,rate:ue,switch:ie,transfer:fe,avatar:xe,message:Ee,tag:De,table:ye,card:we,tabs:Fe,timeline:me,timePicker:Me,upload:je,notification:lt,tree:tt,colorPicker:rt,datePicker:dt,rangePicker:Ve,flex:Ie,wave:Je,dropdown:Pe,warning:Ge,tour:Ae,tooltip:_e,popover:$e,popconfirm:Ke,floatButton:pt,floatButtonGroup:_t,variant:ht,inputNumber:gt,treeSelect:Et}=e,xt=m.useCallback((pe,he)=>{const{prefixCls:se}=e;if(he)return he;const de=se||y.getPrefixCls(\"\");return pe?`${de}-${pe}`:de},[y.getPrefixCls,e.prefixCls]),Dt=b||y.iconPrefixCls||Q4,ur=r||y.csp;HFe(Dt,ur);const mr=UFe(x,y.theme,{prefixCls:xt(\"\")}),Tt={csp:ur,autoInsertSpaceInButton:n,alert:a,anchor:i,locale:l||g,direction:u,space:c,splitter:d,virtual:f,popupMatchSelectWidth:p??h,popupOverflow:v,getPrefixCls:xt,iconPrefixCls:Dt,theme:mr,segmented:S,statistic:E,spin:w,calendar:D,carousel:A,cascader:_,collapse:I,typography:M,checkbox:T,descriptions:k,divider:R,drawer:P,skeleton:B,steps:N,image:O,input:ee,textArea:J,layout:z,list:W,mentions:L,modal:j,progress:H,result:V,slider:U,breadcrumb:Q,menu:K,pagination:Y,empty:X,badge:ce,radio:oe,rate:ue,switch:ie,transfer:fe,avatar:xe,message:Ee,tag:De,table:ye,card:we,tabs:Fe,timeline:me,timePicker:Me,upload:je,notification:lt,tree:tt,colorPicker:rt,datePicker:dt,rangePicker:Ve,flex:Ie,wave:Je,dropdown:Pe,warning:Ge,tour:Ae,tooltip:_e,popover:$e,popconfirm:Ke,floatButton:pt,floatButtonGroup:_t,variant:ht,inputNumber:gt,treeSelect:Et},jt=Object.assign({},y);Object.keys(Tt).forEach(pe=>{Tt[pe]!==void 0&&(jt[pe]=Tt[pe])}),gSe.forEach(pe=>{const he=e[pe];he&&(jt[pe]=he)}),typeof n<\"u\"&&(jt.button=Object.assign({autoInsertSpace:n},jt.button));const Lt=hm(()=>jt,jt,(pe,he)=>{const se=Object.keys(pe),de=Object.keys(he);return se.length!==de.length||se.some(ge=>pe[ge]!==he[ge])}),{layer:mt}=m.useContext(ix),it=m.useMemo(()=>({prefixCls:Dt,csp:ur,layer:mt?\"antd\":void 0}),[Dt,ur,mt]);let st=m.createElement(m.Fragment,null,m.createElement(mSe,{dropdownMatchSelectWidth:h}),t);const Ct=m.useMemo(()=>{var pe,he,se,de;return Qv(((pe=ws.Form)===null||pe===void 0?void 0:pe.defaultValidateMessages)||{},((se=(he=Lt.locale)===null||he===void 0?void 0:he.Form)===null||se===void 0?void 0:se.defaultValidateMessages)||{},((de=Lt.form)===null||de===void 0?void 0:de.validateMessages)||{},(o==null?void 0:o.validateMessages)||{})},[Lt,o==null?void 0:o.validateMessages]);Object.keys(Ct).length>0&&(st=m.createElement(gne.Provider,{value:Ct},st)),l&&(st=m.createElement(tFe,{locale:l,_ANT_MARK__:eFe},st)),st=m.createElement(A7.Provider,{value:it},st),s&&(st=m.createElement(CFe,{size:s},st)),st=m.createElement(pSe,null,st);const te=m.useMemo(()=>{const pe=mr||{},{algorithm:he,token:se,components:de,cssVar:ge}=pe,Te=vSe(pe,[\"algorithm\",\"token\",\"components\",\"cssVar\"]),We=he&&(!Array.isArray(he)||he.length>0)?I8(he):wne,ke={};Object.entries(de||{}).forEach(([Oe,at])=>{const Le=Object.assign({},at);\"algorithm\"in Le&&(Le.algorithm===!0?Le.theme=We:(Array.isArray(Le.algorithm)||typeof Le.algorithm==\"function\")&&(Le.theme=I8(Le.algorithm)),delete Le.algorithm),ke[Oe]=Le});const Be=Object.assign(Object.assign({},Yb),se);return Object.assign(Object.assign({},Te),{theme:We,token:Be,components:ke,override:Object.assign({override:Be},ke),cssVar:ge})},[mr]);return x&&(st=m.createElement(Ene.Provider,{value:te},st)),Lt.warning&&(st=m.createElement(XCe.Provider,{value:Lt.warning},st)),F!==void 0&&(st=m.createElement(T7,{disabled:F},st)),m.createElement(Ot.Provider,{value:Lt},st)},Is=e=>{const t=m.useContext(Ot),r=m.useContext(_7);return m.createElement(CSe,Object.assign({parentContext:t,legacyLocale:r},e))};Is.ConfigContext=Ot;Is.SizeContext=Gp;Is.config=xSe;Is.useConfig=FFe;Object.defineProperty(Is,\"SizeContext\",{get:()=>Gp});var FSe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\"}}]},name:\"check-circle\",theme:\"filled\"};function Kne(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}function SSe(e){return Kne(e)instanceof ShadowRoot}function CE(e){return SSe(e)?Kne(e):null}function wSe(e){return e.replace(/-(.)/g,function(t,r){return r.toUpperCase()})}function ESe(e,t){jn(e,\"[@ant-design/icons] \".concat(t))}function cz(e){return Nt(e)===\"object\"&&typeof e.name==\"string\"&&typeof e.theme==\"string\"&&(Nt(e.icon)===\"object\"||typeof e.icon==\"function\")}function dz(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys(e).reduce(function(t,r){var n=e[r];switch(r){case\"class\":t.className=n,delete t.class;break;default:delete t[r],t[wSe(r)]=n}return t},{})}function Q8(e,t,r){return r?le.createElement(e.tag,ae(ae({key:t},dz(e.attrs)),r),(e.children||[]).map(function(n,a){return Q8(n,\"\".concat(t,\"-\").concat(e.tag,\"-\").concat(a))})):le.createElement(e.tag,ae({key:t},dz(e.attrs)),(e.children||[]).map(function(n,a){return Q8(n,\"\".concat(t,\"-\").concat(e.tag,\"-\").concat(a))}))}function Yne(e){return qb(e)[0]}function qne(e){return e?Array.isArray(e)?e:[e]:[]}var DSe=`\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`,ASe=function(t){var r=m.useContext(A7),n=r.csp,a=r.prefixCls,i=r.layer,o=DSe;a&&(o=o.replace(/anticon/g,a)),i&&(o=\"@layer \".concat(i,` {\n`).concat(o,`\n}`)),m.useEffect(function(){var l=t.current,s=CE(l);Uc(o,\"@ant-design-icons\",{prepend:!i,csp:n,attachTo:s})},[])},_Se=[\"icon\",\"className\",\"onClick\",\"style\",\"primaryColor\",\"secondaryColor\"],zy={primaryColor:\"#333\",secondaryColor:\"#E6E6E6\",calculated:!1};function TSe(e){var t=e.primaryColor,r=e.secondaryColor;zy.primaryColor=t,zy.secondaryColor=r||Yne(t),zy.calculated=!!r}function ISe(){return ae({},zy)}var bg=function(t){var r=t.icon,n=t.className,a=t.onClick,i=t.style,o=t.primaryColor,l=t.secondaryColor,s=Xt(t,_Se),u=m.useRef(),c=zy;if(o&&(c={primaryColor:o,secondaryColor:l||Yne(o)}),ASe(u),ESe(cz(r),\"icon should be icon definiton, but got \".concat(r)),!cz(r))return null;var d=r;return d&&typeof d.icon==\"function\"&&(d=ae(ae({},d),{},{icon:d.icon(c.primaryColor,c.secondaryColor)})),Q8(d.icon,\"svg-\".concat(d.name),ae(ae({className:n,onClick:a,style:i,\"data-icon\":d.name,width:\"1em\",height:\"1em\",fill:\"currentColor\",\"aria-hidden\":\"true\"},s),{},{ref:u}))};bg.displayName=\"IconReact\";bg.getTwoToneColors=ISe;bg.setTwoToneColors=TSe;function Xne(e){var t=qne(e),r=ve(t,2),n=r[0],a=r[1];return bg.setTwoToneColors({primaryColor:n,secondaryColor:a})}function kSe(){var e=bg.getTwoToneColors();return e.calculated?[e.primaryColor,e.secondaryColor]:e.primaryColor}var RSe=[\"className\",\"icon\",\"spin\",\"rotate\",\"tabIndex\",\"onClick\",\"twoToneColor\"];Xne(W0.primary);var wt=m.forwardRef(function(e,t){var r=e.className,n=e.icon,a=e.spin,i=e.rotate,o=e.tabIndex,l=e.onClick,s=e.twoToneColor,u=Xt(e,RSe),c=m.useContext(A7),d=c.prefixCls,f=d===void 0?\"anticon\":d,h=c.rootClassName,p=ne(h,f,Z(Z({},\"\".concat(f,\"-\").concat(n.name),!!n.name),\"\".concat(f,\"-spin\"),!!a||n.name===\"loading\"),r),v=o;v===void 0&&l&&(v=-1);var g=i?{msTransform:\"rotate(\".concat(i,\"deg)\"),transform:\"rotate(\".concat(i,\"deg)\")}:void 0,y=qne(s),b=ve(y,2),x=b[0],F=b[1];return m.createElement(\"span\",Ce({role:\"img\",\"aria-label\":n.name},u,{ref:t,tabIndex:v,onClick:l,className:p}),m.createElement(bg,{icon:n,primaryColor:x,secondaryColor:F,style:g}))});wt.displayName=\"AntdIcon\";wt.getTwoToneColor=kSe;wt.setTwoToneColor=Xne;var MSe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:FSe}))},mm=m.forwardRef(MSe),PSe={icon:{tag:\"svg\",attrs:{\"fill-rule\":\"evenodd\",viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z\"}}]},name:\"close-circle\",theme:\"filled\"},OSe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:PSe}))},xd=m.forwardRef(OSe),BSe={icon:{tag:\"svg\",attrs:{\"fill-rule\":\"evenodd\",viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z\"}}]},name:\"close\",theme:\"outlined\"},NSe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:BSe}))},wu=m.forwardRef(NSe),$Se={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\"}}]},name:\"exclamation-circle\",theme:\"filled\"},LSe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:$Se}))},nh=m.forwardRef(LSe),jSe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\"}}]},name:\"info-circle\",theme:\"filled\"},zSe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:jSe}))},G0=m.forwardRef(zSe),HSe=`accept acceptCharset accessKey action allowFullScreen allowTransparency\n alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\n charSet checked classID className colSpan cols content contentEditable contextMenu\n controls coords crossOrigin data dateTime default defer dir disabled download draggable\n encType form formAction formEncType formMethod formNoValidate formTarget frameBorder\n headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\n is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\n mediaGroup method min minLength multiple muted name noValidate nonce open\n optimum pattern placeholder poster preload radioGroup readOnly rel required\n reversed role rowSpan rows sandbox scope scoped scrolling seamless selected\n shape size sizes span spellCheck src srcDoc srcLang srcSet start step style\n summary tabIndex target title type useMap value width wmode wrap`,VSe=`onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError`,WSe=\"\".concat(HSe,\" \").concat(VSe).split(/[\\s\\n]+/),GSe=\"aria-\",USe=\"data-\";function fz(e,t){return e.indexOf(t)===0}function qn(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r;t===!1?r={aria:!0,data:!0,attr:!0}:t===!0?r={aria:!0}:r=ae({},t);var n={};return Object.keys(e).forEach(function(a){(r.aria&&(a===\"role\"||fz(a,GSe))||r.data&&fz(a,USe)||r.attr&&WSe.includes(a))&&(n[a]=e[a])}),n}function Jne(e){return e&&le.isValidElement(e)&&e.type===le.Fragment}const M7=(e,t,r)=>le.isValidElement(e)?le.cloneElement(e,typeof r==\"function\"?r(e.props||{}):r):t;function oa(e,t){return M7(e,e,t)}const VC=(e,t,r,n,a)=>({background:e,border:`${re(n.lineWidth)} ${n.lineType} ${t}`,[`${a}-icon`]:{color:r}}),KSe=e=>{const{componentCls:t,motionDurationSlow:r,marginXS:n,marginSM:a,fontSize:i,fontSizeLG:o,lineHeight:l,borderRadiusLG:s,motionEaseInOutCirc:u,withDescriptionIconSize:c,colorText:d,colorTextHeading:f,withDescriptionPadding:h,defaultPadding:p}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{position:\"relative\",display:\"flex\",alignItems:\"center\",padding:p,wordWrap:\"break-word\",borderRadius:s,[`&${t}-rtl`]:{direction:\"rtl\"},[`${t}-content`]:{flex:1,minWidth:0},[`${t}-icon`]:{marginInlineEnd:n,lineHeight:0},\"&-description\":{display:\"none\",fontSize:i,lineHeight:l},\"&-message\":{color:f},[`&${t}-motion-leave`]:{overflow:\"hidden\",opacity:1,transition:`max-height ${r} ${u}, opacity ${r} ${u},\n padding-top ${r} ${u}, padding-bottom ${r} ${u},\n margin-bottom ${r} ${u}`},[`&${t}-motion-leave-active`]:{maxHeight:0,marginBottom:\"0 !important\",paddingTop:0,paddingBottom:0,opacity:0}}),[`${t}-with-description`]:{alignItems:\"flex-start\",padding:h,[`${t}-icon`]:{marginInlineEnd:a,fontSize:c,lineHeight:0},[`${t}-message`]:{display:\"block\",marginBottom:n,color:f,fontSize:o},[`${t}-description`]:{display:\"block\",color:d}},[`${t}-banner`]:{marginBottom:0,border:\"0 !important\",borderRadius:0}}},YSe=e=>{const{componentCls:t,colorSuccess:r,colorSuccessBorder:n,colorSuccessBg:a,colorWarning:i,colorWarningBorder:o,colorWarningBg:l,colorError:s,colorErrorBorder:u,colorErrorBg:c,colorInfo:d,colorInfoBorder:f,colorInfoBg:h}=e;return{[t]:{\"&-success\":VC(a,n,r,e,t),\"&-info\":VC(h,f,d,e,t),\"&-warning\":VC(l,o,i,e,t),\"&-error\":Object.assign(Object.assign({},VC(c,u,s,e,t)),{[`${t}-description > pre`]:{margin:0,padding:0}})}}},qSe=e=>{const{componentCls:t,iconCls:r,motionDurationMid:n,marginXS:a,fontSizeIcon:i,colorIcon:o,colorIconHover:l}=e;return{[t]:{\"&-action\":{marginInlineStart:a},[`${t}-close-icon`]:{marginInlineStart:a,padding:0,overflow:\"hidden\",fontSize:i,lineHeight:re(i),backgroundColor:\"transparent\",border:\"none\",outline:\"none\",cursor:\"pointer\",[`${r}-close`]:{color:o,transition:`color ${n}`,\"&:hover\":{color:l}}},\"&-close-text\":{color:o,transition:`color ${n}`,\"&:hover\":{color:l}}}}},XSe=e=>({withDescriptionIconSize:e.fontSizeHeading3,defaultPadding:`${e.paddingContentVerticalSM}px 12px`,withDescriptionPadding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`}),JSe=kr(\"Alert\",e=>[KSe(e),YSe(e),qSe(e)],XSe);var hz=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const ZSe={success:mm,info:G0,error:xd,warning:nh},QSe=e=>{const{icon:t,prefixCls:r,type:n}=e,a=ZSe[n]||null;return t?M7(t,m.createElement(\"span\",{className:`${r}-icon`},t),()=>({className:ne(`${r}-icon`,t.props.className)})):m.createElement(a,{className:`${r}-icon`})},ewe=e=>{const{isClosable:t,prefixCls:r,closeIcon:n,handleClose:a,ariaProps:i}=e,o=n===!0||n===void 0?m.createElement(wu,null):n;return t?m.createElement(\"button\",Object.assign({type:\"button\",onClick:a,className:`${r}-close-icon`,tabIndex:0},i),o):null},Zne=m.forwardRef((e,t)=>{const{description:r,prefixCls:n,message:a,banner:i,className:o,rootClassName:l,style:s,onMouseEnter:u,onMouseLeave:c,onClick:d,afterClose:f,showIcon:h,closable:p,closeText:v,closeIcon:g,action:y,id:b}=e,x=hz(e,[\"description\",\"prefixCls\",\"message\",\"banner\",\"className\",\"rootClassName\",\"style\",\"onMouseEnter\",\"onMouseLeave\",\"onClick\",\"afterClose\",\"showIcon\",\"closable\",\"closeText\",\"closeIcon\",\"action\",\"id\"]),[F,S]=m.useState(!1),E=m.useRef(null);m.useImperativeHandle(t,()=>({nativeElement:E.current}));const{getPrefixCls:w,direction:D,closable:A,closeIcon:_,className:I,style:M}=na(\"alert\"),T=w(\"alert\",n),[k,R,P]=JSe(T),B=V=>{var U;S(!0),(U=e.onClose)===null||U===void 0||U.call(e,V)},N=m.useMemo(()=>e.type!==void 0?e.type:i?\"warning\":\"info\",[e.type,i]),O=m.useMemo(()=>typeof p==\"object\"&&p.closeIcon||v?!0:typeof p==\"boolean\"?p:g!==!1&&g!==null&&g!==void 0?!0:!!A,[v,g,p,A]),z=i&&h===void 0?!0:h,W=ne(T,`${T}-${N}`,{[`${T}-with-description`]:!!r,[`${T}-no-icon`]:!z,[`${T}-banner`]:!!i,[`${T}-rtl`]:D===\"rtl\"},I,o,l,P,R),L=qn(x,{aria:!0,data:!0}),j=m.useMemo(()=>typeof p==\"object\"&&p.closeIcon?p.closeIcon:v||(g!==void 0?g:typeof A==\"object\"&&A.closeIcon?A.closeIcon:_),[g,p,A,v,_]),H=m.useMemo(()=>{const V=p??A;if(typeof V==\"object\"){const{closeIcon:U}=V;return hz(V,[\"closeIcon\"])}return{}},[p,A]);return k(m.createElement(fi,{visible:!F,motionName:`${T}-motion`,motionAppear:!1,motionEnter:!1,onLeaveStart:V=>({maxHeight:V.offsetHeight}),onLeaveEnd:f},({className:V,style:U},Q)=>m.createElement(\"div\",Object.assign({id:b,ref:Qa(E,Q),\"data-show\":!F,className:ne(W,V),style:Object.assign(Object.assign(Object.assign({},M),s),U),onMouseEnter:u,onMouseLeave:c,onClick:d,role:\"alert\"},L),z?m.createElement(QSe,{description:r,icon:e.icon,prefixCls:T,type:N}):null,m.createElement(\"div\",{className:`${T}-content`},a?m.createElement(\"div\",{className:`${T}-message`},a):null,r?m.createElement(\"div\",{className:`${T}-description`},r):null),y?m.createElement(\"div\",{className:`${T}-action`},y):null,m.createElement(ewe,{isClosable:O,prefixCls:T,closeIcon:j,handleClose:B,ariaProps:H}))))});function twe(e,t,r){return t=Wp(t),Gre(e,q4()?Reflect.construct(t,r||[],Wp(e).constructor):t.apply(e,r))}let rwe=function(e){function t(){var r;return Xn(this,t),r=twe(this,t,arguments),r.state={error:void 0,info:{componentStack:\"\"}},r}return Vl(t,e),Jn(t,[{key:\"componentDidCatch\",value:function(n,a){this.setState({error:n,info:a})}},{key:\"render\",value:function(){const{message:n,description:a,id:i,children:o}=this.props,{error:l,info:s}=this.state,u=(s==null?void 0:s.componentStack)||null,c=typeof n>\"u\"?(l||\"\").toString():n,d=typeof a>\"u\"?u:a;return l?m.createElement(Zne,{id:i,type:\"error\",message:c,description:m.createElement(\"pre\",{style:{fontSize:\"0.9em\",overflowX:\"auto\"}},d)}):o}}])}(m.Component);const ox=Zne;ox.ErrorBoundary=rwe;const pz=e=>typeof e==\"object\"&&e!=null&&e.nodeType===1,mz=(e,t)=>(!t||e!==\"hidden\")&&e!==\"visible\"&&e!==\"clip\",WC=(e,t)=>{if(e.clientHeight<e.scrollHeight||e.clientWidth<e.scrollWidth){const r=getComputedStyle(e,null);return mz(r.overflowY,t)||mz(r.overflowX,t)||(n=>{const a=(i=>{if(!i.ownerDocument||!i.ownerDocument.defaultView)return null;try{return i.ownerDocument.defaultView.frameElement}catch{return null}})(n);return!!a&&(a.clientHeight<n.scrollHeight||a.clientWidth<n.scrollWidth)})(e)}return!1},GC=(e,t,r,n,a,i,o,l)=>i<e&&o>t||i>e&&o<t?0:i<=e&&l<=r||o>=t&&l>=r?i-e-n:o>t&&l<r||i<e&&l>r?o-t+a:0,nwe=e=>{const t=e.parentElement;return t??(e.getRootNode().host||null)},vz=(e,t)=>{var r,n,a,i;if(typeof document>\"u\")return[];const{scrollMode:o,block:l,inline:s,boundary:u,skipOverflowHiddenElements:c}=t,d=typeof u==\"function\"?u:P=>P!==u;if(!pz(e))throw new TypeError(\"Invalid target\");const f=document.scrollingElement||document.documentElement,h=[];let p=e;for(;pz(p)&&d(p);){if(p=nwe(p),p===f){h.push(p);break}p!=null&&p===document.body&&WC(p)&&!WC(document.documentElement)||p!=null&&WC(p,c)&&h.push(p)}const v=(n=(r=window.visualViewport)==null?void 0:r.width)!=null?n:innerWidth,g=(i=(a=window.visualViewport)==null?void 0:a.height)!=null?i:innerHeight,{scrollX:y,scrollY:b}=window,{height:x,width:F,top:S,right:E,bottom:w,left:D}=e.getBoundingClientRect(),{top:A,right:_,bottom:I,left:M}=(P=>{const B=window.getComputedStyle(P);return{top:parseFloat(B.scrollMarginTop)||0,right:parseFloat(B.scrollMarginRight)||0,bottom:parseFloat(B.scrollMarginBottom)||0,left:parseFloat(B.scrollMarginLeft)||0}})(e);let T=l===\"start\"||l===\"nearest\"?S-A:l===\"end\"?w+I:S+x/2-A+I,k=s===\"center\"?D+F/2-M+_:s===\"end\"?E+_:D-M;const R=[];for(let P=0;P<h.length;P++){const B=h[P],{height:N,width:O,top:z,right:W,bottom:L,left:j}=B.getBoundingClientRect();if(o===\"if-needed\"&&S>=0&&D>=0&&w<=g&&E<=v&&(B===f&&!WC(B)||S>=z&&w<=L&&D>=j&&E<=W))return R;const H=getComputedStyle(B),V=parseInt(H.borderLeftWidth,10),U=parseInt(H.borderTopWidth,10),Q=parseInt(H.borderRightWidth,10),K=parseInt(H.borderBottomWidth,10);let Y=0,ee=0;const J=\"offsetWidth\"in B?B.offsetWidth-B.clientWidth-V-Q:0,X=\"offsetHeight\"in B?B.offsetHeight-B.clientHeight-U-K:0,ce=\"offsetWidth\"in B?B.offsetWidth===0?0:O/B.offsetWidth:0,oe=\"offsetHeight\"in B?B.offsetHeight===0?0:N/B.offsetHeight:0;if(f===B)Y=l===\"start\"?T:l===\"end\"?T-g:l===\"nearest\"?GC(b,b+g,g,U,K,b+T,b+T+x,x):T-g/2,ee=s===\"start\"?k:s===\"center\"?k-v/2:s===\"end\"?k-v:GC(y,y+v,v,V,Q,y+k,y+k+F,F),Y=Math.max(0,Y+b),ee=Math.max(0,ee+y);else{Y=l===\"start\"?T-z-U:l===\"end\"?T-L+K+X:l===\"nearest\"?GC(z,L,N,U,K+X,T,T+x,x):T-(z+N/2)+X/2,ee=s===\"start\"?k-j-V:s===\"center\"?k-(j+O/2)+J/2:s===\"end\"?k-W+Q+J:GC(j,W,O,V,Q+J,k,k+F,F);const{scrollLeft:ue,scrollTop:ie}=B;Y=oe===0?0:Math.max(0,Math.min(ie+Y/oe,B.scrollHeight-N/oe+X)),ee=ce===0?0:Math.max(0,Math.min(ue+ee/ce,B.scrollWidth-O/ce+J)),T+=ie-Y,k+=ue-ee}R.push({el:B,top:Y,left:ee})}return R},awe=e=>e===!1?{block:\"end\",inline:\"nearest\"}:(t=>t===Object(t)&&Object.keys(t).length!==0)(e)?e:{block:\"start\",inline:\"nearest\"};function iwe(e,t){if(!e.isConnected||!(a=>{let i=a;for(;i&&i.parentNode;){if(i.parentNode===document)return!0;i=i.parentNode instanceof ShadowRoot?i.parentNode.host:i.parentNode}return!1})(e))return;const r=(a=>{const i=window.getComputedStyle(a);return{top:parseFloat(i.scrollMarginTop)||0,right:parseFloat(i.scrollMarginRight)||0,bottom:parseFloat(i.scrollMarginBottom)||0,left:parseFloat(i.scrollMarginLeft)||0}})(e);if((a=>typeof a==\"object\"&&typeof a.behavior==\"function\")(t))return t.behavior(vz(e,t));const n=typeof t==\"boolean\"||t==null?void 0:t.behavior;for(const{el:a,top:i,left:o}of vz(e,awe(t))){const l=i-r.top+r.bottom,s=o-r.left+r.right;a.scroll({top:l,left:s,behavior:n})}}function eR(e){return e!=null&&e===e.window}const owe=e=>{var t,r;if(typeof window>\"u\")return 0;let n=0;return eR(e)?n=e.pageYOffset:e instanceof Document?n=e.documentElement.scrollTop:(e instanceof HTMLElement||e)&&(n=e.scrollTop),e&&!eR(e)&&typeof n!=\"number\"&&(n=(r=((t=e.ownerDocument)!==null&&t!==void 0?t:e).documentElement)===null||r===void 0?void 0:r.scrollTop),n};function lwe(e,t,r,n){const a=r-t;return e/=n/2,e<1?a/2*e*e*e+t:a/2*((e-=2)*e*e+2)+t}function swe(e,t={}){const{getContainer:r=()=>window,callback:n,duration:a=450}=t,i=r(),o=owe(i),l=Date.now(),s=()=>{const c=Date.now()-l,d=lwe(c>a?a:c,o,e,a);eR(i)?i.scrollTo(window.pageXOffset,d):i instanceof Document||i.constructor.name===\"HTMLDocument\"?i.documentElement.scrollTop=d:i.scrollTop=d,c<a?Tr(s):typeof n==\"function\"&&n()};Tr(s)}const Zn=e=>{const[,,,,t]=Mi();return t?`${e}-css-var`:\"\"};var It={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,CAPS_LOCK:20,ESC:27,SPACE:32,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,N:78,P:80,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,SEMICOLON:186,EQUALS:187,WIN_KEY:224},Qne=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.style,a=e.className,i=e.duration,o=i===void 0?4.5:i,l=e.showProgress,s=e.pauseOnHover,u=s===void 0?!0:s,c=e.eventKey,d=e.content,f=e.closable,h=e.closeIcon,p=h===void 0?\"x\":h,v=e.props,g=e.onClick,y=e.onNoticeClose,b=e.times,x=e.hovering,F=m.useState(!1),S=ve(F,2),E=S[0],w=S[1],D=m.useState(0),A=ve(D,2),_=A[0],I=A[1],M=m.useState(0),T=ve(M,2),k=T[0],R=T[1],P=x||E,B=o>0&&l,N=function(){y(c)},O=function(V){(V.key===\"Enter\"||V.code===\"Enter\"||V.keyCode===It.ENTER)&&N()};m.useEffect(function(){if(!P&&o>0){var H=Date.now()-k,V=setTimeout(function(){N()},o*1e3-k);return function(){u&&clearTimeout(V),R(Date.now()-H)}}},[o,P,b]),m.useEffect(function(){if(!P&&B&&(u||k===0)){var H=performance.now(),V,U=function Q(){cancelAnimationFrame(V),V=requestAnimationFrame(function(K){var Y=K+k-H,ee=Math.min(Y/(o*1e3),1);I(ee*100),ee<1&&Q()})};return U(),function(){u&&cancelAnimationFrame(V)}}},[o,k,P,B,b]);var z=m.useMemo(function(){return Nt(f)===\"object\"&&f!==null?f:f?{closeIcon:p}:{}},[f,p]),W=qn(z,!0),L=100-(!_||_<0?0:_>100?100:_),j=\"\".concat(r,\"-notice\");return m.createElement(\"div\",Ce({},v,{ref:t,className:ne(j,a,Z({},\"\".concat(j,\"-closable\"),f)),style:n,onMouseEnter:function(V){var U;w(!0),v==null||(U=v.onMouseEnter)===null||U===void 0||U.call(v,V)},onMouseLeave:function(V){var U;w(!1),v==null||(U=v.onMouseLeave)===null||U===void 0||U.call(v,V)},onClick:g}),m.createElement(\"div\",{className:\"\".concat(j,\"-content\")},d),f&&m.createElement(\"a\",Ce({tabIndex:0,className:\"\".concat(j,\"-close\"),onKeyDown:O,\"aria-label\":\"Close\"},W,{onClick:function(V){V.preventDefault(),V.stopPropagation(),N()}}),z.closeIcon),B&&m.createElement(\"progress\",{className:\"\".concat(j,\"-progress\"),max:\"100\",value:L},L+\"%\"))}),eae=le.createContext({}),tae=function(t){var r=t.children,n=t.classNames;return le.createElement(eae.Provider,{value:{classNames:n}},r)},gz=8,yz=3,bz=16,uwe=function(t){var r={offset:gz,threshold:yz,gap:bz};if(t&&Nt(t)===\"object\"){var n,a,i;r.offset=(n=t.offset)!==null&&n!==void 0?n:gz,r.threshold=(a=t.threshold)!==null&&a!==void 0?a:yz,r.gap=(i=t.gap)!==null&&i!==void 0?i:bz}return[!!t,r]},cwe=[\"className\",\"style\",\"classNames\",\"styles\"],dwe=function(t){var r=t.configList,n=t.placement,a=t.prefixCls,i=t.className,o=t.style,l=t.motion,s=t.onAllNoticeRemoved,u=t.onNoticeClose,c=t.stack,d=m.useContext(eae),f=d.classNames,h=m.useRef({}),p=m.useState(null),v=ve(p,2),g=v[0],y=v[1],b=m.useState([]),x=ve(b,2),F=x[0],S=x[1],E=r.map(function(P){return{config:P,key:String(P.key)}}),w=uwe(c),D=ve(w,2),A=D[0],_=D[1],I=_.offset,M=_.threshold,T=_.gap,k=A&&(F.length>0||E.length<=M),R=typeof l==\"function\"?l(n):l;return m.useEffect(function(){A&&F.length>1&&S(function(P){return P.filter(function(B){return E.some(function(N){var O=N.key;return B===O})})})},[F,E,A]),m.useEffect(function(){var P;if(A&&h.current[(P=E[E.length-1])===null||P===void 0?void 0:P.key]){var B;y(h.current[(B=E[E.length-1])===null||B===void 0?void 0:B.key])}},[E,A]),le.createElement(R7,Ce({key:n,className:ne(a,\"\".concat(a,\"-\").concat(n),f==null?void 0:f.list,i,Z(Z({},\"\".concat(a,\"-stack\"),!!A),\"\".concat(a,\"-stack-expanded\"),k)),style:o,keys:E,motionAppear:!0},R,{onAllRemoved:function(){s(n)}}),function(P,B){var N=P.config,O=P.className,z=P.style,W=P.index,L=N,j=L.key,H=L.times,V=String(j),U=N,Q=U.className,K=U.style,Y=U.classNames,ee=U.styles,J=Xt(U,cwe),X=E.findIndex(function(me){return me.key===V}),ce={};if(A){var oe=E.length-1-(X>-1?X:W-1),ue=n===\"top\"||n===\"bottom\"?\"-50%\":\"0\";if(oe>0){var ie,fe,xe;ce.height=k?(ie=h.current[V])===null||ie===void 0?void 0:ie.offsetHeight:g==null?void 0:g.offsetHeight;for(var Ee=0,De=0;De<oe;De++){var ye;Ee+=((ye=h.current[E[E.length-1-De].key])===null||ye===void 0?void 0:ye.offsetHeight)+T}var we=(k?Ee:oe*I)*(n.startsWith(\"top\")?1:-1),Fe=!k&&g!==null&&g!==void 0&&g.offsetWidth&&(fe=h.current[V])!==null&&fe!==void 0&&fe.offsetWidth?((g==null?void 0:g.offsetWidth)-I*2*(oe<3?oe:3))/((xe=h.current[V])===null||xe===void 0?void 0:xe.offsetWidth):1;ce.transform=\"translate3d(\".concat(ue,\", \").concat(we,\"px, 0) scaleX(\").concat(Fe,\")\")}else ce.transform=\"translate3d(\".concat(ue,\", 0, 0)\")}return le.createElement(\"div\",{ref:B,className:ne(\"\".concat(a,\"-notice-wrapper\"),O,Y==null?void 0:Y.wrapper),style:ae(ae(ae({},z),ce),ee==null?void 0:ee.wrapper),onMouseEnter:function(){return S(function(Me){return Me.includes(V)?Me:[].concat(He(Me),[V])})},onMouseLeave:function(){return S(function(Me){return Me.filter(function(je){return je!==V})})}},le.createElement(Qne,Ce({},J,{ref:function(Me){X>-1?h.current[V]=Me:delete h.current[V]},prefixCls:a,classNames:Y,styles:ee,className:ne(Q,f==null?void 0:f.notice),style:K,times:H,key:j,eventKey:j,onNoticeClose:u,hovering:A&&F.length>0})))})},fwe=m.forwardRef(function(e,t){var r=e.prefixCls,n=r===void 0?\"rc-notification\":r,a=e.container,i=e.motion,o=e.maxCount,l=e.className,s=e.style,u=e.onAllRemoved,c=e.stack,d=e.renderNotifications,f=m.useState([]),h=ve(f,2),p=h[0],v=h[1],g=function(A){var _,I=p.find(function(M){return M.key===A});I==null||(_=I.onClose)===null||_===void 0||_.call(I),v(function(M){return M.filter(function(T){return T.key!==A})})};m.useImperativeHandle(t,function(){return{open:function(A){v(function(_){var I=He(_),M=I.findIndex(function(R){return R.key===A.key}),T=ae({},A);if(M>=0){var k;T.times=(((k=_[M])===null||k===void 0?void 0:k.times)||0)+1,I[M]=T}else T.times=0,I.push(T);return o>0&&I.length>o&&(I=I.slice(-o)),I})},close:function(A){g(A)},destroy:function(){v([])}}});var y=m.useState({}),b=ve(y,2),x=b[0],F=b[1];m.useEffect(function(){var D={};p.forEach(function(A){var _=A.placement,I=_===void 0?\"topRight\":_;I&&(D[I]=D[I]||[],D[I].push(A))}),Object.keys(x).forEach(function(A){D[A]=D[A]||[]}),F(D)},[p]);var S=function(A){F(function(_){var I=ae({},_),M=I[A]||[];return M.length||delete I[A],I})},E=m.useRef(!1);if(m.useEffect(function(){Object.keys(x).length>0?E.current=!0:E.current&&(u==null||u(),E.current=!1)},[x]),!a)return null;var w=Object.keys(x);return Fs.createPortal(m.createElement(m.Fragment,null,w.map(function(D){var A=x[D],_=m.createElement(dwe,{key:D,configList:A,placement:D,prefixCls:n,className:l==null?void 0:l(D),style:s==null?void 0:s(D),motion:i,onNoticeClose:g,onAllNoticeRemoved:S,stack:c});return d?d(_,{prefixCls:n,key:D}):_})),a)}),hwe=[\"getContainer\",\"motion\",\"prefixCls\",\"maxCount\",\"className\",\"style\",\"onAllRemoved\",\"stack\",\"renderNotifications\"],pwe=function(){return document.body},xz=0;function mwe(){for(var e={},t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return r.forEach(function(a){a&&Object.keys(a).forEach(function(i){var o=a[i];o!==void 0&&(e[i]=o)})}),e}function rae(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.getContainer,r=t===void 0?pwe:t,n=e.motion,a=e.prefixCls,i=e.maxCount,o=e.className,l=e.style,s=e.onAllRemoved,u=e.stack,c=e.renderNotifications,d=Xt(e,hwe),f=m.useState(),h=ve(f,2),p=h[0],v=h[1],g=m.useRef(),y=m.createElement(fwe,{container:p,ref:g,prefixCls:a,motion:n,maxCount:i,className:o,style:l,onAllRemoved:s,stack:u,renderNotifications:c}),b=m.useState([]),x=ve(b,2),F=x[0],S=x[1],E=Pr(function(D){var A=mwe(d,D);(A.key===null||A.key===void 0)&&(A.key=\"rc-notification-\".concat(xz),xz+=1),S(function(_){return[].concat(He(_),[{type:\"open\",config:A}])})}),w=m.useMemo(function(){return{open:E,close:function(A){S(function(_){return[].concat(He(_),[{type:\"close\",key:A}])})},destroy:function(){S(function(A){return[].concat(He(A),[{type:\"destroy\"}])})}}},[]);return m.useEffect(function(){v(r())}),m.useEffect(function(){if(g.current&&F.length){F.forEach(function(_){switch(_.type){case\"open\":g.current.open(_.config);break;case\"close\":g.current.close(_.key);break;case\"destroy\":g.current.destroy();break}});var D,A;S(function(_){return(D!==_||!A)&&(D=_,A=_.filter(function(I){return!F.includes(I)})),A})}},[F]),[w,y]}var vwe={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\"}}]},name:\"loading\",theme:\"outlined\"},gwe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:vwe}))},cc=m.forwardRef(gwe);function Jb(...e){const t={};return e.forEach(r=>{r&&Object.keys(r).forEach(n=>{r[n]!==void 0&&(t[n]=r[n])})}),t}function U0(e){if(!e)return;const{closable:t,closeIcon:r}=e;return{closable:t,closeIcon:r}}function Cz(e){const{closable:t,closeIcon:r}=e||{};return le.useMemo(()=>{if(!t&&(t===!1||r===!1||r===null))return!1;if(t===void 0&&r===void 0)return null;let n={closeIcon:typeof r!=\"boolean\"&&r!==null?r:void 0};return t&&typeof t==\"object\"&&(n=Object.assign(Object.assign({},n),t)),n},[t,r])}const ywe={},P7=(e,t,r=ywe)=>{const n=Cz(e),a=Cz(t),[i]=Jo(\"global\",ws.global),o=typeof n!=\"boolean\"?!!(n!=null&&n.disabled):!1,l=le.useMemo(()=>Object.assign({closeIcon:le.createElement(wu,null)},r),[r]),s=le.useMemo(()=>n===!1?!1:n?Jb(l,a,n):a===!1?!1:a?Jb(l,a):l.closable?l:!1,[n,a,l]);return le.useMemo(()=>{var u,c;if(s===!1)return[!1,null,o,{}];const{closeIconRender:d}=l,{closeIcon:f}=s;let h=f;const p=qn(s,!0);return h!=null&&(d&&(h=d(f)),h=le.isValidElement(h)?le.cloneElement(h,Object.assign(Object.assign(Object.assign({},h.props),{\"aria-label\":(c=(u=h.props)===null||u===void 0?void 0:u[\"aria-label\"])!==null&&c!==void 0?c:i.close}),p)):le.createElement(\"span\",Object.assign({\"aria-label\":i.close},p),h)),[!0,h,o,p]},[o,i.close,s,l])},O7=()=>le.useReducer(e=>e+1,0);function nae(e,...t){const r=e||{};return t.reduce((n,a)=>(Object.keys(a||{}).forEach(i=>{const o=r[i],l=a[i];if(o&&typeof o==\"object\")if(l&&typeof l==\"object\")n[i]=nae(o,n[i],l);else{const{_default:s}=o;s&&(n[i]=n[i]||{},n[i][s]=ne(n[i][s],l))}else n[i]=ne(n[i],l)}),n),{})}function bwe(e,...t){return m.useMemo(()=>nae.apply(void 0,[e].concat(t)),[t,e])}function xwe(...e){return m.useMemo(()=>e.reduce((t,r={})=>(Object.keys(r).forEach(n=>{t[n]=Object.assign(Object.assign({},t[n]),r[n])}),t),{}),[e])}function tR(e,t){const r=Object.assign({},e);return Object.keys(t).forEach(n=>{if(n!==\"_default\"){const a=t[n],i=r[n]||{};r[n]=a?tR(i,a):i}}),r}const Cwe=(e,t,r)=>{const n=bwe.apply(void 0,[r].concat(He(e))),a=xwe.apply(void 0,He(t));return m.useMemo(()=>[tR(n,r),tR(a,r)],[n,a,r])},Fwe=e=>{const[t,r]=m.useState(null);return[m.useCallback((a,i,o)=>{const l=t??a,s=Math.min(l||0,a),u=Math.max(l||0,a),c=i.slice(s,u+1).map(e),d=c.some(h=>!o.has(h)),f=[];return c.forEach(h=>{d?(o.has(h)||f.push(h),o.add(h)):(o.delete(h),f.push(h))}),r(d?u:null),f},[t]),r]},Swe=()=>{const[e,t]=m.useState([]),r=m.useCallback(n=>(t(a=>[].concat(He(a),[n])),()=>{t(a=>a.filter(i=>i!==n))}),[]);return[e,r]};function wwe(e,t){return e._antProxy=e._antProxy||{},Object.keys(t).forEach(r=>{if(!(r in e._antProxy)){const n=e[r];e._antProxy[r]=n,e[r]=t[r]}}),e}const Ewe=(e,t)=>m.useImperativeHandle(e,()=>{const r=t(),{nativeElement:n}=r;return typeof Proxy<\"u\"?new Proxy(n,{get(a,i){return r[i]?r[i]:Reflect.get(a,i)}}):wwe(n,r)}),Dwe=e=>{const t=m.useRef(e),[,r]=O7();return[()=>t.current,n=>{t.current=n,r()}]},lx=le.createContext(void 0),Hd=100,Awe=10,B7=Hd*Awe,aae={Modal:Hd,Drawer:Hd,Popover:Hd,Popconfirm:Hd,Tooltip:Hd,Tour:Hd,FloatButton:Hd},_we={SelectLike:50,Dropdown:50,DatePicker:50,Menu:50,ImagePreview:1};function Twe(e){return e in aae}const xc=(e,t)=>{const[,r]=Mi(),n=le.useContext(lx),a=Twe(e);let i;if(t!==void 0)i=[t,t];else{let o=n??0;a?o+=(n?0:r.zIndexPopupBase)+aae[e]:o+=_we[e],i=[n===void 0?t:o,o]}return i},Iwe=e=>{const{componentCls:t,iconCls:r,boxShadow:n,colorText:a,colorSuccess:i,colorError:o,colorWarning:l,colorInfo:s,fontSizeLG:u,motionEaseInOutCirc:c,motionDurationSlow:d,marginXS:f,paddingXS:h,borderRadiusLG:p,zIndexPopup:v,contentPadding:g,contentBg:y}=e,b=`${t}-notice`,x=new Br(\"MessageMoveIn\",{\"0%\":{padding:0,transform:\"translateY(-100%)\",opacity:0},\"100%\":{padding:h,transform:\"translateY(0)\",opacity:1}}),F=new Br(\"MessageMoveOut\",{\"0%\":{maxHeight:e.height,padding:h,opacity:1},\"100%\":{maxHeight:0,padding:0,opacity:0}}),S={padding:h,textAlign:\"center\",[`${t}-custom-content`]:{display:\"flex\",alignItems:\"center\"},[`${t}-custom-content > ${r}`]:{marginInlineEnd:f,fontSize:u},[`${b}-content`]:{display:\"inline-block\",padding:g,background:y,borderRadius:p,boxShadow:n,pointerEvents:\"all\"},[`${t}-success > ${r}`]:{color:i},[`${t}-error > ${r}`]:{color:o},[`${t}-warning > ${r}`]:{color:l},[`${t}-info > ${r},\n ${t}-loading > ${r}`]:{color:s}};return[{[t]:Object.assign(Object.assign({},Hr(e)),{color:a,position:\"fixed\",top:f,width:\"100%\",pointerEvents:\"none\",zIndex:v,[`${t}-move-up`]:{animationFillMode:\"forwards\"},[`\n ${t}-move-up-appear,\n ${t}-move-up-enter\n `]:{animationName:x,animationDuration:d,animationPlayState:\"paused\",animationTimingFunction:c},[`\n ${t}-move-up-appear${t}-move-up-appear-active,\n ${t}-move-up-enter${t}-move-up-enter-active\n `]:{animationPlayState:\"running\"},[`${t}-move-up-leave`]:{animationName:F,animationDuration:d,animationPlayState:\"paused\",animationTimingFunction:c},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:\"running\"},\"&-rtl\":{direction:\"rtl\",span:{direction:\"rtl\"}}})},{[t]:{[`${b}-wrapper`]:Object.assign({},S)}},{[`${t}-notice-pure-panel`]:Object.assign(Object.assign({},S),{padding:0,textAlign:\"start\"})}]},kwe=e=>({zIndexPopup:e.zIndexPopupBase+B7+10,contentBg:e.colorBgElevated,contentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`}),iae=kr(\"Message\",e=>{const t=Sr(e,{height:150});return Iwe(t)},kwe);var Rwe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Mwe={info:m.createElement(G0,null),success:m.createElement(mm,null),error:m.createElement(xd,null),warning:m.createElement(nh,null),loading:m.createElement(cc,null)},oae=({prefixCls:e,type:t,icon:r,children:n})=>m.createElement(\"div\",{className:ne(`${e}-custom-content`,`${e}-${t}`)},r||Mwe[t],m.createElement(\"span\",null,n)),Pwe=e=>{const{prefixCls:t,className:r,type:n,icon:a,content:i}=e,o=Rwe(e,[\"prefixCls\",\"className\",\"type\",\"icon\",\"content\"]),{getPrefixCls:l}=m.useContext(Ot),s=t||l(\"message\"),u=Zn(s),[c,d,f]=iae(s,u);return c(m.createElement(Qne,Object.assign({},o,{prefixCls:s,className:ne(r,d,`${s}-notice-pure-panel`,f,u),eventKey:\"pure\",duration:null,content:m.createElement(oae,{prefixCls:s,type:n,icon:a},i)})))};function Owe(e,t){return{motionName:t??`${e}-move-up`}}function N7(e){let t;const r=new Promise(a=>{t=e(()=>{a(!0)})}),n=()=>{t==null||t()};return n.then=(a,i)=>r.then(a,i),n.promise=r,n}var Bwe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Nwe=8,$we=3,Lwe=({children:e,prefixCls:t})=>{const r=Zn(t),[n,a,i]=iae(t,r);return n(m.createElement(tae,{classNames:{list:ne(a,i,r)}},e))},jwe=(e,{prefixCls:t,key:r})=>m.createElement(Lwe,{prefixCls:t,key:r},e),zwe=m.forwardRef((e,t)=>{const{top:r,prefixCls:n,getContainer:a,maxCount:i,duration:o=$we,rtl:l,transitionName:s,onAllRemoved:u}=e,{getPrefixCls:c,getPopupContainer:d,message:f,direction:h}=m.useContext(Ot),p=n||c(\"message\"),v=()=>({left:\"50%\",transform:\"translateX(-50%)\",top:r??Nwe}),g=()=>ne({[`${p}-rtl`]:l??h===\"rtl\"}),y=()=>Owe(p,s),b=m.createElement(\"span\",{className:`${p}-close-x`},m.createElement(wu,{className:`${p}-close-icon`})),[x,F]=rae({prefixCls:p,style:v,className:g,motion:y,closable:!1,closeIcon:b,duration:o,getContainer:()=>(a==null?void 0:a())||(d==null?void 0:d())||document.body,maxCount:i,onAllRemoved:u,renderNotifications:jwe});return m.useImperativeHandle(t,()=>Object.assign(Object.assign({},x),{prefixCls:p,message:f})),F});let Fz=0;function lae(e){const t=m.useRef(null);return bc(),[m.useMemo(()=>{const n=s=>{var u;(u=t.current)===null||u===void 0||u.close(s)},a=s=>{if(!t.current){const E=()=>{};return E.then=()=>{},E}const{open:u,prefixCls:c,message:d}=t.current,f=`${c}-notice`,{content:h,icon:p,type:v,key:g,className:y,style:b,onClose:x}=s,F=Bwe(s,[\"content\",\"icon\",\"type\",\"key\",\"className\",\"style\",\"onClose\"]);let S=g;return S==null&&(Fz+=1,S=`antd-message-${Fz}`),N7(E=>(u(Object.assign(Object.assign({},F),{key:S,content:m.createElement(oae,{prefixCls:c,type:v,icon:p},h),placement:\"top\",className:ne(v&&`${f}-${v}`,y,d==null?void 0:d.className),style:Object.assign(Object.assign({},d==null?void 0:d.style),b),onClose:()=>{x==null||x(),E()}})),()=>{n(S)}))},o={open:a,destroy:s=>{var u;s!==void 0?n(s):(u=t.current)===null||u===void 0||u.destroy()}};return[\"info\",\"success\",\"warning\",\"error\",\"loading\"].forEach(s=>{const u=(c,d,f)=>{let h;c&&typeof c==\"object\"&&\"content\"in c?h=c:h={content:c};let p,v;typeof d==\"function\"?v=d:(p=d,v=f);const g=Object.assign(Object.assign({onClose:v,duration:p},h),{type:s});return a(g)};o[s]=u}),o},[]),m.createElement(zwe,Object.assign({key:\"message-holder\"},e,{ref:t}))]}function sae(e){return lae(e)}function uae(e,t){this.v=e,this.k=t}function oo(e,t,r,n){var a=Object.defineProperty;try{a({},\"\",{})}catch{a=0}oo=function(o,l,s,u){function c(d,f){oo(o,d,function(h){return this._invoke(d,f,h)})}l?a?a(o,l,{value:s,enumerable:!u,configurable:!u,writable:!u}):o[l]=s:(c(\"next\",0),c(\"throw\",1),c(\"return\",2))},oo(e,t,r,n)}function $7(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */var e,t,r=typeof Symbol==\"function\"?Symbol:{},n=r.iterator||\"@@iterator\",a=r.toStringTag||\"@@toStringTag\";function i(h,p,v,g){var y=p&&p.prototype instanceof l?p:l,b=Object.create(y.prototype);return oo(b,\"_invoke\",function(x,F,S){var E,w,D,A=0,_=S||[],I=!1,M={p:0,n:0,v:e,a:T,f:T.bind(e,4),d:function(R,P){return E=R,w=0,D=e,M.n=P,o}};function T(k,R){for(w=k,D=R,t=0;!I&&A&&!P&&t<_.length;t++){var P,B=_[t],N=M.p,O=B[2];k>3?(P=O===R)&&(D=B[(w=B[4])?5:(w=3,3)],B[4]=B[5]=e):B[0]<=N&&((P=k<2&&N<B[1])?(w=0,M.v=R,M.n=B[1]):N<O&&(P=k<3||B[0]>R||R>O)&&(B[4]=k,B[5]=R,M.n=O,w=0))}if(P||k>1)return o;throw I=!0,R}return function(k,R,P){if(A>1)throw TypeError(\"Generator is already running\");for(I&&R===1&&T(R,P),w=R,D=P;(t=w<2?e:D)||!I;){E||(w?w<3?(w>1&&(M.n=-1),T(w,D)):M.n=D:M.v=D);try{if(A=2,E){if(w||(k=\"next\"),t=E[k]){if(!(t=t.call(E,D)))throw TypeError(\"iterator result is not an object\");if(!t.done)return t;D=t.value,w<2&&(w=0)}else w===1&&(t=E.return)&&t.call(E),w<2&&(D=TypeError(\"The iterator does not provide a '\"+k+\"' method\"),w=1);E=e}else if((t=(I=M.n<0)?D:x.call(F,M))!==o)break}catch(B){E=e,w=1,D=B}finally{A=1}}return{value:t,done:I}}}(h,v,g),!0),b}var o={};function l(){}function s(){}function u(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(oo(t={},n,function(){return this}),t),d=u.prototype=l.prototype=Object.create(c);function f(h){return Object.setPrototypeOf?Object.setPrototypeOf(h,u):(h.__proto__=u,oo(h,a,\"GeneratorFunction\")),h.prototype=Object.create(d),h}return s.prototype=u,oo(d,\"constructor\",u),oo(u,\"constructor\",s),s.displayName=\"GeneratorFunction\",oo(u,a,\"GeneratorFunction\"),oo(d),oo(d,a,\"Generator\"),oo(d,n,function(){return this}),oo(d,\"toString\",function(){return\"[object Generator]\"}),($7=function(){return{w:i,m:f}})()}function FE(e,t){function r(a,i,o,l){try{var s=e[a](i),u=s.value;return u instanceof uae?t.resolve(u.v).then(function(c){r(\"next\",c,o,l)},function(c){r(\"throw\",c,o,l)}):t.resolve(u).then(function(c){s.value=c,o(s)},function(c){return r(\"throw\",c,o,l)})}catch(c){l(c)}}var n;this.next||(oo(FE.prototype),oo(FE.prototype,typeof Symbol==\"function\"&&Symbol.asyncIterator||\"@asyncIterator\",function(){return this})),oo(this,\"_invoke\",function(a,i,o){function l(){return new t(function(s,u){r(a,o,s,u)})}return n=n?n.then(l,l):l()},!0)}function cae(e,t,r,n,a){return new FE($7().w(e,t,r,n),a||Promise)}function Hwe(e,t,r,n,a){var i=cae(e,t,r,n,a);return i.next().then(function(o){return o.done?o.value:i.next()})}function Vwe(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function a(){for(;r.length;)if((n=r.pop())in t)return a.value=n,a.done=!1,a;return a.done=!0,a}}function Sz(e){if(e!=null){var t=e[typeof Symbol==\"function\"&&Symbol.iterator||\"@@iterator\"],r=0;if(t)return t.call(e);if(typeof e.next==\"function\")return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(Nt(e)+\" is not iterable\")}function Dn(){var e=$7(),t=e.m(Dn),r=(Object.getPrototypeOf?Object.getPrototypeOf(t):t.__proto__).constructor;function n(o){var l=typeof o==\"function\"&&o.constructor;return!!l&&(l===r||(l.displayName||l.name)===\"GeneratorFunction\")}var a={throw:1,return:2,break:3,continue:3};function i(o){var l,s;return function(u){l||(l={stop:function(){return s(u.a,2)},catch:function(){return u.v},abrupt:function(d,f){return s(u.a,a[d],f)},delegateYield:function(d,f,h){return l.resultName=f,s(u.d,Sz(d),h)},finish:function(d){return s(u.f,d)}},s=function(d,f,h){u.p=l.prev,u.n=l.next;try{return d(f,h)}finally{l.next=u.n}}),l.resultName&&(l[l.resultName]=u.v,l.resultName=void 0),l.sent=u.v,l.next=u.n;try{return o.call(this,l)}finally{u.p=l.prev,u.n=l.next}}}return(Dn=function(){return{wrap:function(s,u,c,d){return e.w(i(s),u,c,d&&d.reverse())},isGeneratorFunction:n,mark:e.m,awrap:function(s,u){return new uae(s,u)},AsyncIterator:FE,async:function(s,u,c,d,f){return(n(u)?cae:Hwe)(i(s),u,c,d,f)},keys:Vwe,values:Sz}})()}function wz(e,t,r,n,a,i,o){try{var l=e[i](o),s=l.value}catch(u){return void r(u)}l.done?t(s):Promise.resolve(s).then(n,a)}function $o(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var i=e.apply(t,r);function o(s){wz(i,n,a,o,l,\"next\",s)}function l(s){wz(i,n,a,o,l,\"throw\",s)}o(void 0)})}}var sx=ae({},_2e),Wwe=sx.version,v_=sx.render,Gwe=sx.unmountComponentAtNode,t6;try{var Uwe=Number((Wwe||\"\").split(\".\")[0]);Uwe>=18&&(t6=sx.createRoot)}catch{}function Ez(e){var t=sx.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;t&&Nt(t)===\"object\"&&(t.usingClientEntryPoint=e)}var SE=\"__rc_react_root__\";function Kwe(e,t){Ez(!0);var r=t[SE]||t6(t);Ez(!1),r.render(e),t[SE]=r}function Ywe(e,t){v_==null||v_(e,t)}function qwe(e,t){if(t6){Kwe(e,t);return}Ywe(e,t)}function Xwe(e){return rR.apply(this,arguments)}function rR(){return rR=$o(Dn().mark(function e(t){return Dn().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt(\"return\",Promise.resolve().then(function(){var a;(a=t[SE])===null||a===void 0||a.unmount(),delete t[SE]}));case 1:case\"end\":return n.stop()}},e)})),rR.apply(this,arguments)}function Jwe(e){Gwe(e)}function Zwe(e){return nR.apply(this,arguments)}function nR(){return nR=$o(Dn().mark(function e(t){return Dn().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(t6===void 0){n.next=2;break}return n.abrupt(\"return\",Xwe(t));case 2:Jwe(t);case 3:case\"end\":return n.stop()}},e)})),nR.apply(this,arguments)}const Qwe=(e,t)=>(qwe(e,t),()=>Zwe(t));let eEe=Qwe;function L7(e){return eEe}const g_=()=>({height:0,opacity:0}),Dz=e=>{const{scrollHeight:t}=e;return{height:t,opacity:1}},tEe=e=>({height:e?e.offsetHeight:0}),y_=(e,t)=>(t==null?void 0:t.deadline)===!0||t.propertyName===\"height\",K0=(e=Xb)=>({motionName:`${e}-motion-collapse`,onAppearStart:g_,onEnterStart:g_,onAppearActive:Dz,onEnterActive:Dz,onLeaveStart:tEe,onLeaveActive:g_,onAppearEnd:y_,onEnterEnd:y_,onLeaveEnd:y_,motionDeadline:500}),ml=(e,t,r)=>r!==void 0?r:`${e}-${t}`;function wn(e,t){var r=Object.assign({},e);return Array.isArray(t)&&t.forEach(function(n){delete r[n]}),r}const xg=function(e){if(!e)return!1;if(e instanceof Element){if(e.offsetParent)return!0;if(e.getBBox){var t=e.getBBox(),r=t.width,n=t.height;if(r||n)return!0}if(e.getBoundingClientRect){var a=e.getBoundingClientRect(),i=a.width,o=a.height;if(i||o)return!0}}return!1},rEe=e=>{const{componentCls:t,colorPrimary:r}=e;return{[t]:{position:\"absolute\",background:\"transparent\",pointerEvents:\"none\",boxSizing:\"border-box\",color:`var(--wave-color, ${r})`,boxShadow:\"0 0 0 0 currentcolor\",opacity:.2,\"&.wave-motion-appear\":{transition:[`box-shadow 0.4s ${e.motionEaseOutCirc}`,`opacity 2s ${e.motionEaseOutCirc}`].join(\",\"),\"&-active\":{boxShadow:\"0 0 0 6px currentcolor\",opacity:0},\"&.wave-quick\":{transition:[`box-shadow ${e.motionDurationSlow} ${e.motionEaseInOut}`,`opacity ${e.motionDurationSlow} ${e.motionEaseInOut}`].join(\",\")}}}}},nEe=zFe(\"Wave\",rEe),r6=`${Xb}-wave-target`;function aEe(e){return e&&e!==\"#fff\"&&e!==\"#ffffff\"&&e!==\"rgb(255, 255, 255)\"&&e!==\"rgba(255, 255, 255, 1)\"&&!/rgba\\((?:\\d*, ){3}0\\)/.test(e)&&e!==\"transparent\"&&e!==\"canvastext\"}function iEe(e){var t;const{borderTopColor:r,borderColor:n,backgroundColor:a}=getComputedStyle(e);return(t=[r,n,a].find(aEe))!==null&&t!==void 0?t:null}function b_(e){return Number.isNaN(e)?0:e}const oEe=e=>{const{className:t,target:r,component:n,registerUnmount:a}=e,i=m.useRef(null),o=m.useRef(null);m.useEffect(()=>{o.current=a()},[]);const[l,s]=m.useState(null),[u,c]=m.useState([]),[d,f]=m.useState(0),[h,p]=m.useState(0),[v,g]=m.useState(0),[y,b]=m.useState(0),[x,F]=m.useState(!1),S={left:d,top:h,width:v,height:y,borderRadius:u.map(D=>`${D}px`).join(\" \")};l&&(S[\"--wave-color\"]=l);function E(){const D=getComputedStyle(r);s(iEe(r));const A=D.position===\"static\",{borderLeftWidth:_,borderTopWidth:I}=D;f(A?r.offsetLeft:b_(-Number.parseFloat(_))),p(A?r.offsetTop:b_(-Number.parseFloat(I))),g(r.offsetWidth),b(r.offsetHeight);const{borderTopLeftRadius:M,borderTopRightRadius:T,borderBottomLeftRadius:k,borderBottomRightRadius:R}=D;c([M,T,R,k].map(P=>b_(Number.parseFloat(P))))}if(m.useEffect(()=>{if(r){const D=Tr(()=>{E(),F(!0)});let A;return typeof ResizeObserver<\"u\"&&(A=new ResizeObserver(E),A.observe(r)),()=>{Tr.cancel(D),A==null||A.disconnect()}}},[r]),!x)return null;const w=(n===\"Checkbox\"||n===\"Radio\")&&(r==null?void 0:r.classList.contains(r6));return m.createElement(fi,{visible:!0,motionAppear:!0,motionName:\"wave-motion\",motionDeadline:5e3,onAppearEnd:(D,A)=>{var _,I;if(A.deadline||A.propertyName===\"opacity\"){const M=(_=i.current)===null||_===void 0?void 0:_.parentElement;(I=o.current)===null||I===void 0||I.call(o).then(()=>{M==null||M.remove()})}return!1}},({className:D},A)=>m.createElement(\"div\",{ref:Qa(i,A),className:ne(t,D,{\"wave-quick\":w}),style:S}))},lEe=(e,t)=>{var r;const{component:n}=t;if(n===\"Checkbox\"&&!(!((r=e.querySelector(\"input\"))===null||r===void 0)&&r.checked))return;const a=document.createElement(\"div\");a.style.position=\"absolute\",a.style.left=\"0px\",a.style.top=\"0px\",e==null||e.insertBefore(a,e==null?void 0:e.firstChild);const i=L7();let o=null;function l(){return o}o=i(m.createElement(oEe,Object.assign({},t,{target:e,registerUnmount:l})),a)},sEe=(e,t,r)=>{const{wave:n}=m.useContext(Ot),[,a,i]=Mi(),o=Pr(u=>{const c=e.current;if(n!=null&&n.disabled||!c)return;const d=c.querySelector(`.${r6}`)||c,{showEffect:f}=n||{};(f||lEe)(d,{className:t,token:a,component:r,event:u,hashId:i})}),l=m.useRef(null);return u=>{Tr.cancel(l.current),l.current=Tr(()=>{o(u)})}},ux=e=>{const{children:t,disabled:r,component:n}=e,{getPrefixCls:a}=m.useContext(Ot),i=m.useRef(null),o=a(\"wave\"),[,l]=nEe(o),s=sEe(i,ne(o,l),n);if(le.useEffect(()=>{const c=i.current;if(!c||c.nodeType!==window.Node.ELEMENT_NODE||r)return;const d=f=>{!xg(f.target)||!c.getAttribute||c.getAttribute(\"disabled\")||c.disabled||c.className.includes(\"disabled\")&&!c.className.includes(\"disabled:\")||c.getAttribute(\"aria-disabled\")===\"true\"||c.className.includes(\"-leave\")||s(f)};return c.addEventListener(\"click\",d,!0),()=>{c.removeEventListener(\"click\",d,!0)}},[r]),!le.isValidElement(t))return t??null;const u=mu(t)?Qa(rh(t),i):i;return oa(t,{ref:u})},Ta=e=>{const t=le.useContext(Gp);return le.useMemo(()=>e?typeof e==\"string\"?e??t:typeof e==\"function\"?e(t):t:t,[e,t])},uEe=e=>{const{componentCls:t}=e;return{[t]:{display:\"inline-flex\",\"&-block\":{display:\"flex\",width:\"100%\"},\"&-vertical\":{flexDirection:\"column\"},\"&-rtl\":{direction:\"rtl\"}}}},cEe=kr([\"Space\",\"Compact\"],e=>[uEe(e)],()=>({}),{resetStyle:!1});var dae=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const n6=m.createContext(null),Cc=(e,t)=>{const r=m.useContext(n6),n=m.useMemo(()=>{if(!r)return\"\";const{compactDirection:a,isFirstItem:i,isLastItem:o}=r,l=a===\"vertical\"?\"-vertical-\":\"-\";return ne(`${e}-compact${l}item`,{[`${e}-compact${l}first-item`]:i,[`${e}-compact${l}last-item`]:o,[`${e}-compact${l}item-rtl`]:t===\"rtl\"})},[e,t,r]);return{compactSize:r==null?void 0:r.compactSize,compactDirection:r==null?void 0:r.compactDirection,compactItemClassnames:n}},dEe=e=>{const{children:t}=e;return m.createElement(n6.Provider,{value:null},t)},fEe=e=>{const{children:t}=e,r=dae(e,[\"children\"]);return m.createElement(n6.Provider,{value:m.useMemo(()=>r,[r])},t)},hEe=e=>{const{getPrefixCls:t,direction:r}=m.useContext(Ot),{size:n,direction:a,block:i,prefixCls:o,className:l,rootClassName:s,children:u}=e,c=dae(e,[\"size\",\"direction\",\"block\",\"prefixCls\",\"className\",\"rootClassName\",\"children\"]),d=Ta(x=>n??x),f=t(\"space-compact\",o),[h,p]=cEe(f),v=ne(f,p,{[`${f}-rtl`]:r===\"rtl\",[`${f}-block`]:i,[`${f}-vertical`]:a===\"vertical\"},l,s),g=m.useContext(n6),y=ba(u),b=m.useMemo(()=>y.map((x,F)=>{const S=(x==null?void 0:x.key)||`${f}-item-${F}`;return m.createElement(fEe,{key:S,compactSize:d,compactDirection:a,isFirstItem:F===0&&(!g||(g==null?void 0:g.isFirstItem)),isLastItem:F===y.length-1&&(!g||(g==null?void 0:g.isLastItem))},x)}),[y,g,a,d,f]);return y.length===0?null:h(m.createElement(\"div\",Object.assign({className:v},c),b))};var pEe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const fae=m.createContext(void 0),mEe=e=>{const{getPrefixCls:t,direction:r}=m.useContext(Ot),{prefixCls:n,size:a,className:i}=e,o=pEe(e,[\"prefixCls\",\"size\",\"className\"]),l=t(\"btn-group\",n),[,,s]=Mi(),u=m.useMemo(()=>{switch(a){case\"large\":return\"lg\";case\"small\":return\"sm\";default:return\"\"}},[a]),c=ne(l,{[`${l}-${u}`]:u,[`${l}-rtl`]:r===\"rtl\"},i,s);return m.createElement(fae.Provider,{value:a},m.createElement(\"div\",Object.assign({},o,{className:c})))},Az=/^[\\u4E00-\\u9FA5]{2}$/,aR=Az.test.bind(Az);function j7(e){return e===\"danger\"?{danger:!0}:{type:e}}function _z(e){return typeof e==\"string\"}function x_(e){return e===\"text\"||e===\"link\"}function vEe(e,t){if(e==null)return;const r=t?\" \":\"\";return typeof e!=\"string\"&&typeof e!=\"number\"&&_z(e.type)&&aR(e.props.children)?oa(e,{children:e.props.children.split(\"\").join(r)}):_z(e)?aR(e)?le.createElement(\"span\",null,e.split(\"\").join(r)):le.createElement(\"span\",null,e):Jne(e)?le.createElement(\"span\",null,e):e}function gEe(e,t){let r=!1;const n=[];return le.Children.forEach(e,a=>{const i=typeof a,o=i===\"string\"||i===\"number\";if(r&&o){const l=n.length-1,s=n[l];n[l]=`${s}${a}`}else n.push(a);r=o}),le.Children.map(n,a=>vEe(a,t))}[\"default\",\"primary\",\"danger\"].concat(He(Lf));const hae=m.forwardRef((e,t)=>{const{className:r,style:n,children:a,prefixCls:i}=e,o=ne(`${i}-icon`,r);return le.createElement(\"span\",{ref:t,className:o,style:n},a)}),Tz=m.forwardRef((e,t)=>{const{prefixCls:r,className:n,style:a,iconClassName:i}=e,o=ne(`${r}-loading-icon`,n);return le.createElement(hae,{prefixCls:r,className:o,style:a,ref:t},le.createElement(cc,{className:i}))}),C_=()=>({width:0,opacity:0,transform:\"scale(0)\"}),F_=e=>({width:e.scrollWidth,opacity:1,transform:\"scale(1)\"}),yEe=e=>{const{prefixCls:t,loading:r,existIcon:n,className:a,style:i,mount:o}=e,l=!!r;return n?le.createElement(Tz,{prefixCls:t,className:a,style:i}):le.createElement(fi,{visible:l,motionName:`${t}-loading-icon-motion`,motionAppear:!o,motionEnter:!o,motionLeave:!o,removeOnLeave:!0,onAppearStart:C_,onAppearActive:F_,onEnterStart:C_,onEnterActive:F_,onLeaveStart:F_,onLeaveActive:C_},({className:s,style:u},c)=>{const d=Object.assign(Object.assign({},i),u);return le.createElement(Tz,{prefixCls:t,className:ne(a,s),style:d,ref:c})})},Iz=(e,t)=>({[`> span, > ${e}`]:{\"&:not(:last-child)\":{[`&, & > ${e}`]:{\"&:not(:disabled)\":{borderInlineEndColor:t}}},\"&:not(:first-child)\":{[`&, & > ${e}`]:{\"&:not(:disabled)\":{borderInlineStartColor:t}}}}}),bEe=e=>{const{componentCls:t,fontSize:r,lineWidth:n,groupBorderColor:a,colorErrorHover:i}=e;return{[`${t}-group`]:[{position:\"relative\",display:\"inline-flex\",[`> span, > ${t}`]:{\"&:not(:last-child)\":{[`&, & > ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},\"&:not(:first-child)\":{marginInlineStart:e.calc(n).mul(-1).equal(),[`&, & > ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[t]:{position:\"relative\",zIndex:1,\"&:hover, &:focus, &:active\":{zIndex:2},\"&[disabled]\":{zIndex:0}},[`${t}-icon-only`]:{fontSize:r}},Iz(`${t}-primary`,a),Iz(`${t}-danger`,i)]}};var xEe=[\"b\"],CEe=[\"v\"],S_=function(t){return Math.round(Number(t||0))},FEe=function(t){if(t instanceof $r)return t;if(t&&Nt(t)===\"object\"&&\"h\"in t&&\"b\"in t){var r=t,n=r.b,a=Xt(r,xEe);return ae(ae({},a),{},{v:n})}return typeof t==\"string\"&&/hsb/.test(t)?t.replace(/hsb/,\"hsv\"):t},Zb=function(e){Vl(r,e);var t=Ts(r);function r(n){return Xn(this,r),t.call(this,FEe(n))}return Jn(r,[{key:\"toHsbString\",value:function(){var a=this.toHsb(),i=S_(a.s*100),o=S_(a.b*100),l=S_(a.h),s=a.a,u=\"hsb(\".concat(l,\", \").concat(i,\"%, \").concat(o,\"%)\"),c=\"hsba(\".concat(l,\", \").concat(i,\"%, \").concat(o,\"%, \").concat(s.toFixed(s===0?0:2),\")\");return s===1?u:c}},{key:\"toHsb\",value:function(){var a=this.toHsv(),i=a.v,o=Xt(a,CEe);return ae(ae({},o),{},{b:i,a:this.a})}}]),r}($r),SEe=function(t){return t instanceof Zb?t:new Zb(t)};SEe(\"#1677ff\");const wEe=(e,t)=>(e==null?void 0:e.replace(/[^\\w/]/g,\"\").slice(0,t?8:6))||\"\",EEe=(e,t)=>e?wEe(e,t):\"\";let iR=function(){function e(t){Xn(this,e);var r;if(this.cleared=!1,t instanceof e){this.metaColor=t.metaColor.clone(),this.colors=(r=t.colors)===null||r===void 0?void 0:r.map(a=>({color:new e(a.color),percent:a.percent})),this.cleared=t.cleared;return}const n=Array.isArray(t);n&&t.length?(this.colors=t.map(({color:a,percent:i})=>({color:new e(a),percent:i})),this.metaColor=new Zb(this.colors[0].color.metaColor)):this.metaColor=new Zb(n?\"\":t),(!t||n&&!this.colors)&&(this.metaColor=this.metaColor.setA(0),this.cleared=!0)}return Jn(e,[{key:\"toHsb\",value:function(){return this.metaColor.toHsb()}},{key:\"toHsbString\",value:function(){return this.metaColor.toHsbString()}},{key:\"toHex\",value:function(){return EEe(this.toHexString(),this.metaColor.a<1)}},{key:\"toHexString\",value:function(){return this.metaColor.toHexString()}},{key:\"toRgb\",value:function(){return this.metaColor.toRgb()}},{key:\"toRgbString\",value:function(){return this.metaColor.toRgbString()}},{key:\"isGradient\",value:function(){return!!this.colors&&!this.cleared}},{key:\"getColors\",value:function(){return this.colors||[{color:this,percent:0}]}},{key:\"toCssString\",value:function(){const{colors:r}=this;return r?`linear-gradient(90deg, ${r.map(a=>`${a.color.toRgbString()} ${a.percent}%`).join(\", \")})`:this.metaColor.toRgbString()}},{key:\"equals\",value:function(r){return!r||this.isGradient()!==r.isGradient()?!1:this.isGradient()?this.colors.length===r.colors.length&&this.colors.every((n,a)=>{const i=r.colors[a];return n.percent===i.percent&&n.color.equals(i.color)}):this.toHexString()===r.toHexString()}}])}();var DEe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\"}}]},name:\"right\",theme:\"outlined\"},AEe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:DEe}))},nd=m.forwardRef(AEe),pae=le.forwardRef(function(e,t){var r=e.prefixCls,n=e.forceRender,a=e.className,i=e.style,o=e.children,l=e.isActive,s=e.role,u=e.classNames,c=e.styles,d=le.useState(l||n),f=ve(d,2),h=f[0],p=f[1];return le.useEffect(function(){(n||l)&&p(!0)},[n,l]),h?le.createElement(\"div\",{ref:t,className:ne(\"\".concat(r,\"-content\"),Z(Z({},\"\".concat(r,\"-content-active\"),l),\"\".concat(r,\"-content-inactive\"),!l),a),style:i,role:s},le.createElement(\"div\",{className:ne(\"\".concat(r,\"-content-box\"),u==null?void 0:u.body),style:c==null?void 0:c.body},o)):null});pae.displayName=\"PanelContent\";var _Ee=[\"showArrow\",\"headerClass\",\"isActive\",\"onItemClick\",\"forceRender\",\"className\",\"classNames\",\"styles\",\"prefixCls\",\"collapsible\",\"accordion\",\"panelKey\",\"extra\",\"header\",\"expandIcon\",\"openMotion\",\"destroyInactivePanel\",\"children\"],mae=le.forwardRef(function(e,t){var r=e.showArrow,n=r===void 0?!0:r,a=e.headerClass,i=e.isActive,o=e.onItemClick,l=e.forceRender,s=e.className,u=e.classNames,c=u===void 0?{}:u,d=e.styles,f=d===void 0?{}:d,h=e.prefixCls,p=e.collapsible,v=e.accordion,g=e.panelKey,y=e.extra,b=e.header,x=e.expandIcon,F=e.openMotion,S=e.destroyInactivePanel,E=e.children,w=Xt(e,_Ee),D=p===\"disabled\",A=y!=null&&typeof y!=\"boolean\",_=Z(Z(Z({onClick:function(){o==null||o(g)},onKeyDown:function(B){(B.key===\"Enter\"||B.keyCode===It.ENTER||B.which===It.ENTER)&&(o==null||o(g))},role:v?\"tab\":\"button\"},\"aria-expanded\",i),\"aria-disabled\",D),\"tabIndex\",D?-1:0),I=typeof x==\"function\"?x(e):le.createElement(\"i\",{className:\"arrow\"}),M=I&&le.createElement(\"div\",Ce({className:\"\".concat(h,\"-expand-icon\")},[\"header\",\"icon\"].includes(p)?_:{}),I),T=ne(\"\".concat(h,\"-item\"),Z(Z({},\"\".concat(h,\"-item-active\"),i),\"\".concat(h,\"-item-disabled\"),D),s),k=ne(a,\"\".concat(h,\"-header\"),Z({},\"\".concat(h,\"-collapsible-\").concat(p),!!p),c.header),R=ae({className:k,style:f.header},[\"header\",\"icon\"].includes(p)?{}:_);return le.createElement(\"div\",Ce({},w,{ref:t,className:T}),le.createElement(\"div\",R,n&&M,le.createElement(\"span\",Ce({className:\"\".concat(h,\"-header-text\")},p===\"header\"?_:{}),b),A&&le.createElement(\"div\",{className:\"\".concat(h,\"-extra\")},y)),le.createElement(fi,Ce({visible:i,leavedClassName:\"\".concat(h,\"-content-hidden\")},F,{forceRender:l,removeOnLeave:S}),function(P,B){var N=P.className,O=P.style;return le.createElement(pae,{ref:B,prefixCls:h,className:N,classNames:c,style:O,styles:f,isActive:i,forceRender:l,role:v?\"tabpanel\":void 0},E)}))}),TEe=[\"children\",\"label\",\"key\",\"collapsible\",\"onItemClick\",\"destroyInactivePanel\"],IEe=function(t,r){var n=r.prefixCls,a=r.accordion,i=r.collapsible,o=r.destroyInactivePanel,l=r.onItemClick,s=r.activeKey,u=r.openMotion,c=r.expandIcon;return t.map(function(d,f){var h=d.children,p=d.label,v=d.key,g=d.collapsible,y=d.onItemClick,b=d.destroyInactivePanel,x=Xt(d,TEe),F=String(v??f),S=g??i,E=b??o,w=function(_){S!==\"disabled\"&&(l(_),y==null||y(_))},D=!1;return a?D=s[0]===F:D=s.indexOf(F)>-1,le.createElement(mae,Ce({},x,{prefixCls:n,key:F,panelKey:F,isActive:D,accordion:a,openMotion:u,expandIcon:c,header:p,collapsible:S,onItemClick:w,destroyInactivePanel:E}),h)})},kEe=function(t,r,n){if(!t)return null;var a=n.prefixCls,i=n.accordion,o=n.collapsible,l=n.destroyInactivePanel,s=n.onItemClick,u=n.activeKey,c=n.openMotion,d=n.expandIcon,f=t.key||String(r),h=t.props,p=h.header,v=h.headerClass,g=h.destroyInactivePanel,y=h.collapsible,b=h.onItemClick,x=!1;i?x=u[0]===f:x=u.indexOf(f)>-1;var F=y??o,S=function(D){F!==\"disabled\"&&(s(D),b==null||b(D))},E={key:f,panelKey:f,header:p,headerClass:v,isActive:x,prefixCls:a,destroyInactivePanel:g??l,openMotion:c,accordion:i,children:t.props.children,onItemClick:S,expandIcon:d,collapsible:F};return typeof t.type==\"string\"?t:(Object.keys(E).forEach(function(w){typeof E[w]>\"u\"&&delete E[w]}),le.cloneElement(t,E))};function REe(e,t,r){return Array.isArray(e)?IEe(e,r):ba(t).map(function(n,a){return kEe(n,a,r)})}function MEe(e){var t=e;if(!Array.isArray(t)){var r=Nt(t);t=r===\"number\"||r===\"string\"?[t]:[]}return t.map(function(n){return String(n)})}var PEe=le.forwardRef(function(e,t){var r=e.prefixCls,n=r===void 0?\"rc-collapse\":r,a=e.destroyInactivePanel,i=a===void 0?!1:a,o=e.style,l=e.accordion,s=e.className,u=e.children,c=e.collapsible,d=e.openMotion,f=e.expandIcon,h=e.activeKey,p=e.defaultActiveKey,v=e.onChange,g=e.items,y=ne(n,s),b=un([],{value:h,onChange:function(A){return v==null?void 0:v(A)},defaultValue:p,postState:MEe}),x=ve(b,2),F=x[0],S=x[1],E=function(A){return S(function(){if(l)return F[0]===A?[]:[A];var _=F.indexOf(A),I=_>-1;return I?F.filter(function(M){return M!==A}):[].concat(He(F),[A])})};jn(!u,\"[rc-collapse] `children` will be removed in next major version. Please use `items` instead.\");var w=REe(g,u,{prefixCls:n,accordion:l,openMotion:d,expandIcon:f,collapsible:c,destroyInactivePanel:i,onItemClick:E,activeKey:F});return le.createElement(\"div\",Ce({ref:t,className:y,style:o,role:l?\"tablist\":void 0},qn(e,{aria:!0,data:!0})),w)});const z7=Object.assign(PEe,{Panel:mae});z7.Panel;const OEe=m.forwardRef((e,t)=>{const{getPrefixCls:r}=m.useContext(Ot),{prefixCls:n,className:a,showArrow:i=!0}=e,o=r(\"collapse\",n),l=ne({[`${o}-no-arrow`]:!i},a);return m.createElement(z7.Panel,Object.assign({ref:t},e,{prefixCls:o,className:l}))}),cx=e=>({[e.componentCls]:{[`${e.antCls}-motion-collapse-legacy`]:{overflow:\"hidden\",\"&-active\":{transition:`height ${e.motionDurationMid} ${e.motionEaseInOut},\n opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}},[`${e.antCls}-motion-collapse`]:{overflow:\"hidden\",transition:`height ${e.motionDurationMid} ${e.motionEaseInOut},\n opacity ${e.motionDurationMid} ${e.motionEaseInOut} !important`}}}),BEe=e=>({animationDuration:e,animationFillMode:\"both\"}),NEe=e=>({animationDuration:e,animationFillMode:\"both\"}),a6=(e,t,r,n,a=!1)=>{const i=a?\"&\":\"\";return{[`\n ${i}${e}-enter,\n ${i}${e}-appear\n `]:Object.assign(Object.assign({},BEe(n)),{animationPlayState:\"paused\"}),[`${i}${e}-leave`]:Object.assign(Object.assign({},NEe(n)),{animationPlayState:\"paused\"}),[`\n ${i}${e}-enter${e}-enter-active,\n ${i}${e}-appear${e}-appear-active\n `]:{animationName:t,animationPlayState:\"running\"},[`${i}${e}-leave${e}-leave-active`]:{animationName:r,animationPlayState:\"running\",pointerEvents:\"none\"}}},$Ee=new Br(\"antFadeIn\",{\"0%\":{opacity:0},\"100%\":{opacity:1}}),LEe=new Br(\"antFadeOut\",{\"0%\":{opacity:1},\"100%\":{opacity:0}}),H7=(e,t=!1)=>{const{antCls:r}=e,n=`${r}-fade`,a=t?\"&\":\"\";return[a6(n,$Ee,LEe,e.motionDurationMid,t),{[`\n ${a}${n}-enter,\n ${a}${n}-appear\n `]:{opacity:0,animationTimingFunction:\"linear\"},[`${a}${n}-leave`]:{animationTimingFunction:\"linear\"}}]},jEe=new Br(\"antMoveDownIn\",{\"0%\":{transform:\"translate3d(0, 100%, 0)\",transformOrigin:\"0 0\",opacity:0},\"100%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1}}),zEe=new Br(\"antMoveDownOut\",{\"0%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1},\"100%\":{transform:\"translate3d(0, 100%, 0)\",transformOrigin:\"0 0\",opacity:0}}),HEe=new Br(\"antMoveLeftIn\",{\"0%\":{transform:\"translate3d(-100%, 0, 0)\",transformOrigin:\"0 0\",opacity:0},\"100%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1}}),VEe=new Br(\"antMoveLeftOut\",{\"0%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1},\"100%\":{transform:\"translate3d(-100%, 0, 0)\",transformOrigin:\"0 0\",opacity:0}}),WEe=new Br(\"antMoveRightIn\",{\"0%\":{transform:\"translate3d(100%, 0, 0)\",transformOrigin:\"0 0\",opacity:0},\"100%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1}}),GEe=new Br(\"antMoveRightOut\",{\"0%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1},\"100%\":{transform:\"translate3d(100%, 0, 0)\",transformOrigin:\"0 0\",opacity:0}}),UEe=new Br(\"antMoveUpIn\",{\"0%\":{transform:\"translate3d(0, -100%, 0)\",transformOrigin:\"0 0\",opacity:0},\"100%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1}}),KEe=new Br(\"antMoveUpOut\",{\"0%\":{transform:\"translate3d(0, 0, 0)\",transformOrigin:\"0 0\",opacity:1},\"100%\":{transform:\"translate3d(0, -100%, 0)\",transformOrigin:\"0 0\",opacity:0}}),YEe={\"move-up\":{inKeyframes:UEe,outKeyframes:KEe},\"move-down\":{inKeyframes:jEe,outKeyframes:zEe},\"move-left\":{inKeyframes:HEe,outKeyframes:VEe},\"move-right\":{inKeyframes:WEe,outKeyframes:GEe}},Y0=(e,t)=>{const{antCls:r}=e,n=`${r}-${t}`,{inKeyframes:a,outKeyframes:i}=YEe[t];return[a6(n,a,i,e.motionDurationMid),{[`\n ${n}-enter,\n ${n}-appear\n `]:{opacity:0,animationTimingFunction:e.motionEaseOutCirc},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},i6=new Br(\"antSlideUpIn\",{\"0%\":{transform:\"scaleY(0.8)\",transformOrigin:\"0% 0%\",opacity:0},\"100%\":{transform:\"scaleY(1)\",transformOrigin:\"0% 0%\",opacity:1}}),o6=new Br(\"antSlideUpOut\",{\"0%\":{transform:\"scaleY(1)\",transformOrigin:\"0% 0%\",opacity:1},\"100%\":{transform:\"scaleY(0.8)\",transformOrigin:\"0% 0%\",opacity:0}}),l6=new Br(\"antSlideDownIn\",{\"0%\":{transform:\"scaleY(0.8)\",transformOrigin:\"100% 100%\",opacity:0},\"100%\":{transform:\"scaleY(1)\",transformOrigin:\"100% 100%\",opacity:1}}),s6=new Br(\"antSlideDownOut\",{\"0%\":{transform:\"scaleY(1)\",transformOrigin:\"100% 100%\",opacity:1},\"100%\":{transform:\"scaleY(0.8)\",transformOrigin:\"100% 100%\",opacity:0}}),qEe=new Br(\"antSlideLeftIn\",{\"0%\":{transform:\"scaleX(0.8)\",transformOrigin:\"0% 0%\",opacity:0},\"100%\":{transform:\"scaleX(1)\",transformOrigin:\"0% 0%\",opacity:1}}),XEe=new Br(\"antSlideLeftOut\",{\"0%\":{transform:\"scaleX(1)\",transformOrigin:\"0% 0%\",opacity:1},\"100%\":{transform:\"scaleX(0.8)\",transformOrigin:\"0% 0%\",opacity:0}}),JEe=new Br(\"antSlideRightIn\",{\"0%\":{transform:\"scaleX(0.8)\",transformOrigin:\"100% 0%\",opacity:0},\"100%\":{transform:\"scaleX(1)\",transformOrigin:\"100% 0%\",opacity:1}}),ZEe=new Br(\"antSlideRightOut\",{\"0%\":{transform:\"scaleX(1)\",transformOrigin:\"100% 0%\",opacity:1},\"100%\":{transform:\"scaleX(0.8)\",transformOrigin:\"100% 0%\",opacity:0}}),QEe={\"slide-up\":{inKeyframes:i6,outKeyframes:o6},\"slide-down\":{inKeyframes:l6,outKeyframes:s6},\"slide-left\":{inKeyframes:qEe,outKeyframes:XEe},\"slide-right\":{inKeyframes:JEe,outKeyframes:ZEe}},dc=(e,t)=>{const{antCls:r}=e,n=`${r}-${t}`,{inKeyframes:a,outKeyframes:i}=QEe[t];return[a6(n,a,i,e.motionDurationMid),{[`\n ${n}-enter,\n ${n}-appear\n `]:{transform:\"scale(0)\",transformOrigin:\"0% 0%\",opacity:0,animationTimingFunction:e.motionEaseOutQuint,\"&-prepare\":{transform:\"scale(1)\"}},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInQuint}}]},V7=new Br(\"antZoomIn\",{\"0%\":{transform:\"scale(0.2)\",opacity:0},\"100%\":{transform:\"scale(1)\",opacity:1}}),e3e=new Br(\"antZoomOut\",{\"0%\":{transform:\"scale(1)\"},\"100%\":{transform:\"scale(0.2)\",opacity:0}}),kz=new Br(\"antZoomBigIn\",{\"0%\":{transform:\"scale(0.8)\",opacity:0},\"100%\":{transform:\"scale(1)\",opacity:1}}),Rz=new Br(\"antZoomBigOut\",{\"0%\":{transform:\"scale(1)\"},\"100%\":{transform:\"scale(0.8)\",opacity:0}}),t3e=new Br(\"antZoomUpIn\",{\"0%\":{transform:\"scale(0.8)\",transformOrigin:\"50% 0%\",opacity:0},\"100%\":{transform:\"scale(1)\",transformOrigin:\"50% 0%\"}}),r3e=new Br(\"antZoomUpOut\",{\"0%\":{transform:\"scale(1)\",transformOrigin:\"50% 0%\"},\"100%\":{transform:\"scale(0.8)\",transformOrigin:\"50% 0%\",opacity:0}}),n3e=new Br(\"antZoomLeftIn\",{\"0%\":{transform:\"scale(0.8)\",transformOrigin:\"0% 50%\",opacity:0},\"100%\":{transform:\"scale(1)\",transformOrigin:\"0% 50%\"}}),a3e=new Br(\"antZoomLeftOut\",{\"0%\":{transform:\"scale(1)\",transformOrigin:\"0% 50%\"},\"100%\":{transform:\"scale(0.8)\",transformOrigin:\"0% 50%\",opacity:0}}),i3e=new Br(\"antZoomRightIn\",{\"0%\":{transform:\"scale(0.8)\",transformOrigin:\"100% 50%\",opacity:0},\"100%\":{transform:\"scale(1)\",transformOrigin:\"100% 50%\"}}),o3e=new Br(\"antZoomRightOut\",{\"0%\":{transform:\"scale(1)\",transformOrigin:\"100% 50%\"},\"100%\":{transform:\"scale(0.8)\",transformOrigin:\"100% 50%\",opacity:0}}),l3e=new Br(\"antZoomDownIn\",{\"0%\":{transform:\"scale(0.8)\",transformOrigin:\"50% 100%\",opacity:0},\"100%\":{transform:\"scale(1)\",transformOrigin:\"50% 100%\"}}),s3e=new Br(\"antZoomDownOut\",{\"0%\":{transform:\"scale(1)\",transformOrigin:\"50% 100%\"},\"100%\":{transform:\"scale(0.8)\",transformOrigin:\"50% 100%\",opacity:0}}),u3e={zoom:{inKeyframes:V7,outKeyframes:e3e},\"zoom-big\":{inKeyframes:kz,outKeyframes:Rz},\"zoom-big-fast\":{inKeyframes:kz,outKeyframes:Rz},\"zoom-left\":{inKeyframes:n3e,outKeyframes:a3e},\"zoom-right\":{inKeyframes:i3e,outKeyframes:o3e},\"zoom-up\":{inKeyframes:t3e,outKeyframes:r3e},\"zoom-down\":{inKeyframes:l3e,outKeyframes:s3e}},Cg=(e,t)=>{const{antCls:r}=e,n=`${r}-${t}`,{inKeyframes:a,outKeyframes:i}=u3e[t];return[a6(n,a,i,t===\"zoom-big-fast\"?e.motionDurationFast:e.motionDurationMid),{[`\n ${n}-enter,\n ${n}-appear\n `]:{transform:\"scale(0)\",opacity:0,animationTimingFunction:e.motionEaseOutCirc,\"&-prepare\":{transform:\"none\"}},[`${n}-leave`]:{animationTimingFunction:e.motionEaseInOutCirc}}]},c3e=e=>{const{componentCls:t,contentBg:r,padding:n,headerBg:a,headerPadding:i,collapseHeaderPaddingSM:o,collapseHeaderPaddingLG:l,collapsePanelBorderRadius:s,lineWidth:u,lineType:c,colorBorder:d,colorText:f,colorTextHeading:h,colorTextDisabled:p,fontSizeLG:v,lineHeight:g,lineHeightLG:y,marginSM:b,paddingSM:x,paddingLG:F,paddingXS:S,motionDurationSlow:E,fontSizeIcon:w,contentPadding:D,fontHeight:A,fontHeightLG:_}=e,I=`${re(u)} ${c} ${d}`;return{[t]:Object.assign(Object.assign({},Hr(e)),{backgroundColor:a,border:I,borderRadius:s,\"&-rtl\":{direction:\"rtl\"},[`& > ${t}-item`]:{borderBottom:I,\"&:first-child\":{[`\n &,\n & > ${t}-header`]:{borderRadius:`${re(s)} ${re(s)} 0 0`}},\"&:last-child\":{[`\n &,\n & > ${t}-header`]:{borderRadius:`0 0 ${re(s)} ${re(s)}`}},[`> ${t}-header`]:Object.assign(Object.assign({position:\"relative\",display:\"flex\",flexWrap:\"nowrap\",alignItems:\"flex-start\",padding:i,color:h,lineHeight:g,cursor:\"pointer\",transition:`all ${E}, visibility 0s`},pl(e)),{[`> ${t}-header-text`]:{flex:\"auto\"},[`${t}-expand-icon`]:{height:A,display:\"flex\",alignItems:\"center\",paddingInlineEnd:b},[`${t}-arrow`]:Object.assign(Object.assign({},pm()),{fontSize:w,transition:`transform ${E}`,svg:{transition:`transform ${E}`}}),[`${t}-header-text`]:{marginInlineEnd:\"auto\"}}),[`${t}-collapsible-header`]:{cursor:\"default\",[`${t}-header-text`]:{flex:\"none\",cursor:\"pointer\"},[`${t}-expand-icon`]:{cursor:\"pointer\"}},[`${t}-collapsible-icon`]:{cursor:\"unset\",[`${t}-expand-icon`]:{cursor:\"pointer\"}}},[`${t}-content`]:{color:f,backgroundColor:r,borderTop:I,[`& > ${t}-content-box`]:{padding:D},\"&-hidden\":{display:\"none\"}},\"&-small\":{[`> ${t}-item`]:{[`> ${t}-header`]:{padding:o,paddingInlineStart:S,[`> ${t}-expand-icon`]:{marginInlineStart:e.calc(x).sub(S).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:x}}},\"&-large\":{[`> ${t}-item`]:{fontSize:v,lineHeight:y,[`> ${t}-header`]:{padding:l,paddingInlineStart:n,[`> ${t}-expand-icon`]:{height:_,marginInlineStart:e.calc(F).sub(n).equal()}},[`> ${t}-content > ${t}-content-box`]:{padding:F}}},[`${t}-item:last-child`]:{borderBottom:0,[`> ${t}-content`]:{borderRadius:`0 0 ${re(s)} ${re(s)}`}},[`& ${t}-item-disabled > ${t}-header`]:{\"\\n &,\\n & > .arrow\\n \":{color:p,cursor:\"not-allowed\"}},[`&${t}-icon-position-end`]:{[`& > ${t}-item`]:{[`> ${t}-header`]:{[`${t}-expand-icon`]:{order:1,paddingInlineEnd:0,paddingInlineStart:b}}}}})}},d3e=e=>{const{componentCls:t}=e,r=`> ${t}-item > ${t}-header ${t}-arrow`;return{[`${t}-rtl`]:{[r]:{transform:\"rotate(180deg)\"}}}},f3e=e=>{const{componentCls:t,headerBg:r,borderlessContentPadding:n,borderlessContentBg:a,colorBorder:i}=e;return{[`${t}-borderless`]:{backgroundColor:r,border:0,[`> ${t}-item`]:{borderBottom:`1px solid ${i}`},[`\n > ${t}-item:last-child,\n > ${t}-item:last-child ${t}-header\n `]:{borderRadius:0},[`> ${t}-item:last-child`]:{borderBottom:0},[`> ${t}-item > ${t}-content`]:{backgroundColor:a,borderTop:0},[`> ${t}-item > ${t}-content > ${t}-content-box`]:{padding:n}}}},h3e=e=>{const{componentCls:t,paddingSM:r}=e;return{[`${t}-ghost`]:{backgroundColor:\"transparent\",border:0,[`> ${t}-item`]:{borderBottom:0,[`> ${t}-content`]:{backgroundColor:\"transparent\",border:0,[`> ${t}-content-box`]:{paddingBlock:r}}}}}},p3e=e=>({headerPadding:`${e.paddingSM}px ${e.padding}px`,headerBg:e.colorFillAlter,contentPadding:`${e.padding}px 16px`,contentBg:e.colorBgContainer,borderlessContentPadding:`${e.paddingXXS}px 16px ${e.padding}px`,borderlessContentBg:\"transparent\"}),m3e=kr(\"Collapse\",e=>{const t=Sr(e,{collapseHeaderPaddingSM:`${re(e.paddingXS)} ${re(e.paddingSM)}`,collapseHeaderPaddingLG:`${re(e.padding)} ${re(e.paddingLG)}`,collapsePanelBorderRadius:e.borderRadiusLG});return[c3e(t),f3e(t),h3e(t),d3e(t),cx(t)]},p3e),v3e=m.forwardRef((e,t)=>{const{getPrefixCls:r,direction:n,expandIcon:a,className:i,style:o}=na(\"collapse\"),{prefixCls:l,className:s,rootClassName:u,style:c,bordered:d=!0,ghost:f,size:h,expandIconPosition:p=\"start\",children:v,destroyInactivePanel:g,destroyOnHidden:y,expandIcon:b}=e,x=Ta(R=>{var P;return(P=h??R)!==null&&P!==void 0?P:\"middle\"}),F=r(\"collapse\",l),S=r(),[E,w,D]=m3e(F),A=m.useMemo(()=>p===\"left\"?\"start\":p===\"right\"?\"end\":p,[p]),_=b??a,I=m.useCallback((R={})=>{const P=typeof _==\"function\"?_(R):m.createElement(nd,{rotate:R.isActive?n===\"rtl\"?-90:90:void 0,\"aria-label\":R.isActive?\"expanded\":\"collapsed\"});return oa(P,()=>{var B;return{className:ne((B=P.props)===null||B===void 0?void 0:B.className,`${F}-arrow`)}})},[_,F,n]),M=ne(`${F}-icon-position-${A}`,{[`${F}-borderless`]:!d,[`${F}-rtl`]:n===\"rtl\",[`${F}-ghost`]:!!f,[`${F}-${x}`]:x!==\"middle\"},i,s,u,w,D),T=m.useMemo(()=>Object.assign(Object.assign({},K0(S)),{motionAppear:!1,leavedClassName:`${F}-content-hidden`}),[S,F]),k=m.useMemo(()=>v?ba(v).map((R,P)=>{var B,N;const O=R.props;if(O!=null&&O.disabled){const z=(B=R.key)!==null&&B!==void 0?B:String(P),W=Object.assign(Object.assign({},wn(R.props,[\"disabled\"])),{key:z,collapsible:(N=O.collapsible)!==null&&N!==void 0?N:\"disabled\"});return oa(R,W)}return R}):null,[v]);return E(m.createElement(z7,Object.assign({ref:t,openMotion:T},wn(e,[\"rootClassName\"]),{expandIcon:I,prefixCls:F,className:M,style:Object.assign(Object.assign({},o),c),destroyInactivePanel:y??g}),k))}),g3e=Object.assign(v3e,{Panel:OEe}),y3e=e=>e instanceof iR?e:new iR(e),b3e=(e,t)=>{const{r,g:n,b:a,a:i}=e.toRgb(),o=new Zb(e.toRgbString()).onBackground(t).toHsv();return i<=.5?o.v>.5:r*.299+n*.587+a*.114>192},vae=e=>{const{paddingInline:t,onlyIconSize:r}=e;return Sr(e,{buttonPaddingHorizontal:t,buttonPaddingVertical:0,buttonIconOnlyFontSize:r})},gae=e=>{var t,r,n,a,i,o;const l=(t=e.contentFontSize)!==null&&t!==void 0?t:e.fontSize,s=(r=e.contentFontSizeSM)!==null&&r!==void 0?r:e.fontSize,u=(n=e.contentFontSizeLG)!==null&&n!==void 0?n:e.fontSizeLG,c=(a=e.contentLineHeight)!==null&&a!==void 0?a:iw(l),d=(i=e.contentLineHeightSM)!==null&&i!==void 0?i:iw(s),f=(o=e.contentLineHeightLG)!==null&&o!==void 0?o:iw(u),h=b3e(new iR(e.colorBgSolid),\"#fff\")?\"#000\":\"#fff\",p=Lf.reduce((v,g)=>Object.assign(Object.assign({},v),{[`${g}ShadowColor`]:`0 ${re(e.controlOutlineWidth)} 0 ${sy(e[`${g}1`],e.colorBgContainer)}`}),{});return Object.assign(Object.assign({},p),{fontWeight:400,iconGap:e.marginXS,defaultShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlTmpOutline}`,primaryShadow:`0 ${e.controlOutlineWidth}px 0 ${e.controlOutline}`,dangerShadow:`0 ${e.controlOutlineWidth}px 0 ${e.colorErrorOutline}`,primaryColor:e.colorTextLightSolid,dangerColor:e.colorTextLightSolid,borderColorDisabled:e.colorBorder,defaultGhostColor:e.colorBgContainer,ghostBg:\"transparent\",defaultGhostBorderColor:e.colorBgContainer,paddingInline:e.paddingContentHorizontal-e.lineWidth,paddingInlineLG:e.paddingContentHorizontal-e.lineWidth,paddingInlineSM:8-e.lineWidth,onlyIconSize:\"inherit\",onlyIconSizeSM:\"inherit\",onlyIconSizeLG:\"inherit\",groupBorderColor:e.colorPrimaryHover,linkHoverBg:\"transparent\",textTextColor:e.colorText,textTextHoverColor:e.colorText,textTextActiveColor:e.colorText,textHoverBg:e.colorFillTertiary,defaultColor:e.colorText,defaultBg:e.colorBgContainer,defaultBorderColor:e.colorBorder,defaultBorderColorDisabled:e.colorBorder,defaultHoverBg:e.colorBgContainer,defaultHoverColor:e.colorPrimaryHover,defaultHoverBorderColor:e.colorPrimaryHover,defaultActiveBg:e.colorBgContainer,defaultActiveColor:e.colorPrimaryActive,defaultActiveBorderColor:e.colorPrimaryActive,solidTextColor:h,contentFontSize:l,contentFontSizeSM:s,contentFontSizeLG:u,contentLineHeight:c,contentLineHeightSM:d,contentLineHeightLG:f,paddingBlock:Math.max((e.controlHeight-l*c)/2-e.lineWidth,0),paddingBlockSM:Math.max((e.controlHeightSM-s*d)/2-e.lineWidth,0),paddingBlockLG:Math.max((e.controlHeightLG-u*f)/2-e.lineWidth,0)})},x3e=e=>{const{componentCls:t,iconCls:r,fontWeight:n,opacityLoading:a,motionDurationSlow:i,motionEaseInOut:o,iconGap:l,calc:s}=e;return{[t]:{outline:\"none\",position:\"relative\",display:\"inline-flex\",gap:l,alignItems:\"center\",justifyContent:\"center\",fontWeight:n,whiteSpace:\"nowrap\",textAlign:\"center\",backgroundImage:\"none\",background:\"transparent\",border:`${re(e.lineWidth)} ${e.lineType} transparent`,cursor:\"pointer\",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,userSelect:\"none\",touchAction:\"manipulation\",color:e.colorText,\"&:disabled > *\":{pointerEvents:\"none\"},[`${t}-icon > svg`]:pm(),\"> a\":{color:\"currentColor\"},\"&:not(:disabled)\":pl(e),[`&${t}-two-chinese-chars::first-letter`]:{letterSpacing:\"0.34em\"},[`&${t}-two-chinese-chars > *:not(${r})`]:{marginInlineEnd:\"-0.34em\",letterSpacing:\"0.34em\"},[`&${t}-icon-only`]:{paddingInline:0,[`&${t}-compact-item`]:{flex:\"none\"}},[`&${t}-loading`]:{opacity:a,cursor:\"default\"},[`${t}-loading-icon`]:{transition:[\"width\",\"opacity\",\"margin\"].map(u=>`${u} ${i} ${o}`).join(\",\")},[`&:not(${t}-icon-end)`]:{[`${t}-loading-icon-motion`]:{\"&-appear-start, &-enter-start\":{marginInlineEnd:s(l).mul(-1).equal()},\"&-appear-active, &-enter-active\":{marginInlineEnd:0},\"&-leave-start\":{marginInlineEnd:0},\"&-leave-active\":{marginInlineEnd:s(l).mul(-1).equal()}}},\"&-icon-end\":{flexDirection:\"row-reverse\",[`${t}-loading-icon-motion`]:{\"&-appear-start, &-enter-start\":{marginInlineStart:s(l).mul(-1).equal()},\"&-appear-active, &-enter-active\":{marginInlineStart:0},\"&-leave-start\":{marginInlineStart:0},\"&-leave-active\":{marginInlineStart:s(l).mul(-1).equal()}}}}}},yae=(e,t,r)=>({[`&:not(:disabled):not(${e}-disabled)`]:{\"&:hover\":t,\"&:active\":r}}),C3e=e=>({minWidth:e.controlHeight,paddingInline:0,borderRadius:\"50%\"}),F3e=e=>({cursor:\"not-allowed\",borderColor:e.borderColorDisabled,color:e.colorTextDisabled,background:e.colorBgContainerDisabled,boxShadow:\"none\"}),u6=(e,t,r,n,a,i,o,l)=>({[`&${e}-background-ghost`]:Object.assign(Object.assign({color:r||void 0,background:t,borderColor:n||void 0,boxShadow:\"none\"},yae(e,Object.assign({background:t},o),Object.assign({background:t},l))),{\"&:disabled\":{cursor:\"not-allowed\",color:a||void 0,borderColor:i||void 0}})}),S3e=e=>({[`&:disabled, &${e.componentCls}-disabled`]:Object.assign({},F3e(e))}),w3e=e=>({[`&:disabled, &${e.componentCls}-disabled`]:{cursor:\"not-allowed\",color:e.colorTextDisabled}}),c6=(e,t,r,n)=>{const i=n&&[\"link\",\"text\"].includes(n)?w3e:S3e;return Object.assign(Object.assign({},i(e)),yae(e.componentCls,t,r))},d6=(e,t,r,n,a)=>({[`&${e.componentCls}-variant-solid`]:Object.assign({color:t,background:r},c6(e,n,a))}),f6=(e,t,r,n,a)=>({[`&${e.componentCls}-variant-outlined, &${e.componentCls}-variant-dashed`]:Object.assign({borderColor:t,background:r},c6(e,n,a))}),h6=e=>({[`&${e.componentCls}-variant-dashed`]:{borderStyle:\"dashed\"}}),p6=(e,t,r,n)=>({[`&${e.componentCls}-variant-filled`]:Object.assign({boxShadow:\"none\",background:t},c6(e,r,n))}),fc=(e,t,r,n,a)=>({[`&${e.componentCls}-variant-${r}`]:Object.assign({color:t,boxShadow:\"none\"},c6(e,n,a,r))}),E3e=e=>{const{componentCls:t}=e;return Lf.reduce((r,n)=>{const a=e[`${n}6`],i=e[`${n}1`],o=e[`${n}5`],l=e[`${n}2`],s=e[`${n}3`],u=e[`${n}7`];return Object.assign(Object.assign({},r),{[`&${t}-color-${n}`]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:a,boxShadow:e[`${n}ShadowColor`]},d6(e,e.colorTextLightSolid,a,{background:o},{background:u})),f6(e,a,e.colorBgContainer,{color:o,borderColor:o,background:e.colorBgContainer},{color:u,borderColor:u,background:e.colorBgContainer})),h6(e)),p6(e,i,{color:a,background:l},{color:a,background:s})),fc(e,a,\"link\",{color:o},{color:u})),fc(e,a,\"text\",{color:o,background:i},{color:u,background:s}))})},{})},D3e=e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.defaultColor,boxShadow:e.defaultShadow},d6(e,e.solidTextColor,e.colorBgSolid,{color:e.solidTextColor,background:e.colorBgSolidHover},{color:e.solidTextColor,background:e.colorBgSolidActive})),h6(e)),p6(e,e.colorFillTertiary,{color:e.defaultColor,background:e.colorFillSecondary},{color:e.defaultColor,background:e.colorFill})),u6(e.componentCls,e.ghostBg,e.defaultGhostColor,e.defaultGhostBorderColor,e.colorTextDisabled,e.colorBorder)),fc(e,e.textTextColor,\"link\",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),A3e=e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorPrimary,boxShadow:e.primaryShadow},f6(e,e.colorPrimary,e.colorBgContainer,{color:e.colorPrimaryTextHover,borderColor:e.colorPrimaryHover,background:e.colorBgContainer},{color:e.colorPrimaryTextActive,borderColor:e.colorPrimaryActive,background:e.colorBgContainer})),h6(e)),p6(e,e.colorPrimaryBg,{color:e.colorPrimary,background:e.colorPrimaryBgHover},{color:e.colorPrimary,background:e.colorPrimaryBorder})),fc(e,e.colorPrimaryText,\"text\",{color:e.colorPrimaryTextHover,background:e.colorPrimaryBg},{color:e.colorPrimaryTextActive,background:e.colorPrimaryBorder})),fc(e,e.colorPrimaryText,\"link\",{color:e.colorPrimaryTextHover,background:e.linkHoverBg},{color:e.colorPrimaryTextActive})),u6(e.componentCls,e.ghostBg,e.colorPrimary,e.colorPrimary,e.colorTextDisabled,e.colorBorder,{color:e.colorPrimaryHover,borderColor:e.colorPrimaryHover},{color:e.colorPrimaryActive,borderColor:e.colorPrimaryActive})),_3e=e=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorError,boxShadow:e.dangerShadow},d6(e,e.dangerColor,e.colorError,{background:e.colorErrorHover},{background:e.colorErrorActive})),f6(e,e.colorError,e.colorBgContainer,{color:e.colorErrorHover,borderColor:e.colorErrorBorderHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),h6(e)),p6(e,e.colorErrorBg,{color:e.colorError,background:e.colorErrorBgFilledHover},{color:e.colorError,background:e.colorErrorBgActive})),fc(e,e.colorError,\"text\",{color:e.colorErrorHover,background:e.colorErrorBg},{color:e.colorErrorHover,background:e.colorErrorBgActive})),fc(e,e.colorError,\"link\",{color:e.colorErrorHover},{color:e.colorErrorActive})),u6(e.componentCls,e.ghostBg,e.colorError,e.colorError,e.colorTextDisabled,e.colorBorder,{color:e.colorErrorHover,borderColor:e.colorErrorHover},{color:e.colorErrorActive,borderColor:e.colorErrorActive})),T3e=e=>Object.assign(Object.assign({},fc(e,e.colorLink,\"link\",{color:e.colorLinkHover},{color:e.colorLinkActive})),u6(e.componentCls,e.ghostBg,e.colorInfo,e.colorInfo,e.colorTextDisabled,e.colorBorder,{color:e.colorInfoHover,borderColor:e.colorInfoHover},{color:e.colorInfoActive,borderColor:e.colorInfoActive})),I3e=e=>{const{componentCls:t}=e;return Object.assign({[`${t}-color-default`]:D3e(e),[`${t}-color-primary`]:A3e(e),[`${t}-color-dangerous`]:_3e(e),[`${t}-color-link`]:T3e(e)},E3e(e))},k3e=e=>Object.assign(Object.assign(Object.assign(Object.assign({},f6(e,e.defaultBorderColor,e.defaultBg,{color:e.defaultHoverColor,borderColor:e.defaultHoverBorderColor,background:e.defaultHoverBg},{color:e.defaultActiveColor,borderColor:e.defaultActiveBorderColor,background:e.defaultActiveBg})),fc(e,e.textTextColor,\"text\",{color:e.textTextHoverColor,background:e.textHoverBg},{color:e.textTextActiveColor,background:e.colorBgTextActive})),d6(e,e.primaryColor,e.colorPrimary,{background:e.colorPrimaryHover,color:e.primaryColor},{background:e.colorPrimaryActive,color:e.primaryColor})),fc(e,e.colorLink,\"link\",{color:e.colorLinkHover,background:e.linkHoverBg},{color:e.colorLinkActive})),W7=(e,t=\"\")=>{const{componentCls:r,controlHeight:n,fontSize:a,borderRadius:i,buttonPaddingHorizontal:o,iconCls:l,buttonPaddingVertical:s,buttonIconOnlyFontSize:u}=e;return[{[t]:{fontSize:a,height:n,padding:`${re(s)} ${re(o)}`,borderRadius:i,[`&${r}-icon-only`]:{width:n,[l]:{fontSize:u}}}},{[`${r}${r}-circle${t}`]:C3e(e)},{[`${r}${r}-round${t}`]:{borderRadius:e.controlHeight,[`&:not(${r}-icon-only)`]:{paddingInline:e.buttonPaddingHorizontal}}}]},R3e=e=>{const t=Sr(e,{fontSize:e.contentFontSize});return W7(t,e.componentCls)},M3e=e=>{const t=Sr(e,{controlHeight:e.controlHeightSM,fontSize:e.contentFontSizeSM,padding:e.paddingXS,buttonPaddingHorizontal:e.paddingInlineSM,buttonPaddingVertical:0,borderRadius:e.borderRadiusSM,buttonIconOnlyFontSize:e.onlyIconSizeSM});return W7(t,`${e.componentCls}-sm`)},P3e=e=>{const t=Sr(e,{controlHeight:e.controlHeightLG,fontSize:e.contentFontSizeLG,buttonPaddingHorizontal:e.paddingInlineLG,buttonPaddingVertical:0,borderRadius:e.borderRadiusLG,buttonIconOnlyFontSize:e.onlyIconSizeLG});return W7(t,`${e.componentCls}-lg`)},O3e=e=>{const{componentCls:t}=e;return{[t]:{[`&${t}-block`]:{width:\"100%\"}}}},B3e=kr(\"Button\",e=>{const t=vae(e);return[x3e(t),R3e(t),M3e(t),P3e(t),O3e(t),I3e(t),k3e(t),bEe(t)]},gae,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});function N3e(e,t,r,n){const{focusElCls:a,focus:i,borderElCls:o}=r,l=o?\"> *\":\"\",s=[\"hover\",i?\"focus\":null,\"active\"].filter(Boolean).map(u=>`&:${u} ${l}`).join(\",\");return{[`&-item:not(${t}-last-item)`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${n}-status-success)`]:{zIndex:2},\"&-item\":Object.assign(Object.assign({[s]:{zIndex:3}},a?{[`&${a}`]:{zIndex:3}}:{}),{[`&[disabled] ${l}`]:{zIndex:0}})}}function $3e(e,t,r){const{borderElCls:n}=r,a=n?`> ${n}`:\"\";return{[`&-item:not(${t}-first-item):not(${t}-last-item) ${a}`]:{borderRadius:0},[`&-item:not(${t}-last-item)${t}-first-item`]:{[`& ${a}, &${e}-sm ${a}, &${e}-lg ${a}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${t}-first-item)${t}-last-item`]:{[`& ${a}, &${e}-sm ${a}, &${e}-lg ${a}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function Fg(e,t={focus:!0}){const{componentCls:r}=e,{componentCls:n}=t,a=n||r,i=`${a}-compact`;return{[i]:Object.assign(Object.assign({},N3e(e,i,t,a)),$3e(a,i,t))}}function L3e(e,t,r){return{[`&-item:not(${t}-last-item)`]:{marginBottom:e.calc(e.lineWidth).mul(-1).equal()},[`&-item:not(${r}-status-success)`]:{zIndex:2},\"&-item\":{\"&:hover,&:focus,&:active\":{zIndex:3},\"&[disabled]\":{zIndex:0}}}}function j3e(e,t){return{[`&-item:not(${t}-first-item):not(${t}-last-item)`]:{borderRadius:0},[`&-item${t}-first-item:not(${t}-last-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${t}-last-item:not(${t}-first-item)`]:{[`&, &${e}-sm, &${e}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function z3e(e){const t=`${e.componentCls}-compact-vertical`;return{[t]:Object.assign(Object.assign({},L3e(e,t,e.componentCls)),j3e(e.componentCls,t))}}const H3e=e=>{const{componentCls:t,colorPrimaryHover:r,lineWidth:n,calc:a}=e,i=a(n).mul(-1).equal(),o=l=>{const s=`${t}-compact${l?\"-vertical\":\"\"}-item${t}-primary:not([disabled])`;return{[`${s} + ${s}::before`]:{position:\"absolute\",top:l?i:0,insetInlineStart:l?0:i,backgroundColor:r,content:'\"\"',width:l?\"100%\":n,height:l?n:\"100%\"}}};return Object.assign(Object.assign({},o()),o(!0))},V3e=yg([\"Button\",\"compact\"],e=>{const t=vae(e);return[Fg(t),z3e(t),H3e(t)]},gae);var W3e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function G3e(e){if(typeof e==\"object\"&&e){let t=e==null?void 0:e.delay;return t=!Number.isNaN(t)&&typeof t==\"number\"?t:0,{loading:t<=0,delay:t}}return{loading:!!e,delay:0}}const U3e={default:[\"default\",\"outlined\"],primary:[\"primary\",\"solid\"],dashed:[\"default\",\"dashed\"],link:[\"link\",\"link\"],text:[\"default\",\"text\"]},K3e=le.forwardRef((e,t)=>{var r,n;const{loading:a=!1,prefixCls:i,color:o,variant:l,type:s,danger:u=!1,shape:c,size:d,styles:f,disabled:h,className:p,rootClassName:v,children:g,icon:y,iconPosition:b=\"start\",ghost:x=!1,block:F=!1,htmlType:S=\"button\",classNames:E,style:w={},autoInsertSpace:D,autoFocus:A}=e,_=W3e(e,[\"loading\",\"prefixCls\",\"color\",\"variant\",\"type\",\"danger\",\"shape\",\"size\",\"styles\",\"disabled\",\"className\",\"rootClassName\",\"children\",\"icon\",\"iconPosition\",\"ghost\",\"block\",\"htmlType\",\"classNames\",\"style\",\"autoInsertSpace\",\"autoFocus\"]),I=s||\"default\",{button:M}=le.useContext(Ot),T=c||(M==null?void 0:M.shape)||\"default\",[k,R]=m.useMemo(()=>{if(o&&l)return[o,l];if(s||u){const Ke=U3e[I]||[];return u?[\"danger\",Ke[1]]:Ke}return M!=null&&M.color&&(M!=null&&M.variant)?[M.color,M.variant]:[\"default\",\"outlined\"]},[o,l,s,u,M==null?void 0:M.color,M==null?void 0:M.variant,I]),B=k===\"danger\"?\"dangerous\":k,{getPrefixCls:N,direction:O,autoInsertSpace:z,className:W,style:L,classNames:j,styles:H}=na(\"button\"),V=(r=D??z)!==null&&r!==void 0?r:!0,U=N(\"btn\",i),[Q,K,Y]=B3e(U),ee=m.useContext(Ui),J=h??ee,X=m.useContext(fae),ce=m.useMemo(()=>G3e(a),[a]),[oe,ue]=m.useState(ce.loading),[ie,fe]=m.useState(!1),xe=m.useRef(null),Ee=yc(t,xe),De=m.Children.count(g)===1&&!y&&!x_(R),ye=m.useRef(!0);le.useEffect(()=>(ye.current=!1,()=>{ye.current=!0}),[]),_r(()=>{let Ke=null;ce.delay>0?Ke=setTimeout(()=>{Ke=null,ue(!0)},ce.delay):ue(ce.loading);function pt(){Ke&&(clearTimeout(Ke),Ke=null)}return pt},[ce.delay,ce.loading]),m.useEffect(()=>{if(!xe.current||!V)return;const Ke=xe.current.textContent||\"\";De&&aR(Ke)?ie||fe(!0):ie&&fe(!1)}),m.useEffect(()=>{A&&xe.current&&xe.current.focus()},[]);const we=le.useCallback(Ke=>{var pt;if(oe||J){Ke.preventDefault();return}(pt=e.onClick)===null||pt===void 0||pt.call(e,(\"href\"in e,Ke))},[e.onClick,oe,J]),{compactSize:Fe,compactItemClassnames:me}=Cc(U,O),Me={large:\"lg\",small:\"sm\",middle:void 0},je=Ta(Ke=>{var pt,_t;return(_t=(pt=d??Fe)!==null&&pt!==void 0?pt:X)!==null&&_t!==void 0?_t:Ke}),lt=je&&(n=Me[je])!==null&&n!==void 0?n:\"\",tt=oe?\"loading\":y,rt=wn(_,[\"navigate\"]),dt=ne(U,K,Y,{[`${U}-${T}`]:T!==\"default\"&&T,[`${U}-${I}`]:I,[`${U}-dangerous`]:u,[`${U}-color-${B}`]:B,[`${U}-variant-${R}`]:R,[`${U}-${lt}`]:lt,[`${U}-icon-only`]:!g&&g!==0&&!!tt,[`${U}-background-ghost`]:x&&!x_(R),[`${U}-loading`]:oe,[`${U}-two-chinese-chars`]:ie&&V&&!oe,[`${U}-block`]:F,[`${U}-rtl`]:O===\"rtl\",[`${U}-icon-end`]:b===\"end\"},me,p,v,W),Ve=Object.assign(Object.assign({},L),w),Ie=ne(E==null?void 0:E.icon,j.icon),Je=Object.assign(Object.assign({},(f==null?void 0:f.icon)||{}),H.icon||{}),Pe=Ke=>le.createElement(hae,{prefixCls:U,className:Ie,style:Je},Ke),Ge=()=>le.createElement(yEe,{existIcon:!!y,prefixCls:U,loading:oe,mount:ye.current});let Ae;y&&!oe?Ae=Pe(y):a&&typeof a==\"object\"&&a.icon?Ae=Pe(a.icon):Ae=Ge();const _e=g||g===0?gEe(g,De&&V):null;if(rt.href!==void 0)return Q(le.createElement(\"a\",Object.assign({},rt,{className:ne(dt,{[`${U}-disabled`]:J}),href:J?void 0:rt.href,style:Ve,onClick:we,ref:Ee,tabIndex:J?-1:0,\"aria-disabled\":J}),Ae,_e));let $e=le.createElement(\"button\",Object.assign({},_,{type:S,className:dt,style:Ve,onClick:we,disabled:J,ref:Ee}),Ae,_e,me&&le.createElement(V3e,{prefixCls:U}));return x_(R)||($e=le.createElement(ux,{component:\"Button\",disabled:oe},$e)),Q($e)}),ze=K3e;ze.Group=mEe;ze.__ANT_BUTTON=!0;const w_=e=>typeof(e==null?void 0:e.then)==\"function\",G7=e=>{const{type:t,children:r,prefixCls:n,buttonProps:a,close:i,autoFocus:o,emitEvent:l,isSilent:s,quitOnNullishReturnValue:u,actionFn:c}=e,d=m.useRef(!1),f=m.useRef(null),[h,p]=Up(!1),v=(...b)=>{i==null||i.apply(void 0,b)};m.useEffect(()=>{let b=null;return o&&(b=setTimeout(()=>{var x;(x=f.current)===null||x===void 0||x.focus({preventScroll:!0})})),()=>{b&&clearTimeout(b)}},[o]);const g=b=>{w_(b)&&(p(!0),b.then((...x)=>{p(!1,!0),v.apply(void 0,x),d.current=!1},x=>{if(p(!1,!0),d.current=!1,!(s!=null&&s()))return Promise.reject(x)}))},y=b=>{if(d.current)return;if(d.current=!0,!c){v();return}let x;if(l){if(x=c(b),u&&!w_(x)){d.current=!1,v(b);return}}else if(c.length)x=c(i),d.current=!1;else if(x=c(),!w_(x)){v();return}g(x)};return m.createElement(ze,Object.assign({},j7(t),{onClick:y,loading:h,prefixCls:n},a,{ref:f}),r)},dx=le.createContext({}),{Provider:bae}=dx,Mz=()=>{const{autoFocusButton:e,cancelButtonProps:t,cancelTextLocale:r,isSilent:n,mergedOkCancel:a,rootPrefixCls:i,close:o,onCancel:l,onConfirm:s}=m.useContext(dx);return a?le.createElement(G7,{isSilent:n,actionFn:l,close:(...u)=>{o==null||o.apply(void 0,u),s==null||s(!1)},autoFocus:e===\"cancel\",buttonProps:t,prefixCls:`${i}-btn`},r):null},Pz=()=>{const{autoFocusButton:e,close:t,isSilent:r,okButtonProps:n,rootPrefixCls:a,okTextLocale:i,okType:o,onConfirm:l,onOk:s}=m.useContext(dx);return le.createElement(G7,{isSilent:r,type:o||\"primary\",actionFn:s,close:(...u)=>{t==null||t.apply(void 0,u),l==null||l(!0)},autoFocus:e===\"ok\",buttonProps:n,prefixCls:`${a}-btn`},i)};var xae=m.createContext(null),Oz=[];function Y3e(e,t){var r=m.useState(function(){if(!ki())return null;var p=document.createElement(\"div\");return p}),n=ve(r,1),a=n[0],i=m.useRef(!1),o=m.useContext(xae),l=m.useState(Oz),s=ve(l,2),u=s[0],c=s[1],d=o||(i.current?void 0:function(p){c(function(v){var g=[p].concat(He(v));return g})});function f(){a.parentElement||document.body.appendChild(a),i.current=!0}function h(){var p;(p=a.parentElement)===null||p===void 0||p.removeChild(a),i.current=!1}return _r(function(){return e?o?o(f):f():h(),h},[e]),_r(function(){u.length&&(u.forEach(function(p){return p()}),c(Oz))},[u]),[a,d]}var E_;function Cae(e){var t=\"rc-scrollbar-measure-\".concat(Math.random().toString(36).substring(7)),r=document.createElement(\"div\");r.id=t;var n=r.style;n.position=\"absolute\",n.left=\"0\",n.top=\"0\",n.width=\"100px\",n.height=\"100px\",n.overflow=\"scroll\";var a,i;if(e){var o=getComputedStyle(e);n.scrollbarColor=o.scrollbarColor,n.scrollbarWidth=o.scrollbarWidth;var l=getComputedStyle(e,\"::-webkit-scrollbar\"),s=parseInt(l.width,10),u=parseInt(l.height,10);try{var c=s?\"width: \".concat(l.width,\";\"):\"\",d=u?\"height: \".concat(l.height,\";\"):\"\";Uc(`\n#`.concat(t,`::-webkit-scrollbar {\n`).concat(c,`\n`).concat(d,`\n}`),t)}catch(p){console.error(p),a=s,i=u}}document.body.appendChild(r);var f=e&&a&&!isNaN(a)?a:r.offsetWidth-r.clientWidth,h=e&&i&&!isNaN(i)?i:r.offsetHeight-r.clientHeight;return document.body.removeChild(r),Ub(t),{width:f,height:h}}function Bz(e){return typeof document>\"u\"?0:(E_===void 0&&(E_=Cae()),E_.width)}function oR(e){return typeof document>\"u\"||!e||!(e instanceof Element)?{width:0,height:0}:Cae(e)}function q3e(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}var X3e=\"rc-util-locker-\".concat(Date.now()),Nz=0;function J3e(e){var t=!!e,r=m.useState(function(){return Nz+=1,\"\".concat(X3e,\"_\").concat(Nz)}),n=ve(r,1),a=n[0];_r(function(){if(t){var i=oR(document.body).width,o=q3e();Uc(`\nhtml body {\n overflow-y: hidden;\n `.concat(o?\"width: calc(100% - \".concat(i,\"px);\"):\"\",`\n}`),a)}else Ub(a);return function(){Ub(a)}},[t,a])}var Z3e=!1;function Q3e(e){return Z3e}var $z=function(t){return t===!1?!1:!ki()||!t?null:typeof t==\"string\"?document.querySelector(t):typeof t==\"function\"?t():t},fx=m.forwardRef(function(e,t){var r=e.open,n=e.autoLock,a=e.getContainer;e.debug;var i=e.autoDestroy,o=i===void 0?!0:i,l=e.children,s=m.useState(r),u=ve(s,2),c=u[0],d=u[1],f=c||r;m.useEffect(function(){(o||r)&&d(r)},[r,o]);var h=m.useState(function(){return $z(a)}),p=ve(h,2),v=p[0],g=p[1];m.useEffect(function(){var I=$z(a);g(I??null)});var y=Y3e(f&&!v),b=ve(y,2),x=b[0],F=b[1],S=v??x;J3e(n&&r&&ki()&&(S===x||S===document.body));var E=null;if(l&&mu(l)&&t){var w=l;E=w.ref}var D=yc(E,t);if(!f||!ki()||v===void 0)return null;var A=S===!1||Q3e(),_=l;return t&&(_=m.cloneElement(l,{ref:D})),m.createElement(xae.Provider,{value:F},A?_:Fs.createPortal(_,S))}),Fae=m.createContext({});function e4e(){var e=ae({},Z2);return e.useId}var Lz=0,jz=e4e();const hx=jz?function(t){var r=jz();return t||r}:function(t){var r=m.useState(\"ssr-id\"),n=ve(r,2),a=n[0],i=n[1];return m.useEffect(function(){var o=Lz;Lz+=1,i(\"rc_unique_\".concat(o))},[]),t||a};function zz(e,t,r){var n=t;return!n&&r&&(n=\"\".concat(e,\"-\").concat(r)),n}function Hz(e,t){var r=e[\"page\".concat(t?\"Y\":\"X\",\"Offset\")],n=\"scroll\".concat(t?\"Top\":\"Left\");if(typeof r!=\"number\"){var a=e.document;r=a.documentElement[n],typeof r!=\"number\"&&(r=a.body[n])}return r}function t4e(e){var t=e.getBoundingClientRect(),r={left:t.left,top:t.top},n=e.ownerDocument,a=n.defaultView||n.parentWindow;return r.left+=Hz(a),r.top+=Hz(a,!0),r}const r4e=m.memo(function(e){var t=e.children;return t},function(e,t){var r=t.shouldUpdate;return!r});var n4e={width:0,height:0,overflow:\"hidden\",outline:\"none\"},a4e={outline:\"none\"},Sae=le.forwardRef(function(e,t){var r=e.prefixCls,n=e.className,a=e.style,i=e.title,o=e.ariaId,l=e.footer,s=e.closable,u=e.closeIcon,c=e.onClose,d=e.children,f=e.bodyStyle,h=e.bodyProps,p=e.modalRender,v=e.onMouseDown,g=e.onMouseUp,y=e.holderRef,b=e.visible,x=e.forceRender,F=e.width,S=e.height,E=e.classNames,w=e.styles,D=le.useContext(Fae),A=D.panel,_=yc(y,A),I=m.useRef(),M=m.useRef();le.useImperativeHandle(t,function(){return{focus:function(){var L;(L=I.current)===null||L===void 0||L.focus({preventScroll:!0})},changeActive:function(L){var j=document,H=j.activeElement;L&&H===M.current?I.current.focus({preventScroll:!0}):!L&&H===I.current&&M.current.focus({preventScroll:!0})}}});var T={};F!==void 0&&(T.width=F),S!==void 0&&(T.height=S);var k=l?le.createElement(\"div\",{className:ne(\"\".concat(r,\"-footer\"),E==null?void 0:E.footer),style:ae({},w==null?void 0:w.footer)},l):null,R=i?le.createElement(\"div\",{className:ne(\"\".concat(r,\"-header\"),E==null?void 0:E.header),style:ae({},w==null?void 0:w.header)},le.createElement(\"div\",{className:\"\".concat(r,\"-title\"),id:o},i)):null,P=m.useMemo(function(){return Nt(s)===\"object\"&&s!==null?s:s?{closeIcon:u??le.createElement(\"span\",{className:\"\".concat(r,\"-close-x\")})}:{}},[s,u,r]),B=qn(P,!0),N=Nt(s)===\"object\"&&s.disabled,O=s?le.createElement(\"button\",Ce({type:\"button\",onClick:c,\"aria-label\":\"Close\"},B,{className:\"\".concat(r,\"-close\"),disabled:N}),P.closeIcon):null,z=le.createElement(\"div\",{className:ne(\"\".concat(r,\"-content\"),E==null?void 0:E.content),style:w==null?void 0:w.content},O,R,le.createElement(\"div\",Ce({className:ne(\"\".concat(r,\"-body\"),E==null?void 0:E.body),style:ae(ae({},f),w==null?void 0:w.body)},h),d),k);return le.createElement(\"div\",{key:\"dialog-element\",role:\"dialog\",\"aria-labelledby\":i?o:null,\"aria-modal\":\"true\",ref:_,style:ae(ae({},a),T),className:ne(r,n),onMouseDown:v,onMouseUp:g},le.createElement(\"div\",{ref:I,tabIndex:0,style:a4e},le.createElement(r4e,{shouldUpdate:b||x},p?p(z):z)),le.createElement(\"div\",{tabIndex:0,ref:M,style:n4e}))}),wae=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.title,a=e.style,i=e.className,o=e.visible,l=e.forceRender,s=e.destroyOnClose,u=e.motionName,c=e.ariaId,d=e.onVisibleChanged,f=e.mousePosition,h=m.useRef(),p=m.useState(),v=ve(p,2),g=v[0],y=v[1],b={};g&&(b.transformOrigin=g);function x(){var F=t4e(h.current);y(f&&(f.x||f.y)?\"\".concat(f.x-F.left,\"px \").concat(f.y-F.top,\"px\"):\"\")}return m.createElement(fi,{visible:o,onVisibleChanged:d,onAppearPrepare:x,onEnterPrepare:x,forceRender:l,motionName:u,removeOnLeave:s,ref:h},function(F,S){var E=F.className,w=F.style;return m.createElement(Sae,Ce({},e,{ref:t,title:n,ariaId:c,prefixCls:r,holderRef:S,style:ae(ae(ae({},w),a),b),className:ne(i,E)}))})});wae.displayName=\"Content\";var i4e=function(t){var r=t.prefixCls,n=t.style,a=t.visible,i=t.maskProps,o=t.motionName,l=t.className;return m.createElement(fi,{key:\"mask\",visible:a,motionName:o,leavedClassName:\"\".concat(r,\"-mask-hidden\")},function(s,u){var c=s.className,d=s.style;return m.createElement(\"div\",Ce({ref:u,style:ae(ae({},d),n),className:ne(\"\".concat(r,\"-mask\"),c,l)},i))})},o4e=function(t){var r=t.prefixCls,n=r===void 0?\"rc-dialog\":r,a=t.zIndex,i=t.visible,o=i===void 0?!1:i,l=t.keyboard,s=l===void 0?!0:l,u=t.focusTriggerAfterClose,c=u===void 0?!0:u,d=t.wrapStyle,f=t.wrapClassName,h=t.wrapProps,p=t.onClose,v=t.afterOpenChange,g=t.afterClose,y=t.transitionName,b=t.animation,x=t.closable,F=x===void 0?!0:x,S=t.mask,E=S===void 0?!0:S,w=t.maskTransitionName,D=t.maskAnimation,A=t.maskClosable,_=A===void 0?!0:A,I=t.maskStyle,M=t.maskProps,T=t.rootClassName,k=t.classNames,R=t.styles,P=m.useRef(),B=m.useRef(),N=m.useRef(),O=m.useState(o),z=ve(O,2),W=z[0],L=z[1],j=hx();function H(){A8(B.current,document.activeElement)||(P.current=document.activeElement)}function V(){if(!A8(B.current,document.activeElement)){var ue;(ue=N.current)===null||ue===void 0||ue.focus()}}function U(ue){if(ue)V();else{if(L(!1),E&&P.current&&c){try{P.current.focus({preventScroll:!0})}catch{}P.current=null}W&&(g==null||g())}v==null||v(ue)}function Q(ue){p==null||p(ue)}var K=m.useRef(!1),Y=m.useRef(),ee=function(){clearTimeout(Y.current),K.current=!0},J=function(){Y.current=setTimeout(function(){K.current=!1})},X=null;_&&(X=function(ie){K.current?K.current=!1:B.current===ie.target&&Q(ie)});function ce(ue){if(s&&ue.keyCode===It.ESC){ue.stopPropagation(),Q(ue);return}o&&ue.keyCode===It.TAB&&N.current.changeActive(!ue.shiftKey)}m.useEffect(function(){o&&(L(!0),H())},[o]),m.useEffect(function(){return function(){clearTimeout(Y.current)}},[]);var oe=ae(ae(ae({zIndex:a},d),R==null?void 0:R.wrapper),{},{display:W?null:\"none\"});return m.createElement(\"div\",Ce({className:ne(\"\".concat(n,\"-root\"),T)},qn(t,{data:!0})),m.createElement(i4e,{prefixCls:n,visible:E&&o,motionName:zz(n,w,D),style:ae(ae({zIndex:a},I),R==null?void 0:R.mask),maskProps:M,className:k==null?void 0:k.mask}),m.createElement(\"div\",Ce({tabIndex:-1,onKeyDown:ce,className:ne(\"\".concat(n,\"-wrap\"),f,k==null?void 0:k.wrapper),ref:B,onClick:X,style:oe},h),m.createElement(wae,Ce({},t,{onMouseDown:ee,onMouseUp:J,ref:N,closable:F,ariaId:j,prefixCls:n,visible:o&&W,onClose:Q,onVisibleChanged:U,motionName:zz(n,y,b)}))))},U7=function(t){var r=t.visible,n=t.getContainer,a=t.forceRender,i=t.destroyOnClose,o=i===void 0?!1:i,l=t.afterClose,s=t.panelRef,u=m.useState(r),c=ve(u,2),d=c[0],f=c[1],h=m.useMemo(function(){return{panel:s}},[s]);return m.useEffect(function(){r&&f(!0)},[r]),!a&&o&&!d?null:m.createElement(Fae.Provider,{value:h},m.createElement(fx,{open:r||a||d,autoDestroy:!1,getContainer:n,autoLock:r||d},m.createElement(o4e,Ce({},t,{destroyOnClose:o,afterClose:function(){l==null||l(),f(!1)}}))))};U7.displayName=\"Dialog\";var lp=\"RC_FORM_INTERNAL_HOOKS\",Un=function(){jn(!1,\"Can not find FormContext. Please make sure you wrap Field under Form.\")},Kp=m.createContext({getFieldValue:Un,getFieldsValue:Un,getFieldError:Un,getFieldWarning:Un,getFieldsError:Un,isFieldsTouched:Un,isFieldTouched:Un,isFieldValidating:Un,isFieldsValidating:Un,resetFields:Un,setFields:Un,setFieldValue:Un,setFieldsValue:Un,validateFields:Un,submit:Un,getInternalHooks:function(){return Un(),{dispatch:Un,initEntityValue:Un,registerField:Un,useSubscribe:Un,setInitialValues:Un,destroyForm:Un,setCallbacks:Un,registerWatch:Un,getFields:Un,setValidateMessages:Un,setPreserve:Un,getInitialValue:Un}}}),Qb=m.createContext(null);function lR(e){return e==null?[]:Array.isArray(e)?e:[e]}function l4e(e){return e&&!!e._init}function sR(){return{default:\"Validation error on field %s\",required:\"%s is required\",enum:\"%s must be one of %s\",whitespace:\"%s cannot be empty\",date:{format:\"%s date %s is invalid for format %s\",parse:\"%s date could not be parsed, %s is invalid \",invalid:\"%s date %s is invalid\"},types:{string:\"%s is not a %s\",method:\"%s is not a %s (function)\",array:\"%s is not an %s\",object:\"%s is not an %s\",number:\"%s is not a %s\",date:\"%s is not a %s\",boolean:\"%s is not a %s\",integer:\"%s is not an %s\",float:\"%s is not a %s\",regexp:\"%s is not a valid %s\",email:\"%s is not a valid %s\",tel:\"%s is not a valid %s\",url:\"%s is not a valid %s\",hex:\"%s is not a valid %s\"},string:{len:\"%s must be exactly %s characters\",min:\"%s must be at least %s characters\",max:\"%s cannot be longer than %s characters\",range:\"%s must be between %s and %s characters\"},number:{len:\"%s must equal %s\",min:\"%s cannot be less than %s\",max:\"%s cannot be greater than %s\",range:\"%s must be between %s and %s\"},array:{len:\"%s must be exactly %s in length\",min:\"%s cannot be less than %s in length\",max:\"%s cannot be greater than %s in length\",range:\"%s must be between %s and %s in length\"},pattern:{mismatch:\"%s value %s does not match pattern %s\"},clone:function(){var t=JSON.parse(JSON.stringify(this));return t.clone=this.clone,t}}}var uR=sR();function s4e(e){try{return Function.toString.call(e).indexOf(\"[native code]\")!==-1}catch{return typeof e==\"function\"}}function u4e(e,t,r){if(q4())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,t);var a=new(e.bind.apply(e,n));return r&&Wb(a,r.prototype),a}function cR(e){var t=typeof Map==\"function\"?new Map:void 0;return cR=function(n){if(n===null||!s4e(n))return n;if(typeof n!=\"function\")throw new TypeError(\"Super expression must either be null or a function\");if(t!==void 0){if(t.has(n))return t.get(n);t.set(n,a)}function a(){return u4e(n,arguments,Wp(this).constructor)}return a.prototype=Object.create(n.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),Wb(a,n)},cR(e)}var c4e=/%[sdj%]/g,d4e=function(){};function dR(e){if(!e||!e.length)return null;var t={};return e.forEach(function(r){var n=r.field;t[n]=t[n]||[],t[n].push(r)}),t}function kl(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var a=0,i=r.length;if(typeof e==\"function\")return e.apply(null,r);if(typeof e==\"string\"){var o=e.replace(c4e,function(l){if(l===\"%%\")return\"%\";if(a>=i)return l;switch(l){case\"%s\":return String(r[a++]);case\"%d\":return Number(r[a++]);case\"%j\":try{return JSON.stringify(r[a++])}catch{return\"[Circular]\"}break;default:return l}});return o}return e}function f4e(e){return e===\"string\"||e===\"url\"||e===\"hex\"||e===\"email\"||e===\"date\"||e===\"pattern\"||e===\"tel\"}function hi(e,t){return!!(e==null||t===\"array\"&&Array.isArray(e)&&!e.length||f4e(t)&&typeof e==\"string\"&&!e)}function h4e(e,t,r){var n=[],a=0,i=e.length;function o(l){n.push.apply(n,He(l||[])),a++,a===i&&r(n)}e.forEach(function(l){t(l,o)})}function Vz(e,t,r){var n=0,a=e.length;function i(o){if(o&&o.length){r(o);return}var l=n;n=n+1,l<a?t(e[l],i):r([])}i([])}function p4e(e){var t=[];return Object.keys(e).forEach(function(r){t.push.apply(t,He(e[r]||[]))}),t}var Wz=function(e){Vl(r,e);var t=Ts(r);function r(n,a){var i;return Xn(this,r),i=t.call(this,\"Async Validation Error\"),Z(Rt(i),\"errors\",void 0),Z(Rt(i),\"fields\",void 0),i.errors=n,i.fields=a,i}return Jn(r)}(cR(Error));function m4e(e,t,r,n,a){if(t.first){var i=new Promise(function(f,h){var p=function(y){return n(y),y.length?h(new Wz(y,dR(y))):f(a)},v=p4e(e);Vz(v,r,p)});return i.catch(function(f){return f}),i}var o=t.firstFields===!0?Object.keys(e):t.firstFields||[],l=Object.keys(e),s=l.length,u=0,c=[],d=new Promise(function(f,h){var p=function(g){if(c.push.apply(c,g),u++,u===s)return n(c),c.length?h(new Wz(c,dR(c))):f(a)};l.length||(n(c),f(a)),l.forEach(function(v){var g=e[v];o.indexOf(v)!==-1?Vz(g,r,p):h4e(g,r,p)})});return d.catch(function(f){return f}),d}function v4e(e){return!!(e&&e.message!==void 0)}function g4e(e,t){for(var r=e,n=0;n<t.length;n++){if(r==null)return r;r=r[t[n]]}return r}function Gz(e,t){return function(r){var n;return e.fullFields?n=g4e(t,e.fullFields):n=t[r.field||e.fullField],v4e(r)?(r.field=r.field||e.fullField,r.fieldValue=n,r):{message:typeof r==\"function\"?r():r,fieldValue:n,field:r.field||e.fullField}}}function Uz(e,t){if(t){for(var r in t)if(t.hasOwnProperty(r)){var n=t[r];Nt(n)===\"object\"&&Nt(e[r])===\"object\"?e[r]=ae(ae({},e[r]),n):e[r]=n}}return e}var Um=\"enum\",y4e=function(t,r,n,a,i){t[Um]=Array.isArray(t[Um])?t[Um]:[],t[Um].indexOf(r)===-1&&a.push(kl(i.messages[Um],t.fullField,t[Um].join(\", \")))},b4e=function(t,r,n,a,i){if(t.pattern){if(t.pattern instanceof RegExp)t.pattern.lastIndex=0,t.pattern.test(r)||a.push(kl(i.messages.pattern.mismatch,t.fullField,r,t.pattern));else if(typeof t.pattern==\"string\"){var o=new RegExp(t.pattern);o.test(r)||a.push(kl(i.messages.pattern.mismatch,t.fullField,r,t.pattern))}}},x4e=function(t,r,n,a,i){var o=typeof t.len==\"number\",l=typeof t.min==\"number\",s=typeof t.max==\"number\",u=/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,c=r,d=null,f=typeof r==\"number\",h=typeof r==\"string\",p=Array.isArray(r);if(f?d=\"number\":h?d=\"string\":p&&(d=\"array\"),!d)return!1;p&&(c=r.length),h&&(c=r.replace(u,\"_\").length),o?c!==t.len&&a.push(kl(i.messages[d].len,t.fullField,t.len)):l&&!s&&c<t.min?a.push(kl(i.messages[d].min,t.fullField,t.min)):s&&!l&&c>t.max?a.push(kl(i.messages[d].max,t.fullField,t.max)):l&&s&&(c<t.min||c>t.max)&&a.push(kl(i.messages[d].range,t.fullField,t.min,t.max))},Eae=function(t,r,n,a,i,o){t.required&&(!n.hasOwnProperty(t.field)||hi(r,o||t.type))&&a.push(kl(i.messages.required,t.fullField))},UC;const C4e=function(){if(UC)return UC;var e=\"[a-fA-F\\\\d:]\",t=function(E){return E&&E.includeBoundaries?\"(?:(?<=\\\\s|^)(?=\".concat(e,\")|(?<=\").concat(e,\")(?=\\\\s|$))\"):\"\"},r=\"(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}\",n=\"[a-fA-F\\\\d]{1,4}\",a=[\"(?:\".concat(n,\":){7}(?:\").concat(n,\"|:)\"),\"(?:\".concat(n,\":){6}(?:\").concat(r,\"|:\").concat(n,\"|:)\"),\"(?:\".concat(n,\":){5}(?::\").concat(r,\"|(?::\").concat(n,\"){1,2}|:)\"),\"(?:\".concat(n,\":){4}(?:(?::\").concat(n,\"){0,1}:\").concat(r,\"|(?::\").concat(n,\"){1,3}|:)\"),\"(?:\".concat(n,\":){3}(?:(?::\").concat(n,\"){0,2}:\").concat(r,\"|(?::\").concat(n,\"){1,4}|:)\"),\"(?:\".concat(n,\":){2}(?:(?::\").concat(n,\"){0,3}:\").concat(r,\"|(?::\").concat(n,\"){1,5}|:)\"),\"(?:\".concat(n,\":){1}(?:(?::\").concat(n,\"){0,4}:\").concat(r,\"|(?::\").concat(n,\"){1,6}|:)\"),\"(?::(?:(?::\".concat(n,\"){0,5}:\").concat(r,\"|(?::\").concat(n,\"){1,7}|:))\")],i=\"(?:%[0-9a-zA-Z]{1,})?\",o=\"(?:\".concat(a.join(\"|\"),\")\").concat(i),l=new RegExp(\"(?:^\".concat(r,\"$)|(?:^\").concat(o,\"$)\")),s=new RegExp(\"^\".concat(r,\"$\")),u=new RegExp(\"^\".concat(o,\"$\")),c=function(E){return E&&E.exact?l:new RegExp(\"(?:\".concat(t(E)).concat(r).concat(t(E),\")|(?:\").concat(t(E)).concat(o).concat(t(E),\")\"),\"g\")};c.v4=function(S){return S&&S.exact?s:new RegExp(\"\".concat(t(S)).concat(r).concat(t(S)),\"g\")},c.v6=function(S){return S&&S.exact?u:new RegExp(\"\".concat(t(S)).concat(o).concat(t(S)),\"g\")};var d=\"(?:(?:[a-z]+:)?//)\",f=\"(?:\\\\S+(?::\\\\S*)?@)?\",h=c.v4().source,p=c.v6().source,v=\"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\",g=\"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\",y=\"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\",b=\"(?::\\\\d{2,5})?\",x='(?:[/?#][^\\\\s\"]*)?',F=\"(?:\".concat(d,\"|www\\\\.)\").concat(f,\"(?:localhost|\").concat(h,\"|\").concat(p,\"|\").concat(v).concat(g).concat(y,\")\").concat(b).concat(x);return UC=new RegExp(\"(?:^\".concat(F,\"$)\"),\"i\"),UC};var D_={email:/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,tel:/^(\\+[0-9]{1,3}[-\\s\\u2011]?)?(\\([0-9]{1,4}\\)[-\\s\\u2011]?)?([0-9]+[-\\s\\u2011]?)*[0-9]+$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},uy={integer:function(t){return uy.number(t)&&parseInt(t,10)===t},float:function(t){return uy.number(t)&&!uy.integer(t)},array:function(t){return Array.isArray(t)},regexp:function(t){if(t instanceof RegExp)return!0;try{return!!new RegExp(t)}catch{return!1}},date:function(t){return typeof t.getTime==\"function\"&&typeof t.getMonth==\"function\"&&typeof t.getYear==\"function\"&&!isNaN(t.getTime())},number:function(t){return isNaN(t)?!1:typeof t==\"number\"},object:function(t){return Nt(t)===\"object\"&&!uy.array(t)},method:function(t){return typeof t==\"function\"},email:function(t){return typeof t==\"string\"&&t.length<=320&&!!t.match(D_.email)},tel:function(t){return typeof t==\"string\"&&t.length<=32&&!!t.match(D_.tel)},url:function(t){return typeof t==\"string\"&&t.length<=2048&&!!t.match(C4e())},hex:function(t){return typeof t==\"string\"&&!!t.match(D_.hex)}},F4e=function(t,r,n,a,i){if(t.required&&r===void 0){Eae(t,r,n,a,i);return}var o=[\"integer\",\"float\",\"array\",\"regexp\",\"object\",\"method\",\"email\",\"tel\",\"number\",\"date\",\"url\",\"hex\"],l=t.type;o.indexOf(l)>-1?uy[l](r)||a.push(kl(i.messages.types[l],t.fullField,t.type)):l&&Nt(r)!==t.type&&a.push(kl(i.messages.types[l],t.fullField,t.type))},S4e=function(t,r,n,a,i){(/^\\s+$/.test(r)||r===\"\")&&a.push(kl(i.messages.whitespace,t.fullField))};const xn={required:Eae,whitespace:S4e,type:F4e,range:x4e,enum:y4e,pattern:b4e};var w4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i)}n(o)},E4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(r==null&&!t.required)return n();xn.required(t,r,a,o,i,\"array\"),r!=null&&(xn.type(t,r,a,o,i),xn.range(t,r,a,o,i))}n(o)},D4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),r!==void 0&&xn.type(t,r,a,o,i)}n(o)},A4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r,\"date\")&&!t.required)return n();if(xn.required(t,r,a,o,i),!hi(r,\"date\")){var s;r instanceof Date?s=r:s=new Date(r),xn.type(t,s,a,o,i),s&&xn.range(t,s.getTime(),a,o,i)}}n(o)},_4e=\"enum\",T4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),r!==void 0&&xn[_4e](t,r,a,o,i)}n(o)},I4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),r!==void 0&&(xn.type(t,r,a,o,i),xn.range(t,r,a,o,i))}n(o)},k4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),r!==void 0&&(xn.type(t,r,a,o,i),xn.range(t,r,a,o,i))}n(o)},R4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),r!==void 0&&xn.type(t,r,a,o,i)}n(o)},M4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(r===\"\"&&(r=void 0),hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),r!==void 0&&(xn.type(t,r,a,o,i),xn.range(t,r,a,o,i))}n(o)},P4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),r!==void 0&&xn.type(t,r,a,o,i)}n(o)},O4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r,\"string\")&&!t.required)return n();xn.required(t,r,a,o,i),hi(r,\"string\")||xn.pattern(t,r,a,o,i)}n(o)},B4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r)&&!t.required)return n();xn.required(t,r,a,o,i),hi(r)||xn.type(t,r,a,o,i)}n(o)},N4e=function(t,r,n,a,i){var o=[],l=Array.isArray(r)?\"array\":Nt(r);xn.required(t,r,a,o,i,l),n(o)},$4e=function(t,r,n,a,i){var o=[],l=t.required||!t.required&&a.hasOwnProperty(t.field);if(l){if(hi(r,\"string\")&&!t.required)return n();xn.required(t,r,a,o,i,\"string\"),hi(r,\"string\")||(xn.type(t,r,a,o,i),xn.range(t,r,a,o,i),xn.pattern(t,r,a,o,i),t.whitespace===!0&&xn.whitespace(t,r,a,o,i))}n(o)},KC=function(t,r,n,a,i){var o=t.type,l=[],s=t.required||!t.required&&a.hasOwnProperty(t.field);if(s){if(hi(r,o)&&!t.required)return n();xn.required(t,r,a,l,i,o),hi(r,o)||xn.type(t,r,a,l,i)}n(l)};const Hy={string:$4e,method:R4e,number:M4e,boolean:D4e,regexp:B4e,integer:k4e,float:I4e,array:E4e,object:P4e,enum:T4e,pattern:O4e,date:A4e,url:KC,hex:KC,email:KC,tel:KC,required:N4e,any:w4e};var px=function(){function e(t){Xn(this,e),Z(this,\"rules\",null),Z(this,\"_messages\",uR),this.define(t)}return Jn(e,[{key:\"define\",value:function(r){var n=this;if(!r)throw new Error(\"Cannot configure a schema with no rules\");if(Nt(r)!==\"object\"||Array.isArray(r))throw new Error(\"Rules must be an object\");this.rules={},Object.keys(r).forEach(function(a){var i=r[a];n.rules[a]=Array.isArray(i)?i:[i]})}},{key:\"messages\",value:function(r){return r&&(this._messages=Uz(sR(),r)),this._messages}},{key:\"validate\",value:function(r){var n=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){},o=r,l=a,s=i;if(typeof l==\"function\"&&(s=l,l={}),!this.rules||Object.keys(this.rules).length===0)return s&&s(null,o),Promise.resolve(o);function u(p){var v=[],g={};function y(x){if(Array.isArray(x)){var F;v=(F=v).concat.apply(F,He(x))}else v.push(x)}for(var b=0;b<p.length;b++)y(p[b]);v.length?(g=dR(v),s(v,g)):s(null,o)}if(l.messages){var c=this.messages();c===uR&&(c=sR()),Uz(c,l.messages),l.messages=c}else l.messages=this.messages();var d={},f=l.keys||Object.keys(this.rules);f.forEach(function(p){var v=n.rules[p],g=o[p];v.forEach(function(y){var b=y;typeof b.transform==\"function\"&&(o===r&&(o=ae({},o)),g=o[p]=b.transform(g),g!=null&&(b.type=b.type||(Array.isArray(g)?\"array\":Nt(g)))),typeof b==\"function\"?b={validator:b}:b=ae({},b),b.validator=n.getValidationMethod(b),b.validator&&(b.field=p,b.fullField=b.fullField||p,b.type=n.getType(b),d[p]=d[p]||[],d[p].push({rule:b,value:g,source:o,field:p}))})});var h={};return m4e(d,l,function(p,v){var g=p.rule,y=(g.type===\"object\"||g.type===\"array\")&&(Nt(g.fields)===\"object\"||Nt(g.defaultField)===\"object\");y=y&&(g.required||!g.required&&p.value),g.field=p.field;function b(w,D){return ae(ae({},D),{},{fullField:\"\".concat(g.fullField,\".\").concat(w),fullFields:g.fullFields?[].concat(He(g.fullFields),[w]):[w]})}function x(){var w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],D=Array.isArray(w)?w:[w];!l.suppressWarning&&D.length&&e.warning(\"async-validator:\",D),D.length&&g.message!==void 0&&g.message!==null&&(D=[].concat(g.message));var A=D.map(Gz(g,o));if(l.first&&A.length)return h[g.field]=1,v(A);if(!y)v(A);else{if(g.required&&!p.value)return g.message!==void 0?A=[].concat(g.message).map(Gz(g,o)):l.error&&(A=[l.error(g,kl(l.messages.required,g.field))]),v(A);var _={};g.defaultField&&Object.keys(p.value).map(function(T){_[T]=g.defaultField}),_=ae(ae({},_),p.rule.fields);var I={};Object.keys(_).forEach(function(T){var k=_[T],R=Array.isArray(k)?k:[k];I[T]=R.map(b.bind(null,T))});var M=new e(I);M.messages(l.messages),p.rule.options&&(p.rule.options.messages=l.messages,p.rule.options.error=l.error),M.validate(p.value,p.rule.options||l,function(T){var k=[];A&&A.length&&k.push.apply(k,He(A)),T&&T.length&&k.push.apply(k,He(T)),v(k.length?k:null)})}}var F;if(g.asyncValidator)F=g.asyncValidator(g,p.value,x,p.source,l);else if(g.validator){try{F=g.validator(g,p.value,x,p.source,l)}catch(w){var S,E;(S=(E=console).error)===null||S===void 0||S.call(E,w),l.suppressValidatorError||setTimeout(function(){throw w},0),x(w.message)}F===!0?x():F===!1?x(typeof g.message==\"function\"?g.message(g.fullField||g.field):g.message||\"\".concat(g.fullField||g.field,\" fails\")):F instanceof Array?x(F):F instanceof Error&&x(F.message)}F&&F.then&&F.then(function(){return x()},function(w){return x(w)})},function(p){u(p)},o)}},{key:\"getType\",value:function(r){if(r.type===void 0&&r.pattern instanceof RegExp&&(r.type=\"pattern\"),typeof r.validator!=\"function\"&&r.type&&!Hy.hasOwnProperty(r.type))throw new Error(kl(\"Unknown rule type %s\",r.type));return r.type||\"string\"}},{key:\"getValidationMethod\",value:function(r){if(typeof r.validator==\"function\")return r.validator;var n=Object.keys(r),a=n.indexOf(\"message\");return a!==-1&&n.splice(a,1),n.length===1&&n[0]===\"required\"?Hy.required:Hy[this.getType(r)]||void 0}}]),e}();Z(px,\"register\",function(t,r){if(typeof r!=\"function\")throw new Error(\"Cannot register a validator by type, validator is not a function\");Hy[t]=r});Z(px,\"warning\",d4e);Z(px,\"messages\",uR);Z(px,\"validators\",Hy);var bl=\"'${name}' is not a valid ${type}\",Dae={default:\"Validation error on field '${name}'\",required:\"'${name}' is required\",enum:\"'${name}' must be one of [${enum}]\",whitespace:\"'${name}' cannot be empty\",date:{format:\"'${name}' is invalid for format date\",parse:\"'${name}' could not be parsed as date\",invalid:\"'${name}' is invalid date\"},types:{string:bl,method:bl,array:bl,object:bl,number:bl,date:bl,boolean:bl,integer:bl,float:bl,regexp:bl,email:bl,url:bl,hex:bl},string:{len:\"'${name}' must be exactly ${len} characters\",min:\"'${name}' must be at least ${min} characters\",max:\"'${name}' cannot be longer than ${max} characters\",range:\"'${name}' must be between ${min} and ${max} characters\"},number:{len:\"'${name}' must equal ${len}\",min:\"'${name}' cannot be less than ${min}\",max:\"'${name}' cannot be greater than ${max}\",range:\"'${name}' must be between ${min} and ${max}\"},array:{len:\"'${name}' must be exactly ${len} in length\",min:\"'${name}' cannot be less than ${min} in length\",max:\"'${name}' cannot be greater than ${max} in length\",range:\"'${name}' must be between ${min} and ${max} in length\"},pattern:{mismatch:\"'${name}' does not match pattern ${pattern}\"}},Kz=px;function L4e(e,t){return e.replace(/\\\\?\\$\\{\\w+\\}/g,function(r){if(r.startsWith(\"\\\\\"))return r.slice(1);var n=r.slice(2,-1);return t[n]})}var Yz=\"CODE_LOGIC_ERROR\";function fR(e,t,r,n,a){return hR.apply(this,arguments)}function hR(){return hR=$o(Dn().mark(function e(t,r,n,a,i){var o,l,s,u,c,d,f,h,p;return Dn().wrap(function(g){for(;;)switch(g.prev=g.next){case 0:return o=ae({},n),delete o.ruleIndex,Kz.warning=function(){},o.validator&&(l=o.validator,o.validator=function(){try{return l.apply(void 0,arguments)}catch(y){return console.error(y),Promise.reject(Yz)}}),s=null,o&&o.type===\"array\"&&o.defaultField&&(s=o.defaultField,delete o.defaultField),u=new Kz(Z({},t,[o])),c=Qv(Dae,a.validateMessages),u.messages(c),d=[],g.prev=10,g.next=13,Promise.resolve(u.validate(Z({},t,r),ae({},a)));case 13:g.next=18;break;case 15:g.prev=15,g.t0=g.catch(10),g.t0.errors&&(d=g.t0.errors.map(function(y,b){var x=y.message,F=x===Yz?c.default:x;return m.isValidElement(F)?m.cloneElement(F,{key:\"error_\".concat(b)}):F}));case 18:if(!(!d.length&&s&&Array.isArray(r)&&r.length>0)){g.next=23;break}return g.next=21,Promise.all(r.map(function(y,b){return fR(\"\".concat(t,\".\").concat(b),y,s,a,i)}));case 21:return f=g.sent,g.abrupt(\"return\",f.reduce(function(y,b){return[].concat(He(y),He(b))},[]));case 23:return h=ae(ae({},n),{},{name:t,enum:(n.enum||[]).join(\", \")},i),p=d.map(function(y){return typeof y==\"string\"?L4e(y,h):y}),g.abrupt(\"return\",p);case 26:case\"end\":return g.stop()}},e,null,[[10,15]])})),hR.apply(this,arguments)}function j4e(e,t,r,n,a,i){var o=e.join(\".\"),l=r.map(function(c,d){var f=c.validator,h=ae(ae({},c),{},{ruleIndex:d});return f&&(h.validator=function(p,v,g){var y=!1,b=function(){for(var S=arguments.length,E=new Array(S),w=0;w<S;w++)E[w]=arguments[w];Promise.resolve().then(function(){jn(!y,\"Your validator function has already return a promise. `callback` will be ignored.\"),y||g.apply(void 0,E)})},x=f(p,v,b);y=x&&typeof x.then==\"function\"&&typeof x.catch==\"function\",jn(y,\"`callback` is deprecated. Please return a promise instead.\"),y&&x.then(function(){g()}).catch(function(F){g(F||\" \")})}),h}).sort(function(c,d){var f=c.warningOnly,h=c.ruleIndex,p=d.warningOnly,v=d.ruleIndex;return!!f==!!p?h-v:f?1:-1}),s;if(a===!0)s=new Promise(function(){var c=$o(Dn().mark(function d(f,h){var p,v,g;return Dn().wrap(function(b){for(;;)switch(b.prev=b.next){case 0:p=0;case 1:if(!(p<l.length)){b.next=12;break}return v=l[p],b.next=5,fR(o,t,v,n,i);case 5:if(g=b.sent,!g.length){b.next=9;break}return h([{errors:g,rule:v}]),b.abrupt(\"return\");case 9:p+=1,b.next=1;break;case 12:f([]);case 13:case\"end\":return b.stop()}},d)}));return function(d,f){return c.apply(this,arguments)}}());else{var u=l.map(function(c){return fR(o,t,c,n,i).then(function(d){return{errors:d,rule:c}})});s=(a?H4e(u):z4e(u)).then(function(c){return Promise.reject(c)})}return s.catch(function(c){return c}),s}function z4e(e){return pR.apply(this,arguments)}function pR(){return pR=$o(Dn().mark(function e(t){return Dn().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return n.abrupt(\"return\",Promise.all(t).then(function(a){var i,o=(i=[]).concat.apply(i,He(a));return o}));case 1:case\"end\":return n.stop()}},e)})),pR.apply(this,arguments)}function H4e(e){return mR.apply(this,arguments)}function mR(){return mR=$o(Dn().mark(function e(t){var r;return Dn().wrap(function(a){for(;;)switch(a.prev=a.next){case 0:return r=0,a.abrupt(\"return\",new Promise(function(i){t.forEach(function(o){o.then(function(l){l.errors.length&&i([l]),r+=1,r===t.length&&i([])})})}));case 2:case\"end\":return a.stop()}},e)})),mR.apply(this,arguments)}function Ra(e){return lR(e)}function qz(e,t){var r={};return t.forEach(function(n){var a=No(e,n);r=us(r,n,a)}),r}function g0(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return e&&e.some(function(n){return Aae(t,n,r)})}function Aae(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return!e||!t||!r&&e.length!==t.length?!1:t.every(function(n,a){return e[a]===n})}function V4e(e,t){if(e===t)return!0;if(!e&&t||e&&!t||!e||!t||Nt(e)!==\"object\"||Nt(t)!==\"object\")return!1;var r=Object.keys(e),n=Object.keys(t),a=new Set([].concat(r,n));return He(a).every(function(i){var o=e[i],l=t[i];return typeof o==\"function\"&&typeof l==\"function\"?!0:o===l})}function W4e(e){var t=arguments.length<=1?void 0:arguments[1];return t&&t.target&&Nt(t.target)===\"object\"&&e in t.target?t.target[e]:t}function Xz(e,t,r){var n=e.length;if(t<0||t>=n||r<0||r>=n)return e;var a=e[t],i=t-r;return i>0?[].concat(He(e.slice(0,r)),[a],He(e.slice(r,t)),He(e.slice(t+1,n))):i<0?[].concat(He(e.slice(0,t)),He(e.slice(t+1,r+1)),[a],He(e.slice(r+1,n))):e}var G4e=[\"name\"],Kl=[];function A_(e,t,r,n,a,i){return typeof e==\"function\"?e(t,r,\"source\"in i?{source:i.source}:{}):n!==a}var K7=function(e){Vl(r,e);var t=Ts(r);function r(n){var a;if(Xn(this,r),a=t.call(this,n),Z(Rt(a),\"state\",{resetCount:0}),Z(Rt(a),\"cancelRegisterFunc\",null),Z(Rt(a),\"mounted\",!1),Z(Rt(a),\"touched\",!1),Z(Rt(a),\"dirty\",!1),Z(Rt(a),\"validatePromise\",void 0),Z(Rt(a),\"prevValidating\",void 0),Z(Rt(a),\"errors\",Kl),Z(Rt(a),\"warnings\",Kl),Z(Rt(a),\"cancelRegister\",function(){var s=a.props,u=s.preserve,c=s.isListField,d=s.name;a.cancelRegisterFunc&&a.cancelRegisterFunc(c,u,Ra(d)),a.cancelRegisterFunc=null}),Z(Rt(a),\"getNamePath\",function(){var s=a.props,u=s.name,c=s.fieldContext,d=c.prefixName,f=d===void 0?[]:d;return u!==void 0?[].concat(He(f),He(u)):[]}),Z(Rt(a),\"getRules\",function(){var s=a.props,u=s.rules,c=u===void 0?[]:u,d=s.fieldContext;return c.map(function(f){return typeof f==\"function\"?f(d):f})}),Z(Rt(a),\"refresh\",function(){a.mounted&&a.setState(function(s){var u=s.resetCount;return{resetCount:u+1}})}),Z(Rt(a),\"metaCache\",null),Z(Rt(a),\"triggerMetaEvent\",function(s){var u=a.props.onMetaChange;if(u){var c=ae(ae({},a.getMeta()),{},{destroy:s});vu(a.metaCache,c)||u(c),a.metaCache=c}else a.metaCache=null}),Z(Rt(a),\"onStoreChange\",function(s,u,c){var d=a.props,f=d.shouldUpdate,h=d.dependencies,p=h===void 0?[]:h,v=d.onReset,g=c.store,y=a.getNamePath(),b=a.getValue(s),x=a.getValue(g),F=u&&g0(u,y);switch(c.type===\"valueUpdate\"&&c.source===\"external\"&&!vu(b,x)&&(a.touched=!0,a.dirty=!0,a.validatePromise=null,a.errors=Kl,a.warnings=Kl,a.triggerMetaEvent()),c.type){case\"reset\":if(!u||F){a.touched=!1,a.dirty=!1,a.validatePromise=void 0,a.errors=Kl,a.warnings=Kl,a.triggerMetaEvent(),v==null||v(),a.refresh();return}break;case\"remove\":{if(f&&A_(f,s,g,b,x,c)){a.reRender();return}break}case\"setField\":{var S=c.data;if(F){\"touched\"in S&&(a.touched=S.touched),\"validating\"in S&&!(\"originRCField\"in S)&&(a.validatePromise=S.validating?Promise.resolve([]):null),\"errors\"in S&&(a.errors=S.errors||Kl),\"warnings\"in S&&(a.warnings=S.warnings||Kl),a.dirty=!0,a.triggerMetaEvent(),a.reRender();return}else if(\"value\"in S&&g0(u,y,!0)){a.reRender();return}if(f&&!y.length&&A_(f,s,g,b,x,c)){a.reRender();return}break}case\"dependenciesUpdate\":{var E=p.map(Ra);if(E.some(function(w){return g0(c.relatedFields,w)})){a.reRender();return}break}default:if(F||(!p.length||y.length||f)&&A_(f,s,g,b,x,c)){a.reRender();return}break}f===!0&&a.reRender()}),Z(Rt(a),\"validateRules\",function(s){var u=a.getNamePath(),c=a.getValue(),d=s||{},f=d.triggerName,h=d.validateOnly,p=h===void 0?!1:h,v=Promise.resolve().then($o(Dn().mark(function g(){var y,b,x,F,S,E,w;return Dn().wrap(function(A){for(;;)switch(A.prev=A.next){case 0:if(a.mounted){A.next=2;break}return A.abrupt(\"return\",[]);case 2:if(y=a.props,b=y.validateFirst,x=b===void 0?!1:b,F=y.messageVariables,S=y.validateDebounce,E=a.getRules(),f&&(E=E.filter(function(_){return _}).filter(function(_){var I=_.validateTrigger;if(!I)return!0;var M=lR(I);return M.includes(f)})),!(S&&f)){A.next=10;break}return A.next=8,new Promise(function(_){setTimeout(_,S)});case 8:if(a.validatePromise===v){A.next=10;break}return A.abrupt(\"return\",[]);case 10:return w=j4e(u,c,E,s,x,F),w.catch(function(_){return _}).then(function(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Kl;if(a.validatePromise===v){var I;a.validatePromise=null;var M=[],T=[];(I=_.forEach)===null||I===void 0||I.call(_,function(k){var R=k.rule.warningOnly,P=k.errors,B=P===void 0?Kl:P;R?T.push.apply(T,He(B)):M.push.apply(M,He(B))}),a.errors=M,a.warnings=T,a.triggerMetaEvent(),a.reRender()}}),A.abrupt(\"return\",w);case 13:case\"end\":return A.stop()}},g)})));return p||(a.validatePromise=v,a.dirty=!0,a.errors=Kl,a.warnings=Kl,a.triggerMetaEvent(),a.reRender()),v}),Z(Rt(a),\"isFieldValidating\",function(){return!!a.validatePromise}),Z(Rt(a),\"isFieldTouched\",function(){return a.touched}),Z(Rt(a),\"isFieldDirty\",function(){if(a.dirty||a.props.initialValue!==void 0)return!0;var s=a.props.fieldContext,u=s.getInternalHooks(lp),c=u.getInitialValue;return c(a.getNamePath())!==void 0}),Z(Rt(a),\"getErrors\",function(){return a.errors}),Z(Rt(a),\"getWarnings\",function(){return a.warnings}),Z(Rt(a),\"isListField\",function(){return a.props.isListField}),Z(Rt(a),\"isList\",function(){return a.props.isList}),Z(Rt(a),\"isPreserve\",function(){return a.props.preserve}),Z(Rt(a),\"getMeta\",function(){a.prevValidating=a.isFieldValidating();var s={touched:a.isFieldTouched(),validating:a.prevValidating,errors:a.errors,warnings:a.warnings,name:a.getNamePath(),validated:a.validatePromise===null};return s}),Z(Rt(a),\"getOnlyChild\",function(s){if(typeof s==\"function\"){var u=a.getMeta();return ae(ae({},a.getOnlyChild(s(a.getControlled(),u,a.props.fieldContext))),{},{isFunction:!0})}var c=ba(s);return c.length!==1||!m.isValidElement(c[0])?{child:c,isFunction:!1}:{child:c[0],isFunction:!1}}),Z(Rt(a),\"getValue\",function(s){var u=a.props.fieldContext.getFieldsValue,c=a.getNamePath();return No(s||u(!0),c)}),Z(Rt(a),\"getControlled\",function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},u=a.props,c=u.name,d=u.trigger,f=u.validateTrigger,h=u.getValueFromEvent,p=u.normalize,v=u.valuePropName,g=u.getValueProps,y=u.fieldContext,b=f!==void 0?f:y.validateTrigger,x=a.getNamePath(),F=y.getInternalHooks,S=y.getFieldsValue,E=F(lp),w=E.dispatch,D=a.getValue(),A=g||function(k){return Z({},v,k)},_=s[d],I=c!==void 0?A(D):{},M=ae(ae({},s),I);M[d]=function(){a.touched=!0,a.dirty=!0,a.triggerMetaEvent();for(var k,R=arguments.length,P=new Array(R),B=0;B<R;B++)P[B]=arguments[B];h?k=h.apply(void 0,P):k=W4e.apply(void 0,[v].concat(P)),p&&(k=p(k,D,S(!0))),k!==D&&w({type:\"updateValue\",namePath:x,value:k}),_&&_.apply(void 0,P)};var T=lR(b||[]);return T.forEach(function(k){var R=M[k];M[k]=function(){R&&R.apply(void 0,arguments);var P=a.props.rules;P&&P.length&&w({type:\"validateField\",namePath:x,triggerName:k})}}),M}),n.fieldContext){var i=n.fieldContext.getInternalHooks,o=i(lp),l=o.initEntityValue;l(Rt(a))}return a}return Jn(r,[{key:\"componentDidMount\",value:function(){var a=this.props,i=a.shouldUpdate,o=a.fieldContext;if(this.mounted=!0,o){var l=o.getInternalHooks,s=l(lp),u=s.registerField;this.cancelRegisterFunc=u(this)}i===!0&&this.reRender()}},{key:\"componentWillUnmount\",value:function(){this.cancelRegister(),this.triggerMetaEvent(!0),this.mounted=!1}},{key:\"reRender\",value:function(){this.mounted&&this.forceUpdate()}},{key:\"render\",value:function(){var a=this.state.resetCount,i=this.props.children,o=this.getOnlyChild(i),l=o.child,s=o.isFunction,u;return s?u=l:m.isValidElement(l)?u=m.cloneElement(l,this.getControlled(l.props)):(jn(!l,\"`children` of Field is not validate ReactElement.\"),u=l),m.createElement(m.Fragment,{key:a},u)}}]),r}(m.Component);Z(K7,\"contextType\",Kp);Z(K7,\"defaultProps\",{trigger:\"onChange\",valuePropName:\"value\"});function Y7(e){var t,r=e.name,n=Xt(e,G4e),a=m.useContext(Kp),i=m.useContext(Qb),o=r!==void 0?Ra(r):void 0,l=(t=n.isListField)!==null&&t!==void 0?t:!!i,s=\"keep\";return l||(s=\"_\".concat((o||[]).join(\"_\"))),m.createElement(K7,Ce({key:s,name:o,isListField:l},n,{fieldContext:a}))}function _ae(e){var t=e.name,r=e.initialValue,n=e.children,a=e.rules,i=e.validateTrigger,o=e.isListField,l=m.useContext(Kp),s=m.useContext(Qb),u=m.useRef({keys:[],id:0}),c=u.current,d=m.useMemo(function(){var v=Ra(l.prefixName)||[];return[].concat(He(v),He(Ra(t)))},[l.prefixName,t]),f=m.useMemo(function(){return ae(ae({},l),{},{prefixName:d})},[l,d]),h=m.useMemo(function(){return{getKey:function(g){var y=d.length,b=g[y];return[c.keys[b],g.slice(y+1)]}}},[d]);if(typeof n!=\"function\")return jn(!1,\"Form.List only accepts function as children.\"),null;var p=function(g,y,b){var x=b.source;return x===\"internal\"?!1:g!==y};return m.createElement(Qb.Provider,{value:h},m.createElement(Kp.Provider,{value:f},m.createElement(Y7,{name:[],shouldUpdate:p,rules:a,validateTrigger:i,initialValue:r,isList:!0,isListField:o??!!s},function(v,g){var y=v.value,b=y===void 0?[]:y,x=v.onChange,F=l.getFieldValue,S=function(){var A=F(d||[]);return A||[]},E={add:function(A,_){var I=S();_>=0&&_<=I.length?(c.keys=[].concat(He(c.keys.slice(0,_)),[c.id],He(c.keys.slice(_))),x([].concat(He(I.slice(0,_)),[A],He(I.slice(_))))):(c.keys=[].concat(He(c.keys),[c.id]),x([].concat(He(I),[A]))),c.id+=1},remove:function(A){var _=S(),I=new Set(Array.isArray(A)?A:[A]);I.size<=0||(c.keys=c.keys.filter(function(M,T){return!I.has(T)}),x(_.filter(function(M,T){return!I.has(T)})))},move:function(A,_){if(A!==_){var I=S();A<0||A>=I.length||_<0||_>=I.length||(c.keys=Xz(c.keys,A,_),x(Xz(I,A,_)))}}},w=b||[];return Array.isArray(w)||(w=[]),n(w.map(function(D,A){var _=c.keys[A];return _===void 0&&(c.keys[A]=c.id,_=c.keys[A],c.id+=1),{name:A,key:_,isListField:!0}}),E,g)})))}function U4e(e){var t=!1,r=e.length,n=[];return e.length?new Promise(function(a,i){e.forEach(function(o,l){o.catch(function(s){return t=!0,s}).then(function(s){r-=1,n[l]=s,!(r>0)&&(t&&i(n),a(n))})})}):Promise.resolve([])}var Tae=\"__@field_split__\";function __(e){return e.map(function(t){return\"\".concat(Nt(t),\":\").concat(t)}).join(Tae)}var Km=function(){function e(){Xn(this,e),Z(this,\"kvs\",new Map)}return Jn(e,[{key:\"set\",value:function(r,n){this.kvs.set(__(r),n)}},{key:\"get\",value:function(r){return this.kvs.get(__(r))}},{key:\"update\",value:function(r,n){var a=this.get(r),i=n(a);i?this.set(r,i):this.delete(r)}},{key:\"delete\",value:function(r){this.kvs.delete(__(r))}},{key:\"map\",value:function(r){return He(this.kvs.entries()).map(function(n){var a=ve(n,2),i=a[0],o=a[1],l=i.split(Tae);return r({key:l.map(function(s){var u=s.match(/^([^:]*):(.*)$/),c=ve(u,3),d=c[1],f=c[2];return d===\"number\"?Number(f):f}),value:o})})}},{key:\"toJSON\",value:function(){var r={};return this.map(function(n){var a=n.key,i=n.value;return r[a.join(\".\")]=i,null}),r}}]),e}(),K4e=[\"name\"],Y4e=Jn(function e(t){var r=this;Xn(this,e),Z(this,\"formHooked\",!1),Z(this,\"forceRootUpdate\",void 0),Z(this,\"subscribable\",!0),Z(this,\"store\",{}),Z(this,\"fieldEntities\",[]),Z(this,\"initialValues\",{}),Z(this,\"callbacks\",{}),Z(this,\"validateMessages\",null),Z(this,\"preserve\",null),Z(this,\"lastValidatePromise\",null),Z(this,\"getForm\",function(){return{getFieldValue:r.getFieldValue,getFieldsValue:r.getFieldsValue,getFieldError:r.getFieldError,getFieldWarning:r.getFieldWarning,getFieldsError:r.getFieldsError,isFieldsTouched:r.isFieldsTouched,isFieldTouched:r.isFieldTouched,isFieldValidating:r.isFieldValidating,isFieldsValidating:r.isFieldsValidating,resetFields:r.resetFields,setFields:r.setFields,setFieldValue:r.setFieldValue,setFieldsValue:r.setFieldsValue,validateFields:r.validateFields,submit:r.submit,_init:!0,getInternalHooks:r.getInternalHooks}}),Z(this,\"getInternalHooks\",function(n){return n===lp?(r.formHooked=!0,{dispatch:r.dispatch,initEntityValue:r.initEntityValue,registerField:r.registerField,useSubscribe:r.useSubscribe,setInitialValues:r.setInitialValues,destroyForm:r.destroyForm,setCallbacks:r.setCallbacks,setValidateMessages:r.setValidateMessages,getFields:r.getFields,setPreserve:r.setPreserve,getInitialValue:r.getInitialValue,registerWatch:r.registerWatch}):(jn(!1,\"`getInternalHooks` is internal usage. Should not call directly.\"),null)}),Z(this,\"useSubscribe\",function(n){r.subscribable=n}),Z(this,\"prevWithoutPreserves\",null),Z(this,\"setInitialValues\",function(n,a){if(r.initialValues=n||{},a){var i,o=Qv(n,r.store);(i=r.prevWithoutPreserves)===null||i===void 0||i.map(function(l){var s=l.key;o=us(o,s,No(n,s))}),r.prevWithoutPreserves=null,r.updateStore(o)}}),Z(this,\"destroyForm\",function(n){if(n)r.updateStore({});else{var a=new Km;r.getFieldEntities(!0).forEach(function(i){r.isMergedPreserve(i.isPreserve())||a.set(i.getNamePath(),!0)}),r.prevWithoutPreserves=a}}),Z(this,\"getInitialValue\",function(n){var a=No(r.initialValues,n);return n.length?Qv(a):a}),Z(this,\"setCallbacks\",function(n){r.callbacks=n}),Z(this,\"setValidateMessages\",function(n){r.validateMessages=n}),Z(this,\"setPreserve\",function(n){r.preserve=n}),Z(this,\"watchList\",[]),Z(this,\"registerWatch\",function(n){return r.watchList.push(n),function(){r.watchList=r.watchList.filter(function(a){return a!==n})}}),Z(this,\"notifyWatch\",function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(r.watchList.length){var a=r.getFieldsValue(),i=r.getFieldsValue(!0);r.watchList.forEach(function(o){o(a,i,n)})}}),Z(this,\"timeoutId\",null),Z(this,\"warningUnhooked\",function(){}),Z(this,\"updateStore\",function(n){r.store=n}),Z(this,\"getFieldEntities\",function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return n?r.fieldEntities.filter(function(a){return a.getNamePath().length}):r.fieldEntities}),Z(this,\"getFieldsMap\",function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,a=new Km;return r.getFieldEntities(n).forEach(function(i){var o=i.getNamePath();a.set(o,i)}),a}),Z(this,\"getFieldEntitiesForNamePathList\",function(n){if(!n)return r.getFieldEntities(!0);var a=r.getFieldsMap(!0);return n.map(function(i){var o=Ra(i);return a.get(o)||{INVALIDATE_NAME_PATH:Ra(i)}})}),Z(this,\"getFieldsValue\",function(n,a){r.warningUnhooked();var i,o,l;if(n===!0||Array.isArray(n)?(i=n,o=a):n&&Nt(n)===\"object\"&&(l=n.strict,o=n.filter),i===!0&&!o)return r.store;var s=r.getFieldEntitiesForNamePathList(Array.isArray(i)?i:null),u=[];return s.forEach(function(c){var d,f,h=\"INVALIDATE_NAME_PATH\"in c?c.INVALIDATE_NAME_PATH:c.getNamePath();if(l){var p,v;if((p=(v=c).isList)!==null&&p!==void 0&&p.call(v))return}else if(!i&&(d=(f=c).isListField)!==null&&d!==void 0&&d.call(f))return;if(!o)u.push(h);else{var g=\"getMeta\"in c?c.getMeta():null;o(g)&&u.push(h)}}),qz(r.store,u.map(Ra))}),Z(this,\"getFieldValue\",function(n){r.warningUnhooked();var a=Ra(n);return No(r.store,a)}),Z(this,\"getFieldsError\",function(n){r.warningUnhooked();var a=r.getFieldEntitiesForNamePathList(n);return a.map(function(i,o){return i&&!(\"INVALIDATE_NAME_PATH\"in i)?{name:i.getNamePath(),errors:i.getErrors(),warnings:i.getWarnings()}:{name:Ra(n[o]),errors:[],warnings:[]}})}),Z(this,\"getFieldError\",function(n){r.warningUnhooked();var a=Ra(n),i=r.getFieldsError([a])[0];return i.errors}),Z(this,\"getFieldWarning\",function(n){r.warningUnhooked();var a=Ra(n),i=r.getFieldsError([a])[0];return i.warnings}),Z(this,\"isFieldsTouched\",function(){r.warningUnhooked();for(var n=arguments.length,a=new Array(n),i=0;i<n;i++)a[i]=arguments[i];var o=a[0],l=a[1],s,u=!1;a.length===0?s=null:a.length===1?Array.isArray(o)?(s=o.map(Ra),u=!1):(s=null,u=o):(s=o.map(Ra),u=l);var c=r.getFieldEntities(!0),d=function(g){return g.isFieldTouched()};if(!s)return u?c.every(function(v){return d(v)||v.isList()}):c.some(d);var f=new Km;s.forEach(function(v){f.set(v,[])}),c.forEach(function(v){var g=v.getNamePath();s.forEach(function(y){y.every(function(b,x){return g[x]===b})&&f.update(y,function(b){return[].concat(He(b),[v])})})});var h=function(g){return g.some(d)},p=f.map(function(v){var g=v.value;return g});return u?p.every(h):p.some(h)}),Z(this,\"isFieldTouched\",function(n){return r.warningUnhooked(),r.isFieldsTouched([n])}),Z(this,\"isFieldsValidating\",function(n){r.warningUnhooked();var a=r.getFieldEntities();if(!n)return a.some(function(o){return o.isFieldValidating()});var i=n.map(Ra);return a.some(function(o){var l=o.getNamePath();return g0(i,l)&&o.isFieldValidating()})}),Z(this,\"isFieldValidating\",function(n){return r.warningUnhooked(),r.isFieldsValidating([n])}),Z(this,\"resetWithFieldInitialValue\",function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=new Km,i=r.getFieldEntities(!0);i.forEach(function(s){var u=s.props.initialValue,c=s.getNamePath();if(u!==void 0){var d=a.get(c)||new Set;d.add({entity:s,value:u}),a.set(c,d)}});var o=function(u){u.forEach(function(c){var d=c.props.initialValue;if(d!==void 0){var f=c.getNamePath(),h=r.getInitialValue(f);if(h!==void 0)jn(!1,\"Form already set 'initialValues' with path '\".concat(f.join(\".\"),\"'. Field can not overwrite it.\"));else{var p=a.get(f);if(p&&p.size>1)jn(!1,\"Multiple Field with path '\".concat(f.join(\".\"),\"' set 'initialValue'. Can not decide which one to pick.\"));else if(p){var v=r.getFieldValue(f),g=c.isListField();!g&&(!n.skipExist||v===void 0)&&r.updateStore(us(r.store,f,He(p)[0].value))}}}})},l;n.entities?l=n.entities:n.namePathList?(l=[],n.namePathList.forEach(function(s){var u=a.get(s);if(u){var c;(c=l).push.apply(c,He(He(u).map(function(d){return d.entity})))}})):l=i,o(l)}),Z(this,\"resetFields\",function(n){r.warningUnhooked();var a=r.store;if(!n){r.updateStore(Qv(r.initialValues)),r.resetWithFieldInitialValue(),r.notifyObservers(a,null,{type:\"reset\"}),r.notifyWatch();return}var i=n.map(Ra);i.forEach(function(o){var l=r.getInitialValue(o);r.updateStore(us(r.store,o,l))}),r.resetWithFieldInitialValue({namePathList:i}),r.notifyObservers(a,i,{type:\"reset\"}),r.notifyWatch(i)}),Z(this,\"setFields\",function(n){r.warningUnhooked();var a=r.store,i=[];n.forEach(function(o){var l=o.name,s=Xt(o,K4e),u=Ra(l);i.push(u),\"value\"in s&&r.updateStore(us(r.store,u,s.value)),r.notifyObservers(a,[u],{type:\"setField\",data:o})}),r.notifyWatch(i)}),Z(this,\"getFields\",function(){var n=r.getFieldEntities(!0),a=n.map(function(i){var o=i.getNamePath(),l=i.getMeta(),s=ae(ae({},l),{},{name:o,value:r.getFieldValue(o)});return Object.defineProperty(s,\"originRCField\",{value:!0}),s});return a}),Z(this,\"initEntityValue\",function(n){var a=n.props.initialValue;if(a!==void 0){var i=n.getNamePath(),o=No(r.store,i);o===void 0&&r.updateStore(us(r.store,i,a))}}),Z(this,\"isMergedPreserve\",function(n){var a=n!==void 0?n:r.preserve;return a??!0}),Z(this,\"registerField\",function(n){r.fieldEntities.push(n);var a=n.getNamePath();if(r.notifyWatch([a]),n.props.initialValue!==void 0){var i=r.store;r.resetWithFieldInitialValue({entities:[n],skipExist:!0}),r.notifyObservers(i,[n.getNamePath()],{type:\"valueUpdate\",source:\"internal\"})}return function(o,l){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(r.fieldEntities=r.fieldEntities.filter(function(d){return d!==n}),!r.isMergedPreserve(l)&&(!o||s.length>1)){var u=o?void 0:r.getInitialValue(a);if(a.length&&r.getFieldValue(a)!==u&&r.fieldEntities.every(function(d){return!Aae(d.getNamePath(),a)})){var c=r.store;r.updateStore(us(c,a,u,!0)),r.notifyObservers(c,[a],{type:\"remove\"}),r.triggerDependenciesUpdate(c,a)}}r.notifyWatch([a])}}),Z(this,\"dispatch\",function(n){switch(n.type){case\"updateValue\":{var a=n.namePath,i=n.value;r.updateValue(a,i);break}case\"validateField\":{var o=n.namePath,l=n.triggerName;r.validateFields([o],{triggerName:l});break}}}),Z(this,\"notifyObservers\",function(n,a,i){if(r.subscribable){var o=ae(ae({},i),{},{store:r.getFieldsValue(!0)});r.getFieldEntities().forEach(function(l){var s=l.onStoreChange;s(n,a,o)})}else r.forceRootUpdate()}),Z(this,\"triggerDependenciesUpdate\",function(n,a){var i=r.getDependencyChildrenFields(a);return i.length&&r.validateFields(i),r.notifyObservers(n,i,{type:\"dependenciesUpdate\",relatedFields:[a].concat(He(i))}),i}),Z(this,\"updateValue\",function(n,a){var i=Ra(n),o=r.store;r.updateStore(us(r.store,i,a)),r.notifyObservers(o,[i],{type:\"valueUpdate\",source:\"internal\"}),r.notifyWatch([i]);var l=r.triggerDependenciesUpdate(o,i),s=r.callbacks.onValuesChange;if(s){var u=qz(r.store,[i]);s(u,r.getFieldsValue())}r.triggerOnFieldsChange([i].concat(He(l)))}),Z(this,\"setFieldsValue\",function(n){r.warningUnhooked();var a=r.store;if(n){var i=Qv(r.store,n);r.updateStore(i)}r.notifyObservers(a,null,{type:\"valueUpdate\",source:\"external\"}),r.notifyWatch()}),Z(this,\"setFieldValue\",function(n,a){r.setFields([{name:n,value:a,errors:[],warnings:[]}])}),Z(this,\"getDependencyChildrenFields\",function(n){var a=new Set,i=[],o=new Km;r.getFieldEntities().forEach(function(s){var u=s.props.dependencies;(u||[]).forEach(function(c){var d=Ra(c);o.update(d,function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Set;return f.add(s),f})})});var l=function s(u){var c=o.get(u)||new Set;c.forEach(function(d){if(!a.has(d)){a.add(d);var f=d.getNamePath();d.isFieldDirty()&&f.length&&(i.push(f),s(f))}})};return l(n),i}),Z(this,\"triggerOnFieldsChange\",function(n,a){var i=r.callbacks.onFieldsChange;if(i){var o=r.getFields();if(a){var l=new Km;a.forEach(function(u){var c=u.name,d=u.errors;l.set(c,d)}),o.forEach(function(u){u.errors=l.get(u.name)||u.errors})}var s=o.filter(function(u){var c=u.name;return g0(n,c)});s.length&&i(s,o)}}),Z(this,\"validateFields\",function(n,a){r.warningUnhooked();var i,o;Array.isArray(n)||typeof n==\"string\"||typeof a==\"string\"?(i=n,o=a):o=n;var l=!!i,s=l?i.map(Ra):[],u=[],c=String(Date.now()),d=new Set,f=o||{},h=f.recursive,p=f.dirty;r.getFieldEntities(!0).forEach(function(b){if(l||s.push(b.getNamePath()),!(!b.props.rules||!b.props.rules.length)&&!(p&&!b.isFieldDirty())){var x=b.getNamePath();if(d.add(x.join(c)),!l||g0(s,x,h)){var F=b.validateRules(ae({validateMessages:ae(ae({},Dae),r.validateMessages)},o));u.push(F.then(function(){return{name:x,errors:[],warnings:[]}}).catch(function(S){var E,w=[],D=[];return(E=S.forEach)===null||E===void 0||E.call(S,function(A){var _=A.rule.warningOnly,I=A.errors;_?D.push.apply(D,He(I)):w.push.apply(w,He(I))}),w.length?Promise.reject({name:x,errors:w,warnings:D}):{name:x,errors:w,warnings:D}}))}}});var v=U4e(u);r.lastValidatePromise=v,v.catch(function(b){return b}).then(function(b){var x=b.map(function(F){var S=F.name;return S});r.notifyObservers(r.store,x,{type:\"validateFinish\"}),r.triggerOnFieldsChange(x,b)});var g=v.then(function(){return r.lastValidatePromise===v?Promise.resolve(r.getFieldsValue(s)):Promise.reject([])}).catch(function(b){var x=b.filter(function(F){return F&&F.errors.length});return Promise.reject({values:r.getFieldsValue(s),errorFields:x,outOfDate:r.lastValidatePromise!==v})});g.catch(function(b){return b});var y=s.filter(function(b){return d.has(b.join(c))});return r.triggerOnFieldsChange(y),g}),Z(this,\"submit\",function(){r.warningUnhooked(),r.validateFields().then(function(n){var a=r.callbacks.onFinish;if(a)try{a(n)}catch(i){console.error(i)}}).catch(function(n){var a=r.callbacks.onFinishFailed;a&&a(n)})}),this.forceRootUpdate=t});function q7(e){var t=m.useRef(),r=m.useState({}),n=ve(r,2),a=n[1];if(!t.current)if(e)t.current=e;else{var i=function(){a({})},o=new Y4e(i);t.current=o.getForm()}return[t.current]}var vR=m.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),Iae=function(t){var r=t.validateMessages,n=t.onFormChange,a=t.onFormFinish,i=t.children,o=m.useContext(vR),l=m.useRef({});return m.createElement(vR.Provider,{value:ae(ae({},o),{},{validateMessages:ae(ae({},o.validateMessages),r),triggerFormChange:function(u,c){n&&n(u,{changedFields:c,forms:l.current}),o.triggerFormChange(u,c)},triggerFormFinish:function(u,c){a&&a(u,{values:c,forms:l.current}),o.triggerFormFinish(u,c)},registerForm:function(u,c){u&&(l.current=ae(ae({},l.current),{},Z({},u,c))),o.registerForm(u,c)},unregisterForm:function(u){var c=ae({},l.current);delete c[u],l.current=c,o.unregisterForm(u)}})},i)},q4e=[\"name\",\"initialValues\",\"fields\",\"form\",\"preserve\",\"children\",\"component\",\"validateMessages\",\"validateTrigger\",\"onValuesChange\",\"onFieldsChange\",\"onFinish\",\"onFinishFailed\",\"clearOnDestroy\"],X4e=function(t,r){var n=t.name,a=t.initialValues,i=t.fields,o=t.form,l=t.preserve,s=t.children,u=t.component,c=u===void 0?\"form\":u,d=t.validateMessages,f=t.validateTrigger,h=f===void 0?\"onChange\":f,p=t.onValuesChange,v=t.onFieldsChange,g=t.onFinish,y=t.onFinishFailed,b=t.clearOnDestroy,x=Xt(t,q4e),F=m.useRef(null),S=m.useContext(vR),E=q7(o),w=ve(E,1),D=w[0],A=D.getInternalHooks(lp),_=A.useSubscribe,I=A.setInitialValues,M=A.setCallbacks,T=A.setValidateMessages,k=A.setPreserve,R=A.destroyForm;m.useImperativeHandle(r,function(){return ae(ae({},D),{},{nativeElement:F.current})}),m.useEffect(function(){return S.registerForm(n,D),function(){S.unregisterForm(n)}},[S,D,n]),T(ae(ae({},S.validateMessages),d)),M({onValuesChange:p,onFieldsChange:function(H){if(S.triggerFormChange(n,H),v){for(var V=arguments.length,U=new Array(V>1?V-1:0),Q=1;Q<V;Q++)U[Q-1]=arguments[Q];v.apply(void 0,[H].concat(U))}},onFinish:function(H){S.triggerFormFinish(n,H),g&&g(H)},onFinishFailed:y}),k(l);var P=m.useRef(null);I(a,!P.current),P.current||(P.current=!0),m.useEffect(function(){return function(){return R(b)}},[]);var B,N=typeof s==\"function\";if(N){var O=D.getFieldsValue(!0);B=s(O,D)}else B=s;_(!N);var z=m.useRef();m.useEffect(function(){V4e(z.current||[],i||[])||D.setFields(i||[]),z.current=i},[i,D]);var W=m.useMemo(function(){return ae(ae({},D),{},{validateTrigger:h})},[D,h]),L=m.createElement(Qb.Provider,{value:null},m.createElement(Kp.Provider,{value:W},B));return c===!1?L:m.createElement(c,Ce({},x,{ref:F,onSubmit:function(H){H.preventDefault(),H.stopPropagation(),D.submit()},onReset:function(H){var V;H.preventDefault(),D.resetFields(),(V=x.onReset)===null||V===void 0||V.call(x,H)}}),L)};function Jz(e){try{return JSON.stringify(e)}catch{return Math.random()}}function kae(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=t[0],a=t[1],i=a===void 0?{}:a,o=l4e(i)?{form:i}:i,l=o.form,s=m.useState(),u=ve(s,2),c=u[0],d=u[1],f=m.useMemo(function(){return Jz(c)},[c]),h=m.useRef(f);h.current=f;var p=m.useContext(Kp),v=l||p,g=v&&v._init,y=Ra(n),b=m.useRef(y);return b.current=y,m.useEffect(function(){if(g){var x=v.getFieldsValue,F=v.getInternalHooks,S=F(lp),E=S.registerWatch,w=function(I,M){var T=o.preserve?M:I;return typeof n==\"function\"?n(T):No(T,b.current)},D=E(function(_,I){var M=w(_,I),T=Jz(M);h.current!==T&&(h.current=T,d(M))}),A=w(x(),x(!0));return c!==A&&d(A),D}},[g]),c}var J4e=m.forwardRef(X4e),Sg=J4e;Sg.FormProvider=Iae;Sg.Field=Y7;Sg.List=_ae;Sg.useForm=q7;Sg.useWatch=kae;const ad=m.createContext({labelAlign:\"right\",layout:\"horizontal\",itemRef:()=>{}}),Rae=m.createContext(null),Mae=e=>{const t=wn(e,[\"prefixCls\"]);return m.createElement(Iae,Object.assign({},t))},X7=m.createContext({prefixCls:\"\"}),pi=m.createContext({}),Pae=({children:e,status:t,override:r})=>{const n=m.useContext(pi),a=m.useMemo(()=>{const i=Object.assign({},n);return r&&delete i.isFormItemInput,t&&(delete i.status,delete i.hasFeedback,delete i.feedbackIcon),i},[t,r,n]);return m.createElement(pi.Provider,{value:a},e)},Oae=m.createContext(void 0),gu=e=>{const{space:t,form:r,children:n}=e;if(n==null)return null;let a=n;return r&&(a=le.createElement(Pae,{override:!0,status:!0},a)),t&&(a=le.createElement(dEe,null,a)),a};var Bae=function(t){if(ki()&&window.document.documentElement){var r=Array.isArray(t)?t:[t],n=window.document.documentElement;return r.some(function(a){return a in n.style})}return!1},Z4e=function(t,r){if(!Bae(t))return!1;var n=document.createElement(\"div\"),a=n.style[t];return n.style[t]=r,n.style[t]!==a};function gR(e,t){return!Array.isArray(e)&&t!==void 0?Z4e(e,t):Bae(e)}const Q4e=()=>ki()&&window.document.documentElement,m6=e=>{const{prefixCls:t,className:r,style:n,size:a,shape:i}=e,o=ne({[`${t}-lg`]:a===\"large\",[`${t}-sm`]:a===\"small\"}),l=ne({[`${t}-circle`]:i===\"circle\",[`${t}-square`]:i===\"square\",[`${t}-round`]:i===\"round\"}),s=m.useMemo(()=>typeof a==\"number\"?{width:a,height:a,lineHeight:`${a}px`}:{},[a]);return m.createElement(\"span\",{className:ne(t,o,l,r),style:Object.assign(Object.assign({},s),n)})},e6e=new Br(\"ant-skeleton-loading\",{\"0%\":{backgroundPosition:\"100% 50%\"},\"100%\":{backgroundPosition:\"0 50%\"}}),v6=e=>({height:e,lineHeight:re(e)}),y0=e=>Object.assign({width:e},v6(e)),t6e=e=>({background:e.skeletonLoadingBackground,backgroundSize:\"400% 100%\",animationName:e6e,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:\"ease\",animationIterationCount:\"infinite\"}),T_=(e,t)=>Object.assign({width:t(e).mul(5).equal(),minWidth:t(e).mul(5).equal()},v6(e)),r6e=e=>{const{skeletonAvatarCls:t,gradientFromColor:r,controlHeight:n,controlHeightLG:a,controlHeightSM:i}=e;return{[t]:Object.assign({display:\"inline-block\",verticalAlign:\"top\",background:r},y0(n)),[`${t}${t}-circle`]:{borderRadius:\"50%\"},[`${t}${t}-lg`]:Object.assign({},y0(a)),[`${t}${t}-sm`]:Object.assign({},y0(i))}},n6e=e=>{const{controlHeight:t,borderRadiusSM:r,skeletonInputCls:n,controlHeightLG:a,controlHeightSM:i,gradientFromColor:o,calc:l}=e;return{[n]:Object.assign({display:\"inline-block\",verticalAlign:\"top\",background:o,borderRadius:r},T_(t,l)),[`${n}-lg`]:Object.assign({},T_(a,l)),[`${n}-sm`]:Object.assign({},T_(i,l))}},Zz=e=>Object.assign({width:e},v6(e)),a6e=e=>{const{skeletonImageCls:t,imageSizeBase:r,gradientFromColor:n,borderRadiusSM:a,calc:i}=e;return{[t]:Object.assign(Object.assign({display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",verticalAlign:\"middle\",background:n,borderRadius:a},Zz(i(r).mul(2).equal())),{[`${t}-path`]:{fill:\"#bfbfbf\"},[`${t}-svg`]:Object.assign(Object.assign({},Zz(r)),{maxWidth:i(r).mul(4).equal(),maxHeight:i(r).mul(4).equal()}),[`${t}-svg${t}-svg-circle`]:{borderRadius:\"50%\"}}),[`${t}${t}-circle`]:{borderRadius:\"50%\"}}},I_=(e,t,r)=>{const{skeletonButtonCls:n}=e;return{[`${r}${n}-circle`]:{width:t,minWidth:t,borderRadius:\"50%\"},[`${r}${n}-round`]:{borderRadius:t}}},k_=(e,t)=>Object.assign({width:t(e).mul(2).equal(),minWidth:t(e).mul(2).equal()},v6(e)),i6e=e=>{const{borderRadiusSM:t,skeletonButtonCls:r,controlHeight:n,controlHeightLG:a,controlHeightSM:i,gradientFromColor:o,calc:l}=e;return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({[r]:Object.assign({display:\"inline-block\",verticalAlign:\"top\",background:o,borderRadius:t,width:l(n).mul(2).equal(),minWidth:l(n).mul(2).equal()},k_(n,l))},I_(e,n,r)),{[`${r}-lg`]:Object.assign({},k_(a,l))}),I_(e,a,`${r}-lg`)),{[`${r}-sm`]:Object.assign({},k_(i,l))}),I_(e,i,`${r}-sm`))},o6e=e=>{const{componentCls:t,skeletonAvatarCls:r,skeletonTitleCls:n,skeletonParagraphCls:a,skeletonButtonCls:i,skeletonInputCls:o,skeletonImageCls:l,controlHeight:s,controlHeightLG:u,controlHeightSM:c,gradientFromColor:d,padding:f,marginSM:h,borderRadius:p,titleHeight:v,blockRadius:g,paragraphLiHeight:y,controlHeightXS:b,paragraphMarginTop:x}=e;return{[t]:{display:\"table\",width:\"100%\",[`${t}-header`]:{display:\"table-cell\",paddingInlineEnd:f,verticalAlign:\"top\",[r]:Object.assign({display:\"inline-block\",verticalAlign:\"top\",background:d},y0(s)),[`${r}-circle`]:{borderRadius:\"50%\"},[`${r}-lg`]:Object.assign({},y0(u)),[`${r}-sm`]:Object.assign({},y0(c))},[`${t}-content`]:{display:\"table-cell\",width:\"100%\",verticalAlign:\"top\",[n]:{width:\"100%\",height:v,background:d,borderRadius:g,[`+ ${a}`]:{marginBlockStart:c}},[a]:{padding:0,\"> li\":{width:\"100%\",height:y,listStyle:\"none\",background:d,borderRadius:g,\"+ li\":{marginBlockStart:b}}},[`${a}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:\"61%\"}},[`&-round ${t}-content`]:{[`${n}, ${a} > li`]:{borderRadius:p}}},[`${t}-with-avatar ${t}-content`]:{[n]:{marginBlockStart:h,[`+ ${a}`]:{marginBlockStart:x}}},[`${t}${t}-element`]:Object.assign(Object.assign(Object.assign(Object.assign({display:\"inline-block\",width:\"auto\"},i6e(e)),r6e(e)),n6e(e)),a6e(e)),[`${t}${t}-block`]:{width:\"100%\",[i]:{width:\"100%\"},[o]:{width:\"100%\"}},[`${t}${t}-active`]:{[`\n ${n},\n ${a} > li,\n ${r},\n ${i},\n ${o},\n ${l}\n `]:Object.assign({},t6e(e))}}},l6e=e=>{const{colorFillContent:t,colorFill:r}=e,n=t,a=r;return{color:n,colorGradientEnd:a,gradientFromColor:n,gradientToColor:a,titleHeight:e.controlHeight/2,blockRadius:e.borderRadiusSM,paragraphMarginTop:e.marginLG+e.marginXXS,paragraphLiHeight:e.controlHeight/2}},wg=kr(\"Skeleton\",e=>{const{componentCls:t,calc:r}=e,n=Sr(e,{skeletonAvatarCls:`${t}-avatar`,skeletonTitleCls:`${t}-title`,skeletonParagraphCls:`${t}-paragraph`,skeletonButtonCls:`${t}-button`,skeletonInputCls:`${t}-input`,skeletonImageCls:`${t}-image`,imageSizeBase:r(e.controlHeight).mul(1.5).equal(),borderRadius:100,skeletonLoadingBackground:`linear-gradient(90deg, ${e.gradientFromColor} 25%, ${e.gradientToColor} 37%, ${e.gradientFromColor} 63%)`,skeletonLoadingMotionDuration:\"1.4s\"});return o6e(n)},l6e,{deprecatedTokens:[[\"color\",\"gradientFromColor\"],[\"colorGradientEnd\",\"gradientToColor\"]]}),s6e=e=>{const{prefixCls:t,className:r,rootClassName:n,active:a,shape:i=\"circle\",size:o=\"default\"}=e,{getPrefixCls:l}=m.useContext(Ot),s=l(\"skeleton\",t),[u,c,d]=wg(s),f=wn(e,[\"prefixCls\",\"className\"]),h=ne(s,`${s}-element`,{[`${s}-active`]:a},r,n,c,d);return u(m.createElement(\"div\",{className:h},m.createElement(m6,Object.assign({prefixCls:`${s}-avatar`,shape:i,size:o},f))))},u6e=e=>{const{prefixCls:t,className:r,rootClassName:n,active:a,block:i=!1,size:o=\"default\"}=e,{getPrefixCls:l}=m.useContext(Ot),s=l(\"skeleton\",t),[u,c,d]=wg(s),f=wn(e,[\"prefixCls\"]),h=ne(s,`${s}-element`,{[`${s}-active`]:a,[`${s}-block`]:i},r,n,c,d);return u(m.createElement(\"div\",{className:h},m.createElement(m6,Object.assign({prefixCls:`${s}-button`,size:o},f))))},c6e=\"M365.714286 329.142857q0 45.714286-32.036571 77.677714t-77.677714 32.036571-77.677714-32.036571-32.036571-77.677714 32.036571-77.677714 77.677714-32.036571 77.677714 32.036571 32.036571 77.677714zM950.857143 548.571429l0 256-804.571429 0 0-109.714286 182.857143-182.857143 91.428571 91.428571 292.571429-292.571429zM1005.714286 146.285714l-914.285714 0q-7.460571 0-12.873143 5.412571t-5.412571 12.873143l0 694.857143q0 7.460571 5.412571 12.873143t12.873143 5.412571l914.285714 0q7.460571 0 12.873143-5.412571t5.412571-12.873143l0-694.857143q0-7.460571-5.412571-12.873143t-12.873143-5.412571zM1097.142857 164.571429l0 694.857143q0 37.741714-26.843429 64.585143t-64.585143 26.843429l-914.285714 0q-37.741714 0-64.585143-26.843429t-26.843429-64.585143l0-694.857143q0-37.741714 26.843429-64.585143t64.585143-26.843429l914.285714 0q37.741714 0 64.585143 26.843429t26.843429 64.585143z\",d6e=e=>{const{prefixCls:t,className:r,rootClassName:n,style:a,active:i}=e,{getPrefixCls:o}=m.useContext(Ot),l=o(\"skeleton\",t),[s,u,c]=wg(l),d=ne(l,`${l}-element`,{[`${l}-active`]:i},r,n,u,c);return s(m.createElement(\"div\",{className:d},m.createElement(\"div\",{className:ne(`${l}-image`,r),style:a},m.createElement(\"svg\",{viewBox:\"0 0 1098 1024\",xmlns:\"http://www.w3.org/2000/svg\",className:`${l}-image-svg`},m.createElement(\"title\",null,\"Image placeholder\"),m.createElement(\"path\",{d:c6e,className:`${l}-image-path`})))))},f6e=e=>{const{prefixCls:t,className:r,rootClassName:n,active:a,block:i,size:o=\"default\"}=e,{getPrefixCls:l}=m.useContext(Ot),s=l(\"skeleton\",t),[u,c,d]=wg(s),f=wn(e,[\"prefixCls\"]),h=ne(s,`${s}-element`,{[`${s}-active`]:a,[`${s}-block`]:i},r,n,c,d);return u(m.createElement(\"div\",{className:h},m.createElement(m6,Object.assign({prefixCls:`${s}-input`,size:o},f))))},h6e=e=>{const{prefixCls:t,className:r,rootClassName:n,style:a,active:i,children:o}=e,{getPrefixCls:l}=m.useContext(Ot),s=l(\"skeleton\",t),[u,c,d]=wg(s),f=ne(s,`${s}-element`,{[`${s}-active`]:i},c,r,n,d);return u(m.createElement(\"div\",{className:f},m.createElement(\"div\",{className:ne(`${s}-image`,r),style:a},o)))},p6e=(e,t)=>{const{width:r,rows:n=2}=t;if(Array.isArray(r))return r[e];if(n-1===e)return r},m6e=e=>{const{prefixCls:t,className:r,style:n,rows:a=0}=e,i=Array.from({length:a}).map((o,l)=>m.createElement(\"li\",{key:l,style:{width:p6e(l,e)}}));return m.createElement(\"ul\",{className:ne(t,r),style:n},i)},v6e=({prefixCls:e,className:t,width:r,style:n})=>m.createElement(\"h3\",{className:ne(e,t),style:Object.assign({width:r},n)});function R_(e){return e&&typeof e==\"object\"?e:{}}function g6e(e,t){return e&&!t?{size:\"large\",shape:\"square\"}:{size:\"large\",shape:\"circle\"}}function y6e(e,t){return!e&&t?{width:\"38%\"}:e&&t?{width:\"50%\"}:{}}function b6e(e,t){const r={};return(!e||!t)&&(r.width=\"61%\"),!e&&t?r.rows=3:r.rows=2,r}const Cd=e=>{const{prefixCls:t,loading:r,className:n,rootClassName:a,style:i,children:o,avatar:l=!1,title:s=!0,paragraph:u=!0,active:c,round:d}=e,{getPrefixCls:f,direction:h,className:p,style:v}=na(\"skeleton\"),g=f(\"skeleton\",t),[y,b,x]=wg(g);if(r||!(\"loading\"in e)){const F=!!l,S=!!s,E=!!u;let w;if(F){const _=Object.assign(Object.assign({prefixCls:`${g}-avatar`},g6e(S,E)),R_(l));w=m.createElement(\"div\",{className:`${g}-header`},m.createElement(m6,Object.assign({},_)))}let D;if(S||E){let _;if(S){const M=Object.assign(Object.assign({prefixCls:`${g}-title`},y6e(F,E)),R_(s));_=m.createElement(v6e,Object.assign({},M))}let I;if(E){const M=Object.assign(Object.assign({prefixCls:`${g}-paragraph`},b6e(F,S)),R_(u));I=m.createElement(m6e,Object.assign({},M))}D=m.createElement(\"div\",{className:`${g}-content`},_,I)}const A=ne(g,{[`${g}-with-avatar`]:F,[`${g}-active`]:c,[`${g}-rtl`]:h===\"rtl\",[`${g}-round`]:d},p,n,a,b,x);return y(m.createElement(\"div\",{className:A,style:Object.assign(Object.assign({},v),i)},w,D))}return o??null};Cd.Button=u6e;Cd.Avatar=s6e;Cd.Input=f6e;Cd.Image=d6e;Cd.Node=h6e;function Qz(){}const x6e=m.createContext({add:Qz,remove:Qz});function Nae(e){const t=m.useContext(x6e),r=m.useRef(null);return Pr(a=>{if(a){const i=e?a.querySelector(e):a;i&&(t.add(i),r.current=i)}else t.remove(r.current)})}const eH=()=>{const{cancelButtonProps:e,cancelTextLocale:t,onCancel:r}=m.useContext(dx);return le.createElement(ze,Object.assign({onClick:r},e),t)},tH=()=>{const{confirmLoading:e,okButtonProps:t,okType:r,okTextLocale:n,onOk:a}=m.useContext(dx);return le.createElement(ze,Object.assign({},j7(r),{loading:e,onClick:a},t),n)};function $ae(e,t){return le.createElement(\"span\",{className:`${e}-close-x`},t||le.createElement(wu,{className:`${e}-close-icon`}))}const Lae=e=>{const{okText:t,okType:r=\"primary\",cancelText:n,confirmLoading:a,onOk:i,onCancel:o,okButtonProps:l,cancelButtonProps:s,footer:u}=e,[c]=Jo(\"Modal\",xne()),d=t||(c==null?void 0:c.okText),f=n||(c==null?void 0:c.cancelText),h=le.useMemo(()=>({confirmLoading:a,okButtonProps:l,cancelButtonProps:s,okTextLocale:d,cancelTextLocale:f,okType:r,onOk:i,onCancel:o}),[a,l,s,d,f,r,i,o]);let p;return typeof u==\"function\"||typeof u>\"u\"?(p=le.createElement(le.Fragment,null,le.createElement(eH,null),le.createElement(tH,null)),typeof u==\"function\"&&(p=u(p,{OkBtn:tH,CancelBtn:eH})),p=le.createElement(bae,{value:h},p)):p=u,le.createElement(T7,{disabled:!1},p)},C6e=e=>{const{componentCls:t}=e;return{[t]:{display:\"flex\",flexFlow:\"row wrap\",minWidth:0,\"&::before, &::after\":{display:\"flex\"},\"&-no-wrap\":{flexWrap:\"nowrap\"},\"&-start\":{justifyContent:\"flex-start\"},\"&-center\":{justifyContent:\"center\"},\"&-end\":{justifyContent:\"flex-end\"},\"&-space-between\":{justifyContent:\"space-between\"},\"&-space-around\":{justifyContent:\"space-around\"},\"&-space-evenly\":{justifyContent:\"space-evenly\"},\"&-top\":{alignItems:\"flex-start\"},\"&-middle\":{alignItems:\"center\"},\"&-bottom\":{alignItems:\"flex-end\"}}}},F6e=e=>{const{componentCls:t}=e;return{[t]:{position:\"relative\",maxWidth:\"100%\",minHeight:1}}},S6e=(e,t)=>{const{prefixCls:r,componentCls:n,gridColumns:a}=e,i={};for(let o=a;o>=0;o--)o===0?(i[`${n}${t}-${o}`]={display:\"none\"},i[`${n}-push-${o}`]={insetInlineStart:\"auto\"},i[`${n}-pull-${o}`]={insetInlineEnd:\"auto\"},i[`${n}${t}-push-${o}`]={insetInlineStart:\"auto\"},i[`${n}${t}-pull-${o}`]={insetInlineEnd:\"auto\"},i[`${n}${t}-offset-${o}`]={marginInlineStart:0},i[`${n}${t}-order-${o}`]={order:0}):(i[`${n}${t}-${o}`]=[{\"--ant-display\":\"block\",display:\"block\"},{display:\"var(--ant-display)\",flex:`0 0 ${o/a*100}%`,maxWidth:`${o/a*100}%`}],i[`${n}${t}-push-${o}`]={insetInlineStart:`${o/a*100}%`},i[`${n}${t}-pull-${o}`]={insetInlineEnd:`${o/a*100}%`},i[`${n}${t}-offset-${o}`]={marginInlineStart:`${o/a*100}%`},i[`${n}${t}-order-${o}`]={order:o});return i[`${n}${t}-flex`]={flex:`var(--${r}${t}-flex)`},i},yR=(e,t)=>S6e(e,t),w6e=(e,t,r)=>({[`@media (min-width: ${re(t)})`]:Object.assign({},yR(e,r))}),E6e=()=>({}),D6e=()=>({}),A6e=kr(\"Grid\",C6e,E6e),jae=e=>({xs:e.screenXSMin,sm:e.screenSMMin,md:e.screenMDMin,lg:e.screenLGMin,xl:e.screenXLMin,xxl:e.screenXXLMin}),_6e=kr(\"Grid\",e=>{const t=Sr(e,{gridColumns:24}),r=jae(t);return delete r.xs,[F6e(t),yR(t,\"\"),yR(t,\"-xs\"),Object.keys(r).map(n=>w6e(t,r[n],`-${n}`)).reduce((n,a)=>Object.assign(Object.assign({},n),a),{})]},D6e);function rH(e){return{position:e,inset:0}}const zae=e=>{const{componentCls:t,antCls:r}=e;return[{[`${t}-root`]:{[`${t}${r}-zoom-enter, ${t}${r}-zoom-appear`]:{transform:\"none\",opacity:0,animationDuration:e.motionDurationSlow,userSelect:\"none\"},[`${t}${r}-zoom-leave ${t}-content`]:{pointerEvents:\"none\"},[`${t}-mask`]:Object.assign(Object.assign({},rH(\"fixed\")),{zIndex:e.zIndexPopupBase,height:\"100%\",backgroundColor:e.colorBgMask,pointerEvents:\"none\",[`${t}-hidden`]:{display:\"none\"}}),[`${t}-wrap`]:Object.assign(Object.assign({},rH(\"fixed\")),{zIndex:e.zIndexPopupBase,overflow:\"auto\",outline:0,WebkitOverflowScrolling:\"touch\"})}},{[`${t}-root`]:H7(e)}]},T6e=e=>{const{componentCls:t}=e;return[{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:\"rtl\"},[`${t}-centered`]:{textAlign:\"center\",\"&::before\":{display:\"inline-block\",width:0,height:\"100%\",verticalAlign:\"middle\",content:'\"\"'},[t]:{top:0,display:\"inline-block\",paddingBottom:0,textAlign:\"start\",verticalAlign:\"middle\"}},[`@media (max-width: ${e.screenSMMax}px)`]:{[t]:{maxWidth:\"calc(100vw - 16px)\",margin:`${re(e.marginXS)} auto`},[`${t}-centered`]:{[t]:{flex:1}}}}},{[t]:Object.assign(Object.assign({},Hr(e)),{pointerEvents:\"none\",position:\"relative\",top:100,width:\"auto\",maxWidth:`calc(100vw - ${re(e.calc(e.margin).mul(2).equal())})`,margin:\"0 auto\",paddingBottom:e.paddingLG,[`${t}-title`]:{margin:0,color:e.titleColor,fontWeight:e.fontWeightStrong,fontSize:e.titleFontSize,lineHeight:e.titleLineHeight,wordWrap:\"break-word\"},[`${t}-content`]:{position:\"relative\",backgroundColor:e.contentBg,backgroundClip:\"padding-box\",border:0,borderRadius:e.borderRadiusLG,boxShadow:e.boxShadow,pointerEvents:\"auto\",padding:e.contentPadding},[`${t}-close`]:Object.assign({position:\"absolute\",top:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),insetInlineEnd:e.calc(e.modalHeaderHeight).sub(e.modalCloseBtnSize).div(2).equal(),zIndex:e.calc(e.zIndexPopupBase).add(10).equal(),padding:0,color:e.modalCloseIconColor,fontWeight:e.fontWeightStrong,lineHeight:1,textDecoration:\"none\",background:\"transparent\",borderRadius:e.borderRadiusSM,width:e.modalCloseBtnSize,height:e.modalCloseBtnSize,border:0,outline:0,cursor:\"pointer\",transition:`color ${e.motionDurationMid}, background-color ${e.motionDurationMid}`,\"&-x\":{display:\"flex\",fontSize:e.fontSizeLG,fontStyle:\"normal\",lineHeight:re(e.modalCloseBtnSize),justifyContent:\"center\",textTransform:\"none\",textRendering:\"auto\"},\"&:disabled\":{pointerEvents:\"none\"},\"&:hover\":{color:e.modalCloseIconHoverColor,backgroundColor:e.colorBgTextHover,textDecoration:\"none\"},\"&:active\":{backgroundColor:e.colorBgTextActive}},pl(e)),[`${t}-header`]:{color:e.colorText,background:e.headerBg,borderRadius:`${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)} 0 0`,marginBottom:e.headerMarginBottom,padding:e.headerPadding,borderBottom:e.headerBorderBottom},[`${t}-body`]:{fontSize:e.fontSize,lineHeight:e.lineHeight,wordWrap:\"break-word\",padding:e.bodyPadding,[`${t}-body-skeleton`]:{width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",margin:`${re(e.margin)} auto`}},[`${t}-footer`]:{textAlign:\"end\",background:e.footerBg,marginTop:e.footerMarginTop,padding:e.footerPadding,borderTop:e.footerBorderTop,borderRadius:e.footerBorderRadius,[`> ${e.antCls}-btn + ${e.antCls}-btn`]:{marginInlineStart:e.marginXS}},[`${t}-open`]:{overflow:\"hidden\"}})},{[`${t}-pure-panel`]:{top:\"auto\",padding:0,display:\"flex\",flexDirection:\"column\",[`${t}-content,\n ${t}-body,\n ${t}-confirm-body-wrapper`]:{display:\"flex\",flexDirection:\"column\",flex:\"auto\"},[`${t}-confirm-body`]:{marginBottom:\"auto\"}}}]},I6e=e=>{const{componentCls:t}=e;return{[`${t}-root`]:{[`${t}-wrap-rtl`]:{direction:\"rtl\",[`${t}-confirm-body`]:{direction:\"rtl\"}}}}},k6e=e=>{const{componentCls:t}=e,r=jae(e),n=Object.assign({},r);delete n.xs;const a=`--${t.replace(\".\",\"\")}-`,i=Object.keys(n).map(o=>({[`@media (min-width: ${re(n[o])})`]:{width:`var(${a}${o}-width)`}}));return{[`${t}-root`]:{[t]:[].concat(He(Object.keys(r).map((o,l)=>{const s=Object.keys(r)[l-1];return s?{[`${a}${o}-width`]:`var(${a}${s}-width)`}:null})),[{width:`var(${a}xs-width)`}],He(i))}}},Hae=e=>{const t=e.padding,r=e.fontSizeHeading5,n=e.lineHeightHeading5;return Sr(e,{modalHeaderHeight:e.calc(e.calc(n).mul(r).equal()).add(e.calc(t).mul(2).equal()).equal(),modalFooterBorderColorSplit:e.colorSplit,modalFooterBorderStyle:e.lineType,modalFooterBorderWidth:e.lineWidth,modalCloseIconColor:e.colorIcon,modalCloseIconHoverColor:e.colorIconHover,modalCloseBtnSize:e.controlHeight,modalConfirmIconSize:e.fontHeight,modalTitleHeight:e.calc(e.titleFontSize).mul(e.titleLineHeight).equal()})},Vae=e=>({footerBg:\"transparent\",headerBg:e.colorBgElevated,titleLineHeight:e.lineHeightHeading5,titleFontSize:e.fontSizeHeading5,contentBg:e.colorBgElevated,titleColor:e.colorTextHeading,contentPadding:e.wireframe?0:`${re(e.paddingMD)} ${re(e.paddingContentHorizontalLG)}`,headerPadding:e.wireframe?`${re(e.padding)} ${re(e.paddingLG)}`:0,headerBorderBottom:e.wireframe?`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:\"none\",headerMarginBottom:e.wireframe?0:e.marginXS,bodyPadding:e.wireframe?e.paddingLG:0,footerPadding:e.wireframe?`${re(e.paddingXS)} ${re(e.padding)}`:0,footerBorderTop:e.wireframe?`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`:\"none\",footerBorderRadius:e.wireframe?`0 0 ${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)}`:0,footerMarginTop:e.wireframe?0:e.marginSM,confirmBodyPadding:e.wireframe?`${re(e.padding*2)} ${re(e.padding*2)} ${re(e.paddingLG)}`:0,confirmIconMarginInlineEnd:e.wireframe?e.margin:e.marginSM,confirmBtnsMarginTop:e.wireframe?e.marginLG:e.marginSM}),Wae=kr(\"Modal\",e=>{const t=Hae(e);return[T6e(t),I6e(t),zae(t),Cg(t,\"zoom\"),k6e(t)]},Vae,{unitless:{titleLineHeight:!0}});var R6e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};let bR;const M6e=e=>{bR={x:e.pageX,y:e.pageY},setTimeout(()=>{bR=null},100)};Q4e()&&document.documentElement.addEventListener(\"click\",M6e,!0);const Gae=e=>{const{prefixCls:t,className:r,rootClassName:n,open:a,wrapClassName:i,centered:o,getContainer:l,focusTriggerAfterClose:s=!0,style:u,visible:c,width:d=520,footer:f,classNames:h,styles:p,children:v,loading:g,confirmLoading:y,zIndex:b,mousePosition:x,onOk:F,onCancel:S,destroyOnHidden:E,destroyOnClose:w,panelRef:D=null,modalRender:A}=e,_=R6e(e,[\"prefixCls\",\"className\",\"rootClassName\",\"open\",\"wrapClassName\",\"centered\",\"getContainer\",\"focusTriggerAfterClose\",\"style\",\"visible\",\"width\",\"footer\",\"classNames\",\"styles\",\"children\",\"loading\",\"confirmLoading\",\"zIndex\",\"mousePosition\",\"onOk\",\"onCancel\",\"destroyOnHidden\",\"destroyOnClose\",\"panelRef\",\"modalRender\"]),{getPopupContainer:I,getPrefixCls:M,direction:T,modal:k}=m.useContext(Ot),R=xe=>{y||S==null||S(xe)},P=xe=>{F==null||F(xe)},B=M(\"modal\",t),N=M(),O=Zn(B),[z,W,L]=Wae(B,O),j=ne(i,{[`${B}-centered`]:o??(k==null?void 0:k.centered),[`${B}-wrap-rtl`]:T===\"rtl\"}),H=f!==null&&!g?m.createElement(Lae,Object.assign({},e,{onOk:P,onCancel:R})):null,[V,U,Q,K]=P7(U0(e),U0(k),{closable:!0,closeIcon:m.createElement(wu,{className:`${B}-close-icon`}),closeIconRender:xe=>$ae(B,xe)}),Y=A?xe=>m.createElement(\"div\",{className:`${B}-render`},A(xe)):void 0,ee=`.${B}-${A?\"render\":\"content\"}`,J=Nae(ee),X=Qa(D,J),[ce,oe]=xc(\"Modal\",b),[ue,ie]=m.useMemo(()=>d&&typeof d==\"object\"?[void 0,d]:[d,void 0],[d]),fe=m.useMemo(()=>{const xe={};return ie&&Object.keys(ie).forEach(Ee=>{const De=ie[Ee];De!==void 0&&(xe[`--${B}-${Ee}-width`]=typeof De==\"number\"?`${De}px`:De)}),xe},[B,ie]);return z(m.createElement(gu,{form:!0,space:!0},m.createElement(lx.Provider,{value:oe},m.createElement(U7,Object.assign({width:ue},_,{zIndex:ce,getContainer:l===void 0?I:l,prefixCls:B,rootClassName:ne(W,n,L,O),footer:H,visible:a??c,mousePosition:x??bR,onClose:R,closable:V&&Object.assign({disabled:Q,closeIcon:U},K),closeIcon:U,focusTriggerAfterClose:s,transitionName:ml(N,\"zoom\",e.transitionName),maskTransitionName:ml(N,\"fade\",e.maskTransitionName),className:ne(W,r,k==null?void 0:k.className),style:Object.assign(Object.assign(Object.assign({},k==null?void 0:k.style),u),fe),classNames:Object.assign(Object.assign(Object.assign({},k==null?void 0:k.classNames),h),{wrapper:ne(j,h==null?void 0:h.wrapper)}),styles:Object.assign(Object.assign({},k==null?void 0:k.styles),p),panelRef:X,destroyOnClose:E??w,modalRender:Y}),g?m.createElement(Cd,{active:!0,title:!1,paragraph:{rows:4},className:`${B}-body-skeleton`}):v))))},P6e=e=>{const{componentCls:t,titleFontSize:r,titleLineHeight:n,modalConfirmIconSize:a,fontSize:i,lineHeight:o,modalTitleHeight:l,fontHeight:s,confirmBodyPadding:u}=e,c=`${t}-confirm`;return{[c]:{\"&-rtl\":{direction:\"rtl\"},[`${e.antCls}-modal-header`]:{display:\"none\"},[`${c}-body-wrapper`]:Object.assign({},sc()),[`&${t} ${t}-body`]:{padding:u},[`${c}-body`]:{display:\"flex\",flexWrap:\"nowrap\",alignItems:\"start\",[`> ${e.iconCls}`]:{flex:\"none\",fontSize:a,marginInlineEnd:e.confirmIconMarginInlineEnd,marginTop:e.calc(e.calc(s).sub(a).equal()).div(2).equal()},[`&-has-title > ${e.iconCls}`]:{marginTop:e.calc(e.calc(l).sub(a).equal()).div(2).equal()}},[`${c}-paragraph`]:{display:\"flex\",flexDirection:\"column\",flex:\"auto\",rowGap:e.marginXS,maxWidth:`calc(100% - ${re(e.marginSM)})`},[`${e.iconCls} + ${c}-paragraph`]:{maxWidth:`calc(100% - ${re(e.calc(e.modalConfirmIconSize).add(e.marginSM).equal())})`},[`${c}-title`]:{color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:r,lineHeight:n},[`${c}-content`]:{color:e.colorText,fontSize:i,lineHeight:o},[`${c}-btns`]:{textAlign:\"end\",marginTop:e.confirmBtnsMarginTop,[`${e.antCls}-btn + ${e.antCls}-btn`]:{marginBottom:0,marginInlineStart:e.marginXS}}},[`${c}-error ${c}-body > ${e.iconCls}`]:{color:e.colorError},[`${c}-warning ${c}-body > ${e.iconCls},\n ${c}-confirm ${c}-body > ${e.iconCls}`]:{color:e.colorWarning},[`${c}-info ${c}-body > ${e.iconCls}`]:{color:e.colorInfo},[`${c}-success ${c}-body > ${e.iconCls}`]:{color:e.colorSuccess}}},O6e=yg([\"Modal\",\"confirm\"],e=>{const t=Hae(e);return P6e(t)},Vae,{order:-1e3});var B6e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Uae=e=>{const{prefixCls:t,icon:r,okText:n,cancelText:a,confirmPrefixCls:i,type:o,okCancel:l,footer:s,locale:u}=e,c=B6e(e,[\"prefixCls\",\"icon\",\"okText\",\"cancelText\",\"confirmPrefixCls\",\"type\",\"okCancel\",\"footer\",\"locale\"]);let d=r;if(!r&&r!==null)switch(o){case\"info\":d=m.createElement(G0,null);break;case\"success\":d=m.createElement(mm,null);break;case\"error\":d=m.createElement(xd,null);break;default:d=m.createElement(nh,null)}const f=l??o===\"confirm\",h=e.autoFocusButton===null?!1:e.autoFocusButton||\"ok\",[p]=Jo(\"Modal\"),v=u||p,g=n||(f?v==null?void 0:v.okText:v==null?void 0:v.justOkText),y=a||(v==null?void 0:v.cancelText),b=m.useMemo(()=>Object.assign({autoFocusButton:h,cancelTextLocale:y,okTextLocale:g,mergedOkCancel:f},c),[h,y,g,f,c]),x=m.createElement(m.Fragment,null,m.createElement(Mz,null),m.createElement(Pz,null)),F=e.title!==void 0&&e.title!==null,S=`${i}-body`;return m.createElement(\"div\",{className:`${i}-body-wrapper`},m.createElement(\"div\",{className:ne(S,{[`${S}-has-title`]:F})},d,m.createElement(\"div\",{className:`${i}-paragraph`},F&&m.createElement(\"span\",{className:`${i}-title`},e.title),m.createElement(\"div\",{className:`${i}-content`},e.content))),s===void 0||typeof s==\"function\"?m.createElement(bae,{value:b},m.createElement(\"div\",{className:`${i}-btns`},typeof s==\"function\"?s(x,{OkBtn:Pz,CancelBtn:Mz}):x)):s,m.createElement(O6e,{prefixCls:t}))},N6e=e=>{const{close:t,zIndex:r,maskStyle:n,direction:a,prefixCls:i,wrapClassName:o,rootPrefixCls:l,bodyStyle:s,closable:u=!1,onConfirm:c,styles:d,title:f}=e,h=`${i}-confirm`,p=e.width||416,v=e.style||{},g=e.mask===void 0?!0:e.mask,y=e.maskClosable===void 0?!1:e.maskClosable,b=ne(h,`${h}-${e.type}`,{[`${h}-rtl`]:a===\"rtl\"},e.className),[,x]=Mi(),F=m.useMemo(()=>r!==void 0?r:x.zIndexPopupBase+B7,[r,x]);return m.createElement(Gae,Object.assign({},e,{className:b,wrapClassName:ne({[`${h}-centered`]:!!e.centered},o),onCancel:()=>{t==null||t({triggerCancel:!0}),c==null||c(!1)},title:f,footer:null,transitionName:ml(l||\"\",\"zoom\",e.transitionName),maskTransitionName:ml(l||\"\",\"fade\",e.maskTransitionName),mask:g,maskClosable:y,style:v,styles:Object.assign({body:s,mask:n},d),width:p,zIndex:F,closable:u}),m.createElement(Uae,Object.assign({},e,{confirmPrefixCls:h})))},Kae=e=>{const{rootPrefixCls:t,iconPrefixCls:r,direction:n,theme:a}=e;return m.createElement(Is,{prefixCls:t,iconPrefixCls:r,direction:n,theme:a},m.createElement(N6e,Object.assign({},e)))},sp=[];let Yae=\"\";function qae(){return Yae}const $6e=e=>{var t,r;const{prefixCls:n,getContainer:a,direction:i}=e,o=xne(),l=m.useContext(Ot),s=qae()||l.getPrefixCls(),u=n||`${s}-modal`;let c=a;return c===!1&&(c=void 0),le.createElement(Kae,Object.assign({},e,{rootPrefixCls:s,prefixCls:u,iconPrefixCls:l.iconPrefixCls,theme:l.theme,direction:i??l.direction,locale:(r=(t=l.locale)===null||t===void 0?void 0:t.Modal)!==null&&r!==void 0?r:o,getContainer:c}))};function mx(e){const t=Une(),r=document.createDocumentFragment();let n=Object.assign(Object.assign({},e),{close:s,open:!0}),a,i;function o(...c){var d;if(c.some(p=>p==null?void 0:p.triggerCancel)){var h;(d=e.onCancel)===null||d===void 0||(h=d).call.apply(h,[e,()=>{}].concat(He(c.slice(1))))}for(let p=0;p<sp.length;p++)if(sp[p]===s){sp.splice(p,1);break}i()}const l=c=>{clearTimeout(a),a=setTimeout(()=>{const d=t.getPrefixCls(void 0,qae()),f=t.getIconPrefixCls(),h=t.getTheme(),p=le.createElement($6e,Object.assign({},c));i=L7()(le.createElement(Is,{prefixCls:d,iconPrefixCls:f,theme:h},typeof t.holderRender==\"function\"?t.holderRender(p):p),r)})};function s(...c){n=Object.assign(Object.assign({},n),{open:!1,afterClose:()=>{typeof e.afterClose==\"function\"&&e.afterClose(),o.apply(this,c)}}),n.visible&&delete n.visible,l(n)}function u(c){typeof c==\"function\"?n=c(n):n=Object.assign(Object.assign({},n),c),l(n)}return l(n),sp.push(s),{destroy:s,update:u}}function Xae(e){return Object.assign(Object.assign({},e),{type:\"warning\"})}function Jae(e){return Object.assign(Object.assign({},e),{type:\"info\"})}function Zae(e){return Object.assign(Object.assign({},e),{type:\"success\"})}function Qae(e){return Object.assign(Object.assign({},e),{type:\"error\"})}function eie(e){return Object.assign(Object.assign({},e),{type:\"confirm\"})}function L6e({rootPrefixCls:e}){Yae=e}var j6e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const z6e=(e,t)=>{var r,{afterClose:n,config:a}=e,i=j6e(e,[\"afterClose\",\"config\"]);const[o,l]=m.useState(!0),[s,u]=m.useState(a),{direction:c,getPrefixCls:d}=m.useContext(Ot),f=d(\"modal\"),h=d(),p=()=>{var b;n(),(b=s.afterClose)===null||b===void 0||b.call(s)},v=(...b)=>{var x;if(l(!1),b.some(E=>E==null?void 0:E.triggerCancel)){var S;(x=s.onCancel)===null||x===void 0||(S=x).call.apply(S,[s,()=>{}].concat(He(b.slice(1))))}};m.useImperativeHandle(t,()=>({destroy:v,update:b=>{u(x=>{const F=typeof b==\"function\"?b(x):b;return Object.assign(Object.assign({},x),F)})}}));const g=(r=s.okCancel)!==null&&r!==void 0?r:s.type===\"confirm\",[y]=Jo(\"Modal\",ws.Modal);return m.createElement(Kae,Object.assign({prefixCls:f,rootPrefixCls:h},s,{close:v,open:o,afterClose:p,okText:s.okText||(g?y==null?void 0:y.okText:y==null?void 0:y.justOkText),direction:s.direction||c,cancelText:s.cancelText||(y==null?void 0:y.cancelText)},i))},H6e=m.forwardRef(z6e);let nH=0;const V6e=m.memo(m.forwardRef((e,t)=>{const[r,n]=Swe();return m.useImperativeHandle(t,()=>({patchElement:n}),[n]),m.createElement(m.Fragment,null,r)}));function tie(){const e=m.useRef(null),[t,r]=m.useState([]);m.useEffect(()=>{t.length&&(He(t).forEach(o=>{o()}),r([]))},[t]);const n=m.useCallback(i=>function(l){var s;nH+=1;const u=m.createRef();let c;const d=new Promise(g=>{c=g});let f=!1,h;const p=m.createElement(H6e,{key:`modal-${nH}`,config:i(l),ref:u,afterClose:()=>{h==null||h()},isSilent:()=>f,onConfirm:g=>{c(g)}});return h=(s=e.current)===null||s===void 0?void 0:s.patchElement(p),h&&sp.push(h),{destroy:()=>{function g(){var y;(y=u.current)===null||y===void 0||y.destroy()}u.current?g():r(y=>[].concat(He(y),[g]))},update:g=>{function y(){var b;(b=u.current)===null||b===void 0||b.update(g)}u.current?y():r(b=>[].concat(He(b),[y]))},then:g=>(f=!0,d.then(g))}},[]);return[m.useMemo(()=>({info:n(Jae),success:n(Zae),error:n(Qae),warning:n(Xae),confirm:n(eie)}),[n]),m.createElement(V6e,{key:\"modal-holder\",ref:e})]}const W6e=e=>{const{componentCls:t,notificationMarginEdge:r,animationMaxHeight:n}=e,a=`${t}-notice`,i=new Br(\"antNotificationFadeIn\",{\"0%\":{transform:\"translate3d(100%, 0, 0)\",opacity:0},\"100%\":{transform:\"translate3d(0, 0, 0)\",opacity:1}}),o=new Br(\"antNotificationTopFadeIn\",{\"0%\":{top:-n,opacity:0},\"100%\":{top:0,opacity:1}}),l=new Br(\"antNotificationBottomFadeIn\",{\"0%\":{bottom:e.calc(n).mul(-1).equal(),opacity:0},\"100%\":{bottom:0,opacity:1}}),s=new Br(\"antNotificationLeftFadeIn\",{\"0%\":{transform:\"translate3d(-100%, 0, 0)\",opacity:0},\"100%\":{transform:\"translate3d(0, 0, 0)\",opacity:1}});return{[t]:{[`&${t}-top, &${t}-bottom`]:{marginInline:0,[a]:{marginInline:\"auto auto\"}},[`&${t}-top`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:o}},[`&${t}-bottom`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:l}},[`&${t}-topRight, &${t}-bottomRight`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:i}},[`&${t}-topLeft, &${t}-bottomLeft`]:{marginRight:{value:0,_skip_check_:!0},marginLeft:{value:r,_skip_check_:!0},[a]:{marginInlineEnd:\"auto\",marginInlineStart:0},[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:s}}}}},G6e=[\"top\",\"topLeft\",\"topRight\",\"bottom\",\"bottomLeft\",\"bottomRight\"],U6e={topLeft:\"left\",topRight:\"right\",bottomLeft:\"left\",bottomRight:\"right\",top:\"left\",bottom:\"left\"},K6e=(e,t)=>{const{componentCls:r}=e;return{[`${r}-${t}`]:{[`&${r}-stack > ${r}-notice-wrapper`]:{[t.startsWith(\"top\")?\"top\":\"bottom\"]:0,[U6e[t]]:{value:0,_skip_check_:!0}}}}},Y6e=e=>{const t={};for(let r=1;r<e.notificationStackLayer;r++)t[`&:nth-last-child(${r+1})`]={overflow:\"hidden\",[`& > ${e.componentCls}-notice`]:{opacity:0,transition:`opacity ${e.motionDurationMid}`}};return Object.assign({[`&:not(:nth-last-child(-n+${e.notificationStackLayer}))`]:{opacity:0,overflow:\"hidden\",color:\"transparent\",pointerEvents:\"none\"}},t)},q6e=e=>{const t={};for(let r=1;r<e.notificationStackLayer;r++)t[`&:nth-last-child(${r+1})`]={background:e.colorBgBlur,backdropFilter:\"blur(10px)\",\"-webkit-backdrop-filter\":\"blur(10px)\"};return Object.assign({},t)},X6e=e=>{const{componentCls:t}=e;return Object.assign({[`${t}-stack`]:{[`& > ${t}-notice-wrapper`]:Object.assign({transition:`transform ${e.motionDurationSlow}, backdrop-filter 0s`,willChange:\"transform, opacity\",position:\"absolute\"},Y6e(e))},[`${t}-stack:not(${t}-stack-expanded)`]:{[`& > ${t}-notice-wrapper`]:Object.assign({},q6e(e))},[`${t}-stack${t}-stack-expanded`]:{[`& > ${t}-notice-wrapper`]:{\"&:not(:nth-last-child(-n + 1))\":{opacity:1,overflow:\"unset\",color:\"inherit\",pointerEvents:\"auto\",[`& > ${e.componentCls}-notice`]:{opacity:1}},\"&:after\":{content:'\"\"',position:\"absolute\",height:e.margin,width:\"100%\",insetInline:0,bottom:e.calc(e.margin).mul(-1).equal(),background:\"transparent\",pointerEvents:\"auto\"}}}},G6e.map(r=>K6e(e,r)).reduce((r,n)=>Object.assign(Object.assign({},r),n),{}))},J6e=e=>{const{iconCls:t,componentCls:r,boxShadow:n,fontSizeLG:a,notificationMarginBottom:i,borderRadiusLG:o,colorSuccess:l,colorInfo:s,colorWarning:u,colorError:c,colorTextHeading:d,notificationBg:f,notificationPadding:h,notificationMarginEdge:p,notificationProgressBg:v,notificationProgressHeight:g,fontSize:y,lineHeight:b,width:x,notificationIconSize:F,colorText:S,colorSuccessBg:E,colorErrorBg:w,colorInfoBg:D,colorWarningBg:A}=e,_=`${r}-notice`;return{position:\"relative\",marginBottom:i,marginInlineStart:\"auto\",background:f,borderRadius:o,boxShadow:n,[_]:{padding:h,width:x,maxWidth:`calc(100vw - ${re(e.calc(p).mul(2).equal())})`,lineHeight:b,wordWrap:\"break-word\",borderRadius:o,overflow:\"hidden\",\"&-success\":E?{background:E}:{},\"&-error\":w?{background:w}:{},\"&-info\":D?{background:D}:{},\"&-warning\":A?{background:A}:{}},[`${_}-message`]:{color:d,fontSize:a,lineHeight:e.lineHeightLG},[`${_}-description`]:{fontSize:y,color:S,marginTop:e.marginXS},[`${_}-closable ${_}-message`]:{paddingInlineEnd:e.paddingLG},[`${_}-with-icon ${_}-message`]:{marginInlineStart:e.calc(e.marginSM).add(F).equal(),fontSize:a},[`${_}-with-icon ${_}-description`]:{marginInlineStart:e.calc(e.marginSM).add(F).equal(),fontSize:y},[`${_}-icon`]:{position:\"absolute\",fontSize:F,lineHeight:1,[`&-success${t}`]:{color:l},[`&-info${t}`]:{color:s},[`&-warning${t}`]:{color:u},[`&-error${t}`]:{color:c}},[`${_}-close`]:Object.assign({position:\"absolute\",top:e.notificationPaddingVertical,insetInlineEnd:e.notificationPaddingHorizontal,color:e.colorIcon,outline:\"none\",width:e.notificationCloseButtonSize,height:e.notificationCloseButtonSize,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"none\",border:\"none\",\"&:hover\":{color:e.colorIconHover,backgroundColor:e.colorBgTextHover},\"&:active\":{backgroundColor:e.colorBgTextActive}},pl(e)),[`${_}-progress`]:{position:\"absolute\",display:\"block\",appearance:\"none\",inlineSize:`calc(100% - ${re(o)} * 2)`,left:{_skip_check_:!0,value:o},right:{_skip_check_:!0,value:o},bottom:0,blockSize:g,border:0,\"&, &::-webkit-progress-bar\":{borderRadius:o,backgroundColor:\"rgba(0, 0, 0, 0.04)\"},\"&::-moz-progress-bar\":{background:v},\"&::-webkit-progress-value\":{borderRadius:o,background:v}},[`${_}-actions`]:{float:\"right\",marginTop:e.marginSM}}},Z6e=e=>{const{componentCls:t,notificationMarginBottom:r,notificationMarginEdge:n,motionDurationMid:a,motionEaseInOut:i}=e,o=`${t}-notice`,l=new Br(\"antNotificationFadeOut\",{\"0%\":{maxHeight:e.animationMaxHeight,marginBottom:r},\"100%\":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[t]:Object.assign(Object.assign({},Hr(e)),{position:\"fixed\",zIndex:e.zIndexPopup,marginRight:{value:n,_skip_check_:!0},[`${t}-hook-holder`]:{position:\"relative\"},[`${t}-fade-appear-prepare`]:{opacity:\"0 !important\"},[`${t}-fade-enter, ${t}-fade-appear`]:{animationDuration:e.motionDurationMid,animationTimingFunction:i,animationFillMode:\"both\",opacity:0,animationPlayState:\"paused\"},[`${t}-fade-leave`]:{animationTimingFunction:i,animationFillMode:\"both\",animationDuration:a,animationPlayState:\"paused\"},[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationPlayState:\"running\"},[`${t}-fade-leave${t}-fade-leave-active`]:{animationName:l,animationPlayState:\"running\"},\"&-rtl\":{direction:\"rtl\",[`${o}-actions`]:{float:\"left\"}}})},{[t]:{[`${o}-wrapper`]:J6e(e)}}]},Q6e=e=>({zIndexPopup:e.zIndexPopupBase+B7+50,width:384,colorSuccessBg:void 0,colorErrorBg:void 0,colorInfoBg:void 0,colorWarningBg:void 0}),eDe=e=>{const t=e.paddingMD,r=e.paddingLG;return Sr(e,{notificationBg:e.colorBgElevated,notificationPaddingVertical:t,notificationPaddingHorizontal:r,notificationIconSize:e.calc(e.fontSizeLG).mul(e.lineHeightLG).equal(),notificationCloseButtonSize:e.calc(e.controlHeightLG).mul(.55).equal(),notificationMarginBottom:e.margin,notificationPadding:`${re(e.paddingMD)} ${re(e.paddingContentHorizontalLG)}`,notificationMarginEdge:e.marginLG,animationMaxHeight:150,notificationStackLayer:3,notificationProgressHeight:2,notificationProgressBg:`linear-gradient(90deg, ${e.colorPrimaryBorderHover}, ${e.colorPrimary})`})},tDe=kr(\"Notification\",e=>{const t=eDe(e);return[Z6e(t),W6e(t),X6e(t)]},Q6e);function rie(e,t){return t===null||t===!1?null:t||m.createElement(wu,{className:`${e}-close-icon`})}const rDe={success:mm,info:G0,error:xd,warning:nh},nDe=e=>{const{prefixCls:t,icon:r,type:n,message:a,description:i,actions:o,role:l=\"alert\"}=e;let s=null;return r?s=m.createElement(\"span\",{className:`${t}-icon`},r):n&&(s=m.createElement(rDe[n]||null,{className:ne(`${t}-icon`,`${t}-icon-${n}`)})),m.createElement(\"div\",{className:ne({[`${t}-with-icon`]:s}),role:l},s,m.createElement(\"div\",{className:`${t}-message`},a),i&&m.createElement(\"div\",{className:`${t}-description`},i),o&&m.createElement(\"div\",{className:`${t}-actions`},o))};function aDe(e,t,r){let n;switch(e){case\"top\":n={left:\"50%\",transform:\"translateX(-50%)\",right:\"auto\",top:t,bottom:\"auto\"};break;case\"topLeft\":n={left:0,top:t,bottom:\"auto\"};break;case\"topRight\":n={right:0,top:t,bottom:\"auto\"};break;case\"bottom\":n={left:\"50%\",transform:\"translateX(-50%)\",right:\"auto\",top:\"auto\",bottom:r};break;case\"bottomLeft\":n={left:0,top:\"auto\",bottom:r};break;default:n={right:0,top:\"auto\",bottom:r};break}return n}function iDe(e){return{motionName:`${e}-fade`}}function oDe(e,t,r){return typeof e<\"u\"?e:typeof(t==null?void 0:t.closeIcon)<\"u\"?t.closeIcon:r==null?void 0:r.closeIcon}var lDe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const aH=24,sDe=4.5,uDe=\"topRight\",cDe=({children:e,prefixCls:t})=>{const r=Zn(t),[n,a,i]=tDe(t,r);return n(le.createElement(tae,{classNames:{list:ne(a,i,r)}},e))},dDe=(e,{prefixCls:t,key:r})=>le.createElement(cDe,{prefixCls:t,key:r},e),fDe=le.forwardRef((e,t)=>{const{top:r,bottom:n,prefixCls:a,getContainer:i,maxCount:o,rtl:l,onAllRemoved:s,stack:u,duration:c,pauseOnHover:d=!0,showProgress:f}=e,{getPrefixCls:h,getPopupContainer:p,notification:v,direction:g}=m.useContext(Ot),[,y]=Mi(),b=a||h(\"notification\"),x=D=>aDe(D,r??aH,n??aH),F=()=>ne({[`${b}-rtl`]:l??g===\"rtl\"}),S=()=>iDe(b),[E,w]=rae({prefixCls:b,style:x,className:F,motion:S,closable:!0,closeIcon:rie(b),duration:c??sDe,getContainer:()=>(i==null?void 0:i())||(p==null?void 0:p())||document.body,maxCount:o,pauseOnHover:d,showProgress:f,onAllRemoved:s,renderNotifications:dDe,stack:u===!1?!1:{threshold:typeof u==\"object\"?u==null?void 0:u.threshold:void 0,offset:8,gap:y.margin}});return le.useImperativeHandle(t,()=>Object.assign(Object.assign({},E),{prefixCls:b,notification:v})),w});function hDe(e){const t=le.useRef(null);return bc(),[le.useMemo(()=>{const n=l=>{var s;if(!t.current)return;const{open:u,prefixCls:c,notification:d}=t.current,f=`${c}-notice`,{message:h,description:p,icon:v,type:g,btn:y,actions:b,className:x,style:F,role:S=\"alert\",closeIcon:E,closable:w}=l,D=lDe(l,[\"message\",\"description\",\"icon\",\"type\",\"btn\",\"actions\",\"className\",\"style\",\"role\",\"closeIcon\",\"closable\"]),A=b??y,_=rie(f,oDe(E,e,d));return u(Object.assign(Object.assign({placement:(s=e==null?void 0:e.placement)!==null&&s!==void 0?s:uDe},D),{content:le.createElement(nDe,{prefixCls:f,icon:v,type:g,message:h,description:p,actions:A,role:S}),className:ne(g&&`${f}-${g}`,x,d==null?void 0:d.className),style:Object.assign(Object.assign({},d==null?void 0:d.style),F),closeIcon:_,closable:w??!!_}))},i={open:n,destroy:l=>{var s,u;l!==void 0?(s=t.current)===null||s===void 0||s.close(l):(u=t.current)===null||u===void 0||u.destroy()}};return[\"success\",\"info\",\"warning\",\"error\"].forEach(l=>{i[l]=s=>n(Object.assign(Object.assign({},s),{type:l}))}),i},[]),le.createElement(fDe,Object.assign({key:\"notification-holder\"},e,{ref:t}))]}function pDe(e){return hDe(e)}const xR=le.createContext({}),nie=le.createContext({message:{},notification:{},modal:{}}),mDe=e=>{const{componentCls:t,colorText:r,fontSize:n,lineHeight:a,fontFamily:i}=e;return{[t]:{color:r,fontSize:n,lineHeight:a,fontFamily:i,[`&${t}-rtl`]:{direction:\"rtl\"}}}},vDe=()=>({}),gDe=kr(\"App\",mDe,vDe),yDe=e=>{const{prefixCls:t,children:r,className:n,rootClassName:a,message:i,notification:o,style:l,component:s=\"div\"}=e,{direction:u,getPrefixCls:c}=m.useContext(Ot),d=c(\"app\",t),[f,h,p]=gDe(d),v=ne(h,d,n,a,p,{[`${d}-rtl`]:u===\"rtl\"}),g=m.useContext(xR),y=le.useMemo(()=>({message:Object.assign(Object.assign({},g.message),i),notification:Object.assign(Object.assign({},g.notification),o)}),[i,o,g.message,g.notification]),[b,x]=sae(y.message),[F,S]=pDe(y.notification),[E,w]=tie(),D=le.useMemo(()=>({message:b,notification:F,modal:E}),[b,F,E]);bc()(!(p&&s===!1),\"usage\",\"When using cssVar, ensure `component` is assigned a valid React component string.\");const A=s===!1?le.Fragment:s,_={className:v,style:l};return f(le.createElement(nie.Provider,{value:D},le.createElement(xR.Provider,{value:y},le.createElement(A,Object.assign({},s===!1?void 0:_),w,x,S,r))))},bDe=()=>le.useContext(nie),aie=yDe;aie.useApp=bDe;function iie(e){return t=>m.createElement(Is,{theme:{token:{motion:!1,zIndexPopupBase:0}}},m.createElement(e,Object.assign({},t)))}const g6=(e,t,r,n,a)=>iie(o=>{const{prefixCls:l,style:s}=o,u=m.useRef(null),[c,d]=m.useState(0),[f,h]=m.useState(0),[p,v]=un(!1,{value:o.open}),{getPrefixCls:g}=m.useContext(Ot),y=g(n||\"select\",l);m.useEffect(()=>{if(v(!0),typeof ResizeObserver<\"u\"){const F=new ResizeObserver(E=>{const w=E[0].target;d(w.offsetHeight+8),h(w.offsetWidth)}),S=setInterval(()=>{var E;const w=a?`.${a(y)}`:`.${y}-dropdown`,D=(E=u.current)===null||E===void 0?void 0:E.querySelector(w);D&&(clearInterval(S),F.observe(D))},10);return()=>{clearInterval(S),F.disconnect()}}},[y]);let b=Object.assign(Object.assign({},o),{style:Object.assign(Object.assign({},s),{margin:0}),open:p,visible:p,getPopupContainer:()=>u.current});t&&Object.assign(b,{[t]:{overflow:{adjustX:!1,adjustY:!1}}});const x={paddingBottom:c,position:\"relative\",minWidth:f};return m.createElement(\"div\",{ref:u,style:x},m.createElement(e,Object.assign({},b)))}),y6=function(){if(typeof navigator>\"u\"||typeof window>\"u\")return!1;var e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(e==null?void 0:e.substr(0,4))};var b6=function(t){var r=t.className,n=t.customizeIcon,a=t.customizeIconProps,i=t.children,o=t.onMouseDown,l=t.onClick,s=typeof n==\"function\"?n(a):n;return m.createElement(\"span\",{className:r,onMouseDown:function(c){c.preventDefault(),o==null||o(c)},style:{userSelect:\"none\",WebkitUserSelect:\"none\"},unselectable:\"on\",onClick:l,\"aria-hidden\":!0},s!==void 0?s:m.createElement(\"span\",{className:ne(r.split(/\\s+/).map(function(u){return\"\".concat(u,\"-icon\")}))},i))},xDe=function(t,r,n,a,i){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,l=arguments.length>6?arguments[6]:void 0,s=arguments.length>7?arguments[7]:void 0,u=le.useMemo(function(){if(Nt(a)===\"object\")return a.clearIcon;if(i)return i},[a,i]),c=le.useMemo(function(){return!!(!o&&a&&(n.length||l)&&!(s===\"combobox\"&&l===\"\"))},[a,o,n.length,l,s]);return{allowClear:c,clearIcon:le.createElement(b6,{className:\"\".concat(t,\"-clear\"),onMouseDown:r,customizeIcon:u},\"×\")}},oie=m.createContext(null);function CDe(){return m.useContext(oie)}function FDe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10,t=m.useState(!1),r=ve(t,2),n=r[0],a=r[1],i=m.useRef(null),o=function(){window.clearTimeout(i.current)};m.useEffect(function(){return o},[]);var l=function(u,c){o(),i.current=window.setTimeout(function(){a(u),c&&c()},e)};return[n,l,o]}function lie(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,t=m.useRef(null),r=m.useRef(null);m.useEffect(function(){return function(){window.clearTimeout(r.current)}},[]);function n(a){(a||t.current===null)&&(t.current=a),window.clearTimeout(r.current),r.current=window.setTimeout(function(){t.current=null},e)}return[function(){return t.current},n]}function SDe(e,t,r,n){var a=m.useRef(null);a.current={open:t,triggerOpen:r,customizedTrigger:n},m.useEffect(function(){function i(o){var l;if(!((l=a.current)!==null&&l!==void 0&&l.customizedTrigger)){var s=o.target;s.shadowRoot&&o.composed&&(s=o.composedPath()[0]||s),a.current.open&&e().filter(function(u){return u}).every(function(u){return!u.contains(s)&&u!==s})&&a.current.triggerOpen(!1)}}return window.addEventListener(\"mousedown\",i),function(){return window.removeEventListener(\"mousedown\",i)}},[])}function wDe(e){return e&&![It.ESC,It.SHIFT,It.BACKSPACE,It.TAB,It.WIN_KEY,It.ALT,It.META,It.WIN_KEY_RIGHT,It.CTRL,It.SEMICOLON,It.EQUALS,It.CAPS_LOCK,It.CONTEXT_MENU,It.F1,It.F2,It.F3,It.F4,It.F5,It.F6,It.F7,It.F8,It.F9,It.F10,It.F11,It.F12].includes(e)}var EDe=[\"prefixCls\",\"invalidate\",\"item\",\"renderItem\",\"responsive\",\"responsiveDisabled\",\"registerSize\",\"itemKey\",\"className\",\"style\",\"children\",\"display\",\"order\",\"component\"],Ym=void 0;function DDe(e,t){var r=e.prefixCls,n=e.invalidate,a=e.item,i=e.renderItem,o=e.responsive,l=e.responsiveDisabled,s=e.registerSize,u=e.itemKey,c=e.className,d=e.style,f=e.children,h=e.display,p=e.order,v=e.component,g=v===void 0?\"div\":v,y=Xt(e,EDe),b=o&&!h;function x(D){s(u,D)}m.useEffect(function(){return function(){x(null)}},[]);var F=i&&a!==Ym?i(a,{index:p}):f,S;n||(S={opacity:b?0:1,height:b?0:Ym,overflowY:b?\"hidden\":Ym,order:o?p:Ym,pointerEvents:b?\"none\":Ym,position:b?\"absolute\":Ym});var E={};b&&(E[\"aria-hidden\"]=!0);var w=m.createElement(g,Ce({className:ne(!n&&r,c),style:ae(ae({},S),d)},E,y,{ref:t}),F);return o&&(w=m.createElement(_i,{onResize:function(A){var _=A.offsetWidth;x(_)},disabled:l},w)),w}var r0=m.forwardRef(DDe);r0.displayName=\"Item\";function ADe(e){if(typeof MessageChannel>\"u\")Tr(e);else{var t=new MessageChannel;t.port1.onmessage=function(){return e()},t.port2.postMessage(void 0)}}function _De(){var e=m.useRef(null),t=function(n){e.current||(e.current=[],ADe(function(){Fs.unstable_batchedUpdates(function(){e.current.forEach(function(a){a()}),e.current=null})})),e.current.push(n)};return t}function qm(e,t){var r=m.useState(t),n=ve(r,2),a=n[0],i=n[1],o=Pr(function(l){e(function(){i(l)})});return[a,o]}var wE=le.createContext(null),TDe=[\"component\"],IDe=[\"className\"],kDe=[\"className\"],RDe=function(t,r){var n=m.useContext(wE);if(!n){var a=t.component,i=a===void 0?\"div\":a,o=Xt(t,TDe);return m.createElement(i,Ce({},o,{ref:r}))}var l=n.className,s=Xt(n,IDe),u=t.className,c=Xt(t,kDe);return m.createElement(wE.Provider,{value:null},m.createElement(r0,Ce({ref:r,className:ne(l,u)},s,c)))},sie=m.forwardRef(RDe);sie.displayName=\"RawItem\";var MDe=[\"prefixCls\",\"data\",\"renderItem\",\"renderRawItem\",\"itemKey\",\"itemWidth\",\"ssr\",\"style\",\"className\",\"maxCount\",\"renderRest\",\"renderRawRest\",\"prefix\",\"suffix\",\"component\",\"itemComponent\",\"onVisibleChange\"],uie=\"responsive\",cie=\"invalidate\";function PDe(e){return\"+ \".concat(e.length,\" ...\")}function ODe(e,t){var r=e.prefixCls,n=r===void 0?\"rc-overflow\":r,a=e.data,i=a===void 0?[]:a,o=e.renderItem,l=e.renderRawItem,s=e.itemKey,u=e.itemWidth,c=u===void 0?10:u,d=e.ssr,f=e.style,h=e.className,p=e.maxCount,v=e.renderRest,g=e.renderRawRest,y=e.prefix,b=e.suffix,x=e.component,F=x===void 0?\"div\":x,S=e.itemComponent,E=e.onVisibleChange,w=Xt(e,MDe),D=d===\"full\",A=_De(),_=qm(A,null),I=ve(_,2),M=I[0],T=I[1],k=M||0,R=qm(A,new Map),P=ve(R,2),B=P[0],N=P[1],O=qm(A,0),z=ve(O,2),W=z[0],L=z[1],j=qm(A,0),H=ve(j,2),V=H[0],U=H[1],Q=qm(A,0),K=ve(Q,2),Y=K[0],ee=K[1],J=qm(A,0),X=ve(J,2),ce=X[0],oe=X[1],ue=m.useState(null),ie=ve(ue,2),fe=ie[0],xe=ie[1],Ee=m.useState(null),De=ve(Ee,2),ye=De[0],we=De[1],Fe=m.useMemo(function(){return ye===null&&D?Number.MAX_SAFE_INTEGER:ye||0},[ye,M]),me=m.useState(!1),Me=ve(me,2),je=Me[0],lt=Me[1],tt=\"\".concat(n,\"-item\"),rt=Math.max(W,V),dt=p===uie,Ve=i.length&&dt,Ie=p===cie,Je=Ve||typeof p==\"number\"&&i.length>p,Pe=m.useMemo(function(){var it=i;return Ve?M===null&&D?it=i:it=i.slice(0,Math.min(i.length,k/c)):typeof p==\"number\"&&(it=i.slice(0,p)),it},[i,c,M,p,Ve]),Ge=m.useMemo(function(){return Ve?i.slice(Fe+1):i.slice(Pe.length)},[i,Pe,Ve,Fe]),Ae=m.useCallback(function(it,st){var Ct;return typeof s==\"function\"?s(it):(Ct=s&&(it==null?void 0:it[s]))!==null&&Ct!==void 0?Ct:st},[s]),_e=m.useCallback(o||function(it){return it},[o]);function $e(it,st,Ct){ye===it&&(st===void 0||st===fe)||(we(it),Ct||(lt(it<i.length-1),E==null||E(it)),st!==void 0&&xe(st))}function Ke(it,st){T(st.clientWidth)}function pt(it,st){N(function(Ct){var te=new Map(Ct);return st===null?te.delete(it):te.set(it,st),te})}function _t(it,st){U(st),L(V)}function ht(it,st){ee(st)}function gt(it,st){oe(st)}function Et(it){return B.get(Ae(Pe[it],it))}_r(function(){if(k&&typeof rt==\"number\"&&Pe){var it=Y+ce,st=Pe.length,Ct=st-1;if(!st){$e(0,null);return}for(var te=0;te<st;te+=1){var pe=Et(te);if(D&&(pe=pe||0),pe===void 0){$e(te-1,void 0,!0);break}if(it+=pe,Ct===0&&it<=k||te===Ct-1&&it+Et(Ct)<=k){$e(Ct,null);break}else if(it+rt>k){$e(te-1,it-pe-ce+V);break}}b&&Et(0)+ce>k&&xe(null)}},[k,B,V,Y,ce,Ae,Pe]);var xt=je&&!!Ge.length,Dt={};fe!==null&&Ve&&(Dt={position:\"absolute\",left:fe,top:0});var ur={prefixCls:tt,responsive:Ve,component:S,invalidate:Ie},mr=l?function(it,st){var Ct=Ae(it,st);return m.createElement(wE.Provider,{key:Ct,value:ae(ae({},ur),{},{order:st,item:it,itemKey:Ct,registerSize:pt,display:st<=Fe})},l(it,st))}:function(it,st){var Ct=Ae(it,st);return m.createElement(r0,Ce({},ur,{order:st,key:Ct,item:it,renderItem:_e,itemKey:Ct,registerSize:pt,display:st<=Fe}))},Tt={order:xt?Fe:Number.MAX_SAFE_INTEGER,className:\"\".concat(tt,\"-rest\"),registerSize:_t,display:xt},jt=v||PDe,Lt=g?m.createElement(wE.Provider,{value:ae(ae({},ur),Tt)},g(Ge)):m.createElement(r0,Ce({},ur,Tt),typeof jt==\"function\"?jt(Ge):jt),mt=m.createElement(F,Ce({className:ne(!Ie&&n,h),style:f,ref:t},w),y&&m.createElement(r0,Ce({},ur,{responsive:dt,responsiveDisabled:!Ve,order:-1,className:\"\".concat(tt,\"-prefix\"),registerSize:ht,display:!0}),y),Pe.map(mr),Je?Lt:null,b&&m.createElement(r0,Ce({},ur,{responsive:dt,responsiveDisabled:!Ve,order:Fe,className:\"\".concat(tt,\"-suffix\"),registerSize:gt,display:!0,style:Dt}),b));return dt?m.createElement(_i,{onResize:Ke,disabled:!Ve},mt):mt}var lu=m.forwardRef(ODe);lu.displayName=\"Overflow\";lu.Item=sie;lu.RESPONSIVE=uie;lu.INVALIDATE=cie;function BDe(e,t,r){var n=ae(ae({},e),t);return Object.keys(t).forEach(function(a){var i=t[a];typeof i==\"function\"&&(n[a]=function(){for(var o,l=arguments.length,s=new Array(l),u=0;u<l;u++)s[u]=arguments[u];return i.apply(void 0,s),(o=e[a])===null||o===void 0?void 0:o.call.apply(o,[e].concat(s))})}),n}var NDe=[\"prefixCls\",\"id\",\"inputElement\",\"autoFocus\",\"autoComplete\",\"editable\",\"activeDescendantId\",\"value\",\"open\",\"attrs\"],$De=function(t,r){var n=t.prefixCls,a=t.id,i=t.inputElement,o=t.autoFocus,l=t.autoComplete,s=t.editable,u=t.activeDescendantId,c=t.value,d=t.open,f=t.attrs,h=Xt(t,NDe),p=i||m.createElement(\"input\",null),v=p,g=v.ref,y=v.props;return\"maxLength\"in p.props,p=m.cloneElement(p,ae(ae(ae({type:\"search\"},BDe(h,y)),{},{id:a,ref:Qa(r,g),autoComplete:l||\"off\",autoFocus:o,className:ne(\"\".concat(n,\"-selection-search-input\"),y==null?void 0:y.className),role:\"combobox\",\"aria-expanded\":d||!1,\"aria-haspopup\":\"listbox\",\"aria-owns\":\"\".concat(a,\"_list\"),\"aria-autocomplete\":\"list\",\"aria-controls\":\"\".concat(a,\"_list\"),\"aria-activedescendant\":d?u:void 0},f),{},{value:s?c:\"\",readOnly:!s,unselectable:s?null:\"on\",style:ae(ae({},y.style),{},{opacity:s?null:0})})),p},die=m.forwardRef($De);function fie(e){return Array.isArray(e)?e:e!==void 0?[e]:[]}var LDe=typeof window<\"u\"&&window.document&&window.document.documentElement,jDe=LDe;function zDe(e){return e!=null}function HDe(e){return!e&&e!==0}function iH(e){return[\"string\",\"number\"].includes(Nt(e))}function hie(e){var t=void 0;return e&&(iH(e.title)?t=e.title.toString():iH(e.label)&&(t=e.label.toString())),t}function VDe(e,t){jDe?m.useLayoutEffect(e,t):m.useEffect(e,t)}function WDe(e){var t;return(t=e.key)!==null&&t!==void 0?t:e.value}var oH=function(t){t.preventDefault(),t.stopPropagation()},GDe=function(t){var r=t.id,n=t.prefixCls,a=t.values,i=t.open,o=t.searchValue,l=t.autoClearSearchValue,s=t.inputRef,u=t.placeholder,c=t.disabled,d=t.mode,f=t.showSearch,h=t.autoFocus,p=t.autoComplete,v=t.activeDescendantId,g=t.tabIndex,y=t.removeIcon,b=t.maxTagCount,x=t.maxTagTextLength,F=t.maxTagPlaceholder,S=F===void 0?function(oe){return\"+ \".concat(oe.length,\" ...\")}:F,E=t.tagRender,w=t.onToggleOpen,D=t.onRemove,A=t.onInputChange,_=t.onInputPaste,I=t.onInputKeyDown,M=t.onInputMouseDown,T=t.onInputCompositionStart,k=t.onInputCompositionEnd,R=t.onInputBlur,P=m.useRef(null),B=m.useState(0),N=ve(B,2),O=N[0],z=N[1],W=m.useState(!1),L=ve(W,2),j=L[0],H=L[1],V=\"\".concat(n,\"-selection\"),U=i||d===\"multiple\"&&l===!1||d===\"tags\"?o:\"\",Q=d===\"tags\"||d===\"multiple\"&&l===!1||f&&(i||j);VDe(function(){z(P.current.scrollWidth)},[U]);var K=function(ue,ie,fe,xe,Ee){return m.createElement(\"span\",{title:hie(ue),className:ne(\"\".concat(V,\"-item\"),Z({},\"\".concat(V,\"-item-disabled\"),fe))},m.createElement(\"span\",{className:\"\".concat(V,\"-item-content\")},ie),xe&&m.createElement(b6,{className:\"\".concat(V,\"-item-remove\"),onMouseDown:oH,onClick:Ee,customizeIcon:y},\"×\"))},Y=function(ue,ie,fe,xe,Ee,De){var ye=function(Fe){oH(Fe),w(!i)};return m.createElement(\"span\",{onMouseDown:ye},E({label:ie,value:ue,disabled:fe,closable:xe,onClose:Ee,isMaxTag:!!De}))},ee=function(ue){var ie=ue.disabled,fe=ue.label,xe=ue.value,Ee=!c&&!ie,De=fe;if(typeof x==\"number\"&&(typeof fe==\"string\"||typeof fe==\"number\")){var ye=String(De);ye.length>x&&(De=\"\".concat(ye.slice(0,x),\"...\"))}var we=function(me){me&&me.stopPropagation(),D(ue)};return typeof E==\"function\"?Y(xe,De,ie,Ee,we):K(ue,De,ie,Ee,we)},J=function(ue){if(!a.length)return null;var ie=typeof S==\"function\"?S(ue):S;return typeof E==\"function\"?Y(void 0,ie,!1,!1,void 0,!0):K({title:ie},ie,!1)},X=m.createElement(\"div\",{className:\"\".concat(V,\"-search\"),style:{width:O},onFocus:function(){H(!0)},onBlur:function(){H(!1)}},m.createElement(die,{ref:s,open:i,prefixCls:n,id:r,inputElement:null,disabled:c,autoFocus:h,autoComplete:p,editable:Q,activeDescendantId:v,value:U,onKeyDown:I,onMouseDown:M,onChange:A,onPaste:_,onCompositionStart:T,onCompositionEnd:k,onBlur:R,tabIndex:g,attrs:qn(t,!0)}),m.createElement(\"span\",{ref:P,className:\"\".concat(V,\"-search-mirror\"),\"aria-hidden\":!0},U,\" \")),ce=m.createElement(lu,{prefixCls:\"\".concat(V,\"-overflow\"),data:a,renderItem:ee,renderRest:J,suffix:X,itemKey:WDe,maxCount:b});return m.createElement(\"span\",{className:\"\".concat(V,\"-wrap\")},ce,!a.length&&!U&&m.createElement(\"span\",{className:\"\".concat(V,\"-placeholder\")},u))},UDe=function(t){var r=t.inputElement,n=t.prefixCls,a=t.id,i=t.inputRef,o=t.disabled,l=t.autoFocus,s=t.autoComplete,u=t.activeDescendantId,c=t.mode,d=t.open,f=t.values,h=t.placeholder,p=t.tabIndex,v=t.showSearch,g=t.searchValue,y=t.activeValue,b=t.maxLength,x=t.onInputKeyDown,F=t.onInputMouseDown,S=t.onInputChange,E=t.onInputPaste,w=t.onInputCompositionStart,D=t.onInputCompositionEnd,A=t.onInputBlur,_=t.title,I=m.useState(!1),M=ve(I,2),T=M[0],k=M[1],R=c===\"combobox\",P=R||v,B=f[0],N=g||\"\";R&&y&&!T&&(N=y),m.useEffect(function(){R&&k(!1)},[R,y]);var O=c!==\"combobox\"&&!d&&!v?!1:!!N,z=_===void 0?hie(B):_,W=m.useMemo(function(){return B?null:m.createElement(\"span\",{className:\"\".concat(n,\"-selection-placeholder\"),style:O?{visibility:\"hidden\"}:void 0},h)},[B,O,h,n]);return m.createElement(\"span\",{className:\"\".concat(n,\"-selection-wrap\")},m.createElement(\"span\",{className:\"\".concat(n,\"-selection-search\")},m.createElement(die,{ref:i,prefixCls:n,id:a,open:d,inputElement:r,disabled:o,autoFocus:l,autoComplete:s,editable:P,activeDescendantId:u,value:N,onKeyDown:x,onMouseDown:F,onChange:function(j){k(!0),S(j)},onPaste:E,onCompositionStart:w,onCompositionEnd:D,onBlur:A,tabIndex:p,attrs:qn(t,!0),maxLength:R?b:void 0})),!R&&B?m.createElement(\"span\",{className:\"\".concat(n,\"-selection-item\"),title:z,style:O?{visibility:\"hidden\"}:void 0},B.label):null,W)},KDe=function(t,r){var n=m.useRef(null),a=m.useRef(!1),i=t.prefixCls,o=t.open,l=t.mode,s=t.showSearch,u=t.tokenWithEnter,c=t.disabled,d=t.prefix,f=t.autoClearSearchValue,h=t.onSearch,p=t.onSearchSubmit,v=t.onToggleOpen,g=t.onInputKeyDown,y=t.onInputBlur,b=t.domRef;m.useImperativeHandle(r,function(){return{focus:function(z){n.current.focus(z)},blur:function(){n.current.blur()}}});var x=lie(0),F=ve(x,2),S=F[0],E=F[1],w=function(z){var W=z.which,L=n.current instanceof HTMLTextAreaElement;!L&&o&&(W===It.UP||W===It.DOWN)&&z.preventDefault(),g&&g(z),W===It.ENTER&&l===\"tags\"&&!a.current&&!o&&(p==null||p(z.target.value)),!(L&&!o&&~[It.UP,It.DOWN,It.LEFT,It.RIGHT].indexOf(W))&&wDe(W)&&v(!0)},D=function(){E(!0)},A=m.useRef(null),_=function(z){h(z,!0,a.current)!==!1&&v(!0)},I=function(){a.current=!0},M=function(z){a.current=!1,l!==\"combobox\"&&_(z.target.value)},T=function(z){var W=z.target.value;if(u&&A.current&&/[\\r\\n]/.test(A.current)){var L=A.current.replace(/[\\r\\n]+$/,\"\").replace(/\\r\\n/g,\" \").replace(/[\\r\\n]/g,\" \");W=W.replace(L,A.current)}A.current=null,_(W)},k=function(z){var W=z.clipboardData,L=W==null?void 0:W.getData(\"text\");A.current=L||\"\"},R=function(z){var W=z.target;if(W!==n.current){var L=document.body.style.msTouchAction!==void 0;L?setTimeout(function(){n.current.focus()}):n.current.focus()}},P=function(z){var W=S();z.target!==n.current&&!W&&!(l===\"combobox\"&&c)&&z.preventDefault(),(l!==\"combobox\"&&(!s||!W)||!o)&&(o&&f!==!1&&h(\"\",!0,!1),v())},B={inputRef:n,onInputKeyDown:w,onInputMouseDown:D,onInputChange:T,onInputPaste:k,onInputCompositionStart:I,onInputCompositionEnd:M,onInputBlur:y},N=l===\"multiple\"||l===\"tags\"?m.createElement(GDe,Ce({},t,B)):m.createElement(UDe,Ce({},t,B));return m.createElement(\"div\",{ref:b,className:\"\".concat(i,\"-selector\"),onClick:R,onMouseDown:P},d&&m.createElement(\"div\",{className:\"\".concat(i,\"-prefix\")},d),N)},YDe=m.forwardRef(KDe);function qDe(e){var t=e.prefixCls,r=e.align,n=e.arrow,a=e.arrowPos,i=n||{},o=i.className,l=i.content,s=a.x,u=s===void 0?0:s,c=a.y,d=c===void 0?0:c,f=m.useRef();if(!r||!r.points)return null;var h={position:\"absolute\"};if(r.autoArrow!==!1){var p=r.points[0],v=r.points[1],g=p[0],y=p[1],b=v[0],x=v[1];g===b||![\"t\",\"b\"].includes(g)?h.top=d:g===\"t\"?h.top=0:h.bottom=0,y===x||![\"l\",\"r\"].includes(y)?h.left=u:y===\"l\"?h.left=0:h.right=0}return m.createElement(\"div\",{ref:f,className:ne(\"\".concat(t,\"-arrow\"),o),style:h},l)}function XDe(e){var t=e.prefixCls,r=e.open,n=e.zIndex,a=e.mask,i=e.motion;return a?m.createElement(fi,Ce({},i,{motionAppear:!0,visible:r,removeOnLeave:!0}),function(o){var l=o.className;return m.createElement(\"div\",{style:{zIndex:n},className:ne(\"\".concat(t,\"-mask\"),l)})}):null}var JDe=m.memo(function(e){var t=e.children;return t},function(e,t){return t.cache}),ZDe=m.forwardRef(function(e,t){var r=e.popup,n=e.className,a=e.prefixCls,i=e.style,o=e.target,l=e.onVisibleChanged,s=e.open,u=e.keepDom,c=e.fresh,d=e.onClick,f=e.mask,h=e.arrow,p=e.arrowPos,v=e.align,g=e.motion,y=e.maskMotion,b=e.forceRender,x=e.getPopupContainer,F=e.autoDestroy,S=e.portal,E=e.zIndex,w=e.onMouseEnter,D=e.onMouseLeave,A=e.onPointerEnter,_=e.onPointerDownCapture,I=e.ready,M=e.offsetX,T=e.offsetY,k=e.offsetR,R=e.offsetB,P=e.onAlign,B=e.onPrepare,N=e.stretch,O=e.targetWidth,z=e.targetHeight,W=typeof r==\"function\"?r():r,L=s||u,j=(x==null?void 0:x.length)>0,H=m.useState(!x||!j),V=ve(H,2),U=V[0],Q=V[1];if(_r(function(){!U&&j&&o&&Q(!0)},[U,j,o]),!U)return null;var K=\"auto\",Y={left:\"-1000vw\",top:\"-1000vh\",right:K,bottom:K};if(I||!s){var ee,J=v.points,X=v.dynamicInset||((ee=v._experimental)===null||ee===void 0?void 0:ee.dynamicInset),ce=X&&J[0][1]===\"r\",oe=X&&J[0][0]===\"b\";ce?(Y.right=k,Y.left=K):(Y.left=M,Y.right=K),oe?(Y.bottom=R,Y.top=K):(Y.top=T,Y.bottom=K)}var ue={};return N&&(N.includes(\"height\")&&z?ue.height=z:N.includes(\"minHeight\")&&z&&(ue.minHeight=z),N.includes(\"width\")&&O?ue.width=O:N.includes(\"minWidth\")&&O&&(ue.minWidth=O)),s||(ue.pointerEvents=\"none\"),m.createElement(S,{open:b||L,getContainer:x&&function(){return x(o)},autoDestroy:F},m.createElement(XDe,{prefixCls:a,open:s,zIndex:E,mask:f,motion:y}),m.createElement(_i,{onResize:P,disabled:!s},function(ie){return m.createElement(fi,Ce({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:b,leavedClassName:\"\".concat(a,\"-hidden\")},g,{onAppearPrepare:B,onEnterPrepare:B,visible:s,onVisibleChanged:function(xe){var Ee;g==null||(Ee=g.onVisibleChanged)===null||Ee===void 0||Ee.call(g,xe),l(xe)}}),function(fe,xe){var Ee=fe.className,De=fe.style,ye=ne(a,Ee,n);return m.createElement(\"div\",{ref:Qa(ie,t,xe),className:ye,style:ae(ae(ae(ae({\"--arrow-x\":\"\".concat(p.x||0,\"px\"),\"--arrow-y\":\"\".concat(p.y||0,\"px\")},Y),ue),De),{},{boxSizing:\"border-box\",zIndex:E},i),onMouseEnter:w,onMouseLeave:D,onPointerEnter:A,onClick:d,onPointerDownCapture:_},h&&m.createElement(qDe,{prefixCls:a,arrow:h,arrowPos:p,align:v}),m.createElement(JDe,{cache:!s&&!c},W))})}))}),QDe=m.forwardRef(function(e,t){var r=e.children,n=e.getTriggerDOMNode,a=mu(r),i=m.useCallback(function(l){Vb(t,n?n(l):l)},[n]),o=yc(i,rh(r));return a?m.cloneElement(r,{ref:o}):r}),lH=m.createContext(null);function sH(e){return e?Array.isArray(e)?e:[e]:[]}function eAe(e,t,r,n){return m.useMemo(function(){var a=sH(r??t),i=sH(n??t),o=new Set(a),l=new Set(i);return e&&(o.has(\"hover\")&&(o.delete(\"hover\"),o.add(\"click\")),l.has(\"hover\")&&(l.delete(\"hover\"),l.add(\"click\"))),[o,l]},[e,t,r,n])}function tAe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0;return r?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function rAe(e,t,r,n){for(var a=r.points,i=Object.keys(e),o=0;o<i.length;o+=1){var l,s=i[o];if(tAe((l=e[s])===null||l===void 0?void 0:l.points,a,n))return\"\".concat(t,\"-placement-\").concat(s)}return\"\"}function uH(e,t,r,n){return t||(r?{motionName:\"\".concat(e,\"-\").concat(r)}:n?{motionName:n}:null)}function vx(e){return e.ownerDocument.defaultView}function CR(e){for(var t=[],r=e==null?void 0:e.parentElement,n=[\"hidden\",\"scroll\",\"clip\",\"auto\"];r;){var a=vx(r).getComputedStyle(r),i=a.overflowX,o=a.overflowY,l=a.overflow;[i,o,l].some(function(s){return n.includes(s)})&&t.push(r),r=r.parentElement}return t}function e2(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return Number.isNaN(e)?t:e}function b1(e){return e2(parseFloat(e),0)}function cH(e,t){var r=ae({},e);return(t||[]).forEach(function(n){if(!(n instanceof HTMLBodyElement||n instanceof HTMLHtmlElement)){var a=vx(n).getComputedStyle(n),i=a.overflow,o=a.overflowClipMargin,l=a.borderTopWidth,s=a.borderBottomWidth,u=a.borderLeftWidth,c=a.borderRightWidth,d=n.getBoundingClientRect(),f=n.offsetHeight,h=n.clientHeight,p=n.offsetWidth,v=n.clientWidth,g=b1(l),y=b1(s),b=b1(u),x=b1(c),F=e2(Math.round(d.width/p*1e3)/1e3),S=e2(Math.round(d.height/f*1e3)/1e3),E=(p-v-b-x)*F,w=(f-h-g-y)*S,D=g*S,A=y*S,_=b*F,I=x*F,M=0,T=0;if(i===\"clip\"){var k=b1(o);M=k*F,T=k*S}var R=d.x+_-M,P=d.y+D-T,B=R+d.width+2*M-_-I-E,N=P+d.height+2*T-D-A-w;r.left=Math.max(r.left,R),r.top=Math.max(r.top,P),r.right=Math.min(r.right,B),r.bottom=Math.min(r.bottom,N)}}),r}function dH(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=\"\".concat(t),n=r.match(/^(.*)\\%$/);return n?e*(parseFloat(n[1])/100):parseFloat(r)}function fH(e,t){var r=t||[],n=ve(r,2),a=n[0],i=n[1];return[dH(e.width,a),dH(e.height,i)]}function hH(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:\"\";return[e[0],e[1]]}function Xm(e,t){var r=t[0],n=t[1],a,i;return r===\"t\"?i=e.y:r===\"b\"?i=e.y+e.height:i=e.y+e.height/2,n===\"l\"?a=e.x:n===\"r\"?a=e.x+e.width:a=e.x+e.width/2,{x:a,y:i}}function _d(e,t){var r={t:\"b\",b:\"t\",l:\"r\",r:\"l\"};return e.map(function(n,a){return a===t?r[n]||\"c\":n}).join(\"\")}function nAe(e,t,r,n,a,i,o){var l=m.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:a[n]||{}}),s=ve(l,2),u=s[0],c=s[1],d=m.useRef(0),f=m.useMemo(function(){return t?CR(t):[]},[t]),h=m.useRef({}),p=function(){h.current={}};e||p();var v=Pr(function(){if(t&&r&&e){let Xr=function(Gl,Pi){var Ji=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Me,Ns=L.x+Gl,Dd=L.y+Pi,_A=Ns+oe,TA=Dd+ce,IA=Math.max(Ns,Ji.left),gr=Math.max(Dd,Ji.top),Lr=Math.min(_A,Ji.right),ua=Math.min(TA,Ji.bottom);return Math.max(0,(Lr-IA)*(ua-gr))},ea=function(){We=L.y+jt,ke=We+ce,Be=L.x+Tt,Oe=Be+oe};var b,x,F,S,E=t,w=E.ownerDocument,D=vx(E),A=D.getComputedStyle(E),_=A.position,I=E.style.left,M=E.style.top,T=E.style.right,k=E.style.bottom,R=E.style.overflow,P=ae(ae({},a[n]),i),B=w.createElement(\"div\");(b=E.parentElement)===null||b===void 0||b.appendChild(B),B.style.left=\"\".concat(E.offsetLeft,\"px\"),B.style.top=\"\".concat(E.offsetTop,\"px\"),B.style.position=_,B.style.height=\"\".concat(E.offsetHeight,\"px\"),B.style.width=\"\".concat(E.offsetWidth,\"px\"),E.style.left=\"0\",E.style.top=\"0\",E.style.right=\"auto\",E.style.bottom=\"auto\",E.style.overflow=\"hidden\";var N;if(Array.isArray(r))N={x:r[0],y:r[1],width:0,height:0};else{var O,z,W=r.getBoundingClientRect();W.x=(O=W.x)!==null&&O!==void 0?O:W.left,W.y=(z=W.y)!==null&&z!==void 0?z:W.top,N={x:W.x,y:W.y,width:W.width,height:W.height}}var L=E.getBoundingClientRect(),j=D.getComputedStyle(E),H=j.height,V=j.width;L.x=(x=L.x)!==null&&x!==void 0?x:L.left,L.y=(F=L.y)!==null&&F!==void 0?F:L.top;var U=w.documentElement,Q=U.clientWidth,K=U.clientHeight,Y=U.scrollWidth,ee=U.scrollHeight,J=U.scrollTop,X=U.scrollLeft,ce=L.height,oe=L.width,ue=N.height,ie=N.width,fe={left:0,top:0,right:Q,bottom:K},xe={left:-X,top:-J,right:Y-X,bottom:ee-J},Ee=P.htmlRegion,De=\"visible\",ye=\"visibleFirst\";Ee!==\"scroll\"&&Ee!==ye&&(Ee=De);var we=Ee===ye,Fe=cH(xe,f),me=cH(fe,f),Me=Ee===De?me:Fe,je=we?me:Me;E.style.left=\"auto\",E.style.top=\"auto\",E.style.right=\"0\",E.style.bottom=\"0\";var lt=E.getBoundingClientRect();E.style.left=I,E.style.top=M,E.style.right=T,E.style.bottom=k,E.style.overflow=R,(S=E.parentElement)===null||S===void 0||S.removeChild(B);var tt=e2(Math.round(oe/parseFloat(V)*1e3)/1e3),rt=e2(Math.round(ce/parseFloat(H)*1e3)/1e3);if(tt===0||rt===0||Hb(r)&&!xg(r))return;var dt=P.offset,Ve=P.targetOffset,Ie=fH(L,dt),Je=ve(Ie,2),Pe=Je[0],Ge=Je[1],Ae=fH(N,Ve),_e=ve(Ae,2),$e=_e[0],Ke=_e[1];N.x-=$e,N.y-=Ke;var pt=P.points||[],_t=ve(pt,2),ht=_t[0],gt=_t[1],Et=hH(gt),xt=hH(ht),Dt=Xm(N,Et),ur=Xm(L,xt),mr=ae({},P),Tt=Dt.x-ur.x+Pe,jt=Dt.y-ur.y+Ge,Lt=Xr(Tt,jt),mt=Xr(Tt,jt,me),it=Xm(N,[\"t\",\"l\"]),st=Xm(L,[\"t\",\"l\"]),Ct=Xm(N,[\"b\",\"r\"]),te=Xm(L,[\"b\",\"r\"]),pe=P.overflow||{},he=pe.adjustX,se=pe.adjustY,de=pe.shiftX,ge=pe.shiftY,Te=function(Pi){return typeof Pi==\"boolean\"?Pi:Pi>=0},We,ke,Be,Oe;ea();var at=Te(se),Le=xt[0]===Et[0];if(at&&xt[0]===\"t\"&&(ke>je.bottom||h.current.bt)){var Ye=jt;Le?Ye-=ce-ue:Ye=it.y-te.y-Ge;var qe=Xr(Tt,Ye),Ze=Xr(Tt,Ye,me);qe>Lt||qe===Lt&&(!we||Ze>=mt)?(h.current.bt=!0,jt=Ye,Ge=-Ge,mr.points=[_d(xt,0),_d(Et,0)]):h.current.bt=!1}if(at&&xt[0]===\"b\"&&(We<je.top||h.current.tb)){var ft=jt;Le?ft+=ce-ue:ft=Ct.y-st.y-Ge;var yt=Xr(Tt,ft),zt=Xr(Tt,ft,me);yt>Lt||yt===Lt&&(!we||zt>=mt)?(h.current.tb=!0,jt=ft,Ge=-Ge,mr.points=[_d(xt,0),_d(Et,0)]):h.current.tb=!1}var vr=Te(he),kt=xt[1]===Et[1];if(vr&&xt[1]===\"l\"&&(Oe>je.right||h.current.rl)){var Yt=Tt;kt?Yt-=oe-ie:Yt=it.x-te.x-Pe;var xr=Xr(Yt,jt),mn=Xr(Yt,jt,me);xr>Lt||xr===Lt&&(!we||mn>=mt)?(h.current.rl=!0,Tt=Yt,Pe=-Pe,mr.points=[_d(xt,1),_d(Et,1)]):h.current.rl=!1}if(vr&&xt[1]===\"r\"&&(Be<je.left||h.current.lr)){var Pn=Tt;kt?Pn+=oe-ie:Pn=Ct.x-st.x-Pe;var Tn=Xr(Pn,jt),ka=Xr(Pn,jt,me);Tn>Lt||Tn===Lt&&(!we||ka>=mt)?(h.current.lr=!0,Tt=Pn,Pe=-Pe,mr.points=[_d(xt,1),_d(Et,1)]):h.current.lr=!1}ea();var ha=de===!0?0:de;typeof ha==\"number\"&&(Be<me.left&&(Tt-=Be-me.left-Pe,N.x+ie<me.left+ha&&(Tt+=N.x-me.left+ie-ha)),Oe>me.right&&(Tt-=Oe-me.right-Pe,N.x>me.right-ha&&(Tt+=N.x-me.right+ha)));var ja=ge===!0?0:ge;typeof ja==\"number\"&&(We<me.top&&(jt-=We-me.top-Ge,N.y+ue<me.top+ja&&(jt+=N.y-me.top+ue-ja)),ke>me.bottom&&(jt-=ke-me.bottom-Ge,N.y>me.bottom-ja&&(jt+=N.y-me.bottom+ja)));var za=L.x+Tt,ti=za+oe,Ha=L.y+jt,dn=Ha+ce,Zt=N.x,Jt=Zt+ie,on=N.y,Ut=on+ue,qt=Math.max(za,Zt),Qr=Math.min(ti,Jt),On=(qt+Qr)/2,Qn=On-za,Va=Math.max(Ha,on),Fa=Math.min(dn,Ut),Wa=(Va+Fa)/2,Wr=Wa-Ha;o==null||o(t,mr);var St=lt.right-L.x-(Tt+L.width),Wt=lt.bottom-L.y-(jt+L.height);tt===1&&(Tt=Math.floor(Tt),St=Math.floor(St)),rt===1&&(jt=Math.floor(jt),Wt=Math.floor(Wt));var Kr={ready:!0,offsetX:Tt/tt,offsetY:jt/rt,offsetR:St/tt,offsetB:Wt/rt,arrowX:Qn/tt,arrowY:Wr/rt,scaleX:tt,scaleY:rt,align:mr};c(Kr)}}),g=function(){d.current+=1;var x=d.current;Promise.resolve().then(function(){d.current===x&&v()})},y=function(){c(function(x){return ae(ae({},x),{},{ready:!1})})};return _r(y,[n]),_r(function(){e||y()},[e]),[u.ready,u.offsetX,u.offsetY,u.offsetR,u.offsetB,u.arrowX,u.arrowY,u.scaleX,u.scaleY,u.align,g]}function aAe(e,t,r,n,a){_r(function(){if(e&&t&&r){let d=function(){n(),a()};var i=t,o=r,l=CR(i),s=CR(o),u=vx(o),c=new Set([u].concat(He(l),He(s)));return c.forEach(function(f){f.addEventListener(\"scroll\",d,{passive:!0})}),u.addEventListener(\"resize\",d,{passive:!0}),n(),function(){c.forEach(function(f){f.removeEventListener(\"scroll\",d),u.removeEventListener(\"resize\",d)})}}},[e,t,r])}function iAe(e,t,r,n,a,i,o,l){var s=m.useRef(e);s.current=e;var u=m.useRef(!1);m.useEffect(function(){if(t&&n&&(!a||i)){var d=function(){u.current=!1},f=function(g){var y;s.current&&!o(((y=g.composedPath)===null||y===void 0||(y=y.call(g))===null||y===void 0?void 0:y[0])||g.target)&&!u.current&&l(!1)},h=vx(n);h.addEventListener(\"pointerdown\",d,!0),h.addEventListener(\"mousedown\",f,!0),h.addEventListener(\"contextmenu\",f,!0);var p=CE(r);return p&&(p.addEventListener(\"mousedown\",f,!0),p.addEventListener(\"contextmenu\",f,!0)),function(){h.removeEventListener(\"pointerdown\",d,!0),h.removeEventListener(\"mousedown\",f,!0),h.removeEventListener(\"contextmenu\",f,!0),p&&(p.removeEventListener(\"mousedown\",f,!0),p.removeEventListener(\"contextmenu\",f,!0))}}},[t,r,n,a,i]);function c(){u.current=!0}return c}var oAe=[\"prefixCls\",\"children\",\"action\",\"showAction\",\"hideAction\",\"popupVisible\",\"defaultPopupVisible\",\"onPopupVisibleChange\",\"afterPopupVisibleChange\",\"mouseEnterDelay\",\"mouseLeaveDelay\",\"focusDelay\",\"blurDelay\",\"mask\",\"maskClosable\",\"getPopupContainer\",\"forceRender\",\"autoDestroy\",\"destroyPopupOnHide\",\"popup\",\"popupClassName\",\"popupStyle\",\"popupPlacement\",\"builtinPlacements\",\"popupAlign\",\"zIndex\",\"stretch\",\"getPopupClassNameFromAlign\",\"fresh\",\"alignPoint\",\"onPopupClick\",\"onPopupAlign\",\"arrow\",\"popupMotion\",\"maskMotion\",\"popupTransitionName\",\"popupAnimation\",\"maskTransitionName\",\"maskAnimation\",\"className\",\"getTriggerDOMNode\"];function lAe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:fx,t=m.forwardRef(function(r,n){var a=r.prefixCls,i=a===void 0?\"rc-trigger-popup\":a,o=r.children,l=r.action,s=l===void 0?\"hover\":l,u=r.showAction,c=r.hideAction,d=r.popupVisible,f=r.defaultPopupVisible,h=r.onPopupVisibleChange,p=r.afterPopupVisibleChange,v=r.mouseEnterDelay,g=r.mouseLeaveDelay,y=g===void 0?.1:g,b=r.focusDelay,x=r.blurDelay,F=r.mask,S=r.maskClosable,E=S===void 0?!0:S,w=r.getPopupContainer,D=r.forceRender,A=r.autoDestroy,_=r.destroyPopupOnHide,I=r.popup,M=r.popupClassName,T=r.popupStyle,k=r.popupPlacement,R=r.builtinPlacements,P=R===void 0?{}:R,B=r.popupAlign,N=r.zIndex,O=r.stretch,z=r.getPopupClassNameFromAlign,W=r.fresh,L=r.alignPoint,j=r.onPopupClick,H=r.onPopupAlign,V=r.arrow,U=r.popupMotion,Q=r.maskMotion,K=r.popupTransitionName,Y=r.popupAnimation,ee=r.maskTransitionName,J=r.maskAnimation,X=r.className,ce=r.getTriggerDOMNode,oe=Xt(r,oAe),ue=A||_||!1,ie=m.useState(!1),fe=ve(ie,2),xe=fe[0],Ee=fe[1];_r(function(){Ee(y6())},[]);var De=m.useRef({}),ye=m.useContext(lH),we=m.useMemo(function(){return{registerSubPopup:function(Lr,ua){De.current[Lr]=ua,ye==null||ye.registerSubPopup(Lr,ua)}}},[ye]),Fe=hx(),me=m.useState(null),Me=ve(me,2),je=Me[0],lt=Me[1],tt=m.useRef(null),rt=Pr(function(gr){tt.current=gr,Hb(gr)&&je!==gr&&lt(gr),ye==null||ye.registerSubPopup(Fe,gr)}),dt=m.useState(null),Ve=ve(dt,2),Ie=Ve[0],Je=Ve[1],Pe=m.useRef(null),Ge=Pr(function(gr){Hb(gr)&&Ie!==gr&&(Je(gr),Pe.current=gr)}),Ae=m.Children.only(o),_e=(Ae==null?void 0:Ae.props)||{},$e={},Ke=Pr(function(gr){var Lr,ua,ri=Ie;return(ri==null?void 0:ri.contains(gr))||((Lr=CE(ri))===null||Lr===void 0?void 0:Lr.host)===gr||gr===ri||(je==null?void 0:je.contains(gr))||((ua=CE(je))===null||ua===void 0?void 0:ua.host)===gr||gr===je||Object.values(De.current).some(function(Sa){return(Sa==null?void 0:Sa.contains(gr))||gr===Sa})}),pt=uH(i,U,Y,K),_t=uH(i,Q,J,ee),ht=m.useState(f||!1),gt=ve(ht,2),Et=gt[0],xt=gt[1],Dt=d??Et,ur=Pr(function(gr){d===void 0&&xt(gr)});_r(function(){xt(d||!1)},[d]);var mr=m.useRef(Dt);mr.current=Dt;var Tt=m.useRef([]);Tt.current=[];var jt=Pr(function(gr){var Lr;ur(gr),((Lr=Tt.current[Tt.current.length-1])!==null&&Lr!==void 0?Lr:Dt)!==gr&&(Tt.current.push(gr),h==null||h(gr))}),Lt=m.useRef(),mt=function(){clearTimeout(Lt.current)},it=function(Lr){var ua=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;mt(),ua===0?jt(Lr):Lt.current=setTimeout(function(){jt(Lr)},ua*1e3)};m.useEffect(function(){return mt},[]);var st=m.useState(!1),Ct=ve(st,2),te=Ct[0],pe=Ct[1];_r(function(gr){(!gr||Dt)&&pe(!0)},[Dt]);var he=m.useState(null),se=ve(he,2),de=se[0],ge=se[1],Te=m.useState(null),We=ve(Te,2),ke=We[0],Be=We[1],Oe=function(Lr){Be([Lr.clientX,Lr.clientY])},at=nAe(Dt,je,L&&ke!==null?ke:Ie,k,P,B,H),Le=ve(at,11),Ye=Le[0],qe=Le[1],Ze=Le[2],ft=Le[3],yt=Le[4],zt=Le[5],vr=Le[6],kt=Le[7],Yt=Le[8],xr=Le[9],mn=Le[10],Pn=eAe(xe,s,u,c),Tn=ve(Pn,2),ka=Tn[0],ha=Tn[1],ja=ka.has(\"click\"),za=ha.has(\"click\")||ha.has(\"contextMenu\"),ti=Pr(function(){te||mn()}),Ha=function(){mr.current&&L&&za&&it(!1)};aAe(Dt,Ie,je,ti,Ha),_r(function(){ti()},[ke,k]),_r(function(){Dt&&!(P!=null&&P[k])&&ti()},[JSON.stringify(B)]);var dn=m.useMemo(function(){var gr=rAe(P,i,xr,L);return ne(gr,z==null?void 0:z(xr))},[xr,z,P,i,L]);m.useImperativeHandle(n,function(){return{nativeElement:Pe.current,popupElement:tt.current,forceAlign:ti}});var Zt=m.useState(0),Jt=ve(Zt,2),on=Jt[0],Ut=Jt[1],qt=m.useState(0),Qr=ve(qt,2),On=Qr[0],Qn=Qr[1],Va=function(){if(O&&Ie){var Lr=Ie.getBoundingClientRect();Ut(Lr.width),Qn(Lr.height)}},Fa=function(){Va(),ti()},Wa=function(Lr){pe(!1),mn(),p==null||p(Lr)},Wr=function(){return new Promise(function(Lr){Va(),ge(function(){return Lr})})};_r(function(){de&&(mn(),de(),ge(null))},[de]);function St(gr,Lr,ua,ri){$e[gr]=function(Sa){var yC;ri==null||ri(Sa),it(Lr,ua);for(var kA=arguments.length,vL=new Array(kA>1?kA-1:0),bC=1;bC<kA;bC++)vL[bC-1]=arguments[bC];(yC=_e[gr])===null||yC===void 0||yC.call.apply(yC,[_e,Sa].concat(vL))}}(ja||za)&&($e.onClick=function(gr){var Lr;mr.current&&za?it(!1):!mr.current&&ja&&(Oe(gr),it(!0));for(var ua=arguments.length,ri=new Array(ua>1?ua-1:0),Sa=1;Sa<ua;Sa++)ri[Sa-1]=arguments[Sa];(Lr=_e.onClick)===null||Lr===void 0||Lr.call.apply(Lr,[_e,gr].concat(ri))});var Wt=iAe(Dt,za,Ie,je,F,E,Ke,it),Kr=ka.has(\"hover\"),Xr=ha.has(\"hover\"),ea,Gl;Kr&&(St(\"onMouseEnter\",!0,v,function(gr){Oe(gr)}),St(\"onPointerEnter\",!0,v,function(gr){Oe(gr)}),ea=function(Lr){(Dt||te)&&je!==null&&je!==void 0&&je.contains(Lr.target)&&it(!0,v)},L&&($e.onMouseMove=function(gr){var Lr;(Lr=_e.onMouseMove)===null||Lr===void 0||Lr.call(_e,gr)})),Xr&&(St(\"onMouseLeave\",!1,y),St(\"onPointerLeave\",!1,y),Gl=function(){it(!1,y)}),ka.has(\"focus\")&&St(\"onFocus\",!0,b),ha.has(\"focus\")&&St(\"onBlur\",!1,x),ka.has(\"contextMenu\")&&($e.onContextMenu=function(gr){var Lr;mr.current&&ha.has(\"contextMenu\")?it(!1):(Oe(gr),it(!0)),gr.preventDefault();for(var ua=arguments.length,ri=new Array(ua>1?ua-1:0),Sa=1;Sa<ua;Sa++)ri[Sa-1]=arguments[Sa];(Lr=_e.onContextMenu)===null||Lr===void 0||Lr.call.apply(Lr,[_e,gr].concat(ri))}),X&&($e.className=ne(_e.className,X));var Pi=m.useRef(!1);Pi.current||(Pi.current=D||Dt||te);var Ji=ae(ae({},_e),$e),Ns={},Dd=[\"onContextMenu\",\"onClick\",\"onMouseDown\",\"onTouchStart\",\"onMouseEnter\",\"onMouseLeave\",\"onFocus\",\"onBlur\"];Dd.forEach(function(gr){oe[gr]&&(Ns[gr]=function(){for(var Lr,ua=arguments.length,ri=new Array(ua),Sa=0;Sa<ua;Sa++)ri[Sa]=arguments[Sa];(Lr=Ji[gr])===null||Lr===void 0||Lr.call.apply(Lr,[Ji].concat(ri)),oe[gr].apply(oe,ri)})});var _A=m.cloneElement(Ae,ae(ae({},Ji),Ns)),TA={x:zt,y:vr},IA=V?ae({},V!==!0?V:{}):null;return m.createElement(m.Fragment,null,m.createElement(_i,{disabled:!Dt,ref:Ge,onResize:Fa},m.createElement(QDe,{getTriggerDOMNode:ce},_A)),Pi.current&&m.createElement(lH.Provider,{value:we},m.createElement(ZDe,{portal:e,ref:rt,prefixCls:i,popup:I,className:ne(M,dn),style:T,target:Ie,onMouseEnter:ea,onMouseLeave:Gl,onPointerEnter:ea,zIndex:N,open:Dt,keepDom:te,fresh:W,onClick:j,onPointerDownCapture:Wt,mask:F,motion:pt,maskMotion:_t,onVisibleChanged:Wa,onPrepare:Wr,forceRender:D,autoDestroy:ue,getPopupContainer:w,align:xr,arrow:IA,arrowPos:TA,ready:Ye,offsetX:qe,offsetY:Ze,offsetR:ft,offsetB:yt,onAlign:ti,stretch:O,targetWidth:on/kt,targetHeight:On/Yt})))});return t}const gx=lAe(fx);var sAe=[\"prefixCls\",\"disabled\",\"visible\",\"children\",\"popupElement\",\"animation\",\"transitionName\",\"dropdownStyle\",\"dropdownClassName\",\"direction\",\"placement\",\"builtinPlacements\",\"dropdownMatchSelectWidth\",\"dropdownRender\",\"dropdownAlign\",\"getPopupContainer\",\"empty\",\"getTriggerDOMNode\",\"onPopupVisibleChange\",\"onPopupMouseEnter\"],uAe=function(t){var r=t===!0?0:1;return{bottomLeft:{points:[\"tl\",\"bl\"],offset:[0,4],overflow:{adjustX:r,adjustY:1},htmlRegion:\"scroll\"},bottomRight:{points:[\"tr\",\"br\"],offset:[0,4],overflow:{adjustX:r,adjustY:1},htmlRegion:\"scroll\"},topLeft:{points:[\"bl\",\"tl\"],offset:[0,-4],overflow:{adjustX:r,adjustY:1},htmlRegion:\"scroll\"},topRight:{points:[\"br\",\"tr\"],offset:[0,-4],overflow:{adjustX:r,adjustY:1},htmlRegion:\"scroll\"}}},cAe=function(t,r){var n=t.prefixCls;t.disabled;var a=t.visible,i=t.children,o=t.popupElement,l=t.animation,s=t.transitionName,u=t.dropdownStyle,c=t.dropdownClassName,d=t.direction,f=d===void 0?\"ltr\":d,h=t.placement,p=t.builtinPlacements,v=t.dropdownMatchSelectWidth,g=t.dropdownRender,y=t.dropdownAlign,b=t.getPopupContainer,x=t.empty,F=t.getTriggerDOMNode,S=t.onPopupVisibleChange,E=t.onPopupMouseEnter,w=Xt(t,sAe),D=\"\".concat(n,\"-dropdown\"),A=o;g&&(A=g(o));var _=m.useMemo(function(){return p||uAe(v)},[p,v]),I=l?\"\".concat(D,\"-\").concat(l):s,M=typeof v==\"number\",T=m.useMemo(function(){return M?null:v===!1?\"minWidth\":\"width\"},[v,M]),k=u;M&&(k=ae(ae({},k),{},{width:v}));var R=m.useRef(null);return m.useImperativeHandle(r,function(){return{getPopupElement:function(){var B;return(B=R.current)===null||B===void 0?void 0:B.popupElement}}}),m.createElement(gx,Ce({},w,{showAction:S?[\"click\"]:[],hideAction:S?[\"click\"]:[],popupPlacement:h||(f===\"rtl\"?\"bottomRight\":\"bottomLeft\"),builtinPlacements:_,prefixCls:D,popupTransitionName:I,popup:m.createElement(\"div\",{onMouseEnter:E},A),ref:R,stretch:T,popupAlign:y,popupVisible:a,getPopupContainer:b,popupClassName:ne(c,Z({},\"\".concat(D,\"-empty\"),x)),popupStyle:k,getTriggerDOMNode:F,onPopupVisibleChange:S}),i)},dAe=m.forwardRef(cAe);function pH(e,t){var r=e.key,n;return\"value\"in e&&(n=e.value),r??(n!==void 0?n:\"rc-index-key-\".concat(t))}function FR(e){return typeof e<\"u\"&&!Number.isNaN(e)}function pie(e,t){var r=e||{},n=r.label,a=r.value,i=r.options,o=r.groupLabel,l=n||(t?\"children\":\"label\");return{label:l,value:a||\"value\",options:i||\"options\",groupLabel:o||l}}function fAe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.fieldNames,n=t.childrenAsData,a=[],i=pie(r,!1),o=i.label,l=i.value,s=i.options,u=i.groupLabel;function c(d,f){Array.isArray(d)&&d.forEach(function(h){if(f||!(s in h)){var p=h[l];a.push({key:pH(h,a.length),groupOption:f,data:h,label:h[o],value:p})}else{var v=h[u];v===void 0&&n&&(v=h.label),a.push({key:pH(h,a.length),group:!0,data:h,label:v}),c(h[s],!0)}})}return c(e,!1),a}function SR(e){var t=ae({},e);return\"props\"in t||Object.defineProperty(t,\"props\",{get:function(){return jn(!1,\"Return type is option instead of Option instance. Please read value directly instead of reading from `props`.\"),t}}),t}var hAe=function(t,r,n){if(!r||!r.length)return null;var a=!1,i=function l(s,u){var c=mne(u),d=c[0],f=c.slice(1);if(!d)return[s];var h=s.split(d);return a=a||h.length>1,h.reduce(function(p,v){return[].concat(He(p),He(l(v,f)))},[]).filter(Boolean)},o=i(t,r);return a?typeof n<\"u\"?o.slice(0,n):o:null},J7=m.createContext(null);function pAe(e){var t=e.visible,r=e.values;if(!t)return null;var n=50;return m.createElement(\"span\",{\"aria-live\":\"polite\",style:{width:0,height:0,position:\"absolute\",overflow:\"hidden\",opacity:0}},\"\".concat(r.slice(0,n).map(function(a){var i=a.label,o=a.value;return[\"number\",\"string\"].includes(Nt(i))?i:o}).join(\", \")),r.length>n?\", ...\":null)}var mAe=[\"id\",\"prefixCls\",\"className\",\"showSearch\",\"tagRender\",\"direction\",\"omitDomProps\",\"displayValues\",\"onDisplayValuesChange\",\"emptyOptions\",\"notFoundContent\",\"onClear\",\"mode\",\"disabled\",\"loading\",\"getInputElement\",\"getRawInputElement\",\"open\",\"defaultOpen\",\"onDropdownVisibleChange\",\"activeValue\",\"onActiveValueChange\",\"activeDescendantId\",\"searchValue\",\"autoClearSearchValue\",\"onSearch\",\"onSearchSplit\",\"tokenSeparators\",\"allowClear\",\"prefix\",\"suffixIcon\",\"clearIcon\",\"OptionList\",\"animation\",\"transitionName\",\"dropdownStyle\",\"dropdownClassName\",\"dropdownMatchSelectWidth\",\"dropdownRender\",\"dropdownAlign\",\"placement\",\"builtinPlacements\",\"getPopupContainer\",\"showAction\",\"onFocus\",\"onBlur\",\"onKeyUp\",\"onKeyDown\",\"onMouseDown\"],vAe=[\"value\",\"onChange\",\"removeIcon\",\"placeholder\",\"autoFocus\",\"maxTagCount\",\"maxTagTextLength\",\"maxTagPlaceholder\",\"choiceTransitionName\",\"onInputKeyDown\",\"onPopupScroll\",\"tabIndex\"],wR=function(t){return t===\"tags\"||t===\"multiple\"},gAe=m.forwardRef(function(e,t){var r,n=e.id,a=e.prefixCls,i=e.className,o=e.showSearch,l=e.tagRender,s=e.direction,u=e.omitDomProps,c=e.displayValues,d=e.onDisplayValuesChange,f=e.emptyOptions,h=e.notFoundContent,p=h===void 0?\"Not Found\":h,v=e.onClear,g=e.mode,y=e.disabled,b=e.loading,x=e.getInputElement,F=e.getRawInputElement,S=e.open,E=e.defaultOpen,w=e.onDropdownVisibleChange,D=e.activeValue,A=e.onActiveValueChange,_=e.activeDescendantId,I=e.searchValue,M=e.autoClearSearchValue,T=e.onSearch,k=e.onSearchSplit,R=e.tokenSeparators,P=e.allowClear,B=e.prefix,N=e.suffixIcon,O=e.clearIcon,z=e.OptionList,W=e.animation,L=e.transitionName,j=e.dropdownStyle,H=e.dropdownClassName,V=e.dropdownMatchSelectWidth,U=e.dropdownRender,Q=e.dropdownAlign,K=e.placement,Y=e.builtinPlacements,ee=e.getPopupContainer,J=e.showAction,X=J===void 0?[]:J,ce=e.onFocus,oe=e.onBlur,ue=e.onKeyUp,ie=e.onKeyDown,fe=e.onMouseDown,xe=Xt(e,mAe),Ee=wR(g),De=(o!==void 0?o:Ee)||g===\"combobox\",ye=ae({},xe);vAe.forEach(function(Zt){delete ye[Zt]}),u==null||u.forEach(function(Zt){delete ye[Zt]});var we=m.useState(!1),Fe=ve(we,2),me=Fe[0],Me=Fe[1];m.useEffect(function(){Me(y6())},[]);var je=m.useRef(null),lt=m.useRef(null),tt=m.useRef(null),rt=m.useRef(null),dt=m.useRef(null),Ve=m.useRef(!1),Ie=FDe(),Je=ve(Ie,3),Pe=Je[0],Ge=Je[1],Ae=Je[2];m.useImperativeHandle(t,function(){var Zt,Jt;return{focus:(Zt=rt.current)===null||Zt===void 0?void 0:Zt.focus,blur:(Jt=rt.current)===null||Jt===void 0?void 0:Jt.blur,scrollTo:function(Ut){var qt;return(qt=dt.current)===null||qt===void 0?void 0:qt.scrollTo(Ut)},nativeElement:je.current||lt.current}});var _e=m.useMemo(function(){var Zt;if(g!==\"combobox\")return I;var Jt=(Zt=c[0])===null||Zt===void 0?void 0:Zt.value;return typeof Jt==\"string\"||typeof Jt==\"number\"?String(Jt):\"\"},[I,g,c]),$e=g===\"combobox\"&&typeof x==\"function\"&&x()||null,Ke=typeof F==\"function\"&&F(),pt=yc(lt,Ke==null||(r=Ke.props)===null||r===void 0?void 0:r.ref),_t=m.useState(!1),ht=ve(_t,2),gt=ht[0],Et=ht[1];_r(function(){Et(!0)},[]);var xt=un(!1,{defaultValue:E,value:S}),Dt=ve(xt,2),ur=Dt[0],mr=Dt[1],Tt=gt?ur:!1,jt=!p&&f;(y||jt&&Tt&&g===\"combobox\")&&(Tt=!1);var Lt=jt?!1:Tt,mt=m.useCallback(function(Zt){var Jt=Zt!==void 0?Zt:!Tt;y||(mr(Jt),Tt!==Jt&&(w==null||w(Jt)))},[y,Tt,mr,w]),it=m.useMemo(function(){return(R||[]).some(function(Zt){return[`\n`,`\\r\n`].includes(Zt)})},[R]),st=m.useContext(J7)||{},Ct=st.maxCount,te=st.rawValues,pe=function(Jt,on,Ut){if(!(Ee&&FR(Ct)&&(te==null?void 0:te.size)>=Ct)){var qt=!0,Qr=Jt;A==null||A(null);var On=hAe(Jt,R,FR(Ct)?Ct-te.size:void 0),Qn=Ut?null:On;return g!==\"combobox\"&&Qn&&(Qr=\"\",k==null||k(Qn),mt(!1),qt=!1),T&&_e!==Qr&&T(Qr,{source:on?\"typing\":\"effect\"}),qt}},he=function(Jt){!Jt||!Jt.trim()||T(Jt,{source:\"submit\"})};m.useEffect(function(){!Tt&&!Ee&&g!==\"combobox\"&&pe(\"\",!1,!1)},[Tt]),m.useEffect(function(){ur&&y&&mr(!1),y&&!Ve.current&&Ge(!1)},[y]);var se=lie(),de=ve(se,2),ge=de[0],Te=de[1],We=m.useRef(!1),ke=function(Jt){var on=ge(),Ut=Jt.key,qt=Ut===\"Enter\";if(qt&&(g!==\"combobox\"&&Jt.preventDefault(),Tt||mt(!0)),Te(!!_e),Ut===\"Backspace\"&&!on&&Ee&&!_e&&c.length){for(var Qr=He(c),On=null,Qn=Qr.length-1;Qn>=0;Qn-=1){var Va=Qr[Qn];if(!Va.disabled){Qr.splice(Qn,1),On=Va;break}}On&&d(Qr,{type:\"remove\",values:[On]})}for(var Fa=arguments.length,Wa=new Array(Fa>1?Fa-1:0),Wr=1;Wr<Fa;Wr++)Wa[Wr-1]=arguments[Wr];if(Tt&&(!qt||!We.current)){var St;qt&&(We.current=!0),(St=dt.current)===null||St===void 0||St.onKeyDown.apply(St,[Jt].concat(Wa))}ie==null||ie.apply(void 0,[Jt].concat(Wa))},Be=function(Jt){for(var on=arguments.length,Ut=new Array(on>1?on-1:0),qt=1;qt<on;qt++)Ut[qt-1]=arguments[qt];if(Tt){var Qr;(Qr=dt.current)===null||Qr===void 0||Qr.onKeyUp.apply(Qr,[Jt].concat(Ut))}Jt.key===\"Enter\"&&(We.current=!1),ue==null||ue.apply(void 0,[Jt].concat(Ut))},Oe=function(Jt){var on=c.filter(function(Ut){return Ut!==Jt});d(on,{type:\"remove\",values:[Jt]})},at=function(){We.current=!1},Le=m.useRef(!1),Ye=function(){Ge(!0),y||(ce&&!Le.current&&ce.apply(void 0,arguments),X.includes(\"focus\")&&mt(!0)),Le.current=!0},qe=function(){Ve.current=!0,Ge(!1,function(){Le.current=!1,Ve.current=!1,mt(!1)}),!y&&(_e&&(g===\"tags\"?T(_e,{source:\"submit\"}):g===\"multiple\"&&T(\"\",{source:\"blur\"})),oe&&oe.apply(void 0,arguments))},Ze=[];m.useEffect(function(){return function(){Ze.forEach(function(Zt){return clearTimeout(Zt)}),Ze.splice(0,Ze.length)}},[]);var ft=function(Jt){var on,Ut=Jt.target,qt=(on=tt.current)===null||on===void 0?void 0:on.getPopupElement();if(qt&&qt.contains(Ut)){var Qr=setTimeout(function(){var Fa=Ze.indexOf(Qr);if(Fa!==-1&&Ze.splice(Fa,1),Ae(),!me&&!qt.contains(document.activeElement)){var Wa;(Wa=rt.current)===null||Wa===void 0||Wa.focus()}});Ze.push(Qr)}for(var On=arguments.length,Qn=new Array(On>1?On-1:0),Va=1;Va<On;Va++)Qn[Va-1]=arguments[Va];fe==null||fe.apply(void 0,[Jt].concat(Qn))},yt=m.useState({}),zt=ve(yt,2),vr=zt[1];function kt(){vr({})}var Yt;Ke&&(Yt=function(Jt){mt(Jt)}),SDe(function(){var Zt;return[je.current,(Zt=tt.current)===null||Zt===void 0?void 0:Zt.getPopupElement()]},Lt,mt,!!Ke);var xr=m.useMemo(function(){return ae(ae({},e),{},{notFoundContent:p,open:Tt,triggerOpen:Lt,id:n,showSearch:De,multiple:Ee,toggleOpen:mt})},[e,p,Lt,Tt,n,De,Ee,mt]),mn=!!N||b,Pn;mn&&(Pn=m.createElement(b6,{className:ne(\"\".concat(a,\"-arrow\"),Z({},\"\".concat(a,\"-arrow-loading\"),b)),customizeIcon:N,customizeIconProps:{loading:b,searchValue:_e,open:Tt,focused:Pe,showSearch:De}}));var Tn=function(){var Jt;v==null||v(),(Jt=rt.current)===null||Jt===void 0||Jt.focus(),d([],{type:\"clear\",values:c}),pe(\"\",!1,!1)},ka=xDe(a,Tn,c,P,O,y,_e,g),ha=ka.allowClear,ja=ka.clearIcon,za=m.createElement(z,{ref:dt}),ti=ne(a,i,Z(Z(Z(Z(Z(Z(Z(Z(Z(Z({},\"\".concat(a,\"-focused\"),Pe),\"\".concat(a,\"-multiple\"),Ee),\"\".concat(a,\"-single\"),!Ee),\"\".concat(a,\"-allow-clear\"),P),\"\".concat(a,\"-show-arrow\"),mn),\"\".concat(a,\"-disabled\"),y),\"\".concat(a,\"-loading\"),b),\"\".concat(a,\"-open\"),Tt),\"\".concat(a,\"-customize-input\"),$e),\"\".concat(a,\"-show-search\"),De)),Ha=m.createElement(dAe,{ref:tt,disabled:y,prefixCls:a,visible:Lt,popupElement:za,animation:W,transitionName:L,dropdownStyle:j,dropdownClassName:H,direction:s,dropdownMatchSelectWidth:V,dropdownRender:U,dropdownAlign:Q,placement:K,builtinPlacements:Y,getPopupContainer:ee,empty:f,getTriggerDOMNode:function(Jt){return lt.current||Jt},onPopupVisibleChange:Yt,onPopupMouseEnter:kt},Ke?m.cloneElement(Ke,{ref:pt}):m.createElement(YDe,Ce({},e,{domRef:lt,prefixCls:a,inputElement:$e,ref:rt,id:n,prefix:B,showSearch:De,autoClearSearchValue:M,mode:g,activeDescendantId:_,tagRender:l,values:c,open:Tt,onToggleOpen:mt,activeValue:D,searchValue:_e,onSearch:pe,onSearchSubmit:he,onRemove:Oe,tokenWithEnter:it,onInputBlur:at}))),dn;return Ke?dn=Ha:dn=m.createElement(\"div\",Ce({className:ti},ye,{ref:je,onMouseDown:ft,onKeyDown:ke,onKeyUp:Be,onFocus:Ye,onBlur:qe}),m.createElement(pAe,{visible:Pe&&!Tt,values:c}),Ha,Pn,ha&&ja),m.createElement(oie.Provider,{value:xr},dn)}),Z7=function(){return null};Z7.isSelectOptGroup=!0;var Q7=function(){return null};Q7.isSelectOption=!0;var mie=m.forwardRef(function(e,t){var r=e.height,n=e.offsetY,a=e.offsetX,i=e.children,o=e.prefixCls,l=e.onInnerResize,s=e.innerProps,u=e.rtl,c=e.extra,d={},f={display:\"flex\",flexDirection:\"column\"};return n!==void 0&&(d={height:r,position:\"relative\",overflow:\"hidden\"},f=ae(ae({},f),{},Z(Z(Z(Z(Z({transform:\"translateY(\".concat(n,\"px)\")},u?\"marginRight\":\"marginLeft\",-a),\"position\",\"absolute\"),\"left\",0),\"right\",0),\"top\",0))),m.createElement(\"div\",{style:d},m.createElement(_i,{onResize:function(p){var v=p.offsetHeight;v&&l&&l()}},m.createElement(\"div\",Ce({style:f,className:ne(Z({},\"\".concat(o,\"-holder-inner\"),o)),ref:t},s),i,c)))});mie.displayName=\"Filler\";function yAe(e){var t=e.children,r=e.setRef,n=m.useCallback(function(a){r(a)},[]);return m.cloneElement(t,{ref:n})}function bAe(e,t,r,n,a,i,o,l){var s=l.getKey;return e.slice(t,r+1).map(function(u,c){var d=t+c,f=o(u,d,{style:{width:n},offsetX:a}),h=s(u);return m.createElement(yAe,{key:h,setRef:function(v){return i(u,v)}},f)})}function xAe(e,t,r){var n=e.length,a=t.length,i,o;if(n===0&&a===0)return null;n<a?(i=e,o=t):(i=t,o=e);var l={__EMPTY_ITEM__:!0};function s(p){return p!==void 0?r(p):l}for(var u=null,c=Math.abs(n-a)!==1,d=0;d<o.length;d+=1){var f=s(i[d]),h=s(o[d]);if(f!==h){u=d,c=c||f!==s(o[d+1]);break}}return u===null?null:{index:u,multiple:c}}function CAe(e,t,r){var n=m.useState(e),a=ve(n,2),i=a[0],o=a[1],l=m.useState(null),s=ve(l,2),u=s[0],c=s[1];return m.useEffect(function(){var d=xAe(i||[],e||[],t);(d==null?void 0:d.index)!==void 0&&c(e[d.index]),o(e)},[e]),[u]}var mH=(typeof navigator>\"u\"?\"undefined\":Nt(navigator))===\"object\"&&/Firefox/i.test(navigator.userAgent);const vie=function(e,t,r,n){var a=m.useRef(!1),i=m.useRef(null);function o(){clearTimeout(i.current),a.current=!0,i.current=setTimeout(function(){a.current=!1},50)}var l=m.useRef({top:e,bottom:t,left:r,right:n});return l.current.top=e,l.current.bottom=t,l.current.left=r,l.current.right=n,function(s,u){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,d=s?u<0&&l.current.left||u>0&&l.current.right:u<0&&l.current.top||u>0&&l.current.bottom;return c&&d?(clearTimeout(i.current),a.current=!1):(!d||a.current)&&o(),!a.current&&d}};function FAe(e,t,r,n,a,i,o){var l=m.useRef(0),s=m.useRef(null),u=m.useRef(null),c=m.useRef(!1),d=vie(t,r,n,a);function f(b,x){if(Tr.cancel(s.current),!d(!1,x)){var F=b;if(!F._virtualHandled)F._virtualHandled=!0;else return;l.current+=x,u.current=x,mH||F.preventDefault(),s.current=Tr(function(){var S=c.current?10:1;o(l.current*S,!1),l.current=0})}}function h(b,x){o(x,!0),mH||b.preventDefault()}var p=m.useRef(null),v=m.useRef(null);function g(b){if(e){Tr.cancel(v.current),v.current=Tr(function(){p.current=null},2);var x=b.deltaX,F=b.deltaY,S=b.shiftKey,E=x,w=F;(p.current===\"sx\"||!p.current&&S&&F&&!x)&&(E=F,w=0,p.current=\"sx\");var D=Math.abs(E),A=Math.abs(w);p.current===null&&(p.current=i&&D>A?\"x\":\"y\"),p.current===\"y\"?f(b,w):h(b,E)}}function y(b){e&&(c.current=b.detail===u.current)}return[g,y]}function SAe(e,t,r,n){var a=m.useMemo(function(){return[new Map,[]]},[e,r.id,n]),i=ve(a,2),o=i[0],l=i[1],s=function(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c,f=o.get(c),h=o.get(d);if(f===void 0||h===void 0)for(var p=e.length,v=l.length;v<p;v+=1){var g,y=e[v],b=t(y);o.set(b,v);var x=(g=r.get(b))!==null&&g!==void 0?g:n;if(l[v]=(l[v-1]||0)+x,b===c&&(f=v),b===d&&(h=v),f!==void 0&&h!==void 0)break}return{top:l[f-1]||0,bottom:l[h]}};return s}var wAe=function(){function e(){Xn(this,e),Z(this,\"maps\",void 0),Z(this,\"id\",0),Z(this,\"diffRecords\",new Map),this.maps=Object.create(null)}return Jn(e,[{key:\"set\",value:function(r,n){this.diffRecords.set(r,this.maps[r]),this.maps[r]=n,this.id+=1}},{key:\"get\",value:function(r){return this.maps[r]}},{key:\"resetRecord\",value:function(){this.diffRecords.clear()}},{key:\"getRecord\",value:function(){return this.diffRecords}}]),e}();function vH(e){var t=parseFloat(e);return isNaN(t)?0:t}function EAe(e,t,r){var n=m.useState(0),a=ve(n,2),i=a[0],o=a[1],l=m.useRef(new Map),s=m.useRef(new wAe),u=m.useRef(0);function c(){u.current+=1}function d(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;c();var p=function(){var y=!1;l.current.forEach(function(b,x){if(b&&b.offsetParent){var F=b.offsetHeight,S=getComputedStyle(b),E=S.marginTop,w=S.marginBottom,D=vH(E),A=vH(w),_=F+D+A;s.current.get(x)!==_&&(s.current.set(x,_),y=!0)}}),y&&o(function(b){return b+1})};if(h)p();else{u.current+=1;var v=u.current;Promise.resolve().then(function(){v===u.current&&p()})}}function f(h,p){var v=e(h);l.current.get(v),p?(l.current.set(v,p),d()):l.current.delete(v)}return m.useEffect(function(){return c},[]),[f,d,s.current,i]}var gH=14/15;function DAe(e,t,r){var n=m.useRef(!1),a=m.useRef(0),i=m.useRef(0),o=m.useRef(null),l=m.useRef(null),s,u=function(h){if(n.current){var p=Math.ceil(h.touches[0].pageX),v=Math.ceil(h.touches[0].pageY),g=a.current-p,y=i.current-v,b=Math.abs(g)>Math.abs(y);b?a.current=p:i.current=v;var x=r(b,b?g:y,!1,h);x&&h.preventDefault(),clearInterval(l.current),x&&(l.current=setInterval(function(){b?g*=gH:y*=gH;var F=Math.floor(b?g:y);(!r(b,F,!0)||Math.abs(F)<=.1)&&clearInterval(l.current)},16))}},c=function(){n.current=!1,s()},d=function(h){s(),h.touches.length===1&&!n.current&&(n.current=!0,a.current=Math.ceil(h.touches[0].pageX),i.current=Math.ceil(h.touches[0].pageY),o.current=h.target,o.current.addEventListener(\"touchmove\",u,{passive:!1}),o.current.addEventListener(\"touchend\",c,{passive:!0}))};s=function(){o.current&&(o.current.removeEventListener(\"touchmove\",u),o.current.removeEventListener(\"touchend\",c))},_r(function(){return e&&t.current.addEventListener(\"touchstart\",d,{passive:!0}),function(){var f;(f=t.current)===null||f===void 0||f.removeEventListener(\"touchstart\",d),s(),clearInterval(l.current)}},[e])}function yH(e){return Math.floor(Math.pow(e,.5))}function ER(e,t){var r=\"touches\"in e?e.touches[0]:e;return r[t?\"pageX\":\"pageY\"]-window[t?\"scrollX\":\"scrollY\"]}function AAe(e,t,r){m.useEffect(function(){var n=t.current;if(e&&n){var a=!1,i,o,l=function(){Tr.cancel(i)},s=function f(){l(),i=Tr(function(){r(o),f()})},u=function(){a=!1,l()},c=function(h){if(!(h.target.draggable||h.button!==0)){var p=h;p._virtualHandled||(p._virtualHandled=!0,a=!0)}},d=function(h){if(a){var p=ER(h,!1),v=n.getBoundingClientRect(),g=v.top,y=v.bottom;if(p<=g){var b=g-p;o=-yH(b),s()}else if(p>=y){var x=p-y;o=yH(x),s()}else l()}};return n.addEventListener(\"mousedown\",c),n.ownerDocument.addEventListener(\"mouseup\",u),n.ownerDocument.addEventListener(\"mousemove\",d),n.ownerDocument.addEventListener(\"dragend\",u),function(){n.removeEventListener(\"mousedown\",c),n.ownerDocument.removeEventListener(\"mouseup\",u),n.ownerDocument.removeEventListener(\"mousemove\",d),n.ownerDocument.removeEventListener(\"dragend\",u),l()}}},[e])}var _Ae=10;function TAe(e,t,r,n,a,i,o,l){var s=m.useRef(),u=m.useState(null),c=ve(u,2),d=c[0],f=c[1];return _r(function(){if(d&&d.times<_Ae){if(!e.current){f(function(O){return ae({},O)});return}i();var h=d.targetAlign,p=d.originAlign,v=d.index,g=d.offset,y=e.current.clientHeight,b=!1,x=h,F=null;if(y){for(var S=h||p,E=0,w=0,D=0,A=Math.min(t.length-1,v),_=0;_<=A;_+=1){var I=a(t[_]);w=E;var M=r.get(I);D=w+(M===void 0?n:M),E=D}for(var T=S===\"top\"?g:y-g,k=A;k>=0;k-=1){var R=a(t[k]),P=r.get(R);if(P===void 0){b=!0;break}if(T-=P,T<=0)break}switch(S){case\"top\":F=w-g;break;case\"bottom\":F=D-y+g;break;default:{var B=e.current.scrollTop,N=B+y;w<B?x=\"top\":D>N&&(x=\"bottom\")}}F!==null&&o(F),F!==d.lastTop&&(b=!0)}b&&f(ae(ae({},d),{},{times:d.times+1,targetAlign:x,lastTop:F}))}},[d,e.current]),function(h){if(h==null){l();return}if(Tr.cancel(s.current),typeof h==\"number\")o(h);else if(h&&Nt(h)===\"object\"){var p,v=h.align;\"index\"in h?p=h.index:p=t.findIndex(function(b){return a(b)===h.key});var g=h.offset,y=g===void 0?0:g;f({times:0,index:p,offset:y,originAlign:v})}}}var bH=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.rtl,a=e.scrollOffset,i=e.scrollRange,o=e.onStartMove,l=e.onStopMove,s=e.onScroll,u=e.horizontal,c=e.spinSize,d=e.containerSize,f=e.style,h=e.thumbStyle,p=e.showScrollBar,v=m.useState(!1),g=ve(v,2),y=g[0],b=g[1],x=m.useState(null),F=ve(x,2),S=F[0],E=F[1],w=m.useState(null),D=ve(w,2),A=D[0],_=D[1],I=!n,M=m.useRef(),T=m.useRef(),k=m.useState(p),R=ve(k,2),P=R[0],B=R[1],N=m.useRef(),O=function(){p===!0||p===!1||(clearTimeout(N.current),B(!0),N.current=setTimeout(function(){B(!1)},3e3))},z=i-d||0,W=d-c||0,L=m.useMemo(function(){if(a===0||z===0)return 0;var J=a/z;return J*W},[a,z,W]),j=function(X){X.stopPropagation(),X.preventDefault()},H=m.useRef({top:L,dragging:y,pageY:S,startTop:A});H.current={top:L,dragging:y,pageY:S,startTop:A};var V=function(X){b(!0),E(ER(X,u)),_(H.current.top),o(),X.stopPropagation(),X.preventDefault()};m.useEffect(function(){var J=function(ue){ue.preventDefault()},X=M.current,ce=T.current;return X.addEventListener(\"touchstart\",J,{passive:!1}),ce.addEventListener(\"touchstart\",V,{passive:!1}),function(){X.removeEventListener(\"touchstart\",J),ce.removeEventListener(\"touchstart\",V)}},[]);var U=m.useRef();U.current=z;var Q=m.useRef();Q.current=W,m.useEffect(function(){if(y){var J,X=function(ue){var ie=H.current,fe=ie.dragging,xe=ie.pageY,Ee=ie.startTop;Tr.cancel(J);var De=M.current.getBoundingClientRect(),ye=d/(u?De.width:De.height);if(fe){var we=(ER(ue,u)-xe)*ye,Fe=Ee;!I&&u?Fe-=we:Fe+=we;var me=U.current,Me=Q.current,je=Me?Fe/Me:0,lt=Math.ceil(je*me);lt=Math.max(lt,0),lt=Math.min(lt,me),J=Tr(function(){s(lt,u)})}},ce=function(){b(!1),l()};return window.addEventListener(\"mousemove\",X,{passive:!0}),window.addEventListener(\"touchmove\",X,{passive:!0}),window.addEventListener(\"mouseup\",ce,{passive:!0}),window.addEventListener(\"touchend\",ce,{passive:!0}),function(){window.removeEventListener(\"mousemove\",X),window.removeEventListener(\"touchmove\",X),window.removeEventListener(\"mouseup\",ce),window.removeEventListener(\"touchend\",ce),Tr.cancel(J)}}},[y]),m.useEffect(function(){return O(),function(){clearTimeout(N.current)}},[a]),m.useImperativeHandle(t,function(){return{delayHidden:O}});var K=\"\".concat(r,\"-scrollbar\"),Y={position:\"absolute\",visibility:P?null:\"hidden\"},ee={position:\"absolute\",borderRadius:99,background:\"var(--rc-virtual-list-scrollbar-bg, rgba(0, 0, 0, 0.5))\",cursor:\"pointer\",userSelect:\"none\"};return u?(Object.assign(Y,{height:8,left:0,right:0,bottom:0}),Object.assign(ee,Z({height:\"100%\",width:c},I?\"left\":\"right\",L))):(Object.assign(Y,Z({width:8,top:0,bottom:0},I?\"right\":\"left\",0)),Object.assign(ee,{width:\"100%\",height:c,top:L})),m.createElement(\"div\",{ref:M,className:ne(K,Z(Z(Z({},\"\".concat(K,\"-horizontal\"),u),\"\".concat(K,\"-vertical\"),!u),\"\".concat(K,\"-visible\"),P)),style:ae(ae({},Y),f),onMouseDown:j,onMouseMove:O},m.createElement(\"div\",{ref:T,className:ne(\"\".concat(K,\"-thumb\"),Z({},\"\".concat(K,\"-thumb-moving\"),y)),style:ae(ae({},ee),h),onMouseDown:V}))}),IAe=20;function xH(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=e/t*e;return isNaN(r)&&(r=0),r=Math.max(r,IAe),Math.floor(r)}var kAe=[\"prefixCls\",\"className\",\"height\",\"itemHeight\",\"fullHeight\",\"style\",\"data\",\"children\",\"itemKey\",\"virtual\",\"direction\",\"scrollWidth\",\"component\",\"onScroll\",\"onVirtualScroll\",\"onVisibleChange\",\"innerProps\",\"extraRender\",\"styles\",\"showScrollBar\"],RAe=[],MAe={overflowY:\"auto\",overflowAnchor:\"none\"};function PAe(e,t){var r=e.prefixCls,n=r===void 0?\"rc-virtual-list\":r,a=e.className,i=e.height,o=e.itemHeight,l=e.fullHeight,s=l===void 0?!0:l,u=e.style,c=e.data,d=e.children,f=e.itemKey,h=e.virtual,p=e.direction,v=e.scrollWidth,g=e.component,y=g===void 0?\"div\":g,b=e.onScroll,x=e.onVirtualScroll,F=e.onVisibleChange,S=e.innerProps,E=e.extraRender,w=e.styles,D=e.showScrollBar,A=D===void 0?\"optional\":D,_=Xt(e,kAe),I=m.useCallback(function(Le){return typeof f==\"function\"?f(Le):Le==null?void 0:Le[f]},[f]),M=EAe(I),T=ve(M,4),k=T[0],R=T[1],P=T[2],B=T[3],N=!!(h!==!1&&i&&o),O=m.useMemo(function(){return Object.values(P.maps).reduce(function(Le,Ye){return Le+Ye},0)},[P.id,P.maps]),z=N&&c&&(Math.max(o*c.length,O)>i||!!v),W=p===\"rtl\",L=ne(n,Z({},\"\".concat(n,\"-rtl\"),W),a),j=c||RAe,H=m.useRef(),V=m.useRef(),U=m.useRef(),Q=m.useState(0),K=ve(Q,2),Y=K[0],ee=K[1],J=m.useState(0),X=ve(J,2),ce=X[0],oe=X[1],ue=m.useState(!1),ie=ve(ue,2),fe=ie[0],xe=ie[1],Ee=function(){xe(!0)},De=function(){xe(!1)},ye={getKey:I};function we(Le){ee(function(Ye){var qe;typeof Le==\"function\"?qe=Le(Ye):qe=Le;var Ze=Et(qe);return H.current.scrollTop=Ze,Ze})}var Fe=m.useRef({start:0,end:j.length}),me=m.useRef(),Me=CAe(j,I),je=ve(Me,1),lt=je[0];me.current=lt;var tt=m.useMemo(function(){if(!N)return{scrollHeight:void 0,start:0,end:j.length-1,offset:void 0};if(!z){var Le;return{scrollHeight:((Le=V.current)===null||Le===void 0?void 0:Le.offsetHeight)||0,start:0,end:j.length-1,offset:void 0}}for(var Ye=0,qe,Ze,ft,yt=j.length,zt=0;zt<yt;zt+=1){var vr=j[zt],kt=I(vr),Yt=P.get(kt),xr=Ye+(Yt===void 0?o:Yt);xr>=Y&&qe===void 0&&(qe=zt,Ze=Ye),xr>Y+i&&ft===void 0&&(ft=zt),Ye=xr}return qe===void 0&&(qe=0,Ze=0,ft=Math.ceil(i/o)),ft===void 0&&(ft=j.length-1),ft=Math.min(ft+1,j.length-1),{scrollHeight:Ye,start:qe,end:ft,offset:Ze}},[z,N,Y,j,B,i]),rt=tt.scrollHeight,dt=tt.start,Ve=tt.end,Ie=tt.offset;Fe.current.start=dt,Fe.current.end=Ve,m.useLayoutEffect(function(){var Le=P.getRecord();if(Le.size===1){var Ye=Array.from(Le.keys())[0],qe=Le.get(Ye),Ze=j[dt];if(Ze&&qe===void 0){var ft=I(Ze);if(ft===Ye){var yt=P.get(Ye),zt=yt-o;we(function(vr){return vr+zt})}}}P.resetRecord()},[rt]);var Je=m.useState({width:0,height:i}),Pe=ve(Je,2),Ge=Pe[0],Ae=Pe[1],_e=function(Ye){Ae({width:Ye.offsetWidth,height:Ye.offsetHeight})},$e=m.useRef(),Ke=m.useRef(),pt=m.useMemo(function(){return xH(Ge.width,v)},[Ge.width,v]),_t=m.useMemo(function(){return xH(Ge.height,rt)},[Ge.height,rt]),ht=rt-i,gt=m.useRef(ht);gt.current=ht;function Et(Le){var Ye=Le;return Number.isNaN(gt.current)||(Ye=Math.min(Ye,gt.current)),Ye=Math.max(Ye,0),Ye}var xt=Y<=0,Dt=Y>=ht,ur=ce<=0,mr=ce>=v,Tt=vie(xt,Dt,ur,mr),jt=function(){return{x:W?-ce:ce,y:Y}},Lt=m.useRef(jt()),mt=Pr(function(Le){if(x){var Ye=ae(ae({},jt()),Le);(Lt.current.x!==Ye.x||Lt.current.y!==Ye.y)&&(x(Ye),Lt.current=Ye)}});function it(Le,Ye){var qe=Le;Ye?(Fs.flushSync(function(){oe(qe)}),mt()):we(qe)}function st(Le){var Ye=Le.currentTarget.scrollTop;Ye!==Y&&we(Ye),b==null||b(Le),mt()}var Ct=function(Ye){var qe=Ye,Ze=v?v-Ge.width:0;return qe=Math.max(qe,0),qe=Math.min(qe,Ze),qe},te=Pr(function(Le,Ye){Ye?(Fs.flushSync(function(){oe(function(qe){var Ze=qe+(W?-Le:Le);return Ct(Ze)})}),mt()):we(function(qe){var Ze=qe+Le;return Ze})}),pe=FAe(N,xt,Dt,ur,mr,!!v,te),he=ve(pe,2),se=he[0],de=he[1];DAe(N,H,function(Le,Ye,qe,Ze){var ft=Ze;return Tt(Le,Ye,qe)?!1:!ft||!ft._virtualHandled?(ft&&(ft._virtualHandled=!0),se({preventDefault:function(){},deltaX:Le?Ye:0,deltaY:Le?0:Ye}),!0):!1}),AAe(z,H,function(Le){we(function(Ye){return Ye+Le})}),_r(function(){function Le(qe){var Ze=xt&&qe.detail<0,ft=Dt&&qe.detail>0;N&&!Ze&&!ft&&qe.preventDefault()}var Ye=H.current;return Ye.addEventListener(\"wheel\",se,{passive:!1}),Ye.addEventListener(\"DOMMouseScroll\",de,{passive:!0}),Ye.addEventListener(\"MozMousePixelScroll\",Le,{passive:!1}),function(){Ye.removeEventListener(\"wheel\",se),Ye.removeEventListener(\"DOMMouseScroll\",de),Ye.removeEventListener(\"MozMousePixelScroll\",Le)}},[N,xt,Dt]),_r(function(){if(v){var Le=Ct(ce);oe(Le),mt({x:Le})}},[Ge.width,v]);var ge=function(){var Ye,qe;(Ye=$e.current)===null||Ye===void 0||Ye.delayHidden(),(qe=Ke.current)===null||qe===void 0||qe.delayHidden()},Te=TAe(H,j,P,o,I,function(){return R(!0)},we,ge);m.useImperativeHandle(t,function(){return{nativeElement:U.current,getScrollInfo:jt,scrollTo:function(Ye){function qe(Ze){return Ze&&Nt(Ze)===\"object\"&&(\"left\"in Ze||\"top\"in Ze)}qe(Ye)?(Ye.left!==void 0&&oe(Ct(Ye.left)),Te(Ye.top)):Te(Ye)}}}),_r(function(){if(F){var Le=j.slice(dt,Ve+1);F(Le,j)}},[dt,Ve,j]);var We=SAe(j,I,P,o),ke=E==null?void 0:E({start:dt,end:Ve,virtual:z,offsetX:ce,offsetY:Ie,rtl:W,getSize:We}),Be=bAe(j,dt,Ve,v,ce,k,d,ye),Oe=null;i&&(Oe=ae(Z({},s?\"height\":\"maxHeight\",i),MAe),N&&(Oe.overflowY=\"hidden\",v&&(Oe.overflowX=\"hidden\"),fe&&(Oe.pointerEvents=\"none\")));var at={};return W&&(at.dir=\"rtl\"),m.createElement(\"div\",Ce({ref:U,style:ae(ae({},u),{},{position:\"relative\"}),className:L},at,_),m.createElement(_i,{onResize:_e},m.createElement(y,{className:\"\".concat(n,\"-holder\"),style:Oe,ref:H,onScroll:st,onMouseEnter:ge},m.createElement(mie,{prefixCls:n,height:rt,offsetX:ce,offsetY:Ie,scrollWidth:v,onInnerResize:R,ref:V,innerProps:S,rtl:W,extra:ke},Be))),z&&rt>i&&m.createElement(bH,{ref:$e,prefixCls:n,scrollOffset:Y,scrollRange:rt,rtl:W,onScroll:it,onStartMove:Ee,onStopMove:De,spinSize:_t,containerSize:Ge.height,style:w==null?void 0:w.verticalScrollBar,thumbStyle:w==null?void 0:w.verticalScrollBarThumb,showScrollBar:A}),z&&v>Ge.width&&m.createElement(bH,{ref:Ke,prefixCls:n,scrollOffset:ce,scrollRange:v,rtl:W,onScroll:it,onStartMove:Ee,onStopMove:De,spinSize:pt,containerSize:Ge.width,horizontal:!0,style:w==null?void 0:w.horizontalScrollBar,thumbStyle:w==null?void 0:w.horizontalScrollBarThumb,showScrollBar:A}))}var x6=m.forwardRef(PAe);x6.displayName=\"List\";function OAe(){return/(mac\\sos|macintosh)/i.test(navigator.appVersion)}var BAe=[\"disabled\",\"title\",\"children\",\"style\",\"className\"];function CH(e){return typeof e==\"string\"||typeof e==\"number\"}var NAe=function(t,r){var n=CDe(),a=n.prefixCls,i=n.id,o=n.open,l=n.multiple,s=n.mode,u=n.searchValue,c=n.toggleOpen,d=n.notFoundContent,f=n.onPopupScroll,h=m.useContext(J7),p=h.maxCount,v=h.flattenOptions,g=h.onActiveValue,y=h.defaultActiveFirstOption,b=h.onSelect,x=h.menuItemSelectedIcon,F=h.rawValues,S=h.fieldNames,E=h.virtual,w=h.direction,D=h.listHeight,A=h.listItemHeight,_=h.optionRender,I=\"\".concat(a,\"-item\"),M=hm(function(){return v},[o,v],function(J,X){return X[0]&&J[1]!==X[1]}),T=m.useRef(null),k=m.useMemo(function(){return l&&FR(p)&&(F==null?void 0:F.size)>=p},[l,p,F==null?void 0:F.size]),R=function(X){X.preventDefault()},P=function(X){var ce;(ce=T.current)===null||ce===void 0||ce.scrollTo(typeof X==\"number\"?{index:X}:X)},B=m.useCallback(function(J){return s===\"combobox\"?!1:F.has(J)},[s,He(F).toString(),F.size]),N=function(X){for(var ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,oe=M.length,ue=0;ue<oe;ue+=1){var ie=(X+ue*ce+oe)%oe,fe=M[ie]||{},xe=fe.group,Ee=fe.data;if(!xe&&!(Ee!=null&&Ee.disabled)&&(B(Ee.value)||!k))return ie}return-1},O=m.useState(function(){return N(0)}),z=ve(O,2),W=z[0],L=z[1],j=function(X){var ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;L(X);var oe={source:ce?\"keyboard\":\"mouse\"},ue=M[X];if(!ue){g(null,-1,oe);return}g(ue.value,X,oe)};m.useEffect(function(){j(y!==!1?N(0):-1)},[M.length,u]);var H=m.useCallback(function(J){return s===\"combobox\"?String(J).toLowerCase()===u.toLowerCase():F.has(J)},[s,u,He(F).toString(),F.size]);m.useEffect(function(){var J=setTimeout(function(){if(!l&&o&&F.size===1){var ce=Array.from(F)[0],oe=M.findIndex(function(ue){var ie=ue.data;return u?String(ie.value).startsWith(u):ie.value===ce});oe!==-1&&(j(oe),P(oe))}});if(o){var X;(X=T.current)===null||X===void 0||X.scrollTo(void 0)}return function(){return clearTimeout(J)}},[o,u]);var V=function(X){X!==void 0&&b(X,{selected:!F.has(X)}),l||c(!1)};if(m.useImperativeHandle(r,function(){return{onKeyDown:function(X){var ce=X.which,oe=X.ctrlKey;switch(ce){case It.N:case It.P:case It.UP:case It.DOWN:{var ue=0;if(ce===It.UP?ue=-1:ce===It.DOWN?ue=1:OAe()&&oe&&(ce===It.N?ue=1:ce===It.P&&(ue=-1)),ue!==0){var ie=N(W+ue,ue);P(ie),j(ie,!0)}break}case It.TAB:case It.ENTER:{var fe,xe=M[W];xe&&!(xe!=null&&(fe=xe.data)!==null&&fe!==void 0&&fe.disabled)&&!k?V(xe.value):V(void 0),o&&X.preventDefault();break}case It.ESC:c(!1),o&&X.stopPropagation()}},onKeyUp:function(){},scrollTo:function(X){P(X)}}}),M.length===0)return m.createElement(\"div\",{role:\"listbox\",id:\"\".concat(i,\"_list\"),className:\"\".concat(I,\"-empty\"),onMouseDown:R},d);var U=Object.keys(S).map(function(J){return S[J]}),Q=function(X){return X.label};function K(J,X){var ce=J.group;return{role:ce?\"presentation\":\"option\",id:\"\".concat(i,\"_list_\").concat(X)}}var Y=function(X){var ce=M[X];if(!ce)return null;var oe=ce.data||{},ue=oe.value,ie=ce.group,fe=qn(oe,!0),xe=Q(ce);return ce?m.createElement(\"div\",Ce({\"aria-label\":typeof xe==\"string\"&&!ie?xe:null},fe,{key:X},K(ce,X),{\"aria-selected\":H(ue)}),ue):null},ee={role:\"listbox\",id:\"\".concat(i,\"_list\")};return m.createElement(m.Fragment,null,E&&m.createElement(\"div\",Ce({},ee,{style:{height:0,width:0,overflow:\"hidden\"}}),Y(W-1),Y(W),Y(W+1)),m.createElement(x6,{itemKey:\"key\",ref:T,data:M,height:D,itemHeight:A,fullHeight:!1,onMouseDown:R,onScroll:f,virtual:E,direction:w,innerProps:E?null:ee},function(J,X){var ce=J.group,oe=J.groupOption,ue=J.data,ie=J.label,fe=J.value,xe=ue.key;if(ce){var Ee,De=(Ee=ue.title)!==null&&Ee!==void 0?Ee:CH(ie)?ie.toString():void 0;return m.createElement(\"div\",{className:ne(I,\"\".concat(I,\"-group\"),ue.className),title:De},ie!==void 0?ie:xe)}var ye=ue.disabled,we=ue.title;ue.children;var Fe=ue.style,me=ue.className,Me=Xt(ue,BAe),je=wn(Me,U),lt=B(fe),tt=ye||!lt&&k,rt=\"\".concat(I,\"-option\"),dt=ne(I,rt,me,Z(Z(Z(Z({},\"\".concat(rt,\"-grouped\"),oe),\"\".concat(rt,\"-active\"),W===X&&!tt),\"\".concat(rt,\"-disabled\"),tt),\"\".concat(rt,\"-selected\"),lt)),Ve=Q(J),Ie=!x||typeof x==\"function\"||lt,Je=typeof Ve==\"number\"?Ve:Ve||fe,Pe=CH(Je)?Je.toString():void 0;return we!==void 0&&(Pe=we),m.createElement(\"div\",Ce({},qn(je),E?{}:K(J,X),{\"aria-selected\":H(fe),className:dt,title:Pe,onMouseMove:function(){W===X||tt||j(X)},onClick:function(){tt||V(fe)},style:Fe}),m.createElement(\"div\",{className:\"\".concat(rt,\"-content\")},typeof _==\"function\"?_(J,{index:X}):Je),m.isValidElement(x)||lt,Ie&&m.createElement(b6,{className:\"\".concat(I,\"-option-state\"),customizeIcon:x,customizeIconProps:{value:fe,disabled:tt,isSelected:lt}},lt?\"✓\":null))}))},$Ae=m.forwardRef(NAe);const LAe=function(e,t){var r=m.useRef({values:new Map,options:new Map}),n=m.useMemo(function(){var i=r.current,o=i.values,l=i.options,s=e.map(function(d){if(d.label===void 0){var f;return ae(ae({},d),{},{label:(f=o.get(d.value))===null||f===void 0?void 0:f.label})}return d}),u=new Map,c=new Map;return s.forEach(function(d){u.set(d.value,d),c.set(d.value,t.get(d.value)||l.get(d.value))}),r.current.values=u,r.current.options=c,s},[e,t]),a=m.useCallback(function(i){return t.get(i)||r.current.options.get(i)},[t]);return[n,a]};function M_(e,t){return fie(e).join(\"\").toUpperCase().includes(t)}const jAe=function(e,t,r,n,a){return m.useMemo(function(){if(!r||n===!1)return e;var i=t.options,o=t.label,l=t.value,s=[],u=typeof n==\"function\",c=r.toUpperCase(),d=u?n:function(h,p){return a?M_(p[a],c):p[i]?M_(p[o!==\"children\"?o:\"label\"],c):M_(p[l],c)},f=u?function(h){return SR(h)}:function(h){return h};return e.forEach(function(h){if(h[i]){var p=d(r,f(h));if(p)s.push(h);else{var v=h[i].filter(function(g){return d(r,f(g))});v.length&&s.push(ae(ae({},h),{},Z({},i,v)))}return}d(r,f(h))&&s.push(h)}),s},[e,n,a,r,t])};var FH=0,zAe=ki();function HAe(){var e;return zAe?(e=FH,FH+=1):e=\"TEST_OR_SSR\",e}function VAe(e){var t=m.useState(),r=ve(t,2),n=r[0],a=r[1];return m.useEffect(function(){a(\"rc_select_\".concat(HAe()))},[]),e||n}var WAe=[\"children\",\"value\"],GAe=[\"children\"];function UAe(e){var t=e,r=t.key,n=t.props,a=n.children,i=n.value,o=Xt(n,WAe);return ae({key:r,value:i!==void 0?i:r,children:a},o)}function gie(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return ba(e).map(function(r,n){if(!m.isValidElement(r)||!r.type)return null;var a=r,i=a.type.isSelectOptGroup,o=a.key,l=a.props,s=l.children,u=Xt(l,GAe);return t||!i?UAe(r):ae(ae({key:\"__RC_SELECT_GRP__\".concat(o===null?n:o,\"__\"),label:o},u),{},{options:gie(s)})}).filter(function(r){return r})}var KAe=function(t,r,n,a,i){return m.useMemo(function(){var o=t,l=!t;l&&(o=gie(r));var s=new Map,u=new Map,c=function(h,p,v){v&&typeof v==\"string\"&&h.set(p[v],p)},d=function f(h){for(var p=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,v=0;v<h.length;v+=1){var g=h[v];!g[n.options]||p?(s.set(g[n.value],g),c(u,g,n.label),c(u,g,a),c(u,g,i)):f(g[n.options],!0)}};return d(o),{options:o,valueOptions:s,labelOptions:u}},[t,r,n,a,i])};function SH(e){var t=m.useRef();t.current=e;var r=m.useCallback(function(){return t.current.apply(t,arguments)},[]);return r}var YAe=[\"id\",\"mode\",\"prefixCls\",\"backfill\",\"fieldNames\",\"inputValue\",\"searchValue\",\"onSearch\",\"autoClearSearchValue\",\"onSelect\",\"onDeselect\",\"dropdownMatchSelectWidth\",\"filterOption\",\"filterSort\",\"optionFilterProp\",\"optionLabelProp\",\"options\",\"optionRender\",\"children\",\"defaultActiveFirstOption\",\"menuItemSelectedIcon\",\"virtual\",\"direction\",\"listHeight\",\"listItemHeight\",\"labelRender\",\"value\",\"defaultValue\",\"labelInValue\",\"onChange\",\"maxCount\"],qAe=[\"inputValue\"];function XAe(e){return!e||Nt(e)!==\"object\"}var JAe=m.forwardRef(function(e,t){var r=e.id,n=e.mode,a=e.prefixCls,i=a===void 0?\"rc-select\":a,o=e.backfill,l=e.fieldNames,s=e.inputValue,u=e.searchValue,c=e.onSearch,d=e.autoClearSearchValue,f=d===void 0?!0:d,h=e.onSelect,p=e.onDeselect,v=e.dropdownMatchSelectWidth,g=v===void 0?!0:v,y=e.filterOption,b=e.filterSort,x=e.optionFilterProp,F=e.optionLabelProp,S=e.options,E=e.optionRender,w=e.children,D=e.defaultActiveFirstOption,A=e.menuItemSelectedIcon,_=e.virtual,I=e.direction,M=e.listHeight,T=M===void 0?200:M,k=e.listItemHeight,R=k===void 0?20:k,P=e.labelRender,B=e.value,N=e.defaultValue,O=e.labelInValue,z=e.onChange,W=e.maxCount,L=Xt(e,YAe),j=VAe(r),H=wR(n),V=!!(!S&&w),U=m.useMemo(function(){return y===void 0&&n===\"combobox\"?!1:y},[y,n]),Q=m.useMemo(function(){return pie(l,V)},[JSON.stringify(l),V]),K=un(\"\",{value:u!==void 0?u:s,postState:function(it){return it||\"\"}}),Y=ve(K,2),ee=Y[0],J=Y[1],X=KAe(S,w,Q,x,F),ce=X.valueOptions,oe=X.labelOptions,ue=X.options,ie=m.useCallback(function(mt){var it=fie(mt);return it.map(function(st){var Ct,te,pe,he,se;if(XAe(st))Ct=st;else{var de;pe=st.key,te=st.label,Ct=(de=st.value)!==null&&de!==void 0?de:pe}var ge=ce.get(Ct);if(ge){var Te;te===void 0&&(te=ge==null?void 0:ge[F||Q.label]),pe===void 0&&(pe=(Te=ge==null?void 0:ge.key)!==null&&Te!==void 0?Te:Ct),he=ge==null?void 0:ge.disabled,se=ge==null?void 0:ge.title}return{label:te,value:Ct,key:pe,disabled:he,title:se}})},[Q,F,ce]),fe=un(N,{value:B}),xe=ve(fe,2),Ee=xe[0],De=xe[1],ye=m.useMemo(function(){var mt,it=H&&Ee===null?[]:Ee,st=ie(it);return n===\"combobox\"&&HDe((mt=st[0])===null||mt===void 0?void 0:mt.value)?[]:st},[Ee,ie,n,H]),we=LAe(ye,ce),Fe=ve(we,2),me=Fe[0],Me=Fe[1],je=m.useMemo(function(){if(!n&&me.length===1){var mt=me[0];if(mt.value===null&&(mt.label===null||mt.label===void 0))return[]}return me.map(function(it){var st;return ae(ae({},it),{},{label:(st=typeof P==\"function\"?P(it):it.label)!==null&&st!==void 0?st:it.value})})},[n,me,P]),lt=m.useMemo(function(){return new Set(me.map(function(mt){return mt.value}))},[me]);m.useEffect(function(){if(n===\"combobox\"){var mt,it=(mt=me[0])===null||mt===void 0?void 0:mt.value;J(zDe(it)?String(it):\"\")}},[me]);var tt=SH(function(mt,it){var st=it??mt;return Z(Z({},Q.value,mt),Q.label,st)}),rt=m.useMemo(function(){if(n!==\"tags\")return ue;var mt=He(ue),it=function(Ct){return ce.has(Ct)};return He(me).sort(function(st,Ct){return st.value<Ct.value?-1:1}).forEach(function(st){var Ct=st.value;it(Ct)||mt.push(tt(Ct,st.label))}),mt},[tt,ue,ce,me,n]),dt=jAe(rt,Q,ee,U,x),Ve=m.useMemo(function(){return n!==\"tags\"||!ee||dt.some(function(mt){return mt[x||\"value\"]===ee})||dt.some(function(mt){return mt[Q.value]===ee})?dt:[tt(ee)].concat(He(dt))},[tt,x,n,dt,ee,Q]),Ie=function mt(it){var st=He(it).sort(function(Ct,te){return b(Ct,te,{searchValue:ee})});return st.map(function(Ct){return Array.isArray(Ct.options)?ae(ae({},Ct),{},{options:Ct.options.length>0?mt(Ct.options):Ct.options}):Ct})},Je=m.useMemo(function(){return b?Ie(Ve):Ve},[Ve,b,ee]),Pe=m.useMemo(function(){return fAe(Je,{fieldNames:Q,childrenAsData:V})},[Je,Q,V]),Ge=function(it){var st=ie(it);if(De(st),z&&(st.length!==me.length||st.some(function(pe,he){var se;return((se=me[he])===null||se===void 0?void 0:se.value)!==(pe==null?void 0:pe.value)}))){var Ct=O?st:st.map(function(pe){return pe.value}),te=st.map(function(pe){return SR(Me(pe.value))});z(H?Ct:Ct[0],H?te:te[0])}},Ae=m.useState(null),_e=ve(Ae,2),$e=_e[0],Ke=_e[1],pt=m.useState(0),_t=ve(pt,2),ht=_t[0],gt=_t[1],Et=D!==void 0?D:n!==\"combobox\",xt=m.useCallback(function(mt,it){var st=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},Ct=st.source,te=Ct===void 0?\"keyboard\":Ct;gt(it),o&&n===\"combobox\"&&mt!==null&&te===\"keyboard\"&&Ke(String(mt))},[o,n]),Dt=function(it,st,Ct){var te=function(){var Oe,at=Me(it);return[O?{label:at==null?void 0:at[Q.label],value:it,key:(Oe=at==null?void 0:at.key)!==null&&Oe!==void 0?Oe:it}:it,SR(at)]};if(st&&h){var pe=te(),he=ve(pe,2),se=he[0],de=he[1];h(se,de)}else if(!st&&p&&Ct!==\"clear\"){var ge=te(),Te=ve(ge,2),We=Te[0],ke=Te[1];p(We,ke)}},ur=SH(function(mt,it){var st,Ct=H?it.selected:!0;Ct?st=H?[].concat(He(me),[mt]):[mt]:st=me.filter(function(te){return te.value!==mt}),Ge(st),Dt(mt,Ct),n===\"combobox\"?Ke(\"\"):(!wR||f)&&(J(\"\"),Ke(\"\"))}),mr=function(it,st){Ge(it);var Ct=st.type,te=st.values;(Ct===\"remove\"||Ct===\"clear\")&&te.forEach(function(pe){Dt(pe.value,!1,Ct)})},Tt=function(it,st){if(J(it),Ke(null),st.source===\"submit\"){var Ct=(it||\"\").trim();if(Ct){var te=Array.from(new Set([].concat(He(lt),[Ct])));Ge(te),Dt(Ct,!0),J(\"\")}return}st.source!==\"blur\"&&(n===\"combobox\"&&Ge(it),c==null||c(it))},jt=function(it){var st=it;n!==\"tags\"&&(st=it.map(function(te){var pe=oe.get(te);return pe==null?void 0:pe.value}).filter(function(te){return te!==void 0}));var Ct=Array.from(new Set([].concat(He(lt),He(st))));Ge(Ct),Ct.forEach(function(te){Dt(te,!0)})},Lt=m.useMemo(function(){var mt=_!==!1&&g!==!1;return ae(ae({},X),{},{flattenOptions:Pe,onActiveValue:xt,defaultActiveFirstOption:Et,onSelect:ur,menuItemSelectedIcon:A,rawValues:lt,fieldNames:Q,virtual:mt,direction:I,listHeight:T,listItemHeight:R,childrenAsData:V,maxCount:W,optionRender:E})},[W,X,Pe,xt,Et,ur,A,lt,Q,_,g,I,T,R,V,E]);return m.createElement(J7.Provider,{value:Lt},m.createElement(gAe,Ce({},L,{id:j,prefixCls:i,ref:t,omitDomProps:qAe,mode:n,displayValues:je,onDisplayValuesChange:mr,direction:I,searchValue:ee,onSearch:Tt,autoClearSearchValue:f,onSearchSplit:jt,dropdownMatchSelectWidth:g,OptionList:$Ae,emptyOptions:!Pe.length,activeValue:$e,activeDescendantId:\"\".concat(j,\"_list_\").concat(ht)})))}),eO=JAe;eO.Option=Q7;eO.OptGroup=Z7;function jf(e,t,r){return ne({[`${e}-status-success`]:t===\"success\",[`${e}-status-warning`]:t===\"warning\",[`${e}-status-error`]:t===\"error\",[`${e}-status-validating`]:t===\"validating\",[`${e}-has-feedback`]:r})}const vm=(e,t)=>t||e,ZAe=()=>{const[,e]=Mi(),[t]=Jo(\"Empty\"),n=new $r(e.colorBgBase).toHsl().l<.5?{opacity:.65}:{};return m.createElement(\"svg\",{style:n,width:\"184\",height:\"152\",viewBox:\"0 0 184 152\",xmlns:\"http://www.w3.org/2000/svg\"},m.createElement(\"title\",null,(t==null?void 0:t.description)||\"Empty\"),m.createElement(\"g\",{fill:\"none\",fillRule:\"evenodd\"},m.createElement(\"g\",{transform:\"translate(24 31.67)\"},m.createElement(\"ellipse\",{fillOpacity:\".8\",fill:\"#F5F5F7\",cx:\"67.797\",cy:\"106.89\",rx:\"67.797\",ry:\"12.668\"}),m.createElement(\"path\",{d:\"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z\",fill:\"#AEB8C2\"}),m.createElement(\"path\",{d:\"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z\",fill:\"url(#linearGradient-1)\",transform:\"translate(13.56)\"}),m.createElement(\"path\",{d:\"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z\",fill:\"#F5F5F7\"}),m.createElement(\"path\",{d:\"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z\",fill:\"#DCE0E6\"})),m.createElement(\"path\",{d:\"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z\",fill:\"#DCE0E6\"}),m.createElement(\"g\",{transform:\"translate(149.65 15.383)\",fill:\"#FFF\"},m.createElement(\"ellipse\",{cx:\"20.654\",cy:\"3.167\",rx:\"2.849\",ry:\"2.815\"}),m.createElement(\"path\",{d:\"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z\"}))))},QAe=()=>{const[,e]=Mi(),[t]=Jo(\"Empty\"),{colorFill:r,colorFillTertiary:n,colorFillQuaternary:a,colorBgContainer:i}=e,{borderColor:o,shadowColor:l,contentColor:s}=m.useMemo(()=>({borderColor:new $r(r).onBackground(i).toHexString(),shadowColor:new $r(n).onBackground(i).toHexString(),contentColor:new $r(a).onBackground(i).toHexString()}),[r,n,a,i]);return m.createElement(\"svg\",{width:\"64\",height:\"41\",viewBox:\"0 0 64 41\",xmlns:\"http://www.w3.org/2000/svg\"},m.createElement(\"title\",null,(t==null?void 0:t.description)||\"Empty\"),m.createElement(\"g\",{transform:\"translate(0 1)\",fill:\"none\",fillRule:\"evenodd\"},m.createElement(\"ellipse\",{fill:l,cx:\"32\",cy:\"33\",rx:\"32\",ry:\"7\"}),m.createElement(\"g\",{fillRule:\"nonzero\",stroke:o},m.createElement(\"path\",{d:\"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z\"}),m.createElement(\"path\",{d:\"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z\",fill:s}))))},e_e=e=>{const{componentCls:t,margin:r,marginXS:n,marginXL:a,fontSize:i,lineHeight:o}=e;return{[t]:{marginInline:n,fontSize:i,lineHeight:o,textAlign:\"center\",[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:n,opacity:e.opacityImage,img:{height:\"100%\"},svg:{maxWidth:\"100%\",height:\"100%\",margin:\"auto\"}},[`${t}-description`]:{color:e.colorTextDescription},[`${t}-footer`]:{marginTop:r},\"&-normal\":{marginBlock:a,color:e.colorTextDescription,[`${t}-description`]:{color:e.colorTextDescription},[`${t}-image`]:{height:e.emptyImgHeightMD}},\"&-small\":{marginBlock:n,color:e.colorTextDescription,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}},t_e=kr(\"Empty\",e=>{const{componentCls:t,controlHeightLG:r,calc:n}=e,a=Sr(e,{emptyImgCls:`${t}-img`,emptyImgHeight:n(r).mul(2.5).equal(),emptyImgHeightMD:r,emptyImgHeightSM:n(r).mul(.875).equal()});return e_e(a)});var r_e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const yie=m.createElement(ZAe,null),bie=m.createElement(QAe,null),ra=e=>{var t;const{className:r,rootClassName:n,prefixCls:a,image:i,description:o,children:l,imageStyle:s,style:u,classNames:c,styles:d}=e,f=r_e(e,[\"className\",\"rootClassName\",\"prefixCls\",\"image\",\"description\",\"children\",\"imageStyle\",\"style\",\"classNames\",\"styles\"]),{getPrefixCls:h,direction:p,className:v,style:g,classNames:y,styles:b,image:x}=na(\"empty\"),F=h(\"empty\",a),[S,E,w]=t_e(F),[D]=Jo(\"Empty\"),A=typeof o<\"u\"?o:D==null?void 0:D.description,_=typeof A==\"string\"?A:\"empty\",I=(t=i??x)!==null&&t!==void 0?t:yie;let M=null;return typeof I==\"string\"?M=m.createElement(\"img\",{draggable:!1,alt:_,src:I}):M=I,S(m.createElement(\"div\",Object.assign({className:ne(E,w,F,v,{[`${F}-normal`]:I===bie,[`${F}-rtl`]:p===\"rtl\"},r,n,y.root,c==null?void 0:c.root),style:Object.assign(Object.assign(Object.assign(Object.assign({},b.root),g),d==null?void 0:d.root),u)},f),m.createElement(\"div\",{className:ne(`${F}-image`,y.image,c==null?void 0:c.image),style:Object.assign(Object.assign(Object.assign({},s),b.image),d==null?void 0:d.image)},M),A&&m.createElement(\"div\",{className:ne(`${F}-description`,y.description,c==null?void 0:c.description),style:Object.assign(Object.assign({},b.description),d==null?void 0:d.description)},A),l&&m.createElement(\"div\",{className:ne(`${F}-footer`,y.footer,c==null?void 0:c.footer),style:Object.assign(Object.assign({},b.footer),d==null?void 0:d.footer)},l)))};ra.PRESENTED_IMAGE_DEFAULT=yie;ra.PRESENTED_IMAGE_SIMPLE=bie;const tO=e=>{const{componentName:t}=e,{getPrefixCls:r}=m.useContext(Ot),n=r(\"empty\");switch(t){case\"Table\":case\"List\":return le.createElement(ra,{image:ra.PRESENTED_IMAGE_SIMPLE});case\"Select\":case\"TreeSelect\":case\"Cascader\":case\"Transfer\":case\"Mentions\":return le.createElement(ra,{image:ra.PRESENTED_IMAGE_SIMPLE,className:`${n}-small`});case\"Table.filter\":return null;default:return le.createElement(ra,null)}},gm=(e,t,r)=>{var n,a;const{variant:i,[e]:o}=m.useContext(Ot),l=m.useContext(Oae),s=o==null?void 0:o.variant;let u;typeof t<\"u\"?u=t:r===!1?u=\"borderless\":u=(a=(n=l??s)!==null&&n!==void 0?n:i)!==null&&a!==void 0?a:\"outlined\";const c=vFe.includes(u);return[u,c]},n_e=e=>{const r={overflow:{adjustX:!0,adjustY:!0,shiftY:!0},htmlRegion:e===\"scroll\"?\"scroll\":\"visible\",dynamicInset:!0};return{bottomLeft:Object.assign(Object.assign({},r),{points:[\"tl\",\"bl\"],offset:[0,4]}),bottomRight:Object.assign(Object.assign({},r),{points:[\"tr\",\"br\"],offset:[0,4]}),topLeft:Object.assign(Object.assign({},r),{points:[\"bl\",\"tl\"],offset:[0,-4]}),topRight:Object.assign(Object.assign({},r),{points:[\"br\",\"tr\"],offset:[0,-4]})}};function a_e(e,t){return e||n_e(t)}const wH=e=>{const{optionHeight:t,optionFontSize:r,optionLineHeight:n,optionPadding:a}=e;return{position:\"relative\",display:\"block\",minHeight:t,padding:a,color:e.colorText,fontWeight:\"normal\",fontSize:r,lineHeight:n,boxSizing:\"border-box\"}},i_e=e=>{const{antCls:t,componentCls:r}=e,n=`${r}-item`,a=`&${t}-slide-up-enter${t}-slide-up-enter-active`,i=`&${t}-slide-up-appear${t}-slide-up-appear-active`,o=`&${t}-slide-up-leave${t}-slide-up-leave-active`,l=`${r}-dropdown-placement-`,s=`${n}-option-selected`;return[{[`${r}-dropdown`]:Object.assign(Object.assign({},Hr(e)),{position:\"absolute\",top:-9999,zIndex:e.zIndexPopup,boxSizing:\"border-box\",padding:e.paddingXXS,overflow:\"hidden\",fontSize:e.fontSize,fontVariant:\"initial\",backgroundColor:e.colorBgElevated,borderRadius:e.borderRadiusLG,outline:\"none\",boxShadow:e.boxShadowSecondary,[`\n ${a}${l}bottomLeft,\n ${i}${l}bottomLeft\n `]:{animationName:i6},[`\n ${a}${l}topLeft,\n ${i}${l}topLeft,\n ${a}${l}topRight,\n ${i}${l}topRight\n `]:{animationName:l6},[`${o}${l}bottomLeft`]:{animationName:o6},[`\n ${o}${l}topLeft,\n ${o}${l}topRight\n `]:{animationName:s6},\"&-hidden\":{display:\"none\"},[n]:Object.assign(Object.assign({},wH(e)),{cursor:\"pointer\",transition:`background ${e.motionDurationSlow} ease`,borderRadius:e.borderRadiusSM,\"&-group\":{color:e.colorTextDescription,fontSize:e.fontSizeSM,cursor:\"default\"},\"&-option\":{display:\"flex\",\"&-content\":Object.assign({flex:\"auto\"},$l),\"&-state\":{flex:\"none\",display:\"flex\",alignItems:\"center\"},[`&-active:not(${n}-option-disabled)`]:{backgroundColor:e.optionActiveBg},[`&-selected:not(${n}-option-disabled)`]:{color:e.optionSelectedColor,fontWeight:e.optionSelectedFontWeight,backgroundColor:e.optionSelectedBg,[`${n}-option-state`]:{color:e.colorPrimary}},\"&-disabled\":{[`&${n}-option-selected`]:{backgroundColor:e.colorBgContainerDisabled},color:e.colorTextDisabled,cursor:\"not-allowed\"},\"&-grouped\":{paddingInlineStart:e.calc(e.controlPaddingHorizontal).mul(2).equal()}},\"&-empty\":Object.assign(Object.assign({},wH(e)),{color:e.colorTextDisabled})}),[`${s}:has(+ ${s})`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${s}`]:{borderStartStartRadius:0,borderStartEndRadius:0}},\"&-rtl\":{direction:\"rtl\"}})},dc(e,\"slide-up\"),dc(e,\"slide-down\"),Y0(e,\"move-up\"),Y0(e,\"move-down\")]},xie=e=>{const{multipleSelectItemHeight:t,paddingXXS:r,lineWidth:n,INTERNAL_FIXED_ITEM_MARGIN:a}=e,i=e.max(e.calc(r).sub(n).equal(),0),o=e.max(e.calc(i).sub(a).equal(),0);return{basePadding:i,containerPadding:o,itemHeight:re(t),itemLineHeight:re(e.calc(t).sub(e.calc(e.lineWidth).mul(2)).equal())}},o_e=e=>{const{multipleSelectItemHeight:t,selectHeight:r,lineWidth:n}=e;return e.calc(r).sub(t).div(2).sub(n).equal()},Cie=e=>{const{componentCls:t,iconCls:r,borderRadiusSM:n,motionDurationSlow:a,paddingXS:i,multipleItemColorDisabled:o,multipleItemBorderColorDisabled:l,colorIcon:s,colorIconHover:u,INTERNAL_FIXED_ITEM_MARGIN:c}=e;return{[`${t}-selection-overflow`]:{position:\"relative\",display:\"flex\",flex:\"auto\",flexWrap:\"wrap\",maxWidth:\"100%\",\"&-item\":{flex:\"none\",alignSelf:\"center\",maxWidth:\"calc(100% - 4px)\",display:\"inline-flex\"},[`${t}-selection-item`]:{display:\"flex\",alignSelf:\"center\",flex:\"none\",boxSizing:\"border-box\",maxWidth:\"100%\",marginBlock:c,borderRadius:n,cursor:\"default\",transition:`font-size ${a}, line-height ${a}, height ${a}`,marginInlineEnd:e.calc(c).mul(2).equal(),paddingInlineStart:i,paddingInlineEnd:e.calc(i).div(2).equal(),[`${t}-disabled&`]:{color:o,borderColor:l,cursor:\"not-allowed\"},\"&-content\":{display:\"inline-block\",marginInlineEnd:e.calc(i).div(2).equal(),overflow:\"hidden\",whiteSpace:\"pre\",textOverflow:\"ellipsis\"},\"&-remove\":Object.assign(Object.assign({},pm()),{display:\"inline-flex\",alignItems:\"center\",color:s,fontWeight:\"bold\",fontSize:10,lineHeight:\"inherit\",cursor:\"pointer\",[`> ${r}`]:{verticalAlign:\"-0.2em\"},\"&:hover\":{color:u}})}}}},l_e=(e,t)=>{const{componentCls:r,INTERNAL_FIXED_ITEM_MARGIN:n}=e,a=`${r}-selection-overflow`,i=e.multipleSelectItemHeight,o=o_e(e),l=t?`${r}-${t}`:\"\",s=xie(e);return{[`${r}-multiple${l}`]:Object.assign(Object.assign({},Cie(e)),{[`${r}-selector`]:{display:\"flex\",alignItems:\"center\",width:\"100%\",height:\"100%\",paddingInline:s.basePadding,paddingBlock:s.containerPadding,borderRadius:e.borderRadius,[`${r}-disabled&`]:{background:e.multipleSelectorBgDisabled,cursor:\"not-allowed\"},\"&:after\":{display:\"inline-block\",width:0,margin:`${re(n)} 0`,lineHeight:re(i),visibility:\"hidden\",content:'\"\\\\a0\"'}},[`${r}-selection-item`]:{height:s.itemHeight,lineHeight:re(s.itemLineHeight)},[`${r}-selection-wrap`]:{alignSelf:\"flex-start\",\"&:after\":{lineHeight:re(i),marginBlock:n}},[`${r}-prefix`]:{marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(s.basePadding).equal()},[`${a}-item + ${a}-item,\n ${r}-prefix + ${r}-selection-wrap\n `]:{[`${r}-selection-search`]:{marginInlineStart:0},[`${r}-selection-placeholder`]:{insetInlineStart:0}},[`${a}-item-suffix`]:{minHeight:s.itemHeight,marginBlock:n},[`${r}-selection-search`]:{display:\"inline-flex\",position:\"relative\",maxWidth:\"100%\",marginInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(o).equal(),\"\\n &-input,\\n &-mirror\\n \":{height:i,fontFamily:e.fontFamily,lineHeight:re(i),transition:`all ${e.motionDurationSlow}`},\"&-input\":{width:\"100%\",minWidth:4.1},\"&-mirror\":{position:\"absolute\",top:0,insetInlineStart:0,insetInlineEnd:\"auto\",zIndex:999,whiteSpace:\"pre\",visibility:\"hidden\"}},[`${r}-selection-placeholder`]:{position:\"absolute\",top:\"50%\",insetInlineStart:e.calc(e.inputPaddingHorizontalBase).sub(s.basePadding).equal(),insetInlineEnd:e.inputPaddingHorizontalBase,transform:\"translateY(-50%)\",transition:`all ${e.motionDurationSlow}`}})}};function P_(e,t){const{componentCls:r}=e,n=t?`${r}-${t}`:\"\",a={[`${r}-multiple${n}`]:{fontSize:e.fontSize,[`${r}-selector`]:{[`${r}-show-search&`]:{cursor:\"text\"}},[`\n &${r}-show-arrow ${r}-selector,\n &${r}-allow-clear ${r}-selector\n `]:{paddingInlineEnd:e.calc(e.fontSizeIcon).add(e.controlPaddingHorizontal).equal()}}};return[l_e(e,t),a]}const s_e=e=>{const{componentCls:t}=e,r=Sr(e,{selectHeight:e.controlHeightSM,multipleSelectItemHeight:e.multipleItemHeightSM,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS}),n=Sr(e,{fontSize:e.fontSizeLG,selectHeight:e.controlHeightLG,multipleSelectItemHeight:e.multipleItemHeightLG,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius});return[P_(e),P_(r,\"sm\"),{[`${t}-multiple${t}-sm`]:{[`${t}-selection-placeholder`]:{insetInline:e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal()},[`${t}-selection-search`]:{marginInlineStart:2}}},P_(n,\"lg\")]};function O_(e,t){const{componentCls:r,inputPaddingHorizontalBase:n,borderRadius:a}=e,i=e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),o=t?`${r}-${t}`:\"\";return{[`${r}-single${o}`]:{fontSize:e.fontSize,height:e.controlHeight,[`${r}-selector`]:Object.assign(Object.assign({},Hr(e,!0)),{display:\"flex\",borderRadius:a,flex:\"1 1 auto\",[`${r}-selection-wrap:after`]:{lineHeight:re(i)},[`${r}-selection-search`]:{position:\"absolute\",inset:0,width:\"100%\",\"&-input\":{width:\"100%\",WebkitAppearance:\"textfield\"}},[`\n ${r}-selection-item,\n ${r}-selection-placeholder\n `]:{display:\"block\",padding:0,lineHeight:re(i),transition:`all ${e.motionDurationSlow}, visibility 0s`,alignSelf:\"center\"},[`${r}-selection-placeholder`]:{transition:\"none\",pointerEvents:\"none\"},[[\"&:after\",`${r}-selection-item:empty:after`,`${r}-selection-placeholder:empty:after`].join(\",\")]:{display:\"inline-block\",width:0,visibility:\"hidden\",content:'\"\\\\a0\"'}}),[`\n &${r}-show-arrow ${r}-selection-item,\n &${r}-show-arrow ${r}-selection-search,\n &${r}-show-arrow ${r}-selection-placeholder\n `]:{paddingInlineEnd:e.showArrowPaddingInlineEnd},[`&${r}-open ${r}-selection-item`]:{color:e.colorTextPlaceholder},[`&:not(${r}-customize-input)`]:{[`${r}-selector`]:{width:\"100%\",height:\"100%\",alignItems:\"center\",padding:`0 ${re(n)}`,[`${r}-selection-search-input`]:{height:i,fontSize:e.fontSize},\"&:after\":{lineHeight:re(i)}}},[`&${r}-customize-input`]:{[`${r}-selector`]:{\"&:after\":{display:\"none\"},[`${r}-selection-search`]:{position:\"static\",width:\"100%\"},[`${r}-selection-placeholder`]:{position:\"absolute\",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${re(n)}`,\"&:after\":{display:\"none\"}}}}}}}function u_e(e){const{componentCls:t}=e,r=e.calc(e.controlPaddingHorizontalSM).sub(e.lineWidth).equal();return[O_(e),O_(Sr(e,{controlHeight:e.controlHeightSM,borderRadius:e.borderRadiusSM}),\"sm\"),{[`${t}-single${t}-sm`]:{[`&:not(${t}-customize-input)`]:{[`${t}-selector`]:{padding:`0 ${re(r)}`},[`&${t}-show-arrow ${t}-selection-search`]:{insetInlineEnd:e.calc(r).add(e.calc(e.fontSize).mul(1.5)).equal()},[`\n &${t}-show-arrow ${t}-selection-item,\n &${t}-show-arrow ${t}-selection-placeholder\n `]:{paddingInlineEnd:e.calc(e.fontSize).mul(1.5).equal()}}}},O_(Sr(e,{controlHeight:e.singleItemHeightLG,fontSize:e.fontSizeLG,borderRadius:e.borderRadiusLG}),\"lg\")]}const c_e=e=>{const{fontSize:t,lineHeight:r,lineWidth:n,controlHeight:a,controlHeightSM:i,controlHeightLG:o,paddingXXS:l,controlPaddingHorizontal:s,zIndexPopupBase:u,colorText:c,fontWeightStrong:d,controlItemBgActive:f,controlItemBgHover:h,colorBgContainer:p,colorFillSecondary:v,colorBgContainerDisabled:g,colorTextDisabled:y,colorPrimaryHover:b,colorPrimary:x,controlOutline:F}=e,S=l*2,E=n*2,w=Math.min(a-S,a-E),D=Math.min(i-S,i-E),A=Math.min(o-S,o-E);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(l/2),zIndexPopup:u+50,optionSelectedColor:c,optionSelectedFontWeight:d,optionSelectedBg:f,optionActiveBg:h,optionPadding:`${(a-t*r)/2}px ${s}px`,optionFontSize:t,optionLineHeight:r,optionHeight:a,selectorBg:p,clearBg:p,singleItemHeightLG:o,multipleItemBg:v,multipleItemBorderColor:\"transparent\",multipleItemHeight:w,multipleItemHeightSM:D,multipleItemHeightLG:A,multipleSelectorBgDisabled:g,multipleItemColorDisabled:y,multipleItemBorderColorDisabled:\"transparent\",showArrowPaddingInlineEnd:Math.ceil(e.fontSize*1.25),hoverBorderColor:b,activeBorderColor:x,activeOutlineColor:F,selectAffixPadding:l}},Fie=(e,t)=>{const{componentCls:r,antCls:n,controlOutlineWidth:a}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{border:`${re(e.lineWidth)} ${e.lineType} ${t.borderColor}`,background:e.selectorBg},[`&:not(${r}-disabled):not(${r}-customize-input):not(${n}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{borderColor:t.hoverBorderHover},[`${r}-focused& ${r}-selector`]:{borderColor:t.activeBorderColor,boxShadow:`0 0 0 ${re(a)} ${t.activeOutlineColor}`,outline:0},[`${r}-prefix`]:{color:t.color}}}},EH=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},Fie(e,t))}),d_e=e=>({\"&-outlined\":Object.assign(Object.assign(Object.assign(Object.assign({},Fie(e,{borderColor:e.colorBorder,hoverBorderHover:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeOutlineColor:e.activeOutlineColor,color:e.colorText})),EH(e,{status:\"error\",borderColor:e.colorError,hoverBorderHover:e.colorErrorHover,activeBorderColor:e.colorError,activeOutlineColor:e.colorErrorOutline,color:e.colorError})),EH(e,{status:\"warning\",borderColor:e.colorWarning,hoverBorderHover:e.colorWarningHover,activeBorderColor:e.colorWarning,activeOutlineColor:e.colorWarningOutline,color:e.colorWarning})),{[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{background:e.colorBgContainerDisabled,color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.multipleItemBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`}})}),Sie=(e,t)=>{const{componentCls:r,antCls:n}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{background:t.bg,border:`${re(e.lineWidth)} ${e.lineType} transparent`,color:t.color},[`&:not(${r}-disabled):not(${r}-customize-input):not(${n}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{background:t.hoverBg},[`${r}-focused& ${r}-selector`]:{background:e.selectorBg,borderColor:t.activeBorderColor,outline:0}}}},DH=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},Sie(e,t))}),f_e=e=>({\"&-filled\":Object.assign(Object.assign(Object.assign(Object.assign({},Sie(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor,color:e.colorText})),DH(e,{status:\"error\",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,color:e.colorError})),DH(e,{status:\"warning\",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,color:e.colorWarning})),{[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{borderColor:e.colorBorder,background:e.colorBgContainerDisabled,color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.colorBgContainer,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`}})}),h_e=e=>({\"&-borderless\":{[`${e.componentCls}-selector`]:{background:\"transparent\",border:`${re(e.lineWidth)} ${e.lineType} transparent`},[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.multipleItemBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`},[`&${e.componentCls}-status-error`]:{[`${e.componentCls}-prefix, ${e.componentCls}-selection-item`]:{color:e.colorError}},[`&${e.componentCls}-status-warning`]:{[`${e.componentCls}-prefix, ${e.componentCls}-selection-item`]:{color:e.colorWarning}}}}),wie=(e,t)=>{const{componentCls:r,antCls:n}=e;return{[`&:not(${r}-customize-input) ${r}-selector`]:{borderWidth:`${re(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${t.borderColor} transparent`,background:e.selectorBg,borderRadius:0},[`&:not(${r}-disabled):not(${r}-customize-input):not(${n}-pagination-size-changer)`]:{[`&:hover ${r}-selector`]:{borderColor:`transparent transparent ${t.hoverBorderHover} transparent`},[`${r}-focused& ${r}-selector`]:{borderColor:`transparent transparent ${t.activeBorderColor} transparent`,outline:0},[`${r}-prefix`]:{color:t.color}}}},AH=(e,t)=>({[`&${e.componentCls}-status-${t.status}`]:Object.assign({},wie(e,t))}),p_e=e=>({\"&-underlined\":Object.assign(Object.assign(Object.assign(Object.assign({},wie(e,{borderColor:e.colorBorder,hoverBorderHover:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeOutlineColor:e.activeOutlineColor,color:e.colorText})),AH(e,{status:\"error\",borderColor:e.colorError,hoverBorderHover:e.colorErrorHover,activeBorderColor:e.colorError,activeOutlineColor:e.colorErrorOutline,color:e.colorError})),AH(e,{status:\"warning\",borderColor:e.colorWarning,hoverBorderHover:e.colorWarningHover,activeBorderColor:e.colorWarning,activeOutlineColor:e.colorWarningOutline,color:e.colorWarning})),{[`&${e.componentCls}-disabled`]:{[`&:not(${e.componentCls}-customize-input) ${e.componentCls}-selector`]:{color:e.colorTextDisabled}},[`&${e.componentCls}-multiple ${e.componentCls}-selection-item`]:{background:e.multipleItemBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`}})}),m_e=e=>({[e.componentCls]:Object.assign(Object.assign(Object.assign(Object.assign({},d_e(e)),f_e(e)),h_e(e)),p_e(e))}),v_e=e=>{const{componentCls:t}=e;return{position:\"relative\",transition:`all ${e.motionDurationMid} ${e.motionEaseInOut}`,input:{cursor:\"pointer\"},[`${t}-show-search&`]:{cursor:\"text\",input:{cursor:\"auto\",color:\"inherit\",height:\"100%\"}},[`${t}-disabled&`]:{cursor:\"not-allowed\",input:{cursor:\"not-allowed\"}}}},g_e=e=>{const{componentCls:t}=e;return{[`${t}-selection-search-input`]:{margin:0,padding:0,background:\"transparent\",border:\"none\",outline:\"none\",appearance:\"none\",fontFamily:\"inherit\",\"&::-webkit-search-cancel-button\":{display:\"none\",appearance:\"none\"}}}},y_e=e=>{const{antCls:t,componentCls:r,inputPaddingHorizontalBase:n,iconCls:a}=e,i={[`${r}-clear`]:{opacity:1,background:e.colorBgBase,borderRadius:\"50%\"}};return{[r]:Object.assign(Object.assign({},Hr(e)),{position:\"relative\",display:\"inline-flex\",cursor:\"pointer\",[`&:not(${r}-customize-input) ${r}-selector`]:Object.assign(Object.assign({},v_e(e)),g_e(e)),[`${r}-selection-item`]:Object.assign(Object.assign({flex:1,fontWeight:\"normal\",position:\"relative\",userSelect:\"none\"},$l),{[`> ${t}-typography`]:{display:\"inline\"}}),[`${r}-selection-placeholder`]:Object.assign(Object.assign({},$l),{flex:1,color:e.colorTextPlaceholder,pointerEvents:\"none\"}),[`${r}-arrow`]:Object.assign(Object.assign({},pm()),{position:\"absolute\",top:\"50%\",insetInlineStart:\"auto\",insetInlineEnd:n,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,lineHeight:1,textAlign:\"center\",pointerEvents:\"none\",display:\"flex\",alignItems:\"center\",transition:`opacity ${e.motionDurationSlow} ease`,[a]:{verticalAlign:\"top\",transition:`transform ${e.motionDurationSlow}`,\"> svg\":{verticalAlign:\"top\"},[`&:not(${r}-suffix)`]:{pointerEvents:\"auto\"}},[`${r}-disabled &`]:{cursor:\"not-allowed\"},\"> *:not(:last-child)\":{marginInlineEnd:8}}),[`${r}-selection-wrap`]:{display:\"flex\",width:\"100%\",position:\"relative\",minWidth:0,\"&:after\":{content:'\"\\\\a0\"',width:0,overflow:\"hidden\"}},[`${r}-prefix`]:{flex:\"none\",marginInlineEnd:e.selectAffixPadding},[`${r}-clear`]:{position:\"absolute\",top:\"50%\",insetInlineStart:\"auto\",insetInlineEnd:n,zIndex:1,display:\"inline-block\",width:e.fontSizeIcon,height:e.fontSizeIcon,marginTop:e.calc(e.fontSizeIcon).mul(-1).div(2).equal(),color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,fontStyle:\"normal\",lineHeight:1,textAlign:\"center\",textTransform:\"none\",cursor:\"pointer\",opacity:0,transition:`color ${e.motionDurationMid} ease, opacity ${e.motionDurationSlow} ease`,textRendering:\"auto\",transform:\"translateZ(0)\",\"&:before\":{display:\"block\"},\"&:hover\":{color:e.colorIcon}},\"@media(hover:none)\":i,\"&:hover\":i}),[`${r}-status`]:{\"&-error, &-warning, &-success, &-validating\":{[`&${r}-has-feedback`]:{[`${r}-clear`]:{insetInlineEnd:e.calc(n).add(e.fontSize).add(e.paddingXS).equal()}}}}}},b_e=e=>{const{componentCls:t}=e;return[{[t]:{[`&${t}-in-form-item`]:{width:\"100%\"}}},y_e(e),u_e(e),s_e(e),i_e(e),{[`${t}-rtl`]:{direction:\"rtl\"}},Fg(e,{borderElCls:`${t}-selector`,focusElCls:`${t}-focused`})]},x_e=kr(\"Select\",(e,{rootPrefixCls:t})=>{const r=Sr(e,{rootPrefixCls:t,inputPaddingHorizontalBase:e.calc(e.paddingSM).sub(1).equal(),multipleSelectItemHeight:e.multipleItemHeight,selectHeight:e.controlHeight});return[b_e(r),m_e(r)]},c_e,{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});var C_e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z\"}}]},name:\"check\",theme:\"outlined\"},F_e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:C_e}))},yx=m.forwardRef(F_e),S_e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z\"}}]},name:\"down\",theme:\"outlined\"},w_e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:S_e}))},bx=m.forwardRef(w_e),E_e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z\"}}]},name:\"search\",theme:\"outlined\"},D_e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:E_e}))},xa=m.forwardRef(D_e);function Eie({suffixIcon:e,clearIcon:t,menuItemSelectedIcon:r,removeIcon:n,loading:a,multiple:i,hasFeedback:o,prefixCls:l,showSuffixIcon:s,feedbackIcon:u,showArrow:c,componentName:d}){const f=t??m.createElement(xd,null),h=y=>e===null&&!o&&!c?null:m.createElement(m.Fragment,null,s!==!1&&y,o&&u);let p=null;if(e!==void 0)p=h(e);else if(a)p=h(m.createElement(cc,{spin:!0}));else{const y=`${l}-suffix`;p=({open:b,showSearch:x})=>h(b&&x?m.createElement(xa,{className:y}):m.createElement(bx,{className:y}))}let v=null;r!==void 0?v=r:i?v=m.createElement(yx,null):v=null;let g=null;return n!==void 0?g=n:g=m.createElement(wu,null),{clearIcon:f,suffixIcon:p,itemIcon:v,removeIcon:g}}function A_e(e){return le.useMemo(()=>{if(e)return(...t)=>le.createElement(gu,{space:!0},e.apply(void 0,t))},[e])}function __e(e,t){return t!==void 0?t:e!==null}var T_e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Die=\"SECRET_COMBOBOX_MODE_DO_NOT_USE\",I_e=(e,t)=>{var r,n,a,i,o;const{prefixCls:l,bordered:s,className:u,rootClassName:c,getPopupContainer:d,popupClassName:f,dropdownClassName:h,listHeight:p=256,placement:v,listItemHeight:g,size:y,disabled:b,notFoundContent:x,status:F,builtinPlacements:S,dropdownMatchSelectWidth:E,popupMatchSelectWidth:w,direction:D,style:A,allowClear:_,variant:I,dropdownStyle:M,transitionName:T,tagRender:k,maxCount:R,prefix:P,dropdownRender:B,popupRender:N,onDropdownVisibleChange:O,onOpenChange:z,styles:W,classNames:L}=e,j=T_e(e,[\"prefixCls\",\"bordered\",\"className\",\"rootClassName\",\"getPopupContainer\",\"popupClassName\",\"dropdownClassName\",\"listHeight\",\"placement\",\"listItemHeight\",\"size\",\"disabled\",\"notFoundContent\",\"status\",\"builtinPlacements\",\"dropdownMatchSelectWidth\",\"popupMatchSelectWidth\",\"direction\",\"style\",\"allowClear\",\"variant\",\"dropdownStyle\",\"transitionName\",\"tagRender\",\"maxCount\",\"prefix\",\"dropdownRender\",\"popupRender\",\"onDropdownVisibleChange\",\"onOpenChange\",\"styles\",\"classNames\"]),{getPopupContainer:H,getPrefixCls:V,renderEmpty:U,direction:Q,virtual:K,popupMatchSelectWidth:Y,popupOverflow:ee}=m.useContext(Ot),{showSearch:J,style:X,styles:ce,className:oe,classNames:ue}=na(\"select\"),[,ie]=Mi(),fe=g??(ie==null?void 0:ie.controlHeight),xe=V(\"select\",l),Ee=V(),De=D??Q,{compactSize:ye,compactItemClassnames:we}=Cc(xe,De),[Fe,me]=gm(\"select\",I,s),Me=Zn(xe),[je,lt,tt]=x_e(xe,Me),rt=m.useMemo(()=>{const{mode:Ct}=e;if(Ct!==\"combobox\")return Ct===Die?\"combobox\":Ct},[e.mode]),dt=rt===\"multiple\"||rt===\"tags\",Ve=__e(e.suffixIcon,e.showArrow),Ie=(r=w??E)!==null&&r!==void 0?r:Y,Je=((n=W==null?void 0:W.popup)===null||n===void 0?void 0:n.root)||((a=ce.popup)===null||a===void 0?void 0:a.root)||M,Pe=A_e(N||B),Ge=z||O,{status:Ae,hasFeedback:_e,isFormItemInput:$e,feedbackIcon:Ke}=m.useContext(pi),pt=vm(Ae,F);let _t;x!==void 0?_t=x:rt===\"combobox\"?_t=null:_t=(U==null?void 0:U(\"Select\"))||m.createElement(tO,{componentName:\"Select\"});const{suffixIcon:ht,itemIcon:gt,removeIcon:Et,clearIcon:xt}=Eie(Object.assign(Object.assign({},j),{multiple:dt,hasFeedback:_e,feedbackIcon:Ke,showSuffixIcon:Ve,prefixCls:xe,componentName:\"Select\"})),Dt=_===!0?{clearIcon:xt}:_,ur=wn(j,[\"suffixIcon\",\"itemIcon\"]),mr=ne(((i=L==null?void 0:L.popup)===null||i===void 0?void 0:i.root)||((o=ue==null?void 0:ue.popup)===null||o===void 0?void 0:o.root)||f||h,{[`${xe}-dropdown-${De}`]:De===\"rtl\"},c,ue.root,L==null?void 0:L.root,tt,Me,lt),Tt=Ta(Ct=>{var te;return(te=y??ye)!==null&&te!==void 0?te:Ct}),jt=m.useContext(Ui),Lt=b??jt,mt=ne({[`${xe}-lg`]:Tt===\"large\",[`${xe}-sm`]:Tt===\"small\",[`${xe}-rtl`]:De===\"rtl\",[`${xe}-${Fe}`]:me,[`${xe}-in-form-item`]:$e},jf(xe,pt,_e),we,oe,u,ue.root,L==null?void 0:L.root,c,tt,Me,lt),it=m.useMemo(()=>v!==void 0?v:De===\"rtl\"?\"bottomRight\":\"bottomLeft\",[v,De]),[st]=xc(\"SelectLike\",Je==null?void 0:Je.zIndex);return je(m.createElement(eO,Object.assign({ref:t,virtual:K,showSearch:J},ur,{style:Object.assign(Object.assign(Object.assign(Object.assign({},ce.root),W==null?void 0:W.root),X),A),dropdownMatchSelectWidth:Ie,transitionName:ml(Ee,\"slide-up\",T),builtinPlacements:a_e(S,ee),listHeight:p,listItemHeight:fe,mode:rt,prefixCls:xe,placement:it,direction:De,prefix:P,suffixIcon:ht,menuItemSelectedIcon:gt,removeIcon:Et,allowClear:Dt,notFoundContent:_t,className:mt,getPopupContainer:d||H,dropdownClassName:mr,disabled:Lt,dropdownStyle:Object.assign(Object.assign({},Je),{zIndex:st}),maxCount:dt?R:void 0,tagRender:dt?k:void 0,dropdownRender:Pe,onDropdownVisibleChange:Ge})))},Qe=m.forwardRef(I_e),k_e=g6(Qe,\"dropdownAlign\");Qe.SECRET_COMBOBOX_MODE_DO_NOT_USE=Die;Qe.Option=Q7;Qe.OptGroup=Z7;Qe._InternalPanelDoNotUseOrYouWillBeFired=k_e;const Aie=(e,t)=>{typeof(e==null?void 0:e.addEventListener)<\"u\"?e.addEventListener(\"change\",t):typeof(e==null?void 0:e.addListener)<\"u\"&&e.addListener(t)},_ie=(e,t)=>{typeof(e==null?void 0:e.removeEventListener)<\"u\"?e.removeEventListener(\"change\",t):typeof(e==null?void 0:e.removeListener)<\"u\"&&e.removeListener(t)},id=[\"xxl\",\"xl\",\"lg\",\"md\",\"sm\",\"xs\"],R_e=e=>({xs:`(max-width: ${e.screenXSMax}px)`,sm:`(min-width: ${e.screenSM}px)`,md:`(min-width: ${e.screenMD}px)`,lg:`(min-width: ${e.screenLG}px)`,xl:`(min-width: ${e.screenXL}px)`,xxl:`(min-width: ${e.screenXXL}px)`}),M_e=e=>{const t=e,r=[].concat(id).reverse();return r.forEach((n,a)=>{const i=n.toUpperCase(),o=`screen${i}Min`,l=`screen${i}`;if(!(t[o]<=t[l]))throw new Error(`${o}<=${l} fails : !(${t[o]}<=${t[l]})`);if(a<r.length-1){const s=`screen${i}Max`;if(!(t[l]<=t[s]))throw new Error(`${l}<=${s} fails : !(${t[l]}<=${t[s]})`);const c=`screen${r[a+1].toUpperCase()}Min`;if(!(t[s]<=t[c]))throw new Error(`${s}<=${c} fails : !(${t[s]}<=${t[c]})`)}}),e},Tie=(e,t)=>{if(t){for(const r of id)if(e[r]&&(t==null?void 0:t[r])!==void 0)return t[r]}},P_e=()=>{const[,e]=Mi(),t=R_e(M_e(e));return le.useMemo(()=>{const r=new Map;let n=-1,a={};return{responsiveMap:t,matchHandlers:{},dispatch(i){return a=i,r.forEach(o=>o(a)),r.size>=1},subscribe(i){return r.size||this.register(),n+=1,r.set(n,i),i(a),n},unsubscribe(i){r.delete(i),r.size||this.unregister()},register(){Object.entries(t).forEach(([i,o])=>{const l=({matches:u})=>{this.dispatch(Object.assign(Object.assign({},a),{[i]:u}))},s=window.matchMedia(o);Aie(s,l),this.matchHandlers[o]={mql:s,listener:l},l(s)})},unregister(){Object.values(t).forEach(i=>{const o=this.matchHandlers[i];_ie(o==null?void 0:o.mql,o==null?void 0:o.listener)}),r.clear()}}},[t])};function Eg(e=!0,t={}){const r=m.useRef(t),[,n]=O7(),a=P_e();return _r(()=>{const i=a.subscribe(o=>{r.current=o,e&&n()});return()=>a.unsubscribe(i)},[]),r.current}const DR=m.createContext({}),O_e=e=>{const{antCls:t,componentCls:r,iconCls:n,avatarBg:a,avatarColor:i,containerSize:o,containerSizeLG:l,containerSizeSM:s,textFontSize:u,textFontSizeLG:c,textFontSizeSM:d,iconFontSize:f,iconFontSizeLG:h,iconFontSizeSM:p,borderRadius:v,borderRadiusLG:g,borderRadiusSM:y,lineWidth:b,lineType:x}=e,F=(S,E,w,D)=>({width:S,height:S,borderRadius:\"50%\",fontSize:E,[`&${r}-square`]:{borderRadius:D},[`&${r}-icon`]:{fontSize:w,[`> ${n}`]:{margin:0}}});return{[r]:Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{position:\"relative\",display:\"inline-flex\",justifyContent:\"center\",alignItems:\"center\",overflow:\"hidden\",color:i,whiteSpace:\"nowrap\",textAlign:\"center\",verticalAlign:\"middle\",background:a,border:`${re(b)} ${x} transparent`,\"&-image\":{background:\"transparent\"},[`${t}-image-img`]:{display:\"block\"}}),F(o,u,f,v)),{\"&-lg\":Object.assign({},F(l,c,h,g)),\"&-sm\":Object.assign({},F(s,d,p,y)),\"> img\":{display:\"block\",width:\"100%\",height:\"100%\",objectFit:\"cover\"}})}},B_e=e=>{const{componentCls:t,groupBorderColor:r,groupOverlapping:n,groupSpace:a}=e;return{[`${t}-group`]:{display:\"inline-flex\",[t]:{borderColor:r},\"> *:not(:first-child)\":{marginInlineStart:n}},[`${t}-group-popover`]:{[`${t} + ${t}`]:{marginInlineStart:a}}}},N_e=e=>{const{controlHeight:t,controlHeightLG:r,controlHeightSM:n,fontSize:a,fontSizeLG:i,fontSizeXL:o,fontSizeHeading3:l,marginXS:s,marginXXS:u,colorBorderBg:c}=e;return{containerSize:t,containerSizeLG:r,containerSizeSM:n,textFontSize:a,textFontSizeLG:a,textFontSizeSM:a,iconFontSize:Math.round((i+o)/2),iconFontSizeLG:l,iconFontSizeSM:a,groupSpace:u,groupOverlapping:-s,groupBorderColor:c}},Iie=kr(\"Avatar\",e=>{const{colorTextLightSolid:t,colorTextPlaceholder:r}=e,n=Sr(e,{avatarBg:r,avatarColor:t});return[O_e(n),B_e(n)]},N_e);var $_e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const kie=m.forwardRef((e,t)=>{const{prefixCls:r,shape:n,size:a,src:i,srcSet:o,icon:l,className:s,rootClassName:u,style:c,alt:d,draggable:f,children:h,crossOrigin:p,gap:v=4,onError:g}=e,y=$_e(e,[\"prefixCls\",\"shape\",\"size\",\"src\",\"srcSet\",\"icon\",\"className\",\"rootClassName\",\"style\",\"alt\",\"draggable\",\"children\",\"crossOrigin\",\"gap\",\"onError\"]),[b,x]=m.useState(1),[F,S]=m.useState(!1),[E,w]=m.useState(!0),D=m.useRef(null),A=m.useRef(null),_=Qa(t,D),{getPrefixCls:I,avatar:M}=m.useContext(Ot),T=m.useContext(DR),k=()=>{if(!A.current||!D.current)return;const J=A.current.offsetWidth,X=D.current.offsetWidth;J!==0&&X!==0&&v*2<X&&x(X-v*2<J?(X-v*2)/J:1)};m.useEffect(()=>{S(!0)},[]),m.useEffect(()=>{w(!0),x(1)},[i]),m.useEffect(k,[v]);const R=()=>{(g==null?void 0:g())!==!1&&w(!1)},P=Ta(J=>{var X,ce;return(ce=(X=a??(T==null?void 0:T.size))!==null&&X!==void 0?X:J)!==null&&ce!==void 0?ce:\"default\"}),B=Object.keys(typeof P==\"object\"?P||{}:{}).some(J=>[\"xs\",\"sm\",\"md\",\"lg\",\"xl\",\"xxl\"].includes(J)),N=Eg(B),O=m.useMemo(()=>{if(typeof P!=\"object\")return{};const J=id.find(ce=>N[ce]),X=P[J];return X?{width:X,height:X,fontSize:X&&(l||h)?X/2:18}:{}},[N,P,l,h]),z=I(\"avatar\",r),W=Zn(z),[L,j,H]=Iie(z,W),V=ne({[`${z}-lg`]:P===\"large\",[`${z}-sm`]:P===\"small\"}),U=m.isValidElement(i),Q=n||(T==null?void 0:T.shape)||\"circle\",K=ne(z,V,M==null?void 0:M.className,`${z}-${Q}`,{[`${z}-image`]:U||i&&E,[`${z}-icon`]:!!l},H,W,s,u,j),Y=typeof P==\"number\"?{width:P,height:P,fontSize:l?P/2:18}:{};let ee;if(typeof i==\"string\"&&E)ee=m.createElement(\"img\",{src:i,draggable:f,srcSet:o,onError:R,alt:d,crossOrigin:p});else if(U)ee=i;else if(l)ee=l;else if(F||b!==1){const J=`scale(${b})`,X={msTransform:J,WebkitTransform:J,transform:J};ee=m.createElement(_i,{onResize:k},m.createElement(\"span\",{className:`${z}-string`,ref:A,style:X},h))}else ee=m.createElement(\"span\",{className:`${z}-string`,style:{opacity:0},ref:A},h);return L(m.createElement(\"span\",Object.assign({},y,{style:Object.assign(Object.assign(Object.assign(Object.assign({},Y),O),M==null?void 0:M.style),c),className:K,ref:_}),ee))}),q0=e=>e?typeof e==\"function\"?e():e:null;function rO(e){var t=e.children,r=e.prefixCls,n=e.id,a=e.overlayInnerStyle,i=e.bodyClassName,o=e.className,l=e.style;return m.createElement(\"div\",{className:ne(\"\".concat(r,\"-content\"),o),style:l},m.createElement(\"div\",{className:ne(\"\".concat(r,\"-inner\"),i),id:n,role:\"tooltip\",style:a},typeof t==\"function\"?t():t))}var Jm={shiftX:64,adjustY:1},Zm={adjustX:1,shiftY:!0},Yl=[0,0],L_e={left:{points:[\"cr\",\"cl\"],overflow:Zm,offset:[-4,0],targetOffset:Yl},right:{points:[\"cl\",\"cr\"],overflow:Zm,offset:[4,0],targetOffset:Yl},top:{points:[\"bc\",\"tc\"],overflow:Jm,offset:[0,-4],targetOffset:Yl},bottom:{points:[\"tc\",\"bc\"],overflow:Jm,offset:[0,4],targetOffset:Yl},topLeft:{points:[\"bl\",\"tl\"],overflow:Jm,offset:[0,-4],targetOffset:Yl},leftTop:{points:[\"tr\",\"tl\"],overflow:Zm,offset:[-4,0],targetOffset:Yl},topRight:{points:[\"br\",\"tr\"],overflow:Jm,offset:[0,-4],targetOffset:Yl},rightTop:{points:[\"tl\",\"tr\"],overflow:Zm,offset:[4,0],targetOffset:Yl},bottomRight:{points:[\"tr\",\"br\"],overflow:Jm,offset:[0,4],targetOffset:Yl},rightBottom:{points:[\"bl\",\"br\"],overflow:Zm,offset:[4,0],targetOffset:Yl},bottomLeft:{points:[\"tl\",\"bl\"],overflow:Jm,offset:[0,4],targetOffset:Yl},leftBottom:{points:[\"br\",\"bl\"],overflow:Zm,offset:[-4,0],targetOffset:Yl}},j_e=[\"overlayClassName\",\"trigger\",\"mouseEnterDelay\",\"mouseLeaveDelay\",\"overlayStyle\",\"prefixCls\",\"children\",\"onVisibleChange\",\"afterVisibleChange\",\"transitionName\",\"animation\",\"motion\",\"placement\",\"align\",\"destroyTooltipOnHide\",\"defaultVisible\",\"getTooltipContainer\",\"overlayInnerStyle\",\"arrowContent\",\"overlay\",\"id\",\"showArrow\",\"classNames\",\"styles\"],z_e=function(t,r){var n=t.overlayClassName,a=t.trigger,i=a===void 0?[\"hover\"]:a,o=t.mouseEnterDelay,l=o===void 0?0:o,s=t.mouseLeaveDelay,u=s===void 0?.1:s,c=t.overlayStyle,d=t.prefixCls,f=d===void 0?\"rc-tooltip\":d,h=t.children,p=t.onVisibleChange,v=t.afterVisibleChange,g=t.transitionName,y=t.animation,b=t.motion,x=t.placement,F=x===void 0?\"right\":x,S=t.align,E=S===void 0?{}:S,w=t.destroyTooltipOnHide,D=w===void 0?!1:w,A=t.defaultVisible,_=t.getTooltipContainer,I=t.overlayInnerStyle;t.arrowContent;var M=t.overlay,T=t.id,k=t.showArrow,R=k===void 0?!0:k,P=t.classNames,B=t.styles,N=Xt(t,j_e),O=hx(T),z=m.useRef(null);m.useImperativeHandle(r,function(){return z.current});var W=ae({},N);\"visible\"in t&&(W.popupVisible=t.visible);var L=function(){return m.createElement(rO,{key:\"content\",prefixCls:f,id:O,bodyClassName:P==null?void 0:P.body,overlayInnerStyle:ae(ae({},I),B==null?void 0:B.body)},M)},j=function(){var V=m.Children.only(h),U=(V==null?void 0:V.props)||{},Q=ae(ae({},U),{},{\"aria-describedby\":M?O:null});return m.cloneElement(h,Q)};return m.createElement(gx,Ce({popupClassName:ne(n,P==null?void 0:P.root),prefixCls:f,popup:L,action:i,builtinPlacements:L_e,popupPlacement:F,ref:z,popupAlign:E,getPopupContainer:_,onPopupVisibleChange:p,afterPopupVisibleChange:v,popupTransitionName:g,popupAnimation:y,popupMotion:b,defaultPopupVisible:A,autoDestroy:D,mouseLeaveDelay:u,popupStyle:ae(ae({},c),B==null?void 0:B.root),mouseEnterDelay:l,arrow:R},W),j())};const H_e=m.forwardRef(z_e);function C6(e){const{sizePopupArrow:t,borderRadiusXS:r,borderRadiusOuter:n}=e,a=t/2,i=0,o=a,l=n*1/Math.sqrt(2),s=a-n*(1-1/Math.sqrt(2)),u=a-r*(1/Math.sqrt(2)),c=n*(Math.sqrt(2)-1)+r*(1/Math.sqrt(2)),d=2*a-u,f=c,h=2*a-l,p=s,v=2*a-i,g=o,y=a*Math.sqrt(2)+n*(Math.sqrt(2)-2),b=n*(Math.sqrt(2)-1),x=`polygon(${b}px 100%, 50% ${b}px, ${2*a-b}px 100%, ${b}px 100%)`,F=`path('M ${i} ${o} A ${n} ${n} 0 0 0 ${l} ${s} L ${u} ${c} A ${r} ${r} 0 0 1 ${d} ${f} L ${h} ${p} A ${n} ${n} 0 0 0 ${v} ${g} Z')`;return{arrowShadowWidth:y,arrowPath:F,arrowPolygon:x}}const Rie=(e,t,r)=>{const{sizePopupArrow:n,arrowPolygon:a,arrowPath:i,arrowShadowWidth:o,borderRadiusXS:l,calc:s}=e;return{pointerEvents:\"none\",width:n,height:n,overflow:\"hidden\",\"&::before\":{position:\"absolute\",bottom:0,insetInlineStart:0,width:n,height:s(n).div(2).equal(),background:t,clipPath:{_multi_value_:!0,value:[a,i]},content:'\"\"'},\"&::after\":{content:'\"\"',position:\"absolute\",width:o,height:o,bottom:0,insetInline:0,margin:\"auto\",borderRadius:{_skip_check_:!0,value:`0 0 ${re(l)} 0`},transform:\"translateY(50%) rotate(-135deg)\",boxShadow:r,zIndex:0,background:\"transparent\"}}},Mie=8;function F6(e){const{contentRadius:t,limitVerticalRadius:r}=e,n=t>12?t+2:12;return{arrowOffsetHorizontal:n,arrowOffsetVertical:r?Mie:n}}function YC(e,t){return e?t:{}}function nO(e,t,r){const{componentCls:n,boxShadowPopoverArrow:a,arrowOffsetVertical:i,arrowOffsetHorizontal:o}=e,{arrowDistance:l=0,arrowPlacement:s={left:!0,right:!0,top:!0,bottom:!0}}=r||{};return{[n]:Object.assign(Object.assign(Object.assign(Object.assign({[`${n}-arrow`]:[Object.assign(Object.assign({position:\"absolute\",zIndex:1,display:\"block\"},Rie(e,t,a)),{\"&:before\":{background:t}})]},YC(!!s.top,{[[`&-placement-top > ${n}-arrow`,`&-placement-topLeft > ${n}-arrow`,`&-placement-topRight > ${n}-arrow`].join(\",\")]:{bottom:l,transform:\"translateY(100%) rotate(180deg)\"},[`&-placement-top > ${n}-arrow`]:{left:{_skip_check_:!0,value:\"50%\"},transform:\"translateX(-50%) translateY(100%) rotate(180deg)\"},\"&-placement-topLeft\":{\"--arrow-offset-horizontal\":o,[`> ${n}-arrow`]:{left:{_skip_check_:!0,value:o}}},\"&-placement-topRight\":{\"--arrow-offset-horizontal\":`calc(100% - ${re(o)})`,[`> ${n}-arrow`]:{right:{_skip_check_:!0,value:o}}}})),YC(!!s.bottom,{[[`&-placement-bottom > ${n}-arrow`,`&-placement-bottomLeft > ${n}-arrow`,`&-placement-bottomRight > ${n}-arrow`].join(\",\")]:{top:l,transform:\"translateY(-100%)\"},[`&-placement-bottom > ${n}-arrow`]:{left:{_skip_check_:!0,value:\"50%\"},transform:\"translateX(-50%) translateY(-100%)\"},\"&-placement-bottomLeft\":{\"--arrow-offset-horizontal\":o,[`> ${n}-arrow`]:{left:{_skip_check_:!0,value:o}}},\"&-placement-bottomRight\":{\"--arrow-offset-horizontal\":`calc(100% - ${re(o)})`,[`> ${n}-arrow`]:{right:{_skip_check_:!0,value:o}}}})),YC(!!s.left,{[[`&-placement-left > ${n}-arrow`,`&-placement-leftTop > ${n}-arrow`,`&-placement-leftBottom > ${n}-arrow`].join(\",\")]:{right:{_skip_check_:!0,value:l},transform:\"translateX(100%) rotate(90deg)\"},[`&-placement-left > ${n}-arrow`]:{top:{_skip_check_:!0,value:\"50%\"},transform:\"translateY(-50%) translateX(100%) rotate(90deg)\"},[`&-placement-leftTop > ${n}-arrow`]:{top:i},[`&-placement-leftBottom > ${n}-arrow`]:{bottom:i}})),YC(!!s.right,{[[`&-placement-right > ${n}-arrow`,`&-placement-rightTop > ${n}-arrow`,`&-placement-rightBottom > ${n}-arrow`].join(\",\")]:{left:{_skip_check_:!0,value:l},transform:\"translateX(-100%) rotate(-90deg)\"},[`&-placement-right > ${n}-arrow`]:{top:{_skip_check_:!0,value:\"50%\"},transform:\"translateY(-50%) translateX(-100%) rotate(-90deg)\"},[`&-placement-rightTop > ${n}-arrow`]:{top:i},[`&-placement-rightBottom > ${n}-arrow`]:{bottom:i}}))}}function V_e(e,t,r,n){if(n===!1)return{adjustX:!1,adjustY:!1};const a=n&&typeof n==\"object\"?n:{},i={};switch(e){case\"top\":case\"bottom\":i.shiftX=t.arrowOffsetHorizontal*2+r,i.shiftY=!0,i.adjustY=!0;break;case\"left\":case\"right\":i.shiftY=t.arrowOffsetVertical*2+r,i.shiftX=!0,i.adjustX=!0;break}const o=Object.assign(Object.assign({},i),a);return o.shiftX||(o.adjustX=!0),o.shiftY||(o.adjustY=!0),o}const _H={left:{points:[\"cr\",\"cl\"]},right:{points:[\"cl\",\"cr\"]},top:{points:[\"bc\",\"tc\"]},bottom:{points:[\"tc\",\"bc\"]},topLeft:{points:[\"bl\",\"tl\"]},leftTop:{points:[\"tr\",\"tl\"]},topRight:{points:[\"br\",\"tr\"]},rightTop:{points:[\"tl\",\"tr\"]},bottomRight:{points:[\"tr\",\"br\"]},rightBottom:{points:[\"bl\",\"br\"]},bottomLeft:{points:[\"tl\",\"bl\"]},leftBottom:{points:[\"br\",\"bl\"]}},W_e={topLeft:{points:[\"bl\",\"tc\"]},leftTop:{points:[\"tr\",\"cl\"]},topRight:{points:[\"br\",\"tc\"]},rightTop:{points:[\"tl\",\"cr\"]},bottomRight:{points:[\"tr\",\"bc\"]},rightBottom:{points:[\"bl\",\"cr\"]},bottomLeft:{points:[\"tl\",\"bc\"]},leftBottom:{points:[\"br\",\"cl\"]}},G_e=new Set([\"topLeft\",\"topRight\",\"bottomLeft\",\"bottomRight\",\"leftTop\",\"leftBottom\",\"rightTop\",\"rightBottom\"]);function Pie(e){const{arrowWidth:t,autoAdjustOverflow:r,arrowPointAtCenter:n,offset:a,borderRadius:i,visibleFirst:o}=e,l=t/2,s={},u=F6({contentRadius:i,limitVerticalRadius:!0});return Object.keys(_H).forEach(c=>{const d=n&&W_e[c]||_H[c],f=Object.assign(Object.assign({},d),{offset:[0,0],dynamicInset:!0});switch(s[c]=f,G_e.has(c)&&(f.autoArrow=!1),c){case\"top\":case\"topLeft\":case\"topRight\":f.offset[1]=-l-a;break;case\"bottom\":case\"bottomLeft\":case\"bottomRight\":f.offset[1]=l+a;break;case\"left\":case\"leftTop\":case\"leftBottom\":f.offset[0]=-l-a;break;case\"right\":case\"rightTop\":case\"rightBottom\":f.offset[0]=l+a;break}if(n)switch(c){case\"topLeft\":case\"bottomLeft\":f.offset[0]=-u.arrowOffsetHorizontal-l;break;case\"topRight\":case\"bottomRight\":f.offset[0]=u.arrowOffsetHorizontal+l;break;case\"leftTop\":case\"rightTop\":f.offset[1]=-u.arrowOffsetHorizontal*2+l;break;case\"leftBottom\":case\"rightBottom\":f.offset[1]=u.arrowOffsetHorizontal*2-l;break}f.overflow=V_e(c,u,t,r),o&&(f.htmlRegion=\"visibleFirst\")}),s}const U_e=e=>{const{calc:t,componentCls:r,tooltipMaxWidth:n,tooltipColor:a,tooltipBg:i,tooltipBorderRadius:o,zIndexPopup:l,controlHeight:s,boxShadowSecondary:u,paddingSM:c,paddingXS:d,arrowOffsetHorizontal:f,sizePopupArrow:h}=e,p=t(o).add(h).add(f).equal(),v=t(o).mul(2).add(h).equal();return[{[r]:Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{position:\"absolute\",zIndex:l,display:\"block\",width:\"max-content\",maxWidth:n,visibility:\"visible\",\"--valid-offset-x\":\"var(--arrow-offset-horizontal, var(--arrow-x))\",transformOrigin:[\"var(--valid-offset-x, 50%)\",\"var(--arrow-y, 50%)\"].join(\" \"),\"&-hidden\":{display:\"none\"},\"--antd-arrow-background-color\":i,[`${r}-inner`]:{minWidth:v,minHeight:s,padding:`${re(e.calc(c).div(2).equal())} ${re(d)}`,color:`var(--ant-tooltip-color, ${a})`,textAlign:\"start\",textDecoration:\"none\",wordWrap:\"break-word\",backgroundColor:i,borderRadius:o,boxShadow:u,boxSizing:\"border-box\"},[[\"&-placement-topLeft\",\"&-placement-topRight\",\"&-placement-bottomLeft\",\"&-placement-bottomRight\"].join(\",\")]:{minWidth:p},[[\"&-placement-left\",\"&-placement-leftTop\",\"&-placement-leftBottom\",\"&-placement-right\",\"&-placement-rightTop\",\"&-placement-rightBottom\"].join(\",\")]:{[`${r}-inner`]:{borderRadius:e.min(o,Mie)}},[`${r}-content`]:{position:\"relative\"}}),e6(e,(g,{darkColor:y})=>({[`&${r}-${g}`]:{[`${r}-inner`]:{backgroundColor:y},[`${r}-arrow`]:{\"--antd-arrow-background-color\":y}}}))),{\"&-rtl\":{direction:\"rtl\"}})},nO(e,\"var(--antd-arrow-background-color)\"),{[`${r}-pure`]:{position:\"relative\",maxWidth:\"none\",margin:e.sizePopupArrow}}]},K_e=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+70},F6({contentRadius:e.borderRadius,limitVerticalRadius:!0})),C6(Sr(e,{borderRadiusOuter:Math.min(e.borderRadiusOuter,4)}))),Oie=(e,t=!0)=>kr(\"Tooltip\",n=>{const{borderRadius:a,colorTextLightSolid:i,colorBgSpotlight:o}=n,l=Sr(n,{tooltipMaxWidth:250,tooltipColor:i,tooltipBorderRadius:a,tooltipBg:o});return[U_e(l),Cg(n,\"zoom-big-fast\")]},K_e,{resetStyle:!1,injectStyle:t})(e),Y_e=Lf.map(e=>`${e}-inverse`),q_e=[\"success\",\"processing\",\"error\",\"default\",\"warning\"];function S6(e,t=!0){return t?[].concat(He(Y_e),He(Lf)).includes(e):Lf.includes(e)}function X_e(e){return q_e.includes(e)}function Bie(e,t){const r=S6(t),n=ne({[`${e}-${t}`]:t&&r}),a={},i={},o=y3e(t).toRgb(),s=(.299*o.r+.587*o.g+.114*o.b)/255<.5?\"#FFF\":\"#000\";return t&&!r&&(a.background=t,a[\"--ant-tooltip-color\"]=s,i[\"--antd-arrow-background-color\"]=t),{className:n,overlayStyle:a,arrowStyle:i}}const J_e=e=>{const{prefixCls:t,className:r,placement:n=\"top\",title:a,color:i,overlayInnerStyle:o}=e,{getPrefixCls:l}=m.useContext(Ot),s=l(\"tooltip\",t),[u,c,d]=Oie(s),f=Bie(s,i),h=f.arrowStyle,p=Object.assign(Object.assign({},o),f.overlayStyle),v=ne(c,d,s,`${s}-pure`,`${s}-placement-${n}`,r,f.className);return u(m.createElement(\"div\",{className:v,style:h},m.createElement(\"div\",{className:`${s}-arrow`}),m.createElement(rO,Object.assign({},e,{className:c,prefixCls:s,overlayInnerStyle:p}),a)))};var Z_e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Q_e=m.forwardRef((e,t)=>{var r,n;const{prefixCls:a,openClassName:i,getTooltipContainer:o,color:l,overlayInnerStyle:s,children:u,afterOpenChange:c,afterVisibleChange:d,destroyTooltipOnHide:f,destroyOnHidden:h,arrow:p=!0,title:v,overlay:g,builtinPlacements:y,arrowPointAtCenter:b=!1,autoAdjustOverflow:x=!0,motion:F,getPopupContainer:S,placement:E=\"top\",mouseEnterDelay:w=.1,mouseLeaveDelay:D=.1,overlayStyle:A,rootClassName:_,overlayClassName:I,styles:M,classNames:T}=e,k=Z_e(e,[\"prefixCls\",\"openClassName\",\"getTooltipContainer\",\"color\",\"overlayInnerStyle\",\"children\",\"afterOpenChange\",\"afterVisibleChange\",\"destroyTooltipOnHide\",\"destroyOnHidden\",\"arrow\",\"title\",\"overlay\",\"builtinPlacements\",\"arrowPointAtCenter\",\"autoAdjustOverflow\",\"motion\",\"getPopupContainer\",\"placement\",\"mouseEnterDelay\",\"mouseLeaveDelay\",\"overlayStyle\",\"rootClassName\",\"overlayClassName\",\"styles\",\"classNames\"]),R=!!p,[,P]=Mi(),{getPopupContainer:B,getPrefixCls:N,direction:O,className:z,style:W,classNames:L,styles:j}=na(\"tooltip\"),H=bc(),V=m.useRef(null),U=()=>{var Ve;(Ve=V.current)===null||Ve===void 0||Ve.forceAlign()};m.useImperativeHandle(t,()=>{var Ve,Ie;return{forceAlign:U,forcePopupAlign:()=>{H.deprecated(!1,\"forcePopupAlign\",\"forceAlign\"),U()},nativeElement:(Ve=V.current)===null||Ve===void 0?void 0:Ve.nativeElement,popupElement:(Ie=V.current)===null||Ie===void 0?void 0:Ie.popupElement}});const[Q,K]=un(!1,{value:(r=e.open)!==null&&r!==void 0?r:e.visible,defaultValue:(n=e.defaultOpen)!==null&&n!==void 0?n:e.defaultVisible}),Y=!v&&!g&&v!==0,ee=Ve=>{var Ie,Je;K(Y?!1:Ve),Y||((Ie=e.onOpenChange)===null||Ie===void 0||Ie.call(e,Ve),(Je=e.onVisibleChange)===null||Je===void 0||Je.call(e,Ve))},J=m.useMemo(()=>{var Ve,Ie;let Je=b;return typeof p==\"object\"&&(Je=(Ie=(Ve=p.pointAtCenter)!==null&&Ve!==void 0?Ve:p.arrowPointAtCenter)!==null&&Ie!==void 0?Ie:b),y||Pie({arrowPointAtCenter:Je,autoAdjustOverflow:x,arrowWidth:R?P.sizePopupArrow:0,borderRadius:P.borderRadius,offset:P.marginXXS,visibleFirst:!0})},[b,p,y,P]),X=m.useMemo(()=>v===0?v:g||v||\"\",[g,v]),ce=m.createElement(gu,{space:!0},typeof X==\"function\"?X():X),oe=N(\"tooltip\",a),ue=N(),ie=e[\"data-popover-inject\"];let fe=Q;!(\"open\"in e)&&!(\"visible\"in e)&&Y&&(fe=!1);const xe=m.isValidElement(u)&&!Jne(u)?u:m.createElement(\"span\",null,u),Ee=xe.props,De=!Ee.className||typeof Ee.className==\"string\"?ne(Ee.className,i||`${oe}-open`):Ee.className,[ye,we,Fe]=Oie(oe,!ie),me=Bie(oe,l),Me=me.arrowStyle,je=ne(I,{[`${oe}-rtl`]:O===\"rtl\"},me.className,_,we,Fe,z,L.root,T==null?void 0:T.root),lt=ne(L.body,T==null?void 0:T.body),[tt,rt]=xc(\"Tooltip\",k.zIndex),dt=m.createElement(H_e,Object.assign({},k,{zIndex:tt,showArrow:R,placement:E,mouseEnterDelay:w,mouseLeaveDelay:D,prefixCls:oe,classNames:{root:je,body:lt},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Me),j.root),W),A),M==null?void 0:M.root),body:Object.assign(Object.assign(Object.assign(Object.assign({},j.body),s),M==null?void 0:M.body),me.overlayStyle)},getTooltipContainer:S||o||B,ref:V,builtinPlacements:J,overlay:ce,visible:fe,onVisibleChange:ee,afterVisibleChange:c??d,arrowContent:m.createElement(\"span\",{className:`${oe}-arrow-content`}),motion:{motionName:ml(ue,\"zoom-big-fast\",e.transitionName),motionDeadline:1e3},destroyTooltipOnHide:h??!!f}),fe?oa(xe,{className:De}):xe);return ye(m.createElement(lx.Provider,{value:rt},dt))}),Dr=Q_e;Dr._InternalPanelDoNotUseOrYouWillBeFired=J_e;const e5e=e=>{const{componentCls:t,popoverColor:r,titleMinWidth:n,fontWeightStrong:a,innerPadding:i,boxShadowSecondary:o,colorTextHeading:l,borderRadiusLG:s,zIndexPopup:u,titleMarginBottom:c,colorBgElevated:d,popoverBg:f,titleBorderBottom:h,innerContentPadding:p,titlePadding:v}=e;return[{[t]:Object.assign(Object.assign({},Hr(e)),{position:\"absolute\",top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:\"normal\",whiteSpace:\"normal\",textAlign:\"start\",cursor:\"auto\",userSelect:\"text\",\"--valid-offset-x\":\"var(--arrow-offset-horizontal, var(--arrow-x))\",transformOrigin:[\"var(--valid-offset-x, 50%)\",\"var(--arrow-y, 50%)\"].join(\" \"),\"--antd-arrow-background-color\":d,width:\"max-content\",maxWidth:\"100vw\",\"&-rtl\":{direction:\"rtl\"},\"&-hidden\":{display:\"none\"},[`${t}-content`]:{position:\"relative\"},[`${t}-inner`]:{backgroundColor:f,backgroundClip:\"padding-box\",borderRadius:s,boxShadow:o,padding:i},[`${t}-title`]:{minWidth:n,marginBottom:c,color:l,fontWeight:a,borderBottom:h,padding:v},[`${t}-inner-content`]:{color:r,padding:p}})},nO(e,\"var(--antd-arrow-background-color)\"),{[`${t}-pure`]:{position:\"relative\",maxWidth:\"none\",margin:e.sizePopupArrow,display:\"inline-block\",[`${t}-content`]:{display:\"inline-block\"}}}]},t5e=e=>{const{componentCls:t}=e;return{[t]:Lf.map(r=>{const n=e[`${r}6`];return{[`&${t}-${r}`]:{\"--antd-arrow-background-color\":n,[`${t}-inner`]:{backgroundColor:n},[`${t}-arrow`]:{background:\"transparent\"}}}})}},r5e=e=>{const{lineWidth:t,controlHeight:r,fontHeight:n,padding:a,wireframe:i,zIndexPopupBase:o,borderRadiusLG:l,marginXS:s,lineType:u,colorSplit:c,paddingSM:d}=e,f=r-n,h=f/2,p=f/2-t,v=a;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:o+30},C6(e)),F6({contentRadius:l,limitVerticalRadius:!0})),{innerPadding:i?0:12,titleMarginBottom:i?0:s,titlePadding:i?`${h}px ${v}px ${p}px`:0,titleBorderBottom:i?`${t}px ${u} ${c}`:\"none\",innerContentPadding:i?`${d}px ${v}px`:0})},Nie=kr(\"Popover\",e=>{const{colorBgElevated:t,colorText:r}=e,n=Sr(e,{popoverBg:t,popoverColor:r});return[e5e(n),t5e(n),Cg(n,\"zoom-big\")]},r5e,{resetStyle:!1,deprecatedTokens:[[\"width\",\"titleMinWidth\"],[\"minWidth\",\"titleMinWidth\"]]});var n5e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const $ie=({title:e,content:t,prefixCls:r})=>!e&&!t?null:m.createElement(m.Fragment,null,e&&m.createElement(\"div\",{className:`${r}-title`},e),t&&m.createElement(\"div\",{className:`${r}-inner-content`},t)),a5e=e=>{const{hashId:t,prefixCls:r,className:n,style:a,placement:i=\"top\",title:o,content:l,children:s}=e,u=q0(o),c=q0(l),d=ne(t,r,`${r}-pure`,`${r}-placement-${i}`,n);return m.createElement(\"div\",{className:d,style:a},m.createElement(\"div\",{className:`${r}-arrow`}),m.createElement(rO,Object.assign({},e,{className:t,prefixCls:r}),s||m.createElement($ie,{prefixCls:r,title:u,content:c})))},Lie=e=>{const{prefixCls:t,className:r}=e,n=n5e(e,[\"prefixCls\",\"className\"]),{getPrefixCls:a}=m.useContext(Ot),i=a(\"popover\",t),[o,l,s]=Nie(i);return o(m.createElement(a5e,Object.assign({},n,{prefixCls:i,hashId:l,className:ne(r,s)})))};var i5e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const o5e=m.forwardRef((e,t)=>{var r,n;const{prefixCls:a,title:i,content:o,overlayClassName:l,placement:s=\"top\",trigger:u=\"hover\",children:c,mouseEnterDelay:d=.1,mouseLeaveDelay:f=.1,onOpenChange:h,overlayStyle:p={},styles:v,classNames:g}=e,y=i5e(e,[\"prefixCls\",\"title\",\"content\",\"overlayClassName\",\"placement\",\"trigger\",\"children\",\"mouseEnterDelay\",\"mouseLeaveDelay\",\"onOpenChange\",\"overlayStyle\",\"styles\",\"classNames\"]),{getPrefixCls:b,className:x,style:F,classNames:S,styles:E}=na(\"popover\"),w=b(\"popover\",a),[D,A,_]=Nie(w),I=b(),M=ne(l,A,_,x,S.root,g==null?void 0:g.root),T=ne(S.body,g==null?void 0:g.body),[k,R]=un(!1,{value:(r=e.open)!==null&&r!==void 0?r:e.visible,defaultValue:(n=e.defaultOpen)!==null&&n!==void 0?n:e.defaultVisible}),P=(W,L)=>{R(W,!0),h==null||h(W,L)},B=W=>{W.keyCode===It.ESC&&P(!1,W)},N=W=>{P(W)},O=q0(i),z=q0(o);return D(m.createElement(Dr,Object.assign({placement:s,trigger:u,mouseEnterDelay:d,mouseLeaveDelay:f},y,{prefixCls:w,classNames:{root:M,body:T},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},E.root),F),p),v==null?void 0:v.root),body:Object.assign(Object.assign({},E.body),v==null?void 0:v.body)},ref:t,open:k,onOpenChange:N,overlay:O||z?m.createElement($ie,{prefixCls:w,title:O,content:z}):null,transitionName:ml(I,\"zoom-big\",y.transitionName),\"data-popover-inject\":!0}),oa(c,{onKeyDown:W=>{var L,j;m.isValidElement(c)&&((j=c==null?void 0:(L=c.props).onKeyDown)===null||j===void 0||j.call(L,W)),B(W)}})))}),w6=o5e;w6._InternalPanelDoNotUseOrYouWillBeFired=Lie;const TH=e=>{const{size:t,shape:r}=m.useContext(DR),n=m.useMemo(()=>({size:e.size||t,shape:e.shape||r}),[e.size,e.shape,t,r]);return m.createElement(DR.Provider,{value:n},e.children)},l5e=e=>{var t,r,n,a;const{getPrefixCls:i,direction:o}=m.useContext(Ot),{prefixCls:l,className:s,rootClassName:u,style:c,maxCount:d,maxStyle:f,size:h,shape:p,maxPopoverPlacement:v,maxPopoverTrigger:g,children:y,max:b}=e,x=i(\"avatar\",l),F=`${x}-group`,S=Zn(x),[E,w,D]=Iie(x,S),A=ne(F,{[`${F}-rtl`]:o===\"rtl\"},D,S,s,u,w),_=ba(y).map((T,k)=>oa(T,{key:`avatar-key-${k}`})),I=(b==null?void 0:b.count)||d,M=_.length;if(I&&I<M){const T=_.slice(0,I),k=_.slice(I,M),R=(b==null?void 0:b.style)||f,P=((t=b==null?void 0:b.popover)===null||t===void 0?void 0:t.trigger)||g||\"hover\",B=((r=b==null?void 0:b.popover)===null||r===void 0?void 0:r.placement)||v||\"top\",N=Object.assign(Object.assign({content:k},b==null?void 0:b.popover),{classNames:{root:ne(`${F}-popover`,(a=(n=b==null?void 0:b.popover)===null||n===void 0?void 0:n.classNames)===null||a===void 0?void 0:a.root)},placement:B,trigger:P});return T.push(m.createElement(w6,Object.assign({key:\"avatar-popover-key\",destroyOnHidden:!0},N),m.createElement(kie,{style:R},`+${M-I}`))),E(m.createElement(TH,{shape:p,size:h},m.createElement(\"div\",{className:A,style:c},T)))}return E(m.createElement(TH,{shape:p,size:h},m.createElement(\"div\",{className:A,style:c},_)))},E6=kie;E6.Group=l5e;const s5e=new Br(\"antStatusProcessing\",{\"0%\":{transform:\"scale(0.8)\",opacity:.5},\"100%\":{transform:\"scale(2.4)\",opacity:0}}),u5e=new Br(\"antZoomBadgeIn\",{\"0%\":{transform:\"scale(0) translate(50%, -50%)\",opacity:0},\"100%\":{transform:\"scale(1) translate(50%, -50%)\"}}),c5e=new Br(\"antZoomBadgeOut\",{\"0%\":{transform:\"scale(1) translate(50%, -50%)\"},\"100%\":{transform:\"scale(0) translate(50%, -50%)\",opacity:0}}),d5e=new Br(\"antNoWrapperZoomBadgeIn\",{\"0%\":{transform:\"scale(0)\",opacity:0},\"100%\":{transform:\"scale(1)\"}}),f5e=new Br(\"antNoWrapperZoomBadgeOut\",{\"0%\":{transform:\"scale(1)\"},\"100%\":{transform:\"scale(0)\",opacity:0}}),h5e=new Br(\"antBadgeLoadingCircle\",{\"0%\":{transformOrigin:\"50%\"},\"100%\":{transform:\"translate(50%, -50%) rotate(360deg)\",transformOrigin:\"50%\"}}),p5e=e=>{const{componentCls:t,iconCls:r,antCls:n,badgeShadowSize:a,textFontSize:i,textFontSizeSM:o,statusSize:l,dotSize:s,textFontWeight:u,indicatorHeight:c,indicatorHeightSM:d,marginXS:f,calc:h}=e,p=`${n}-scroll-number`,v=e6(e,(g,{darkColor:y})=>({[`&${t} ${t}-color-${g}`]:{background:y,[`&:not(${t}-count)`]:{color:y},\"a:hover &\":{background:y}}}));return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{position:\"relative\",display:\"inline-block\",width:\"fit-content\",lineHeight:1,[`${t}-count`]:{display:\"inline-flex\",justifyContent:\"center\",zIndex:e.indicatorZIndex,minWidth:c,height:c,color:e.badgeTextColor,fontWeight:u,fontSize:i,lineHeight:re(c),whiteSpace:\"nowrap\",textAlign:\"center\",background:e.badgeColor,borderRadius:h(c).div(2).equal(),boxShadow:`0 0 0 ${re(a)} ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},\"a:hover\":{color:e.badgeTextColor},\"a:hover &\":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:d,height:d,fontSize:o,lineHeight:re(d),borderRadius:h(d).div(2).equal()},[`${t}-multiple-words`]:{padding:`0 ${re(e.paddingXS)}`,bdi:{unicodeBidi:\"plaintext\"}},[`${t}-dot`]:{zIndex:e.indicatorZIndex,width:s,minWidth:s,height:s,background:e.badgeColor,borderRadius:\"100%\",boxShadow:`0 0 0 ${re(a)} ${e.badgeShadowColor}`},[`${t}-count, ${t}-dot, ${p}-custom-component`]:{position:\"absolute\",top:0,insetInlineEnd:0,transform:\"translate(50%, -50%)\",transformOrigin:\"100% 0%\",[`&${r}-spin`]:{animationName:h5e,animationDuration:\"1s\",animationIterationCount:\"infinite\",animationTimingFunction:\"linear\"}},[`&${t}-status`]:{lineHeight:\"inherit\",verticalAlign:\"baseline\",[`${t}-status-dot`]:{position:\"relative\",top:-1,display:\"inline-block\",width:l,height:l,verticalAlign:\"middle\",borderRadius:\"50%\"},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:\"visible\",color:e.colorInfo,backgroundColor:e.colorInfo,borderColor:\"currentcolor\",\"&::after\":{position:\"absolute\",top:0,insetInlineStart:0,width:\"100%\",height:\"100%\",borderWidth:a,borderStyle:\"solid\",borderColor:\"inherit\",borderRadius:\"50%\",animationName:s5e,animationDuration:e.badgeProcessingDuration,animationIterationCount:\"infinite\",animationTimingFunction:\"ease-in-out\",content:'\"\"'}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:f,color:e.colorText,fontSize:e.fontSize}}}),v),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:u5e,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:\"both\"},[`${t}-zoom-leave`]:{animationName:c5e,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:\"both\"},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:d5e,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:f5e,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:\"middle\"},[`${p}-custom-component, ${t}-count`]:{transform:\"none\"},[`${p}-custom-component, ${p}`]:{position:\"relative\",top:\"auto\",display:\"block\",transformOrigin:\"50% 50%\"}},[p]:{overflow:\"hidden\",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack}`,[`${p}-only`]:{position:\"relative\",display:\"inline-block\",height:c,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:\"preserve-3d\",WebkitBackfaceVisibility:\"hidden\",[`> p${p}-only-unit`]:{height:c,margin:0,WebkitTransformStyle:\"preserve-3d\",WebkitBackfaceVisibility:\"hidden\"}},[`${p}-symbol`]:{verticalAlign:\"top\"}},\"&-rtl\":{direction:\"rtl\",[`${t}-count, ${t}-dot, ${p}-custom-component`]:{transform:\"translate(-50%, -50%)\"}}})}},jie=e=>{const{fontHeight:t,lineWidth:r,marginXS:n,colorBorderBg:a}=e,i=t,o=r,l=e.colorTextLightSolid,s=e.colorError,u=e.colorErrorHover;return Sr(e,{badgeFontHeight:i,badgeShadowSize:o,badgeTextColor:l,badgeColor:s,badgeColorHover:u,badgeShadowColor:a,badgeProcessingDuration:\"1.2s\",badgeRibbonOffset:n,badgeRibbonCornerTransform:\"scaleY(0.75)\",badgeRibbonCornerFilter:\"brightness(75%)\"})},zie=e=>{const{fontSize:t,lineHeight:r,fontSizeSM:n,lineWidth:a}=e;return{indicatorZIndex:\"auto\",indicatorHeight:Math.round(t*r)-2*a,indicatorHeightSM:t,dotSize:n/2,textFontSize:n,textFontSizeSM:n,textFontWeight:\"normal\",statusSize:n/2}},m5e=kr(\"Badge\",e=>{const t=jie(e);return p5e(t)},zie),v5e=e=>{const{antCls:t,badgeFontHeight:r,marginXS:n,badgeRibbonOffset:a,calc:i}=e,o=`${t}-ribbon`,l=`${t}-ribbon-wrapper`,s=e6(e,(u,{darkColor:c})=>({[`&${o}-color-${u}`]:{background:c,color:c}}));return{[l]:{position:\"relative\"},[o]:Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{position:\"absolute\",top:n,padding:`0 ${re(e.paddingXS)}`,color:e.colorPrimary,lineHeight:re(r),whiteSpace:\"nowrap\",backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${o}-text`]:{color:e.badgeTextColor},[`${o}-corner`]:{position:\"absolute\",top:\"100%\",width:a,height:a,color:\"currentcolor\",border:`${re(i(a).div(2).equal())} solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:\"top\",filter:e.badgeRibbonCornerFilter}}),s),{[`&${o}-placement-end`]:{insetInlineEnd:i(a).mul(-1).equal(),borderEndEndRadius:0,[`${o}-corner`]:{insetInlineEnd:0,borderInlineEndColor:\"transparent\",borderBlockEndColor:\"transparent\"}},[`&${o}-placement-start`]:{insetInlineStart:i(a).mul(-1).equal(),borderEndStartRadius:0,[`${o}-corner`]:{insetInlineStart:0,borderBlockEndColor:\"transparent\",borderInlineStartColor:\"transparent\"}},\"&-rtl\":{direction:\"rtl\"}})}},g5e=kr([\"Badge\",\"Ribbon\"],e=>{const t=jie(e);return v5e(t)},zie),y5e=e=>{const{className:t,prefixCls:r,style:n,color:a,children:i,text:o,placement:l=\"end\",rootClassName:s}=e,{getPrefixCls:u,direction:c}=m.useContext(Ot),d=u(\"ribbon\",r),f=`${d}-wrapper`,[h,p,v]=g5e(d,f),g=S6(a,!1),y=ne(d,`${d}-placement-${l}`,{[`${d}-rtl`]:c===\"rtl\",[`${d}-color-${a}`]:g},t),b={},x={};return a&&!g&&(b.background=a,x.color=a),h(m.createElement(\"div\",{className:ne(f,s,p,v)},i,m.createElement(\"div\",{className:ne(y,p),style:Object.assign(Object.assign({},b),n)},m.createElement(\"span\",{className:`${d}-text`},o),m.createElement(\"div\",{className:`${d}-corner`,style:x}))))},IH=e=>{const{prefixCls:t,value:r,current:n,offset:a=0}=e;let i;return a&&(i={position:\"absolute\",top:`${a}00%`,left:0}),m.createElement(\"span\",{style:i,className:ne(`${t}-only-unit`,{current:n})},r)};function b5e(e,t,r){let n=e,a=0;for(;(n+10)%10!==t;)n+=r,a+=r;return a}const x5e=e=>{const{prefixCls:t,count:r,value:n}=e,a=Number(n),i=Math.abs(r),[o,l]=m.useState(a),[s,u]=m.useState(i),c=()=>{l(a),u(i)};m.useEffect(()=>{const h=setTimeout(c,1e3);return()=>clearTimeout(h)},[a]);let d,f;if(o===a||Number.isNaN(a)||Number.isNaN(o))d=[m.createElement(IH,Object.assign({},e,{key:a,current:!0}))],f={transition:\"none\"};else{d=[];const h=a+10,p=[];for(let b=a;b<=h;b+=1)p.push(b);const v=s<i?1:-1,g=p.findIndex(b=>b%10===o);d=(v<0?p.slice(0,g+1):p.slice(g)).map((b,x)=>{const F=b%10;return m.createElement(IH,Object.assign({},e,{key:b,value:F,offset:v<0?x-g:x,current:x===g}))}),f={transform:`translateY(${-b5e(o,a,v)}00%)`}}return m.createElement(\"span\",{className:`${t}-only`,style:f,onTransitionEnd:c},d)};var C5e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const F5e=m.forwardRef((e,t)=>{const{prefixCls:r,count:n,className:a,motionClassName:i,style:o,title:l,show:s,component:u=\"sup\",children:c}=e,d=C5e(e,[\"prefixCls\",\"count\",\"className\",\"motionClassName\",\"style\",\"title\",\"show\",\"component\",\"children\"]),{getPrefixCls:f}=m.useContext(Ot),h=f(\"scroll-number\",r),p=Object.assign(Object.assign({},d),{\"data-show\":s,style:o,className:ne(h,a,i),title:l});let v=n;if(n&&Number(n)%1===0){const g=String(n).split(\"\");v=m.createElement(\"bdi\",null,g.map((y,b)=>m.createElement(x5e,{prefixCls:h,count:Number(n),value:y,key:g.length-b})))}return o!=null&&o.borderColor&&(p.style=Object.assign(Object.assign({},o),{boxShadow:`0 0 0 1px ${o.borderColor} inset`})),c?oa(c,g=>({className:ne(`${h}-custom-component`,g==null?void 0:g.className,i)})):m.createElement(u,Object.assign({},p,{ref:t}),v)});var S5e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const w5e=m.forwardRef((e,t)=>{var r,n,a,i,o;const{prefixCls:l,scrollNumberPrefixCls:s,children:u,status:c,text:d,color:f,count:h=null,overflowCount:p=99,dot:v=!1,size:g=\"default\",title:y,offset:b,style:x,className:F,rootClassName:S,classNames:E,styles:w,showZero:D=!1}=e,A=S5e(e,[\"prefixCls\",\"scrollNumberPrefixCls\",\"children\",\"status\",\"text\",\"color\",\"count\",\"overflowCount\",\"dot\",\"size\",\"title\",\"offset\",\"style\",\"className\",\"rootClassName\",\"classNames\",\"styles\",\"showZero\"]),{getPrefixCls:_,direction:I,badge:M}=m.useContext(Ot),T=_(\"badge\",l),[k,R,P]=m5e(T),B=h>p?`${p}+`:h,N=B===\"0\"||B===0||d===\"0\"||d===0,O=h===null||N&&!D,z=(c!=null||f!=null)&&O,W=c!=null||!N,L=v&&!N,j=L?\"\":B,H=m.useMemo(()=>((j==null||j===\"\")&&(d==null||d===\"\")||N&&!D)&&!L,[j,N,D,L,d]),V=m.useRef(h);H||(V.current=h);const U=V.current,Q=m.useRef(j);H||(Q.current=j);const K=Q.current,Y=m.useRef(L);H||(Y.current=L);const ee=m.useMemo(()=>{if(!b)return Object.assign(Object.assign({},M==null?void 0:M.style),x);const Ee={marginTop:b[1]};return I===\"rtl\"?Ee.left=Number.parseInt(b[0],10):Ee.right=-Number.parseInt(b[0],10),Object.assign(Object.assign(Object.assign({},Ee),M==null?void 0:M.style),x)},[I,b,x,M==null?void 0:M.style]),J=y??(typeof U==\"string\"||typeof U==\"number\"?U:void 0),X=!H&&(d===0?D:!!d&&d!==!0),ce=X?m.createElement(\"span\",{className:`${T}-status-text`},d):null,oe=!U||typeof U!=\"object\"?void 0:oa(U,Ee=>({style:Object.assign(Object.assign({},ee),Ee.style)})),ue=S6(f,!1),ie=ne(E==null?void 0:E.indicator,(r=M==null?void 0:M.classNames)===null||r===void 0?void 0:r.indicator,{[`${T}-status-dot`]:z,[`${T}-status-${c}`]:!!c,[`${T}-color-${f}`]:ue}),fe={};f&&!ue&&(fe.color=f,fe.background=f);const xe=ne(T,{[`${T}-status`]:z,[`${T}-not-a-wrapper`]:!u,[`${T}-rtl`]:I===\"rtl\"},F,S,M==null?void 0:M.className,(n=M==null?void 0:M.classNames)===null||n===void 0?void 0:n.root,E==null?void 0:E.root,R,P);if(!u&&z&&(d||W||!O)){const Ee=ee.color;return k(m.createElement(\"span\",Object.assign({},A,{className:xe,style:Object.assign(Object.assign(Object.assign({},w==null?void 0:w.root),(a=M==null?void 0:M.styles)===null||a===void 0?void 0:a.root),ee)}),m.createElement(\"span\",{className:ie,style:Object.assign(Object.assign(Object.assign({},w==null?void 0:w.indicator),(i=M==null?void 0:M.styles)===null||i===void 0?void 0:i.indicator),fe)}),X&&m.createElement(\"span\",{style:{color:Ee},className:`${T}-status-text`},d)))}return k(m.createElement(\"span\",Object.assign({ref:t},A,{className:xe,style:Object.assign(Object.assign({},(o=M==null?void 0:M.styles)===null||o===void 0?void 0:o.root),w==null?void 0:w.root)}),u,m.createElement(fi,{visible:!H,motionName:`${T}-zoom`,motionAppear:!1,motionDeadline:1e3},({className:Ee})=>{var De,ye;const we=_(\"scroll-number\",s),Fe=Y.current,me=ne(E==null?void 0:E.indicator,(De=M==null?void 0:M.classNames)===null||De===void 0?void 0:De.indicator,{[`${T}-dot`]:Fe,[`${T}-count`]:!Fe,[`${T}-count-sm`]:g===\"small\",[`${T}-multiple-words`]:!Fe&&K&&K.toString().length>1,[`${T}-status-${c}`]:!!c,[`${T}-color-${f}`]:ue});let Me=Object.assign(Object.assign(Object.assign({},w==null?void 0:w.indicator),(ye=M==null?void 0:M.styles)===null||ye===void 0?void 0:ye.indicator),ee);return f&&!ue&&(Me=Me||{},Me.background=f),m.createElement(F5e,{prefixCls:we,show:!H,motionClassName:Ee,className:me,count:K,title:J,style:Me,key:\"scrollNumber\"},oe)}),ce))}),D6=w5e;D6.Ribbon=y5e;var E5e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z\"}}]},name:\"left\",theme:\"outlined\"},D5e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:E5e}))},zf=m.forwardRef(D5e),A5e=It.ESC,_5e=It.TAB;function T5e(e){var t=e.visible,r=e.triggerRef,n=e.onVisibleChange,a=e.autoFocus,i=e.overlayRef,o=m.useRef(!1),l=function(){if(t){var d,f;(d=r.current)===null||d===void 0||(f=d.focus)===null||f===void 0||f.call(d),n==null||n(!1)}},s=function(){var d;return(d=i.current)!==null&&d!==void 0&&d.focus?(i.current.focus(),o.current=!0,!0):!1},u=function(d){switch(d.keyCode){case A5e:l();break;case _5e:{var f=!1;o.current||(f=s()),f?d.preventDefault():l();break}}};m.useEffect(function(){return t?(window.addEventListener(\"keydown\",u),a&&Tr(s,3),function(){window.removeEventListener(\"keydown\",u),o.current=!1}):function(){o.current=!1}},[t])}var I5e=m.forwardRef(function(e,t){var r=e.overlay,n=e.arrow,a=e.prefixCls,i=m.useMemo(function(){var l;return typeof r==\"function\"?l=r():l=r,l},[r]),o=Qa(t,rh(i));return le.createElement(le.Fragment,null,n&&le.createElement(\"div\",{className:\"\".concat(a,\"-arrow\")}),le.cloneElement(i,{ref:mu(i)?o:void 0}))}),Qm={adjustX:1,adjustY:1},ev=[0,0],k5e={topLeft:{points:[\"bl\",\"tl\"],overflow:Qm,offset:[0,-4],targetOffset:ev},top:{points:[\"bc\",\"tc\"],overflow:Qm,offset:[0,-4],targetOffset:ev},topRight:{points:[\"br\",\"tr\"],overflow:Qm,offset:[0,-4],targetOffset:ev},bottomLeft:{points:[\"tl\",\"bl\"],overflow:Qm,offset:[0,4],targetOffset:ev},bottom:{points:[\"tc\",\"bc\"],overflow:Qm,offset:[0,4],targetOffset:ev},bottomRight:{points:[\"tr\",\"br\"],overflow:Qm,offset:[0,4],targetOffset:ev}},R5e=[\"arrow\",\"prefixCls\",\"transitionName\",\"animation\",\"align\",\"placement\",\"placements\",\"getPopupContainer\",\"showAction\",\"hideAction\",\"overlayClassName\",\"overlayStyle\",\"visible\",\"trigger\",\"autoFocus\",\"overlay\",\"children\",\"onVisibleChange\"];function M5e(e,t){var r,n=e.arrow,a=n===void 0?!1:n,i=e.prefixCls,o=i===void 0?\"rc-dropdown\":i,l=e.transitionName,s=e.animation,u=e.align,c=e.placement,d=c===void 0?\"bottomLeft\":c,f=e.placements,h=f===void 0?k5e:f,p=e.getPopupContainer,v=e.showAction,g=e.hideAction,y=e.overlayClassName,b=e.overlayStyle,x=e.visible,F=e.trigger,S=F===void 0?[\"hover\"]:F,E=e.autoFocus,w=e.overlay,D=e.children,A=e.onVisibleChange,_=Xt(e,R5e),I=le.useState(),M=ve(I,2),T=M[0],k=M[1],R=\"visible\"in e?x:T,P=le.useRef(null),B=le.useRef(null),N=le.useRef(null);le.useImperativeHandle(t,function(){return P.current});var O=function(K){k(K),A==null||A(K)};T5e({visible:R,triggerRef:N,onVisibleChange:O,autoFocus:E,overlayRef:B});var z=function(K){var Y=e.onOverlayClick;k(!1),Y&&Y(K)},W=function(){return le.createElement(I5e,{ref:B,overlay:w,prefixCls:o,arrow:a})},L=function(){return typeof w==\"function\"?W:W()},j=function(){var K=e.minOverlayWidthMatchTrigger,Y=e.alignPoint;return\"minOverlayWidthMatchTrigger\"in e?K:!Y},H=function(){var K=e.openClassName;return K!==void 0?K:\"\".concat(o,\"-open\")},V=le.cloneElement(D,{className:ne((r=D.props)===null||r===void 0?void 0:r.className,R&&H()),ref:mu(D)?Qa(N,rh(D)):void 0}),U=g;return!U&&S.indexOf(\"contextMenu\")!==-1&&(U=[\"click\"]),le.createElement(gx,Ce({builtinPlacements:h},_,{prefixCls:o,ref:P,popupClassName:ne(y,Z({},\"\".concat(o,\"-show-arrow\"),a)),popupStyle:b,action:S,showAction:v,hideAction:U,popupPlacement:d,popupAlign:u,popupTransitionName:l,popupAnimation:s,popupVisible:R,stretch:j()?\"minWidth\":\"\",popup:L(),onPopupVisibleChange:O,onPopupClick:z,getPopupContainer:p}),V)}const Hie=le.forwardRef(M5e),P5e=e=>typeof e!=\"object\"&&typeof e!=\"function\"||e===null;var Vie=m.createContext(null);function Wie(e,t){return e===void 0?null:\"\".concat(e,\"-\").concat(t)}function Gie(e){var t=m.useContext(Vie);return Wie(t,e)}var O5e=[\"children\",\"locked\"],yu=m.createContext(null);function B5e(e,t){var r=ae({},e);return Object.keys(t).forEach(function(n){var a=t[n];a!==void 0&&(r[n]=a)}),r}function t2(e){var t=e.children,r=e.locked,n=Xt(e,O5e),a=m.useContext(yu),i=hm(function(){return B5e(a,n)},[a,n],function(o,l){return!r&&(o[0]!==l[0]||!vu(o[1],l[1],!0))});return m.createElement(yu.Provider,{value:i},t)}var N5e=[],Uie=m.createContext(null);function A6(){return m.useContext(Uie)}var Kie=m.createContext(N5e);function Dg(e){var t=m.useContext(Kie);return m.useMemo(function(){return e!==void 0?[].concat(He(t),[e]):t},[t,e])}var Yie=m.createContext(null),aO=m.createContext({});function kH(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(xg(e)){var r=e.nodeName.toLowerCase(),n=[\"input\",\"select\",\"textarea\",\"button\"].includes(r)||e.isContentEditable||r===\"a\"&&!!e.getAttribute(\"href\"),a=e.getAttribute(\"tabindex\"),i=Number(a),o=null;return a&&!Number.isNaN(i)?o=i:n&&o===null&&(o=0),n&&e.disabled&&(o=null),o!==null&&(o>=0||t&&o<0)}return!1}function $5e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=He(e.querySelectorAll(\"*\")).filter(function(n){return kH(n,t)});return kH(e,t)&&r.unshift(e),r}var AR=It.LEFT,_R=It.RIGHT,TR=It.UP,lw=It.DOWN,sw=It.ENTER,qie=It.ESC,x1=It.HOME,C1=It.END,RH=[TR,lw,AR,_R];function L5e(e,t,r,n){var a,i=\"prev\",o=\"next\",l=\"children\",s=\"parent\";if(e===\"inline\"&&n===sw)return{inlineTrigger:!0};var u=Z(Z({},TR,i),lw,o),c=Z(Z(Z(Z({},AR,r?o:i),_R,r?i:o),lw,l),sw,l),d=Z(Z(Z(Z(Z(Z({},TR,i),lw,o),sw,l),qie,s),AR,r?l:s),_R,r?s:l),f={inline:u,horizontal:c,vertical:d,inlineSub:u,horizontalSub:d,verticalSub:d},h=(a=f[\"\".concat(e).concat(t?\"\":\"Sub\")])===null||a===void 0?void 0:a[n];switch(h){case i:return{offset:-1,sibling:!0};case o:return{offset:1,sibling:!0};case s:return{offset:-1,sibling:!1};case l:return{offset:1,sibling:!1};default:return null}}function j5e(e){for(var t=e;t;){if(t.getAttribute(\"data-menu-list\"))return t;t=t.parentElement}return null}function z5e(e,t){for(var r=e||document.activeElement;r;){if(t.has(r))return r;r=r.parentElement}return null}function iO(e,t){var r=$5e(e,!0);return r.filter(function(n){return t.has(n)})}function MH(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;if(!e)return null;var a=iO(e,t),i=a.length,o=a.findIndex(function(l){return r===l});return n<0?o===-1?o=i-1:o-=1:n>0&&(o+=1),o=(o+i)%i,a[o]}var IR=function(t,r){var n=new Set,a=new Map,i=new Map;return t.forEach(function(o){var l=document.querySelector(\"[data-menu-id='\".concat(Wie(r,o),\"']\"));l&&(n.add(l),i.set(l,o),a.set(o,l))}),{elements:n,key2element:a,element2key:i}};function H5e(e,t,r,n,a,i,o,l,s,u){var c=m.useRef(),d=m.useRef();d.current=t;var f=function(){Tr.cancel(c.current)};return m.useEffect(function(){return function(){f()}},[]),function(h){var p=h.which;if([].concat(RH,[sw,qie,x1,C1]).includes(p)){var v=i(),g=IR(v,n),y=g,b=y.elements,x=y.key2element,F=y.element2key,S=x.get(t),E=z5e(S,b),w=F.get(E),D=L5e(e,o(w,!0).length===1,r,p);if(!D&&p!==x1&&p!==C1)return;(RH.includes(p)||[x1,C1].includes(p))&&h.preventDefault();var A=function(B){if(B){var N=B,O=B.querySelector(\"a\");O!=null&&O.getAttribute(\"href\")&&(N=O);var z=F.get(B);l(z),f(),c.current=Tr(function(){d.current===z&&N.focus()})}};if([x1,C1].includes(p)||D.sibling||!E){var _;!E||e===\"inline\"?_=a.current:_=j5e(E);var I,M=iO(_,b);p===x1?I=M[0]:p===C1?I=M[M.length-1]:I=MH(_,b,E,D.offset),A(I)}else if(D.inlineTrigger)s(w);else if(D.offset>0)s(w,!0),f(),c.current=Tr(function(){g=IR(v,n);var P=E.getAttribute(\"aria-controls\"),B=document.getElementById(P),N=MH(B,g.elements);A(N)},5);else if(D.offset<0){var T=o(w,!0),k=T[T.length-2],R=x.get(k);s(k,!1),A(R)}}u==null||u(h)}}function V5e(e){Promise.resolve().then(e)}var oO=\"__RC_UTIL_PATH_SPLIT__\",PH=function(t){return t.join(oO)},W5e=function(t){return t.split(oO)},kR=\"rc-menu-more\";function G5e(){var e=m.useState({}),t=ve(e,2),r=t[1],n=m.useRef(new Map),a=m.useRef(new Map),i=m.useState([]),o=ve(i,2),l=o[0],s=o[1],u=m.useRef(0),c=m.useRef(!1),d=function(){c.current||r({})},f=m.useCallback(function(x,F){var S=PH(F);a.current.set(S,x),n.current.set(x,S),u.current+=1;var E=u.current;V5e(function(){E===u.current&&d()})},[]),h=m.useCallback(function(x,F){var S=PH(F);a.current.delete(S),n.current.delete(x)},[]),p=m.useCallback(function(x){s(x)},[]),v=m.useCallback(function(x,F){var S=n.current.get(x)||\"\",E=W5e(S);return F&&l.includes(E[0])&&E.unshift(kR),E},[l]),g=m.useCallback(function(x,F){return x.filter(function(S){return S!==void 0}).some(function(S){var E=v(S,!0);return E.includes(F)})},[v]),y=function(){var F=He(n.current.keys());return l.length&&F.push(kR),F},b=m.useCallback(function(x){var F=\"\".concat(n.current.get(x)).concat(oO),S=new Set;return He(a.current.keys()).forEach(function(E){E.startsWith(F)&&S.add(a.current.get(E))}),S},[]);return m.useEffect(function(){return function(){c.current=!0}},[]),{registerPath:f,unregisterPath:h,refreshOverflowKeys:p,isSubPathKey:g,getKeyPath:v,getKeys:y,getSubPathKeys:b}}function cy(e){var t=m.useRef(e);t.current=e;var r=m.useCallback(function(){for(var n,a=arguments.length,i=new Array(a),o=0;o<a;o++)i[o]=arguments[o];return(n=t.current)===null||n===void 0?void 0:n.call.apply(n,[t].concat(i))},[]);return e?r:void 0}var U5e=Math.random().toFixed(5).toString().slice(2),OH=0;function K5e(e){var t=un(e,{value:e}),r=ve(t,2),n=r[0],a=r[1];return m.useEffect(function(){OH+=1;var i=\"\".concat(U5e,\"-\").concat(OH);a(\"rc-menu-uuid-\".concat(i))},[]),n}function Xie(e,t,r,n){var a=m.useContext(yu),i=a.activeKey,o=a.onActive,l=a.onInactive,s={active:i===e};return t||(s.onMouseEnter=function(u){r==null||r({key:e,domEvent:u}),o(e)},s.onMouseLeave=function(u){n==null||n({key:e,domEvent:u}),l(e)}),s}function Jie(e){var t=m.useContext(yu),r=t.mode,n=t.rtl,a=t.inlineIndent;if(r!==\"inline\")return null;var i=e;return n?{paddingRight:i*a}:{paddingLeft:i*a}}function Zie(e){var t=e.icon,r=e.props,n=e.children,a;return t===null||t===!1?null:(typeof t==\"function\"?a=m.createElement(t,ae({},r)):typeof t!=\"boolean\"&&(a=t),a||n||null)}var Y5e=[\"item\"];function EE(e){var t=e.item,r=Xt(e,Y5e);return Object.defineProperty(r,\"item\",{get:function(){return jn(!1,\"`info.item` is deprecated since we will move to function component that not provides React Node instance in future.\"),t}}),r}var q5e=[\"title\",\"attribute\",\"elementRef\"],X5e=[\"style\",\"className\",\"eventKey\",\"warnKey\",\"disabled\",\"itemIcon\",\"children\",\"role\",\"onMouseEnter\",\"onMouseLeave\",\"onClick\",\"onKeyDown\",\"onFocus\"],J5e=[\"active\"],Z5e=function(e){Vl(r,e);var t=Ts(r);function r(){return Xn(this,r),t.apply(this,arguments)}return Jn(r,[{key:\"render\",value:function(){var a=this.props,i=a.title,o=a.attribute,l=a.elementRef,s=Xt(a,q5e),u=wn(s,[\"eventKey\",\"popupClassName\",\"popupOffset\",\"onTitleClick\"]);return jn(!o,\"`attribute` of Menu.Item is deprecated. Please pass attribute directly.\"),m.createElement(lu.Item,Ce({},o,{title:typeof i==\"string\"?i:void 0},u,{ref:l}))}}]),r}(m.Component),Q5e=m.forwardRef(function(e,t){var r=e.style,n=e.className,a=e.eventKey;e.warnKey;var i=e.disabled,o=e.itemIcon,l=e.children,s=e.role,u=e.onMouseEnter,c=e.onMouseLeave,d=e.onClick,f=e.onKeyDown,h=e.onFocus,p=Xt(e,X5e),v=Gie(a),g=m.useContext(yu),y=g.prefixCls,b=g.onItemClick,x=g.disabled,F=g.overflowDisabled,S=g.itemIcon,E=g.selectedKeys,w=g.onActive,D=m.useContext(aO),A=D._internalRenderMenuItem,_=\"\".concat(y,\"-item\"),I=m.useRef(),M=m.useRef(),T=x||i,k=yc(t,M),R=Dg(a),P=function(Y){return{key:a,keyPath:He(R).reverse(),item:I.current,domEvent:Y}},B=o||S,N=Xie(a,T,u,c),O=N.active,z=Xt(N,J5e),W=E.includes(a),L=Jie(R.length),j=function(Y){if(!T){var ee=P(Y);d==null||d(EE(ee)),b(ee)}},H=function(Y){if(f==null||f(Y),Y.which===It.ENTER){var ee=P(Y);d==null||d(EE(ee)),b(ee)}},V=function(Y){w(a),h==null||h(Y)},U={};e.role===\"option\"&&(U[\"aria-selected\"]=W);var Q=m.createElement(Z5e,Ce({ref:I,elementRef:k,role:s===null?\"none\":s||\"menuitem\",tabIndex:i?null:-1,\"data-menu-id\":F&&v?null:v},wn(p,[\"extra\"]),z,U,{component:\"li\",\"aria-disabled\":i,style:ae(ae({},L),r),className:ne(_,Z(Z(Z({},\"\".concat(_,\"-active\"),O),\"\".concat(_,\"-selected\"),W),\"\".concat(_,\"-disabled\"),T),n),onClick:j,onKeyDown:H,onFocus:V}),l,m.createElement(Zie,{props:ae(ae({},e),{},{isSelected:W}),icon:B}));return A&&(Q=A(Q,e,{selected:W})),Q});function eTe(e,t){var r=e.eventKey,n=A6(),a=Dg(r);return m.useEffect(function(){if(n)return n.registerPath(r,a),function(){n.unregisterPath(r,a)}},[a]),n?null:m.createElement(Q5e,Ce({},e,{ref:t}))}const xx=m.forwardRef(eTe);var tTe=[\"className\",\"children\"],rTe=function(t,r){var n=t.className,a=t.children,i=Xt(t,tTe),o=m.useContext(yu),l=o.prefixCls,s=o.mode,u=o.rtl;return m.createElement(\"ul\",Ce({className:ne(l,u&&\"\".concat(l,\"-rtl\"),\"\".concat(l,\"-sub\"),\"\".concat(l,\"-\").concat(s===\"inline\"?\"inline\":\"vertical\"),n),role:\"menu\"},i,{\"data-menu-list\":!0,ref:r}),a)},lO=m.forwardRef(rTe);lO.displayName=\"SubMenuList\";function sO(e,t){return ba(e).map(function(r,n){if(m.isValidElement(r)){var a,i,o=r.key,l=(a=(i=r.props)===null||i===void 0?void 0:i.eventKey)!==null&&a!==void 0?a:o,s=l==null;s&&(l=\"tmp_key-\".concat([].concat(He(t),[n]).join(\"-\")));var u={key:l,eventKey:l};return m.cloneElement(r,u)}return r})}var so={adjustX:1,adjustY:1},nTe={topLeft:{points:[\"bl\",\"tl\"],overflow:so},topRight:{points:[\"br\",\"tr\"],overflow:so},bottomLeft:{points:[\"tl\",\"bl\"],overflow:so},bottomRight:{points:[\"tr\",\"br\"],overflow:so},leftTop:{points:[\"tr\",\"tl\"],overflow:so},leftBottom:{points:[\"br\",\"bl\"],overflow:so},rightTop:{points:[\"tl\",\"tr\"],overflow:so},rightBottom:{points:[\"bl\",\"br\"],overflow:so}},aTe={topLeft:{points:[\"bl\",\"tl\"],overflow:so},topRight:{points:[\"br\",\"tr\"],overflow:so},bottomLeft:{points:[\"tl\",\"bl\"],overflow:so},bottomRight:{points:[\"tr\",\"br\"],overflow:so},rightTop:{points:[\"tr\",\"tl\"],overflow:so},rightBottom:{points:[\"br\",\"bl\"],overflow:so},leftTop:{points:[\"tl\",\"tr\"],overflow:so},leftBottom:{points:[\"bl\",\"br\"],overflow:so}};function Qie(e,t,r){if(t)return t;if(r)return r[e]||r.other}var iTe={horizontal:\"bottomLeft\",vertical:\"rightTop\",\"vertical-left\":\"rightTop\",\"vertical-right\":\"leftTop\"};function oTe(e){var t=e.prefixCls,r=e.visible,n=e.children,a=e.popup,i=e.popupStyle,o=e.popupClassName,l=e.popupOffset,s=e.disabled,u=e.mode,c=e.onVisibleChange,d=m.useContext(yu),f=d.getPopupContainer,h=d.rtl,p=d.subMenuOpenDelay,v=d.subMenuCloseDelay,g=d.builtinPlacements,y=d.triggerSubMenuAction,b=d.forceSubMenuRender,x=d.rootClassName,F=d.motion,S=d.defaultMotions,E=m.useState(!1),w=ve(E,2),D=w[0],A=w[1],_=ae(h?ae({},aTe):ae({},nTe),g),I=iTe[u],M=Qie(u,F,S),T=m.useRef(M);u!==\"inline\"&&(T.current=M);var k=ae(ae({},T.current),{},{leavedClassName:\"\".concat(t,\"-hidden\"),removeOnLeave:!1,motionAppear:!0}),R=m.useRef();return m.useEffect(function(){return R.current=Tr(function(){A(r)}),function(){Tr.cancel(R.current)}},[r]),m.createElement(gx,{prefixCls:t,popupClassName:ne(\"\".concat(t,\"-popup\"),Z({},\"\".concat(t,\"-rtl\"),h),o,x),stretch:u===\"horizontal\"?\"minWidth\":null,getPopupContainer:f,builtinPlacements:_,popupPlacement:I,popupVisible:D,popup:a,popupStyle:i,popupAlign:l&&{offset:l},action:s?[]:[y],mouseEnterDelay:p,mouseLeaveDelay:v,onPopupVisibleChange:c,forceRender:b,popupMotion:k,fresh:!0},n)}function lTe(e){var t=e.id,r=e.open,n=e.keyPath,a=e.children,i=\"inline\",o=m.useContext(yu),l=o.prefixCls,s=o.forceSubMenuRender,u=o.motion,c=o.defaultMotions,d=o.mode,f=m.useRef(!1);f.current=d===i;var h=m.useState(!f.current),p=ve(h,2),v=p[0],g=p[1],y=f.current?r:!1;m.useEffect(function(){f.current&&g(!1)},[d]);var b=ae({},Qie(i,u,c));n.length>1&&(b.motionAppear=!1);var x=b.onVisibleChanged;return b.onVisibleChanged=function(F){return!f.current&&!F&&g(!0),x==null?void 0:x(F)},v?null:m.createElement(t2,{mode:i,locked:!f.current},m.createElement(fi,Ce({visible:y},b,{forceRender:s,removeOnLeave:!1,leavedClassName:\"\".concat(l,\"-hidden\")}),function(F){var S=F.className,E=F.style;return m.createElement(lO,{id:t,className:S,style:E},a)}))}var sTe=[\"style\",\"className\",\"title\",\"eventKey\",\"warnKey\",\"disabled\",\"internalPopupClose\",\"children\",\"itemIcon\",\"expandIcon\",\"popupClassName\",\"popupOffset\",\"popupStyle\",\"onClick\",\"onMouseEnter\",\"onMouseLeave\",\"onTitleClick\",\"onTitleMouseEnter\",\"onTitleMouseLeave\"],uTe=[\"active\"],cTe=m.forwardRef(function(e,t){var r=e.style,n=e.className,a=e.title,i=e.eventKey;e.warnKey;var o=e.disabled,l=e.internalPopupClose,s=e.children,u=e.itemIcon,c=e.expandIcon,d=e.popupClassName,f=e.popupOffset,h=e.popupStyle,p=e.onClick,v=e.onMouseEnter,g=e.onMouseLeave,y=e.onTitleClick,b=e.onTitleMouseEnter,x=e.onTitleMouseLeave,F=Xt(e,sTe),S=Gie(i),E=m.useContext(yu),w=E.prefixCls,D=E.mode,A=E.openKeys,_=E.disabled,I=E.overflowDisabled,M=E.activeKey,T=E.selectedKeys,k=E.itemIcon,R=E.expandIcon,P=E.onItemClick,B=E.onOpenChange,N=E.onActive,O=m.useContext(aO),z=O._internalRenderSubMenuItem,W=m.useContext(Yie),L=W.isSubPathKey,j=Dg(),H=\"\".concat(w,\"-submenu\"),V=_||o,U=m.useRef(),Q=m.useRef(),K=u??k,Y=c??R,ee=A.includes(i),J=!I&&ee,X=L(T,i),ce=Xie(i,V,b,x),oe=ce.active,ue=Xt(ce,uTe),ie=m.useState(!1),fe=ve(ie,2),xe=fe[0],Ee=fe[1],De=function(Ae){V||Ee(Ae)},ye=function(Ae){De(!0),v==null||v({key:i,domEvent:Ae})},we=function(Ae){De(!1),g==null||g({key:i,domEvent:Ae})},Fe=m.useMemo(function(){return oe||(D!==\"inline\"?xe||L([M],i):!1)},[D,oe,M,xe,i,L]),me=Jie(j.length),Me=function(Ae){V||(y==null||y({key:i,domEvent:Ae}),D===\"inline\"&&B(i,!ee))},je=cy(function(Ge){p==null||p(EE(Ge)),P(Ge)}),lt=function(Ae){D!==\"inline\"&&B(i,Ae)},tt=function(){N(i)},rt=S&&\"\".concat(S,\"-popup\"),dt=m.useMemo(function(){return m.createElement(Zie,{icon:D!==\"horizontal\"?Y:void 0,props:ae(ae({},e),{},{isOpen:J,isSubMenu:!0})},m.createElement(\"i\",{className:\"\".concat(H,\"-arrow\")}))},[D,Y,e,J,H]),Ve=m.createElement(\"div\",Ce({role:\"menuitem\",style:me,className:\"\".concat(H,\"-title\"),tabIndex:V?null:-1,ref:U,title:typeof a==\"string\"?a:null,\"data-menu-id\":I&&S?null:S,\"aria-expanded\":J,\"aria-haspopup\":!0,\"aria-controls\":rt,\"aria-disabled\":V,onClick:Me,onFocus:tt},ue),a,dt),Ie=m.useRef(D);if(D!==\"inline\"&&j.length>1?Ie.current=\"vertical\":Ie.current=D,!I){var Je=Ie.current;Ve=m.createElement(oTe,{mode:Je,prefixCls:H,visible:!l&&J&&D!==\"inline\",popupClassName:d,popupOffset:f,popupStyle:h,popup:m.createElement(t2,{mode:Je===\"horizontal\"?\"vertical\":Je},m.createElement(lO,{id:rt,ref:Q},s)),disabled:V,onVisibleChange:lt},Ve)}var Pe=m.createElement(lu.Item,Ce({ref:t,role:\"none\"},F,{component:\"li\",style:r,className:ne(H,\"\".concat(H,\"-\").concat(D),n,Z(Z(Z(Z({},\"\".concat(H,\"-open\"),J),\"\".concat(H,\"-active\"),Fe),\"\".concat(H,\"-selected\"),X),\"\".concat(H,\"-disabled\"),V)),onMouseEnter:ye,onMouseLeave:we}),Ve,!I&&m.createElement(lTe,{id:rt,open:J,keyPath:j},s));return z&&(Pe=z(Pe,e,{selected:X,active:Fe,open:J,disabled:V})),m.createElement(t2,{onItemClick:je,mode:D===\"horizontal\"?\"vertical\":D,itemIcon:K,expandIcon:Y},Pe)}),_6=m.forwardRef(function(e,t){var r=e.eventKey,n=e.children,a=Dg(r),i=sO(n,a),o=A6();m.useEffect(function(){if(o)return o.registerPath(r,a),function(){o.unregisterPath(r,a)}},[a]);var l;return o?l=i:l=m.createElement(cTe,Ce({ref:t},e),i),m.createElement(Kie.Provider,{value:a},l)});function uO(e){var t=e.className,r=e.style,n=m.useContext(yu),a=n.prefixCls,i=A6();return i?null:m.createElement(\"li\",{role:\"separator\",className:ne(\"\".concat(a,\"-item-divider\"),t),style:r})}var dTe=[\"className\",\"title\",\"eventKey\",\"children\"],fTe=m.forwardRef(function(e,t){var r=e.className,n=e.title;e.eventKey;var a=e.children,i=Xt(e,dTe),o=m.useContext(yu),l=o.prefixCls,s=\"\".concat(l,\"-item-group\");return m.createElement(\"li\",Ce({ref:t,role:\"presentation\"},i,{onClick:function(c){return c.stopPropagation()},className:ne(s,r)}),m.createElement(\"div\",{role:\"presentation\",className:\"\".concat(s,\"-title\"),title:typeof n==\"string\"?n:void 0},n),m.createElement(\"ul\",{role:\"group\",className:\"\".concat(s,\"-list\")},a))}),cO=m.forwardRef(function(e,t){var r=e.eventKey,n=e.children,a=Dg(r),i=sO(n,a),o=A6();return o?i:m.createElement(fTe,Ce({ref:t},wn(e,[\"warnKey\"])),i)}),hTe=[\"label\",\"children\",\"key\",\"type\",\"extra\"];function RR(e,t,r){var n=t.item,a=t.group,i=t.submenu,o=t.divider;return(e||[]).map(function(l,s){if(l&&Nt(l)===\"object\"){var u=l,c=u.label,d=u.children,f=u.key,h=u.type,p=u.extra,v=Xt(u,hTe),g=f??\"tmp-\".concat(s);return d||h===\"group\"?h===\"group\"?m.createElement(a,Ce({key:g},v,{title:c}),RR(d,t,r)):m.createElement(i,Ce({key:g},v,{title:c}),RR(d,t,r)):h===\"divider\"?m.createElement(o,Ce({key:g},v)):m.createElement(n,Ce({key:g},v,{extra:p}),c,(!!p||p===0)&&m.createElement(\"span\",{className:\"\".concat(r,\"-item-extra\")},p))}return null}).filter(function(l){return l})}function BH(e,t,r,n,a){var i=e,o=ae({divider:uO,item:xx,group:cO,submenu:_6},n);return t&&(i=RR(t,o,a)),sO(i,r)}var pTe=[\"prefixCls\",\"rootClassName\",\"style\",\"className\",\"tabIndex\",\"items\",\"children\",\"direction\",\"id\",\"mode\",\"inlineCollapsed\",\"disabled\",\"disabledOverflow\",\"subMenuOpenDelay\",\"subMenuCloseDelay\",\"forceSubMenuRender\",\"defaultOpenKeys\",\"openKeys\",\"activeKey\",\"defaultActiveFirst\",\"selectable\",\"multiple\",\"defaultSelectedKeys\",\"selectedKeys\",\"onSelect\",\"onDeselect\",\"inlineIndent\",\"motion\",\"defaultMotions\",\"triggerSubMenuAction\",\"builtinPlacements\",\"itemIcon\",\"expandIcon\",\"overflowedIndicator\",\"overflowedIndicatorPopupClassName\",\"getPopupContainer\",\"onClick\",\"onOpenChange\",\"onKeyDown\",\"openAnimation\",\"openTransitionName\",\"_internalRenderMenuItem\",\"_internalRenderSubMenuItem\",\"_internalComponents\"],dh=[],mTe=m.forwardRef(function(e,t){var r,n=e,a=n.prefixCls,i=a===void 0?\"rc-menu\":a,o=n.rootClassName,l=n.style,s=n.className,u=n.tabIndex,c=u===void 0?0:u,d=n.items,f=n.children,h=n.direction,p=n.id,v=n.mode,g=v===void 0?\"vertical\":v,y=n.inlineCollapsed,b=n.disabled,x=n.disabledOverflow,F=n.subMenuOpenDelay,S=F===void 0?.1:F,E=n.subMenuCloseDelay,w=E===void 0?.1:E,D=n.forceSubMenuRender,A=n.defaultOpenKeys,_=n.openKeys,I=n.activeKey,M=n.defaultActiveFirst,T=n.selectable,k=T===void 0?!0:T,R=n.multiple,P=R===void 0?!1:R,B=n.defaultSelectedKeys,N=n.selectedKeys,O=n.onSelect,z=n.onDeselect,W=n.inlineIndent,L=W===void 0?24:W,j=n.motion,H=n.defaultMotions,V=n.triggerSubMenuAction,U=V===void 0?\"hover\":V,Q=n.builtinPlacements,K=n.itemIcon,Y=n.expandIcon,ee=n.overflowedIndicator,J=ee===void 0?\"...\":ee,X=n.overflowedIndicatorPopupClassName,ce=n.getPopupContainer,oe=n.onClick,ue=n.onOpenChange,ie=n.onKeyDown;n.openAnimation,n.openTransitionName;var fe=n._internalRenderMenuItem,xe=n._internalRenderSubMenuItem,Ee=n._internalComponents,De=Xt(n,pTe),ye=m.useMemo(function(){return[BH(f,d,dh,Ee,i),BH(f,d,dh,{},i)]},[f,d,Ee]),we=ve(ye,2),Fe=we[0],me=we[1],Me=m.useState(!1),je=ve(Me,2),lt=je[0],tt=je[1],rt=m.useRef(),dt=K5e(p),Ve=h===\"rtl\",Ie=un(A,{value:_,postState:function(Zt){return Zt||dh}}),Je=ve(Ie,2),Pe=Je[0],Ge=Je[1],Ae=function(Zt){var Jt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;function on(){Ge(Zt),ue==null||ue(Zt)}Jt?Fs.flushSync(on):on()},_e=m.useState(Pe),$e=ve(_e,2),Ke=$e[0],pt=$e[1],_t=m.useRef(!1),ht=m.useMemo(function(){return(g===\"inline\"||g===\"vertical\")&&y?[\"vertical\",y]:[g,!1]},[g,y]),gt=ve(ht,2),Et=gt[0],xt=gt[1],Dt=Et===\"inline\",ur=m.useState(Et),mr=ve(ur,2),Tt=mr[0],jt=mr[1],Lt=m.useState(xt),mt=ve(Lt,2),it=mt[0],st=mt[1];m.useEffect(function(){jt(Et),st(xt),_t.current&&(Dt?Ge(Ke):Ae(dh))},[Et,xt]);var Ct=m.useState(0),te=ve(Ct,2),pe=te[0],he=te[1],se=pe>=Fe.length-1||Tt!==\"horizontal\"||x;m.useEffect(function(){Dt&&pt(Pe)},[Pe]),m.useEffect(function(){return _t.current=!0,function(){_t.current=!1}},[]);var de=G5e(),ge=de.registerPath,Te=de.unregisterPath,We=de.refreshOverflowKeys,ke=de.isSubPathKey,Be=de.getKeyPath,Oe=de.getKeys,at=de.getSubPathKeys,Le=m.useMemo(function(){return{registerPath:ge,unregisterPath:Te}},[ge,Te]),Ye=m.useMemo(function(){return{isSubPathKey:ke}},[ke]);m.useEffect(function(){We(se?dh:Fe.slice(pe+1).map(function(dn){return dn.key}))},[pe,se]);var qe=un(I||M&&((r=Fe[0])===null||r===void 0?void 0:r.key),{value:I}),Ze=ve(qe,2),ft=Ze[0],yt=Ze[1],zt=cy(function(dn){yt(dn)}),vr=cy(function(){yt(void 0)});m.useImperativeHandle(t,function(){return{list:rt.current,focus:function(Zt){var Jt,on=Oe(),Ut=IR(on,dt),qt=Ut.elements,Qr=Ut.key2element,On=Ut.element2key,Qn=iO(rt.current,qt),Va=ft??(Qn[0]?On.get(Qn[0]):(Jt=Fe.find(function(Wr){return!Wr.props.disabled}))===null||Jt===void 0?void 0:Jt.key),Fa=Qr.get(Va);if(Va&&Fa){var Wa;Fa==null||(Wa=Fa.focus)===null||Wa===void 0||Wa.call(Fa,Zt)}}}});var kt=un(B||[],{value:N,postState:function(Zt){return Array.isArray(Zt)?Zt:Zt==null?dh:[Zt]}}),Yt=ve(kt,2),xr=Yt[0],mn=Yt[1],Pn=function(Zt){if(k){var Jt=Zt.key,on=xr.includes(Jt),Ut;P?on?Ut=xr.filter(function(Qr){return Qr!==Jt}):Ut=[].concat(He(xr),[Jt]):Ut=[Jt],mn(Ut);var qt=ae(ae({},Zt),{},{selectedKeys:Ut});on?z==null||z(qt):O==null||O(qt)}!P&&Pe.length&&Tt!==\"inline\"&&Ae(dh)},Tn=cy(function(dn){oe==null||oe(EE(dn)),Pn(dn)}),ka=cy(function(dn,Zt){var Jt=Pe.filter(function(Ut){return Ut!==dn});if(Zt)Jt.push(dn);else if(Tt!==\"inline\"){var on=at(dn);Jt=Jt.filter(function(Ut){return!on.has(Ut)})}vu(Pe,Jt,!0)||Ae(Jt,!0)}),ha=function(Zt,Jt){var on=Jt??!Pe.includes(Zt);ka(Zt,on)},ja=H5e(Tt,ft,Ve,dt,rt,Oe,Be,yt,ha,ie);m.useEffect(function(){tt(!0)},[]);var za=m.useMemo(function(){return{_internalRenderMenuItem:fe,_internalRenderSubMenuItem:xe}},[fe,xe]),ti=Tt!==\"horizontal\"||x?Fe:Fe.map(function(dn,Zt){return m.createElement(t2,{key:dn.key,overflowDisabled:Zt>pe},dn)}),Ha=m.createElement(lu,Ce({id:p,ref:rt,prefixCls:\"\".concat(i,\"-overflow\"),component:\"ul\",itemComponent:xx,className:ne(i,\"\".concat(i,\"-root\"),\"\".concat(i,\"-\").concat(Tt),s,Z(Z({},\"\".concat(i,\"-inline-collapsed\"),it),\"\".concat(i,\"-rtl\"),Ve),o),dir:h,style:l,role:\"menu\",tabIndex:c,data:ti,renderRawItem:function(Zt){return Zt},renderRawRest:function(Zt){var Jt=Zt.length,on=Jt?Fe.slice(-Jt):null;return m.createElement(_6,{eventKey:kR,title:J,disabled:se,internalPopupClose:Jt===0,popupClassName:X},on)},maxCount:Tt!==\"horizontal\"||x?lu.INVALIDATE:lu.RESPONSIVE,ssr:\"full\",\"data-menu-list\":!0,onVisibleChange:function(Zt){he(Zt)},onKeyDown:ja},De));return m.createElement(aO.Provider,{value:za},m.createElement(Vie.Provider,{value:dt},m.createElement(t2,{prefixCls:i,rootClassName:o,mode:Tt,openKeys:Pe,rtl:Ve,disabled:b,motion:lt?j:null,defaultMotions:lt?H:null,activeKey:ft,onActive:zt,onInactive:vr,selectedKeys:xr,inlineIndent:L,subMenuOpenDelay:S,subMenuCloseDelay:w,forceSubMenuRender:D,builtinPlacements:Q,triggerSubMenuAction:U,getPopupContainer:ce,itemIcon:K,expandIcon:Y,onItemClick:Tn,onOpenChange:ka},m.createElement(Yie.Provider,{value:Ye},Ha),m.createElement(\"div\",{style:{display:\"none\"},\"aria-hidden\":!0},m.createElement(Uie.Provider,{value:Le},me)))))}),Ag=mTe;Ag.Item=xx;Ag.SubMenu=_6;Ag.ItemGroup=cO;Ag.Divider=uO;var vTe={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\"}}]},name:\"bars\",theme:\"outlined\"},gTe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:vTe}))},yTe=m.forwardRef(gTe);const eoe=m.createContext({siderHook:{addSider:()=>null,removeSider:()=>null}}),bTe=e=>{const{antCls:t,componentCls:r,colorText:n,footerBg:a,headerHeight:i,headerPadding:o,headerColor:l,footerPadding:s,fontSize:u,bodyBg:c,headerBg:d}=e;return{[r]:{display:\"flex\",flex:\"auto\",flexDirection:\"column\",minHeight:0,background:c,\"&, *\":{boxSizing:\"border-box\"},[`&${r}-has-sider`]:{flexDirection:\"row\",[`> ${r}, > ${r}-content`]:{width:0}},[`${r}-header, &${r}-footer`]:{flex:\"0 0 auto\"},\"&-rtl\":{direction:\"rtl\"}},[`${r}-header`]:{height:i,padding:o,color:l,lineHeight:re(i),background:d,[`${t}-menu`]:{lineHeight:\"inherit\"}},[`${r}-footer`]:{padding:s,color:n,fontSize:u,background:a},[`${r}-content`]:{flex:\"auto\",color:n,minHeight:0}}},toe=e=>{const{colorBgLayout:t,controlHeight:r,controlHeightLG:n,colorText:a,controlHeightSM:i,marginXXS:o,colorTextLightSolid:l,colorBgContainer:s}=e,u=n*1.25;return{colorBgHeader:\"#001529\",colorBgBody:t,colorBgTrigger:\"#002140\",bodyBg:t,headerBg:\"#001529\",headerHeight:r*2,headerPadding:`0 ${u}px`,headerColor:a,footerPadding:`${i}px ${u}px`,footerBg:t,siderBg:\"#001529\",triggerHeight:n+o*2,triggerBg:\"#002140\",triggerColor:l,zeroTriggerWidth:n,zeroTriggerHeight:n,lightSiderBg:s,lightTriggerBg:s,lightTriggerColor:a}},roe=[[\"colorBgBody\",\"bodyBg\"],[\"colorBgHeader\",\"headerBg\"],[\"colorBgTrigger\",\"triggerBg\"]],noe=kr(\"Layout\",bTe,toe,{deprecatedTokens:roe}),xTe=e=>{const{componentCls:t,siderBg:r,motionDurationMid:n,motionDurationSlow:a,antCls:i,triggerHeight:o,triggerColor:l,triggerBg:s,headerHeight:u,zeroTriggerWidth:c,zeroTriggerHeight:d,borderRadiusLG:f,lightSiderBg:h,lightTriggerColor:p,lightTriggerBg:v,bodyBg:g}=e;return{[t]:{position:\"relative\",minWidth:0,background:r,transition:`all ${n}, background 0s`,\"&-has-trigger\":{paddingBottom:o},\"&-right\":{order:1},[`${t}-children`]:{height:\"100%\",marginTop:-.1,paddingTop:.1,[`${i}-menu${i}-menu-inline-collapsed`]:{width:\"auto\"}},[`&-zero-width ${t}-children`]:{overflow:\"hidden\"},[`${t}-trigger`]:{position:\"fixed\",bottom:0,zIndex:1,height:o,color:l,lineHeight:re(o),textAlign:\"center\",background:s,cursor:\"pointer\",transition:`all ${n}`},[`${t}-zero-width-trigger`]:{position:\"absolute\",top:u,insetInlineEnd:e.calc(c).mul(-1).equal(),zIndex:1,width:c,height:d,color:l,fontSize:e.fontSizeXL,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:r,borderRadius:`0 ${re(f)} ${re(f)} 0`,cursor:\"pointer\",transition:`background ${a} ease`,\"&::after\":{position:\"absolute\",inset:0,background:\"transparent\",transition:`all ${a}`,content:'\"\"'},\"&:hover::after\":{background:\"rgba(255, 255, 255, 0.2)\"},\"&-right\":{insetInlineStart:e.calc(c).mul(-1).equal(),borderRadius:`${re(f)} 0 0 ${re(f)}`}},\"&-light\":{background:h,[`${t}-trigger`]:{color:p,background:v},[`${t}-zero-width-trigger`]:{color:p,background:v,border:`1px solid ${g}`,borderInlineStart:0}}}}},CTe=kr([\"Layout\",\"Sider\"],xTe,toe,{deprecatedTokens:roe});var FTe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const NH={xs:\"479.98px\",sm:\"575.98px\",md:\"767.98px\",lg:\"991.98px\",xl:\"1199.98px\",xxl:\"1599.98px\"},STe=e=>!Number.isNaN(Number.parseFloat(e))&&Number.isFinite(Number(e)),T6=m.createContext({}),wTe=(()=>{let e=0;return(t=\"\")=>(e+=1,`${t}${e}`)})(),aoe=m.forwardRef((e,t)=>{const{prefixCls:r,className:n,trigger:a,children:i,defaultCollapsed:o=!1,theme:l=\"dark\",style:s={},collapsible:u=!1,reverseArrow:c=!1,width:d=200,collapsedWidth:f=80,zeroWidthTriggerStyle:h,breakpoint:p,onCollapse:v,onBreakpoint:g}=e,y=FTe(e,[\"prefixCls\",\"className\",\"trigger\",\"children\",\"defaultCollapsed\",\"theme\",\"style\",\"collapsible\",\"reverseArrow\",\"width\",\"collapsedWidth\",\"zeroWidthTriggerStyle\",\"breakpoint\",\"onCollapse\",\"onBreakpoint\"]),{siderHook:b}=m.useContext(eoe),[x,F]=m.useState(\"collapsed\"in e?e.collapsed:o),[S,E]=m.useState(!1);m.useEffect(()=>{\"collapsed\"in e&&F(e.collapsed)},[e.collapsed]);const w=(K,Y)=>{\"collapsed\"in e||F(K),v==null||v(K,Y)},{getPrefixCls:D,direction:A}=m.useContext(Ot),_=D(\"layout-sider\",r),[I,M,T]=CTe(_),k=m.useRef(null);k.current=K=>{E(K.matches),g==null||g(K.matches),x!==K.matches&&w(K.matches,\"responsive\")},m.useEffect(()=>{function K(ee){var J;return(J=k.current)===null||J===void 0?void 0:J.call(k,ee)}let Y;return typeof(window==null?void 0:window.matchMedia)<\"u\"&&p&&p in NH&&(Y=window.matchMedia(`screen and (max-width: ${NH[p]})`),Aie(Y,K),K(Y)),()=>{_ie(Y,K)}},[p]),m.useEffect(()=>{const K=wTe(\"ant-sider-\");return b.addSider(K),()=>b.removeSider(K)},[]);const R=()=>{w(!x,\"clickTrigger\")},P=wn(y,[\"collapsed\"]),B=x?f:d,N=STe(B)?`${B}px`:String(B),O=Number.parseFloat(String(f||0))===0?m.createElement(\"span\",{onClick:R,className:ne(`${_}-zero-width-trigger`,`${_}-zero-width-trigger-${c?\"right\":\"left\"}`),style:h},a||m.createElement(yTe,null)):null,z=A===\"rtl\"==!c,j={expanded:z?m.createElement(nd,null):m.createElement(zf,null),collapsed:z?m.createElement(zf,null):m.createElement(nd,null)}[x?\"collapsed\":\"expanded\"],H=a!==null?O||m.createElement(\"div\",{className:`${_}-trigger`,onClick:R,style:{width:N}},a||j):null,V=Object.assign(Object.assign({},s),{flex:`0 0 ${N}`,maxWidth:N,minWidth:N,width:N}),U=ne(_,`${_}-${l}`,{[`${_}-collapsed`]:!!x,[`${_}-has-trigger`]:u&&a!==null&&!O,[`${_}-below`]:!!S,[`${_}-zero-width`]:Number.parseFloat(N)===0},n,M,T),Q=m.useMemo(()=>({siderCollapsed:x}),[x]);return I(m.createElement(T6.Provider,{value:Q},m.createElement(\"aside\",Object.assign({className:U},P,{style:V,ref:t}),m.createElement(\"div\",{className:`${_}-children`},i),u||S&&O?H:null)))});var ETe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z\"}}]},name:\"ellipsis\",theme:\"outlined\"},DTe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:ETe}))},dO=m.forwardRef(DTe);const DE=m.createContext({prefixCls:\"\",firstLevel:!0,inlineCollapsed:!1});var ATe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const ioe=e=>{const{prefixCls:t,className:r,dashed:n}=e,a=ATe(e,[\"prefixCls\",\"className\",\"dashed\"]),{getPrefixCls:i}=m.useContext(Ot),o=i(\"menu\",t),l=ne({[`${o}-item-divider-dashed`]:!!n},r);return m.createElement(uO,Object.assign({className:l},a))},ooe=e=>{var t;const{className:r,children:n,icon:a,title:i,danger:o,extra:l}=e,{prefixCls:s,firstLevel:u,direction:c,disableMenuItemTitleTooltip:d,inlineCollapsed:f}=m.useContext(DE),h=x=>{const F=n==null?void 0:n[0],S=m.createElement(\"span\",{className:ne(`${s}-title-content`,{[`${s}-title-content-with-extra`]:!!l||l===0})},n);return(!a||m.isValidElement(n)&&n.type===\"span\")&&n&&x&&u&&typeof F==\"string\"?m.createElement(\"div\",{className:`${s}-inline-collapsed-noicon`},F.charAt(0)):S},{siderCollapsed:p}=m.useContext(T6);let v=i;typeof i>\"u\"?v=u?n:\"\":i===!1&&(v=\"\");const g={title:v};!p&&!f&&(g.title=null,g.open=!1);const y=ba(n).length;let b=m.createElement(xx,Object.assign({},wn(e,[\"title\",\"icon\",\"danger\"]),{className:ne({[`${s}-item-danger`]:o,[`${s}-item-only-child`]:(a?y+1:y)===1},r),title:typeof i==\"string\"?i:void 0}),oa(a,{className:ne(m.isValidElement(a)?(t=a.props)===null||t===void 0?void 0:t.className:void 0,`${s}-item-icon`)}),h(f));return d||(b=m.createElement(Dr,Object.assign({},g,{placement:c===\"rtl\"?\"left\":\"right\",classNames:{root:`${s}-inline-collapsed-tooltip`}}),b)),b};var _Te=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const AE=m.createContext(null),loe=m.forwardRef((e,t)=>{const{children:r}=e,n=_Te(e,[\"children\"]),a=m.useContext(AE),i=m.useMemo(()=>Object.assign(Object.assign({},a),n),[a,n.prefixCls,n.mode,n.selectable,n.rootClassName]),o=pxe(r),l=yc(t,o?rh(r):null);return m.createElement(AE.Provider,{value:i},m.createElement(gu,{space:!0},o?m.cloneElement(r,{ref:l}):r))}),TTe=e=>{const{componentCls:t,motionDurationSlow:r,horizontalLineHeight:n,colorSplit:a,lineWidth:i,lineType:o,itemPaddingInline:l}=e;return{[`${t}-horizontal`]:{lineHeight:n,border:0,borderBottom:`${re(i)} ${o} ${a}`,boxShadow:\"none\",\"&::after\":{display:\"block\",clear:\"both\",height:0,content:'\"\\\\20\"'},[`${t}-item, ${t}-submenu`]:{position:\"relative\",display:\"inline-block\",verticalAlign:\"bottom\",paddingInline:l},[`> ${t}-item:hover,\n > ${t}-item-active,\n > ${t}-submenu ${t}-submenu-title:hover`]:{backgroundColor:\"transparent\"},[`${t}-item, ${t}-submenu-title`]:{transition:[`border-color ${r}`,`background ${r}`].join(\",\")},[`${t}-submenu-arrow`]:{display:\"none\"}}}},ITe=({componentCls:e,menuArrowOffset:t,calc:r})=>({[`${e}-rtl`]:{direction:\"rtl\"},[`${e}-submenu-rtl`]:{transformOrigin:\"100% 0\"},[`${e}-rtl${e}-vertical,\n ${e}-submenu-rtl ${e}-vertical`]:{[`${e}-submenu-arrow`]:{\"&::before\":{transform:`rotate(-45deg) translateY(${re(r(t).mul(-1).equal())})`},\"&::after\":{transform:`rotate(45deg) translateY(${re(t)})`}}}}),$H=e=>uc(e),LH=(e,t)=>{const{componentCls:r,itemColor:n,itemSelectedColor:a,subMenuItemSelectedColor:i,groupTitleColor:o,itemBg:l,subMenuItemBg:s,itemSelectedBg:u,activeBarHeight:c,activeBarWidth:d,activeBarBorderWidth:f,motionDurationSlow:h,motionEaseInOut:p,motionEaseOut:v,itemPaddingInline:g,motionDurationMid:y,itemHoverColor:b,lineType:x,colorSplit:F,itemDisabledColor:S,dangerItemColor:E,dangerItemHoverColor:w,dangerItemSelectedColor:D,dangerItemActiveBg:A,dangerItemSelectedBg:_,popupBg:I,itemHoverBg:M,itemActiveBg:T,menuSubMenuBg:k,horizontalItemSelectedColor:R,horizontalItemSelectedBg:P,horizontalItemBorderRadius:B,horizontalItemHoverBg:N}=e;return{[`${r}-${t}, ${r}-${t} > ${r}`]:{color:n,background:l,[`&${r}-root:focus-visible`]:Object.assign({},$H(e)),[`${r}-item`]:{\"&-group-title, &-extra\":{color:o}},[`${r}-submenu-selected > ${r}-submenu-title`]:{color:i},[`${r}-item, ${r}-submenu-title`]:{color:n,[`&:not(${r}-item-disabled):focus-visible`]:Object.assign({},$H(e))},[`${r}-item-disabled, ${r}-submenu-disabled`]:{color:`${S} !important`},[`${r}-item:not(${r}-item-selected):not(${r}-submenu-selected)`]:{[`&:hover, > ${r}-submenu-title:hover`]:{color:b}},[`&:not(${r}-horizontal)`]:{[`${r}-item:not(${r}-item-selected)`]:{\"&:hover\":{backgroundColor:M},\"&:active\":{backgroundColor:T}},[`${r}-submenu-title`]:{\"&:hover\":{backgroundColor:M},\"&:active\":{backgroundColor:T}}},[`${r}-item-danger`]:{color:E,[`&${r}-item:hover`]:{[`&:not(${r}-item-selected):not(${r}-submenu-selected)`]:{color:w}},[`&${r}-item:active`]:{background:A}},[`${r}-item a`]:{\"&, &:hover\":{color:\"inherit\"}},[`${r}-item-selected`]:{color:a,[`&${r}-item-danger`]:{color:D},\"a, a:hover\":{color:\"inherit\"}},[`& ${r}-item-selected`]:{backgroundColor:u,[`&${r}-item-danger`]:{backgroundColor:_}},[`&${r}-submenu > ${r}`]:{backgroundColor:k},[`&${r}-popup > ${r}`]:{backgroundColor:I},[`&${r}-submenu-popup > ${r}`]:{backgroundColor:I},[`&${r}-horizontal`]:Object.assign(Object.assign({},t===\"dark\"?{borderBottom:0}:{}),{[`> ${r}-item, > ${r}-submenu`]:{top:f,marginTop:e.calc(f).mul(-1).equal(),marginBottom:0,borderRadius:B,\"&::after\":{position:\"absolute\",insetInline:g,bottom:0,borderBottom:`${re(c)} solid transparent`,transition:`border-color ${h} ${p}`,content:'\"\"'},\"&:hover, &-active, &-open\":{background:N,\"&::after\":{borderBottomWidth:c,borderBottomColor:R}},\"&-selected\":{color:R,backgroundColor:P,\"&:hover\":{backgroundColor:P},\"&::after\":{borderBottomWidth:c,borderBottomColor:R}}}}),[`&${r}-root`]:{[`&${r}-inline, &${r}-vertical`]:{borderInlineEnd:`${re(f)} ${x} ${F}`}},[`&${r}-inline`]:{[`${r}-sub${r}-inline`]:{background:s},[`${r}-item`]:{position:\"relative\",\"&::after\":{position:\"absolute\",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${re(d)} solid ${a}`,transform:\"scaleY(0.0001)\",opacity:0,transition:[`transform ${y} ${v}`,`opacity ${y} ${v}`].join(\",\"),content:'\"\"'},[`&${r}-item-danger`]:{\"&::after\":{borderInlineEndColor:D}}},[`${r}-selected, ${r}-item-selected`]:{\"&::after\":{transform:\"scaleY(1)\",opacity:1,transition:[`transform ${y} ${p}`,`opacity ${y} ${p}`].join(\",\")}}}}}},jH=e=>{const{componentCls:t,itemHeight:r,itemMarginInline:n,padding:a,menuArrowSize:i,marginXS:o,itemMarginBlock:l,itemWidth:s,itemPaddingInline:u}=e,c=e.calc(i).add(a).add(o).equal();return{[`${t}-item`]:{position:\"relative\",overflow:\"hidden\"},[`${t}-item, ${t}-submenu-title`]:{height:r,lineHeight:re(r),paddingInline:u,overflow:\"hidden\",textOverflow:\"ellipsis\",marginInline:n,marginBlock:l,width:s},[`> ${t}-item,\n > ${t}-submenu > ${t}-submenu-title`]:{height:r,lineHeight:re(r)},[`${t}-item-group-list ${t}-submenu-title,\n ${t}-submenu-title`]:{paddingInlineEnd:c}}},kTe=e=>{const{componentCls:t,iconCls:r,itemHeight:n,colorTextLightSolid:a,dropdownWidth:i,controlHeightLG:o,motionEaseOut:l,paddingXL:s,itemMarginInline:u,fontSizeLG:c,motionDurationFast:d,motionDurationSlow:f,paddingXS:h,boxShadowSecondary:p,collapsedWidth:v,collapsedIconSize:g}=e,y={height:n,lineHeight:re(n),listStylePosition:\"inside\",listStyleType:\"disc\"};return[{[t]:{\"&-inline, &-vertical\":Object.assign({[`&${t}-root`]:{boxShadow:\"none\"}},jH(e))},[`${t}-submenu-popup`]:{[`${t}-vertical`]:Object.assign(Object.assign({},jH(e)),{boxShadow:p})}},{[`${t}-submenu-popup ${t}-vertical${t}-sub`]:{minWidth:i,maxHeight:`calc(100vh - ${re(e.calc(o).mul(2.5).equal())})`,padding:\"0\",overflow:\"hidden\",borderInlineEnd:0,\"&:not([class*='-active'])\":{overflowX:\"hidden\",overflowY:\"auto\"}}},{[`${t}-inline`]:{width:\"100%\",[`&${t}-root`]:{[`${t}-item, ${t}-submenu-title`]:{display:\"flex\",alignItems:\"center\",transition:[`border-color ${f}`,`background ${f}`,`padding ${d} ${l}`].join(\",\"),[`> ${t}-title-content`]:{flex:\"auto\",minWidth:0,overflow:\"hidden\",textOverflow:\"ellipsis\"},\"> *\":{flex:\"none\"}}},[`${t}-sub${t}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:\"none\",[`& > ${t}-submenu > ${t}-submenu-title`]:y,[`& ${t}-item-group-title`]:{paddingInlineStart:s}},[`${t}-item`]:y}},{[`${t}-inline-collapsed`]:{width:v,[`&${t}-root`]:{[`${t}-item, ${t}-submenu ${t}-submenu-title`]:{[`> ${t}-inline-collapsed-noicon`]:{fontSize:c,textAlign:\"center\"}}},[`> ${t}-item,\n > ${t}-item-group > ${t}-item-group-list > ${t}-item,\n > ${t}-item-group > ${t}-item-group-list > ${t}-submenu > ${t}-submenu-title,\n > ${t}-submenu > ${t}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${re(e.calc(g).div(2).equal())} - ${re(u)})`,textOverflow:\"clip\",[`\n ${t}-submenu-arrow,\n ${t}-submenu-expand-icon\n `]:{opacity:0},[`${t}-item-icon, ${r}`]:{margin:0,fontSize:g,lineHeight:re(n),\"+ span\":{display:\"inline-block\",opacity:0}}},[`${t}-item-icon, ${r}`]:{display:\"inline-block\"},\"&-tooltip\":{pointerEvents:\"none\",[`${t}-item-icon, ${r}`]:{display:\"none\"},\"a, a:hover\":{color:a}},[`${t}-item-group-title`]:Object.assign(Object.assign({},$l),{paddingInline:h})}}]},zH=e=>{const{componentCls:t,motionDurationSlow:r,motionDurationMid:n,motionEaseInOut:a,motionEaseOut:i,iconCls:o,iconSize:l,iconMarginInlineEnd:s}=e;return{[`${t}-item, ${t}-submenu-title`]:{position:\"relative\",display:\"block\",margin:0,whiteSpace:\"nowrap\",cursor:\"pointer\",transition:[`border-color ${r}`,`background ${r}`,`padding calc(${r} + 0.1s) ${a}`].join(\",\"),[`${t}-item-icon, ${o}`]:{minWidth:l,fontSize:l,transition:[`font-size ${n} ${i}`,`margin ${r} ${a}`,`color ${r}`].join(\",\"),\"+ span\":{marginInlineStart:s,opacity:1,transition:[`opacity ${r} ${a}`,`margin ${r}`,`color ${r}`].join(\",\")}},[`${t}-item-icon`]:Object.assign({},pm()),[`&${t}-item-only-child`]:{[`> ${o}, > ${t}-item-icon`]:{marginInlineEnd:0}}},[`${t}-item-disabled, ${t}-submenu-disabled`]:{background:\"none !important\",cursor:\"not-allowed\",\"&::after\":{borderColor:\"transparent !important\"},a:{color:\"inherit !important\",cursor:\"not-allowed\",pointerEvents:\"none\"},[`> ${t}-submenu-title`]:{color:\"inherit !important\",cursor:\"not-allowed\"}}}},HH=e=>{const{componentCls:t,motionDurationSlow:r,motionEaseInOut:n,borderRadius:a,menuArrowSize:i,menuArrowOffset:o}=e;return{[`${t}-submenu`]:{\"&-expand-icon, &-arrow\":{position:\"absolute\",top:\"50%\",insetInlineEnd:e.margin,width:i,color:\"currentcolor\",transform:\"translateY(-50%)\",transition:`transform ${r} ${n}, opacity ${r}`},\"&-arrow\":{\"&::before, &::after\":{position:\"absolute\",width:e.calc(i).mul(.6).equal(),height:e.calc(i).mul(.15).equal(),backgroundColor:\"currentcolor\",borderRadius:a,transition:[`background ${r} ${n}`,`transform ${r} ${n}`,`top ${r} ${n}`,`color ${r} ${n}`].join(\",\"),content:'\"\"'},\"&::before\":{transform:`rotate(45deg) translateY(${re(e.calc(o).mul(-1).equal())})`},\"&::after\":{transform:`rotate(-45deg) translateY(${re(o)})`}}}}},RTe=e=>{const{antCls:t,componentCls:r,fontSize:n,motionDurationSlow:a,motionDurationMid:i,motionEaseInOut:o,paddingXS:l,padding:s,colorSplit:u,lineWidth:c,zIndexPopup:d,borderRadiusLG:f,subMenuItemBorderRadius:h,menuArrowSize:p,menuArrowOffset:v,lineType:g,groupTitleLineHeight:y,groupTitleFontSize:b}=e;return[{\"\":{[r]:Object.assign(Object.assign({},sc()),{\"&-hidden\":{display:\"none\"}})},[`${r}-submenu-hidden`]:{display:\"none\"}},{[r]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),sc()),{marginBottom:0,paddingInlineStart:0,fontSize:n,lineHeight:0,listStyle:\"none\",outline:\"none\",transition:`width ${a} cubic-bezier(0.2, 0, 0, 1) 0s`,\"ul, ol\":{margin:0,padding:0,listStyle:\"none\"},\"&-overflow\":{display:\"flex\",[`${r}-item`]:{flex:\"none\"}},[`${r}-item, ${r}-submenu, ${r}-submenu-title`]:{borderRadius:e.itemBorderRadius},[`${r}-item-group-title`]:{padding:`${re(l)} ${re(s)}`,fontSize:b,lineHeight:y,transition:`all ${a}`},[`&-horizontal ${r}-submenu`]:{transition:[`border-color ${a} ${o}`,`background ${a} ${o}`].join(\",\")},[`${r}-submenu, ${r}-submenu-inline`]:{transition:[`border-color ${a} ${o}`,`background ${a} ${o}`,`padding ${i} ${o}`].join(\",\")},[`${r}-submenu ${r}-sub`]:{cursor:\"initial\",transition:[`background ${a} ${o}`,`padding ${a} ${o}`].join(\",\")},[`${r}-title-content`]:{transition:`color ${a}`,\"&-with-extra\":{display:\"inline-flex\",alignItems:\"center\",width:\"100%\"},[`> ${t}-typography-ellipsis-single-line`]:{display:\"inline\",verticalAlign:\"unset\"},[`${r}-item-extra`]:{marginInlineStart:\"auto\",paddingInlineStart:e.padding}},[`${r}-item a`]:{\"&::before\":{position:\"absolute\",inset:0,backgroundColor:\"transparent\",content:'\"\"'}},[`${r}-item-divider`]:{overflow:\"hidden\",lineHeight:0,borderColor:u,borderStyle:g,borderWidth:0,borderTopWidth:c,marginBlock:c,padding:0,\"&-dashed\":{borderStyle:\"dashed\"}}}),zH(e)),{[`${r}-item-group`]:{[`${r}-item-group-list`]:{margin:0,padding:0,[`${r}-item, ${r}-submenu-title`]:{paddingInline:`${re(e.calc(n).mul(2).equal())} ${re(s)}`}}},\"&-submenu\":{\"&-popup\":{position:\"absolute\",zIndex:d,borderRadius:f,boxShadow:\"none\",transformOrigin:\"0 0\",[`&${r}-submenu`]:{background:\"transparent\"},\"&::before\":{position:\"absolute\",inset:0,zIndex:-1,width:\"100%\",height:\"100%\",opacity:0,content:'\"\"'},[`> ${r}`]:Object.assign(Object.assign(Object.assign({borderRadius:f},zH(e)),HH(e)),{[`${r}-item, ${r}-submenu > ${r}-submenu-title`]:{borderRadius:h},[`${r}-submenu-title::after`]:{transition:`transform ${a} ${o}`}})},\"\\n &-placement-leftTop,\\n &-placement-bottomRight,\\n \":{transformOrigin:\"100% 0\"},\"\\n &-placement-leftBottom,\\n &-placement-topRight,\\n \":{transformOrigin:\"100% 100%\"},\"\\n &-placement-rightBottom,\\n &-placement-topLeft,\\n \":{transformOrigin:\"0 100%\"},\"\\n &-placement-bottomLeft,\\n &-placement-rightTop,\\n \":{transformOrigin:\"0 0\"},\"\\n &-placement-leftTop,\\n &-placement-leftBottom\\n \":{paddingInlineEnd:e.paddingXS},\"\\n &-placement-rightTop,\\n &-placement-rightBottom\\n \":{paddingInlineStart:e.paddingXS},\"\\n &-placement-topRight,\\n &-placement-topLeft\\n \":{paddingBottom:e.paddingXS},\"\\n &-placement-bottomRight,\\n &-placement-bottomLeft\\n \":{paddingTop:e.paddingXS}}}),HH(e)),{[`&-inline-collapsed ${r}-submenu-arrow,\n &-inline ${r}-submenu-arrow`]:{\"&::before\":{transform:`rotate(-45deg) translateX(${re(v)})`},\"&::after\":{transform:`rotate(45deg) translateX(${re(e.calc(v).mul(-1).equal())})`}},[`${r}-submenu-open${r}-submenu-inline > ${r}-submenu-title > ${r}-submenu-arrow`]:{transform:`translateY(${re(e.calc(p).mul(.2).mul(-1).equal())})`,\"&::after\":{transform:`rotate(-45deg) translateX(${re(e.calc(v).mul(-1).equal())})`},\"&::before\":{transform:`rotate(45deg) translateX(${re(v)})`}}})},{[`${t}-layout-header`]:{[r]:{lineHeight:\"inherit\"}}}]},MTe=e=>{var t,r,n;const{colorPrimary:a,colorError:i,colorTextDisabled:o,colorErrorBg:l,colorText:s,colorTextDescription:u,colorBgContainer:c,colorFillAlter:d,colorFillContent:f,lineWidth:h,lineWidthBold:p,controlItemBgActive:v,colorBgTextHover:g,controlHeightLG:y,lineHeight:b,colorBgElevated:x,marginXXS:F,padding:S,fontSize:E,controlHeightSM:w,fontSizeLG:D,colorTextLightSolid:A,colorErrorHover:_}=e,I=(t=e.activeBarWidth)!==null&&t!==void 0?t:0,M=(r=e.activeBarBorderWidth)!==null&&r!==void 0?r:h,T=(n=e.itemMarginInline)!==null&&n!==void 0?n:e.marginXXS,k=new $r(A).setA(.65).toRgbString();return{dropdownWidth:160,zIndexPopup:e.zIndexPopupBase+50,radiusItem:e.borderRadiusLG,itemBorderRadius:e.borderRadiusLG,radiusSubMenuItem:e.borderRadiusSM,subMenuItemBorderRadius:e.borderRadiusSM,colorItemText:s,itemColor:s,colorItemTextHover:s,itemHoverColor:s,colorItemTextHoverHorizontal:a,horizontalItemHoverColor:a,colorGroupTitle:u,groupTitleColor:u,colorItemTextSelected:a,itemSelectedColor:a,subMenuItemSelectedColor:a,colorItemTextSelectedHorizontal:a,horizontalItemSelectedColor:a,colorItemBg:c,itemBg:c,colorItemBgHover:g,itemHoverBg:g,colorItemBgActive:f,itemActiveBg:v,colorSubItemBg:d,subMenuItemBg:d,colorItemBgSelected:v,itemSelectedBg:v,colorItemBgSelectedHorizontal:\"transparent\",horizontalItemSelectedBg:\"transparent\",colorActiveBarWidth:0,activeBarWidth:I,colorActiveBarHeight:p,activeBarHeight:p,colorActiveBarBorderSize:h,activeBarBorderWidth:M,colorItemTextDisabled:o,itemDisabledColor:o,colorDangerItemText:i,dangerItemColor:i,colorDangerItemTextHover:i,dangerItemHoverColor:i,colorDangerItemTextSelected:i,dangerItemSelectedColor:i,colorDangerItemBgActive:l,dangerItemActiveBg:l,colorDangerItemBgSelected:l,dangerItemSelectedBg:l,itemMarginInline:T,horizontalItemBorderRadius:0,horizontalItemHoverBg:\"transparent\",itemHeight:y,groupTitleLineHeight:b,collapsedWidth:y*2,popupBg:x,itemMarginBlock:F,itemPaddingInline:S,horizontalLineHeight:`${y*1.15}px`,iconSize:E,iconMarginInlineEnd:w-E,collapsedIconSize:D,groupTitleFontSize:E,darkItemDisabledColor:new $r(A).setA(.25).toRgbString(),darkItemColor:k,darkDangerItemColor:i,darkItemBg:\"#001529\",darkPopupBg:\"#001529\",darkSubMenuItemBg:\"#000c17\",darkItemSelectedColor:A,darkItemSelectedBg:a,darkDangerItemSelectedBg:i,darkItemHoverBg:\"transparent\",darkGroupTitleColor:k,darkItemHoverColor:A,darkDangerItemHoverColor:_,darkDangerItemSelectedColor:A,darkDangerItemActiveBg:i,itemWidth:I?`calc(100% + ${M}px)`:`calc(100% - ${T*2}px)`}},PTe=(e,t=e,r=!0)=>kr(\"Menu\",a=>{const{colorBgElevated:i,controlHeightLG:o,fontSize:l,darkItemColor:s,darkDangerItemColor:u,darkItemBg:c,darkSubMenuItemBg:d,darkItemSelectedColor:f,darkItemSelectedBg:h,darkDangerItemSelectedBg:p,darkItemHoverBg:v,darkGroupTitleColor:g,darkItemHoverColor:y,darkItemDisabledColor:b,darkDangerItemHoverColor:x,darkDangerItemSelectedColor:F,darkDangerItemActiveBg:S,popupBg:E,darkPopupBg:w}=a,D=a.calc(l).div(7).mul(5).equal(),A=Sr(a,{menuArrowSize:D,menuHorizontalHeight:a.calc(o).mul(1.15).equal(),menuArrowOffset:a.calc(D).mul(.25).equal(),menuSubMenuBg:i,calc:a.calc,popupBg:E}),_=Sr(A,{itemColor:s,itemHoverColor:y,groupTitleColor:g,itemSelectedColor:f,subMenuItemSelectedColor:f,itemBg:c,popupBg:w,subMenuItemBg:d,itemActiveBg:\"transparent\",itemSelectedBg:h,activeBarHeight:0,activeBarBorderWidth:0,itemHoverBg:v,itemDisabledColor:b,dangerItemColor:u,dangerItemHoverColor:x,dangerItemSelectedColor:F,dangerItemActiveBg:S,dangerItemSelectedBg:p,menuSubMenuBg:d,horizontalItemSelectedColor:f,horizontalItemSelectedBg:h});return[RTe(A),TTe(A),kTe(A),LH(A,\"light\"),LH(_,\"dark\"),ITe(A),cx(A),dc(A,\"slide-up\"),dc(A,\"slide-down\"),Cg(A,\"zoom-big\")]},MTe,{deprecatedTokens:[[\"colorGroupTitle\",\"groupTitleColor\"],[\"radiusItem\",\"itemBorderRadius\"],[\"radiusSubMenuItem\",\"subMenuItemBorderRadius\"],[\"colorItemText\",\"itemColor\"],[\"colorItemTextHover\",\"itemHoverColor\"],[\"colorItemTextHoverHorizontal\",\"horizontalItemHoverColor\"],[\"colorItemTextSelected\",\"itemSelectedColor\"],[\"colorItemTextSelectedHorizontal\",\"horizontalItemSelectedColor\"],[\"colorItemTextDisabled\",\"itemDisabledColor\"],[\"colorDangerItemText\",\"dangerItemColor\"],[\"colorDangerItemTextHover\",\"dangerItemHoverColor\"],[\"colorDangerItemTextSelected\",\"dangerItemSelectedColor\"],[\"colorDangerItemBgActive\",\"dangerItemActiveBg\"],[\"colorDangerItemBgSelected\",\"dangerItemSelectedBg\"],[\"colorItemBg\",\"itemBg\"],[\"colorItemBgHover\",\"itemHoverBg\"],[\"colorSubItemBg\",\"subMenuItemBg\"],[\"colorItemBgActive\",\"itemActiveBg\"],[\"colorItemBgSelectedHorizontal\",\"horizontalItemSelectedBg\"],[\"colorActiveBarWidth\",\"activeBarWidth\"],[\"colorActiveBarHeight\",\"activeBarHeight\"],[\"colorActiveBarBorderSize\",\"activeBarBorderWidth\"],[\"colorItemBgSelected\",\"itemSelectedBg\"]],injectStyle:r,unitless:{groupTitleLineHeight:!0}})(e,t),soe=e=>{var t;const{popupClassName:r,icon:n,title:a,theme:i}=e,o=m.useContext(DE),{prefixCls:l,inlineCollapsed:s,theme:u}=o,c=Dg();let d;if(!n)d=s&&!c.length&&a&&typeof a==\"string\"?m.createElement(\"div\",{className:`${l}-inline-collapsed-noicon`},a.charAt(0)):m.createElement(\"span\",{className:`${l}-title-content`},a);else{const p=m.isValidElement(a)&&a.type===\"span\";d=m.createElement(m.Fragment,null,oa(n,{className:ne(m.isValidElement(n)?(t=n.props)===null||t===void 0?void 0:t.className:void 0,`${l}-item-icon`)}),p?a:m.createElement(\"span\",{className:`${l}-title-content`},a))}const f=m.useMemo(()=>Object.assign(Object.assign({},o),{firstLevel:!1}),[o]),[h]=xc(\"Menu\");return m.createElement(DE.Provider,{value:f},m.createElement(_6,Object.assign({},wn(e,[\"icon\"]),{title:d,popupClassName:ne(l,r,`${l}-${i||u}`),popupStyle:Object.assign({zIndex:h},e.popupStyle)})))};var OTe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function B_(e){return e===null||e===!1}const BTe={item:ooe,submenu:soe,divider:ioe},NTe=m.forwardRef((e,t)=>{var r;const n=m.useContext(AE),a=n||{},{getPrefixCls:i,getPopupContainer:o,direction:l,menu:s}=m.useContext(Ot),u=i(),{prefixCls:c,className:d,style:f,theme:h=\"light\",expandIcon:p,_internalDisableMenuItemTitleTooltip:v,inlineCollapsed:g,siderCollapsed:y,rootClassName:b,mode:x,selectable:F,onClick:S,overflowedIndicatorPopupClassName:E}=e,w=OTe(e,[\"prefixCls\",\"className\",\"style\",\"theme\",\"expandIcon\",\"_internalDisableMenuItemTitleTooltip\",\"inlineCollapsed\",\"siderCollapsed\",\"rootClassName\",\"mode\",\"selectable\",\"onClick\",\"overflowedIndicatorPopupClassName\"]),D=wn(w,[\"collapsedWidth\"]);(r=a.validator)===null||r===void 0||r.call(a,{mode:x});const A=Pr((...L)=>{var j;S==null||S.apply(void 0,L),(j=a.onClick)===null||j===void 0||j.call(a)}),_=a.mode||x,I=F??a.selectable,M=g??y,T={horizontal:{motionName:`${u}-slide-up`},inline:K0(u),other:{motionName:`${u}-zoom-big`}},k=i(\"menu\",c||a.prefixCls),R=Zn(k),[P,B,N]=PTe(k,R,!n),O=ne(`${k}-${h}`,s==null?void 0:s.className,d),z=m.useMemo(()=>{var L,j;if(typeof p==\"function\"||B_(p))return p||null;if(typeof a.expandIcon==\"function\"||B_(a.expandIcon))return a.expandIcon||null;if(typeof(s==null?void 0:s.expandIcon)==\"function\"||B_(s==null?void 0:s.expandIcon))return(s==null?void 0:s.expandIcon)||null;const H=(L=p??(a==null?void 0:a.expandIcon))!==null&&L!==void 0?L:s==null?void 0:s.expandIcon;return oa(H,{className:ne(`${k}-submenu-expand-icon`,m.isValidElement(H)?(j=H.props)===null||j===void 0?void 0:j.className:void 0)})},[p,a==null?void 0:a.expandIcon,s==null?void 0:s.expandIcon,k]),W=m.useMemo(()=>({prefixCls:k,inlineCollapsed:M||!1,direction:l,firstLevel:!0,theme:h,mode:_,disableMenuItemTitleTooltip:v}),[k,M,l,v,h]);return P(m.createElement(AE.Provider,{value:null},m.createElement(DE.Provider,{value:W},m.createElement(Ag,Object.assign({getPopupContainer:o,overflowedIndicator:m.createElement(dO,null),overflowedIndicatorPopupClassName:ne(k,`${k}-${h}`,E),mode:_,selectable:I,onClick:A},D,{inlineCollapsed:M,style:Object.assign(Object.assign({},s==null?void 0:s.style),f),className:O,prefixCls:k,direction:l,defaultMotions:T,expandIcon:z,ref:t,rootClassName:ne(b,B,a.rootClassName,N,R),_internalComponents:BTe})))))}),ym=m.forwardRef((e,t)=>{const r=m.useRef(null),n=m.useContext(T6);return m.useImperativeHandle(t,()=>({menu:r.current,focus:a=>{var i;(i=r.current)===null||i===void 0||i.focus(a)}})),m.createElement(NTe,Object.assign({ref:r},e,n))});ym.Item=ooe;ym.SubMenu=soe;ym.Divider=ioe;ym.ItemGroup=cO;const $Te=e=>{const{componentCls:t,menuCls:r,colorError:n,colorTextLightSolid:a}=e,i=`${r}-item`;return{[`${t}, ${t}-menu-submenu`]:{[`${r} ${i}`]:{[`&${i}-danger:not(${i}-disabled)`]:{color:n,\"&:hover\":{color:a,backgroundColor:n}}}}}},LTe=e=>{const{componentCls:t,menuCls:r,zIndexPopup:n,dropdownArrowDistance:a,sizePopupArrow:i,antCls:o,iconCls:l,motionDurationMid:s,paddingBlock:u,fontSize:c,dropdownEdgeChildPadding:d,colorTextDisabled:f,fontSizeIcon:h,controlPaddingHorizontal:p,colorBgElevated:v}=e;return[{[t]:{position:\"absolute\",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:n,display:\"block\",\"&::before\":{position:\"absolute\",insetBlock:e.calc(i).div(2).sub(a).equal(),zIndex:-9999,opacity:1e-4,content:'\"\"'},\"&-menu-vertical\":{maxHeight:\"100vh\",overflowY:\"auto\"},[`&-trigger${o}-btn`]:{[`& > ${l}-down, & > ${o}-btn-icon > ${l}-down`]:{fontSize:h}},[`${t}-wrap`]:{position:\"relative\",[`${o}-btn > ${l}-down`]:{fontSize:h},[`${l}-down::before`]:{transition:`transform ${s}`}},[`${t}-wrap-open`]:{[`${l}-down::before`]:{transform:\"rotate(180deg)\"}},\"\\n &-hidden,\\n &-menu-hidden,\\n &-menu-submenu-hidden\\n \":{display:\"none\"},[`&${o}-slide-down-enter${o}-slide-down-enter-active${t}-placement-bottomLeft,\n &${o}-slide-down-appear${o}-slide-down-appear-active${t}-placement-bottomLeft,\n &${o}-slide-down-enter${o}-slide-down-enter-active${t}-placement-bottom,\n &${o}-slide-down-appear${o}-slide-down-appear-active${t}-placement-bottom,\n &${o}-slide-down-enter${o}-slide-down-enter-active${t}-placement-bottomRight,\n &${o}-slide-down-appear${o}-slide-down-appear-active${t}-placement-bottomRight`]:{animationName:i6},[`&${o}-slide-up-enter${o}-slide-up-enter-active${t}-placement-topLeft,\n &${o}-slide-up-appear${o}-slide-up-appear-active${t}-placement-topLeft,\n &${o}-slide-up-enter${o}-slide-up-enter-active${t}-placement-top,\n &${o}-slide-up-appear${o}-slide-up-appear-active${t}-placement-top,\n &${o}-slide-up-enter${o}-slide-up-enter-active${t}-placement-topRight,\n &${o}-slide-up-appear${o}-slide-up-appear-active${t}-placement-topRight`]:{animationName:l6},[`&${o}-slide-down-leave${o}-slide-down-leave-active${t}-placement-bottomLeft,\n &${o}-slide-down-leave${o}-slide-down-leave-active${t}-placement-bottom,\n &${o}-slide-down-leave${o}-slide-down-leave-active${t}-placement-bottomRight`]:{animationName:o6},[`&${o}-slide-up-leave${o}-slide-up-leave-active${t}-placement-topLeft,\n &${o}-slide-up-leave${o}-slide-up-leave-active${t}-placement-top,\n &${o}-slide-up-leave${o}-slide-up-leave-active${t}-placement-topRight`]:{animationName:s6}}},nO(e,v,{arrowPlacement:{top:!0,bottom:!0}}),{[`${t} ${r}`]:{position:\"relative\",margin:0},[`${r}-submenu-popup`]:{position:\"absolute\",zIndex:n,background:\"transparent\",boxShadow:\"none\",transformOrigin:\"0 0\",\"ul, li\":{listStyle:\"none\",margin:0}},[`${t}, ${t}-menu-submenu`]:Object.assign(Object.assign({},Hr(e)),{[r]:Object.assign(Object.assign({padding:d,listStyleType:\"none\",backgroundColor:v,backgroundClip:\"padding-box\",borderRadius:e.borderRadiusLG,outline:\"none\",boxShadow:e.boxShadowSecondary},pl(e)),{\"&:empty\":{padding:0,boxShadow:\"none\"},[`${r}-item-group-title`]:{padding:`${re(u)} ${re(p)}`,color:e.colorTextDescription,transition:`all ${s}`},[`${r}-item`]:{position:\"relative\",display:\"flex\",alignItems:\"center\"},[`${r}-item-icon`]:{minWidth:c,marginInlineEnd:e.marginXS,fontSize:e.fontSizeSM},[`${r}-title-content`]:{flex:\"auto\",\"&-with-extra\":{display:\"inline-flex\",alignItems:\"center\",width:\"100%\"},\"> a\":{color:\"inherit\",transition:`all ${s}`,\"&:hover\":{color:\"inherit\"},\"&::after\":{position:\"absolute\",inset:0,content:'\"\"'}},[`${r}-item-extra`]:{paddingInlineStart:e.padding,marginInlineStart:\"auto\",fontSize:e.fontSizeSM,color:e.colorTextDescription}},[`${r}-item, ${r}-submenu-title`]:Object.assign(Object.assign({display:\"flex\",margin:0,padding:`${re(u)} ${re(p)}`,color:e.colorText,fontWeight:\"normal\",fontSize:c,lineHeight:e.lineHeight,cursor:\"pointer\",transition:`all ${s}`,borderRadius:e.borderRadiusSM,\"&:hover, &-active\":{backgroundColor:e.controlItemBgHover}},pl(e)),{\"&-selected\":{color:e.colorPrimary,backgroundColor:e.controlItemBgActive,\"&:hover, &-active\":{backgroundColor:e.controlItemBgActiveHover}},\"&-disabled\":{color:f,cursor:\"not-allowed\",\"&:hover\":{color:f,backgroundColor:v,cursor:\"not-allowed\"},a:{pointerEvents:\"none\"}},\"&-divider\":{height:1,margin:`${re(e.marginXXS)} 0`,overflow:\"hidden\",lineHeight:0,backgroundColor:e.colorSplit},[`${t}-menu-submenu-expand-icon`]:{position:\"absolute\",insetInlineEnd:e.paddingXS,[`${t}-menu-submenu-arrow-icon`]:{marginInlineEnd:\"0 !important\",color:e.colorIcon,fontSize:h,fontStyle:\"normal\"}}}),[`${r}-item-group-list`]:{margin:`0 ${re(e.marginXS)}`,padding:0,listStyle:\"none\"},[`${r}-submenu-title`]:{paddingInlineEnd:e.calc(p).add(e.fontSizeSM).equal()},[`${r}-submenu-vertical`]:{position:\"relative\"},[`${r}-submenu${r}-submenu-disabled ${t}-menu-submenu-title`]:{[`&, ${t}-menu-submenu-arrow-icon`]:{color:f,backgroundColor:v,cursor:\"not-allowed\"}},[`${r}-submenu-selected ${t}-menu-submenu-title`]:{color:e.colorPrimary}})})},[dc(e,\"slide-up\"),dc(e,\"slide-down\"),Y0(e,\"move-up\"),Y0(e,\"move-down\"),Cg(e,\"zoom-big\")]]},jTe=e=>Object.assign(Object.assign({zIndexPopup:e.zIndexPopupBase+50,paddingBlock:(e.controlHeight-e.fontSize*e.lineHeight)/2},F6({contentRadius:e.borderRadiusLG,limitVerticalRadius:!0})),C6(e)),zTe=kr(\"Dropdown\",e=>{const{marginXXS:t,sizePopupArrow:r,paddingXXS:n,componentCls:a}=e,i=Sr(e,{menuCls:`${a}-menu`,dropdownArrowDistance:e.calc(r).div(2).add(t).equal(),dropdownEdgeChildPadding:n});return[LTe(i),$Te(i)]},jTe,{resetStyle:!1}),Cx=e=>{var t;const{menu:r,arrow:n,prefixCls:a,children:i,trigger:o,disabled:l,dropdownRender:s,popupRender:u,getPopupContainer:c,overlayClassName:d,rootClassName:f,overlayStyle:h,open:p,onOpenChange:v,visible:g,onVisibleChange:y,mouseEnterDelay:b=.15,mouseLeaveDelay:x=.1,autoAdjustOverflow:F=!0,placement:S=\"\",overlay:E,transitionName:w,destroyOnHidden:D,destroyPopupOnHide:A}=e,{getPopupContainer:_,getPrefixCls:I,direction:M,dropdown:T}=m.useContext(Ot),k=u||s;bc();const R=m.useMemo(()=>{const fe=I();return w!==void 0?w:S.includes(\"top\")?`${fe}-slide-down`:`${fe}-slide-up`},[I,S,w]),P=m.useMemo(()=>S?S.includes(\"Center\")?S.slice(0,S.indexOf(\"Center\")):S:M===\"rtl\"?\"bottomRight\":\"bottomLeft\",[S,M]),B=I(\"dropdown\",a),N=Zn(B),[O,z,W]=zTe(B,N),[,L]=Mi(),j=m.Children.only(P5e(i)?m.createElement(\"span\",null,i):i),H=oa(j,{className:ne(`${B}-trigger`,{[`${B}-rtl`]:M===\"rtl\"},j.props.className),disabled:(t=j.props.disabled)!==null&&t!==void 0?t:l}),V=l?[]:o,U=!!(V!=null&&V.includes(\"contextMenu\")),[Q,K]=un(!1,{value:p??g}),Y=Pr(fe=>{v==null||v(fe,{source:\"trigger\"}),y==null||y(fe),K(fe)}),ee=ne(d,f,z,W,N,T==null?void 0:T.className,{[`${B}-rtl`]:M===\"rtl\"}),J=Pie({arrowPointAtCenter:typeof n==\"object\"&&n.pointAtCenter,autoAdjustOverflow:F,offset:L.marginXXS,arrowWidth:n?L.sizePopupArrow:0,borderRadius:L.borderRadius}),X=Pr(()=>{r!=null&&r.selectable&&(r!=null&&r.multiple)||(v==null||v(!1,{source:\"menu\"}),K(!1))}),ce=()=>{let fe;return r!=null&&r.items?fe=m.createElement(ym,Object.assign({},r)):typeof E==\"function\"?fe=E():fe=E,k&&(fe=k(fe)),fe=m.Children.only(typeof fe==\"string\"?m.createElement(\"span\",null,fe):fe),m.createElement(loe,{prefixCls:`${B}-menu`,rootClassName:ne(W,N),expandIcon:m.createElement(\"span\",{className:`${B}-menu-submenu-arrow`},M===\"rtl\"?m.createElement(zf,{className:`${B}-menu-submenu-arrow-icon`}):m.createElement(nd,{className:`${B}-menu-submenu-arrow-icon`})),mode:\"vertical\",selectable:!1,onClick:X,validator:({mode:xe})=>{}},fe)},[oe,ue]=xc(\"Dropdown\",h==null?void 0:h.zIndex);let ie=m.createElement(Hie,Object.assign({alignPoint:U},wn(e,[\"rootClassName\"]),{mouseEnterDelay:b,mouseLeaveDelay:x,visible:Q,builtinPlacements:J,arrow:!!n,overlayClassName:ee,prefixCls:B,getPopupContainer:c||_,transitionName:R,trigger:V,overlay:ce,placement:P,onVisibleChange:Y,overlayStyle:Object.assign(Object.assign(Object.assign({},T==null?void 0:T.style),h),{zIndex:oe}),autoDestroy:D??A}),H);return oe&&(ie=m.createElement(lx.Provider,{value:ue},ie)),O(ie)},HTe=g6(Cx,\"align\",void 0,\"dropdown\",e=>e),VTe=e=>m.createElement(HTe,Object.assign({},e),m.createElement(\"span\",null));Cx._InternalPanelDoNotUseOrYouWillBeFired=VTe;const I6=({children:e})=>{const{getPrefixCls:t}=m.useContext(Ot),r=t(\"breadcrumb\");return m.createElement(\"li\",{className:`${r}-separator`,\"aria-hidden\":\"true\"},e===\"\"?e:e||\"/\")};I6.__ANT_BREADCRUMB_SEPARATOR=!0;var WTe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function GTe(e,t){if(e.title===void 0||e.title===null)return null;const r=Object.keys(t).join(\"|\");return typeof e.title==\"object\"?e.title:String(e.title).replace(new RegExp(`:(${r})`,\"g\"),(n,a)=>t[a]||n)}function uoe(e,t,r,n){if(r==null)return null;const{className:a,onClick:i}=t,o=WTe(t,[\"className\",\"onClick\"]),l=Object.assign(Object.assign({},qn(o,{data:!0,aria:!0})),{onClick:i});return n!==void 0?m.createElement(\"a\",Object.assign({},l,{className:ne(`${e}-link`,a),href:n}),r):m.createElement(\"span\",Object.assign({},l,{className:ne(`${e}-link`,a)}),r)}function UTe(e,t){return(n,a,i,o,l)=>{if(t)return t(n,a,i,o);const s=GTe(n,a);return uoe(e,n,s,l)}}var MR=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const coe=e=>{const{prefixCls:t,separator:r=\"/\",children:n,menu:a,overlay:i,dropdownProps:o,href:l}=e,u=(c=>{if(a||i){const d=Object.assign({},o);if(a){const f=a||{},{items:h}=f,p=MR(f,[\"items\"]);d.menu=Object.assign(Object.assign({},p),{items:h==null?void 0:h.map((v,g)=>{var{key:y,title:b,label:x,path:F}=v,S=MR(v,[\"key\",\"title\",\"label\",\"path\"]);let E=x??b;return F&&(E=m.createElement(\"a\",{href:`${l}${F}`},E)),Object.assign(Object.assign({},S),{key:y??g,label:E})})})}else i&&(d.overlay=i);return m.createElement(Cx,Object.assign({placement:\"bottom\"},d),m.createElement(\"span\",{className:`${t}-overlay-link`},c,m.createElement(bx,null)))}return c})(n);return u!=null?m.createElement(m.Fragment,null,m.createElement(\"li\",{className:`${t}-item`},u),r&&m.createElement(I6,null,r)):null},doe=e=>{const{prefixCls:t,children:r,href:n}=e,a=MR(e,[\"prefixCls\",\"children\",\"href\"]),{getPrefixCls:i}=m.useContext(Ot),o=i(\"breadcrumb\",t);return m.createElement(coe,Object.assign({},a,{prefixCls:o}),uoe(o,a,r,n))};doe.__ANT_BREADCRUMB_ITEM=!0;const KTe=e=>{const{componentCls:t,iconCls:r,calc:n}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{color:e.itemColor,fontSize:e.fontSize,[r]:{fontSize:e.iconFontSize},ol:{display:\"flex\",flexWrap:\"wrap\",margin:0,padding:0,listStyle:\"none\"},[`${t}-item a`]:Object.assign({color:e.linkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${re(e.paddingXXS)}`,borderRadius:e.borderRadiusSM,height:e.fontHeight,display:\"inline-block\",marginInline:n(e.marginXXS).mul(-1).equal(),\"&:hover\":{color:e.linkHoverColor,backgroundColor:e.colorBgTextHover}},pl(e)),[`${t}-item:last-child`]:{color:e.lastItemColor},[`${t}-separator`]:{marginInline:e.separatorMargin,color:e.separatorColor},[`${t}-link`]:{[`\n > ${r} + span,\n > ${r} + a\n `]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.fontHeight,display:\"inline-block\",padding:`0 ${re(e.paddingXXS)}`,marginInline:n(e.marginXXS).mul(-1).equal(),[`> ${r}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},\"&:hover\":{color:e.linkHoverColor,backgroundColor:e.colorBgTextHover,a:{color:e.linkHoverColor}},a:{\"&:hover\":{backgroundColor:\"transparent\"}}},[`&${e.componentCls}-rtl`]:{direction:\"rtl\"}})}},YTe=e=>({itemColor:e.colorTextDescription,lastItemColor:e.colorText,iconFontSize:e.fontSize,linkColor:e.colorTextDescription,linkHoverColor:e.colorText,separatorColor:e.colorTextDescription,separatorMargin:e.marginXS}),qTe=kr(\"Breadcrumb\",e=>{const t=Sr(e,{});return KTe(t)},YTe);var VH=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function XTe(e){const{breadcrumbName:t,children:r}=e,n=VH(e,[\"breadcrumbName\",\"children\"]),a=Object.assign({title:t},n);return r&&(a.menu={items:r.map(i=>{var{breadcrumbName:o}=i,l=VH(i,[\"breadcrumbName\"]);return Object.assign(Object.assign({},l),{title:o})})}),a}function JTe(e,t){return m.useMemo(()=>e||(t?t.map(XTe):null),[e,t])}var ZTe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const QTe=(e,t)=>{if(t===void 0)return t;let r=(t||\"\").replace(/^\\//,\"\");return Object.keys(e).forEach(n=>{r=r.replace(`:${n}`,e[n])}),r},k6=e=>{const{prefixCls:t,separator:r=\"/\",style:n,className:a,rootClassName:i,routes:o,items:l,children:s,itemRender:u,params:c={}}=e,d=ZTe(e,[\"prefixCls\",\"separator\",\"style\",\"className\",\"rootClassName\",\"routes\",\"items\",\"children\",\"itemRender\",\"params\"]),{getPrefixCls:f,direction:h,breadcrumb:p}=m.useContext(Ot);let v;const g=f(\"breadcrumb\",t),[y,b,x]=qTe(g),F=JTe(l,o),S=UTe(g,u);if(F&&F.length>0){const D=[],A=l||o;v=F.map((_,I)=>{const{path:M,key:T,type:k,menu:R,overlay:P,onClick:B,className:N,separator:O,dropdownProps:z}=_,W=QTe(c,M);W!==void 0&&D.push(W);const L=T??I;if(k===\"separator\")return m.createElement(I6,{key:L},O);const j={},H=I===F.length-1;R?j.menu=R:P&&(j.overlay=P);let{href:V}=_;return D.length&&W!==void 0&&(V=`#/${D.join(\"/\")}`),m.createElement(coe,Object.assign({key:L},j,qn(_,{data:!0,aria:!0}),{className:N,dropdownProps:z,href:V,separator:H?\"\":r,onClick:B,prefixCls:g}),S(_,c,A,D,V))})}else if(s){const D=ba(s).length;v=ba(s).map((A,_)=>{if(!A)return A;const I=_===D-1;return oa(A,{separator:I?\"\":r,key:_})})}const E=ne(g,p==null?void 0:p.className,{[`${g}-rtl`]:h===\"rtl\"},a,i,b,x),w=Object.assign(Object.assign({},p==null?void 0:p.style),n);return y(m.createElement(\"nav\",Object.assign({className:E,style:w},d),m.createElement(\"ol\",null,v)))};k6.Item=doe;k6.Separator=I6;var foe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){var r=1e3,n=6e4,a=36e5,i=\"millisecond\",o=\"second\",l=\"minute\",s=\"hour\",u=\"day\",c=\"week\",d=\"month\",f=\"quarter\",h=\"year\",p=\"date\",v=\"Invalid Date\",g=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|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(k){var R=[\"th\",\"st\",\"nd\",\"rd\"],P=k%100;return\"[\"+k+(R[(P-20)%10]||R[P]||R[0])+\"]\"}},x=function(k,R,P){var B=String(k);return!B||B.length>=R?k:\"\"+Array(R+1-B.length).join(P)+k},F={s:x,z:function(k){var R=-k.utcOffset(),P=Math.abs(R),B=Math.floor(P/60),N=P%60;return(R<=0?\"+\":\"-\")+x(B,2,\"0\")+\":\"+x(N,2,\"0\")},m:function k(R,P){if(R.date()<P.date())return-k(P,R);var B=12*(P.year()-R.year())+(P.month()-R.month()),N=R.clone().add(B,d),O=P-N<0,z=R.clone().add(B+(O?-1:1),d);return+(-(B+(P-N)/(O?N-z:z-N))||0)},a:function(k){return k<0?Math.ceil(k)||0:Math.floor(k)},p:function(k){return{M:d,y:h,w:c,d:u,D:p,h:s,m:l,s:o,ms:i,Q:f}[k]||String(k||\"\").toLowerCase().replace(/s$/,\"\")},u:function(k){return k===void 0}},S=\"en\",E={};E[S]=b;var w=\"$isDayjsObject\",D=function(k){return k instanceof M||!(!k||!k[w])},A=function k(R,P,B){var N;if(!R)return S;if(typeof R==\"string\"){var O=R.toLowerCase();E[O]&&(N=O),P&&(E[O]=P,N=O);var z=R.split(\"-\");if(!N&&z.length>1)return k(z[0])}else{var W=R.name;E[W]=R,N=W}return!B&&N&&(S=N),N||!B&&S},_=function(k,R){if(D(k))return k.clone();var P=typeof R==\"object\"?R:{};return P.date=k,P.args=arguments,new M(P)},I=F;I.l=A,I.i=D,I.w=function(k,R){return _(k,{locale:R.$L,utc:R.$u,x:R.$x,$offset:R.$offset})};var M=function(){function k(P){this.$L=A(P.locale,null,!0),this.parse(P),this.$x=this.$x||P.x||{},this[w]=!0}var R=k.prototype;return R.parse=function(P){this.$d=function(B){var N=B.date,O=B.utc;if(N===null)return new Date(NaN);if(I.u(N))return new Date;if(N instanceof Date)return new Date(N);if(typeof N==\"string\"&&!/Z$/i.test(N)){var z=N.match(g);if(z){var W=z[2]-1||0,L=(z[7]||\"0\").substring(0,3);return O?new Date(Date.UTC(z[1],W,z[3]||1,z[4]||0,z[5]||0,z[6]||0,L)):new Date(z[1],W,z[3]||1,z[4]||0,z[5]||0,z[6]||0,L)}}return new Date(N)}(P),this.init()},R.init=function(){var P=this.$d;this.$y=P.getFullYear(),this.$M=P.getMonth(),this.$D=P.getDate(),this.$W=P.getDay(),this.$H=P.getHours(),this.$m=P.getMinutes(),this.$s=P.getSeconds(),this.$ms=P.getMilliseconds()},R.$utils=function(){return I},R.isValid=function(){return this.$d.toString()!==v},R.isSame=function(P,B){var N=_(P);return this.startOf(B)<=N&&N<=this.endOf(B)},R.isAfter=function(P,B){return _(P)<this.startOf(B)},R.isBefore=function(P,B){return this.endOf(B)<_(P)},R.$g=function(P,B,N){return I.u(P)?this[B]:this.set(N,P)},R.unix=function(){return Math.floor(this.valueOf()/1e3)},R.valueOf=function(){return this.$d.getTime()},R.startOf=function(P,B){var N=this,O=!!I.u(B)||B,z=I.p(P),W=function(Y,ee){var J=I.w(N.$u?Date.UTC(N.$y,ee,Y):new Date(N.$y,ee,Y),N);return O?J:J.endOf(u)},L=function(Y,ee){return I.w(N.toDate()[Y].apply(N.toDate(\"s\"),(O?[0,0,0,0]:[23,59,59,999]).slice(ee)),N)},j=this.$W,H=this.$M,V=this.$D,U=\"set\"+(this.$u?\"UTC\":\"\");switch(z){case h:return O?W(1,0):W(31,11);case d:return O?W(1,H):W(0,H+1);case c:var Q=this.$locale().weekStart||0,K=(j<Q?j+7:j)-Q;return W(O?V-K:V+(6-K),H);case u:case p:return L(U+\"Hours\",0);case s:return L(U+\"Minutes\",1);case l:return L(U+\"Seconds\",2);case o:return L(U+\"Milliseconds\",3);default:return this.clone()}},R.endOf=function(P){return this.startOf(P,!1)},R.$set=function(P,B){var N,O=I.p(P),z=\"set\"+(this.$u?\"UTC\":\"\"),W=(N={},N[u]=z+\"Date\",N[p]=z+\"Date\",N[d]=z+\"Month\",N[h]=z+\"FullYear\",N[s]=z+\"Hours\",N[l]=z+\"Minutes\",N[o]=z+\"Seconds\",N[i]=z+\"Milliseconds\",N)[O],L=O===u?this.$D+(B-this.$W):B;if(O===d||O===h){var j=this.clone().set(p,1);j.$d[W](L),j.init(),this.$d=j.set(p,Math.min(this.$D,j.daysInMonth())).$d}else W&&this.$d[W](L);return this.init(),this},R.set=function(P,B){return this.clone().$set(P,B)},R.get=function(P){return this[I.p(P)]()},R.add=function(P,B){var N,O=this;P=Number(P);var z=I.p(B),W=function(H){var V=_(O);return I.w(V.date(V.date()+Math.round(H*P)),O)};if(z===d)return this.set(d,this.$M+P);if(z===h)return this.set(h,this.$y+P);if(z===u)return W(1);if(z===c)return W(7);var L=(N={},N[l]=n,N[s]=a,N[o]=r,N)[z]||1,j=this.$d.getTime()+P*L;return I.w(j,this)},R.subtract=function(P,B){return this.add(-1*P,B)},R.format=function(P){var B=this,N=this.$locale();if(!this.isValid())return N.invalidDate||v;var O=P||\"YYYY-MM-DDTHH:mm:ssZ\",z=I.z(this),W=this.$H,L=this.$m,j=this.$M,H=N.weekdays,V=N.months,U=N.meridiem,Q=function(ee,J,X,ce){return ee&&(ee[J]||ee(B,O))||X[J].slice(0,ce)},K=function(ee){return I.s(W%12||12,ee,\"0\")},Y=U||function(ee,J,X){var ce=ee<12?\"AM\":\"PM\";return X?ce.toLowerCase():ce};return O.replace(y,function(ee,J){return J||function(X){switch(X){case\"YY\":return String(B.$y).slice(-2);case\"YYYY\":return I.s(B.$y,4,\"0\");case\"M\":return j+1;case\"MM\":return I.s(j+1,2,\"0\");case\"MMM\":return Q(N.monthsShort,j,V,3);case\"MMMM\":return Q(V,j);case\"D\":return B.$D;case\"DD\":return I.s(B.$D,2,\"0\");case\"d\":return String(B.$W);case\"dd\":return Q(N.weekdaysMin,B.$W,H,2);case\"ddd\":return Q(N.weekdaysShort,B.$W,H,3);case\"dddd\":return H[B.$W];case\"H\":return String(W);case\"HH\":return I.s(W,2,\"0\");case\"h\":return K(1);case\"hh\":return K(2);case\"a\":return Y(W,L,!0);case\"A\":return Y(W,L,!1);case\"m\":return String(L);case\"mm\":return I.s(L,2,\"0\");case\"s\":return String(B.$s);case\"ss\":return I.s(B.$s,2,\"0\");case\"SSS\":return I.s(B.$ms,3,\"0\");case\"Z\":return z}return null}(ee)||z.replace(\":\",\"\")})},R.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},R.diff=function(P,B,N){var O,z=this,W=I.p(B),L=_(P),j=(L.utcOffset()-this.utcOffset())*n,H=this-L,V=function(){return I.m(z,L)};switch(W){case h:O=V()/12;break;case d:O=V();break;case f:O=V()/3;break;case c:O=(H-j)/6048e5;break;case u:O=(H-j)/864e5;break;case s:O=H/a;break;case l:O=H/n;break;case o:O=H/r;break;default:O=H}return N?O:I.a(O)},R.daysInMonth=function(){return this.endOf(d).$D},R.$locale=function(){return E[this.$L]},R.locale=function(P,B){if(!P)return this.$L;var N=this.clone(),O=A(P,B,!0);return O&&(N.$L=O),N},R.clone=function(){return I.w(this.$d,this)},R.toDate=function(){return new Date(this.valueOf())},R.toJSON=function(){return this.isValid()?this.toISOString():null},R.toISOString=function(){return this.$d.toISOString()},R.toString=function(){return this.$d.toUTCString()},k}(),T=M.prototype;return _.prototype=T,[[\"$ms\",i],[\"$s\",o],[\"$m\",l],[\"$H\",s],[\"$W\",u],[\"$M\",d],[\"$y\",h],[\"$D\",p]].forEach(function(k){T[k[1]]=function(R){return this.$g(R,k[0],k[1])}}),_.extend=function(k,R){return k.$i||(k(R,M,_),k.$i=!0),_},_.locale=A,_.isDayjs=D,_.unix=function(k){return _(1e3*k)},_.en=E[S],_.Ls=E,_.p={},_})})(foe);var hoe=foe.exports;const ma=Yo(hoe);var poe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){return function(r,n){n.prototype.weekday=function(a){var i=this.$locale().weekStart||0,o=this.$W,l=(o<i?o+7:o)-i;return this.$utils().u(a)?l:this.subtract(l,\"day\").add(a,\"day\")}}})})(poe);var eIe=poe.exports;const tIe=Yo(eIe);var moe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){return function(r,n,a){var i=n.prototype,o=function(d){return d&&(d.indexOf?d:d.s)},l=function(d,f,h,p,v){var g=d.name?d:d.$locale(),y=o(g[f]),b=o(g[h]),x=y||b.map(function(S){return S.slice(0,p)});if(!v)return x;var F=g.weekStart;return x.map(function(S,E){return x[(E+(F||0))%7]})},s=function(){return a.Ls[a.locale()]},u=function(d,f){return d.formats[f]||function(h){return h.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,function(p,v,g){return v||g.slice(1)})}(d.formats[f.toUpperCase()])},c=function(){var d=this;return{months:function(f){return f?f.format(\"MMMM\"):l(d,\"months\")},monthsShort:function(f){return f?f.format(\"MMM\"):l(d,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(f){return f?f.format(\"dddd\"):l(d,\"weekdays\")},weekdaysMin:function(f){return f?f.format(\"dd\"):l(d,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(f){return f?f.format(\"ddd\"):l(d,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(f){return u(d.$locale(),f)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};i.localeData=function(){return c.bind(this)()},a.localeData=function(){var d=s();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return a.weekdays()},weekdaysShort:function(){return a.weekdaysShort()},weekdaysMin:function(){return a.weekdaysMin()},months:function(){return a.months()},monthsShort:function(){return a.monthsShort()},longDateFormat:function(f){return u(d,f)},meridiem:d.meridiem,ordinal:d.ordinal}},a.months=function(){return l(s(),\"months\")},a.monthsShort=function(){return l(s(),\"monthsShort\",\"months\",3)},a.weekdays=function(d){return l(s(),\"weekdays\",null,null,d)},a.weekdaysShort=function(d){return l(s(),\"weekdaysShort\",\"weekdays\",3,d)},a.weekdaysMin=function(d){return l(s(),\"weekdaysMin\",\"weekdays\",2,d)}}})})(moe);var rIe=moe.exports;const nIe=Yo(rIe);var voe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){var r=\"week\",n=\"year\";return function(a,i,o){var l=i.prototype;l.week=function(s){if(s===void 0&&(s=null),s!==null)return this.add(7*(s-this.week()),\"day\");var u=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=o(this).startOf(n).add(1,n).date(u),d=o(this).endOf(r);if(c.isBefore(d))return 1}var f=o(this).startOf(n).date(u).startOf(r).subtract(1,\"millisecond\"),h=this.diff(f,r,!0);return h<0?o(this).startOf(\"week\").week():Math.ceil(h)},l.weeks=function(s){return s===void 0&&(s=null),this.week(s)}}})})(voe);var aIe=voe.exports;const iIe=Yo(aIe);var goe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){return function(r,n){n.prototype.weekYear=function(){var a=this.month(),i=this.week(),o=this.year();return i===1&&a===11?o+1:a===0&&i>=52?o-1:o}}})})(goe);var oIe=goe.exports;const lIe=Yo(oIe);var yoe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){return function(r,n){var a=n.prototype,i=a.format;a.format=function(o){var l=this,s=this.$locale();if(!this.isValid())return i.bind(this)(o);var u=this.$utils(),c=(o||\"YYYY-MM-DDTHH:mm:ssZ\").replace(/\\[([^\\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(d){switch(d){case\"Q\":return Math.ceil((l.$M+1)/3);case\"Do\":return s.ordinal(l.$D);case\"gggg\":return l.weekYear();case\"GGGG\":return l.isoWeekYear();case\"wo\":return s.ordinal(l.week(),\"W\");case\"w\":case\"ww\":return u.s(l.week(),d===\"w\"?1:2,\"0\");case\"W\":case\"WW\":return u.s(l.isoWeek(),d===\"W\"?1:2,\"0\");case\"k\":case\"kk\":return u.s(String(l.$H===0?24:l.$H),d===\"k\"?1:2,\"0\");case\"X\":return Math.floor(l.$d.getTime()/1e3);case\"x\":return l.$d.getTime();case\"z\":return\"[\"+l.offsetName()+\"]\";case\"zzz\":return\"[\"+l.offsetName(\"long\")+\"]\";default:return d}});return i.bind(this)(c)}}})})(yoe);var sIe=yoe.exports;const uIe=Yo(sIe);var boe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){var r={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},n=/(\\[[^[]*\\])|([-_:/.,()\\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,a=/\\d/,i=/\\d\\d/,o=/\\d\\d?/,l=/\\d*[^-_:/,()\\s\\d]+/,s={},u=function(g){return(g=+g)+(g>68?1900:2e3)},c=function(g){return function(y){this[g]=+y}},d=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(g){(this.zone||(this.zone={})).offset=function(y){if(!y||y===\"Z\")return 0;var b=y.match(/([+-]|\\d\\d)/g),x=60*b[1]+(+b[2]||0);return x===0?0:b[0]===\"+\"?-x:x}(g)}],f=function(g){var y=s[g];return y&&(y.indexOf?y:y.s.concat(y.f))},h=function(g,y){var b,x=s.meridiem;if(x){for(var F=1;F<=24;F+=1)if(g.indexOf(x(F,0,y))>-1){b=F>12;break}}else b=g===(y?\"pm\":\"PM\");return b},p={A:[l,function(g){this.afternoon=h(g,!1)}],a:[l,function(g){this.afternoon=h(g,!0)}],Q:[a,function(g){this.month=3*(g-1)+1}],S:[a,function(g){this.milliseconds=100*+g}],SS:[i,function(g){this.milliseconds=10*+g}],SSS:[/\\d{3}/,function(g){this.milliseconds=+g}],s:[o,c(\"seconds\")],ss:[o,c(\"seconds\")],m:[o,c(\"minutes\")],mm:[o,c(\"minutes\")],H:[o,c(\"hours\")],h:[o,c(\"hours\")],HH:[o,c(\"hours\")],hh:[o,c(\"hours\")],D:[o,c(\"day\")],DD:[i,c(\"day\")],Do:[l,function(g){var y=s.ordinal,b=g.match(/\\d+/);if(this.day=b[0],y)for(var x=1;x<=31;x+=1)y(x).replace(/\\[|\\]/g,\"\")===g&&(this.day=x)}],w:[o,c(\"week\")],ww:[i,c(\"week\")],M:[o,c(\"month\")],MM:[i,c(\"month\")],MMM:[l,function(g){var y=f(\"months\"),b=(f(\"monthsShort\")||y.map(function(x){return x.slice(0,3)})).indexOf(g)+1;if(b<1)throw new Error;this.month=b%12||b}],MMMM:[l,function(g){var y=f(\"months\").indexOf(g)+1;if(y<1)throw new Error;this.month=y%12||y}],Y:[/[+-]?\\d+/,c(\"year\")],YY:[i,function(g){this.year=u(g)}],YYYY:[/\\d{4}/,c(\"year\")],Z:d,ZZ:d};function v(g){var y,b;y=g,b=s&&s.formats;for(var x=(g=y.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(_,I,M){var T=M&&M.toUpperCase();return I||b[M]||r[M]||b[T].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,function(k,R,P){return R||P.slice(1)})})).match(n),F=x.length,S=0;S<F;S+=1){var E=x[S],w=p[E],D=w&&w[0],A=w&&w[1];x[S]=A?{regex:D,parser:A}:E.replace(/^\\[|\\]$/g,\"\")}return function(_){for(var I={},M=0,T=0;M<F;M+=1){var k=x[M];if(typeof k==\"string\")T+=k.length;else{var R=k.regex,P=k.parser,B=_.slice(T),N=R.exec(B)[0];P.call(I,N),_=_.replace(N,\"\")}}return function(O){var z=O.afternoon;if(z!==void 0){var W=O.hours;z?W<12&&(O.hours+=12):W===12&&(O.hours=0),delete O.afternoon}}(I),I}}return function(g,y,b){b.p.customParseFormat=!0,g&&g.parseTwoDigitYear&&(u=g.parseTwoDigitYear);var x=y.prototype,F=x.parse;x.parse=function(S){var E=S.date,w=S.utc,D=S.args;this.$u=w;var A=D[1];if(typeof A==\"string\"){var _=D[2]===!0,I=D[3]===!0,M=_||I,T=D[2];I&&(T=D[2]),s=this.$locale(),!_&&T&&(s=b.Ls[T]),this.$d=function(B,N,O,z){try{if([\"x\",\"X\"].indexOf(N)>-1)return new Date((N===\"X\"?1e3:1)*B);var W=v(N)(B),L=W.year,j=W.month,H=W.day,V=W.hours,U=W.minutes,Q=W.seconds,K=W.milliseconds,Y=W.zone,ee=W.week,J=new Date,X=H||(L||j?1:J.getDate()),ce=L||J.getFullYear(),oe=0;L&&!j||(oe=j>0?j-1:J.getMonth());var ue,ie=V||0,fe=U||0,xe=Q||0,Ee=K||0;return Y?new Date(Date.UTC(ce,oe,X,ie,fe,xe,Ee+60*Y.offset*1e3)):O?new Date(Date.UTC(ce,oe,X,ie,fe,xe,Ee)):(ue=new Date(ce,oe,X,ie,fe,xe,Ee),ee&&(ue=z(ue).week(ee).toDate()),ue)}catch{return new Date(\"\")}}(E,A,w,b),this.init(),T&&T!==!0&&(this.$L=this.locale(T).$L),M&&E!=this.format(A)&&(this.$d=new Date(\"\")),s={}}else if(A instanceof Array)for(var k=A.length,R=1;R<=k;R+=1){D[1]=A[R-1];var P=b.apply(this,D);if(P.isValid()){this.$d=P.$d,this.$L=P.$L,this.init();break}R===k&&(this.$d=new Date(\"\"))}else F.call(this,S)}}})})(boe);var cIe=boe.exports;const dIe=Yo(cIe);ma.extend(dIe);ma.extend(uIe);ma.extend(tIe);ma.extend(nIe);ma.extend(iIe);ma.extend(lIe);ma.extend(function(e,t){var r=t.prototype,n=r.format;r.format=function(i){var o=(i||\"\").replace(\"Wo\",\"wo\");return n.bind(this)(o)}});var fIe={bn_BD:\"bn-bd\",by_BY:\"be\",en_GB:\"en-gb\",en_US:\"en\",fr_BE:\"fr\",fr_CA:\"fr-ca\",hy_AM:\"hy-am\",kmr_IQ:\"ku\",nl_BE:\"nl-be\",pt_BR:\"pt-br\",zh_CN:\"zh-cn\",zh_HK:\"zh-hk\",zh_TW:\"zh-tw\"},fh=function(t){var r=fIe[t];return r||t.split(\"_\")[0]},hIe={getNow:function(){var t=ma();return typeof t.tz==\"function\"?t.tz():t},getFixedDate:function(t){return ma(t,[\"YYYY-M-DD\",\"YYYY-MM-DD\"])},getEndDate:function(t){return t.endOf(\"month\")},getWeekDay:function(t){var r=t.locale(\"en\");return r.weekday()+r.localeData().firstDayOfWeek()},getYear:function(t){return t.year()},getMonth:function(t){return t.month()},getDate:function(t){return t.date()},getHour:function(t){return t.hour()},getMinute:function(t){return t.minute()},getSecond:function(t){return t.second()},getMillisecond:function(t){return t.millisecond()},addYear:function(t,r){return t.add(r,\"year\")},addMonth:function(t,r){return t.add(r,\"month\")},addDate:function(t,r){return t.add(r,\"day\")},setYear:function(t,r){return t.year(r)},setMonth:function(t,r){return t.month(r)},setDate:function(t,r){return t.date(r)},setHour:function(t,r){return t.hour(r)},setMinute:function(t,r){return t.minute(r)},setSecond:function(t,r){return t.second(r)},setMillisecond:function(t,r){return t.millisecond(r)},isAfter:function(t,r){return t.isAfter(r)},isValidate:function(t){return t.isValid()},locale:{getWeekFirstDay:function(t){return ma().locale(fh(t)).localeData().firstDayOfWeek()},getWeekFirstDate:function(t,r){return r.locale(fh(t)).weekday(0)},getWeek:function(t,r){return r.locale(fh(t)).week()},getShortWeekDays:function(t){return ma().locale(fh(t)).localeData().weekdaysMin()},getShortMonths:function(t){return ma().locale(fh(t)).localeData().monthsShort()},format:function(t,r,n){return r.locale(fh(t)).format(n)},parse:function(t,r,n){for(var a=fh(t),i=0;i<n.length;i+=1){var o=n[i],l=r;if(o.includes(\"wo\")||o.includes(\"Wo\")){for(var s=l.split(\"-\")[0],u=l.split(\"-\")[1],c=ma(s,\"YYYY\").startOf(\"year\").locale(a),d=0;d<=52;d+=1){var f=c.add(d,\"week\");if(f.format(\"Wo\")===u)return f}return null}var h=ma(l,o,!0).locale(a);if(h.isValid())return h}return null}}};function pIe(e,t){return e!==void 0?e:t?\"bottomRight\":\"bottomLeft\"}var Eu=m.createContext(null),mIe={bottomLeft:{points:[\"tl\",\"bl\"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},bottomRight:{points:[\"tr\",\"br\"],offset:[0,4],overflow:{adjustX:1,adjustY:1}},topLeft:{points:[\"bl\",\"tl\"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}},topRight:{points:[\"br\",\"tr\"],offset:[0,-4],overflow:{adjustX:0,adjustY:1}}};function xoe(e){var t=e.popupElement,r=e.popupStyle,n=e.popupClassName,a=e.popupAlign,i=e.transitionName,o=e.getPopupContainer,l=e.children,s=e.range,u=e.placement,c=e.builtinPlacements,d=c===void 0?mIe:c,f=e.direction,h=e.visible,p=e.onClose,v=m.useContext(Eu),g=v.prefixCls,y=\"\".concat(g,\"-dropdown\"),b=pIe(u,f===\"rtl\");return m.createElement(gx,{showAction:[],hideAction:[\"click\"],popupPlacement:b,builtinPlacements:d,prefixCls:y,popupTransitionName:i,popup:t,popupAlign:a,popupVisible:h,popupClassName:ne(n,Z(Z({},\"\".concat(y,\"-range\"),s),\"\".concat(y,\"-rtl\"),f===\"rtl\")),popupStyle:r,stretch:\"minWidth\",getPopupContainer:o,onPopupVisibleChange:function(F){F||p()}},l)}function fO(e,t){for(var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\"0\",n=String(e);n.length<t;)n=\"\".concat(r).concat(n);return n}function bm(e){return e==null?[]:Array.isArray(e)?e:[e]}function Vy(e,t,r){var n=He(e);return n[t]=r,n}function R6(e,t){var r={},n=t||Object.keys(e);return n.forEach(function(a){e[a]!==void 0&&(r[a]=e[a])}),r}function Coe(e,t,r){if(r)return r;switch(e){case\"time\":return t.fieldTimeFormat;case\"datetime\":return t.fieldDateTimeFormat;case\"month\":return t.fieldMonthFormat;case\"year\":return t.fieldYearFormat;case\"quarter\":return t.fieldQuarterFormat;case\"week\":return t.fieldWeekFormat;default:return t.fieldDateFormat}}function Foe(e,t,r){var n=r!==void 0?r:t[t.length-1],a=t.find(function(i){return e[i]});return n!==a?e[a]:void 0}function Soe(e){return R6(e,[\"placement\",\"builtinPlacements\",\"popupAlign\",\"getPopupContainer\",\"transitionName\",\"direction\"])}function hO(e,t,r,n){var a=m.useMemo(function(){return e||function(o,l){var s=o;return t&&l.type===\"date\"?t(s,l.today):r&&l.type===\"month\"?r(s,l.locale):l.originNode}},[e,r,t]),i=m.useCallback(function(o,l){return a(o,ae(ae({},l),{},{range:n}))},[a,n]);return i}function woe(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],n=m.useState([!1,!1]),a=ve(n,2),i=a[0],o=a[1],l=function(c,d){o(function(f){return Vy(f,d,c)})},s=m.useMemo(function(){return i.map(function(u,c){if(u)return!0;var d=e[c];return d?!!(!r[c]&&!d||d&&t(d,{activeIndex:c})):!1})},[e,i,t,r]);return[s,l]}function Eoe(e,t,r,n,a){var i=\"\",o=[];return e&&o.push(a?\"hh\":\"HH\"),t&&o.push(\"mm\"),r&&o.push(\"ss\"),i=o.join(\":\"),n&&(i+=\".SSS\"),a&&(i+=\" A\"),i}function vIe(e,t,r,n,a,i){var o=e.fieldDateTimeFormat,l=e.fieldDateFormat,s=e.fieldTimeFormat,u=e.fieldMonthFormat,c=e.fieldYearFormat,d=e.fieldWeekFormat,f=e.fieldQuarterFormat,h=e.yearFormat,p=e.cellYearFormat,v=e.cellQuarterFormat,g=e.dayFormat,y=e.cellDateFormat,b=Eoe(t,r,n,a,i);return ae(ae({},e),{},{fieldDateTimeFormat:o||\"YYYY-MM-DD \".concat(b),fieldDateFormat:l||\"YYYY-MM-DD\",fieldTimeFormat:s||b,fieldMonthFormat:u||\"YYYY-MM\",fieldYearFormat:c||\"YYYY\",fieldWeekFormat:d||\"gggg-wo\",fieldQuarterFormat:f||\"YYYY-[Q]Q\",yearFormat:h||\"YYYY\",cellYearFormat:p||\"YYYY\",cellQuarterFormat:v||\"[Q]Q\",cellDateFormat:y||g||\"D\"})}function Doe(e,t){var r=t.showHour,n=t.showMinute,a=t.showSecond,i=t.showMillisecond,o=t.use12Hours;return le.useMemo(function(){return vIe(e,r,n,a,i,o)},[e,r,n,a,i,o])}function F1(e,t,r){return r??t.some(function(n){return e.includes(n)})}var gIe=[\"showNow\",\"showHour\",\"showMinute\",\"showSecond\",\"showMillisecond\",\"use12Hours\",\"hourStep\",\"minuteStep\",\"secondStep\",\"millisecondStep\",\"hideDisabledOptions\",\"defaultValue\",\"disabledHours\",\"disabledMinutes\",\"disabledSeconds\",\"disabledMilliseconds\",\"disabledTime\",\"changeOnScroll\",\"defaultOpenValue\"];function yIe(e){var t=R6(e,gIe),r=e.format,n=e.picker,a=null;return r&&(a=r,Array.isArray(a)&&(a=a[0]),a=Nt(a)===\"object\"?a.format:a),n===\"time\"&&(t.format=a),[t,a]}function bIe(e){return e&&typeof e==\"string\"}function Aoe(e,t,r,n){return[e,t,r,n].some(function(a){return a!==void 0})}function _oe(e,t,r,n,a){var i=t,o=r,l=n;if(!e&&!i&&!o&&!l&&!a)i=!0,o=!0,l=!0;else if(e){var s,u,c,d=[i,o,l].some(function(p){return p===!1}),f=[i,o,l].some(function(p){return p===!0}),h=d?!0:!f;i=(s=i)!==null&&s!==void 0?s:h,o=(u=o)!==null&&u!==void 0?u:h,l=(c=l)!==null&&c!==void 0?c:h}return[i,o,l,a]}function Toe(e){var t=e.showTime,r=yIe(e),n=ve(r,2),a=n[0],i=n[1],o=t&&Nt(t)===\"object\"?t:{},l=ae(ae({defaultOpenValue:o.defaultOpenValue||o.defaultValue},a),o),s=l.showMillisecond,u=l.showHour,c=l.showMinute,d=l.showSecond,f=Aoe(u,c,d,s),h=_oe(f,u,c,d,s),p=ve(h,3);return u=p[0],c=p[1],d=p[2],[l,ae(ae({},l),{},{showHour:u,showMinute:c,showSecond:d,showMillisecond:s}),l.format,i]}function Ioe(e,t,r,n,a){var i=e===\"time\";if(e===\"datetime\"||i){for(var o=n,l=Coe(e,a,null),s=l,u=[t,r],c=0;c<u.length;c+=1){var d=bm(u[c])[0];if(bIe(d)){s=d;break}}var f=o.showHour,h=o.showMinute,p=o.showSecond,v=o.showMillisecond,g=o.use12Hours,y=F1(s,[\"a\",\"A\",\"LT\",\"LLL\",\"LTS\"],g),b=Aoe(f,h,p,v);b||(f=F1(s,[\"H\",\"h\",\"k\",\"LT\",\"LLL\"]),h=F1(s,[\"m\",\"LT\",\"LLL\"]),p=F1(s,[\"s\",\"LTS\"]),v=F1(s,[\"SSS\"]));var x=_oe(b,f,h,p,v),F=ve(x,3);f=F[0],h=F[1],p=F[2];var S=t||Eoe(f,h,p,v,y);return ae(ae({},o),{},{format:S,showHour:f,showMinute:h,showSecond:p,showMillisecond:v,use12Hours:y})}return null}function xIe(e,t,r){if(t===!1)return null;var n=t&&Nt(t)===\"object\"?t:{};return n.clearIcon||r||m.createElement(\"span\",{className:\"\".concat(e,\"-clear-btn\")})}var N_=7;function ah(e,t,r){return!e&&!t||e===t?!0:!e||!t?!1:r()}function PR(e,t,r){return ah(t,r,function(){var n=Math.floor(e.getYear(t)/10),a=Math.floor(e.getYear(r)/10);return n===a})}function Yp(e,t,r){return ah(t,r,function(){return e.getYear(t)===e.getYear(r)})}function WH(e,t){var r=Math.floor(e.getMonth(t)/3);return r+1}function CIe(e,t,r){return ah(t,r,function(){return Yp(e,t,r)&&WH(e,t)===WH(e,r)})}function pO(e,t,r){return ah(t,r,function(){return Yp(e,t,r)&&e.getMonth(t)===e.getMonth(r)})}function mO(e,t,r){return ah(t,r,function(){return Yp(e,t,r)&&pO(e,t,r)&&e.getDate(t)===e.getDate(r)})}function koe(e,t,r){return ah(t,r,function(){return e.getHour(t)===e.getHour(r)&&e.getMinute(t)===e.getMinute(r)&&e.getSecond(t)===e.getSecond(r)})}function Roe(e,t,r){return ah(t,r,function(){return mO(e,t,r)&&koe(e,t,r)&&e.getMillisecond(t)===e.getMillisecond(r)})}function dy(e,t,r,n){return ah(r,n,function(){var a=e.locale.getWeekFirstDate(t,r),i=e.locale.getWeekFirstDate(t,n);return Yp(e,a,i)&&e.locale.getWeek(t,r)===e.locale.getWeek(t,n)})}function vo(e,t,r,n,a){switch(a){case\"date\":return mO(e,r,n);case\"week\":return dy(e,t.locale,r,n);case\"month\":return pO(e,r,n);case\"quarter\":return CIe(e,r,n);case\"year\":return Yp(e,r,n);case\"decade\":return PR(e,r,n);case\"time\":return koe(e,r,n);default:return Roe(e,r,n)}}function M6(e,t,r,n){return!t||!r||!n?!1:e.isAfter(n,t)&&e.isAfter(r,n)}function qC(e,t,r,n,a){return vo(e,t,r,n,a)?!0:e.isAfter(r,n)}function FIe(e,t,r){var n=t.locale.getWeekFirstDay(e),a=t.setDate(r,1),i=t.getWeekDay(a),o=t.addDate(a,n-i);return t.getMonth(o)===t.getMonth(r)&&t.getDate(o)>1&&(o=t.addDate(o,-7)),o}function si(e,t){var r=t.generateConfig,n=t.locale,a=t.format;return e?typeof a==\"function\"?a(e):r.locale.format(n.locale,e,a):\"\"}function _E(e,t,r){var n=t,a=[\"getHour\",\"getMinute\",\"getSecond\",\"getMillisecond\"],i=[\"setHour\",\"setMinute\",\"setSecond\",\"setMillisecond\"];return i.forEach(function(o,l){r?n=e[o](n,e[a[l]](r)):n=e[o](n,0)}),n}function SIe(e,t,r,n,a){var i=Pr(function(o,l){return!!(r&&r(o,l)||n&&e.isAfter(n,o)&&!vo(e,t,n,o,l.type)||a&&e.isAfter(o,a)&&!vo(e,t,a,o,l.type))});return i}function wIe(e,t,r){return m.useMemo(function(){var n=Coe(e,t,r),a=bm(n),i=a[0],o=Nt(i)===\"object\"&&i.type===\"mask\"?i.format:null;return[a.map(function(l){return typeof l==\"string\"||typeof l==\"function\"?l:l.format}),o]},[e,t,r])}function EIe(e,t,r){return typeof e[0]==\"function\"||r?!0:t}function DIe(e,t,r,n){var a=Pr(function(i,o){var l=ae({type:t},o);if(delete l.activeIndex,!e.isValidate(i)||r&&r(i,l))return!0;if((t===\"date\"||t===\"time\")&&n){var s,u=o&&o.activeIndex===1?\"end\":\"start\",c=((s=n.disabledTime)===null||s===void 0?void 0:s.call(n,i,u,{from:l.from}))||{},d=c.disabledHours,f=c.disabledMinutes,h=c.disabledSeconds,p=c.disabledMilliseconds,v=n.disabledHours,g=n.disabledMinutes,y=n.disabledSeconds,b=d||v,x=f||g,F=h||y,S=e.getHour(i),E=e.getMinute(i),w=e.getSecond(i),D=e.getMillisecond(i);if(b&&b().includes(S)||x&&x(S).includes(E)||F&&F(S,E).includes(w)||p&&p(S,E,w).includes(D))return!0}return!1});return a}function XC(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=m.useMemo(function(){var n=e&&bm(e);return t&&n&&(n[1]=n[1]||n[0]),n},[e,t]);return r}function Moe(e,t){var r=e.generateConfig,n=e.locale,a=e.picker,i=a===void 0?\"date\":a,o=e.prefixCls,l=o===void 0?\"rc-picker\":o,s=e.styles,u=s===void 0?{}:s,c=e.classNames,d=c===void 0?{}:c,f=e.order,h=f===void 0?!0:f,p=e.components,v=p===void 0?{}:p,g=e.inputRender,y=e.allowClear,b=e.clearIcon,x=e.needConfirm,F=e.multiple,S=e.format,E=e.inputReadOnly,w=e.disabledDate,D=e.minDate,A=e.maxDate,_=e.showTime,I=e.value,M=e.defaultValue,T=e.pickerValue,k=e.defaultPickerValue,R=XC(I),P=XC(M),B=XC(T),N=XC(k),O=i===\"date\"&&_?\"datetime\":i,z=O===\"time\"||O===\"datetime\",W=z||F,L=x??z,j=Toe(e),H=ve(j,4),V=H[0],U=H[1],Q=H[2],K=H[3],Y=Doe(n,U),ee=m.useMemo(function(){return Ioe(O,Q,K,V,Y)},[O,Q,K,V,Y]),J=m.useMemo(function(){return ae(ae({},e),{},{prefixCls:l,locale:Y,picker:i,styles:u,classNames:d,order:h,components:ae({input:g},v),clearIcon:xIe(l,y,b),showTime:ee,value:R,defaultValue:P,pickerValue:B,defaultPickerValue:N},t==null?void 0:t())},[e]),X=wIe(O,Y,S),ce=ve(X,2),oe=ce[0],ue=ce[1],ie=EIe(oe,E,F),fe=SIe(r,n,w,D,A),xe=DIe(r,i,fe,ee),Ee=m.useMemo(function(){return ae(ae({},J),{},{needConfirm:L,inputReadOnly:ie,disabledDate:fe})},[J,L,ie,fe]);return[Ee,O,W,oe,ue,xe]}function AIe(e,t,r){var n=un(t,{value:e}),a=ve(n,2),i=a[0],o=a[1],l=le.useRef(e),s=le.useRef(),u=function(){Tr.cancel(s.current)},c=Pr(function(){o(l.current),r&&i!==l.current&&r(l.current)}),d=Pr(function(f,h){u(),l.current=f,f||h?c():s.current=Tr(c)});return le.useEffect(function(){return u},[]),[i,d]}function Poe(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],n=arguments.length>3?arguments[3]:void 0,a=r.every(function(c){return c})?!1:e,i=AIe(a,t||!1,n),o=ve(i,2),l=o[0],s=o[1];function u(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};(!d.inherit||l)&&s(c,d.force)}return[l,u]}function Ooe(e){var t=m.useRef();return m.useImperativeHandle(e,function(){var r;return{nativeElement:(r=t.current)===null||r===void 0?void 0:r.nativeElement,focus:function(a){var i;(i=t.current)===null||i===void 0||i.focus(a)},blur:function(){var a;(a=t.current)===null||a===void 0||a.blur()}}}),t}function Boe(e,t){return m.useMemo(function(){return e||(t?(jn(!1,\"`ranges` is deprecated. Please use `presets` instead.\"),Object.entries(t).map(function(r){var n=ve(r,2),a=n[0],i=n[1];return{label:a,value:i}})):[])},[e,t])}function vO(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=m.useRef(t);n.current=t,Fp(function(){if(e)n.current(e);else{var a=Tr(function(){n.current(e)},r);return function(){Tr.cancel(a)}}},[e])}function Noe(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=m.useState(0),a=ve(n,2),i=a[0],o=a[1],l=m.useState(!1),s=ve(l,2),u=s[0],c=s[1],d=m.useRef([]),f=m.useRef(null),h=m.useRef(null),p=function(F){f.current=F},v=function(F){return f.current===F},g=function(F){c(F)},y=function(F){return F&&(h.current=F),h.current},b=function(F){var S=d.current,E=new Set(S.filter(function(D){return F[D]||t[D]})),w=S[S.length-1]===0?1:0;return E.size>=2||e[w]?null:w};return vO(u||r,function(){u||(d.current=[],p(null))}),m.useEffect(function(){u&&d.current.push(i)},[u,i]),[u,g,y,i,o,b,d.current,p,v]}function _Ie(e,t,r,n,a,i){var o=r[r.length-1],l=function(u,c){var d=ve(e,2),f=d[0],h=d[1],p=ae(ae({},c),{},{from:Foe(e,r)});return o===1&&t[0]&&f&&!vo(n,a,f,u,p.type)&&n.isAfter(f,u)||o===0&&t[1]&&h&&!vo(n,a,h,u,p.type)&&n.isAfter(u,h)?!0:i==null?void 0:i(u,p)};return l}function fy(e,t,r,n){switch(t){case\"date\":case\"week\":return e.addMonth(r,n);case\"month\":case\"quarter\":return e.addYear(r,n);case\"year\":return e.addYear(r,n*10);case\"decade\":return e.addYear(r,n*100);default:return r}}var $_=[];function $oe(e,t,r,n,a,i,o,l){var s=arguments.length>8&&arguments[8]!==void 0?arguments[8]:$_,u=arguments.length>9&&arguments[9]!==void 0?arguments[9]:$_,c=arguments.length>10&&arguments[10]!==void 0?arguments[10]:$_,d=arguments.length>11?arguments[11]:void 0,f=arguments.length>12?arguments[12]:void 0,h=arguments.length>13?arguments[13]:void 0,p=o===\"time\",v=i||0,g=function(B){var N=e.getNow();return p&&(N=_E(e,N)),s[B]||r[B]||N},y=ve(u,2),b=y[0],x=y[1],F=un(function(){return g(0)},{value:b}),S=ve(F,2),E=S[0],w=S[1],D=un(function(){return g(1)},{value:x}),A=ve(D,2),_=A[0],I=A[1],M=m.useMemo(function(){var P=[E,_][v];return p?P:_E(e,P,c[v])},[p,E,_,v,e,c]),T=function(B){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"panel\",O=[w,I][v];O(B);var z=[E,_];z[v]=B,d&&(!vo(e,t,E,z[0],o)||!vo(e,t,_,z[1],o))&&d(z,{source:N,range:v===1?\"end\":\"start\",mode:n})},k=function(B,N){if(l){var O={date:\"month\",week:\"month\",month:\"year\",quarter:\"year\"},z=O[o];if(z&&!vo(e,t,B,N,z))return fy(e,o,N,-1);if(o===\"year\"&&B){var W=Math.floor(e.getYear(B)/10),L=Math.floor(e.getYear(N)/10);if(W!==L)return fy(e,o,N,-1)}}return N},R=m.useRef(null);return _r(function(){if(a&&!s[v]){var P=p?null:e.getNow();if(R.current!==null&&R.current!==v?P=[E,_][v^1]:r[v]?P=v===0?r[0]:k(r[0],r[1]):r[v^1]&&(P=r[v^1]),P){f&&e.isAfter(f,P)&&(P=f);var B=l?fy(e,o,P,1):P;h&&e.isAfter(B,h)&&(P=l?fy(e,o,h,-1):h),T(P,\"reset\")}}},[a,v,r[v]]),m.useEffect(function(){a?R.current=v:R.current=null},[a,v]),_r(function(){a&&s&&s[v]&&T(s[v],\"reset\")},[a,v]),[M,T]}function Loe(e,t){var r=m.useRef(e),n=m.useState({}),a=ve(n,2),i=a[1],o=function(u){return u&&t!==void 0?t:r.current},l=function(u){r.current=u,i({})};return[o,l,o(!0)]}var TIe=[];function joe(e,t,r){var n=function(o){return o.map(function(l){return si(l,{generateConfig:e,locale:t,format:r[0]})})},a=function(o,l){for(var s=Math.max(o.length,l.length),u=-1,c=0;c<s;c+=1){var d=o[c]||null,f=l[c]||null;if(d!==f&&!Roe(e,d,f)){u=c;break}}return[u<0,u!==0]};return[n,a]}function zoe(e,t){return He(e).sort(function(r,n){return t.isAfter(r,n)?1:-1})}function IIe(e){var t=Loe(e),r=ve(t,2),n=r[0],a=r[1],i=Pr(function(){a(e)});return m.useEffect(function(){i()},[e]),[n,a]}function Hoe(e,t,r,n,a,i,o,l,s){var u=un(i,{value:o}),c=ve(u,2),d=c[0],f=c[1],h=d||TIe,p=IIe(h),v=ve(p,2),g=v[0],y=v[1],b=joe(e,t,r),x=ve(b,2),F=x[0],S=x[1],E=Pr(function(D){var A=He(D);if(n)for(var _=0;_<2;_+=1)A[_]=A[_]||null;else a&&(A=zoe(A.filter(function(P){return P}),e));var I=S(g(),A),M=ve(I,2),T=M[0],k=M[1];if(!T&&(y(A),l)){var R=F(A);l(A,R,{range:k?\"end\":\"start\"})}}),w=function(){s&&s(g())};return[h,f,g,E,w]}function Voe(e,t,r,n,a,i,o,l,s,u){var c=e.generateConfig,d=e.locale,f=e.picker,h=e.onChange,p=e.allowEmpty,v=e.order,g=i.some(function(T){return T})?!1:v,y=joe(c,d,o),b=ve(y,2),x=b[0],F=b[1],S=Loe(t),E=ve(S,2),w=E[0],D=E[1],A=Pr(function(){D(t)});m.useEffect(function(){A()},[t]);var _=Pr(function(T){var k=T===null,R=He(T||w());if(k)for(var P=Math.max(i.length,R.length),B=0;B<P;B+=1)i[B]||(R[B]=null);g&&R[0]&&R[1]&&(R=zoe(R,c)),a(R);var N=R,O=ve(N,2),z=O[0],W=O[1],L=!z,j=!W,H=p?(!L||p[0])&&(!j||p[1]):!0,V=!v||L||j||vo(c,d,z,W,f)||c.isAfter(W,z),U=(i[0]||!z||!u(z,{activeIndex:0}))&&(i[1]||!W||!u(W,{from:z,activeIndex:1})),Q=k||H&&V&&U;if(Q){r(R);var K=F(R,t),Y=ve(K,1),ee=Y[0];h&&!ee&&h(k&&R.every(function(J){return!J})?null:R,x(R))}return Q}),I=Pr(function(T,k){var R=Vy(w(),T,n()[T]);D(R),k&&_()}),M=!l&&!s;return vO(!M,function(){M&&(_(),a(t),A())},2),[I,_]}function Woe(e,t,r,n,a){return t!==\"date\"&&t!==\"time\"?!1:r!==void 0?r:n!==void 0?n:!a&&(e===\"date\"||e===\"time\")}function kIe(e,t,r,n,a,i){var o=e;function l(d,f,h){var p=i[d](o),v=h.find(function(x){return x.value===p});if(!v||v.disabled){var g=h.filter(function(x){return!x.disabled}),y=He(g).reverse(),b=y.find(function(x){return x.value<=p})||g[0];b&&(p=b.value,o=i[f](o,p))}return p}var s=l(\"getHour\",\"setHour\",t()),u=l(\"getMinute\",\"setMinute\",r(s)),c=l(\"getSecond\",\"setSecond\",n(s,u));return l(\"getMillisecond\",\"setMillisecond\",a(s,u,c)),o}function JC(){return[]}function ZC(e,t){for(var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[],i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:2,o=[],l=r>=1?r|0:1,s=e;s<=t;s+=l){var u=a.includes(s);(!u||!n)&&o.push({label:fO(s,i),value:s,disabled:u})}return o}function gO(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=t||{},a=n.use12Hours,i=n.hourStep,o=i===void 0?1:i,l=n.minuteStep,s=l===void 0?1:l,u=n.secondStep,c=u===void 0?1:u,d=n.millisecondStep,f=d===void 0?100:d,h=n.hideDisabledOptions,p=n.disabledTime,v=n.disabledHours,g=n.disabledMinutes,y=n.disabledSeconds,b=m.useMemo(function(){return r||e.getNow()},[r,e]),x=m.useCallback(function(N){var O=(p==null?void 0:p(N))||{};return[O.disabledHours||v||JC,O.disabledMinutes||g||JC,O.disabledSeconds||y||JC,O.disabledMilliseconds||JC]},[p,v,g,y]),F=m.useMemo(function(){return x(b)},[b,x]),S=ve(F,4),E=S[0],w=S[1],D=S[2],A=S[3],_=m.useCallback(function(N,O,z,W){var L=ZC(0,23,o,h,N()),j=a?L.map(function(Q){return ae(ae({},Q),{},{label:fO(Q.value%12||12,2)})}):L,H=function(K){return ZC(0,59,s,h,O(K))},V=function(K,Y){return ZC(0,59,c,h,z(K,Y))},U=function(K,Y,ee){return ZC(0,999,f,h,W(K,Y,ee),3)};return[j,H,V,U]},[h,o,a,f,s,c]),I=m.useMemo(function(){return _(E,w,D,A)},[_,E,w,D,A]),M=ve(I,4),T=M[0],k=M[1],R=M[2],P=M[3],B=function(O,z){var W=function(){return T},L=k,j=R,H=P;if(z){var V=x(z),U=ve(V,4),Q=U[0],K=U[1],Y=U[2],ee=U[3],J=_(Q,K,Y,ee),X=ve(J,4),ce=X[0],oe=X[1],ue=X[2],ie=X[3];W=function(){return ce},L=oe,j=ue,H=ie}var fe=kIe(O,W,L,j,H,e);return fe};return[B,T,k,R,P]}function RIe(e){var t=e.mode,r=e.internalMode,n=e.renderExtraFooter,a=e.showNow,i=e.showTime,o=e.onSubmit,l=e.onNow,s=e.invalid,u=e.needConfirm,c=e.generateConfig,d=e.disabledDate,f=m.useContext(Eu),h=f.prefixCls,p=f.locale,v=f.button,g=v===void 0?\"button\":v,y=c.getNow(),b=gO(c,i,y),x=ve(b,1),F=x[0],S=n==null?void 0:n(t),E=d(y,{type:t}),w=function(){if(!E){var k=F(y);l(k)}},D=\"\".concat(h,\"-now\"),A=\"\".concat(D,\"-btn\"),_=a&&m.createElement(\"li\",{className:D},m.createElement(\"a\",{className:ne(A,E&&\"\".concat(A,\"-disabled\")),\"aria-disabled\":E,onClick:w},r===\"date\"?p.today:p.now)),I=u&&m.createElement(\"li\",{className:\"\".concat(h,\"-ok\")},m.createElement(g,{disabled:s,onClick:o},p.ok)),M=(_||I)&&m.createElement(\"ul\",{className:\"\".concat(h,\"-ranges\")},_,I);return!S&&!M?null:m.createElement(\"div\",{className:\"\".concat(h,\"-footer\")},S&&m.createElement(\"div\",{className:\"\".concat(h,\"-footer-extra\")},S),M)}function Goe(e,t,r){function n(a,i){var o=a.findIndex(function(s){return vo(e,t,s,i,r)});if(o===-1)return[].concat(He(a),[i]);var l=He(a);return l.splice(o,1),l}return n}var xm=m.createContext(null);function P6(){return m.useContext(xm)}function _g(e,t){var r=e.prefixCls,n=e.generateConfig,a=e.locale,i=e.disabledDate,o=e.minDate,l=e.maxDate,s=e.cellRender,u=e.hoverValue,c=e.hoverRangeValue,d=e.onHover,f=e.values,h=e.pickerValue,p=e.onSelect,v=e.prevIcon,g=e.nextIcon,y=e.superPrevIcon,b=e.superNextIcon,x=n.getNow(),F={now:x,values:f,pickerValue:h,prefixCls:r,disabledDate:i,minDate:o,maxDate:l,cellRender:s,hoverValue:u,hoverRangeValue:c,onHover:d,locale:a,generateConfig:n,onSelect:p,panelType:t,prevIcon:v,nextIcon:g,superPrevIcon:y,superNextIcon:b};return[F,x]}var Df=m.createContext({});function Fx(e){for(var t=e.rowNum,r=e.colNum,n=e.baseDate,a=e.getCellDate,i=e.prefixColumn,o=e.rowClassName,l=e.titleFormat,s=e.getCellText,u=e.getCellClassName,c=e.headerCells,d=e.cellSelection,f=d===void 0?!0:d,h=e.disabledDate,p=P6(),v=p.prefixCls,g=p.panelType,y=p.now,b=p.disabledDate,x=p.cellRender,F=p.onHover,S=p.hoverValue,E=p.hoverRangeValue,w=p.generateConfig,D=p.values,A=p.locale,_=p.onSelect,I=h||b,M=\"\".concat(v,\"-cell\"),T=m.useContext(Df),k=T.onCellDblClick,R=function(j){return D.some(function(H){return H&&vo(w,A,j,H,g)})},P=[],B=0;B<t;B+=1){for(var N=[],O=void 0,z=function(){var j=B*r+W,H=a(n,j),V=I==null?void 0:I(H,{type:g});W===0&&(O=H,i&&N.push(i(O)));var U=!1,Q=!1,K=!1;if(f&&E){var Y=ve(E,2),ee=Y[0],J=Y[1];U=M6(w,ee,J,H),Q=vo(w,A,H,ee,g),K=vo(w,A,H,J,g)}var X=l?si(H,{locale:A,format:l,generateConfig:w}):void 0,ce=m.createElement(\"div\",{className:\"\".concat(M,\"-inner\")},s(H));N.push(m.createElement(\"td\",{key:W,title:X,className:ne(M,ae(Z(Z(Z(Z(Z(Z({},\"\".concat(M,\"-disabled\"),V),\"\".concat(M,\"-hover\"),(S||[]).some(function(oe){return vo(w,A,H,oe,g)})),\"\".concat(M,\"-in-range\"),U&&!Q&&!K),\"\".concat(M,\"-range-start\"),Q),\"\".concat(M,\"-range-end\"),K),\"\".concat(v,\"-cell-selected\"),!E&&g!==\"week\"&&R(H)),u(H))),onClick:function(){V||_(H)},onDoubleClick:function(){!V&&k&&k()},onMouseEnter:function(){V||F==null||F(H)},onMouseLeave:function(){V||F==null||F(null)}},x?x(H,{prefixCls:v,originNode:ce,today:y,type:g,locale:A}):ce))},W=0;W<r;W+=1)z();P.push(m.createElement(\"tr\",{key:B,className:o==null?void 0:o(O)},N))}return m.createElement(\"div\",{className:\"\".concat(v,\"-body\")},m.createElement(\"table\",{className:\"\".concat(v,\"-content\")},c&&m.createElement(\"thead\",null,m.createElement(\"tr\",null,c)),m.createElement(\"tbody\",null,P)))}var QC={visibility:\"hidden\"};function Tg(e){var t=e.offset,r=e.superOffset,n=e.onChange,a=e.getStart,i=e.getEnd,o=e.children,l=P6(),s=l.prefixCls,u=l.prevIcon,c=u===void 0?\"\":u,d=l.nextIcon,f=d===void 0?\"\":d,h=l.superPrevIcon,p=h===void 0?\"«\":h,v=l.superNextIcon,g=v===void 0?\"»\":v,y=l.minDate,b=l.maxDate,x=l.generateConfig,F=l.locale,S=l.pickerValue,E=l.panelType,w=\"\".concat(s,\"-header\"),D=m.useContext(Df),A=D.hidePrev,_=D.hideNext,I=D.hideHeader,M=m.useMemo(function(){if(!y||!t||!i)return!1;var L=i(t(-1,S));return!qC(x,F,L,y,E)},[y,t,S,i,x,F,E]),T=m.useMemo(function(){if(!y||!r||!i)return!1;var L=i(r(-1,S));return!qC(x,F,L,y,E)},[y,r,S,i,x,F,E]),k=m.useMemo(function(){if(!b||!t||!a)return!1;var L=a(t(1,S));return!qC(x,F,b,L,E)},[b,t,S,a,x,F,E]),R=m.useMemo(function(){if(!b||!r||!a)return!1;var L=a(r(1,S));return!qC(x,F,b,L,E)},[b,r,S,a,x,F,E]),P=function(j){t&&n(t(j,S))},B=function(j){r&&n(r(j,S))};if(I)return null;var N=\"\".concat(w,\"-prev-btn\"),O=\"\".concat(w,\"-next-btn\"),z=\"\".concat(w,\"-super-prev-btn\"),W=\"\".concat(w,\"-super-next-btn\");return m.createElement(\"div\",{className:w},r&&m.createElement(\"button\",{type:\"button\",\"aria-label\":F.previousYear,onClick:function(){return B(-1)},tabIndex:-1,className:ne(z,T&&\"\".concat(z,\"-disabled\")),disabled:T,style:A?QC:{}},p),t&&m.createElement(\"button\",{type:\"button\",\"aria-label\":F.previousMonth,onClick:function(){return P(-1)},tabIndex:-1,className:ne(N,M&&\"\".concat(N,\"-disabled\")),disabled:M,style:A?QC:{}},c),m.createElement(\"div\",{className:\"\".concat(w,\"-view\")},o),t&&m.createElement(\"button\",{type:\"button\",\"aria-label\":F.nextMonth,onClick:function(){return P(1)},tabIndex:-1,className:ne(O,k&&\"\".concat(O,\"-disabled\")),disabled:k,style:_?QC:{}},f),r&&m.createElement(\"button\",{type:\"button\",\"aria-label\":F.nextYear,onClick:function(){return B(1)},tabIndex:-1,className:ne(W,R&&\"\".concat(W,\"-disabled\")),disabled:R,style:_?QC:{}},g))}function O6(e){var t=e.prefixCls,r=e.panelName,n=r===void 0?\"date\":r,a=e.locale,i=e.generateConfig,o=e.pickerValue,l=e.onPickerValueChange,s=e.onModeChange,u=e.mode,c=u===void 0?\"date\":u,d=e.disabledDate,f=e.onSelect,h=e.onHover,p=e.showWeek,v=\"\".concat(t,\"-\").concat(n,\"-panel\"),g=\"\".concat(t,\"-cell\"),y=c===\"week\",b=_g(e,c),x=ve(b,2),F=x[0],S=x[1],E=i.locale.getWeekFirstDay(a.locale),w=i.setDate(o,1),D=FIe(a.locale,i,w),A=i.getMonth(o),_=p===void 0?y:p,I=_?function(L){var j=d==null?void 0:d(L,{type:\"week\"});return m.createElement(\"td\",{key:\"week\",className:ne(g,\"\".concat(g,\"-week\"),Z({},\"\".concat(g,\"-disabled\"),j)),onClick:function(){j||f(L)},onMouseEnter:function(){j||h==null||h(L)},onMouseLeave:function(){j||h==null||h(null)}},m.createElement(\"div\",{className:\"\".concat(g,\"-inner\")},i.locale.getWeek(a.locale,L)))}:null,M=[],T=a.shortWeekDays||(i.locale.getShortWeekDays?i.locale.getShortWeekDays(a.locale):[]);I&&M.push(m.createElement(\"th\",{key:\"empty\"},m.createElement(\"span\",{style:{width:0,height:0,position:\"absolute\",overflow:\"hidden\",opacity:0}},a.week)));for(var k=0;k<N_;k+=1)M.push(m.createElement(\"th\",{key:k},T[(k+E)%N_]));var R=function(j,H){return i.addDate(j,H)},P=function(j){return si(j,{locale:a,format:a.cellDateFormat,generateConfig:i})},B=function(j){var H=Z(Z({},\"\".concat(t,\"-cell-in-view\"),pO(i,j,o)),\"\".concat(t,\"-cell-today\"),mO(i,j,S));return H},N=a.shortMonths||(i.locale.getShortMonths?i.locale.getShortMonths(a.locale):[]),O=m.createElement(\"button\",{type:\"button\",\"aria-label\":a.yearSelect,key:\"year\",onClick:function(){s(\"year\",o)},tabIndex:-1,className:\"\".concat(t,\"-year-btn\")},si(o,{locale:a,format:a.yearFormat,generateConfig:i})),z=m.createElement(\"button\",{type:\"button\",\"aria-label\":a.monthSelect,key:\"month\",onClick:function(){s(\"month\",o)},tabIndex:-1,className:\"\".concat(t,\"-month-btn\")},a.monthFormat?si(o,{locale:a,format:a.monthFormat,generateConfig:i}):N[A]),W=a.monthBeforeYear?[z,O]:[O,z];return m.createElement(xm.Provider,{value:F},m.createElement(\"div\",{className:ne(v,p&&\"\".concat(v,\"-show-week\"))},m.createElement(Tg,{offset:function(j){return i.addMonth(o,j)},superOffset:function(j){return i.addYear(o,j)},onChange:l,getStart:function(j){return i.setDate(j,1)},getEnd:function(j){var H=i.setDate(j,1);return H=i.addMonth(H,1),i.addDate(H,-1)}},W),m.createElement(Fx,Ce({titleFormat:a.fieldDateFormat},e,{colNum:N_,rowNum:6,baseDate:D,headerCells:M,getCellDate:R,getCellText:P,getCellClassName:B,prefixColumn:I,cellSelection:!y}))))}var MIe=1/3;function PIe(e,t){var r=m.useRef(!1),n=m.useRef(null),a=m.useRef(null),i=function(){return r.current},o=function(){Tr.cancel(n.current),r.current=!1},l=m.useRef(),s=function(){var d=e.current;if(a.current=null,l.current=0,d){var f=d.querySelector('[data-value=\"'.concat(t,'\"]')),h=d.querySelector(\"li\"),p=function v(){o(),r.current=!0,l.current+=1;var g=d.scrollTop,y=h.offsetTop,b=f.offsetTop,x=b-y;if(b===0&&f!==h||!xg(d)){l.current<=5&&(n.current=Tr(v));return}var F=g+(x-g)*MIe,S=Math.abs(x-F);if(a.current!==null&&a.current<S){o();return}if(a.current=S,S<=1){d.scrollTop=x,o();return}d.scrollTop=F,n.current=Tr(v)};f&&h&&p()}},u=Pr(s);return[u,o,i]}var OIe=300;function BIe(e){return e.map(function(t){var r=t.value,n=t.label,a=t.disabled;return[r,n,a].join(\",\")}).join(\";\")}function S1(e){var t=e.units,r=e.value,n=e.optionalValue,a=e.type,i=e.onChange,o=e.onHover,l=e.onDblClick,s=e.changeOnScroll,u=P6(),c=u.prefixCls,d=u.cellRender,f=u.now,h=u.locale,p=\"\".concat(c,\"-time-panel\"),v=\"\".concat(c,\"-time-panel-cell\"),g=m.useRef(null),y=m.useRef(),b=function(){clearTimeout(y.current)},x=PIe(g,r??n),F=ve(x,3),S=F[0],E=F[1],w=F[2];_r(function(){return S(),b(),function(){E(),b()}},[r,n,BIe(t)]);var D=function(I){b();var M=I.target;!w()&&s&&(y.current=setTimeout(function(){var T=g.current,k=T.querySelector(\"li\").offsetTop,R=Array.from(T.querySelectorAll(\"li\")),P=R.map(function(W){return W.offsetTop-k}),B=P.map(function(W,L){return t[L].disabled?Number.MAX_SAFE_INTEGER:Math.abs(W-M.scrollTop)}),N=Math.min.apply(Math,He(B)),O=B.findIndex(function(W){return W===N}),z=t[O];z&&!z.disabled&&i(z.value)},OIe))},A=\"\".concat(p,\"-column\");return m.createElement(\"ul\",{className:A,ref:g,\"data-type\":a,onScroll:D},t.map(function(_){var I=_.label,M=_.value,T=_.disabled,k=m.createElement(\"div\",{className:\"\".concat(v,\"-inner\")},I);return m.createElement(\"li\",{key:M,className:ne(v,Z(Z({},\"\".concat(v,\"-selected\"),r===M),\"\".concat(v,\"-disabled\"),T)),onClick:function(){T||i(M)},onDoubleClick:function(){!T&&l&&l()},onMouseEnter:function(){o(M)},onMouseLeave:function(){o(null)},\"data-value\":M},d?d(M,{prefixCls:c,originNode:k,today:f,type:\"time\",subType:a,locale:h}):k)}))}function Td(e){return e<12}function NIe(e){var t=e.showHour,r=e.showMinute,n=e.showSecond,a=e.showMillisecond,i=e.use12Hours,o=e.changeOnScroll,l=P6(),s=l.prefixCls,u=l.values,c=l.generateConfig,d=l.locale,f=l.onSelect,h=l.onHover,p=h===void 0?function(){}:h,v=l.pickerValue,g=(u==null?void 0:u[0])||null,y=m.useContext(Df),b=y.onCellDblClick,x=gO(c,e,g),F=ve(x,5),S=F[0],E=F[1],w=F[2],D=F[3],A=F[4],_=function($e){var Ke=g&&c[$e](g),pt=v&&c[$e](v);return[Ke,pt]},I=_(\"getHour\"),M=ve(I,2),T=M[0],k=M[1],R=_(\"getMinute\"),P=ve(R,2),B=P[0],N=P[1],O=_(\"getSecond\"),z=ve(O,2),W=z[0],L=z[1],j=_(\"getMillisecond\"),H=ve(j,2),V=H[0],U=H[1],Q=T===null?null:Td(T)?\"am\":\"pm\",K=m.useMemo(function(){return i?Td(T)?E.filter(function(_e){return Td(_e.value)}):E.filter(function(_e){return!Td(_e.value)}):E},[T,E,i]),Y=function($e,Ke){var pt,_t=$e.filter(function(ht){return!ht.disabled});return Ke??(_t==null||(pt=_t[0])===null||pt===void 0?void 0:pt.value)},ee=Y(E,T),J=m.useMemo(function(){return w(ee)},[w,ee]),X=Y(J,B),ce=m.useMemo(function(){return D(ee,X)},[D,ee,X]),oe=Y(ce,W),ue=m.useMemo(function(){return A(ee,X,oe)},[A,ee,X,oe]),ie=Y(ue,V),fe=m.useMemo(function(){if(!i)return[];var _e=c.getNow(),$e=c.setHour(_e,6),Ke=c.setHour(_e,18),pt=function(ht,gt){var Et=d.cellMeridiemFormat;return Et?si(ht,{generateConfig:c,locale:d,format:Et}):gt};return[{label:pt($e,\"AM\"),value:\"am\",disabled:E.every(function(_t){return _t.disabled||!Td(_t.value)})},{label:pt(Ke,\"PM\"),value:\"pm\",disabled:E.every(function(_t){return _t.disabled||Td(_t.value)})}]},[E,i,c,d]),xe=function($e){var Ke=S($e);f(Ke)},Ee=m.useMemo(function(){var _e=g||v||c.getNow(),$e=function(pt){return pt!=null};return $e(T)?(_e=c.setHour(_e,T),_e=c.setMinute(_e,B),_e=c.setSecond(_e,W),_e=c.setMillisecond(_e,V)):$e(k)?(_e=c.setHour(_e,k),_e=c.setMinute(_e,N),_e=c.setSecond(_e,L),_e=c.setMillisecond(_e,U)):$e(ee)&&(_e=c.setHour(_e,ee),_e=c.setMinute(_e,X),_e=c.setSecond(_e,oe),_e=c.setMillisecond(_e,ie)),_e},[g,v,T,B,W,V,ee,X,oe,ie,k,N,L,U,c]),De=function($e,Ke){return $e===null?null:c[Ke](Ee,$e)},ye=function($e){return De($e,\"setHour\")},we=function($e){return De($e,\"setMinute\")},Fe=function($e){return De($e,\"setSecond\")},me=function($e){return De($e,\"setMillisecond\")},Me=function($e){return $e===null?null:$e===\"am\"&&!Td(T)?c.setHour(Ee,T-12):$e===\"pm\"&&Td(T)?c.setHour(Ee,T+12):Ee},je=function($e){xe(ye($e))},lt=function($e){xe(we($e))},tt=function($e){xe(Fe($e))},rt=function($e){xe(me($e))},dt=function($e){xe(Me($e))},Ve=function($e){p(ye($e))},Ie=function($e){p(we($e))},Je=function($e){p(Fe($e))},Pe=function($e){p(me($e))},Ge=function($e){p(Me($e))},Ae={onDblClick:b,changeOnScroll:o};return m.createElement(\"div\",{className:\"\".concat(s,\"-content\")},t&&m.createElement(S1,Ce({units:K,value:T,optionalValue:k,type:\"hour\",onChange:je,onHover:Ve},Ae)),r&&m.createElement(S1,Ce({units:J,value:B,optionalValue:N,type:\"minute\",onChange:lt,onHover:Ie},Ae)),n&&m.createElement(S1,Ce({units:ce,value:W,optionalValue:L,type:\"second\",onChange:tt,onHover:Je},Ae)),a&&m.createElement(S1,Ce({units:ue,value:V,optionalValue:U,type:\"millisecond\",onChange:rt,onHover:Pe},Ae)),i&&m.createElement(S1,Ce({units:fe,value:Q,type:\"meridiem\",onChange:dt,onHover:Ge},Ae)))}function Uoe(e){var t=e.prefixCls,r=e.value,n=e.locale,a=e.generateConfig,i=e.showTime,o=i||{},l=o.format,s=\"\".concat(t,\"-time-panel\"),u=_g(e,\"time\"),c=ve(u,1),d=c[0];return m.createElement(xm.Provider,{value:d},m.createElement(\"div\",{className:ne(s)},m.createElement(Tg,null,r?si(r,{locale:n,format:l,generateConfig:a}):\" \"),m.createElement(NIe,i)))}function $Ie(e){var t=e.prefixCls,r=e.generateConfig,n=e.showTime,a=e.onSelect,i=e.value,o=e.pickerValue,l=e.onHover,s=\"\".concat(t,\"-datetime-panel\"),u=gO(r,n),c=ve(u,1),d=c[0],f=function(g){return i?_E(r,g,i):_E(r,g,o)},h=function(g){l==null||l(g&&f(g))},p=function(g){var y=f(g);a(d(y,y))};return m.createElement(\"div\",{className:s},m.createElement(O6,Ce({},e,{onSelect:p,onHover:h})),m.createElement(Uoe,e))}function LIe(e){var t=e.prefixCls,r=e.locale,n=e.generateConfig,a=e.pickerValue,i=e.disabledDate,o=e.onPickerValueChange,l=\"\".concat(t,\"-decade-panel\"),s=_g(e,\"decade\"),u=ve(s,1),c=u[0],d=function(E){var w=Math.floor(n.getYear(E)/100)*100;return n.setYear(E,w)},f=function(E){var w=d(E);return n.addYear(w,99)},h=d(a),p=f(a),v=n.addYear(h,-10),g=function(E,w){return n.addYear(E,w*10)},y=function(E){var w=r.cellYearFormat,D=si(E,{locale:r,format:w,generateConfig:n}),A=si(n.addYear(E,9),{locale:r,format:w,generateConfig:n});return\"\".concat(D,\"-\").concat(A)},b=function(E){return Z({},\"\".concat(t,\"-cell-in-view\"),PR(n,E,h)||PR(n,E,p)||M6(n,h,p,E))},x=i?function(S,E){var w=n.setDate(S,1),D=n.setMonth(w,0),A=n.setYear(D,Math.floor(n.getYear(D)/10)*10),_=n.addYear(A,10),I=n.addDate(_,-1);return i(A,E)&&i(I,E)}:null,F=\"\".concat(si(h,{locale:r,format:r.yearFormat,generateConfig:n}),\"-\").concat(si(p,{locale:r,format:r.yearFormat,generateConfig:n}));return m.createElement(xm.Provider,{value:c},m.createElement(\"div\",{className:l},m.createElement(Tg,{superOffset:function(E){return n.addYear(a,E*100)},onChange:o,getStart:d,getEnd:f},F),m.createElement(Fx,Ce({},e,{disabledDate:x,colNum:3,rowNum:4,baseDate:v,getCellDate:g,getCellText:y,getCellClassName:b}))))}function jIe(e){var t=e.prefixCls,r=e.locale,n=e.generateConfig,a=e.pickerValue,i=e.disabledDate,o=e.onPickerValueChange,l=e.onModeChange,s=\"\".concat(t,\"-month-panel\"),u=_g(e,\"month\"),c=ve(u,1),d=c[0],f=n.setMonth(a,0),h=r.shortMonths||(n.locale.getShortMonths?n.locale.getShortMonths(r.locale):[]),p=function(F,S){return n.addMonth(F,S)},v=function(F){var S=n.getMonth(F);return r.monthFormat?si(F,{locale:r,format:r.monthFormat,generateConfig:n}):h[S]},g=function(){return Z({},\"\".concat(t,\"-cell-in-view\"),!0)},y=i?function(x,F){var S=n.setDate(x,1),E=n.setMonth(S,n.getMonth(S)+1),w=n.addDate(E,-1);return i(S,F)&&i(w,F)}:null,b=m.createElement(\"button\",{type:\"button\",key:\"year\",\"aria-label\":r.yearSelect,onClick:function(){l(\"year\")},tabIndex:-1,className:\"\".concat(t,\"-year-btn\")},si(a,{locale:r,format:r.yearFormat,generateConfig:n}));return m.createElement(xm.Provider,{value:d},m.createElement(\"div\",{className:s},m.createElement(Tg,{superOffset:function(F){return n.addYear(a,F)},onChange:o,getStart:function(F){return n.setMonth(F,0)},getEnd:function(F){return n.setMonth(F,11)}},b),m.createElement(Fx,Ce({},e,{disabledDate:y,titleFormat:r.fieldMonthFormat,colNum:3,rowNum:4,baseDate:f,getCellDate:p,getCellText:v,getCellClassName:g}))))}function zIe(e){var t=e.prefixCls,r=e.locale,n=e.generateConfig,a=e.pickerValue,i=e.onPickerValueChange,o=e.onModeChange,l=\"\".concat(t,\"-quarter-panel\"),s=_g(e,\"quarter\"),u=ve(s,1),c=u[0],d=n.setMonth(a,0),f=function(y,b){return n.addMonth(y,b*3)},h=function(y){return si(y,{locale:r,format:r.cellQuarterFormat,generateConfig:n})},p=function(){return Z({},\"\".concat(t,\"-cell-in-view\"),!0)},v=m.createElement(\"button\",{type:\"button\",key:\"year\",\"aria-label\":r.yearSelect,onClick:function(){o(\"year\")},tabIndex:-1,className:\"\".concat(t,\"-year-btn\")},si(a,{locale:r,format:r.yearFormat,generateConfig:n}));return m.createElement(xm.Provider,{value:c},m.createElement(\"div\",{className:l},m.createElement(Tg,{superOffset:function(y){return n.addYear(a,y)},onChange:i,getStart:function(y){return n.setMonth(y,0)},getEnd:function(y){return n.setMonth(y,11)}},v),m.createElement(Fx,Ce({},e,{titleFormat:r.fieldQuarterFormat,colNum:4,rowNum:1,baseDate:d,getCellDate:f,getCellText:h,getCellClassName:p}))))}function HIe(e){var t=e.prefixCls,r=e.generateConfig,n=e.locale,a=e.value,i=e.hoverValue,o=e.hoverRangeValue,l=n.locale,s=\"\".concat(t,\"-week-panel-row\"),u=function(d){var f={};if(o){var h=ve(o,2),p=h[0],v=h[1],g=dy(r,l,p,d),y=dy(r,l,v,d);f[\"\".concat(s,\"-range-start\")]=g,f[\"\".concat(s,\"-range-end\")]=y,f[\"\".concat(s,\"-range-hover\")]=!g&&!y&&M6(r,p,v,d)}return i&&(f[\"\".concat(s,\"-hover\")]=i.some(function(b){return dy(r,l,d,b)})),ne(s,Z({},\"\".concat(s,\"-selected\"),!o&&dy(r,l,a,d)),f)};return m.createElement(O6,Ce({},e,{mode:\"week\",panelName:\"week\",rowClassName:u}))}function VIe(e){var t=e.prefixCls,r=e.locale,n=e.generateConfig,a=e.pickerValue,i=e.disabledDate,o=e.onPickerValueChange,l=e.onModeChange,s=\"\".concat(t,\"-year-panel\"),u=_g(e,\"year\"),c=ve(u,1),d=c[0],f=function(w){var D=Math.floor(n.getYear(w)/10)*10;return n.setYear(w,D)},h=function(w){var D=f(w);return n.addYear(D,9)},p=f(a),v=h(a),g=n.addYear(p,-1),y=function(w,D){return n.addYear(w,D)},b=function(w){return si(w,{locale:r,format:r.cellYearFormat,generateConfig:n})},x=function(w){return Z({},\"\".concat(t,\"-cell-in-view\"),Yp(n,w,p)||Yp(n,w,v)||M6(n,p,v,w))},F=i?function(E,w){var D=n.setMonth(E,0),A=n.setDate(D,1),_=n.addYear(A,1),I=n.addDate(_,-1);return i(A,w)&&i(I,w)}:null,S=m.createElement(\"button\",{type:\"button\",key:\"decade\",\"aria-label\":r.decadeSelect,onClick:function(){l(\"decade\")},tabIndex:-1,className:\"\".concat(t,\"-decade-btn\")},si(p,{locale:r,format:r.yearFormat,generateConfig:n}),\"-\",si(v,{locale:r,format:r.yearFormat,generateConfig:n}));return m.createElement(xm.Provider,{value:d},m.createElement(\"div\",{className:s},m.createElement(Tg,{superOffset:function(w){return n.addYear(a,w*10)},onChange:o,getStart:f,getEnd:h},S),m.createElement(Fx,Ce({},e,{disabledDate:F,titleFormat:r.fieldYearFormat,colNum:3,rowNum:4,baseDate:g,getCellDate:y,getCellText:b,getCellClassName:x}))))}var WIe={date:O6,datetime:$Ie,week:HIe,month:jIe,quarter:zIe,year:VIe,decade:LIe,time:Uoe};function GIe(e,t){var r,n=e.locale,a=e.generateConfig,i=e.direction,o=e.prefixCls,l=e.tabIndex,s=l===void 0?0:l,u=e.multiple,c=e.defaultValue,d=e.value,f=e.onChange,h=e.onSelect,p=e.defaultPickerValue,v=e.pickerValue,g=e.onPickerValueChange,y=e.mode,b=e.onPanelChange,x=e.picker,F=x===void 0?\"date\":x,S=e.showTime,E=e.hoverValue,w=e.hoverRangeValue,D=e.cellRender,A=e.dateRender,_=e.monthCellRender,I=e.components,M=I===void 0?{}:I,T=e.hideHeader,k=((r=m.useContext(Eu))===null||r===void 0?void 0:r.prefixCls)||o||\"rc-picker\",R=m.useRef();m.useImperativeHandle(t,function(){return{nativeElement:R.current}});var P=Toe(e),B=ve(P,4),N=B[0],O=B[1],z=B[2],W=B[3],L=Doe(n,O),j=F===\"date\"&&S?\"datetime\":F,H=m.useMemo(function(){return Ioe(j,z,W,N,L)},[j,z,W,N,L]),V=a.getNow(),U=un(F,{value:y,postState:function(Ge){return Ge||\"date\"}}),Q=ve(U,2),K=Q[0],Y=Q[1],ee=K===\"date\"&&H?\"datetime\":K,J=Goe(a,n,j),X=un(c,{value:d}),ce=ve(X,2),oe=ce[0],ue=ce[1],ie=m.useMemo(function(){var Pe=bm(oe).filter(function(Ge){return Ge});return u?Pe:Pe.slice(0,1)},[oe,u]),fe=Pr(function(Pe){ue(Pe),f&&(Pe===null||ie.length!==Pe.length||ie.some(function(Ge,Ae){return!vo(a,n,Ge,Pe[Ae],j)}))&&(f==null||f(u?Pe:Pe[0]))}),xe=Pr(function(Pe){if(h==null||h(Pe),K===F){var Ge=u?J(ie,Pe):[Pe];fe(Ge)}}),Ee=un(p||ie[0]||V,{value:v}),De=ve(Ee,2),ye=De[0],we=De[1];m.useEffect(function(){ie[0]&&!v&&we(ie[0])},[ie[0]]);var Fe=function(Ge,Ae){b==null||b(Ge||v,Ae||K)},me=function(Ge){var Ae=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;we(Ge),g==null||g(Ge),Ae&&Fe(Ge)},Me=function(Ge,Ae){Y(Ge),Ae&&me(Ae),Fe(Ae,Ge)},je=function(Ge){if(xe(Ge),me(Ge),K!==F){var Ae=[\"decade\",\"year\"],_e=[].concat(Ae,[\"month\"]),$e={quarter:[].concat(Ae,[\"quarter\"]),week:[].concat(He(_e),[\"week\"]),date:[].concat(He(_e),[\"date\"])},Ke=$e[F]||_e,pt=Ke.indexOf(K),_t=Ke[pt+1];_t&&Me(_t,Ge)}},lt=m.useMemo(function(){var Pe,Ge;if(Array.isArray(w)){var Ae=ve(w,2);Pe=Ae[0],Ge=Ae[1]}else Pe=w;return!Pe&&!Ge?null:(Pe=Pe||Ge,Ge=Ge||Pe,a.isAfter(Pe,Ge)?[Ge,Pe]:[Pe,Ge])},[w,a]),tt=hO(D,A,_),rt=M[ee]||WIe[ee]||O6,dt=m.useContext(Df),Ve=m.useMemo(function(){return ae(ae({},dt),{},{hideHeader:T})},[dt,T]),Ie=\"\".concat(k,\"-panel\"),Je=R6(e,[\"showWeek\",\"prevIcon\",\"nextIcon\",\"superPrevIcon\",\"superNextIcon\",\"disabledDate\",\"minDate\",\"maxDate\",\"onHover\"]);return m.createElement(Df.Provider,{value:Ve},m.createElement(\"div\",{ref:R,tabIndex:s,className:ne(Ie,Z({},\"\".concat(Ie,\"-rtl\"),i===\"rtl\"))},m.createElement(rt,Ce({},Je,{showTime:H,prefixCls:k,locale:L,generateConfig:a,onModeChange:Me,pickerValue:ye,onPickerValueChange:function(Ge){me(Ge,!0)},value:ie[0],onSelect:je,values:ie,cellRender:tt,hoverRangeValue:lt,hoverValue:E}))))}var L_=m.memo(m.forwardRef(GIe));function UIe(e){var t=e.picker,r=e.multiplePanel,n=e.pickerValue,a=e.onPickerValueChange,i=e.needConfirm,o=e.onSubmit,l=e.range,s=e.hoverValue,u=m.useContext(Eu),c=u.prefixCls,d=u.generateConfig,f=m.useCallback(function(b,x){return fy(d,t,b,x)},[d,t]),h=m.useMemo(function(){return f(n,1)},[n,f]),p=function(x){a(f(x,-1))},v={onCellDblClick:function(){i&&o()}},g=t===\"time\",y=ae(ae({},e),{},{hoverValue:null,hoverRangeValue:null,hideHeader:g});return l?y.hoverRangeValue=s:y.hoverValue=s,r?m.createElement(\"div\",{className:\"\".concat(c,\"-panels\")},m.createElement(Df.Provider,{value:ae(ae({},v),{},{hideNext:!0})},m.createElement(L_,y)),m.createElement(Df.Provider,{value:ae(ae({},v),{},{hidePrev:!0})},m.createElement(L_,Ce({},y,{pickerValue:h,onPickerValueChange:p})))):m.createElement(Df.Provider,{value:ae({},v)},m.createElement(L_,y))}function GH(e){return typeof e==\"function\"?e():e}function KIe(e){var t=e.prefixCls,r=e.presets,n=e.onClick,a=e.onHover;return r.length?m.createElement(\"div\",{className:\"\".concat(t,\"-presets\")},m.createElement(\"ul\",null,r.map(function(i,o){var l=i.label,s=i.value;return m.createElement(\"li\",{key:o,onClick:function(){n(GH(s))},onMouseEnter:function(){a(GH(s))},onMouseLeave:function(){a(null)}},l)}))):null}function Koe(e){var t=e.panelRender,r=e.internalMode,n=e.picker,a=e.showNow,i=e.range,o=e.multiple,l=e.activeInfo,s=l===void 0?[0,0,0]:l,u=e.presets,c=e.onPresetHover,d=e.onPresetSubmit,f=e.onFocus,h=e.onBlur,p=e.onPanelMouseDown,v=e.direction,g=e.value,y=e.onSelect,b=e.isInvalid,x=e.defaultOpenValue,F=e.onOk,S=e.onSubmit,E=m.useContext(Eu),w=E.prefixCls,D=\"\".concat(w,\"-panel\"),A=v===\"rtl\",_=m.useRef(null),I=m.useRef(null),M=m.useState(0),T=ve(M,2),k=T[0],R=T[1],P=m.useState(0),B=ve(P,2),N=B[0],O=B[1],z=m.useState(0),W=ve(z,2),L=W[0],j=W[1],H=function(je){je.width&&R(je.width)},V=ve(s,3),U=V[0],Q=V[1],K=V[2],Y=m.useState(0),ee=ve(Y,2),J=ee[0],X=ee[1];m.useEffect(function(){X(10)},[U]),m.useEffect(function(){if(i&&I.current){var Me,je=((Me=_.current)===null||Me===void 0?void 0:Me.offsetWidth)||0,lt=I.current.getBoundingClientRect();if(!lt.height||lt.right<0){X(function(Ve){return Math.max(0,Ve-1)});return}var tt=(A?Q-je:U)-lt.left;if(j(tt),k&&k<K){var rt=A?lt.right-(Q-je+k):U+je-lt.left-k,dt=Math.max(0,rt);O(dt)}else O(0)}},[J,A,k,U,Q,K,i]);function ce(Me){return Me.filter(function(je){return je})}var oe=m.useMemo(function(){return ce(bm(g))},[g]),ue=n===\"time\"&&!oe.length,ie=m.useMemo(function(){return ue?ce([x]):oe},[ue,oe,x]),fe=ue?x:oe,xe=m.useMemo(function(){return ie.length?ie.some(function(Me){return b(Me)}):!0},[ie,b]),Ee=function(){ue&&y(x),F(),S()},De=m.createElement(\"div\",{className:\"\".concat(w,\"-panel-layout\")},m.createElement(KIe,{prefixCls:w,presets:u,onClick:d,onHover:c}),m.createElement(\"div\",null,m.createElement(UIe,Ce({},e,{value:fe})),m.createElement(RIe,Ce({},e,{showNow:o?!1:a,invalid:xe,onSubmit:Ee}))));t&&(De=t(De));var ye=\"\".concat(D,\"-container\"),we=\"marginLeft\",Fe=\"marginRight\",me=m.createElement(\"div\",{onMouseDown:p,tabIndex:-1,className:ne(ye,\"\".concat(w,\"-\").concat(r,\"-panel-container\")),style:Z(Z({},A?Fe:we,N),A?we:Fe,\"auto\"),onFocus:f,onBlur:h},De);return i&&(me=m.createElement(\"div\",{onMouseDown:p,ref:I,className:ne(\"\".concat(w,\"-range-wrapper\"),\"\".concat(w,\"-\").concat(n,\"-range-wrapper\"))},m.createElement(\"div\",{ref:_,className:\"\".concat(w,\"-range-arrow\"),style:{left:L}}),m.createElement(_i,{onResize:H},me))),me}function Yoe(e,t){var r=e.format,n=e.maskFormat,a=e.generateConfig,i=e.locale,o=e.preserveInvalidOnBlur,l=e.inputReadOnly,s=e.required,u=e[\"aria-required\"],c=e.onSubmit,d=e.onFocus,f=e.onBlur,h=e.onInputChange,p=e.onInvalid,v=e.open,g=e.onOpenChange,y=e.onKeyDown,b=e.onChange,x=e.activeHelp,F=e.name,S=e.autoComplete,E=e.id,w=e.value,D=e.invalid,A=e.placeholder,_=e.disabled,I=e.activeIndex,M=e.allHelp,T=e.picker,k=function(L,j){var H=a.locale.parse(i.locale,L,[j]);return H&&a.isValidate(H)?H:null},R=r[0],P=m.useCallback(function(W){return si(W,{locale:i,format:R,generateConfig:a})},[i,a,R]),B=m.useMemo(function(){return w.map(P)},[w,P]),N=m.useMemo(function(){var W=T===\"time\"?8:10,L=typeof R==\"function\"?R(a.getNow()).length:R.length;return Math.max(W,L)+2},[R,T,a]),O=function(L){for(var j=0;j<r.length;j+=1){var H=r[j];if(typeof H==\"string\"){var V=k(L,H);if(V)return V}}return!1},z=function(L){function j(U){return L!==void 0?U[L]:U}var H=qn(e,{aria:!0,data:!0}),V=ae(ae({},H),{},{format:n,validateFormat:function(Q){return!!O(Q)},preserveInvalidOnBlur:o,readOnly:l,required:s,\"aria-required\":u,name:F,autoComplete:S,size:N,id:j(E),value:j(B)||\"\",invalid:j(D),placeholder:j(A),active:I===L,helped:M||x&&I===L,disabled:j(_),onFocus:function(Q){d(Q,L)},onBlur:function(Q){f(Q,L)},onSubmit:c,onChange:function(Q){h();var K=O(Q);if(K){p(!1,L),b(K,L);return}p(!!Q,L)},onHelp:function(){g(!0,{index:L})},onKeyDown:function(Q){var K=!1;if(y==null||y(Q,function(){K=!0}),!Q.defaultPrevented&&!K)switch(Q.key){case\"Escape\":g(!1,{index:L});break;case\"Enter\":v||g(!0);break}}},t==null?void 0:t({valueTexts:B}));return Object.keys(V).forEach(function(U){V[U]===void 0&&delete V[U]}),V};return[z,P]}var YIe=[\"onMouseEnter\",\"onMouseLeave\"];function qoe(e){return m.useMemo(function(){return R6(e,YIe)},[e])}var qIe=[\"icon\",\"type\"],XIe=[\"onClear\"];function B6(e){var t=e.icon,r=e.type,n=Xt(e,qIe),a=m.useContext(Eu),i=a.prefixCls;return t?m.createElement(\"span\",Ce({className:\"\".concat(i,\"-\").concat(r)},n),t):null}function OR(e){var t=e.onClear,r=Xt(e,XIe);return m.createElement(B6,Ce({},r,{type:\"clear\",role:\"button\",onMouseDown:function(a){a.preventDefault()},onClick:function(a){a.stopPropagation(),t()}}))}var j_=[\"YYYY\",\"MM\",\"DD\",\"HH\",\"mm\",\"ss\",\"SSS\"],UH=\"顧\",JIe=function(){function e(t){Xn(this,e),Z(this,\"format\",void 0),Z(this,\"maskFormat\",void 0),Z(this,\"cells\",void 0),Z(this,\"maskCells\",void 0),this.format=t;var r=j_.map(function(l){return\"(\".concat(l,\")\")}).join(\"|\"),n=new RegExp(r,\"g\");this.maskFormat=t.replace(n,function(l){return UH.repeat(l.length)});var a=new RegExp(\"(\".concat(j_.join(\"|\"),\")\")),i=(t.split(a)||[]).filter(function(l){return l}),o=0;this.cells=i.map(function(l){var s=j_.includes(l),u=o,c=o+l.length;return o=c,{text:l,mask:s,start:u,end:c}}),this.maskCells=this.cells.filter(function(l){return l.mask})}return Jn(e,[{key:\"getSelection\",value:function(r){var n=this.maskCells[r]||{},a=n.start,i=n.end;return[a||0,i||0]}},{key:\"match\",value:function(r){for(var n=0;n<this.maskFormat.length;n+=1){var a=this.maskFormat[n],i=r[n];if(!i||a!==UH&&a!==i)return!1}return!0}},{key:\"size\",value:function(){return this.maskCells.length}},{key:\"getMaskCellIndex\",value:function(r){for(var n=Number.MAX_SAFE_INTEGER,a=0,i=0;i<this.maskCells.length;i+=1){var o=this.maskCells[i],l=o.start,s=o.end;if(r>=l&&r<=s)return i;var u=Math.min(Math.abs(r-l),Math.abs(r-s));u<n&&(n=u,a=i)}return a}}]),e}();function ZIe(e){var t={YYYY:[0,9999,new Date().getFullYear()],MM:[1,12],DD:[1,31],HH:[0,23],mm:[0,59],ss:[0,59],SSS:[0,999]};return t[e]}var QIe=[\"active\",\"showActiveCls\",\"suffixIcon\",\"format\",\"validateFormat\",\"onChange\",\"onInput\",\"helped\",\"onHelp\",\"onSubmit\",\"onKeyDown\",\"preserveInvalidOnBlur\",\"invalid\",\"clearIcon\"],BR=m.forwardRef(function(e,t){var r=e.active,n=e.showActiveCls,a=n===void 0?!0:n,i=e.suffixIcon,o=e.format,l=e.validateFormat,s=e.onChange;e.onInput;var u=e.helped,c=e.onHelp,d=e.onSubmit,f=e.onKeyDown,h=e.preserveInvalidOnBlur,p=h===void 0?!1:h,v=e.invalid,g=e.clearIcon,y=Xt(e,QIe),b=e.value,x=e.onFocus,F=e.onBlur,S=e.onMouseUp,E=m.useContext(Eu),w=E.prefixCls,D=E.input,A=D===void 0?\"input\":D,_=\"\".concat(w,\"-input\"),I=m.useState(!1),M=ve(I,2),T=M[0],k=M[1],R=m.useState(b),P=ve(R,2),B=P[0],N=P[1],O=m.useState(\"\"),z=ve(O,2),W=z[0],L=z[1],j=m.useState(null),H=ve(j,2),V=H[0],U=H[1],Q=m.useState(null),K=ve(Q,2),Y=K[0],ee=K[1],J=B||\"\";m.useEffect(function(){N(b)},[b]);var X=m.useRef(),ce=m.useRef();m.useImperativeHandle(t,function(){return{nativeElement:X.current,inputElement:ce.current,focus:function(Pe){ce.current.focus(Pe)},blur:function(){ce.current.blur()}}});var oe=m.useMemo(function(){return new JIe(o||\"\")},[o]),ue=m.useMemo(function(){return u?[0,0]:oe.getSelection(V)},[oe,V,u]),ie=ve(ue,2),fe=ie[0],xe=ie[1],Ee=function(Pe){Pe&&Pe!==o&&Pe!==b&&c()},De=Pr(function(Je){l(Je)&&s(Je),N(Je),Ee(Je)}),ye=function(Pe){if(!o){var Ge=Pe.target.value;Ee(Ge),N(Ge),s(Ge)}},we=function(Pe){var Ge=Pe.clipboardData.getData(\"text\");l(Ge)&&De(Ge)},Fe=m.useRef(!1),me=function(){Fe.current=!0},Me=function(Pe){var Ge=Pe.target,Ae=Ge.selectionStart,_e=oe.getMaskCellIndex(Ae);U(_e),ee({}),S==null||S(Pe),Fe.current=!1},je=function(Pe){k(!0),U(0),L(\"\"),x(Pe)},lt=function(Pe){F(Pe)},tt=function(Pe){k(!1),lt(Pe)};vO(r,function(){!r&&!p&&N(b)});var rt=function(Pe){Pe.key===\"Enter\"&&l(J)&&d(),f==null||f(Pe)},dt=function(Pe){rt(Pe);var Ge=Pe.key,Ae=null,_e=null,$e=xe-fe,Ke=o.slice(fe,xe),pt=function(Et){U(function(xt){var Dt=xt+Et;return Dt=Math.max(Dt,0),Dt=Math.min(Dt,oe.size()-1),Dt})},_t=function(Et){var xt=ZIe(Ke),Dt=ve(xt,3),ur=Dt[0],mr=Dt[1],Tt=Dt[2],jt=J.slice(fe,xe),Lt=Number(jt);if(isNaN(Lt))return String(Tt||(Et>0?ur:mr));var mt=Lt+Et,it=mr-ur+1;return String(ur+(it+mt-ur)%it)};switch(Ge){case\"Backspace\":case\"Delete\":Ae=\"\",_e=Ke;break;case\"ArrowLeft\":Ae=\"\",pt(-1);break;case\"ArrowRight\":Ae=\"\",pt(1);break;case\"ArrowUp\":Ae=\"\",_e=_t(1);break;case\"ArrowDown\":Ae=\"\",_e=_t(-1);break;default:isNaN(Number(Ge))||(Ae=W+Ge,_e=Ae);break}if(Ae!==null&&(L(Ae),Ae.length>=$e&&(pt(1),L(\"\"))),_e!==null){var ht=J.slice(0,fe)+fO(_e,$e)+J.slice(xe);De(ht.slice(0,o.length))}ee({})},Ve=m.useRef();_r(function(){if(!(!T||!o||Fe.current)){if(!oe.match(J)){De(o);return}return ce.current.setSelectionRange(fe,xe),Ve.current=Tr(function(){ce.current.setSelectionRange(fe,xe)}),function(){Tr.cancel(Ve.current)}}},[oe,o,T,J,V,fe,xe,Y,De]);var Ie=o?{onFocus:je,onBlur:tt,onKeyDown:dt,onMouseDown:me,onMouseUp:Me,onPaste:we}:{};return m.createElement(\"div\",{ref:X,className:ne(_,Z(Z({},\"\".concat(_,\"-active\"),r&&a),\"\".concat(_,\"-placeholder\"),u))},m.createElement(A,Ce({ref:ce,\"aria-invalid\":v,autoComplete:\"off\"},y,{onKeyDown:rt,onBlur:lt},Ie,{value:J,onChange:ye})),m.createElement(B6,{type:\"suffix\",icon:i}),g)}),eke=[\"id\",\"prefix\",\"clearIcon\",\"suffixIcon\",\"separator\",\"activeIndex\",\"activeHelp\",\"allHelp\",\"focused\",\"onFocus\",\"onBlur\",\"onKeyDown\",\"locale\",\"generateConfig\",\"placeholder\",\"className\",\"style\",\"onClick\",\"onClear\",\"value\",\"onChange\",\"onSubmit\",\"onInputChange\",\"format\",\"maskFormat\",\"preserveInvalidOnBlur\",\"onInvalid\",\"disabled\",\"invalid\",\"inputReadOnly\",\"direction\",\"onOpenChange\",\"onActiveInfo\",\"placement\",\"onMouseDown\",\"required\",\"aria-required\",\"autoFocus\",\"tabIndex\"],tke=[\"index\"];function rke(e,t){var r=e.id,n=e.prefix,a=e.clearIcon,i=e.suffixIcon,o=e.separator,l=o===void 0?\"~\":o,s=e.activeIndex;e.activeHelp,e.allHelp;var u=e.focused;e.onFocus,e.onBlur,e.onKeyDown,e.locale,e.generateConfig;var c=e.placeholder,d=e.className,f=e.style,h=e.onClick,p=e.onClear,v=e.value;e.onChange,e.onSubmit,e.onInputChange,e.format,e.maskFormat,e.preserveInvalidOnBlur,e.onInvalid;var g=e.disabled,y=e.invalid;e.inputReadOnly;var b=e.direction;e.onOpenChange;var x=e.onActiveInfo;e.placement;var F=e.onMouseDown;e.required,e[\"aria-required\"];var S=e.autoFocus,E=e.tabIndex,w=Xt(e,eke),D=b===\"rtl\",A=m.useContext(Eu),_=A.prefixCls,I=m.useMemo(function(){if(typeof r==\"string\")return[r];var Y=r||{};return[Y.start,Y.end]},[r]),M=m.useRef(),T=m.useRef(),k=m.useRef(),R=function(ee){var J;return(J=[T,k][ee])===null||J===void 0?void 0:J.current};m.useImperativeHandle(t,function(){return{nativeElement:M.current,focus:function(ee){if(Nt(ee)===\"object\"){var J,X=ee||{},ce=X.index,oe=ce===void 0?0:ce,ue=Xt(X,tke);(J=R(oe))===null||J===void 0||J.focus(ue)}else{var ie;(ie=R(ee??0))===null||ie===void 0||ie.focus()}},blur:function(){var ee,J;(ee=R(0))===null||ee===void 0||ee.blur(),(J=R(1))===null||J===void 0||J.blur()}}});var P=qoe(w),B=m.useMemo(function(){return Array.isArray(c)?c:[c,c]},[c]),N=Yoe(ae(ae({},e),{},{id:I,placeholder:B})),O=ve(N,1),z=O[0],W=m.useState({position:\"absolute\",width:0}),L=ve(W,2),j=L[0],H=L[1],V=Pr(function(){var Y=R(s);if(Y){var ee=Y.nativeElement.getBoundingClientRect(),J=M.current.getBoundingClientRect(),X=ee.left-J.left;H(function(ce){return ae(ae({},ce),{},{width:ee.width,left:X})}),x([ee.left,ee.right,J.width])}});m.useEffect(function(){V()},[s]);var U=a&&(v[0]&&!g[0]||v[1]&&!g[1]),Q=S&&!g[0],K=S&&!Q&&!g[1];return m.createElement(_i,{onResize:V},m.createElement(\"div\",Ce({},P,{className:ne(_,\"\".concat(_,\"-range\"),Z(Z(Z(Z({},\"\".concat(_,\"-focused\"),u),\"\".concat(_,\"-disabled\"),g.every(function(Y){return Y})),\"\".concat(_,\"-invalid\"),y.some(function(Y){return Y})),\"\".concat(_,\"-rtl\"),D),d),style:f,ref:M,onClick:h,onMouseDown:function(ee){var J=ee.target;J!==T.current.inputElement&&J!==k.current.inputElement&&ee.preventDefault(),F==null||F(ee)}}),n&&m.createElement(\"div\",{className:\"\".concat(_,\"-prefix\")},n),m.createElement(BR,Ce({ref:T},z(0),{autoFocus:Q,tabIndex:E,\"date-range\":\"start\"})),m.createElement(\"div\",{className:\"\".concat(_,\"-range-separator\")},l),m.createElement(BR,Ce({ref:k},z(1),{autoFocus:K,tabIndex:E,\"date-range\":\"end\"})),m.createElement(\"div\",{className:\"\".concat(_,\"-active-bar\"),style:j}),m.createElement(B6,{type:\"suffix\",icon:i}),U&&m.createElement(OR,{icon:a,onClear:p})))}var nke=m.forwardRef(rke);function KH(e,t){var r=e??t;return Array.isArray(r)?r:[r,r]}function eF(e){return e===1?\"end\":\"start\"}function ake(e,t){var r=Moe(e,function(){var Wr=e.disabled,St=e.allowEmpty,Wt=KH(Wr,!1),Kr=KH(St,!1);return{disabled:Wt,allowEmpty:Kr}}),n=ve(r,6),a=n[0],i=n[1],o=n[2],l=n[3],s=n[4],u=n[5],c=a.prefixCls,d=a.styles,f=a.classNames,h=a.defaultValue,p=a.value,v=a.needConfirm,g=a.onKeyDown,y=a.disabled,b=a.allowEmpty,x=a.disabledDate,F=a.minDate,S=a.maxDate,E=a.defaultOpen,w=a.open,D=a.onOpenChange,A=a.locale,_=a.generateConfig,I=a.picker,M=a.showNow,T=a.showToday,k=a.showTime,R=a.mode,P=a.onPanelChange,B=a.onCalendarChange,N=a.onOk,O=a.defaultPickerValue,z=a.pickerValue,W=a.onPickerValueChange,L=a.inputReadOnly,j=a.suffixIcon,H=a.onFocus,V=a.onBlur,U=a.presets,Q=a.ranges,K=a.components,Y=a.cellRender,ee=a.dateRender,J=a.monthCellRender,X=a.onClick,ce=Ooe(t),oe=Poe(w,E,y,D),ue=ve(oe,2),ie=ue[0],fe=ue[1],xe=function(St,Wt){(y.some(function(Kr){return!Kr})||!St)&&fe(St,Wt)},Ee=Hoe(_,A,l,!0,!1,h,p,B,N),De=ve(Ee,5),ye=De[0],we=De[1],Fe=De[2],me=De[3],Me=De[4],je=Fe(),lt=Noe(y,b,ie),tt=ve(lt,9),rt=tt[0],dt=tt[1],Ve=tt[2],Ie=tt[3],Je=tt[4],Pe=tt[5],Ge=tt[6],Ae=tt[7],_e=tt[8],$e=function(St,Wt){dt(!0),H==null||H(St,{range:eF(Wt??Ie)})},Ke=function(St,Wt){dt(!1),V==null||V(St,{range:eF(Wt??Ie)})},pt=m.useMemo(function(){if(!k)return null;var Wr=k.disabledTime,St=Wr?function(Wt){var Kr=eF(Ie),Xr=Foe(je,Ge,Ie);return Wr(Wt,Kr,{from:Xr})}:void 0;return ae(ae({},k),{},{disabledTime:St})},[k,Ie,je,Ge]),_t=un([I,I],{value:R}),ht=ve(_t,2),gt=ht[0],Et=ht[1],xt=gt[Ie]||I,Dt=xt===\"date\"&&pt?\"datetime\":xt,ur=Dt===I&&Dt!==\"time\",mr=Woe(I,xt,M,T,!0),Tt=Voe(a,ye,we,Fe,me,y,l,rt,ie,u),jt=ve(Tt,2),Lt=jt[0],mt=jt[1],it=_Ie(je,y,Ge,_,A,x),st=woe(je,u,b),Ct=ve(st,2),te=Ct[0],pe=Ct[1],he=$oe(_,A,je,gt,ie,Ie,i,ur,O,z,pt==null?void 0:pt.defaultOpenValue,W,F,S),se=ve(he,2),de=se[0],ge=se[1],Te=Pr(function(Wr,St,Wt){var Kr=Vy(gt,Ie,St);if((Kr[0]!==gt[0]||Kr[1]!==gt[1])&&Et(Kr),P&&Wt!==!1){var Xr=He(je);Wr&&(Xr[Ie]=Wr),P(Xr,Kr)}}),We=function(St,Wt){return Vy(je,Wt,St)},ke=function(St,Wt){var Kr=je;St&&(Kr=We(St,Ie)),Ae(Ie);var Xr=Pe(Kr);me(Kr),Lt(Ie,Xr===null),Xr===null?xe(!1,{force:!0}):Wt||ce.current.focus({index:Xr})},Be=function(St){var Wt,Kr=St.target.getRootNode();if(!ce.current.nativeElement.contains((Wt=Kr.activeElement)!==null&&Wt!==void 0?Wt:document.activeElement)){var Xr=y.findIndex(function(ea){return!ea});Xr>=0&&ce.current.focus({index:Xr})}xe(!0),X==null||X(St)},Oe=function(){mt(null),xe(!1,{force:!0})},at=m.useState(null),Le=ve(at,2),Ye=Le[0],qe=Le[1],Ze=m.useState(null),ft=ve(Ze,2),yt=ft[0],zt=ft[1],vr=m.useMemo(function(){return yt||je},[je,yt]);m.useEffect(function(){ie||zt(null)},[ie]);var kt=m.useState([0,0,0]),Yt=ve(kt,2),xr=Yt[0],mn=Yt[1],Pn=Boe(U,Q),Tn=function(St){zt(St),qe(\"preset\")},ka=function(St){var Wt=mt(St);Wt&&xe(!1,{force:!0})},ha=function(St){ke(St)},ja=function(St){zt(St?We(St,Ie):null),qe(\"cell\")},za=function(St){xe(!0),$e(St)},ti=function(){Ve(\"panel\")},Ha=function(St){var Wt=Vy(je,Ie,St);me(Wt),!v&&!o&&i===Dt&&ke(St)},dn=function(){xe(!1)},Zt=hO(Y,ee,J,eF(Ie)),Jt=je[Ie]||null,on=Pr(function(Wr){return u(Wr,{activeIndex:Ie})}),Ut=m.useMemo(function(){var Wr=qn(a,!1),St=wn(a,[].concat(He(Object.keys(Wr)),[\"onChange\",\"onCalendarChange\",\"style\",\"className\",\"onPanelChange\",\"disabledTime\"]));return St},[a]),qt=m.createElement(Koe,Ce({},Ut,{showNow:mr,showTime:pt,range:!0,multiplePanel:ur,activeInfo:xr,disabledDate:it,onFocus:za,onBlur:Ke,onPanelMouseDown:ti,picker:I,mode:xt,internalMode:Dt,onPanelChange:Te,format:s,value:Jt,isInvalid:on,onChange:null,onSelect:Ha,pickerValue:de,defaultOpenValue:bm(k==null?void 0:k.defaultOpenValue)[Ie],onPickerValueChange:ge,hoverValue:vr,onHover:ja,needConfirm:v,onSubmit:ke,onOk:Me,presets:Pn,onPresetHover:Tn,onPresetSubmit:ka,onNow:ha,cellRender:Zt})),Qr=function(St,Wt){var Kr=We(St,Wt);me(Kr)},On=function(){Ve(\"input\")},Qn=function(St,Wt){var Kr=Ge.length,Xr=Ge[Kr-1];if(Kr&&Xr!==Wt&&v&&!b[Xr]&&!_e(Xr)&&je[Xr]){ce.current.focus({index:Xr});return}Ve(\"input\"),xe(!0,{inherit:!0}),Ie!==Wt&&ie&&!v&&o&&ke(null,!0),Je(Wt),$e(St,Wt)},Va=function(St,Wt){if(xe(!1),!v&&Ve()===\"input\"){var Kr=Pe(je);Lt(Ie,Kr===null)}Ke(St,Wt)},Fa=function(St,Wt){St.key===\"Tab\"&&ke(null,!0),g==null||g(St,Wt)},Wa=m.useMemo(function(){return{prefixCls:c,locale:A,generateConfig:_,button:K.button,input:K.input}},[c,A,_,K.button,K.input]);return _r(function(){ie&&Ie!==void 0&&Te(null,I,!1)},[ie,Ie,I]),_r(function(){var Wr=Ve();!ie&&Wr===\"input\"&&(xe(!1),ke(null,!0)),!ie&&o&&!v&&Wr===\"panel\"&&(xe(!0),ke())},[ie]),m.createElement(Eu.Provider,{value:Wa},m.createElement(xoe,Ce({},Soe(a),{popupElement:qt,popupStyle:d.popup,popupClassName:f.popup,visible:ie,onClose:dn,range:!0}),m.createElement(nke,Ce({},a,{ref:ce,suffixIcon:j,activeIndex:rt||ie?Ie:null,activeHelp:!!yt,allHelp:!!yt&&Ye===\"preset\",focused:rt,onFocus:Qn,onBlur:Va,onKeyDown:Fa,onSubmit:ke,value:vr,maskFormat:s,onChange:Qr,onInputChange:On,format:l,inputReadOnly:L,disabled:y,open:ie,onOpenChange:xe,onClick:Be,onClear:Oe,invalid:te,onInvalid:pe,onActiveInfo:mn}))))}var ike=m.forwardRef(ake);function oke(e){var t=e.prefixCls,r=e.value,n=e.onRemove,a=e.removeIcon,i=a===void 0?\"×\":a,o=e.formatDate,l=e.disabled,s=e.maxTagCount,u=e.placeholder,c=\"\".concat(t,\"-selector\"),d=\"\".concat(t,\"-selection\"),f=\"\".concat(d,\"-overflow\");function h(g,y){return m.createElement(\"span\",{className:ne(\"\".concat(d,\"-item\")),title:typeof g==\"string\"?g:null},m.createElement(\"span\",{className:\"\".concat(d,\"-item-content\")},g),!l&&y&&m.createElement(\"span\",{onMouseDown:function(x){x.preventDefault()},onClick:y,className:\"\".concat(d,\"-item-remove\")},i))}function p(g){var y=o(g),b=function(F){F&&F.stopPropagation(),n(g)};return h(y,b)}function v(g){var y=\"+ \".concat(g.length,\" ...\");return h(y)}return m.createElement(\"div\",{className:c},m.createElement(lu,{prefixCls:f,data:r,renderItem:p,renderRest:v,itemKey:function(y){return o(y)},maxCount:s}),!r.length&&m.createElement(\"span\",{className:\"\".concat(t,\"-selection-placeholder\")},u))}var lke=[\"id\",\"open\",\"prefix\",\"clearIcon\",\"suffixIcon\",\"activeHelp\",\"allHelp\",\"focused\",\"onFocus\",\"onBlur\",\"onKeyDown\",\"locale\",\"generateConfig\",\"placeholder\",\"className\",\"style\",\"onClick\",\"onClear\",\"internalPicker\",\"value\",\"onChange\",\"onSubmit\",\"onInputChange\",\"multiple\",\"maxTagCount\",\"format\",\"maskFormat\",\"preserveInvalidOnBlur\",\"onInvalid\",\"disabled\",\"invalid\",\"inputReadOnly\",\"direction\",\"onOpenChange\",\"onMouseDown\",\"required\",\"aria-required\",\"autoFocus\",\"tabIndex\",\"removeIcon\"];function ske(e,t){e.id;var r=e.open,n=e.prefix,a=e.clearIcon,i=e.suffixIcon;e.activeHelp,e.allHelp;var o=e.focused;e.onFocus,e.onBlur,e.onKeyDown;var l=e.locale,s=e.generateConfig,u=e.placeholder,c=e.className,d=e.style,f=e.onClick,h=e.onClear,p=e.internalPicker,v=e.value,g=e.onChange,y=e.onSubmit;e.onInputChange;var b=e.multiple,x=e.maxTagCount;e.format,e.maskFormat,e.preserveInvalidOnBlur,e.onInvalid;var F=e.disabled,S=e.invalid;e.inputReadOnly;var E=e.direction;e.onOpenChange;var w=e.onMouseDown;e.required,e[\"aria-required\"];var D=e.autoFocus,A=e.tabIndex,_=e.removeIcon,I=Xt(e,lke),M=E===\"rtl\",T=m.useContext(Eu),k=T.prefixCls,R=m.useRef(),P=m.useRef();m.useImperativeHandle(t,function(){return{nativeElement:R.current,focus:function(Q){var K;(K=P.current)===null||K===void 0||K.focus(Q)},blur:function(){var Q;(Q=P.current)===null||Q===void 0||Q.blur()}}});var B=qoe(I),N=function(Q){g([Q])},O=function(Q){var K=v.filter(function(Y){return Y&&!vo(s,l,Y,Q,p)});g(K),r||y()},z=Yoe(ae(ae({},e),{},{onChange:N}),function(U){var Q=U.valueTexts;return{value:Q[0]||\"\",active:o}}),W=ve(z,2),L=W[0],j=W[1],H=!!(a&&v.length&&!F),V=b?m.createElement(m.Fragment,null,m.createElement(oke,{prefixCls:k,value:v,onRemove:O,formatDate:j,maxTagCount:x,disabled:F,removeIcon:_,placeholder:u}),m.createElement(\"input\",{className:\"\".concat(k,\"-multiple-input\"),value:v.map(j).join(\",\"),ref:P,readOnly:!0,autoFocus:D,tabIndex:A}),m.createElement(B6,{type:\"suffix\",icon:i}),H&&m.createElement(OR,{icon:a,onClear:h})):m.createElement(BR,Ce({ref:P},L(),{autoFocus:D,tabIndex:A,suffixIcon:i,clearIcon:H&&m.createElement(OR,{icon:a,onClear:h}),showActiveCls:!1}));return m.createElement(\"div\",Ce({},B,{className:ne(k,Z(Z(Z(Z(Z({},\"\".concat(k,\"-multiple\"),b),\"\".concat(k,\"-focused\"),o),\"\".concat(k,\"-disabled\"),F),\"\".concat(k,\"-invalid\"),S),\"\".concat(k,\"-rtl\"),M),c),style:d,ref:R,onClick:f,onMouseDown:function(Q){var K,Y=Q.target;Y!==((K=P.current)===null||K===void 0?void 0:K.inputElement)&&Q.preventDefault(),w==null||w(Q)}}),n&&m.createElement(\"div\",{className:\"\".concat(k,\"-prefix\")},n),V)}var uke=m.forwardRef(ske);function cke(e,t){var r=Moe(e),n=ve(r,6),a=n[0],i=n[1],o=n[2],l=n[3],s=n[4],u=n[5],c=a,d=c.prefixCls,f=c.styles,h=c.classNames,p=c.order,v=c.defaultValue,g=c.value,y=c.needConfirm,b=c.onChange,x=c.onKeyDown,F=c.disabled,S=c.disabledDate,E=c.minDate,w=c.maxDate,D=c.defaultOpen,A=c.open,_=c.onOpenChange,I=c.locale,M=c.generateConfig,T=c.picker,k=c.showNow,R=c.showToday,P=c.showTime,B=c.mode,N=c.onPanelChange,O=c.onCalendarChange,z=c.onOk,W=c.multiple,L=c.defaultPickerValue,j=c.pickerValue,H=c.onPickerValueChange,V=c.inputReadOnly,U=c.suffixIcon,Q=c.removeIcon,K=c.onFocus,Y=c.onBlur,ee=c.presets,J=c.components,X=c.cellRender,ce=c.dateRender,oe=c.monthCellRender,ue=c.onClick,ie=Ooe(t);function fe(Ut){return Ut===null?null:W?Ut:Ut[0]}var xe=Goe(M,I,i),Ee=Poe(A,D,[F],_),De=ve(Ee,2),ye=De[0],we=De[1],Fe=function(qt,Qr,On){if(O){var Qn=ae({},On);delete Qn.range,O(fe(qt),fe(Qr),Qn)}},me=function(qt){z==null||z(fe(qt))},Me=Hoe(M,I,l,!1,p,v,g,Fe,me),je=ve(Me,5),lt=je[0],tt=je[1],rt=je[2],dt=je[3],Ve=je[4],Ie=rt(),Je=Noe([F]),Pe=ve(Je,4),Ge=Pe[0],Ae=Pe[1],_e=Pe[2],$e=Pe[3],Ke=function(qt){Ae(!0),K==null||K(qt,{})},pt=function(qt){Ae(!1),Y==null||Y(qt,{})},_t=un(T,{value:B}),ht=ve(_t,2),gt=ht[0],Et=ht[1],xt=gt===\"date\"&&P?\"datetime\":gt,Dt=Woe(T,gt,k,R),ur=b&&function(Ut,qt){b(fe(Ut),fe(qt))},mr=Voe(ae(ae({},a),{},{onChange:ur}),lt,tt,rt,dt,[],l,Ge,ye,u),Tt=ve(mr,2),jt=Tt[1],Lt=woe(Ie,u),mt=ve(Lt,2),it=mt[0],st=mt[1],Ct=m.useMemo(function(){return it.some(function(Ut){return Ut})},[it]),te=function(qt,Qr){if(H){var On=ae(ae({},Qr),{},{mode:Qr.mode[0]});delete On.range,H(qt[0],On)}},pe=$oe(M,I,Ie,[gt],ye,$e,i,!1,L,j,bm(P==null?void 0:P.defaultOpenValue),te,E,w),he=ve(pe,2),se=he[0],de=he[1],ge=Pr(function(Ut,qt,Qr){if(Et(qt),N&&Qr!==!1){var On=Ut||Ie[Ie.length-1];N(On,qt)}}),Te=function(){jt(rt()),we(!1,{force:!0})},We=function(qt){!F&&!ie.current.nativeElement.contains(document.activeElement)&&ie.current.focus(),we(!0),ue==null||ue(qt)},ke=function(){jt(null),we(!1,{force:!0})},Be=m.useState(null),Oe=ve(Be,2),at=Oe[0],Le=Oe[1],Ye=m.useState(null),qe=ve(Ye,2),Ze=qe[0],ft=qe[1],yt=m.useMemo(function(){var Ut=[Ze].concat(He(Ie)).filter(function(qt){return qt});return W?Ut:Ut.slice(0,1)},[Ie,Ze,W]),zt=m.useMemo(function(){return!W&&Ze?[Ze]:Ie.filter(function(Ut){return Ut})},[Ie,Ze,W]);m.useEffect(function(){ye||ft(null)},[ye]);var vr=Boe(ee),kt=function(qt){ft(qt),Le(\"preset\")},Yt=function(qt){var Qr=W?xe(rt(),qt):[qt],On=jt(Qr);On&&!W&&we(!1,{force:!0})},xr=function(qt){Yt(qt)},mn=function(qt){ft(qt),Le(\"cell\")},Pn=function(qt){we(!0),Ke(qt)},Tn=function(qt){if(_e(\"panel\"),!(W&&xt!==T)){var Qr=W?xe(rt(),qt):[qt];dt(Qr),!y&&!o&&i===xt&&Te()}},ka=function(){we(!1)},ha=hO(X,ce,oe),ja=m.useMemo(function(){var Ut=qn(a,!1),qt=wn(a,[].concat(He(Object.keys(Ut)),[\"onChange\",\"onCalendarChange\",\"style\",\"className\",\"onPanelChange\"]));return ae(ae({},qt),{},{multiple:a.multiple})},[a]),za=m.createElement(Koe,Ce({},ja,{showNow:Dt,showTime:P,disabledDate:S,onFocus:Pn,onBlur:pt,picker:T,mode:gt,internalMode:xt,onPanelChange:ge,format:s,value:Ie,isInvalid:u,onChange:null,onSelect:Tn,pickerValue:se,defaultOpenValue:P==null?void 0:P.defaultOpenValue,onPickerValueChange:de,hoverValue:yt,onHover:mn,needConfirm:y,onSubmit:Te,onOk:Ve,presets:vr,onPresetHover:kt,onPresetSubmit:Yt,onNow:xr,cellRender:ha})),ti=function(qt){dt(qt)},Ha=function(){_e(\"input\")},dn=function(qt){_e(\"input\"),we(!0,{inherit:!0}),Ke(qt)},Zt=function(qt){we(!1),pt(qt)},Jt=function(qt,Qr){qt.key===\"Tab\"&&Te(),x==null||x(qt,Qr)},on=m.useMemo(function(){return{prefixCls:d,locale:I,generateConfig:M,button:J.button,input:J.input}},[d,I,M,J.button,J.input]);return _r(function(){ye&&$e!==void 0&&ge(null,T,!1)},[ye,$e,T]),_r(function(){var Ut=_e();!ye&&Ut===\"input\"&&(we(!1),Te()),!ye&&o&&!y&&Ut===\"panel\"&&Te()},[ye]),m.createElement(Eu.Provider,{value:on},m.createElement(xoe,Ce({},Soe(a),{popupElement:za,popupStyle:f.popup,popupClassName:h.popup,visible:ye,onClose:ka}),m.createElement(uke,Ce({},a,{ref:ie,suffixIcon:U,removeIcon:Q,activeHelp:!!Ze,allHelp:!!Ze&&at===\"preset\",focused:Ge,onFocus:dn,onBlur:Zt,onKeyDown:Jt,onSubmit:Te,value:zt,maskFormat:s,onChange:ti,onInputChange:Ha,internalPicker:i,format:l,inputReadOnly:V,disabled:F,open:ye,onOpenChange:we,onClick:We,onClear:ke,invalid:Ct,onInvalid:function(qt){st(qt,0)}}))))}var dke=m.forwardRef(cke);const Xoe=m.createContext(null),fke=Xoe.Provider,Joe=m.createContext(null),hke=Joe.Provider;var pke=[\"prefixCls\",\"className\",\"style\",\"checked\",\"disabled\",\"defaultChecked\",\"type\",\"title\",\"onChange\"],Zoe=m.forwardRef(function(e,t){var r=e.prefixCls,n=r===void 0?\"rc-checkbox\":r,a=e.className,i=e.style,o=e.checked,l=e.disabled,s=e.defaultChecked,u=s===void 0?!1:s,c=e.type,d=c===void 0?\"checkbox\":c,f=e.title,h=e.onChange,p=Xt(e,pke),v=m.useRef(null),g=m.useRef(null),y=un(u,{value:o}),b=ve(y,2),x=b[0],F=b[1];m.useImperativeHandle(t,function(){return{focus:function(D){var A;(A=v.current)===null||A===void 0||A.focus(D)},blur:function(){var D;(D=v.current)===null||D===void 0||D.blur()},input:v.current,nativeElement:g.current}});var S=ne(n,a,Z(Z({},\"\".concat(n,\"-checked\"),x),\"\".concat(n,\"-disabled\"),l)),E=function(D){l||(\"checked\"in e||F(D.target.checked),h==null||h({target:ae(ae({},e),{},{type:d,checked:D.target.checked}),stopPropagation:function(){D.stopPropagation()},preventDefault:function(){D.preventDefault()},nativeEvent:D.nativeEvent}))};return m.createElement(\"span\",{className:S,title:f,style:i,ref:g},m.createElement(\"input\",Ce({},p,{className:\"\".concat(n,\"-input\"),ref:v,onChange:E,disabled:l,checked:!!x,type:d})),m.createElement(\"span\",{className:\"\".concat(n,\"-inner\")}))});function Qoe(e){const t=le.useRef(null),r=()=>{Tr.cancel(t.current),t.current=null};return[()=>{r(),t.current=Tr(()=>{t.current=null})},i=>{t.current&&(i.stopPropagation(),r()),e==null||e(i)}]}const mke=e=>{const{componentCls:t,antCls:r}=e,n=`${t}-group`;return{[n]:Object.assign(Object.assign({},Hr(e)),{display:\"inline-block\",fontSize:0,[`&${n}-rtl`]:{direction:\"rtl\"},[`&${n}-block`]:{display:\"flex\"},[`${r}-badge ${r}-badge-count`]:{zIndex:1},[`> ${r}-badge:not(:first-child) > ${r}-button-wrapper`]:{borderInlineStart:\"none\"}})}},vke=e=>{const{componentCls:t,wrapperMarginInlineEnd:r,colorPrimary:n,radioSize:a,motionDurationSlow:i,motionDurationMid:o,motionEaseInOutCirc:l,colorBgContainer:s,colorBorder:u,lineWidth:c,colorBgContainerDisabled:d,colorTextDisabled:f,paddingXS:h,dotColorDisabled:p,lineType:v,radioColor:g,radioBgColor:y,calc:b}=e,x=`${t}-inner`,S=b(a).sub(b(4).mul(2)),E=b(1).mul(a).equal({unit:!0});return{[`${t}-wrapper`]:Object.assign(Object.assign({},Hr(e)),{display:\"inline-flex\",alignItems:\"baseline\",marginInlineStart:0,marginInlineEnd:r,cursor:\"pointer\",\"&:last-child\":{marginInlineEnd:0},[`&${t}-wrapper-rtl`]:{direction:\"rtl\"},\"&-disabled\":{cursor:\"not-allowed\",color:e.colorTextDisabled},\"&::after\":{display:\"inline-block\",width:0,overflow:\"hidden\",content:'\"\\\\a0\"'},\"&-block\":{flex:1,justifyContent:\"center\"},[`${t}-checked::after`]:{position:\"absolute\",insetBlockStart:0,insetInlineStart:0,width:\"100%\",height:\"100%\",border:`${re(c)} ${v} ${n}`,borderRadius:\"50%\",visibility:\"hidden\",opacity:0,content:'\"\"'},[t]:Object.assign(Object.assign({},Hr(e)),{position:\"relative\",display:\"inline-block\",outline:\"none\",cursor:\"pointer\",alignSelf:\"center\",borderRadius:\"50%\"}),[`${t}-wrapper:hover &,\n &:hover ${x}`]:{borderColor:n},[`${t}-input:focus-visible + ${x}`]:uc(e),[`${t}:hover::after, ${t}-wrapper:hover &::after`]:{visibility:\"visible\"},[`${t}-inner`]:{\"&::after\":{boxSizing:\"border-box\",position:\"absolute\",insetBlockStart:\"50%\",insetInlineStart:\"50%\",display:\"block\",width:E,height:E,marginBlockStart:b(1).mul(a).div(-2).equal({unit:!0}),marginInlineStart:b(1).mul(a).div(-2).equal({unit:!0}),backgroundColor:g,borderBlockStart:0,borderInlineStart:0,borderRadius:E,transform:\"scale(0)\",opacity:0,transition:`all ${i} ${l}`,content:'\"\"'},boxSizing:\"border-box\",position:\"relative\",insetBlockStart:0,insetInlineStart:0,display:\"block\",width:E,height:E,backgroundColor:s,borderColor:u,borderStyle:\"solid\",borderWidth:c,borderRadius:\"50%\",transition:`all ${o}`},[`${t}-input`]:{position:\"absolute\",inset:0,zIndex:1,cursor:\"pointer\",opacity:0},[`${t}-checked`]:{[x]:{borderColor:n,backgroundColor:y,\"&::after\":{transform:`scale(${e.calc(e.dotSize).div(a).equal()})`,opacity:1,transition:`all ${i} ${l}`}}},[`${t}-disabled`]:{cursor:\"not-allowed\",[x]:{backgroundColor:d,borderColor:u,cursor:\"not-allowed\",\"&::after\":{backgroundColor:p}},[`${t}-input`]:{cursor:\"not-allowed\"},[`${t}-disabled + span`]:{color:f,cursor:\"not-allowed\"},[`&${t}-checked`]:{[x]:{\"&::after\":{transform:`scale(${b(S).div(a).equal()})`}}}},[`span${t} + *`]:{paddingInlineStart:h,paddingInlineEnd:h}})}},gke=e=>{const{buttonColor:t,controlHeight:r,componentCls:n,lineWidth:a,lineType:i,colorBorder:o,motionDurationMid:l,buttonPaddingInline:s,fontSize:u,buttonBg:c,fontSizeLG:d,controlHeightLG:f,controlHeightSM:h,paddingXS:p,borderRadius:v,borderRadiusSM:g,borderRadiusLG:y,buttonCheckedBg:b,buttonSolidCheckedColor:x,colorTextDisabled:F,colorBgContainerDisabled:S,buttonCheckedBgDisabled:E,buttonCheckedColorDisabled:w,colorPrimary:D,colorPrimaryHover:A,colorPrimaryActive:_,buttonSolidCheckedBg:I,buttonSolidCheckedHoverBg:M,buttonSolidCheckedActiveBg:T,calc:k}=e;return{[`${n}-button-wrapper`]:{position:\"relative\",display:\"inline-block\",height:r,margin:0,paddingInline:s,paddingBlock:0,color:t,fontSize:u,lineHeight:re(k(r).sub(k(a).mul(2)).equal()),background:c,border:`${re(a)} ${i} ${o}`,borderBlockStartWidth:k(a).add(.02).equal(),borderInlineEndWidth:a,cursor:\"pointer\",transition:[`color ${l}`,`background ${l}`,`box-shadow ${l}`].join(\",\"),a:{color:t},[`> ${n}-button`]:{position:\"absolute\",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:\"100%\",height:\"100%\"},\"&:not(:last-child)\":{marginInlineEnd:k(a).mul(-1).equal()},\"&:first-child\":{borderInlineStart:`${re(a)} ${i} ${o}`,borderStartStartRadius:v,borderEndStartRadius:v},\"&:last-child\":{borderStartEndRadius:v,borderEndEndRadius:v},\"&:first-child:last-child\":{borderRadius:v},[`${n}-group-large &`]:{height:f,fontSize:d,lineHeight:re(k(f).sub(k(a).mul(2)).equal()),\"&:first-child\":{borderStartStartRadius:y,borderEndStartRadius:y},\"&:last-child\":{borderStartEndRadius:y,borderEndEndRadius:y}},[`${n}-group-small &`]:{height:h,paddingInline:k(p).sub(a).equal(),paddingBlock:0,lineHeight:re(k(h).sub(k(a).mul(2)).equal()),\"&:first-child\":{borderStartStartRadius:g,borderEndStartRadius:g},\"&:last-child\":{borderStartEndRadius:g,borderEndEndRadius:g}},\"&:hover\":{position:\"relative\",color:D},\"&:has(:focus-visible)\":uc(e),[`${n}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:\"none\"},[`&-checked:not(${n}-button-wrapper-disabled)`]:{zIndex:1,color:D,background:b,borderColor:D,\"&::before\":{backgroundColor:D},\"&:first-child\":{borderColor:D},\"&:hover\":{color:A,borderColor:A,\"&::before\":{backgroundColor:A}},\"&:active\":{color:_,borderColor:_,\"&::before\":{backgroundColor:_}}},[`${n}-group-solid &-checked:not(${n}-button-wrapper-disabled)`]:{color:x,background:I,borderColor:I,\"&:hover\":{color:x,background:M,borderColor:M},\"&:active\":{color:x,background:T,borderColor:T}},\"&-disabled\":{color:F,backgroundColor:S,borderColor:o,cursor:\"not-allowed\",\"&:first-child, &:hover\":{color:F,backgroundColor:S,borderColor:o}},[`&-disabled${n}-button-wrapper-checked`]:{color:w,backgroundColor:E,borderColor:o,boxShadow:\"none\"},\"&-block\":{flex:1,textAlign:\"center\"}}}},yke=e=>{const{wireframe:t,padding:r,marginXS:n,lineWidth:a,fontSizeLG:i,colorText:o,colorBgContainer:l,colorTextDisabled:s,controlItemBgActiveDisabled:u,colorTextLightSolid:c,colorPrimary:d,colorPrimaryHover:f,colorPrimaryActive:h,colorWhite:p}=e,v=4,g=i,y=t?g-v*2:g-(v+a)*2;return{radioSize:g,dotSize:y,dotColorDisabled:s,buttonSolidCheckedColor:c,buttonSolidCheckedBg:d,buttonSolidCheckedHoverBg:f,buttonSolidCheckedActiveBg:h,buttonBg:l,buttonCheckedBg:l,buttonColor:o,buttonCheckedBgDisabled:u,buttonCheckedColorDisabled:s,buttonPaddingInline:r-a,wrapperMarginInlineEnd:n,radioColor:t?d:p,radioBgColor:t?l:d}},ele=kr(\"Radio\",e=>{const{controlOutline:t,controlOutlineWidth:r}=e,n=`0 0 0 ${re(r)} ${t}`,i=Sr(e,{radioFocusShadow:n,radioButtonFocusShadow:n});return[mke(i),vke(i),gke(i)]},yke,{unitless:{radioSize:!0,dotSize:!0}});var bke=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const xke=(e,t)=>{var r,n;const a=m.useContext(Xoe),i=m.useContext(Joe),{getPrefixCls:o,direction:l,radio:s}=m.useContext(Ot),u=m.useRef(null),c=Qa(t,u),{isFormItemInput:d}=m.useContext(pi),f=P=>{var B,N;(B=e.onChange)===null||B===void 0||B.call(e,P),(N=a==null?void 0:a.onChange)===null||N===void 0||N.call(a,P)},{prefixCls:h,className:p,rootClassName:v,children:g,style:y,title:b}=e,x=bke(e,[\"prefixCls\",\"className\",\"rootClassName\",\"children\",\"style\",\"title\"]),F=o(\"radio\",h),S=((a==null?void 0:a.optionType)||i)===\"button\",E=S?`${F}-button`:F,w=Zn(F),[D,A,_]=ele(F,w),I=Object.assign({},x),M=m.useContext(Ui);a&&(I.name=a.name,I.onChange=f,I.checked=e.value===a.value,I.disabled=(r=I.disabled)!==null&&r!==void 0?r:a.disabled),I.disabled=(n=I.disabled)!==null&&n!==void 0?n:M;const T=ne(`${E}-wrapper`,{[`${E}-wrapper-checked`]:I.checked,[`${E}-wrapper-disabled`]:I.disabled,[`${E}-wrapper-rtl`]:l===\"rtl\",[`${E}-wrapper-in-form-item`]:d,[`${E}-wrapper-block`]:!!(a!=null&&a.block)},s==null?void 0:s.className,p,v,A,_,w),[k,R]=Qoe(I.onClick);return D(m.createElement(ux,{component:\"Radio\",disabled:I.disabled},m.createElement(\"label\",{className:T,style:Object.assign(Object.assign({},s==null?void 0:s.style),y),onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,title:b,onClick:k},m.createElement(Zoe,Object.assign({},I,{className:ne(I.className,{[r6]:!S}),type:\"radio\",prefixCls:E,ref:c,onClick:R})),g!==void 0?m.createElement(\"span\",{className:`${E}-label`},g):null)))},TE=m.forwardRef(xke),Cke=[\"parentNode\"],Fke=\"form_item\";function Wy(e){return e===void 0||e===!1?[]:Array.isArray(e)?e:[e]}function tle(e,t){if(!e.length)return;const r=e.join(\"_\");return t?`${t}_${r}`:Cke.includes(r)?`${Fke}_${r}`:r}function rle(e,t,r,n,a,i){let o=n;return i!==void 0?o=i:r.validating?o=\"validating\":e.length?o=\"error\":t.length?o=\"warning\":(r.touched||a&&r.validated)&&(o=\"success\"),o}var Ske=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function NR(e){return Wy(e).join(\"_\")}function YH(e,t){const r=t.getFieldInstance(e),n=ax(r);if(n)return n;const a=tle(Wy(e),t.__INTERNAL__.name);if(a)return document.getElementById(a)}function nle(e){const[t]=q7(),r=m.useRef({}),n=m.useMemo(()=>e??Object.assign(Object.assign({},t),{__INTERNAL__:{itemRef:a=>i=>{const o=NR(a);i?r.current[o]=i:delete r.current[o]}},scrollToField:(a,i={})=>{const{focus:o}=i,l=Ske(i,[\"focus\"]),s=YH(a,n);s&&(iwe(s,Object.assign({scrollMode:\"if-needed\",block:\"nearest\"},l)),o&&n.focusField(a))},focusField:a=>{var i,o;const l=n.getFieldInstance(a);typeof(l==null?void 0:l.focus)==\"function\"?l.focus():(o=(i=YH(a,n))===null||i===void 0?void 0:i.focus)===null||o===void 0||o.call(i)},getFieldInstance:a=>{const i=NR(a);return r.current[i]}}),[e,t]);return[n]}const wke=m.forwardRef((e,t)=>{const{getPrefixCls:r,direction:n}=m.useContext(Ot),{name:a}=m.useContext(pi),i=hx(NR(a)),{prefixCls:o,className:l,rootClassName:s,options:u,buttonStyle:c=\"outline\",disabled:d,children:f,size:h,style:p,id:v,optionType:g,name:y=i,defaultValue:b,value:x,block:F=!1,onChange:S,onMouseEnter:E,onMouseLeave:w,onFocus:D,onBlur:A}=e,[_,I]=un(b,{value:x}),M=m.useCallback(j=>{const H=_,V=j.target.value;\"value\"in e||I(V),V!==H&&(S==null||S(j))},[_,I,S]),T=r(\"radio\",o),k=`${T}-group`,R=Zn(T),[P,B,N]=ele(T,R);let O=f;u&&u.length>0&&(O=u.map(j=>typeof j==\"string\"||typeof j==\"number\"?m.createElement(TE,{key:j.toString(),prefixCls:T,disabled:d,value:j,checked:_===j},j):m.createElement(TE,{key:`radio-group-value-options-${j.value}`,prefixCls:T,disabled:j.disabled||d,value:j.value,checked:_===j.value,title:j.title,style:j.style,className:j.className,id:j.id,required:j.required},j.label)));const z=Ta(h),W=ne(k,`${k}-${c}`,{[`${k}-${z}`]:z,[`${k}-rtl`]:n===\"rtl\",[`${k}-block`]:F},l,s,B,N,R),L=m.useMemo(()=>({onChange:M,value:_,disabled:d,name:y,optionType:g,block:F}),[M,_,d,y,g,F]);return P(m.createElement(\"div\",Object.assign({},qn(e,{aria:!0,data:!0}),{className:W,style:p,onMouseEnter:E,onMouseLeave:w,onFocus:D,onBlur:A,id:v,ref:t}),m.createElement(fke,{value:L},O)))}),Eke=m.memo(wke);var Dke=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Ake=(e,t)=>{const{getPrefixCls:r}=m.useContext(Ot),{prefixCls:n}=e,a=Dke(e,[\"prefixCls\"]),i=r(\"radio\",n);return m.createElement(hke,{value:\"button\"},m.createElement(TE,Object.assign({prefixCls:i},a,{type:\"radio\",ref:t})))},_ke=m.forwardRef(Ake),Ti=TE;Ti.Button=_ke;Ti.Group=Eke;Ti.__ANT_RADIO=!0;function Cm(e){return Sr(e,{inputAffixPadding:e.paddingXXS})}const Fm=e=>{const{controlHeight:t,fontSize:r,lineHeight:n,lineWidth:a,controlHeightSM:i,controlHeightLG:o,fontSizeLG:l,lineHeightLG:s,paddingSM:u,controlPaddingHorizontalSM:c,controlPaddingHorizontal:d,colorFillAlter:f,colorPrimaryHover:h,colorPrimary:p,controlOutlineWidth:v,controlOutline:g,colorErrorOutline:y,colorWarningOutline:b,colorBgContainer:x,inputFontSize:F,inputFontSizeLG:S,inputFontSizeSM:E}=e,w=F||r,D=E||w,A=S||l,_=Math.round((t-w*n)/2*10)/10-a,I=Math.round((i-D*n)/2*10)/10-a,M=Math.ceil((o-A*s)/2*10)/10-a;return{paddingBlock:Math.max(_,0),paddingBlockSM:Math.max(I,0),paddingBlockLG:Math.max(M,0),paddingInline:u-a,paddingInlineSM:c-a,paddingInlineLG:d-a,addonBg:f,activeBorderColor:p,hoverBorderColor:h,activeShadow:`0 0 0 ${v}px ${g}`,errorActiveShadow:`0 0 0 ${v}px ${y}`,warningActiveShadow:`0 0 0 ${v}px ${b}`,hoverBg:x,activeBg:x,inputFontSize:w,inputFontSizeLG:A,inputFontSizeSM:D}},Tke=e=>({borderColor:e.hoverBorderColor,backgroundColor:e.hoverBg}),N6=e=>({color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,boxShadow:\"none\",cursor:\"not-allowed\",opacity:1,\"input[disabled], textarea[disabled]\":{cursor:\"not-allowed\"},\"&:hover:not([disabled])\":Object.assign({},Tke(Sr(e,{hoverBorderColor:e.colorBorder,hoverBg:e.colorBgContainerDisabled})))}),yO=(e,t)=>({background:e.colorBgContainer,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:t.borderColor,\"&:hover\":{borderColor:t.hoverBorderColor,backgroundColor:e.hoverBg},\"&:focus, &:focus-within\":{borderColor:t.activeBorderColor,boxShadow:t.activeShadow,outline:0,backgroundColor:e.activeBg}}),qH=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},yO(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:t.borderColor}}),bO=(e,t)=>({\"&-outlined\":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},yO(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},N6(e))}),qH(e,{status:\"error\",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),qH(e,{status:\"warning\",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),XH=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{borderColor:t.addonBorderColor,color:t.addonColor}}}),ale=e=>({\"&-outlined\":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group`]:{\"&-addon\":{background:e.addonBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},\"&-addon:first-child\":{borderInlineEnd:0},\"&-addon:last-child\":{borderInlineStart:0}}},XH(e,{status:\"error\",addonBorderColor:e.colorError,addonColor:e.colorErrorText})),XH(e,{status:\"warning\",addonBorderColor:e.colorWarning,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group-addon`]:Object.assign({},N6(e))}})}),xO=(e,t)=>{const{componentCls:r}=e;return{\"&-borderless\":Object.assign({background:\"transparent\",border:\"none\",\"&:focus, &:focus-within\":{outline:\"none\"},[`&${r}-disabled, &[disabled]`]:{color:e.colorTextDisabled,cursor:\"not-allowed\"},[`&${r}-status-error`]:{\"&, & input, & textarea\":{color:e.colorError}},[`&${r}-status-warning`]:{\"&, & input, & textarea\":{color:e.colorWarning}}},t)}},ile=(e,t)=>{var r;return{background:t.bg,borderWidth:e.lineWidth,borderStyle:e.lineType,borderColor:\"transparent\",\"input&, & input, textarea&, & textarea\":{color:(r=t==null?void 0:t.inputColor)!==null&&r!==void 0?r:\"unset\"},\"&:hover\":{background:t.hoverBg},\"&:focus, &:focus-within\":{outline:0,borderColor:t.activeBorderColor,backgroundColor:e.activeBg}}},JH=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},ile(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}})}),CO=(e,t)=>({\"&-filled\":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ile(e,{bg:e.colorFillTertiary,hoverBg:e.colorFillSecondary,activeBorderColor:e.activeBorderColor})),{[`&${e.componentCls}-disabled, &[disabled]`]:Object.assign({},N6(e))}),JH(e,{status:\"error\",bg:e.colorErrorBg,hoverBg:e.colorErrorBgHover,activeBorderColor:e.colorError,inputColor:e.colorErrorText,affixColor:e.colorError})),JH(e,{status:\"warning\",bg:e.colorWarningBg,hoverBg:e.colorWarningBgHover,activeBorderColor:e.colorWarning,inputColor:e.colorWarningText,affixColor:e.colorWarning})),t)}),ZH=(e,t)=>({[`&${e.componentCls}-group-wrapper-status-${t.status}`]:{[`${e.componentCls}-group-addon`]:{background:t.addonBg,color:t.addonColor}}}),ole=e=>({\"&-filled\":Object.assign(Object.assign(Object.assign({[`${e.componentCls}-group-addon`]:{background:e.colorFillTertiary,\"&:last-child\":{position:\"static\"}}},ZH(e,{status:\"error\",addonBg:e.colorErrorBg,addonColor:e.colorErrorText})),ZH(e,{status:\"warning\",addonBg:e.colorWarningBg,addonColor:e.colorWarningText})),{[`&${e.componentCls}-group-wrapper-disabled`]:{[`${e.componentCls}-group`]:{\"&-addon\":{background:e.colorFillTertiary,color:e.colorTextDisabled},\"&-addon:first-child\":{borderInlineStart:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},\"&-addon:last-child\":{borderInlineEnd:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderTop:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderBottom:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`}}}})}),lle=(e,t)=>({background:e.colorBgContainer,borderWidth:`${re(e.lineWidth)} 0`,borderStyle:`${e.lineType} none`,borderColor:`transparent transparent ${t.borderColor} transparent`,borderRadius:0,\"&:hover\":{borderColor:`transparent transparent ${t.hoverBorderColor} transparent`,backgroundColor:e.hoverBg},\"&:focus, &:focus-within\":{borderColor:`transparent transparent ${t.activeBorderColor} transparent`,outline:0,backgroundColor:e.activeBg}}),QH=(e,t)=>({[`&${e.componentCls}-status-${t.status}:not(${e.componentCls}-disabled)`]:Object.assign(Object.assign({},lle(e,t)),{[`${e.componentCls}-prefix, ${e.componentCls}-suffix`]:{color:t.affixColor}}),[`&${e.componentCls}-status-${t.status}${e.componentCls}-disabled`]:{borderColor:`transparent transparent ${t.borderColor} transparent`}}),FO=(e,t)=>({\"&-underlined\":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},lle(e,{borderColor:e.colorBorder,hoverBorderColor:e.hoverBorderColor,activeBorderColor:e.activeBorderColor,activeShadow:e.activeShadow})),{[`&${e.componentCls}-disabled, &[disabled]`]:{color:e.colorTextDisabled,boxShadow:\"none\",cursor:\"not-allowed\",\"&:hover\":{borderColor:`transparent transparent ${e.colorBorder} transparent`}},\"input[disabled], textarea[disabled]\":{cursor:\"not-allowed\"}}),QH(e,{status:\"error\",borderColor:e.colorError,hoverBorderColor:e.colorErrorBorderHover,activeBorderColor:e.colorError,activeShadow:e.errorActiveShadow,affixColor:e.colorError})),QH(e,{status:\"warning\",borderColor:e.colorWarning,hoverBorderColor:e.colorWarningBorderHover,activeBorderColor:e.colorWarning,activeShadow:e.warningActiveShadow,affixColor:e.colorWarning})),t)}),SO=e=>({\"&::-moz-placeholder\":{opacity:1},\"&::placeholder\":{color:e,userSelect:\"none\"},\"&:placeholder-shown\":{textOverflow:\"ellipsis\"}}),sle=e=>{const{paddingBlockLG:t,lineHeightLG:r,borderRadiusLG:n,paddingInlineLG:a}=e;return{padding:`${re(t)} ${re(a)}`,fontSize:e.inputFontSizeLG,lineHeight:r,borderRadius:n}},wO=e=>({padding:`${re(e.paddingBlockSM)} ${re(e.paddingInlineSM)}`,fontSize:e.inputFontSizeSM,borderRadius:e.borderRadiusSM}),Sx=e=>Object.assign(Object.assign({position:\"relative\",display:\"inline-block\",width:\"100%\",minWidth:0,padding:`${re(e.paddingBlock)} ${re(e.paddingInline)}`,color:e.colorText,fontSize:e.inputFontSize,lineHeight:e.lineHeight,borderRadius:e.borderRadius,transition:`all ${e.motionDurationMid}`},SO(e.colorTextPlaceholder)),{\"&-lg\":Object.assign({},sle(e)),\"&-sm\":Object.assign({},wO(e)),\"&-rtl, &-textarea-rtl\":{direction:\"rtl\"}}),ule=e=>{const{componentCls:t,antCls:r}=e;return{position:\"relative\",display:\"table\",width:\"100%\",borderCollapse:\"separate\",borderSpacing:0,\"&[class*='col-']\":{paddingInlineEnd:e.paddingXS,\"&:last-child\":{paddingInlineEnd:0}},[`&-lg ${t}, &-lg > ${t}-group-addon`]:Object.assign({},sle(e)),[`&-sm ${t}, &-sm > ${t}-group-addon`]:Object.assign({},wO(e)),[`&-lg ${r}-select-single ${r}-select-selector`]:{height:e.controlHeightLG},[`&-sm ${r}-select-single ${r}-select-selector`]:{height:e.controlHeightSM},[`> ${t}`]:{display:\"table-cell\",\"&:not(:first-child):not(:last-child)\":{borderRadius:0}},[`${t}-group`]:{\"&-addon, &-wrap\":{display:\"table-cell\",width:1,whiteSpace:\"nowrap\",verticalAlign:\"middle\",\"&:not(:first-child):not(:last-child)\":{borderRadius:0}},\"&-wrap > *\":{display:\"block !important\"},\"&-addon\":{position:\"relative\",padding:`0 ${re(e.paddingInline)}`,color:e.colorText,fontWeight:\"normal\",fontSize:e.inputFontSize,textAlign:\"center\",borderRadius:e.borderRadius,transition:`all ${e.motionDurationSlow}`,lineHeight:1,[`${r}-select`]:{margin:`${re(e.calc(e.paddingBlock).add(1).mul(-1).equal())} ${re(e.calc(e.paddingInline).mul(-1).equal())}`,[`&${r}-select-single:not(${r}-select-customize-input):not(${r}-pagination-size-changer)`]:{[`${r}-select-selector`]:{backgroundColor:\"inherit\",border:`${re(e.lineWidth)} ${e.lineType} transparent`,boxShadow:\"none\"}}},[`${r}-cascader-picker`]:{margin:`-9px ${re(e.calc(e.paddingInline).mul(-1).equal())}`,backgroundColor:\"transparent\",[`${r}-cascader-input`]:{textAlign:\"start\",border:0,boxShadow:\"none\"}}}},[t]:{width:\"100%\",marginBottom:0,textAlign:\"inherit\",\"&:focus\":{zIndex:1,borderInlineEndWidth:1},\"&:hover\":{zIndex:1,borderInlineEndWidth:1,[`${t}-search-with-button &`]:{zIndex:0}}},[`> ${t}:first-child, ${t}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${r}-select ${r}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}-affix-wrapper`]:{[`&:not(:first-child) ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${t}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${t}:last-child, ${t}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${r}-select ${r}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${t}-affix-wrapper`]:{\"&:not(:last-child)\":{borderStartEndRadius:0,borderEndEndRadius:0,[`${t}-search &`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius}},[`&:not(:first-child), ${t}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${t}-group-compact`]:Object.assign(Object.assign({display:\"block\"},sc()),{[`${t}-group-addon, ${t}-group-wrap, > ${t}`]:{\"&:not(:first-child):not(:last-child)\":{borderInlineEndWidth:e.lineWidth,\"&:hover, &:focus\":{zIndex:1}}},\"& > *\":{display:\"inline-flex\",float:\"none\",verticalAlign:\"top\",borderRadius:0},[`\n & > ${t}-affix-wrapper,\n & > ${t}-number-affix-wrapper,\n & > ${r}-picker-range\n `]:{display:\"inline-flex\"},\"& > *:not(:last-child)\":{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderInlineEndWidth:e.lineWidth},[t]:{float:\"none\"},[`& > ${r}-select > ${r}-select-selector,\n & > ${r}-select-auto-complete ${t},\n & > ${r}-cascader-picker ${t},\n & > ${t}-group-wrapper ${t}`]:{borderInlineEndWidth:e.lineWidth,borderRadius:0,\"&:hover, &:focus\":{zIndex:1}},[`& > ${r}-select-focused`]:{zIndex:1},[`& > ${r}-select > ${r}-select-arrow`]:{zIndex:1},[`& > *:first-child,\n & > ${r}-select:first-child > ${r}-select-selector,\n & > ${r}-select-auto-complete:first-child ${t},\n & > ${r}-cascader-picker:first-child ${t}`]:{borderStartStartRadius:e.borderRadius,borderEndStartRadius:e.borderRadius},[`& > *:last-child,\n & > ${r}-select:last-child > ${r}-select-selector,\n & > ${r}-cascader-picker:last-child ${t},\n & > ${r}-cascader-picker-focused:last-child ${t}`]:{borderInlineEndWidth:e.lineWidth,borderStartEndRadius:e.borderRadius,borderEndEndRadius:e.borderRadius},[`& > ${r}-select-auto-complete ${t}`]:{verticalAlign:\"top\"},[`${t}-group-wrapper + ${t}-group-wrapper`]:{marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),[`${t}-affix-wrapper`]:{borderRadius:0}},[`${t}-group-wrapper:not(:last-child)`]:{[`&${t}-search > ${t}-group`]:{[`& > ${t}-group-addon > ${t}-search-button`]:{borderRadius:0},[`& > ${t}`]:{borderStartStartRadius:e.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:e.borderRadius}}}})}},Ike=e=>{const{componentCls:t,controlHeightSM:r,lineWidth:n,calc:a}=e,o=a(r).sub(a(n).mul(2)).sub(16).div(2).equal();return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),Sx(e)),bO(e)),CO(e)),xO(e)),FO(e)),{'&[type=\"color\"]':{height:e.controlHeight,[`&${t}-lg`]:{height:e.controlHeightLG},[`&${t}-sm`]:{height:r,paddingTop:o,paddingBottom:o}},'&[type=\"search\"]::-webkit-search-cancel-button, &[type=\"search\"]::-webkit-search-decoration':{appearance:\"none\"}})}},kke=e=>{const{componentCls:t}=e;return{[`${t}-clear-icon`]:{margin:0,padding:0,lineHeight:0,color:e.colorTextQuaternary,fontSize:e.fontSizeIcon,verticalAlign:-1,cursor:\"pointer\",transition:`color ${e.motionDurationSlow}`,border:\"none\",outline:\"none\",backgroundColor:\"transparent\",\"&:hover\":{color:e.colorIcon},\"&:active\":{color:e.colorText},\"&-hidden\":{visibility:\"hidden\"},\"&-has-suffix\":{margin:`0 ${re(e.inputAffixPadding)}`}}}},Rke=e=>{const{componentCls:t,inputAffixPadding:r,colorTextDescription:n,motionDurationSlow:a,colorIcon:i,colorIconHover:o,iconCls:l}=e,s=`${t}-affix-wrapper`,u=`${t}-affix-wrapper-disabled`;return{[s]:Object.assign(Object.assign(Object.assign(Object.assign({},Sx(e)),{display:\"inline-flex\",[`&:not(${t}-disabled):hover`]:{zIndex:1,[`${t}-search-with-button &`]:{zIndex:0}},\"&-focused, &:focus\":{zIndex:1},[`> input${t}`]:{padding:0},[`> input${t}, > textarea${t}`]:{fontSize:\"inherit\",border:\"none\",borderRadius:0,outline:\"none\",background:\"transparent\",color:\"inherit\",\"&::-ms-reveal\":{display:\"none\"},\"&:focus\":{boxShadow:\"none !important\"}},\"&::before\":{display:\"inline-block\",width:0,visibility:\"hidden\",content:'\"\\\\a0\"'},[t]:{\"&-prefix, &-suffix\":{display:\"flex\",flex:\"none\",alignItems:\"center\",\"> *:not(:last-child)\":{marginInlineEnd:e.paddingXS}},\"&-show-count-suffix\":{color:n,direction:\"ltr\"},\"&-show-count-has-suffix\":{marginInlineEnd:e.paddingXXS},\"&-prefix\":{marginInlineEnd:r},\"&-suffix\":{marginInlineStart:r}}}),kke(e)),{[`${l}${t}-password-icon`]:{color:i,cursor:\"pointer\",transition:`all ${a}`,\"&:hover\":{color:o}}}),[`${t}-underlined`]:{borderRadius:0},[u]:{[`${l}${t}-password-icon`]:{color:i,cursor:\"not-allowed\",\"&:hover\":{color:i}}}}},Mke=e=>{const{componentCls:t,borderRadiusLG:r,borderRadiusSM:n}=e;return{[`${t}-group`]:Object.assign(Object.assign(Object.assign({},Hr(e)),ule(e)),{\"&-rtl\":{direction:\"rtl\"},\"&-wrapper\":Object.assign(Object.assign(Object.assign({display:\"inline-block\",width:\"100%\",textAlign:\"start\",verticalAlign:\"top\",\"&-rtl\":{direction:\"rtl\"},\"&-lg\":{[`${t}-group-addon`]:{borderRadius:r,fontSize:e.inputFontSizeLG}},\"&-sm\":{[`${t}-group-addon`]:{borderRadius:n}}},ale(e)),ole(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-item`]:{[`${t}-affix-wrapper`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})})}},Pke=e=>{const{componentCls:t,antCls:r}=e,n=`${t}-search`;return{[n]:{[t]:{\"&:not([disabled]):hover, &:not([disabled]):focus\":{[`+ ${t}-group-addon ${n}-button:not(${r}-btn-color-primary):not(${r}-btn-variant-text)`]:{borderInlineStartColor:e.colorPrimaryHover}}},[`${t}-affix-wrapper`]:{height:e.controlHeight,borderRadius:0},[`${t}-lg`]:{lineHeight:e.calc(e.lineHeightLG).sub(2e-4).equal()},[`> ${t}-group`]:{[`> ${t}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${n}-button`]:{marginInlineEnd:-1,borderStartStartRadius:0,borderEndStartRadius:0,boxShadow:\"none\"},[`${n}-button:not(${r}-btn-color-primary)`]:{color:e.colorTextDescription,\"&:not([disabled]):hover\":{color:e.colorPrimaryHover},\"&:active\":{color:e.colorPrimaryActive},[`&${r}-btn-loading::before`]:{inset:0}}}},[`${n}-button`]:{height:e.controlHeight,\"&:hover, &:focus\":{zIndex:1}},\"&-large\":{[`${t}-affix-wrapper, ${n}-button`]:{height:e.controlHeightLG}},\"&-small\":{[`${t}-affix-wrapper, ${n}-button`]:{height:e.controlHeightSM}},\"&-rtl\":{direction:\"rtl\"},[`&${t}-compact-item`]:{[`&:not(${t}-compact-last-item)`]:{[`${t}-group-addon`]:{[`${t}-search-button`]:{marginInlineEnd:e.calc(e.lineWidth).mul(-1).equal(),borderRadius:0}}},[`&:not(${t}-compact-first-item)`]:{[`${t},${t}-affix-wrapper`]:{borderRadius:0}},[`> ${t}-group-addon ${t}-search-button,\n > ${t},\n ${t}-affix-wrapper`]:{\"&:hover, &:focus, &:active\":{zIndex:2}},[`> ${t}-affix-wrapper-focused`]:{zIndex:2}}}}},Oke=e=>{const{componentCls:t}=e;return{[`${t}-out-of-range`]:{[`&, & input, & textarea, ${t}-show-count-suffix, ${t}-data-count`]:{color:e.colorError}}}},cle=kr([\"Input\",\"Shared\"],e=>{const t=Sr(e,Cm(e));return[Ike(t),Rke(t)]},Fm,{resetFont:!1}),dle=kr([\"Input\",\"Component\"],e=>{const t=Sr(e,Cm(e));return[Mke(t),Pke(t),Oke(t),Fg(t)]},Fm,{resetFont:!1}),z_=(e,t)=>{const{componentCls:r,controlHeight:n}=e,a=t?`${r}-${t}`:\"\",i=xie(e);return[{[`${r}-multiple${a}`]:{paddingBlock:i.containerPadding,paddingInlineStart:i.basePadding,minHeight:n,[`${r}-selection-item`]:{height:i.itemHeight,lineHeight:re(i.itemLineHeight)}}}]},Bke=e=>{const{componentCls:t,calc:r,lineWidth:n}=e,a=Sr(e,{fontHeight:e.fontSize,selectHeight:e.controlHeightSM,multipleSelectItemHeight:e.multipleItemHeightSM,borderRadius:e.borderRadiusSM,borderRadiusSM:e.borderRadiusXS,controlHeight:e.controlHeightSM}),i=Sr(e,{fontHeight:r(e.multipleItemHeightLG).sub(r(n).mul(2).equal()).equal(),fontSize:e.fontSizeLG,selectHeight:e.controlHeightLG,multipleSelectItemHeight:e.multipleItemHeightLG,borderRadius:e.borderRadiusLG,borderRadiusSM:e.borderRadius,controlHeight:e.controlHeightLG});return[z_(a,\"small\"),z_(e),z_(i,\"large\"),{[`${t}${t}-multiple`]:Object.assign(Object.assign({width:\"100%\",cursor:\"text\",[`${t}-selector`]:{flex:\"auto\",padding:0,position:\"relative\",\"&:after\":{margin:0},[`${t}-selection-placeholder`]:{position:\"absolute\",top:\"50%\",insetInlineStart:e.inputPaddingHorizontalBase,insetInlineEnd:0,transform:\"translateY(-50%)\",transition:`all ${e.motionDurationSlow}`,overflow:\"hidden\",whiteSpace:\"nowrap\",textOverflow:\"ellipsis\",flex:1,color:e.colorTextPlaceholder,pointerEvents:\"none\"}}},Cie(e)),{[`${t}-multiple-input`]:{width:0,height:0,border:0,visibility:\"hidden\",position:\"absolute\",zIndex:-1}})}]},Nke=e=>{const{pickerCellCls:t,pickerCellInnerCls:r,cellHeight:n,borderRadiusSM:a,motionDurationMid:i,cellHoverBg:o,lineWidth:l,lineType:s,colorPrimary:u,cellActiveWithRangeBg:c,colorTextLightSolid:d,colorTextDisabled:f,cellBgDisabled:h,colorFillSecondary:p}=e;return{\"&::before\":{position:\"absolute\",top:\"50%\",insetInlineStart:0,insetInlineEnd:0,zIndex:1,height:n,transform:\"translateY(-50%)\",content:'\"\"',pointerEvents:\"none\"},[r]:{position:\"relative\",zIndex:2,display:\"inline-block\",minWidth:n,height:n,lineHeight:re(n),borderRadius:a,transition:`background ${i}`},[`&:hover:not(${t}-in-view):not(${t}-disabled),\n &:hover:not(${t}-selected):not(${t}-range-start):not(${t}-range-end):not(${t}-disabled)`]:{[r]:{background:o}},[`&-in-view${t}-today ${r}`]:{\"&::before\":{position:\"absolute\",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:1,border:`${re(l)} ${s} ${u}`,borderRadius:a,content:'\"\"'}},[`&-in-view${t}-in-range,\n &-in-view${t}-range-start,\n &-in-view${t}-range-end`]:{position:\"relative\",[`&:not(${t}-disabled):before`]:{background:c}},[`&-in-view${t}-selected,\n &-in-view${t}-range-start,\n &-in-view${t}-range-end`]:{[`&:not(${t}-disabled) ${r}`]:{color:d,background:u},[`&${t}-disabled ${r}`]:{background:p}},[`&-in-view${t}-range-start:not(${t}-disabled):before`]:{insetInlineStart:\"50%\"},[`&-in-view${t}-range-end:not(${t}-disabled):before`]:{insetInlineEnd:\"50%\"},[`&-in-view${t}-range-start:not(${t}-range-end) ${r}`]:{borderStartStartRadius:a,borderEndStartRadius:a,borderStartEndRadius:0,borderEndEndRadius:0},[`&-in-view${t}-range-end:not(${t}-range-start) ${r}`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:a,borderEndEndRadius:a},\"&-disabled\":{color:f,cursor:\"not-allowed\",[r]:{background:\"transparent\"},\"&::before\":{background:h}},[`&-disabled${t}-today ${r}::before`]:{borderColor:f}}},$ke=e=>{const{componentCls:t,pickerCellCls:r,pickerCellInnerCls:n,pickerYearMonthCellWidth:a,pickerControlIconSize:i,cellWidth:o,paddingSM:l,paddingXS:s,paddingXXS:u,colorBgContainer:c,lineWidth:d,lineType:f,borderRadiusLG:h,colorPrimary:p,colorTextHeading:v,colorSplit:g,pickerControlIconBorderWidth:y,colorIcon:b,textHeight:x,motionDurationMid:F,colorIconHover:S,fontWeightStrong:E,cellHeight:w,pickerCellPaddingVertical:D,colorTextDisabled:A,colorText:_,fontSize:I,motionDurationSlow:M,withoutTimeCellHeight:T,pickerQuarterPanelContentHeight:k,borderRadiusSM:R,colorTextLightSolid:P,cellHoverBg:B,timeColumnHeight:N,timeColumnWidth:O,timeCellHeight:z,controlItemBgActive:W,marginXXS:L,pickerDatePanelPaddingHorizontal:j,pickerControlIconMargin:H}=e,V=e.calc(o).mul(7).add(e.calc(j).mul(2)).equal();return{[t]:{\"&-panel\":{display:\"inline-flex\",flexDirection:\"column\",textAlign:\"center\",background:c,borderRadius:h,outline:\"none\",\"&-focused\":{borderColor:p},\"&-rtl\":{[`${t}-prev-icon,\n ${t}-super-prev-icon`]:{transform:\"rotate(45deg)\"},[`${t}-next-icon,\n ${t}-super-next-icon`]:{transform:\"rotate(-135deg)\"},[`${t}-time-panel`]:{[`${t}-content`]:{direction:\"ltr\",\"> *\":{direction:\"rtl\"}}}}},\"&-decade-panel,\\n &-year-panel,\\n &-quarter-panel,\\n &-month-panel,\\n &-week-panel,\\n &-date-panel,\\n &-time-panel\":{display:\"flex\",flexDirection:\"column\",width:V},\"&-header\":{display:\"flex\",padding:`0 ${re(s)}`,color:v,borderBottom:`${re(d)} ${f} ${g}`,\"> *\":{flex:\"none\"},button:{padding:0,color:b,lineHeight:re(x),background:\"transparent\",border:0,cursor:\"pointer\",transition:`color ${F}`,fontSize:\"inherit\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",\"&:empty\":{display:\"none\"}},\"> button\":{minWidth:\"1.6em\",fontSize:I,\"&:hover\":{color:S},\"&:disabled\":{opacity:.25,pointerEvents:\"none\"}},\"&-view\":{flex:\"auto\",fontWeight:E,lineHeight:re(x),\"> button\":{color:\"inherit\",fontWeight:\"inherit\",verticalAlign:\"top\",\"&:not(:first-child)\":{marginInlineStart:s},\"&:hover\":{color:p}}}},\"&-prev-icon,\\n &-next-icon,\\n &-super-prev-icon,\\n &-super-next-icon\":{position:\"relative\",width:i,height:i,\"&::before\":{position:\"absolute\",top:0,insetInlineStart:0,width:i,height:i,border:\"0 solid currentcolor\",borderBlockStartWidth:y,borderInlineStartWidth:y,content:'\"\"'}},\"&-super-prev-icon,\\n &-super-next-icon\":{\"&::after\":{position:\"absolute\",top:H,insetInlineStart:H,display:\"inline-block\",width:i,height:i,border:\"0 solid currentcolor\",borderBlockStartWidth:y,borderInlineStartWidth:y,content:'\"\"'}},\"&-prev-icon, &-super-prev-icon\":{transform:\"rotate(-45deg)\"},\"&-next-icon, &-super-next-icon\":{transform:\"rotate(135deg)\"},\"&-content\":{width:\"100%\",tableLayout:\"fixed\",borderCollapse:\"collapse\",\"th, td\":{position:\"relative\",minWidth:w,fontWeight:\"normal\"},th:{height:e.calc(w).add(e.calc(D).mul(2)).equal(),color:_,verticalAlign:\"middle\"}},\"&-cell\":Object.assign({padding:`${re(D)} 0`,color:A,cursor:\"pointer\",\"&-in-view\":{color:_}},Nke(e)),\"&-decade-panel,\\n &-year-panel,\\n &-quarter-panel,\\n &-month-panel\":{[`${t}-content`]:{height:e.calc(T).mul(4).equal()},[n]:{padding:`0 ${re(s)}`}},\"&-quarter-panel\":{[`${t}-content`]:{height:k}},\"&-decade-panel\":{[n]:{padding:`0 ${re(e.calc(s).div(2).equal())}`},[`${t}-cell::before`]:{display:\"none\"}},\"&-year-panel,\\n &-quarter-panel,\\n &-month-panel\":{[`${t}-body`]:{padding:`0 ${re(s)}`},[n]:{width:a}},\"&-date-panel\":{[`${t}-body`]:{padding:`${re(s)} ${re(j)}`},[`${t}-content th`]:{boxSizing:\"border-box\",padding:0}},\"&-week-panel-row\":{td:{\"&:before\":{transition:`background ${F}`},\"&:first-child:before\":{borderStartStartRadius:R,borderEndStartRadius:R},\"&:last-child:before\":{borderStartEndRadius:R,borderEndEndRadius:R}},\"&:hover td:before\":{background:B},\"&-range-start td, &-range-end td, &-selected td, &-hover td\":{[`&${r}`]:{\"&:before\":{background:p},[`&${t}-cell-week`]:{color:new $r(P).setA(.5).toHexString()},[n]:{color:P}}},\"&-range-hover td:before\":{background:W}},\"&-week-panel, &-date-panel-show-week\":{[`${t}-body`]:{padding:`${re(s)} ${re(l)}`},[`${t}-content th`]:{width:\"auto\"}},\"&-datetime-panel\":{display:\"flex\",[`${t}-time-panel`]:{borderInlineStart:`${re(d)} ${f} ${g}`},[`${t}-date-panel,\n ${t}-time-panel`]:{transition:`opacity ${M}`},\"&-active\":{[`${t}-date-panel,\n ${t}-time-panel`]:{opacity:.3,\"&-active\":{opacity:1}}}},\"&-time-panel\":{width:\"auto\",minWidth:\"auto\",[`${t}-content`]:{display:\"flex\",flex:\"auto\",height:N},\"&-column\":{flex:\"1 0 auto\",width:O,margin:`${re(u)} 0`,padding:0,overflowY:\"hidden\",textAlign:\"start\",listStyle:\"none\",transition:`background ${F}`,overflowX:\"hidden\",\"&::-webkit-scrollbar\":{width:8,backgroundColor:\"transparent\"},\"&::-webkit-scrollbar-thumb\":{backgroundColor:e.colorTextTertiary,borderRadius:e.borderRadiusSM},\"&\":{scrollbarWidth:\"thin\",scrollbarColor:`${e.colorTextTertiary} transparent`},\"&::after\":{display:\"block\",height:`calc(100% - ${re(z)})`,content:'\"\"'},\"&:not(:first-child)\":{borderInlineStart:`${re(d)} ${f} ${g}`},\"&-active\":{background:new $r(W).setA(.2).toHexString()},\"&:hover\":{overflowY:\"auto\"},\"> li\":{margin:0,padding:0,[`&${t}-time-panel-cell`]:{marginInline:L,[`${t}-time-panel-cell-inner`]:{display:\"block\",width:e.calc(O).sub(e.calc(L).mul(2)).equal(),height:z,margin:0,paddingBlock:0,paddingInlineEnd:0,paddingInlineStart:e.calc(O).sub(z).div(2).equal(),color:_,lineHeight:re(z),borderRadius:R,cursor:\"pointer\",transition:`background ${F}`,\"&:hover\":{background:B}},\"&-selected\":{[`${t}-time-panel-cell-inner`]:{background:W}},\"&-disabled\":{[`${t}-time-panel-cell-inner`]:{color:A,background:\"transparent\",cursor:\"not-allowed\"}}}}}}}}},Lke=e=>{const{componentCls:t,textHeight:r,lineWidth:n,paddingSM:a,antCls:i,colorPrimary:o,cellActiveWithRangeBg:l,colorPrimaryBorder:s,lineType:u,colorSplit:c}=e;return{[`${t}-dropdown`]:{[`${t}-footer`]:{borderTop:`${re(n)} ${u} ${c}`,\"&-extra\":{padding:`0 ${re(a)}`,lineHeight:re(e.calc(r).sub(e.calc(n).mul(2)).equal()),textAlign:\"start\",\"&:not(:last-child)\":{borderBottom:`${re(n)} ${u} ${c}`}}},[`${t}-panels + ${t}-footer ${t}-ranges`]:{justifyContent:\"space-between\"},[`${t}-ranges`]:{marginBlock:0,paddingInline:re(a),overflow:\"hidden\",textAlign:\"start\",listStyle:\"none\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",\"> li\":{lineHeight:re(e.calc(r).sub(e.calc(n).mul(2)).equal()),display:\"inline-block\"},[`${t}-now-btn-disabled`]:{pointerEvents:\"none\",color:e.colorTextDisabled},[`${t}-preset > ${i}-tag-blue`]:{color:o,background:l,borderColor:s,cursor:\"pointer\"},[`${t}-ok`]:{paddingBlock:e.calc(n).mul(2).equal(),marginInlineStart:\"auto\"}}}}},jke=e=>{const{componentCls:t,controlHeightLG:r,paddingXXS:n,padding:a}=e;return{pickerCellCls:`${t}-cell`,pickerCellInnerCls:`${t}-cell-inner`,pickerYearMonthCellWidth:e.calc(r).mul(1.5).equal(),pickerQuarterPanelContentHeight:e.calc(r).mul(1.4).equal(),pickerCellPaddingVertical:e.calc(n).add(e.calc(n).div(2)).equal(),pickerCellBorderGap:2,pickerControlIconSize:7,pickerControlIconMargin:4,pickerControlIconBorderWidth:1.5,pickerDatePanelPaddingHorizontal:e.calc(a).add(e.calc(n).div(2)).equal()}},zke=e=>{const{colorBgContainerDisabled:t,controlHeight:r,controlHeightSM:n,controlHeightLG:a,paddingXXS:i,lineWidth:o}=e,l=i*2,s=o*2,u=Math.min(r-l,r-s),c=Math.min(n-l,n-s),d=Math.min(a-l,a-s);return{INTERNAL_FIXED_ITEM_MARGIN:Math.floor(i/2),cellHoverBg:e.controlItemBgHover,cellActiveWithRangeBg:e.controlItemBgActive,cellHoverWithRangeBg:new $r(e.colorPrimary).lighten(35).toHexString(),cellRangeBorderColor:new $r(e.colorPrimary).lighten(20).toHexString(),cellBgDisabled:t,timeColumnWidth:a*1.4,timeColumnHeight:28*8,timeCellHeight:28,cellWidth:n*1.5,cellHeight:n,textHeight:a,withoutTimeCellHeight:a*1.65,multipleItemBg:e.colorFillSecondary,multipleItemBorderColor:\"transparent\",multipleItemHeight:u,multipleItemHeightSM:c,multipleItemHeightLG:d,multipleSelectorBgDisabled:t,multipleItemColorDisabled:e.colorTextDisabled,multipleItemBorderColorDisabled:\"transparent\"}},Hke=e=>Object.assign(Object.assign(Object.assign(Object.assign({},Fm(e)),zke(e)),C6(e)),{presetsWidth:120,presetsMaxWidth:200,zIndexPopup:e.zIndexPopupBase+50}),Vke=e=>{const{componentCls:t}=e;return{[t]:[Object.assign(Object.assign(Object.assign(Object.assign({},bO(e)),FO(e)),CO(e)),xO(e)),{\"&-outlined\":{[`&${t}-multiple ${t}-selection-item`]:{background:e.multipleItemBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`}},\"&-filled\":{[`&${t}-multiple ${t}-selection-item`]:{background:e.colorBgContainer,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`}},\"&-borderless\":{[`&${t}-multiple ${t}-selection-item`]:{background:e.multipleItemBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`}},\"&-underlined\":{[`&${t}-multiple ${t}-selection-item`]:{background:e.multipleItemBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.multipleItemBorderColor}`}}}]}},H_=(e,t)=>({padding:`${re(e)} ${re(t)}`}),Wke=e=>{const{componentCls:t,colorError:r,colorWarning:n}=e;return{[`${t}:not(${t}-disabled):not([disabled])`]:{[`&${t}-status-error`]:{[`${t}-active-bar`]:{background:r}},[`&${t}-status-warning`]:{[`${t}-active-bar`]:{background:n}}}}},Gke=e=>{var t;const{componentCls:r,antCls:n,paddingInline:a,lineWidth:i,lineType:o,colorBorder:l,borderRadius:s,motionDurationMid:u,colorTextDisabled:c,colorTextPlaceholder:d,colorTextQuaternary:f,fontSizeLG:h,inputFontSizeLG:p,fontSizeSM:v,inputFontSizeSM:g,controlHeightSM:y,paddingInlineSM:b,paddingXS:x,marginXS:F,colorIcon:S,lineWidthBold:E,colorPrimary:w,motionDurationSlow:D,zIndexPopup:A,paddingXXS:_,sizePopupArrow:I,colorBgElevated:M,borderRadiusLG:T,boxShadowSecondary:k,borderRadiusSM:R,colorSplit:P,cellHoverBg:B,presetsWidth:N,presetsMaxWidth:O,boxShadowPopoverArrow:z,fontHeight:W,lineHeightLG:L}=e;return[{[r]:Object.assign(Object.assign(Object.assign({},Hr(e)),H_(e.paddingBlock,e.paddingInline)),{position:\"relative\",display:\"inline-flex\",alignItems:\"center\",lineHeight:1,borderRadius:s,transition:`border ${u}, box-shadow ${u}, background ${u}`,[`${r}-prefix`]:{flex:\"0 0 auto\",marginInlineEnd:e.inputAffixPadding},[`${r}-input`]:{position:\"relative\",display:\"inline-flex\",alignItems:\"center\",width:\"100%\",\"> input\":Object.assign(Object.assign({position:\"relative\",display:\"inline-block\",width:\"100%\",color:\"inherit\",fontSize:(t=e.inputFontSize)!==null&&t!==void 0?t:e.fontSize,lineHeight:e.lineHeight,transition:`all ${u}`},SO(d)),{flex:\"auto\",minWidth:1,height:\"auto\",padding:0,background:\"transparent\",border:0,fontFamily:\"inherit\",\"&:focus\":{boxShadow:\"none\",outline:0},\"&[disabled]\":{background:\"transparent\",color:c,cursor:\"not-allowed\"}}),\"&-placeholder\":{\"> input\":{color:d}}},\"&-large\":Object.assign(Object.assign({},H_(e.paddingBlockLG,e.paddingInlineLG)),{[`${r}-input > input`]:{fontSize:p??h,lineHeight:L}}),\"&-small\":Object.assign(Object.assign({},H_(e.paddingBlockSM,e.paddingInlineSM)),{[`${r}-input > input`]:{fontSize:g??v}}),[`${r}-suffix`]:{display:\"flex\",flex:\"none\",alignSelf:\"center\",marginInlineStart:e.calc(x).div(2).equal(),color:f,lineHeight:1,pointerEvents:\"none\",transition:`opacity ${u}, color ${u}`,\"> *\":{verticalAlign:\"top\",\"&:not(:last-child)\":{marginInlineEnd:F}}},[`${r}-clear`]:{position:\"absolute\",top:\"50%\",insetInlineEnd:0,color:f,lineHeight:1,transform:\"translateY(-50%)\",cursor:\"pointer\",opacity:0,transition:`opacity ${u}, color ${u}`,\"> *\":{verticalAlign:\"top\"},\"&:hover\":{color:S}},\"&:hover\":{[`${r}-clear`]:{opacity:1},[`${r}-suffix:not(:last-child)`]:{opacity:0}},[`${r}-separator`]:{position:\"relative\",display:\"inline-block\",width:\"1em\",height:h,color:f,fontSize:h,verticalAlign:\"top\",cursor:\"default\",[`${r}-focused &`]:{color:S},[`${r}-range-separator &`]:{[`${r}-disabled &`]:{cursor:\"not-allowed\"}}},\"&-range\":{position:\"relative\",display:\"inline-flex\",[`${r}-active-bar`]:{bottom:e.calc(i).mul(-1).equal(),height:E,background:w,opacity:0,transition:`all ${D} ease-out`,pointerEvents:\"none\"},[`&${r}-focused`]:{[`${r}-active-bar`]:{opacity:1}},[`${r}-range-separator`]:{alignItems:\"center\",padding:`0 ${re(x)}`,lineHeight:1}},\"&-range, &-multiple\":{[`${r}-clear`]:{insetInlineEnd:a},[`&${r}-small`]:{[`${r}-clear`]:{insetInlineEnd:b}}},\"&-dropdown\":Object.assign(Object.assign(Object.assign({},Hr(e)),$ke(e)),{pointerEvents:\"none\",position:\"absolute\",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:A,[`&${r}-dropdown-hidden`]:{display:\"none\"},\"&-rtl\":{direction:\"rtl\"},[`&${r}-dropdown-placement-bottomLeft,\n &${r}-dropdown-placement-bottomRight`]:{[`${r}-range-arrow`]:{top:0,display:\"block\",transform:\"translateY(-100%)\"}},[`&${r}-dropdown-placement-topLeft,\n &${r}-dropdown-placement-topRight`]:{[`${r}-range-arrow`]:{bottom:0,display:\"block\",transform:\"translateY(100%) rotate(180deg)\"}},[`&${n}-slide-up-appear, &${n}-slide-up-enter`]:{[`${r}-range-arrow${r}-range-arrow`]:{transition:\"none\"}},[`&${n}-slide-up-enter${n}-slide-up-enter-active${r}-dropdown-placement-topLeft,\n &${n}-slide-up-enter${n}-slide-up-enter-active${r}-dropdown-placement-topRight,\n &${n}-slide-up-appear${n}-slide-up-appear-active${r}-dropdown-placement-topLeft,\n &${n}-slide-up-appear${n}-slide-up-appear-active${r}-dropdown-placement-topRight`]:{animationName:l6},[`&${n}-slide-up-enter${n}-slide-up-enter-active${r}-dropdown-placement-bottomLeft,\n &${n}-slide-up-enter${n}-slide-up-enter-active${r}-dropdown-placement-bottomRight,\n &${n}-slide-up-appear${n}-slide-up-appear-active${r}-dropdown-placement-bottomLeft,\n &${n}-slide-up-appear${n}-slide-up-appear-active${r}-dropdown-placement-bottomRight`]:{animationName:i6},[`&${n}-slide-up-leave ${r}-panel-container`]:{pointerEvents:\"none\"},[`&${n}-slide-up-leave${n}-slide-up-leave-active${r}-dropdown-placement-topLeft,\n &${n}-slide-up-leave${n}-slide-up-leave-active${r}-dropdown-placement-topRight`]:{animationName:s6},[`&${n}-slide-up-leave${n}-slide-up-leave-active${r}-dropdown-placement-bottomLeft,\n &${n}-slide-up-leave${n}-slide-up-leave-active${r}-dropdown-placement-bottomRight`]:{animationName:o6},[`${r}-panel > ${r}-time-panel`]:{paddingTop:_},[`${r}-range-wrapper`]:{display:\"flex\",position:\"relative\"},[`${r}-range-arrow`]:Object.assign(Object.assign({position:\"absolute\",zIndex:1,display:\"none\",paddingInline:e.calc(a).mul(1.5).equal(),boxSizing:\"content-box\",transition:`all ${D} ease-out`},Rie(e,M,z)),{\"&:before\":{insetInlineStart:e.calc(a).mul(1.5).equal()}}),[`${r}-panel-container`]:{overflow:\"hidden\",verticalAlign:\"top\",background:M,borderRadius:T,boxShadow:k,transition:`margin ${D}`,display:\"inline-block\",pointerEvents:\"auto\",[`${r}-panel-layout`]:{display:\"flex\",flexWrap:\"nowrap\",alignItems:\"stretch\"},[`${r}-presets`]:{display:\"flex\",flexDirection:\"column\",minWidth:N,maxWidth:O,ul:{height:0,flex:\"auto\",listStyle:\"none\",overflow:\"auto\",margin:0,padding:x,borderInlineEnd:`${re(i)} ${o} ${P}`,li:Object.assign(Object.assign({},$l),{borderRadius:R,paddingInline:x,paddingBlock:e.calc(y).sub(W).div(2).equal(),cursor:\"pointer\",transition:`all ${D}`,\"+ li\":{marginTop:F},\"&:hover\":{background:B}})}},[`${r}-panels`]:{display:\"inline-flex\",flexWrap:\"nowrap\",\"&:last-child\":{[`${r}-panel`]:{borderWidth:0}}},[`${r}-panel`]:{verticalAlign:\"top\",background:\"transparent\",borderRadius:0,borderWidth:0,[`${r}-content, table`]:{textAlign:\"center\"},\"&-focused\":{borderColor:l}}}}),\"&-dropdown-range\":{padding:`${re(e.calc(I).mul(2).div(3).equal())} 0`,\"&-hidden\":{display:\"none\"}},\"&-rtl\":{direction:\"rtl\",[`${r}-separator`]:{transform:\"scale(-1, 1)\"},[`${r}-footer`]:{\"&-extra\":{direction:\"rtl\"}}}})},dc(e,\"slide-up\"),dc(e,\"slide-down\"),Y0(e,\"move-up\"),Y0(e,\"move-down\")]},fle=kr(\"DatePicker\",e=>{const t=Sr(Cm(e),jke(e),{inputPaddingHorizontalBase:e.calc(e.paddingSM).sub(1).equal(),multipleSelectItemHeight:e.multipleItemHeight,selectHeight:e.controlHeight});return[Lke(t),Gke(t),Vke(t),Wke(t),Bke(t),Fg(e,{focusElCls:`${e.componentCls}-focused`})]},Hke);var Uke={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z\"}},{tag:\"path\",attrs:{d:\"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z\"}}]},name:\"plus\",theme:\"outlined\"},Kke=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Uke}))},Do=m.forwardRef(Kke);const $6=m.createContext(null);var Yke=function(t){var r=t.activeTabOffset,n=t.horizontal,a=t.rtl,i=t.indicator,o=i===void 0?{}:i,l=o.size,s=o.align,u=s===void 0?\"center\":s,c=m.useState(),d=ve(c,2),f=d[0],h=d[1],p=m.useRef(),v=le.useCallback(function(y){return typeof l==\"function\"?l(y):typeof l==\"number\"?l:y},[l]);function g(){Tr.cancel(p.current)}return m.useEffect(function(){var y={};if(r)if(n){y.width=v(r.width);var b=a?\"right\":\"left\";u===\"start\"&&(y[b]=r[b]),u===\"center\"&&(y[b]=r[b]+r.width/2,y.transform=a?\"translateX(50%)\":\"translateX(-50%)\"),u===\"end\"&&(y[b]=r[b]+r.width,y.transform=\"translateX(-100%)\")}else y.height=v(r.height),u===\"start\"&&(y.top=r.top),u===\"center\"&&(y.top=r.top+r.height/2,y.transform=\"translateY(-50%)\"),u===\"end\"&&(y.top=r.top+r.height,y.transform=\"translateY(-100%)\");return g(),p.current=Tr(function(){var x=f&&y&&Object.keys(y).every(function(F){var S=y[F],E=f[F];return typeof S==\"number\"&&typeof E==\"number\"?Math.round(S)===Math.round(E):S===E});x||h(y)}),g},[JSON.stringify(r),n,a,u,v]),{style:f}},eV={width:0,height:0,left:0,top:0};function qke(e,t,r){return m.useMemo(function(){for(var n,a=new Map,i=t.get((n=e[0])===null||n===void 0?void 0:n.key)||eV,o=i.left+i.width,l=0;l<e.length;l+=1){var s=e[l].key,u=t.get(s);if(!u){var c;u=t.get((c=e[l-1])===null||c===void 0?void 0:c.key)||eV}var d=a.get(s)||ae({},u);d.right=o-d.left-d.width,a.set(s,d)}return a},[e.map(function(n){return n.key}).join(\"_\"),t,r])}function tV(e,t){var r=m.useRef(e),n=m.useState({}),a=ve(n,2),i=a[1];function o(l){var s=typeof l==\"function\"?l(r.current):l;s!==r.current&&t(s,r.current),r.current=s,i({})}return[r.current,o]}var Xke=.1,rV=.01,uw=20,nV=Math.pow(.995,uw);function Jke(e,t){var r=m.useState(),n=ve(r,2),a=n[0],i=n[1],o=m.useState(0),l=ve(o,2),s=l[0],u=l[1],c=m.useState(0),d=ve(c,2),f=d[0],h=d[1],p=m.useState(),v=ve(p,2),g=v[0],y=v[1],b=m.useRef();function x(A){var _=A.touches[0],I=_.screenX,M=_.screenY;i({x:I,y:M}),window.clearInterval(b.current)}function F(A){if(a){var _=A.touches[0],I=_.screenX,M=_.screenY;i({x:I,y:M});var T=I-a.x,k=M-a.y;t(T,k);var R=Date.now();u(R),h(R-s),y({x:T,y:k})}}function S(){if(a&&(i(null),y(null),g)){var A=g.x/f,_=g.y/f,I=Math.abs(A),M=Math.abs(_);if(Math.max(I,M)<Xke)return;var T=A,k=_;b.current=window.setInterval(function(){if(Math.abs(T)<rV&&Math.abs(k)<rV){window.clearInterval(b.current);return}T*=nV,k*=nV,t(T*uw,k*uw)},uw)}}var E=m.useRef();function w(A){var _=A.deltaX,I=A.deltaY,M=0,T=Math.abs(_),k=Math.abs(I);T===k?M=E.current===\"x\"?_:I:T>k?(M=_,E.current=\"x\"):(M=I,E.current=\"y\"),t(-M,-M)&&A.preventDefault()}var D=m.useRef(null);D.current={onTouchStart:x,onTouchMove:F,onTouchEnd:S,onWheel:w},m.useEffect(function(){function A(T){D.current.onTouchStart(T)}function _(T){D.current.onTouchMove(T)}function I(T){D.current.onTouchEnd(T)}function M(T){D.current.onWheel(T)}return document.addEventListener(\"touchmove\",_,{passive:!1}),document.addEventListener(\"touchend\",I,{passive:!0}),e.current.addEventListener(\"touchstart\",A,{passive:!0}),e.current.addEventListener(\"wheel\",M,{passive:!1}),function(){document.removeEventListener(\"touchmove\",_),document.removeEventListener(\"touchend\",I)}},[])}function hle(e){var t=m.useState(0),r=ve(t,2),n=r[0],a=r[1],i=m.useRef(0),o=m.useRef();return o.current=e,Fp(function(){var l;(l=o.current)===null||l===void 0||l.call(o)},[n]),function(){i.current===n&&(i.current+=1,a(i.current))}}function Zke(e){var t=m.useRef([]),r=m.useState({}),n=ve(r,2),a=n[1],i=m.useRef(typeof e==\"function\"?e():e),o=hle(function(){var s=i.current;t.current.forEach(function(u){s=u(s)}),t.current=[],i.current=s,a({})});function l(s){t.current.push(s),o()}return[i.current,l]}var aV={width:0,height:0,left:0,top:0,right:0};function Qke(e,t,r,n,a,i,o){var l=o.tabs,s=o.tabPosition,u=o.rtl,c,d,f;return[\"top\",\"bottom\"].includes(s)?(c=\"width\",d=u?\"right\":\"left\",f=Math.abs(r)):(c=\"height\",d=\"top\",f=-r),m.useMemo(function(){if(!l.length)return[0,0];for(var h=l.length,p=h,v=0;v<h;v+=1){var g=e.get(l[v].key)||aV;if(Math.floor(g[d]+g[c])>Math.floor(f+t)){p=v-1;break}}for(var y=0,b=h-1;b>=0;b-=1){var x=e.get(l[b].key)||aV;if(x[d]<f){y=b+1;break}}return y>p?[0,-1]:[y,p]},[e,t,n,a,i,f,s,l.map(function(h){return h.key}).join(\"_\"),u])}function iV(e){var t;return e instanceof Map?(t={},e.forEach(function(r,n){t[n]=r})):t=e,JSON.stringify(t)}var e8e=\"TABS_DQ\";function ple(e){return String(e).replace(/\"/g,e8e)}function EO(e,t,r,n){return!(!r||n||e===!1||e===void 0&&(t===!1||t===null))}var mle=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.editable,a=e.locale,i=e.style;return!n||n.showAdd===!1?null:m.createElement(\"button\",{ref:t,type:\"button\",className:\"\".concat(r,\"-nav-add\"),style:i,\"aria-label\":(a==null?void 0:a.addAriaLabel)||\"Add tab\",onClick:function(l){n.onEdit(\"add\",{event:l})}},n.addIcon||\"+\")}),oV=m.forwardRef(function(e,t){var r=e.position,n=e.prefixCls,a=e.extra;if(!a)return null;var i,o={};return Nt(a)===\"object\"&&!m.isValidElement(a)?o=a:o.right=a,r===\"right\"&&(i=o.right),r===\"left\"&&(i=o.left),i?m.createElement(\"div\",{className:\"\".concat(n,\"-extra-content\"),ref:t},i):null}),t8e=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.id,a=e.tabs,i=e.locale,o=e.mobile,l=e.more,s=l===void 0?{}:l,u=e.style,c=e.className,d=e.editable,f=e.tabBarGutter,h=e.rtl,p=e.removeAriaLabel,v=e.onTabClick,g=e.getPopupContainer,y=e.popupClassName,b=m.useState(!1),x=ve(b,2),F=x[0],S=x[1],E=m.useState(null),w=ve(E,2),D=w[0],A=w[1],_=s.icon,I=_===void 0?\"More\":_,M=\"\".concat(n,\"-more-popup\"),T=\"\".concat(r,\"-dropdown\"),k=D!==null?\"\".concat(M,\"-\").concat(D):null,R=i==null?void 0:i.dropdownAriaLabel;function P(j,H){j.preventDefault(),j.stopPropagation(),d.onEdit(\"remove\",{key:H,event:j})}var B=m.createElement(Ag,{onClick:function(H){var V=H.key,U=H.domEvent;v(V,U),S(!1)},prefixCls:\"\".concat(T,\"-menu\"),id:M,tabIndex:-1,role:\"listbox\",\"aria-activedescendant\":k,selectedKeys:[D],\"aria-label\":R!==void 0?R:\"expanded dropdown\"},a.map(function(j){var H=j.closable,V=j.disabled,U=j.closeIcon,Q=j.key,K=j.label,Y=EO(H,U,d,V);return m.createElement(xx,{key:Q,id:\"\".concat(M,\"-\").concat(Q),role:\"option\",\"aria-controls\":n&&\"\".concat(n,\"-panel-\").concat(Q),disabled:V},m.createElement(\"span\",null,K),Y&&m.createElement(\"button\",{type:\"button\",\"aria-label\":p||\"remove\",tabIndex:0,className:\"\".concat(T,\"-menu-item-remove\"),onClick:function(J){J.stopPropagation(),P(J,Q)}},U||d.removeIcon||\"×\"))}));function N(j){for(var H=a.filter(function(Y){return!Y.disabled}),V=H.findIndex(function(Y){return Y.key===D})||0,U=H.length,Q=0;Q<U;Q+=1){V=(V+j+U)%U;var K=H[V];if(!K.disabled){A(K.key);return}}}function O(j){var H=j.which;if(!F){[It.DOWN,It.SPACE,It.ENTER].includes(H)&&(S(!0),j.preventDefault());return}switch(H){case It.UP:N(-1),j.preventDefault();break;case It.DOWN:N(1),j.preventDefault();break;case It.ESC:S(!1);break;case It.SPACE:case It.ENTER:D!==null&&v(D,j);break}}m.useEffect(function(){var j=document.getElementById(k);j&&j.scrollIntoView&&j.scrollIntoView(!1)},[D]),m.useEffect(function(){F||A(null)},[F]);var z=Z({},h?\"marginRight\":\"marginLeft\",f);a.length||(z.visibility=\"hidden\",z.order=1);var W=ne(Z({},\"\".concat(T,\"-rtl\"),h)),L=o?null:m.createElement(Hie,Ce({prefixCls:T,overlay:B,visible:a.length?F:!1,onVisibleChange:S,overlayClassName:ne(W,y),mouseEnterDelay:.1,mouseLeaveDelay:.1,getPopupContainer:g},s),m.createElement(\"button\",{type:\"button\",className:\"\".concat(r,\"-nav-more\"),style:z,\"aria-haspopup\":\"listbox\",\"aria-controls\":M,id:\"\".concat(n,\"-more\"),\"aria-expanded\":F,onKeyDown:O},I));return m.createElement(\"div\",{className:ne(\"\".concat(r,\"-nav-operations\"),c),style:u,ref:t},L,m.createElement(mle,{prefixCls:r,locale:i,editable:d}))});const r8e=m.memo(t8e,function(e,t){return t.tabMoving});var n8e=function(t){var r=t.prefixCls,n=t.id,a=t.active,i=t.focus,o=t.tab,l=o.key,s=o.label,u=o.disabled,c=o.closeIcon,d=o.icon,f=t.closable,h=t.renderWrapper,p=t.removeAriaLabel,v=t.editable,g=t.onClick,y=t.onFocus,b=t.onBlur,x=t.onKeyDown,F=t.onMouseDown,S=t.onMouseUp,E=t.style,w=t.tabCount,D=t.currentPosition,A=\"\".concat(r,\"-tab\"),_=EO(f,c,v,u);function I(P){u||g(P)}function M(P){P.preventDefault(),P.stopPropagation(),v.onEdit(\"remove\",{key:l,event:P})}var T=m.useMemo(function(){return d&&typeof s==\"string\"?m.createElement(\"span\",null,s):s},[s,d]),k=m.useRef(null);m.useEffect(function(){i&&k.current&&k.current.focus()},[i]);var R=m.createElement(\"div\",{key:l,\"data-node-key\":ple(l),className:ne(A,Z(Z(Z(Z({},\"\".concat(A,\"-with-remove\"),_),\"\".concat(A,\"-active\"),a),\"\".concat(A,\"-disabled\"),u),\"\".concat(A,\"-focus\"),i)),style:E,onClick:I},m.createElement(\"div\",{ref:k,role:\"tab\",\"aria-selected\":a,id:n&&\"\".concat(n,\"-tab-\").concat(l),className:\"\".concat(A,\"-btn\"),\"aria-controls\":n&&\"\".concat(n,\"-panel-\").concat(l),\"aria-disabled\":u,tabIndex:u?null:a?0:-1,onClick:function(B){B.stopPropagation(),I(B)},onKeyDown:x,onMouseDown:F,onMouseUp:S,onFocus:y,onBlur:b},i&&m.createElement(\"div\",{\"aria-live\":\"polite\",style:{width:0,height:0,position:\"absolute\",overflow:\"hidden\",opacity:0}},\"Tab \".concat(D,\" of \").concat(w)),d&&m.createElement(\"span\",{className:\"\".concat(A,\"-icon\")},d),s&&T),_&&m.createElement(\"button\",{type:\"button\",role:\"tab\",\"aria-label\":p||\"remove\",tabIndex:a?0:-1,className:\"\".concat(A,\"-remove\"),onClick:function(B){B.stopPropagation(),M(B)}},c||v.removeIcon||\"×\"));return h?h(R):R},a8e=function(t,r){var n=t.offsetWidth,a=t.offsetHeight,i=t.offsetTop,o=t.offsetLeft,l=t.getBoundingClientRect(),s=l.width,u=l.height,c=l.left,d=l.top;return Math.abs(s-n)<1?[s,u,c-r.left,d-r.top]:[n,a,o,i]},tv=function(t){var r=t.current||{},n=r.offsetWidth,a=n===void 0?0:n,i=r.offsetHeight,o=i===void 0?0:i;if(t.current){var l=t.current.getBoundingClientRect(),s=l.width,u=l.height;if(Math.abs(s-a)<1)return[s,u]}return[a,o]},tF=function(t,r){return t[r?0:1]},lV=m.forwardRef(function(e,t){var r=e.className,n=e.style,a=e.id,i=e.animated,o=e.activeKey,l=e.rtl,s=e.extra,u=e.editable,c=e.locale,d=e.tabPosition,f=e.tabBarGutter,h=e.children,p=e.onTabClick,v=e.onTabScroll,g=e.indicator,y=m.useContext($6),b=y.prefixCls,x=y.tabs,F=m.useRef(null),S=m.useRef(null),E=m.useRef(null),w=m.useRef(null),D=m.useRef(null),A=m.useRef(null),_=m.useRef(null),I=d===\"top\"||d===\"bottom\",M=tV(0,function(ft,yt){I&&v&&v({direction:ft>yt?\"left\":\"right\"})}),T=ve(M,2),k=T[0],R=T[1],P=tV(0,function(ft,yt){!I&&v&&v({direction:ft>yt?\"top\":\"bottom\"})}),B=ve(P,2),N=B[0],O=B[1],z=m.useState([0,0]),W=ve(z,2),L=W[0],j=W[1],H=m.useState([0,0]),V=ve(H,2),U=V[0],Q=V[1],K=m.useState([0,0]),Y=ve(K,2),ee=Y[0],J=Y[1],X=m.useState([0,0]),ce=ve(X,2),oe=ce[0],ue=ce[1],ie=Zke(new Map),fe=ve(ie,2),xe=fe[0],Ee=fe[1],De=qke(x,xe,U[0]),ye=tF(L,I),we=tF(U,I),Fe=tF(ee,I),me=tF(oe,I),Me=Math.floor(ye)<Math.floor(we+Fe),je=Me?ye-me:ye-Fe,lt=\"\".concat(b,\"-nav-operations-hidden\"),tt=0,rt=0;I&&l?(tt=0,rt=Math.max(0,we-je)):(tt=Math.min(0,je-we),rt=0);function dt(ft){return ft<tt?tt:ft>rt?rt:ft}var Ve=m.useRef(null),Ie=m.useState(),Je=ve(Ie,2),Pe=Je[0],Ge=Je[1];function Ae(){Ge(Date.now())}function _e(){Ve.current&&clearTimeout(Ve.current)}Jke(w,function(ft,yt){function zt(vr,kt){vr(function(Yt){var xr=dt(Yt+kt);return xr})}return Me?(I?zt(R,ft):zt(O,yt),_e(),Ae(),!0):!1}),m.useEffect(function(){return _e(),Pe&&(Ve.current=setTimeout(function(){Ge(0)},100)),_e},[Pe]);var $e=Qke(De,je,I?k:N,we,Fe,me,ae(ae({},e),{},{tabs:x})),Ke=ve($e,2),pt=Ke[0],_t=Ke[1],ht=Pr(function(){var ft=arguments.length>0&&arguments[0]!==void 0?arguments[0]:o,yt=De.get(ft)||{width:0,height:0,left:0,right:0,top:0};if(I){var zt=k;l?yt.right<k?zt=yt.right:yt.right+yt.width>k+je&&(zt=yt.right+yt.width-je):yt.left<-k?zt=-yt.left:yt.left+yt.width>-k+je&&(zt=-(yt.left+yt.width-je)),O(0),R(dt(zt))}else{var vr=N;yt.top<-N?vr=-yt.top:yt.top+yt.height>-N+je&&(vr=-(yt.top+yt.height-je)),R(0),O(dt(vr))}}),gt=m.useState(),Et=ve(gt,2),xt=Et[0],Dt=Et[1],ur=m.useState(!1),mr=ve(ur,2),Tt=mr[0],jt=mr[1],Lt=x.filter(function(ft){return!ft.disabled}).map(function(ft){return ft.key}),mt=function(yt){var zt=Lt.indexOf(xt||o),vr=Lt.length,kt=(zt+yt+vr)%vr,Yt=Lt[kt];Dt(Yt)},it=function(yt,zt){var vr=Lt.indexOf(yt),kt=x.find(function(xr){return xr.key===yt}),Yt=EO(kt==null?void 0:kt.closable,kt==null?void 0:kt.closeIcon,u,kt==null?void 0:kt.disabled);Yt&&(zt.preventDefault(),zt.stopPropagation(),u.onEdit(\"remove\",{key:yt,event:zt}),vr===Lt.length-1?mt(-1):mt(1))},st=function(yt,zt){jt(!0),zt.button===1&&it(yt,zt)},Ct=function(yt){var zt=yt.code,vr=l&&I,kt=Lt[0],Yt=Lt[Lt.length-1];switch(zt){case\"ArrowLeft\":{I&&mt(vr?1:-1);break}case\"ArrowRight\":{I&&mt(vr?-1:1);break}case\"ArrowUp\":{yt.preventDefault(),I||mt(-1);break}case\"ArrowDown\":{yt.preventDefault(),I||mt(1);break}case\"Home\":{yt.preventDefault(),Dt(kt);break}case\"End\":{yt.preventDefault(),Dt(Yt);break}case\"Enter\":case\"Space\":{yt.preventDefault(),p(xt??o,yt);break}case\"Backspace\":case\"Delete\":{it(xt,yt);break}}},te={};I?te[l?\"marginRight\":\"marginLeft\"]=f:te.marginTop=f;var pe=x.map(function(ft,yt){var zt=ft.key;return m.createElement(n8e,{id:a,prefixCls:b,key:zt,tab:ft,style:yt===0?void 0:te,closable:ft.closable,editable:u,active:zt===o,focus:zt===xt,renderWrapper:h,removeAriaLabel:c==null?void 0:c.removeAriaLabel,tabCount:Lt.length,currentPosition:yt+1,onClick:function(kt){p(zt,kt)},onKeyDown:Ct,onFocus:function(){Tt||Dt(zt),ht(zt),Ae(),w.current&&(l||(w.current.scrollLeft=0),w.current.scrollTop=0)},onBlur:function(){Dt(void 0)},onMouseDown:function(kt){return st(zt,kt)},onMouseUp:function(){jt(!1)}})}),he=function(){return Ee(function(){var yt,zt=new Map,vr=(yt=D.current)===null||yt===void 0?void 0:yt.getBoundingClientRect();return x.forEach(function(kt){var Yt,xr=kt.key,mn=(Yt=D.current)===null||Yt===void 0?void 0:Yt.querySelector('[data-node-key=\"'.concat(ple(xr),'\"]'));if(mn){var Pn=a8e(mn,vr),Tn=ve(Pn,4),ka=Tn[0],ha=Tn[1],ja=Tn[2],za=Tn[3];zt.set(xr,{width:ka,height:ha,left:ja,top:za})}}),zt})};m.useEffect(function(){he()},[x.map(function(ft){return ft.key}).join(\"_\")]);var se=hle(function(){var ft=tv(F),yt=tv(S),zt=tv(E);j([ft[0]-yt[0]-zt[0],ft[1]-yt[1]-zt[1]]);var vr=tv(_);J(vr);var kt=tv(A);ue(kt);var Yt=tv(D);Q([Yt[0]-vr[0],Yt[1]-vr[1]]),he()}),de=x.slice(0,pt),ge=x.slice(_t+1),Te=[].concat(He(de),He(ge)),We=De.get(o),ke=Yke({activeTabOffset:We,horizontal:I,indicator:g,rtl:l}),Be=ke.style;m.useEffect(function(){ht()},[o,tt,rt,iV(We),iV(De),I]),m.useEffect(function(){se()},[l]);var Oe=!!Te.length,at=\"\".concat(b,\"-nav-wrap\"),Le,Ye,qe,Ze;return I?l?(Ye=k>0,Le=k!==rt):(Le=k<0,Ye=k!==tt):(qe=N<0,Ze=N!==tt),m.createElement(_i,{onResize:se},m.createElement(\"div\",{ref:yc(t,F),role:\"tablist\",\"aria-orientation\":I?\"horizontal\":\"vertical\",className:ne(\"\".concat(b,\"-nav\"),r),style:n,onKeyDown:function(){Ae()}},m.createElement(oV,{ref:S,position:\"left\",extra:s,prefixCls:b}),m.createElement(_i,{onResize:se},m.createElement(\"div\",{className:ne(at,Z(Z(Z(Z({},\"\".concat(at,\"-ping-left\"),Le),\"\".concat(at,\"-ping-right\"),Ye),\"\".concat(at,\"-ping-top\"),qe),\"\".concat(at,\"-ping-bottom\"),Ze)),ref:w},m.createElement(_i,{onResize:se},m.createElement(\"div\",{ref:D,className:\"\".concat(b,\"-nav-list\"),style:{transform:\"translate(\".concat(k,\"px, \").concat(N,\"px)\"),transition:Pe?\"none\":void 0}},pe,m.createElement(mle,{ref:_,prefixCls:b,locale:c,editable:u,style:ae(ae({},pe.length===0?void 0:te),{},{visibility:Oe?\"hidden\":null})}),m.createElement(\"div\",{className:ne(\"\".concat(b,\"-ink-bar\"),Z({},\"\".concat(b,\"-ink-bar-animated\"),i.inkBar)),style:Be}))))),m.createElement(r8e,Ce({},e,{removeAriaLabel:c==null?void 0:c.removeAriaLabel,ref:A,prefixCls:b,tabs:Te,className:!Oe&&lt,tabMoving:!!Pe})),m.createElement(oV,{ref:E,position:\"right\",extra:s,prefixCls:b})))}),vle=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.className,a=e.style,i=e.id,o=e.active,l=e.tabKey,s=e.children;return m.createElement(\"div\",{id:i&&\"\".concat(i,\"-panel-\").concat(l),role:\"tabpanel\",tabIndex:o?0:-1,\"aria-labelledby\":i&&\"\".concat(i,\"-tab-\").concat(l),\"aria-hidden\":!o,style:a,className:ne(r,o&&\"\".concat(r,\"-active\"),n),ref:t},s)}),i8e=[\"renderTabBar\"],o8e=[\"label\",\"key\"],l8e=function(t){var r=t.renderTabBar,n=Xt(t,i8e),a=m.useContext($6),i=a.tabs;if(r){var o=ae(ae({},n),{},{panes:i.map(function(l){var s=l.label,u=l.key,c=Xt(l,o8e);return m.createElement(vle,Ce({tab:s,key:u,tabKey:u},c))})});return r(o,lV)}return m.createElement(lV,n)},s8e=[\"key\",\"forceRender\",\"style\",\"className\",\"destroyInactiveTabPane\"],u8e=function(t){var r=t.id,n=t.activeKey,a=t.animated,i=t.tabPosition,o=t.destroyInactiveTabPane,l=m.useContext($6),s=l.prefixCls,u=l.tabs,c=a.tabPane,d=\"\".concat(s,\"-tabpane\");return m.createElement(\"div\",{className:ne(\"\".concat(s,\"-content-holder\"))},m.createElement(\"div\",{className:ne(\"\".concat(s,\"-content\"),\"\".concat(s,\"-content-\").concat(i),Z({},\"\".concat(s,\"-content-animated\"),c))},u.map(function(f){var h=f.key,p=f.forceRender,v=f.style,g=f.className,y=f.destroyInactiveTabPane,b=Xt(f,s8e),x=h===n;return m.createElement(fi,Ce({key:h,visible:x,forceRender:p,removeOnLeave:!!(o||y),leavedClassName:\"\".concat(d,\"-hidden\")},a.tabPaneMotion),function(F,S){var E=F.style,w=F.className;return m.createElement(vle,Ce({},b,{prefixCls:d,id:r,tabKey:h,animated:c,active:x,style:ae(ae({},v),E),className:ne(g,w),ref:S}))})})))};function c8e(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{inkBar:!0,tabPane:!1},t;return e===!1?t={inkBar:!1,tabPane:!1}:e===!0?t={inkBar:!0,tabPane:!1}:t=ae({inkBar:!0},Nt(e)===\"object\"?e:{}),t.tabPaneMotion&&t.tabPane===void 0&&(t.tabPane=!0),!t.tabPaneMotion&&t.tabPane&&(t.tabPane=!1),t}var d8e=[\"id\",\"prefixCls\",\"className\",\"items\",\"direction\",\"activeKey\",\"defaultActiveKey\",\"editable\",\"animated\",\"tabPosition\",\"tabBarGutter\",\"tabBarStyle\",\"tabBarExtraContent\",\"locale\",\"more\",\"destroyInactiveTabPane\",\"renderTabBar\",\"onChange\",\"onTabClick\",\"onTabScroll\",\"getPopupContainer\",\"popupClassName\",\"indicator\"],sV=0,f8e=m.forwardRef(function(e,t){var r=e.id,n=e.prefixCls,a=n===void 0?\"rc-tabs\":n,i=e.className,o=e.items,l=e.direction,s=e.activeKey,u=e.defaultActiveKey,c=e.editable,d=e.animated,f=e.tabPosition,h=f===void 0?\"top\":f,p=e.tabBarGutter,v=e.tabBarStyle,g=e.tabBarExtraContent,y=e.locale,b=e.more,x=e.destroyInactiveTabPane,F=e.renderTabBar,S=e.onChange,E=e.onTabClick,w=e.onTabScroll,D=e.getPopupContainer,A=e.popupClassName,_=e.indicator,I=Xt(e,d8e),M=m.useMemo(function(){return(o||[]).filter(function(oe){return oe&&Nt(oe)===\"object\"&&\"key\"in oe})},[o]),T=l===\"rtl\",k=c8e(d),R=m.useState(!1),P=ve(R,2),B=P[0],N=P[1];m.useEffect(function(){N(y6())},[]);var O=un(function(){var oe;return(oe=M[0])===null||oe===void 0?void 0:oe.key},{value:s,defaultValue:u}),z=ve(O,2),W=z[0],L=z[1],j=m.useState(function(){return M.findIndex(function(oe){return oe.key===W})}),H=ve(j,2),V=H[0],U=H[1];m.useEffect(function(){var oe=M.findIndex(function(ie){return ie.key===W});if(oe===-1){var ue;oe=Math.max(0,Math.min(V,M.length-1)),L((ue=M[oe])===null||ue===void 0?void 0:ue.key)}U(oe)},[M.map(function(oe){return oe.key}).join(\"_\"),W,V]);var Q=un(null,{value:r}),K=ve(Q,2),Y=K[0],ee=K[1];m.useEffect(function(){r||(ee(\"rc-tabs-\".concat(sV)),sV+=1)},[]);function J(oe,ue){E==null||E(oe,ue);var ie=oe!==W;L(oe),ie&&(S==null||S(oe))}var X={id:Y,activeKey:W,animated:k,tabPosition:h,rtl:T,mobile:B},ce=ae(ae({},X),{},{editable:c,locale:y,more:b,tabBarGutter:p,onTabClick:J,onTabScroll:w,extra:g,style:v,panes:null,getPopupContainer:D,popupClassName:A,indicator:_});return m.createElement($6.Provider,{value:{tabs:M,prefixCls:a}},m.createElement(\"div\",Ce({ref:t,id:r,className:ne(a,\"\".concat(a,\"-\").concat(h),Z(Z(Z({},\"\".concat(a,\"-mobile\"),B),\"\".concat(a,\"-editable\"),c),\"\".concat(a,\"-rtl\"),T),i)},I),m.createElement(l8e,Ce({},ce,{renderTabBar:F})),m.createElement(u8e,Ce({destroyInactiveTabPane:x},X,{animated:k}))))});const h8e={motionAppear:!1,motionEnter:!0,motionLeave:!0};function p8e(e,t={inkBar:!0,tabPane:!1}){let r;return t===!1?r={inkBar:!1,tabPane:!1}:t===!0?r={inkBar:!0,tabPane:!0}:r=Object.assign({inkBar:!0},typeof t==\"object\"?t:{}),r.tabPane&&(r.tabPaneMotion=Object.assign(Object.assign({},h8e),{motionName:ml(e,\"switch\")})),r}var m8e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function v8e(e){return e.filter(t=>t)}function g8e(e,t){if(e)return e.map(n=>{var a;const i=(a=n.destroyOnHidden)!==null&&a!==void 0?a:n.destroyInactiveTabPane;return Object.assign(Object.assign({},n),{destroyInactiveTabPane:i})});const r=ba(t).map(n=>{if(m.isValidElement(n)){const{key:a,props:i}=n,o=i||{},{tab:l}=o,s=m8e(o,[\"tab\"]);return Object.assign(Object.assign({key:String(a)},s),{label:l})}return null});return v8e(r)}const y8e=e=>{const{componentCls:t,motionDurationSlow:r}=e;return[{[t]:{[`${t}-switch`]:{\"&-appear, &-enter\":{transition:\"none\",\"&-start\":{opacity:0},\"&-active\":{opacity:1,transition:`opacity ${r}`}},\"&-leave\":{position:\"absolute\",transition:\"none\",inset:0,\"&-start\":{opacity:1},\"&-active\":{opacity:0,transition:`opacity ${r}`}}}}},[dc(e,\"slide-up\"),dc(e,\"slide-down\")]]},b8e=e=>{const{componentCls:t,tabsCardPadding:r,cardBg:n,cardGutter:a,colorBorderSecondary:i,itemSelectedColor:o}=e;return{[`${t}-card`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{margin:0,padding:r,background:n,border:`${re(e.lineWidth)} ${e.lineType} ${i}`,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`},[`${t}-tab-active`]:{color:o,background:e.colorBgContainer},[`${t}-tab-focus:has(${t}-tab-btn:focus-visible)`]:uc(e,-3),[`& ${t}-tab${t}-tab-focus ${t}-tab-btn:focus-visible`]:{outline:\"none\"},[`${t}-ink-bar`]:{visibility:\"hidden\"}},[`&${t}-top, &${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginLeft:{_skip_check_:!0,value:re(a)}}}},[`&${t}-top`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)} 0 0`},[`${t}-tab-active`]:{borderBottomColor:e.colorBgContainer}}},[`&${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:`0 0 ${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)}`},[`${t}-tab-active`]:{borderTopColor:e.colorBgContainer}}},[`&${t}-left, &${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginTop:re(a)}}},[`&${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${re(e.borderRadiusLG)} 0 0 ${re(e.borderRadiusLG)}`}},[`${t}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:e.colorBgContainer}}}},[`&${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)} 0`}},[`${t}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:e.colorBgContainer}}}}}}},x8e=e=>{const{componentCls:t,itemHoverColor:r,dropdownEdgeChildVerticalPadding:n}=e;return{[`${t}-dropdown`]:Object.assign(Object.assign({},Hr(e)),{position:\"absolute\",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:e.zIndexPopup,display:\"block\",\"&-hidden\":{display:\"none\"},[`${t}-dropdown-menu`]:{maxHeight:e.tabsDropdownHeight,margin:0,padding:`${re(n)} 0`,overflowX:\"hidden\",overflowY:\"auto\",textAlign:{_skip_check_:!0,value:\"left\"},listStyleType:\"none\",backgroundColor:e.colorBgContainer,backgroundClip:\"padding-box\",borderRadius:e.borderRadiusLG,outline:\"none\",boxShadow:e.boxShadowSecondary,\"&-item\":Object.assign(Object.assign({},$l),{display:\"flex\",alignItems:\"center\",minWidth:e.tabsDropdownWidth,margin:0,padding:`${re(e.paddingXXS)} ${re(e.paddingSM)}`,color:e.colorText,fontWeight:\"normal\",fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:\"pointer\",transition:`all ${e.motionDurationSlow}`,\"> span\":{flex:1,whiteSpace:\"nowrap\"},\"&-remove\":{flex:\"none\",marginLeft:{_skip_check_:!0,value:e.marginSM},color:e.colorIcon,fontSize:e.fontSizeSM,background:\"transparent\",border:0,cursor:\"pointer\",\"&:hover\":{color:r}},\"&:hover\":{background:e.controlItemBgHover},\"&-disabled\":{\"&, &:hover\":{color:e.colorTextDisabled,background:\"transparent\",cursor:\"not-allowed\"}}})}})}},C8e=e=>{const{componentCls:t,margin:r,colorBorderSecondary:n,horizontalMargin:a,verticalItemPadding:i,verticalItemMargin:o,calc:l}=e;return{[`${t}-top, ${t}-bottom`]:{flexDirection:\"column\",[`> ${t}-nav, > div > ${t}-nav`]:{margin:a,\"&::before\":{position:\"absolute\",right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${re(e.lineWidth)} ${e.lineType} ${n}`,content:\"''\"},[`${t}-ink-bar`]:{height:e.lineWidthBold,\"&-animated\":{transition:`width ${e.motionDurationSlow}, left ${e.motionDurationSlow},\n right ${e.motionDurationSlow}`}},[`${t}-nav-wrap`]:{\"&::before, &::after\":{top:0,bottom:0,width:e.controlHeight},\"&::before\":{left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowLeft},\"&::after\":{right:{_skip_check_:!0,value:0},boxShadow:e.boxShadowTabsOverflowRight},[`&${t}-nav-wrap-ping-left::before`]:{opacity:1},[`&${t}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${t}-top`]:{[`> ${t}-nav,\n > div > ${t}-nav`]:{\"&::before\":{bottom:0},[`${t}-ink-bar`]:{bottom:0}}},[`${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,marginTop:r,marginBottom:0,\"&::before\":{top:0},[`${t}-ink-bar`]:{top:0}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0}},[`${t}-left, ${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{flexDirection:\"column\",minWidth:l(e.controlHeight).mul(1.25).equal(),[`${t}-tab`]:{padding:i,textAlign:\"center\"},[`${t}-tab + ${t}-tab`]:{margin:o},[`${t}-nav-wrap`]:{flexDirection:\"column\",\"&::before, &::after\":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:e.controlHeight},\"&::before\":{top:0,boxShadow:e.boxShadowTabsOverflowTop},\"&::after\":{bottom:0,boxShadow:e.boxShadowTabsOverflowBottom},[`&${t}-nav-wrap-ping-top::before`]:{opacity:1},[`&${t}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${t}-ink-bar`]:{width:e.lineWidthBold,\"&-animated\":{transition:`height ${e.motionDurationSlow}, top ${e.motionDurationSlow}`}},[`${t}-nav-list, ${t}-nav-operations`]:{flex:\"1 0 auto\",flexDirection:\"column\"}}},[`${t}-left`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{marginLeft:{_skip_check_:!0,value:re(l(e.lineWidth).mul(-1).equal())},borderLeft:{_skip_check_:!0,value:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:e.paddingLG}}}},[`${t}-right`]:{[`> ${t}-nav, > div > ${t}-nav`]:{order:1,[`${t}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${t}-content-holder, > div > ${t}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:l(e.lineWidth).mul(-1).equal()},borderRight:{_skip_check_:!0,value:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},[`> ${t}-content > ${t}-tabpane`]:{paddingRight:{_skip_check_:!0,value:e.paddingLG}}}}}},F8e=e=>{const{componentCls:t,cardPaddingSM:r,cardPaddingLG:n,cardHeightSM:a,cardHeightLG:i,horizontalItemPaddingSM:o,horizontalItemPaddingLG:l}=e;return{[t]:{\"&-small\":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:o,fontSize:e.titleFontSizeSM}}},\"&-large\":{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:l,fontSize:e.titleFontSizeLG,lineHeight:e.lineHeightLG}}}},[`${t}-card`]:{[`&${t}-small`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:r},[`${t}-nav-add`]:{minWidth:a,minHeight:a}},[`&${t}-bottom`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`0 0 ${re(e.borderRadius)} ${re(e.borderRadius)}`}},[`&${t}-top`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:`${re(e.borderRadius)} ${re(e.borderRadius)} 0 0`}},[`&${t}-right`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${re(e.borderRadius)} ${re(e.borderRadius)} 0`}}},[`&${t}-left`]:{[`> ${t}-nav ${t}-tab`]:{borderRadius:{_skip_check_:!0,value:`${re(e.borderRadius)} 0 0 ${re(e.borderRadius)}`}}}},[`&${t}-large`]:{[`> ${t}-nav`]:{[`${t}-tab`]:{padding:n},[`${t}-nav-add`]:{minWidth:i,minHeight:i}}}}}},S8e=e=>{const{componentCls:t,itemActiveColor:r,itemHoverColor:n,iconCls:a,tabsHorizontalItemMargin:i,horizontalItemPadding:o,itemSelectedColor:l,itemColor:s}=e,u=`${t}-tab`;return{[u]:{position:\"relative\",WebkitTouchCallout:\"none\",WebkitTapHighlightColor:\"transparent\",display:\"inline-flex\",alignItems:\"center\",padding:o,fontSize:e.titleFontSize,background:\"transparent\",border:0,outline:\"none\",cursor:\"pointer\",color:s,\"&-btn, &-remove\":{\"&:focus:not(:focus-visible), &:active\":{color:r}},\"&-btn\":{outline:\"none\",transition:`all ${e.motionDurationSlow}`,[`${u}-icon:not(:last-child)`]:{marginInlineEnd:e.marginSM}},\"&-remove\":Object.assign({flex:\"none\",lineHeight:1,marginRight:{_skip_check_:!0,value:e.calc(e.marginXXS).mul(-1).equal()},marginLeft:{_skip_check_:!0,value:e.marginXS},color:e.colorIcon,fontSize:e.fontSizeSM,background:\"transparent\",border:\"none\",outline:\"none\",cursor:\"pointer\",transition:`all ${e.motionDurationSlow}`,\"&:hover\":{color:e.colorTextHeading}},pl(e)),\"&:hover\":{color:n},[`&${u}-active ${u}-btn`]:{color:l,textShadow:e.tabsActiveTextShadow},[`&${u}-focus ${u}-btn:focus-visible`]:uc(e),[`&${u}-disabled`]:{color:e.colorTextDisabled,cursor:\"not-allowed\"},[`&${u}-disabled ${u}-btn, &${u}-disabled ${t}-remove`]:{\"&:focus, &:active\":{color:e.colorTextDisabled}},[`& ${u}-remove ${a}`]:{margin:0,verticalAlign:\"middle\"},[`${a}:not(:last-child)`]:{marginRight:{_skip_check_:!0,value:e.marginSM}}},[`${u} + ${u}`]:{margin:{_skip_check_:!0,value:i}}}},w8e=e=>{const{componentCls:t,tabsHorizontalItemMarginRTL:r,iconCls:n,cardGutter:a,calc:i}=e;return{[`${t}-rtl`]:{direction:\"rtl\",[`${t}-nav`]:{[`${t}-tab`]:{margin:{_skip_check_:!0,value:r},[`${t}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[n]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:re(e.marginSM)}},[`${t}-tab-remove`]:{marginRight:{_skip_check_:!0,value:re(e.marginXS)},marginLeft:{_skip_check_:!0,value:re(i(e.marginXXS).mul(-1).equal())},[n]:{margin:0}}}},[`&${t}-left`]:{[`> ${t}-nav`]:{order:1},[`> ${t}-content-holder`]:{order:0}},[`&${t}-right`]:{[`> ${t}-nav`]:{order:0},[`> ${t}-content-holder`]:{order:1}},[`&${t}-card${t}-top, &${t}-card${t}-bottom`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-tab + ${t}-tab`]:{marginRight:{_skip_check_:!0,value:a},marginLeft:{_skip_check_:!0,value:0}}}}},[`${t}-dropdown-rtl`]:{direction:\"rtl\"},[`${t}-menu-item`]:{[`${t}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:\"right\"}}}}},E8e=e=>{const{componentCls:t,tabsCardPadding:r,cardHeight:n,cardGutter:a,itemHoverColor:i,itemActiveColor:o,colorBorderSecondary:l}=e;return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{display:\"flex\",[`> ${t}-nav, > div > ${t}-nav`]:{position:\"relative\",display:\"flex\",flex:\"none\",alignItems:\"center\",[`${t}-nav-wrap`]:{position:\"relative\",display:\"flex\",flex:\"auto\",alignSelf:\"stretch\",overflow:\"hidden\",whiteSpace:\"nowrap\",transform:\"translate(0)\",\"&::before, &::after\":{position:\"absolute\",zIndex:1,opacity:0,transition:`opacity ${e.motionDurationSlow}`,content:\"''\",pointerEvents:\"none\"}},[`${t}-nav-list`]:{position:\"relative\",display:\"flex\",transition:`opacity ${e.motionDurationSlow}`},[`${t}-nav-operations`]:{display:\"flex\",alignSelf:\"stretch\"},[`${t}-nav-operations-hidden`]:{position:\"absolute\",visibility:\"hidden\",pointerEvents:\"none\"},[`${t}-nav-more`]:{position:\"relative\",padding:r,background:\"transparent\",border:0,color:e.colorText,\"&::after\":{position:\"absolute\",right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:e.calc(e.controlHeightLG).div(8).equal(),transform:\"translateY(100%)\",content:\"''\"}},[`${t}-nav-add`]:Object.assign({minWidth:n,minHeight:n,marginLeft:{_skip_check_:!0,value:a},background:\"transparent\",border:`${re(e.lineWidth)} ${e.lineType} ${l}`,borderRadius:`${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)} 0 0`,outline:\"none\",cursor:\"pointer\",color:e.colorText,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOut}`,\"&:hover\":{color:i},\"&:active, &:focus:not(:focus-visible)\":{color:o}},pl(e,-3))},[`${t}-extra-content`]:{flex:\"none\"},[`${t}-ink-bar`]:{position:\"absolute\",background:e.inkBarColor,pointerEvents:\"none\"}}),S8e(e)),{[`${t}-content`]:{position:\"relative\",width:\"100%\"},[`${t}-content-holder`]:{flex:\"auto\",minWidth:0,minHeight:0},[`${t}-tabpane`]:Object.assign(Object.assign({},pl(e)),{\"&-hidden\":{display:\"none\"}})}),[`${t}-centered`]:{[`> ${t}-nav, > div > ${t}-nav`]:{[`${t}-nav-wrap`]:{[`&:not([class*='${t}-nav-wrap-ping']) > ${t}-nav-list`]:{margin:\"auto\"}}}}}},D8e=e=>{const{cardHeight:t,cardHeightSM:r,cardHeightLG:n,controlHeight:a,controlHeightLG:i}=e,o=t||i,l=r||a,s=n||i+8;return{zIndexPopup:e.zIndexPopupBase+50,cardBg:e.colorFillAlter,cardHeight:o,cardHeightSM:l,cardHeightLG:s,cardPadding:`${(o-e.fontHeight)/2-e.lineWidth}px ${e.padding}px`,cardPaddingSM:`${(l-e.fontHeight)/2-e.lineWidth}px ${e.paddingXS}px`,cardPaddingLG:`${(s-e.fontHeightLG)/2-e.lineWidth}px ${e.padding}px`,titleFontSize:e.fontSize,titleFontSizeLG:e.fontSizeLG,titleFontSizeSM:e.fontSize,inkBarColor:e.colorPrimary,horizontalMargin:`0 0 ${e.margin}px 0`,horizontalItemGutter:32,horizontalItemMargin:\"\",horizontalItemMarginRTL:\"\",horizontalItemPadding:`${e.paddingSM}px 0`,horizontalItemPaddingSM:`${e.paddingXS}px 0`,horizontalItemPaddingLG:`${e.padding}px 0`,verticalItemPadding:`${e.paddingXS}px ${e.paddingLG}px`,verticalItemMargin:`${e.margin}px 0 0 0`,itemColor:e.colorText,itemSelectedColor:e.colorPrimary,itemHoverColor:e.colorPrimaryHover,itemActiveColor:e.colorPrimaryActive,cardGutter:e.marginXXS/2}},A8e=kr(\"Tabs\",e=>{const t=Sr(e,{tabsCardPadding:e.cardPadding,dropdownEdgeChildVerticalPadding:e.paddingXXS,tabsActiveTextShadow:\"0 0 0.25px currentcolor\",tabsDropdownHeight:200,tabsDropdownWidth:120,tabsHorizontalItemMargin:`0 0 0 ${re(e.horizontalItemGutter)}`,tabsHorizontalItemMarginRTL:`0 0 0 ${re(e.horizontalItemGutter)}`});return[F8e(t),w8e(t),C8e(t),x8e(t),b8e(t),E8e(t),y8e(t)]},D8e),_8e=()=>null;var T8e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const I8e=m.forwardRef((e,t)=>{var r,n,a,i,o,l,s,u,c,d,f;const{type:h,className:p,rootClassName:v,size:g,onEdit:y,hideAdd:b,centered:x,addIcon:F,removeIcon:S,moreIcon:E,more:w,popupClassName:D,children:A,items:_,animated:I,style:M,indicatorSize:T,indicator:k,destroyInactiveTabPane:R,destroyOnHidden:P}=e,B=T8e(e,[\"type\",\"className\",\"rootClassName\",\"size\",\"onEdit\",\"hideAdd\",\"centered\",\"addIcon\",\"removeIcon\",\"moreIcon\",\"more\",\"popupClassName\",\"children\",\"items\",\"animated\",\"style\",\"indicatorSize\",\"indicator\",\"destroyInactiveTabPane\",\"destroyOnHidden\"]),{prefixCls:N}=B,{direction:O,tabs:z,getPrefixCls:W,getPopupContainer:L}=m.useContext(Ot),j=W(\"tabs\",N),H=Zn(j),[V,U,Q]=A8e(j,H),K=m.useRef(null);m.useImperativeHandle(t,()=>({nativeElement:K.current}));let Y;h===\"editable-card\"&&(Y={onEdit:(ie,{key:fe,event:xe})=>{y==null||y(ie===\"add\"?xe:fe,ie)},removeIcon:(r=S??(z==null?void 0:z.removeIcon))!==null&&r!==void 0?r:m.createElement(wu,null),addIcon:(F??(z==null?void 0:z.addIcon))||m.createElement(Do,null),showAdd:b!==!0});const ee=W(),J=Ta(g),X=g8e(_,A),ce=p8e(j,I),oe=Object.assign(Object.assign({},z==null?void 0:z.style),M),ue={align:(n=k==null?void 0:k.align)!==null&&n!==void 0?n:(a=z==null?void 0:z.indicator)===null||a===void 0?void 0:a.align,size:(s=(o=(i=k==null?void 0:k.size)!==null&&i!==void 0?i:T)!==null&&o!==void 0?o:(l=z==null?void 0:z.indicator)===null||l===void 0?void 0:l.size)!==null&&s!==void 0?s:z==null?void 0:z.indicatorSize};return V(m.createElement(f8e,Object.assign({ref:K,direction:O,getPopupContainer:L},B,{items:X,className:ne({[`${j}-${J}`]:J,[`${j}-card`]:[\"card\",\"editable-card\"].includes(h),[`${j}-editable-card`]:h===\"editable-card\",[`${j}-centered`]:x},z==null?void 0:z.className,p,v,U,Q,H),popupClassName:ne(D,U,Q,H),style:oe,editable:Y,more:Object.assign({icon:(f=(d=(c=(u=z==null?void 0:z.more)===null||u===void 0?void 0:u.icon)!==null&&c!==void 0?c:z==null?void 0:z.moreIcon)!==null&&d!==void 0?d:E)!==null&&f!==void 0?f:m.createElement(dO,null),transitionName:`${ee}-slide-up`},w),prefixCls:j,animated:ce,indicator:ue,destroyInactiveTabPane:P??R})))}),Ig=I8e;Ig.TabPane=_8e;var k8e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const gle=e=>{var{prefixCls:t,className:r,hoverable:n=!0}=e,a=k8e(e,[\"prefixCls\",\"className\",\"hoverable\"]);const{getPrefixCls:i}=m.useContext(Ot),o=i(\"card\",t),l=ne(`${o}-grid`,r,{[`${o}-grid-hoverable`]:n});return m.createElement(\"div\",Object.assign({},a,{className:l}))},R8e=e=>{const{antCls:t,componentCls:r,headerHeight:n,headerPadding:a,tabsMarginBottom:i}=e;return Object.assign(Object.assign({display:\"flex\",justifyContent:\"center\",flexDirection:\"column\",minHeight:n,marginBottom:-1,padding:`0 ${re(a)}`,color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.headerFontSize,background:e.headerBg,borderBottom:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorderSecondary}`,borderRadius:`${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)} 0 0`},sc()),{\"&-wrapper\":{width:\"100%\",display:\"flex\",alignItems:\"center\"},\"&-title\":Object.assign(Object.assign({display:\"inline-block\",flex:1},$l),{[`\n > ${r}-typography,\n > ${r}-typography-edit-content\n `]:{insetInlineStart:0,marginTop:0,marginBottom:0}}),[`${t}-tabs-top`]:{clear:\"both\",marginBottom:i,color:e.colorText,fontWeight:\"normal\",fontSize:e.fontSize,\"&-bar\":{borderBottom:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorderSecondary}`}}})},M8e=e=>{const{cardPaddingBase:t,colorBorderSecondary:r,cardShadow:n,lineWidth:a}=e;return{width:\"33.33%\",padding:t,border:0,borderRadius:0,boxShadow:`\n ${re(a)} 0 0 0 ${r},\n 0 ${re(a)} 0 0 ${r},\n ${re(a)} ${re(a)} 0 0 ${r},\n ${re(a)} 0 0 0 ${r} inset,\n 0 ${re(a)} 0 0 ${r} inset;\n `,transition:`all ${e.motionDurationMid}`,\"&-hoverable:hover\":{position:\"relative\",zIndex:1,boxShadow:n}}},P8e=e=>{const{componentCls:t,iconCls:r,actionsLiMargin:n,cardActionsIconSize:a,colorBorderSecondary:i,actionsBg:o}=e;return Object.assign(Object.assign({margin:0,padding:0,listStyle:\"none\",background:o,borderTop:`${re(e.lineWidth)} ${e.lineType} ${i}`,display:\"flex\",borderRadius:`0 0 ${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)}`},sc()),{\"& > li\":{margin:n,color:e.colorTextDescription,textAlign:\"center\",\"> span\":{position:\"relative\",display:\"block\",minWidth:e.calc(e.cardActionsIconSize).mul(2).equal(),fontSize:e.fontSize,lineHeight:e.lineHeight,cursor:\"pointer\",\"&:hover\":{color:e.colorPrimary,transition:`color ${e.motionDurationMid}`},[`a:not(${t}-btn), > ${r}`]:{display:\"inline-block\",width:\"100%\",color:e.colorIcon,lineHeight:re(e.fontHeight),transition:`color ${e.motionDurationMid}`,\"&:hover\":{color:e.colorPrimary}},[`> ${r}`]:{fontSize:a,lineHeight:re(e.calc(a).mul(e.lineHeight).equal())}},\"&:not(:last-child)\":{borderInlineEnd:`${re(e.lineWidth)} ${e.lineType} ${i}`}}})},O8e=e=>Object.assign(Object.assign({margin:`${re(e.calc(e.marginXXS).mul(-1).equal())} 0`,display:\"flex\"},sc()),{\"&-avatar\":{paddingInlineEnd:e.padding},\"&-detail\":{overflow:\"hidden\",flex:1,\"> div:not(:last-child)\":{marginBottom:e.marginXS}},\"&-title\":Object.assign({color:e.colorTextHeading,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG},$l),\"&-description\":{color:e.colorTextDescription}}),B8e=e=>{const{componentCls:t,colorFillAlter:r,headerPadding:n,bodyPadding:a}=e;return{[`${t}-head`]:{padding:`0 ${re(n)}`,background:r,\"&-title\":{fontSize:e.fontSize}},[`${t}-body`]:{padding:`${re(e.padding)} ${re(a)}`}}},N8e=e=>{const{componentCls:t}=e;return{overflow:\"hidden\",[`${t}-body`]:{userSelect:\"none\"}}},$8e=e=>{const{componentCls:t,cardShadow:r,cardHeadPadding:n,colorBorderSecondary:a,boxShadowTertiary:i,bodyPadding:o,extraColor:l}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{position:\"relative\",background:e.colorBgContainer,borderRadius:e.borderRadiusLG,[`&:not(${t}-bordered)`]:{boxShadow:i},[`${t}-head`]:R8e(e),[`${t}-extra`]:{marginInlineStart:\"auto\",color:l,fontWeight:\"normal\",fontSize:e.fontSize},[`${t}-body`]:{padding:o,borderRadius:`0 0 ${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)}`},[`${t}-grid`]:M8e(e),[`${t}-cover`]:{\"> *\":{display:\"block\",width:\"100%\",borderRadius:`${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)} 0 0`}},[`${t}-actions`]:P8e(e),[`${t}-meta`]:O8e(e)}),[`${t}-bordered`]:{border:`${re(e.lineWidth)} ${e.lineType} ${a}`,[`${t}-cover`]:{marginTop:-1,marginInlineStart:-1,marginInlineEnd:-1}},[`${t}-hoverable`]:{cursor:\"pointer\",transition:`box-shadow ${e.motionDurationMid}, border-color ${e.motionDurationMid}`,\"&:hover\":{borderColor:\"transparent\",boxShadow:r}},[`${t}-contain-grid`]:{borderRadius:`${re(e.borderRadiusLG)} ${re(e.borderRadiusLG)} 0 0 `,[`${t}-body`]:{display:\"flex\",flexWrap:\"wrap\"},[`&:not(${t}-loading) ${t}-body`]:{marginBlockStart:e.calc(e.lineWidth).mul(-1).equal(),marginInlineStart:e.calc(e.lineWidth).mul(-1).equal(),padding:0}},[`${t}-contain-tabs`]:{[`> div${t}-head`]:{minHeight:0,[`${t}-head-title, ${t}-extra`]:{paddingTop:n}}},[`${t}-type-inner`]:B8e(e),[`${t}-loading`]:N8e(e),[`${t}-rtl`]:{direction:\"rtl\"}}},L8e=e=>{const{componentCls:t,bodyPaddingSM:r,headerPaddingSM:n,headerHeightSM:a,headerFontSizeSM:i}=e;return{[`${t}-small`]:{[`> ${t}-head`]:{minHeight:a,padding:`0 ${re(n)}`,fontSize:i,[`> ${t}-head-wrapper`]:{[`> ${t}-extra`]:{fontSize:e.fontSize}}},[`> ${t}-body`]:{padding:r}},[`${t}-small${t}-contain-tabs`]:{[`> ${t}-head`]:{[`${t}-head-title, ${t}-extra`]:{paddingTop:0,display:\"flex\",alignItems:\"center\"}}}}},j8e=e=>{var t,r;return{headerBg:\"transparent\",headerFontSize:e.fontSizeLG,headerFontSizeSM:e.fontSize,headerHeight:e.fontSizeLG*e.lineHeightLG+e.padding*2,headerHeightSM:e.fontSize*e.lineHeight+e.paddingXS*2,actionsBg:e.colorBgContainer,actionsLiMargin:`${e.paddingSM}px 0`,tabsMarginBottom:-e.padding-e.lineWidth,extraColor:e.colorText,bodyPaddingSM:12,headerPaddingSM:12,bodyPadding:(t=e.bodyPadding)!==null&&t!==void 0?t:e.paddingLG,headerPadding:(r=e.headerPadding)!==null&&r!==void 0?r:e.paddingLG}},z8e=kr(\"Card\",e=>{const t=Sr(e,{cardShadow:e.boxShadowCard,cardHeadPadding:e.padding,cardPaddingBase:e.paddingLG,cardActionsIconSize:e.fontSize});return[$8e(t),L8e(t)]},j8e);var uV=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const H8e=e=>{const{actionClasses:t,actions:r=[],actionStyle:n}=e;return m.createElement(\"ul\",{className:t,style:n},r.map((a,i)=>{const o=`action-${i}`;return m.createElement(\"li\",{style:{width:`${100/r.length}%`},key:o},m.createElement(\"span\",null,a))}))},V8e=m.forwardRef((e,t)=>{const{prefixCls:r,className:n,rootClassName:a,style:i,extra:o,headStyle:l={},bodyStyle:s={},title:u,loading:c,bordered:d,variant:f,size:h,type:p,cover:v,actions:g,tabList:y,children:b,activeTabKey:x,defaultActiveTabKey:F,tabBarExtraContent:S,hoverable:E,tabProps:w={},classNames:D,styles:A}=e,_=uV(e,[\"prefixCls\",\"className\",\"rootClassName\",\"style\",\"extra\",\"headStyle\",\"bodyStyle\",\"title\",\"loading\",\"bordered\",\"variant\",\"size\",\"type\",\"cover\",\"actions\",\"tabList\",\"children\",\"activeTabKey\",\"defaultActiveTabKey\",\"tabBarExtraContent\",\"hoverable\",\"tabProps\",\"classNames\",\"styles\"]),{getPrefixCls:I,direction:M,card:T}=m.useContext(Ot),[k]=gm(\"card\",f,d),R=De=>{var ye;(ye=e.onTabChange)===null||ye===void 0||ye.call(e,De)},P=De=>{var ye;return ne((ye=T==null?void 0:T.classNames)===null||ye===void 0?void 0:ye[De],D==null?void 0:D[De])},B=De=>{var ye;return Object.assign(Object.assign({},(ye=T==null?void 0:T.styles)===null||ye===void 0?void 0:ye[De]),A==null?void 0:A[De])},N=m.useMemo(()=>{let De=!1;return m.Children.forEach(b,ye=>{(ye==null?void 0:ye.type)===gle&&(De=!0)}),De},[b]),O=I(\"card\",r),[z,W,L]=z8e(O),j=m.createElement(Cd,{loading:!0,active:!0,paragraph:{rows:4},title:!1},b),H=x!==void 0,V=Object.assign(Object.assign({},w),{[H?\"activeKey\":\"defaultActiveKey\"]:H?x:F,tabBarExtraContent:S});let U;const Q=Ta(h),K=!Q||Q===\"default\"?\"large\":Q,Y=y?m.createElement(Ig,Object.assign({size:K},V,{className:`${O}-head-tabs`,onChange:R,items:y.map(De=>{var{tab:ye}=De,we=uV(De,[\"tab\"]);return Object.assign({label:ye},we)})})):null;if(u||o||Y){const De=ne(`${O}-head`,P(\"header\")),ye=ne(`${O}-head-title`,P(\"title\")),we=ne(`${O}-extra`,P(\"extra\")),Fe=Object.assign(Object.assign({},l),B(\"header\"));U=m.createElement(\"div\",{className:De,style:Fe},m.createElement(\"div\",{className:`${O}-head-wrapper`},u&&m.createElement(\"div\",{className:ye,style:B(\"title\")},u),o&&m.createElement(\"div\",{className:we,style:B(\"extra\")},o)),Y)}const ee=ne(`${O}-cover`,P(\"cover\")),J=v?m.createElement(\"div\",{className:ee,style:B(\"cover\")},v):null,X=ne(`${O}-body`,P(\"body\")),ce=Object.assign(Object.assign({},s),B(\"body\")),oe=m.createElement(\"div\",{className:X,style:ce},c?j:b),ue=ne(`${O}-actions`,P(\"actions\")),ie=g!=null&&g.length?m.createElement(H8e,{actionClasses:ue,actionStyle:B(\"actions\"),actions:g}):null,fe=wn(_,[\"onTabChange\"]),xe=ne(O,T==null?void 0:T.className,{[`${O}-loading`]:c,[`${O}-bordered`]:k!==\"borderless\",[`${O}-hoverable`]:E,[`${O}-contain-grid`]:N,[`${O}-contain-tabs`]:y==null?void 0:y.length,[`${O}-${Q}`]:Q,[`${O}-type-${p}`]:!!p,[`${O}-rtl`]:M===\"rtl\"},n,a,W,L),Ee=Object.assign(Object.assign({},T==null?void 0:T.style),i);return z(m.createElement(\"div\",Object.assign({ref:t},fe,{className:xe,style:Ee}),U,J,oe,ie))});var W8e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const G8e=e=>{const{prefixCls:t,className:r,avatar:n,title:a,description:i}=e,o=W8e(e,[\"prefixCls\",\"className\",\"avatar\",\"title\",\"description\"]),{getPrefixCls:l}=m.useContext(Ot),s=l(\"card\",t),u=ne(`${s}-meta`,r),c=n?m.createElement(\"div\",{className:`${s}-meta-avatar`},n):null,d=a?m.createElement(\"div\",{className:`${s}-meta-title`},a):null,f=i?m.createElement(\"div\",{className:`${s}-meta-description`},i):null,h=d||f?m.createElement(\"div\",{className:`${s}-meta-detail`},d,f):null;return m.createElement(\"div\",Object.assign({},o,{className:u}),c,h)},hr=V8e;hr.Grid=gle;hr.Meta=G8e;function U8e(e,t,r){var n=r||{},a=n.noTrailing,i=a===void 0?!1:a,o=n.noLeading,l=o===void 0?!1:o,s=n.debounceMode,u=s===void 0?void 0:s,c,d=!1,f=0;function h(){c&&clearTimeout(c)}function p(g){var y=g||{},b=y.upcomingOnly,x=b===void 0?!1:b;h(),d=!x}function v(){for(var g=arguments.length,y=new Array(g),b=0;b<g;b++)y[b]=arguments[b];var x=this,F=Date.now()-f;if(d)return;function S(){f=Date.now(),t.apply(x,y)}function E(){c=void 0}!l&&u&&!c&&S(),h(),u===void 0&&F>e?l?(f=Date.now(),i||(c=setTimeout(u?E:S,e))):S():i!==!0&&(c=setTimeout(u?E:S,u===void 0?e-F:e))}return v.cancel=p,v}function K8e(e,t,r){var n={},a=n.atBegin,i=a===void 0?!1:a;return U8e(e,t,{debounceMode:i!==!1})}function rl(e,t){return e[t]}var Y8e=[\"children\"];function yle(e,t){return\"\".concat(e,\"-\").concat(t)}function q8e(e){return e&&e.type&&e.type.isTreeNode}function Ex(e,t){return e??t}function X0(e){var t=e||{},r=t.title,n=t._title,a=t.key,i=t.children,o=r||\"title\";return{title:o,_title:n||[o],key:a||\"key\",children:i||\"children\"}}function ble(e){function t(r){var n=ba(r);return n.map(function(a){if(!q8e(a))return jn(!a,\"Tree/TreeNode can only accept TreeNode as children.\"),null;var i=a.key,o=a.props,l=o.children,s=Xt(o,Y8e),u=ae({key:i},s),c=t(l);return c.length&&(u.children=c),u}).filter(function(a){return a})}return t(e)}function V_(e,t,r){var n=X0(r),a=n._title,i=n.key,o=n.children,l=new Set(t===!0?[]:t),s=[];function u(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;return c.map(function(f,h){for(var p=yle(d?d.pos:\"0\",h),v=Ex(f[i],p),g,y=0;y<a.length;y+=1){var b=a[y];if(f[b]!==void 0){g=f[b];break}}var x=Object.assign(wn(f,[].concat(He(a),[i,o])),{title:g,key:v,parent:d,pos:p,children:null,data:f,isStart:[].concat(He(d?d.isStart:[]),[h===0]),isEnd:[].concat(He(d?d.isEnd:[]),[h===c.length-1])});return s.push(x),t===!0||l.has(v)?x.children=u(f[o]||[],x):x.children=[],x})}return u(e),s}function X8e(e,t,r){var n={};Nt(r)===\"object\"?n=r:n={externalGetKey:r},n=n||{};var a=n,i=a.childrenPropName,o=a.externalGetKey,l=a.fieldNames,s=X0(l),u=s.key,c=s.children,d=i||c,f;o?typeof o==\"string\"?f=function(v){return v[o]}:typeof o==\"function\"&&(f=function(v){return o(v)}):f=function(v,g){return Ex(v[u],g)};function h(p,v,g,y){var b=p?p[d]:e,x=p?yle(g.pos,v):\"0\",F=p?[].concat(He(y),[p]):[];if(p){var S=f(p,x),E={node:p,index:v,pos:x,key:S,parentPos:g.node?g.pos:null,level:g.level+1,nodes:F};t(E)}b&&b.forEach(function(w,D){h(w,D,{node:p,pos:x,level:g?g.level+1:-1},F)})}h(null)}function DO(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.initWrapper,n=t.processEntity,a=t.onProcessFinished,i=t.externalGetKey,o=t.childrenPropName,l=t.fieldNames,s=arguments.length>2?arguments[2]:void 0,u=i||s,c={},d={},f={posEntities:c,keyEntities:d};return r&&(f=r(f)||f),X8e(e,function(h){var p=h.node,v=h.index,g=h.pos,y=h.key,b=h.parentPos,x=h.level,F=h.nodes,S={node:p,nodes:F,index:v,key:y,pos:g,level:x},E=Ex(y,g);c[g]=S,d[E]=S,S.parent=c[b],S.parent&&(S.parent.children=S.parent.children||[],S.parent.children.push(S)),n&&n(S,f)},{externalGetKey:u,childrenPropName:o,fieldNames:l}),a&&a(f),f}function Gy(e,t){var r=t.expandedKeys,n=t.selectedKeys,a=t.loadedKeys,i=t.loadingKeys,o=t.checkedKeys,l=t.halfCheckedKeys,s=t.dragOverNodeKey,u=t.dropPosition,c=t.keyEntities,d=rl(c,e),f={eventKey:e,expanded:r.indexOf(e)!==-1,selected:n.indexOf(e)!==-1,loaded:a.indexOf(e)!==-1,loading:i.indexOf(e)!==-1,checked:o.indexOf(e)!==-1,halfChecked:l.indexOf(e)!==-1,pos:String(d?d.pos:\"\"),dragOver:s===e&&u===0,dragOverGapTop:s===e&&u===-1,dragOverGapBottom:s===e&&u===1};return f}function Ua(e){var t=e.data,r=e.expanded,n=e.selected,a=e.checked,i=e.loaded,o=e.loading,l=e.halfChecked,s=e.dragOver,u=e.dragOverGapTop,c=e.dragOverGapBottom,d=e.pos,f=e.active,h=e.eventKey,p=ae(ae({},t),{},{expanded:r,selected:n,checked:a,loaded:i,loading:o,halfChecked:l,dragOver:s,dragOverGapTop:u,dragOverGapBottom:c,pos:d,active:f,key:h});return\"props\"in p||Object.defineProperty(p,\"props\",{get:function(){return jn(!1,\"Second param return from event is node data instead of TreeNode instance. Please read value directly instead of reading from `props`.\"),e}}),p}function xle(e,t){var r=new Set;return e.forEach(function(n){t.has(n)||r.add(n)}),r}function J8e(e){var t=e||{},r=t.disabled,n=t.disableCheckbox,a=t.checkable;return!!(r||n)||a===!1}function Z8e(e,t,r,n){for(var a=new Set(e),i=new Set,o=0;o<=r;o+=1){var l=t.get(o)||new Set;l.forEach(function(d){var f=d.key,h=d.node,p=d.children,v=p===void 0?[]:p;a.has(f)&&!n(h)&&v.filter(function(g){return!n(g.node)}).forEach(function(g){a.add(g.key)})})}for(var s=new Set,u=r;u>=0;u-=1){var c=t.get(u)||new Set;c.forEach(function(d){var f=d.parent,h=d.node;if(!(n(h)||!d.parent||s.has(d.parent.key))){if(n(d.parent.node)){s.add(f.key);return}var p=!0,v=!1;(f.children||[]).filter(function(g){return!n(g.node)}).forEach(function(g){var y=g.key,b=a.has(y);p&&!b&&(p=!1),!v&&(b||i.has(y))&&(v=!0)}),p&&a.add(f.key),v&&i.add(f.key),s.add(f.key)}})}return{checkedKeys:Array.from(a),halfCheckedKeys:Array.from(xle(i,a))}}function Q8e(e,t,r,n,a){for(var i=new Set(e),o=new Set(t),l=0;l<=n;l+=1){var s=r.get(l)||new Set;s.forEach(function(f){var h=f.key,p=f.node,v=f.children,g=v===void 0?[]:v;!i.has(h)&&!o.has(h)&&!a(p)&&g.filter(function(y){return!a(y.node)}).forEach(function(y){i.delete(y.key)})})}o=new Set;for(var u=new Set,c=n;c>=0;c-=1){var d=r.get(c)||new Set;d.forEach(function(f){var h=f.parent,p=f.node;if(!(a(p)||!f.parent||u.has(f.parent.key))){if(a(f.parent.node)){u.add(h.key);return}var v=!0,g=!1;(h.children||[]).filter(function(y){return!a(y.node)}).forEach(function(y){var b=y.key,x=i.has(b);v&&!x&&(v=!1),!g&&(x||o.has(b))&&(g=!0)}),v||i.delete(h.key),g&&o.add(h.key),u.add(h.key)}})}return{checkedKeys:Array.from(i),halfCheckedKeys:Array.from(xle(o,i))}}function b0(e,t,r,n){var a=[],i;n?i=n:i=J8e;var o=new Set(e.filter(function(c){var d=!!rl(r,c);return d||a.push(c),d})),l=new Map,s=0;Object.keys(r).forEach(function(c){var d=r[c],f=d.level,h=l.get(f);h||(h=new Set,l.set(f,h)),h.add(d),s=Math.max(s,f)}),jn(!a.length,\"Tree missing follow keys: \".concat(a.slice(0,100).map(function(c){return\"'\".concat(c,\"'\")}).join(\", \")));var u;return t===!0?u=Z8e(o,l,s,i):u=Q8e(o,t.halfCheckedKeys,l,s,i),u}const eRe=e=>{const{checkboxCls:t}=e,r=`${t}-wrapper`;return[{[`${t}-group`]:Object.assign(Object.assign({},Hr(e)),{display:\"inline-flex\",flexWrap:\"wrap\",columnGap:e.marginXS,[`> ${e.antCls}-row`]:{flex:1}}),[r]:Object.assign(Object.assign({},Hr(e)),{display:\"inline-flex\",alignItems:\"baseline\",cursor:\"pointer\",\"&:after\":{display:\"inline-block\",width:0,overflow:\"hidden\",content:\"'\\\\a0'\"},[`& + ${r}`]:{marginInlineStart:0},[`&${r}-in-form-item`]:{'input[type=\"checkbox\"]':{width:14,height:14}}}),[t]:Object.assign(Object.assign({},Hr(e)),{position:\"relative\",whiteSpace:\"nowrap\",lineHeight:1,cursor:\"pointer\",borderRadius:e.borderRadiusSM,alignSelf:\"center\",[`${t}-input`]:{position:\"absolute\",inset:0,zIndex:1,cursor:\"pointer\",opacity:0,margin:0,[`&:focus-visible + ${t}-inner`]:uc(e)},[`${t}-inner`]:{boxSizing:\"border-box\",display:\"block\",width:e.checkboxSize,height:e.checkboxSize,direction:\"ltr\",backgroundColor:e.colorBgContainer,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,borderCollapse:\"separate\",transition:`all ${e.motionDurationSlow}`,\"&:after\":{boxSizing:\"border-box\",position:\"absolute\",top:\"50%\",insetInlineStart:\"25%\",display:\"table\",width:e.calc(e.checkboxSize).div(14).mul(5).equal(),height:e.calc(e.checkboxSize).div(14).mul(8).equal(),border:`${re(e.lineWidthBold)} solid ${e.colorWhite}`,borderTop:0,borderInlineStart:0,transform:\"rotate(45deg) scale(0) translate(-50%,-50%)\",opacity:0,content:'\"\"',transition:`all ${e.motionDurationFast} ${e.motionEaseInBack}, opacity ${e.motionDurationFast}`}},\"& + span\":{paddingInlineStart:e.paddingXS,paddingInlineEnd:e.paddingXS}})},{[`\n ${r}:not(${r}-disabled),\n ${t}:not(${t}-disabled)\n `]:{[`&:hover ${t}-inner`]:{borderColor:e.colorPrimary}},[`${r}:not(${r}-disabled)`]:{[`&:hover ${t}-checked:not(${t}-disabled) ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:\"transparent\"},[`&:hover ${t}-checked:not(${t}-disabled):after`]:{borderColor:e.colorPrimaryHover}}},{[`${t}-checked`]:{[`${t}-inner`]:{backgroundColor:e.colorPrimary,borderColor:e.colorPrimary,\"&:after\":{opacity:1,transform:\"rotate(45deg) scale(1) translate(-50%,-50%)\",transition:`all ${e.motionDurationMid} ${e.motionEaseOutBack} ${e.motionDurationFast}`}}},[`\n ${r}-checked:not(${r}-disabled),\n ${t}-checked:not(${t}-disabled)\n `]:{[`&:hover ${t}-inner`]:{backgroundColor:e.colorPrimaryHover,borderColor:\"transparent\"}}},{[t]:{\"&-indeterminate\":{\"&\":{[`${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorBorder}`,\"&:after\":{top:\"50%\",insetInlineStart:\"50%\",width:e.calc(e.fontSizeLG).div(2).equal(),height:e.calc(e.fontSizeLG).div(2).equal(),backgroundColor:e.colorPrimary,border:0,transform:\"translate(-50%, -50%) scale(1)\",opacity:1,content:'\"\"'}},[`&:hover ${t}-inner`]:{backgroundColor:`${e.colorBgContainer}`,borderColor:`${e.colorPrimary}`}}}}},{[`${r}-disabled`]:{cursor:\"not-allowed\"},[`${t}-disabled`]:{[`&, ${t}-input`]:{cursor:\"not-allowed\",pointerEvents:\"none\"},[`${t}-inner`]:{background:e.colorBgContainerDisabled,borderColor:e.colorBorder,\"&:after\":{borderColor:e.colorTextDisabled}},\"&:after\":{display:\"none\"},\"& + span\":{color:e.colorTextDisabled},[`&${t}-indeterminate ${t}-inner::after`]:{background:e.colorTextDisabled}}}]};function Cle(e,t){const r=Sr(t,{checkboxCls:`.${e}`,checkboxSize:t.controlInteractiveSize});return eRe(r)}const Fle=kr(\"Checkbox\",(e,{prefixCls:t})=>[Cle(t,e)]),Sle=le.createContext(null);var tRe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const rRe=(e,t)=>{var r;const{prefixCls:n,className:a,rootClassName:i,children:o,indeterminate:l=!1,style:s,onMouseEnter:u,onMouseLeave:c,skipGroup:d=!1,disabled:f}=e,h=tRe(e,[\"prefixCls\",\"className\",\"rootClassName\",\"children\",\"indeterminate\",\"style\",\"onMouseEnter\",\"onMouseLeave\",\"skipGroup\",\"disabled\"]),{getPrefixCls:p,direction:v,checkbox:g}=m.useContext(Ot),y=m.useContext(Sle),{isFormItemInput:b}=m.useContext(pi),x=m.useContext(Ui),F=(r=(y==null?void 0:y.disabled)||f)!==null&&r!==void 0?r:x,S=m.useRef(h.value),E=m.useRef(null),w=Qa(t,E);m.useEffect(()=>{y==null||y.registerValue(h.value)},[]),m.useEffect(()=>{if(!d)return h.value!==S.current&&(y==null||y.cancelValue(S.current),y==null||y.registerValue(h.value),S.current=h.value),()=>y==null?void 0:y.cancelValue(h.value)},[h.value]),m.useEffect(()=>{var N;!((N=E.current)===null||N===void 0)&&N.input&&(E.current.input.indeterminate=l)},[l]);const D=p(\"checkbox\",n),A=Zn(D),[_,I,M]=Fle(D,A),T=Object.assign({},h);y&&!d&&(T.onChange=(...N)=>{h.onChange&&h.onChange.apply(h,N),y.toggleOption&&y.toggleOption({label:o,value:h.value})},T.name=y.name,T.checked=y.value.includes(h.value));const k=ne(`${D}-wrapper`,{[`${D}-rtl`]:v===\"rtl\",[`${D}-wrapper-checked`]:T.checked,[`${D}-wrapper-disabled`]:F,[`${D}-wrapper-in-form-item`]:b},g==null?void 0:g.className,a,i,M,A,I),R=ne({[`${D}-indeterminate`]:l},r6,I),[P,B]=Qoe(T.onClick);return _(m.createElement(ux,{component:\"Checkbox\",disabled:F},m.createElement(\"label\",{className:k,style:Object.assign(Object.assign({},g==null?void 0:g.style),s),onMouseEnter:u,onMouseLeave:c,onClick:P},m.createElement(Zoe,Object.assign({},T,{onClick:B,prefixCls:D,className:R,disabled:F,ref:w})),o!=null&&m.createElement(\"span\",{className:`${D}-label`},o))))},wle=m.forwardRef(rRe);var nRe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const aRe=m.forwardRef((e,t)=>{const{defaultValue:r,children:n,options:a=[],prefixCls:i,className:o,rootClassName:l,style:s,onChange:u}=e,c=nRe(e,[\"defaultValue\",\"children\",\"options\",\"prefixCls\",\"className\",\"rootClassName\",\"style\",\"onChange\"]),{getPrefixCls:d,direction:f}=m.useContext(Ot),[h,p]=m.useState(c.value||r||[]),[v,g]=m.useState([]);m.useEffect(()=>{\"value\"in c&&p(c.value||[])},[c.value]);const y=m.useMemo(()=>a.map(R=>typeof R==\"string\"||typeof R==\"number\"?{label:R,value:R}:R),[a]),b=R=>{g(P=>P.filter(B=>B!==R))},x=R=>{g(P=>[].concat(He(P),[R]))},F=R=>{const P=h.indexOf(R.value),B=He(h);P===-1?B.push(R.value):B.splice(P,1),\"value\"in c||p(B),u==null||u(B.filter(N=>v.includes(N)).sort((N,O)=>{const z=y.findIndex(L=>L.value===N),W=y.findIndex(L=>L.value===O);return z-W}))},S=d(\"checkbox\",i),E=`${S}-group`,w=Zn(S),[D,A,_]=Fle(S,w),I=wn(c,[\"value\",\"disabled\"]),M=a.length?y.map(R=>m.createElement(wle,{prefixCls:S,key:R.value.toString(),disabled:\"disabled\"in R?R.disabled:c.disabled,value:R.value,checked:h.includes(R.value),onChange:R.onChange,className:ne(`${E}-item`,R.className),style:R.style,title:R.title,id:R.id,required:R.required},R.label)):n,T=m.useMemo(()=>({toggleOption:F,value:h,disabled:c.disabled,name:c.name,registerValue:x,cancelValue:b}),[F,h,c.disabled,c.name,x,b]),k=ne(E,{[`${E}-rtl`]:f===\"rtl\"},o,l,_,w,A);return D(m.createElement(\"div\",Object.assign({className:k,style:s},I,{ref:t}),m.createElement(Sle.Provider,{value:T},M)))}),J0=wle;J0.Group=aRe;J0.__ANT_CHECKBOX=!0;const Ele=m.createContext({});var iRe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function cV(e){return e===\"auto\"?\"1 1 auto\":typeof e==\"number\"?`${e} ${e} auto`:/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(e)?`0 0 ${e}`:e}const oRe=[\"xs\",\"sm\",\"md\",\"lg\",\"xl\",\"xxl\"],Se=m.forwardRef((e,t)=>{const{getPrefixCls:r,direction:n}=m.useContext(Ot),{gutter:a,wrap:i}=m.useContext(Ele),{prefixCls:o,span:l,order:s,offset:u,push:c,pull:d,className:f,children:h,flex:p,style:v}=e,g=iRe(e,[\"prefixCls\",\"span\",\"order\",\"offset\",\"push\",\"pull\",\"className\",\"children\",\"flex\",\"style\"]),y=r(\"col\",o),[b,x,F]=_6e(y),S={};let E={};oRe.forEach(A=>{let _={};const I=e[A];typeof I==\"number\"?_.span=I:typeof I==\"object\"&&(_=I||{}),delete g[A],E=Object.assign(Object.assign({},E),{[`${y}-${A}-${_.span}`]:_.span!==void 0,[`${y}-${A}-order-${_.order}`]:_.order||_.order===0,[`${y}-${A}-offset-${_.offset}`]:_.offset||_.offset===0,[`${y}-${A}-push-${_.push}`]:_.push||_.push===0,[`${y}-${A}-pull-${_.pull}`]:_.pull||_.pull===0,[`${y}-rtl`]:n===\"rtl\"}),_.flex&&(E[`${y}-${A}-flex`]=!0,S[`--${y}-${A}-flex`]=cV(_.flex))});const w=ne(y,{[`${y}-${l}`]:l!==void 0,[`${y}-order-${s}`]:s,[`${y}-offset-${u}`]:u,[`${y}-push-${c}`]:c,[`${y}-pull-${d}`]:d},f,E,x,F),D={};if(a!=null&&a[0]){const A=typeof a[0]==\"number\"?`${a[0]/2}px`:`calc(${a[0]} / 2)`;D.paddingLeft=A,D.paddingRight=A}return p&&(D.flex=cV(p),i===!1&&!D.minWidth&&(D.minWidth=0)),b(m.createElement(\"div\",Object.assign({},g,{style:Object.assign(Object.assign(Object.assign({},D),v),S),className:w,ref:t}),h))});function lRe(e,t){const r=[void 0,void 0],n=Array.isArray(e)?e:[e,void 0],a=t||{xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0};return n.forEach((i,o)=>{if(typeof i==\"object\"&&i!==null)for(let l=0;l<id.length;l++){const s=id[l];if(a[s]&&i[s]!==void 0){r[o]=i[s];break}}else r[o]=i}),r}var sRe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function dV(e,t){const[r,n]=m.useState(typeof e==\"string\"?e:\"\"),a=()=>{if(typeof e==\"string\"&&n(e),typeof e==\"object\")for(let i=0;i<id.length;i++){const o=id[i];if(!t||!t[o])continue;const l=e[o];if(l!==void 0){n(l);return}}};return m.useEffect(()=>{a()},[JSON.stringify(e),t]),r}const sr=m.forwardRef((e,t)=>{const{prefixCls:r,justify:n,align:a,className:i,style:o,children:l,gutter:s=0,wrap:u}=e,c=sRe(e,[\"prefixCls\",\"justify\",\"align\",\"className\",\"style\",\"children\",\"gutter\",\"wrap\"]),{getPrefixCls:d,direction:f}=m.useContext(Ot),h=Eg(!0,null),p=dV(a,h),v=dV(n,h),g=d(\"row\",r),[y,b,x]=A6e(g),F=lRe(s,h),S=ne(g,{[`${g}-no-wrap`]:u===!1,[`${g}-${v}`]:v,[`${g}-${p}`]:p,[`${g}-rtl`]:f===\"rtl\"},i,b,x),E={};if(F!=null&&F[0]){const _=typeof F[0]==\"number\"?`${F[0]/-2}px`:`calc(${F[0]} / -2)`;E.marginLeft=_,E.marginRight=_}const[w,D]=F;E.rowGap=D;const A=m.useMemo(()=>({gutter:[w,D],wrap:u}),[w,D,u]);return y(m.createElement(Ele.Provider,{value:A},m.createElement(\"div\",Object.assign({},c,{className:S,style:Object.assign(Object.assign({},E),o),ref:t}),l)))}),uRe=e=>{const{componentCls:t}=e;return{[t]:{\"&-horizontal\":{[`&${t}`]:{\"&-sm\":{marginBlock:e.marginXS},\"&-md\":{marginBlock:e.margin}}}}}},cRe=e=>{const{componentCls:t,sizePaddingEdgeHorizontal:r,colorSplit:n,lineWidth:a,textPaddingInline:i,orientationMargin:o,verticalMarginInline:l}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{borderBlockStart:`${re(a)} solid ${n}`,\"&-vertical\":{position:\"relative\",top:\"-0.06em\",display:\"inline-block\",height:\"0.9em\",marginInline:l,marginBlock:0,verticalAlign:\"middle\",borderTop:0,borderInlineStart:`${re(a)} solid ${n}`},\"&-horizontal\":{display:\"flex\",clear:\"both\",width:\"100%\",minWidth:\"100%\",margin:`${re(e.marginLG)} 0`},[`&-horizontal${t}-with-text`]:{display:\"flex\",alignItems:\"center\",margin:`${re(e.dividerHorizontalWithTextGutterMargin)} 0`,color:e.colorTextHeading,fontWeight:500,fontSize:e.fontSizeLG,whiteSpace:\"nowrap\",textAlign:\"center\",borderBlockStart:`0 ${n}`,\"&::before, &::after\":{position:\"relative\",width:\"50%\",borderBlockStart:`${re(a)} solid transparent`,borderBlockStartColor:\"inherit\",borderBlockEnd:0,transform:\"translateY(50%)\",content:\"''\"}},[`&-horizontal${t}-with-text-start`]:{\"&::before\":{width:`calc(${o} * 100%)`},\"&::after\":{width:`calc(100% - ${o} * 100%)`}},[`&-horizontal${t}-with-text-end`]:{\"&::before\":{width:`calc(100% - ${o} * 100%)`},\"&::after\":{width:`calc(${o} * 100%)`}},[`${t}-inner-text`]:{display:\"inline-block\",paddingBlock:0,paddingInline:i},\"&-dashed\":{background:\"none\",borderColor:n,borderStyle:\"dashed\",borderWidth:`${re(a)} 0 0`},[`&-horizontal${t}-with-text${t}-dashed`]:{\"&::before, &::after\":{borderStyle:\"dashed none none\"}},[`&-vertical${t}-dashed`]:{borderInlineStartWidth:a,borderInlineEnd:0,borderBlockStart:0,borderBlockEnd:0},\"&-dotted\":{background:\"none\",borderColor:n,borderStyle:\"dotted\",borderWidth:`${re(a)} 0 0`},[`&-horizontal${t}-with-text${t}-dotted`]:{\"&::before, &::after\":{borderStyle:\"dotted none none\"}},[`&-vertical${t}-dotted`]:{borderInlineStartWidth:a,borderInlineEnd:0,borderBlockStart:0,borderBlockEnd:0},[`&-plain${t}-with-text`]:{color:e.colorText,fontWeight:\"normal\",fontSize:e.fontSize},[`&-horizontal${t}-with-text-start${t}-no-default-orientation-margin-start`]:{\"&::before\":{width:0},\"&::after\":{width:\"100%\"},[`${t}-inner-text`]:{paddingInlineStart:r}},[`&-horizontal${t}-with-text-end${t}-no-default-orientation-margin-end`]:{\"&::before\":{width:\"100%\"},\"&::after\":{width:0},[`${t}-inner-text`]:{paddingInlineEnd:r}}})}},dRe=e=>({textPaddingInline:\"1em\",orientationMargin:.05,verticalMarginInline:e.marginXS}),fRe=kr(\"Divider\",e=>{const t=Sr(e,{dividerHorizontalWithTextGutterMargin:e.margin,sizePaddingEdgeHorizontal:0});return[cRe(t),uRe(t)]},dRe,{unitless:{orientationMargin:!0}});var hRe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const pRe={small:\"sm\",middle:\"md\"},wp=e=>{const{getPrefixCls:t,direction:r,className:n,style:a}=na(\"divider\"),{prefixCls:i,type:o=\"horizontal\",orientation:l=\"center\",orientationMargin:s,className:u,rootClassName:c,children:d,dashed:f,variant:h=\"solid\",plain:p,style:v,size:g}=e,y=hRe(e,[\"prefixCls\",\"type\",\"orientation\",\"orientationMargin\",\"className\",\"rootClassName\",\"children\",\"dashed\",\"variant\",\"plain\",\"style\",\"size\"]),b=t(\"divider\",i),[x,F,S]=fRe(b),E=Ta(g),w=pRe[E],D=!!d,A=m.useMemo(()=>l===\"left\"?r===\"rtl\"?\"end\":\"start\":l===\"right\"?r===\"rtl\"?\"start\":\"end\":l,[r,l]),_=A===\"start\"&&s!=null,I=A===\"end\"&&s!=null,M=ne(b,n,F,S,`${b}-${o}`,{[`${b}-with-text`]:D,[`${b}-with-text-${A}`]:D,[`${b}-dashed`]:!!f,[`${b}-${h}`]:h!==\"solid\",[`${b}-plain`]:!!p,[`${b}-rtl`]:r===\"rtl\",[`${b}-no-default-orientation-margin-start`]:_,[`${b}-no-default-orientation-margin-end`]:I,[`${b}-${w}`]:!!w},u,c),T=m.useMemo(()=>typeof s==\"number\"?s:/^\\d+$/.test(s)?Number(s):s,[s]),k={marginInlineStart:_?T:void 0,marginInlineEnd:I?T:void 0};return x(m.createElement(\"div\",Object.assign({className:M,style:Object.assign(Object.assign({},a),v)},y,{role:\"separator\"}),d&&o!==\"vertical\"&&m.createElement(\"span\",{className:`${b}-inner-text`,style:k},d)))};var mRe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z\"}}]},name:\"up\",theme:\"outlined\"},vRe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:mRe}))},Dle=m.forwardRef(vRe);function $R(){return typeof BigInt==\"function\"}function Ale(e){return!e&&e!==0&&!Number.isNaN(e)||!String(e).trim()}function Ep(e){var t=e.trim(),r=t.startsWith(\"-\");r&&(t=t.slice(1)),t=t.replace(/(\\.\\d*[^0])0*$/,\"$1\").replace(/\\.0*$/,\"\").replace(/^0+/,\"\"),t.startsWith(\".\")&&(t=\"0\".concat(t));var n=t||\"0\",a=n.split(\".\"),i=a[0]||\"0\",o=a[1]||\"0\";i===\"0\"&&o===\"0\"&&(r=!1);var l=r?\"-\":\"\";return{negative:r,negativeStr:l,trimStr:n,integerStr:i,decimalStr:o,fullStr:\"\".concat(l).concat(n)}}function L6(e){var t=String(e);return!Number.isNaN(Number(t))&&t.includes(\"e\")}function _le(e){var t=e.toLowerCase().split(\"e\"),r=ve(t,2),n=r[0],a=r[1],i=a===void 0?\"0\":a,o=n.startsWith(\"-\"),l=o?n.slice(1):n,s=l.split(\".\"),u=ve(s,2),c=u[0],d=c===void 0?\"0\":c,f=u[1],h=f===void 0?\"\":f,p=\"\".concat(d).concat(h).replace(/^0+/,\"\")||\"0\";return{decimal:h,digits:p,exponent:Number(i),integer:d,negative:o}}function gRe(e){var t=e.decimal,r=e.digits,n=e.exponent,a=e.integer,i=e.negative;if(r===\"0\")return\"0\";var o=a.replace(/^0+/,\"\").length,l=(t.match(/^0*/)||[\"\"])[0].length,s=o||-l,u=s+n,c=\"\";return u<=0?c=\"0.\".concat(\"0\".repeat(-u)).concat(r):u>=r.length?c=\"\".concat(r).concat(\"0\".repeat(u-r.length)):c=\"\".concat(r.slice(0,u),\".\").concat(r.slice(u)),\"\".concat(i?\"-\":\"\").concat(c)}function Tle(e){return e.exponent>=0?Math.max(0,e.decimal.length-e.exponent):Math.abs(e.exponent)+e.decimal.length}function Jh(e){var t=String(e);return L6(e)?Tle(_le(t)):t.includes(\".\")&&AO(t)?t.length-t.indexOf(\".\")-1:0}function j6(e){var t=String(e);if(L6(e)){if(e>Number.MAX_SAFE_INTEGER)return String($R()?BigInt(e).toString():Number.MAX_SAFE_INTEGER);if(e<Number.MIN_SAFE_INTEGER)return String($R()?BigInt(e).toString():Number.MIN_SAFE_INTEGER);var r=_le(t),n=Tle(r);t=n>100?gRe(r):e.toFixed(n)}return Ep(t).fullStr}function AO(e){return typeof e==\"number\"?!Number.isNaN(e):e?/^\\s*-?\\d+(\\.\\d+)?\\s*$/.test(e)||/^\\s*-?\\d+\\.\\s*$/.test(e)||/^\\s*-?\\.\\d+\\s*$/.test(e):!1}var yRe=function(){function e(t){if(Xn(this,e),Z(this,\"origin\",\"\"),Z(this,\"negative\",void 0),Z(this,\"integer\",void 0),Z(this,\"decimal\",void 0),Z(this,\"decimalLen\",void 0),Z(this,\"empty\",void 0),Z(this,\"nan\",void 0),Ale(t)){this.empty=!0;return}if(this.origin=String(t),t===\"-\"||Number.isNaN(t)){this.nan=!0;return}var r=t;if(L6(r)&&(r=Number(r)),r=typeof r==\"string\"?r:j6(r),AO(r)){var n=Ep(r);this.negative=n.negative;var a=n.trimStr.split(\".\");this.integer=BigInt(a[0]);var i=a[1]||\"0\";this.decimal=BigInt(i),this.decimalLen=i.length}else this.nan=!0}return Jn(e,[{key:\"getMark\",value:function(){return this.negative?\"-\":\"\"}},{key:\"getIntegerStr\",value:function(){return this.integer.toString()}},{key:\"getDecimalStr\",value:function(){return this.decimal.toString().padStart(this.decimalLen,\"0\")}},{key:\"alignDecimal\",value:function(r){var n=\"\".concat(this.getMark()).concat(this.getIntegerStr()).concat(this.getDecimalStr().padEnd(r,\"0\"));return BigInt(n)}},{key:\"negate\",value:function(){var r=new e(this.toString());return r.negative=!r.negative,r}},{key:\"cal\",value:function(r,n,a){var i=Math.max(this.getDecimalStr().length,r.getDecimalStr().length),o=this.alignDecimal(i),l=r.alignDecimal(i),s=n(o,l).toString(),u=a(i),c=Ep(s),d=c.negativeStr,f=c.trimStr,h=\"\".concat(d).concat(f.padStart(u+1,\"0\"));return new e(\"\".concat(h.slice(0,-u),\".\").concat(h.slice(-u)))}},{key:\"add\",value:function(r){if(this.isInvalidate())return new e(r);var n=new e(r);return n.isInvalidate()?this:this.cal(n,function(a,i){return a+i},function(a){return a})}},{key:\"multi\",value:function(r){var n=new e(r);return this.isInvalidate()||n.isInvalidate()?new e(NaN):this.cal(n,function(a,i){return a*i},function(a){return a*2})}},{key:\"isEmpty\",value:function(){return this.empty}},{key:\"isNaN\",value:function(){return this.nan}},{key:\"isInvalidate\",value:function(){return this.isEmpty()||this.isNaN()}},{key:\"equals\",value:function(r){return this.toString()===(r==null?void 0:r.toString())}},{key:\"lessEquals\",value:function(r){return this.add(r.negate().toString()).toNumber()<=0}},{key:\"toNumber\",value:function(){return this.isNaN()?NaN:Number(this.toString())}},{key:\"toString\",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return r?this.isInvalidate()?\"\":Ep(\"\".concat(this.getMark()).concat(this.getIntegerStr(),\".\").concat(this.getDecimalStr())).fullStr:this.origin}}]),e}(),bRe=function(){function e(t){if(Xn(this,e),Z(this,\"origin\",\"\"),Z(this,\"number\",void 0),Z(this,\"empty\",void 0),Ale(t)){this.empty=!0;return}this.origin=String(t),this.number=Number(t)}return Jn(e,[{key:\"negate\",value:function(){return new e(-this.toNumber())}},{key:\"add\",value:function(r){if(this.isInvalidate())return new e(r);var n=Number(r);if(Number.isNaN(n))return this;var a=this.number+n;if(a>Number.MAX_SAFE_INTEGER)return new e(Number.MAX_SAFE_INTEGER);if(a<Number.MIN_SAFE_INTEGER)return new e(Number.MIN_SAFE_INTEGER);var i=Math.max(Jh(this.number),Jh(n));return new e(a.toFixed(i))}},{key:\"multi\",value:function(r){var n=Number(r);if(this.isInvalidate()||Number.isNaN(n))return new e(NaN);var a=this.number*n;if(a>Number.MAX_SAFE_INTEGER)return new e(Number.MAX_SAFE_INTEGER);if(a<Number.MIN_SAFE_INTEGER)return new e(Number.MIN_SAFE_INTEGER);var i=Math.max(Jh(this.number),Jh(n));return new e(a.toFixed(i))}},{key:\"isEmpty\",value:function(){return this.empty}},{key:\"isNaN\",value:function(){return Number.isNaN(this.number)}},{key:\"isInvalidate\",value:function(){return this.isEmpty()||this.isNaN()}},{key:\"equals\",value:function(r){return this.toNumber()===(r==null?void 0:r.toNumber())}},{key:\"lessEquals\",value:function(r){return this.add(r.negate().toString()).toNumber()<=0}},{key:\"toNumber\",value:function(){return this.number}},{key:\"toString\",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return r?this.isInvalidate()?\"\":L6(this.number)&&Jh(this.number)>100?String(this.number):j6(this.number):this.origin}}]),e}();function Ws(e){return $R()?new yRe(e):new bRe(e)}function cw(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===\"\")return\"\";var a=Ep(e),i=a.negativeStr,o=a.integerStr,l=a.decimalStr,s=\"\".concat(t).concat(l),u=\"\".concat(i).concat(o);if(r>=0){var c=Number(l[r]);if(c>=5&&!n){var d=Ws(e).add(\"\".concat(i,\"0.\").concat(\"0\".repeat(r)).concat(10-c));return cw(d.toString(),t,r,n)}return r===0?u:\"\".concat(u).concat(t).concat(l.padEnd(r,\"0\").slice(0,r))}return s===\".0\"?u:\"\".concat(u).concat(s)}function xRe(e){return!!(e.addonBefore||e.addonAfter)}function CRe(e){return!!(e.prefix||e.suffix||e.allowClear)}function fV(e,t,r){var n=t.cloneNode(!0),a=Object.create(e,{target:{value:n},currentTarget:{value:n}});return n.value=r,typeof t.selectionStart==\"number\"&&typeof t.selectionEnd==\"number\"&&(n.selectionStart=t.selectionStart,n.selectionEnd=t.selectionEnd),n.setSelectionRange=function(){t.setSelectionRange.apply(t,arguments)},a}function IE(e,t,r,n){if(r){var a=t;if(t.type===\"click\"){a=fV(t,e,\"\"),r(a);return}if(e.type!==\"file\"&&n!==void 0){a=fV(t,e,n),r(a);return}r(a)}}function _O(e,t){if(e){e.focus(t);var r=t||{},n=r.cursor;if(n){var a=e.value.length;switch(n){case\"start\":e.setSelectionRange(0,0);break;case\"end\":e.setSelectionRange(a,a);break;default:e.setSelectionRange(0,a)}}}}var TO=le.forwardRef(function(e,t){var r,n,a,i=e.inputElement,o=e.children,l=e.prefixCls,s=e.prefix,u=e.suffix,c=e.addonBefore,d=e.addonAfter,f=e.className,h=e.style,p=e.disabled,v=e.readOnly,g=e.focused,y=e.triggerFocus,b=e.allowClear,x=e.value,F=e.handleReset,S=e.hidden,E=e.classes,w=e.classNames,D=e.dataAttrs,A=e.styles,_=e.components,I=e.onClear,M=o??i,T=(_==null?void 0:_.affixWrapper)||\"span\",k=(_==null?void 0:_.groupWrapper)||\"span\",R=(_==null?void 0:_.wrapper)||\"span\",P=(_==null?void 0:_.groupAddon)||\"span\",B=m.useRef(null),N=function(ue){var ie;(ie=B.current)!==null&&ie!==void 0&&ie.contains(ue.target)&&(y==null||y())},O=CRe(e),z=m.cloneElement(M,{value:x,className:ne((r=M.props)===null||r===void 0?void 0:r.className,!O&&(w==null?void 0:w.variant))||null}),W=m.useRef(null);if(le.useImperativeHandle(t,function(){return{nativeElement:W.current||B.current}}),O){var L=null;if(b){var j=!p&&!v&&x,H=\"\".concat(l,\"-clear-icon\"),V=Nt(b)===\"object\"&&b!==null&&b!==void 0&&b.clearIcon?b.clearIcon:\"✖\";L=le.createElement(\"button\",{type:\"button\",tabIndex:-1,onClick:function(ue){F==null||F(ue),I==null||I()},onMouseDown:function(ue){return ue.preventDefault()},className:ne(H,Z(Z({},\"\".concat(H,\"-hidden\"),!j),\"\".concat(H,\"-has-suffix\"),!!u))},V)}var U=\"\".concat(l,\"-affix-wrapper\"),Q=ne(U,Z(Z(Z(Z(Z({},\"\".concat(l,\"-disabled\"),p),\"\".concat(U,\"-disabled\"),p),\"\".concat(U,\"-focused\"),g),\"\".concat(U,\"-readonly\"),v),\"\".concat(U,\"-input-with-clear-btn\"),u&&b&&x),E==null?void 0:E.affixWrapper,w==null?void 0:w.affixWrapper,w==null?void 0:w.variant),K=(u||b)&&le.createElement(\"span\",{className:ne(\"\".concat(l,\"-suffix\"),w==null?void 0:w.suffix),style:A==null?void 0:A.suffix},L,u);z=le.createElement(T,Ce({className:Q,style:A==null?void 0:A.affixWrapper,onClick:N},D==null?void 0:D.affixWrapper,{ref:B}),s&&le.createElement(\"span\",{className:ne(\"\".concat(l,\"-prefix\"),w==null?void 0:w.prefix),style:A==null?void 0:A.prefix},s),z,K)}if(xRe(e)){var Y=\"\".concat(l,\"-group\"),ee=\"\".concat(Y,\"-addon\"),J=\"\".concat(Y,\"-wrapper\"),X=ne(\"\".concat(l,\"-wrapper\"),Y,E==null?void 0:E.wrapper,w==null?void 0:w.wrapper),ce=ne(J,Z({},\"\".concat(J,\"-disabled\"),p),E==null?void 0:E.group,w==null?void 0:w.groupWrapper);z=le.createElement(k,{className:ce,ref:W},le.createElement(R,{className:X},c&&le.createElement(P,{className:ee},c),z,d&&le.createElement(P,{className:ee},d)))}return le.cloneElement(z,{className:ne((n=z.props)===null||n===void 0?void 0:n.className,f)||null,style:ae(ae({},(a=z.props)===null||a===void 0?void 0:a.style),h),hidden:S})}),FRe=[\"show\"];function Ile(e,t){return m.useMemo(function(){var r={};t&&(r.show=Nt(t)===\"object\"&&t.formatter?t.formatter:!!t),r=ae(ae({},r),e);var n=r,a=n.show,i=Xt(n,FRe);return ae(ae({},i),{},{show:!!a,showFormatter:typeof a==\"function\"?a:void 0,strategy:i.strategy||function(o){return o.length}})},[e,t])}var SRe=[\"autoComplete\",\"onChange\",\"onFocus\",\"onBlur\",\"onPressEnter\",\"onKeyDown\",\"onKeyUp\",\"prefixCls\",\"disabled\",\"htmlSize\",\"className\",\"maxLength\",\"suffix\",\"showCount\",\"count\",\"type\",\"classes\",\"classNames\",\"styles\",\"onCompositionStart\",\"onCompositionEnd\"],wRe=m.forwardRef(function(e,t){var r=e.autoComplete,n=e.onChange,a=e.onFocus,i=e.onBlur,o=e.onPressEnter,l=e.onKeyDown,s=e.onKeyUp,u=e.prefixCls,c=u===void 0?\"rc-input\":u,d=e.disabled,f=e.htmlSize,h=e.className,p=e.maxLength,v=e.suffix,g=e.showCount,y=e.count,b=e.type,x=b===void 0?\"text\":b,F=e.classes,S=e.classNames,E=e.styles,w=e.onCompositionStart,D=e.onCompositionEnd,A=Xt(e,SRe),_=m.useState(!1),I=ve(_,2),M=I[0],T=I[1],k=m.useRef(!1),R=m.useRef(!1),P=m.useRef(null),B=m.useRef(null),N=function(me){P.current&&_O(P.current,me)},O=un(e.defaultValue,{value:e.value}),z=ve(O,2),W=z[0],L=z[1],j=W==null?\"\":String(W),H=m.useState(null),V=ve(H,2),U=V[0],Q=V[1],K=Ile(y,g),Y=K.max||p,ee=K.strategy(j),J=!!Y&&ee>Y;m.useImperativeHandle(t,function(){var Fe;return{focus:N,blur:function(){var Me;(Me=P.current)===null||Me===void 0||Me.blur()},setSelectionRange:function(Me,je,lt){var tt;(tt=P.current)===null||tt===void 0||tt.setSelectionRange(Me,je,lt)},select:function(){var Me;(Me=P.current)===null||Me===void 0||Me.select()},input:P.current,nativeElement:((Fe=B.current)===null||Fe===void 0?void 0:Fe.nativeElement)||P.current}}),m.useEffect(function(){R.current&&(R.current=!1),T(function(Fe){return Fe&&d?!1:Fe})},[d]);var X=function(me,Me,je){var lt=Me;if(!k.current&&K.exceedFormatter&&K.max&&K.strategy(Me)>K.max){if(lt=K.exceedFormatter(Me,{max:K.max}),Me!==lt){var tt,rt;Q([((tt=P.current)===null||tt===void 0?void 0:tt.selectionStart)||0,((rt=P.current)===null||rt===void 0?void 0:rt.selectionEnd)||0])}}else if(je.source===\"compositionEnd\")return;L(lt),P.current&&IE(P.current,me,n,lt)};m.useEffect(function(){if(U){var Fe;(Fe=P.current)===null||Fe===void 0||Fe.setSelectionRange.apply(Fe,He(U))}},[U]);var ce=function(me){X(me,me.target.value,{source:\"change\"})},oe=function(me){k.current=!1,X(me,me.currentTarget.value,{source:\"compositionEnd\"}),D==null||D(me)},ue=function(me){o&&me.key===\"Enter\"&&!R.current&&(R.current=!0,o(me)),l==null||l(me)},ie=function(me){me.key===\"Enter\"&&(R.current=!1),s==null||s(me)},fe=function(me){T(!0),a==null||a(me)},xe=function(me){R.current&&(R.current=!1),T(!1),i==null||i(me)},Ee=function(me){L(\"\"),N(),P.current&&IE(P.current,me,n)},De=J&&\"\".concat(c,\"-out-of-range\"),ye=function(){var me=wn(e,[\"prefixCls\",\"onPressEnter\",\"addonBefore\",\"addonAfter\",\"prefix\",\"suffix\",\"allowClear\",\"defaultValue\",\"showCount\",\"count\",\"classes\",\"htmlSize\",\"styles\",\"classNames\",\"onClear\"]);return le.createElement(\"input\",Ce({autoComplete:r},me,{onChange:ce,onFocus:fe,onBlur:xe,onKeyDown:ue,onKeyUp:ie,className:ne(c,Z({},\"\".concat(c,\"-disabled\"),d),S==null?void 0:S.input),style:E==null?void 0:E.input,ref:P,size:f,type:x,onCompositionStart:function(je){k.current=!0,w==null||w(je)},onCompositionEnd:oe}))},we=function(){var me=Number(Y)>0;if(v||K.show){var Me=K.showFormatter?K.showFormatter({value:j,count:ee,maxLength:Y}):\"\".concat(ee).concat(me?\" / \".concat(Y):\"\");return le.createElement(le.Fragment,null,K.show&&le.createElement(\"span\",{className:ne(\"\".concat(c,\"-show-count-suffix\"),Z({},\"\".concat(c,\"-show-count-has-suffix\"),!!v),S==null?void 0:S.count),style:ae({},E==null?void 0:E.count)},Me),v)}return null};return le.createElement(TO,Ce({},A,{prefixCls:c,className:ne(h,De),handleReset:Ee,value:j,focused:M,triggerFocus:N,suffix:we(),disabled:d,classes:F,classNames:S,styles:E,ref:B}),ye())});function ERe(e,t){return typeof Proxy<\"u\"&&e?new Proxy(e,{get:function(n,a){if(t[a])return t[a];var i=n[a];return typeof i==\"function\"?i.bind(n):i}}):e}function DRe(e,t){var r=m.useRef(null);function n(){try{var i=e.selectionStart,o=e.selectionEnd,l=e.value,s=l.substring(0,i),u=l.substring(o);r.current={start:i,end:o,value:l,beforeTxt:s,afterTxt:u}}catch{}}function a(){if(e&&r.current&&t)try{var i=e.value,o=r.current,l=o.beforeTxt,s=o.afterTxt,u=o.start,c=i.length;if(i.startsWith(l))c=l.length;else if(i.endsWith(s))c=i.length-r.current.afterTxt.length;else{var d=l[u-1],f=i.indexOf(d,u-1);f!==-1&&(c=f+1)}e.setSelectionRange(c,c)}catch(h){jn(!1,\"Something warning of cursor restore. Please fire issue about this: \".concat(h.message))}}return[n,a]}var ARe=function(){var t=m.useState(!1),r=ve(t,2),n=r[0],a=r[1];return _r(function(){a(y6())},[]),n},_Re=200,TRe=600;function IRe(e){var t=e.prefixCls,r=e.upNode,n=e.downNode,a=e.upDisabled,i=e.downDisabled,o=e.onStep,l=m.useRef(),s=m.useRef([]),u=m.useRef();u.current=o;var c=function(){clearTimeout(l.current)},d=function(x,F){x.preventDefault(),c(),u.current(F);function S(){u.current(F),l.current=setTimeout(S,_Re)}l.current=setTimeout(S,TRe)};m.useEffect(function(){return function(){c(),s.current.forEach(function(b){return Tr.cancel(b)})}},[]);var f=ARe();if(f)return null;var h=\"\".concat(t,\"-handler\"),p=ne(h,\"\".concat(h,\"-up\"),Z({},\"\".concat(h,\"-up-disabled\"),a)),v=ne(h,\"\".concat(h,\"-down\"),Z({},\"\".concat(h,\"-down-disabled\"),i)),g=function(){return s.current.push(Tr(c))},y={unselectable:\"on\",role:\"button\",onMouseUp:g,onMouseLeave:g};return m.createElement(\"div\",{className:\"\".concat(h,\"-wrap\")},m.createElement(\"span\",Ce({},y,{onMouseDown:function(x){d(x,!0)},\"aria-label\":\"Increase Value\",\"aria-disabled\":a,className:p}),r||m.createElement(\"span\",{unselectable:\"on\",className:\"\".concat(t,\"-handler-up-inner\")})),m.createElement(\"span\",Ce({},y,{onMouseDown:function(x){d(x,!1)},\"aria-label\":\"Decrease Value\",\"aria-disabled\":i,className:v}),n||m.createElement(\"span\",{unselectable:\"on\",className:\"\".concat(t,\"-handler-down-inner\")})))}function hV(e){var t=typeof e==\"number\"?j6(e):Ep(e).fullStr,r=t.includes(\".\");return r?Ep(t.replace(/(\\d)\\.(\\d)/g,\"$1$2.\")).fullStr:e+\"0\"}const kRe=function(){var e=m.useRef(0),t=function(){Tr.cancel(e.current)};return m.useEffect(function(){return t},[]),function(r){t(),e.current=Tr(function(){r()})}};var RRe=[\"prefixCls\",\"className\",\"style\",\"min\",\"max\",\"step\",\"defaultValue\",\"value\",\"disabled\",\"readOnly\",\"upHandler\",\"downHandler\",\"keyboard\",\"changeOnWheel\",\"controls\",\"classNames\",\"stringMode\",\"parser\",\"formatter\",\"precision\",\"decimalSeparator\",\"onChange\",\"onInput\",\"onPressEnter\",\"onStep\",\"changeOnBlur\",\"domRef\"],MRe=[\"disabled\",\"style\",\"prefixCls\",\"value\",\"prefix\",\"suffix\",\"addonBefore\",\"addonAfter\",\"className\",\"classNames\"],pV=function(t,r){return t||r.isEmpty()?r.toString():r.toNumber()},mV=function(t){var r=Ws(t);return r.isInvalidate()?null:r},PRe=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.className,a=e.style,i=e.min,o=e.max,l=e.step,s=l===void 0?1:l,u=e.defaultValue,c=e.value,d=e.disabled,f=e.readOnly,h=e.upHandler,p=e.downHandler,v=e.keyboard,g=e.changeOnWheel,y=g===void 0?!1:g,b=e.controls,x=b===void 0?!0:b;e.classNames;var F=e.stringMode,S=e.parser,E=e.formatter,w=e.precision,D=e.decimalSeparator,A=e.onChange,_=e.onInput,I=e.onPressEnter,M=e.onStep,T=e.changeOnBlur,k=T===void 0?!0:T,R=e.domRef,P=Xt(e,RRe),B=\"\".concat(r,\"-input\"),N=m.useRef(null),O=m.useState(!1),z=ve(O,2),W=z[0],L=z[1],j=m.useRef(!1),H=m.useRef(!1),V=m.useRef(!1),U=m.useState(function(){return Ws(c??u)}),Q=ve(U,2),K=Q[0],Y=Q[1];function ee(ht){c===void 0&&Y(ht)}var J=m.useCallback(function(ht,gt){if(!gt)return w>=0?w:Math.max(Jh(ht),Jh(s))},[w,s]),X=m.useCallback(function(ht){var gt=String(ht);if(S)return S(gt);var Et=gt;return D&&(Et=Et.replace(D,\".\")),Et.replace(/[^\\w.-]+/g,\"\")},[S,D]),ce=m.useRef(\"\"),oe=m.useCallback(function(ht,gt){if(E)return E(ht,{userTyping:gt,input:String(ce.current)});var Et=typeof ht==\"number\"?j6(ht):ht;if(!gt){var xt=J(Et,gt);if(AO(Et)&&(D||xt>=0)){var Dt=D||\".\";Et=cw(Et,Dt,xt)}}return Et},[E,J,D]),ue=m.useState(function(){var ht=u??c;return K.isInvalidate()&&[\"string\",\"number\"].includes(Nt(ht))?Number.isNaN(ht)?\"\":ht:oe(K.toString(),!1)}),ie=ve(ue,2),fe=ie[0],xe=ie[1];ce.current=fe;function Ee(ht,gt){xe(oe(ht.isInvalidate()?ht.toString(!1):ht.toString(!gt),gt))}var De=m.useMemo(function(){return mV(o)},[o,w]),ye=m.useMemo(function(){return mV(i)},[i,w]),we=m.useMemo(function(){return!De||!K||K.isInvalidate()?!1:De.lessEquals(K)},[De,K]),Fe=m.useMemo(function(){return!ye||!K||K.isInvalidate()?!1:K.lessEquals(ye)},[ye,K]),me=DRe(N.current,W),Me=ve(me,2),je=Me[0],lt=Me[1],tt=function(gt){return De&&!gt.lessEquals(De)?De:ye&&!ye.lessEquals(gt)?ye:null},rt=function(gt){return!tt(gt)},dt=function(gt,Et){var xt=gt,Dt=rt(xt)||xt.isEmpty();if(!xt.isEmpty()&&!Et&&(xt=tt(xt)||xt,Dt=!0),!f&&!d&&Dt){var ur=xt.toString(),mr=J(ur,Et);return mr>=0&&(xt=Ws(cw(ur,\".\",mr)),rt(xt)||(xt=Ws(cw(ur,\".\",mr,!0)))),xt.equals(K)||(ee(xt),A==null||A(xt.isEmpty()?null:pV(F,xt)),c===void 0&&Ee(xt,Et)),xt}return K},Ve=kRe(),Ie=function ht(gt){if(je(),ce.current=gt,xe(gt),!H.current){var Et=X(gt),xt=Ws(Et);xt.isNaN()||dt(xt,!0)}_==null||_(gt),Ve(function(){var Dt=gt;S||(Dt=gt.replace(/。/g,\".\")),Dt!==gt&&ht(Dt)})},Je=function(){H.current=!0},Pe=function(){H.current=!1,Ie(N.current.value)},Ge=function(gt){Ie(gt.target.value)},Ae=function(gt){var Et;if(!(gt&&we||!gt&&Fe)){j.current=!1;var xt=Ws(V.current?hV(s):s);gt||(xt=xt.negate());var Dt=(K||Ws(0)).add(xt.toString()),ur=dt(Dt,!1);M==null||M(pV(F,ur),{offset:V.current?hV(s):s,type:gt?\"up\":\"down\"}),(Et=N.current)===null||Et===void 0||Et.focus()}},_e=function(gt){var Et=Ws(X(fe)),xt;Et.isNaN()?xt=dt(K,gt):xt=dt(Et,gt),c!==void 0?Ee(K,!1):xt.isNaN()||Ee(xt,!1)},$e=function(){j.current=!0},Ke=function(gt){var Et=gt.key,xt=gt.shiftKey;j.current=!0,V.current=xt,Et===\"Enter\"&&(H.current||(j.current=!1),_e(!1),I==null||I(gt)),v!==!1&&!H.current&&[\"Up\",\"ArrowUp\",\"Down\",\"ArrowDown\"].includes(Et)&&(Ae(Et===\"Up\"||Et===\"ArrowUp\"),gt.preventDefault())},pt=function(){j.current=!1,V.current=!1};m.useEffect(function(){if(y&&W){var ht=function(xt){Ae(xt.deltaY<0),xt.preventDefault()},gt=N.current;if(gt)return gt.addEventListener(\"wheel\",ht,{passive:!1}),function(){return gt.removeEventListener(\"wheel\",ht)}}});var _t=function(){k&&_e(!1),L(!1),j.current=!1};return Fp(function(){K.isInvalidate()||Ee(K,!1)},[w,E]),Fp(function(){var ht=Ws(c);Y(ht);var gt=Ws(X(fe));(!ht.equals(gt)||!j.current||E)&&Ee(ht,j.current)},[c]),Fp(function(){E&&lt()},[fe]),m.createElement(\"div\",{ref:R,className:ne(r,n,Z(Z(Z(Z(Z({},\"\".concat(r,\"-focused\"),W),\"\".concat(r,\"-disabled\"),d),\"\".concat(r,\"-readonly\"),f),\"\".concat(r,\"-not-a-number\"),K.isNaN()),\"\".concat(r,\"-out-of-range\"),!K.isInvalidate()&&!rt(K))),style:a,onFocus:function(){L(!0)},onBlur:_t,onKeyDown:Ke,onKeyUp:pt,onCompositionStart:Je,onCompositionEnd:Pe,onBeforeInput:$e},x&&m.createElement(IRe,{prefixCls:r,upNode:h,downNode:p,upDisabled:we,downDisabled:Fe,onStep:Ae}),m.createElement(\"div\",{className:\"\".concat(B,\"-wrap\")},m.createElement(\"input\",Ce({autoComplete:\"off\",role:\"spinbutton\",\"aria-valuemin\":i,\"aria-valuemax\":o,\"aria-valuenow\":K.isInvalidate()?null:K.toString(),step:s},P,{ref:Qa(N,t),className:B,value:fe,onChange:Ge,disabled:d,readOnly:f}))))}),ORe=m.forwardRef(function(e,t){var r=e.disabled,n=e.style,a=e.prefixCls,i=a===void 0?\"rc-input-number\":a,o=e.value,l=e.prefix,s=e.suffix,u=e.addonBefore,c=e.addonAfter,d=e.className,f=e.classNames,h=Xt(e,MRe),p=m.useRef(null),v=m.useRef(null),g=m.useRef(null),y=function(x){g.current&&_O(g.current,x)};return m.useImperativeHandle(t,function(){return ERe(g.current,{focus:y,nativeElement:p.current.nativeElement||v.current})}),m.createElement(TO,{className:d,triggerFocus:y,prefixCls:i,value:o,disabled:r,style:n,prefix:l,suffix:s,addonAfter:c,addonBefore:u,classNames:f,components:{affixWrapper:\"div\",groupWrapper:\"div\",wrapper:\"div\",groupAddon:\"div\"},ref:p},m.createElement(PRe,Ce({prefixCls:i,disabled:r,ref:g,domRef:v,className:f==null?void 0:f.input},h)))});const BRe=e=>{var t;const r=(t=e.handleVisible)!==null&&t!==void 0?t:\"auto\",n=e.controlHeightSM-e.lineWidth*2;return Object.assign(Object.assign({},Fm(e)),{controlWidth:90,handleWidth:n,handleFontSize:e.fontSize/2,handleVisible:r,handleActiveBg:e.colorFillAlter,handleBg:e.colorBgContainer,filledHandleBg:new $r(e.colorFillSecondary).onBackground(e.colorBgContainer).toHexString(),handleHoverColor:e.colorPrimary,handleBorderColor:e.colorBorder,handleOpacity:r===!0?1:0,handleVisibleWidth:r===!0?n:0})},vV=({componentCls:e,borderRadiusSM:t,borderRadiusLG:r},n)=>{const a=n===\"lg\"?r:t;return{[`&-${n}`]:{[`${e}-handler-wrap`]:{borderStartEndRadius:a,borderEndEndRadius:a},[`${e}-handler-up`]:{borderStartEndRadius:a},[`${e}-handler-down`]:{borderEndEndRadius:a}}}},NRe=e=>{const{componentCls:t,lineWidth:r,lineType:n,borderRadius:a,inputFontSizeSM:i,inputFontSizeLG:o,controlHeightLG:l,controlHeightSM:s,colorError:u,paddingInlineSM:c,paddingBlockSM:d,paddingBlockLG:f,paddingInlineLG:h,colorIcon:p,motionDurationMid:v,handleHoverColor:g,handleOpacity:y,paddingInline:b,paddingBlock:x,handleBg:F,handleActiveBg:S,colorTextDisabled:E,borderRadiusSM:w,borderRadiusLG:D,controlWidth:A,handleBorderColor:_,filledHandleBg:I,lineHeightLG:M,calc:T}=e;return[{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),Sx(e)),{display:\"inline-block\",width:A,margin:0,padding:0,borderRadius:a}),bO(e,{[`${t}-handler-wrap`]:{background:F,[`${t}-handler-down`]:{borderBlockStart:`${re(r)} ${n} ${_}`}}})),CO(e,{[`${t}-handler-wrap`]:{background:I,[`${t}-handler-down`]:{borderBlockStart:`${re(r)} ${n} ${_}`}},\"&:focus-within\":{[`${t}-handler-wrap`]:{background:F}}})),FO(e,{[`${t}-handler-wrap`]:{background:F,[`${t}-handler-down`]:{borderBlockStart:`${re(r)} ${n} ${_}`}}})),xO(e)),{\"&-rtl\":{direction:\"rtl\",[`${t}-input`]:{direction:\"rtl\"}},\"&-lg\":{padding:0,fontSize:o,lineHeight:M,borderRadius:D,[`input${t}-input`]:{height:T(l).sub(T(r).mul(2)).equal(),padding:`${re(f)} ${re(h)}`}},\"&-sm\":{padding:0,fontSize:i,borderRadius:w,[`input${t}-input`]:{height:T(s).sub(T(r).mul(2)).equal(),padding:`${re(d)} ${re(c)}`}},\"&-out-of-range\":{[`${t}-input-wrap`]:{input:{color:u}}},\"&-group\":Object.assign(Object.assign(Object.assign({},Hr(e)),ule(e)),{\"&-wrapper\":Object.assign(Object.assign(Object.assign({display:\"inline-block\",textAlign:\"start\",verticalAlign:\"top\",[`${t}-affix-wrapper`]:{width:\"100%\"},\"&-lg\":{[`${t}-group-addon`]:{borderRadius:D,fontSize:e.fontSizeLG}},\"&-sm\":{[`${t}-group-addon`]:{borderRadius:w}}},ale(e)),ole(e)),{[`&:not(${t}-compact-first-item):not(${t}-compact-last-item)${t}-compact-item`]:{[`${t}, ${t}-group-addon`]:{borderRadius:0}},[`&:not(${t}-compact-last-item)${t}-compact-first-item`]:{[`${t}, ${t}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${t}-compact-first-item)${t}-compact-last-item`]:{[`${t}, ${t}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})}),[`&-disabled ${t}-input`]:{cursor:\"not-allowed\"},[t]:{\"&-input\":Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{width:\"100%\",padding:`${re(x)} ${re(b)}`,textAlign:\"start\",backgroundColor:\"transparent\",border:0,borderRadius:a,outline:0,transition:`all ${v} linear`,appearance:\"textfield\",fontSize:\"inherit\"}),SO(e.colorTextPlaceholder)),{'&[type=\"number\"]::-webkit-inner-spin-button, &[type=\"number\"]::-webkit-outer-spin-button':{margin:0,appearance:\"none\"}})},[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{width:e.handleWidth,opacity:1}})},{[t]:Object.assign(Object.assign(Object.assign({[`${t}-handler-wrap`]:{position:\"absolute\",insetBlockStart:0,insetInlineEnd:0,width:e.handleVisibleWidth,opacity:y,height:\"100%\",borderStartStartRadius:0,borderStartEndRadius:a,borderEndEndRadius:a,borderEndStartRadius:0,display:\"flex\",flexDirection:\"column\",alignItems:\"stretch\",transition:`all ${v}`,overflow:\"hidden\",[`${t}-handler`]:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flex:\"auto\",height:\"40%\",[`\n ${t}-handler-up-inner,\n ${t}-handler-down-inner\n `]:{marginInlineEnd:0,fontSize:e.handleFontSize}}},[`${t}-handler`]:{height:\"50%\",overflow:\"hidden\",color:p,fontWeight:\"bold\",lineHeight:0,textAlign:\"center\",cursor:\"pointer\",borderInlineStart:`${re(r)} ${n} ${_}`,transition:`all ${v} linear`,\"&:active\":{background:S},\"&:hover\":{height:\"60%\",[`\n ${t}-handler-up-inner,\n ${t}-handler-down-inner\n `]:{color:g}},\"&-up-inner, &-down-inner\":Object.assign(Object.assign({},pm()),{color:p,transition:`all ${v} linear`,userSelect:\"none\"})},[`${t}-handler-up`]:{borderStartEndRadius:a},[`${t}-handler-down`]:{borderEndEndRadius:a}},vV(e,\"lg\")),vV(e,\"sm\")),{\"&-disabled, &-readonly\":{[`${t}-handler-wrap`]:{display:\"none\"},[`${t}-input`]:{color:\"inherit\"}},[`\n ${t}-handler-up-disabled,\n ${t}-handler-down-disabled\n `]:{cursor:\"not-allowed\"},[`\n ${t}-handler-up-disabled:hover &-handler-up-inner,\n ${t}-handler-down-disabled:hover &-handler-down-inner\n `]:{color:E}})}]},$Re=e=>{const{componentCls:t,paddingBlock:r,paddingInline:n,inputAffixPadding:a,controlWidth:i,borderRadiusLG:o,borderRadiusSM:l,paddingInlineLG:s,paddingInlineSM:u,paddingBlockLG:c,paddingBlockSM:d,motionDurationMid:f}=e;return{[`${t}-affix-wrapper`]:Object.assign(Object.assign({[`input${t}-input`]:{padding:`${re(r)} 0`}},Sx(e)),{position:\"relative\",display:\"inline-flex\",alignItems:\"center\",width:i,padding:0,paddingInlineStart:n,\"&-lg\":{borderRadius:o,paddingInlineStart:s,[`input${t}-input`]:{padding:`${re(c)} 0`}},\"&-sm\":{borderRadius:l,paddingInlineStart:u,[`input${t}-input`]:{padding:`${re(d)} 0`}},[`&:not(${t}-disabled):hover`]:{zIndex:1},\"&-focused, &:focus\":{zIndex:1},[`&-disabled > ${t}-disabled`]:{background:\"transparent\"},[`> div${t}`]:{width:\"100%\",border:\"none\",outline:\"none\",[`&${t}-focused`]:{boxShadow:\"none !important\"}},\"&::before\":{display:\"inline-block\",width:0,visibility:\"hidden\",content:'\"\\\\a0\"'},[`${t}-handler-wrap`]:{zIndex:2},[t]:{position:\"static\",color:\"inherit\",\"&-prefix, &-suffix\":{display:\"flex\",flex:\"none\",alignItems:\"center\",pointerEvents:\"none\"},\"&-prefix\":{marginInlineEnd:a},\"&-suffix\":{insetBlockStart:0,insetInlineEnd:0,height:\"100%\",marginInlineEnd:n,marginInlineStart:a,transition:`margin ${f}`}},[`&:hover ${t}-handler-wrap, &-focused ${t}-handler-wrap`]:{width:e.handleWidth,opacity:1},[`&:not(${t}-affix-wrapper-without-controls):hover ${t}-suffix`]:{marginInlineEnd:e.calc(e.handleWidth).add(n).equal()}}),[`${t}-underlined`]:{borderRadius:0}}},LRe=kr(\"InputNumber\",e=>{const t=Sr(e,Cm(e));return[NRe(t),$Re(t),Fg(t)]},BRe,{unitless:{handleOpacity:!0},resetFont:!1});var jRe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const kle=m.forwardRef((e,t)=>{const{getPrefixCls:r,direction:n}=m.useContext(Ot),a=m.useRef(null);m.useImperativeHandle(t,()=>a.current);const{className:i,rootClassName:o,size:l,disabled:s,prefixCls:u,addonBefore:c,addonAfter:d,prefix:f,suffix:h,bordered:p,readOnly:v,status:g,controls:y,variant:b}=e,x=jRe(e,[\"className\",\"rootClassName\",\"size\",\"disabled\",\"prefixCls\",\"addonBefore\",\"addonAfter\",\"prefix\",\"suffix\",\"bordered\",\"readOnly\",\"status\",\"controls\",\"variant\"]),F=r(\"input-number\",u),S=Zn(F),[E,w,D]=LRe(F,S),{compactSize:A,compactItemClassnames:_}=Cc(F,n);let I=m.createElement(Dle,{className:`${F}-handler-up-inner`}),M=m.createElement(bx,{className:`${F}-handler-down-inner`});const T=typeof y==\"boolean\"?y:void 0;typeof y==\"object\"&&(I=typeof y.upIcon>\"u\"?I:m.createElement(\"span\",{className:`${F}-handler-up-inner`},y.upIcon),M=typeof y.downIcon>\"u\"?M:m.createElement(\"span\",{className:`${F}-handler-down-inner`},y.downIcon));const{hasFeedback:k,status:R,isFormItemInput:P,feedbackIcon:B}=m.useContext(pi),N=vm(R,g),O=Ta(K=>{var Y;return(Y=l??A)!==null&&Y!==void 0?Y:K}),z=m.useContext(Ui),W=s??z,[L,j]=gm(\"inputNumber\",b,p),H=k&&m.createElement(m.Fragment,null,B),V=ne({[`${F}-lg`]:O===\"large\",[`${F}-sm`]:O===\"small\",[`${F}-rtl`]:n===\"rtl\",[`${F}-in-form-item`]:P},w),U=`${F}-group`,Q=m.createElement(ORe,Object.assign({ref:a,disabled:W,className:ne(D,S,i,o,_),upHandler:I,downHandler:M,prefixCls:F,readOnly:v,controls:T,prefix:f,suffix:H||h,addonBefore:c&&m.createElement(gu,{form:!0,space:!0},c),addonAfter:d&&m.createElement(gu,{form:!0,space:!0},d),classNames:{input:V,variant:ne({[`${F}-${L}`]:j},jf(F,N,k)),affixWrapper:ne({[`${F}-affix-wrapper-sm`]:O===\"small\",[`${F}-affix-wrapper-lg`]:O===\"large\",[`${F}-affix-wrapper-rtl`]:n===\"rtl\",[`${F}-affix-wrapper-without-controls`]:y===!1||W||v},w),wrapper:ne({[`${U}-rtl`]:n===\"rtl\"},w),groupWrapper:ne({[`${F}-group-wrapper-sm`]:O===\"small\",[`${F}-group-wrapper-lg`]:O===\"large\",[`${F}-group-wrapper-rtl`]:n===\"rtl\",[`${F}-group-wrapper-${L}`]:j},jf(`${F}-group-wrapper`,N,k),w)}},x));return E(Q)}),vn=kle,zRe=e=>m.createElement(Is,{theme:{components:{InputNumber:{handleVisible:!0}}}},m.createElement(kle,Object.assign({},e)));vn._InternalPanelDoNotUseOrYouWillBeFired=zRe;const Rle=e=>{let t;return typeof e==\"object\"&&(e!=null&&e.clearIcon)?t=e:e&&(t={clearIcon:le.createElement(xd,null)}),t};function Mle(e,t){const r=m.useRef([]),n=()=>{r.current.push(setTimeout(()=>{var a,i,o,l;!((a=e.current)===null||a===void 0)&&a.input&&((i=e.current)===null||i===void 0?void 0:i.input.getAttribute(\"type\"))===\"password\"&&(!((o=e.current)===null||o===void 0)&&o.input.hasAttribute(\"value\"))&&((l=e.current)===null||l===void 0||l.input.removeAttribute(\"value\"))}))};return m.useEffect(()=>(t&&n(),()=>r.current.forEach(a=>{a&&clearTimeout(a)})),[]),n}function HRe(e){return!!(e.prefix||e.suffix||e.allowClear||e.showCount)}var VRe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Dx=m.forwardRef((e,t)=>{const{prefixCls:r,bordered:n=!0,status:a,size:i,disabled:o,onBlur:l,onFocus:s,suffix:u,allowClear:c,addonAfter:d,addonBefore:f,className:h,style:p,styles:v,rootClassName:g,onChange:y,classNames:b,variant:x,_skipAddonWarning:F}=e,S=VRe(e,[\"prefixCls\",\"bordered\",\"status\",\"size\",\"disabled\",\"onBlur\",\"onFocus\",\"suffix\",\"allowClear\",\"addonAfter\",\"addonBefore\",\"className\",\"style\",\"styles\",\"rootClassName\",\"onChange\",\"classNames\",\"variant\",\"_skipAddonWarning\"]),{getPrefixCls:E,direction:w,allowClear:D,autoComplete:A,className:_,style:I,classNames:M,styles:T}=na(\"input\"),k=E(\"input\",r),R=m.useRef(null),P=Zn(k),[B,N,O]=cle(k,g),[z]=dle(k,P),{compactSize:W,compactItemClassnames:L}=Cc(k,w),j=Ta(Ee=>{var De;return(De=i??W)!==null&&De!==void 0?De:Ee}),H=le.useContext(Ui),V=o??H,{status:U,hasFeedback:Q,feedbackIcon:K}=m.useContext(pi),Y=vm(U,a),ee=HRe(e)||!!Q;m.useRef(ee);const J=Mle(R,!0),X=Ee=>{J(),l==null||l(Ee)},ce=Ee=>{J(),s==null||s(Ee)},oe=Ee=>{J(),y==null||y(Ee)},ue=(Q||u)&&le.createElement(le.Fragment,null,u,Q&&K),ie=Rle(c??D),[fe,xe]=gm(\"input\",x,n);return B(z(le.createElement(wRe,Object.assign({ref:Qa(t,R),prefixCls:k,autoComplete:A},S,{disabled:V,onBlur:X,onFocus:ce,style:Object.assign(Object.assign({},I),p),styles:Object.assign(Object.assign({},T),v),suffix:ue,allowClear:ie,className:ne(h,g,O,P,L,_),onChange:oe,addonBefore:f&&le.createElement(gu,{form:!0,space:!0},f),addonAfter:d&&le.createElement(gu,{form:!0,space:!0},d),classNames:Object.assign(Object.assign(Object.assign({},b),M),{input:ne({[`${k}-sm`]:j===\"small\",[`${k}-lg`]:j===\"large\",[`${k}-rtl`]:w===\"rtl\"},b==null?void 0:b.input,M.input,N),variant:ne({[`${k}-${fe}`]:xe},jf(k,Y)),affixWrapper:ne({[`${k}-affix-wrapper-sm`]:j===\"small\",[`${k}-affix-wrapper-lg`]:j===\"large\",[`${k}-affix-wrapper-rtl`]:w===\"rtl\"},N),wrapper:ne({[`${k}-group-rtl`]:w===\"rtl\"},N),groupWrapper:ne({[`${k}-group-wrapper-sm`]:j===\"small\",[`${k}-group-wrapper-lg`]:j===\"large\",[`${k}-group-wrapper-rtl`]:w===\"rtl\",[`${k}-group-wrapper-${fe}`]:xe},jf(`${k}-group-wrapper`,Y,Q),N)})}))))});var WRe={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z\"}}]},name:\"swap-right\",theme:\"outlined\"},GRe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:WRe}))},URe=m.forwardRef(GRe);const Ple=(e,t,r,n,a)=>{const{classNames:i,styles:o}=na(e),[l,s]=Cwe([i,t],[o,r],{popup:{_default:\"root\"}});return m.useMemo(()=>{var u,c;const d=Object.assign(Object.assign({},l),{popup:Object.assign(Object.assign({},l.popup),{root:ne((u=l.popup)===null||u===void 0?void 0:u.root,n)})}),f=Object.assign(Object.assign({},s),{popup:Object.assign(Object.assign({},s.popup),{root:Object.assign(Object.assign({},(c=s.popup)===null||c===void 0?void 0:c.root),a)})});return[d,f]},[l,s,n,a])};function KRe(e,t,r){return r!==void 0?r:t===\"year\"&&e.lang.yearPlaceholder?e.lang.yearPlaceholder:t===\"quarter\"&&e.lang.quarterPlaceholder?e.lang.quarterPlaceholder:t===\"month\"&&e.lang.monthPlaceholder?e.lang.monthPlaceholder:t===\"week\"&&e.lang.weekPlaceholder?e.lang.weekPlaceholder:t===\"time\"&&e.timePickerLocale.placeholder?e.timePickerLocale.placeholder:e.lang.placeholder}function YRe(e,t,r){return r!==void 0?r:t===\"year\"&&e.lang.yearPlaceholder?e.lang.rangeYearPlaceholder:t===\"quarter\"&&e.lang.quarterPlaceholder?e.lang.rangeQuarterPlaceholder:t===\"month\"&&e.lang.monthPlaceholder?e.lang.rangeMonthPlaceholder:t===\"week\"&&e.lang.weekPlaceholder?e.lang.rangeWeekPlaceholder:t===\"time\"&&e.timePickerLocale.placeholder?e.timePickerLocale.rangePlaceholder:e.lang.rangePlaceholder}function Ole(e,t){const{allowClear:r=!0}=e,{clearIcon:n,removeIcon:a}=Eie(Object.assign(Object.assign({},e),{prefixCls:t,componentName:\"DatePicker\"}));return[m.useMemo(()=>r===!1?!1:Object.assign({clearIcon:n},r===!0?{}:r),[r,n]),a]}const[qRe,XRe]=[\"week\",\"WeekPicker\"],[JRe,ZRe]=[\"month\",\"MonthPicker\"],[QRe,eMe]=[\"year\",\"YearPicker\"],[tMe,rMe]=[\"quarter\",\"QuarterPicker\"],[IO,gV]=[\"time\",\"TimePicker\"];var nMe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z\"}}]},name:\"calendar\",theme:\"outlined\"},aMe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:nMe}))},iMe=m.forwardRef(aMe),oMe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{tag:\"path\",attrs:{d:\"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z\"}}]},name:\"clock-circle\",theme:\"outlined\"},lMe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:oMe}))},Ble=m.forwardRef(lMe);const Nle=({picker:e,hasFeedback:t,feedbackIcon:r,suffixIcon:n})=>n===null||n===!1?null:n===!0||n===void 0?le.createElement(le.Fragment,null,e===IO?le.createElement(Ble,null):le.createElement(iMe,null),t&&r):n,sMe=e=>m.createElement(ze,Object.assign({size:\"small\",type:\"primary\"},e));function $le(e){return m.useMemo(()=>Object.assign({button:sMe},e),[e])}var uMe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const cMe=e=>m.forwardRef((r,n)=>{var a;const{prefixCls:i,getPopupContainer:o,components:l,className:s,style:u,placement:c,size:d,disabled:f,bordered:h=!0,placeholder:p,popupStyle:v,popupClassName:g,dropdownClassName:y,status:b,rootClassName:x,variant:F,picker:S,styles:E,classNames:w,suffixIcon:D}=r,A=uMe(r,[\"prefixCls\",\"getPopupContainer\",\"components\",\"className\",\"style\",\"placement\",\"size\",\"disabled\",\"bordered\",\"placeholder\",\"popupStyle\",\"popupClassName\",\"dropdownClassName\",\"status\",\"rootClassName\",\"variant\",\"picker\",\"styles\",\"classNames\",\"suffixIcon\"]),_=S===IO?\"timePicker\":\"datePicker\",I=m.useRef(null),{getPrefixCls:M,direction:T,getPopupContainer:k,rangePicker:R}=m.useContext(Ot),P=M(\"picker\",i),{compactSize:B,compactItemClassnames:N}=Cc(P,T),O=M(),[z,W]=gm(\"rangePicker\",F,h),L=Zn(P),[j,H,V]=fle(P,L),[U,Q]=Ple(_,w,E,g||y,v),[K]=Ole(r,P),Y=$le(l),ee=Ta(ye=>{var we;return(we=d??B)!==null&&we!==void 0?we:ye}),J=m.useContext(Ui),X=f??J,ce=m.useContext(pi),{hasFeedback:oe,status:ue,feedbackIcon:ie}=ce,fe=m.createElement(Nle,{picker:S,hasFeedback:oe,feedbackIcon:ie,suffixIcon:D});m.useImperativeHandle(n,()=>I.current);const[xe]=Jo(\"Calendar\",yE),Ee=Object.assign(Object.assign({},xe),r.locale),[De]=xc(\"DatePicker\",(a=Q.popup.root)===null||a===void 0?void 0:a.zIndex);return j(m.createElement(gu,{space:!0},m.createElement(ike,Object.assign({separator:m.createElement(\"span\",{\"aria-label\":\"to\",className:`${P}-separator`},m.createElement(URe,null)),disabled:X,ref:I,placement:c,placeholder:YRe(Ee,S,p),suffixIcon:fe,prevIcon:m.createElement(\"span\",{className:`${P}-prev-icon`}),nextIcon:m.createElement(\"span\",{className:`${P}-next-icon`}),superPrevIcon:m.createElement(\"span\",{className:`${P}-super-prev-icon`}),superNextIcon:m.createElement(\"span\",{className:`${P}-super-next-icon`}),transitionName:`${O}-slide-up`,picker:S},A,{className:ne({[`${P}-${ee}`]:ee,[`${P}-${z}`]:W},jf(P,vm(ue,b),oe),H,N,s,R==null?void 0:R.className,V,L,x,U.root),style:Object.assign(Object.assign(Object.assign({},R==null?void 0:R.style),u),Q.root),locale:Ee.lang,prefixCls:P,getPopupContainer:o||k,generateConfig:e,components:Y,direction:T,classNames:{popup:ne(H,V,L,x,U.popup.root)},styles:{popup:Object.assign(Object.assign({},Q.popup.root),{zIndex:De})},allowClear:K}))))});var dMe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const fMe=e=>{const t=(s,u)=>{const c=u===gV?\"timePicker\":\"datePicker\";return m.forwardRef((f,h)=>{var p;const{prefixCls:v,getPopupContainer:g,components:y,style:b,className:x,rootClassName:F,size:S,bordered:E,placement:w,placeholder:D,popupStyle:A,popupClassName:_,dropdownClassName:I,disabled:M,status:T,variant:k,onCalendarChange:R,styles:P,classNames:B,suffixIcon:N}=f,O=dMe(f,[\"prefixCls\",\"getPopupContainer\",\"components\",\"style\",\"className\",\"rootClassName\",\"size\",\"bordered\",\"placement\",\"placeholder\",\"popupStyle\",\"popupClassName\",\"dropdownClassName\",\"disabled\",\"status\",\"variant\",\"onCalendarChange\",\"styles\",\"classNames\",\"suffixIcon\"]),{getPrefixCls:z,direction:W,getPopupContainer:L,[c]:j}=m.useContext(Ot),H=z(\"picker\",v),{compactSize:V,compactItemClassnames:U}=Cc(H,W),Q=m.useRef(null),[K,Y]=gm(\"datePicker\",k,E),ee=Zn(H),[J,X,ce]=fle(H,ee);m.useImperativeHandle(h,()=>Q.current);const oe={showToday:!0},ue=s||f.picker,ie=z(),{onSelect:fe,multiple:xe}=O,Ee=fe&&s===\"time\"&&!xe,De=(_e,$e,Ke)=>{R==null||R(_e,$e,Ke),Ee&&fe(_e)},[ye,we]=Ple(c,B,P,_||I,A),[Fe,me]=Ole(f,H),Me=$le(y),je=Ta(_e=>{var $e;return($e=S??V)!==null&&$e!==void 0?$e:_e}),lt=m.useContext(Ui),tt=M??lt,rt=m.useContext(pi),{hasFeedback:dt,status:Ve,feedbackIcon:Ie}=rt,Je=m.createElement(Nle,{picker:ue,hasFeedback:dt,feedbackIcon:Ie,suffixIcon:N}),[Pe]=Jo(\"DatePicker\",yE),Ge=Object.assign(Object.assign({},Pe),f.locale),[Ae]=xc(\"DatePicker\",(p=we.popup.root)===null||p===void 0?void 0:p.zIndex);return J(m.createElement(gu,{space:!0},m.createElement(dke,Object.assign({ref:Q,placeholder:KRe(Ge,ue,D),suffixIcon:Je,placement:w,prevIcon:m.createElement(\"span\",{className:`${H}-prev-icon`}),nextIcon:m.createElement(\"span\",{className:`${H}-next-icon`}),superPrevIcon:m.createElement(\"span\",{className:`${H}-super-prev-icon`}),superNextIcon:m.createElement(\"span\",{className:`${H}-super-next-icon`}),transitionName:`${ie}-slide-up`,picker:s,onCalendarChange:De},oe,O,{locale:Ge.lang,className:ne({[`${H}-${je}`]:je,[`${H}-${K}`]:Y},jf(H,vm(Ve,T),dt),X,U,j==null?void 0:j.className,x,ce,ee,F,ye.root),style:Object.assign(Object.assign(Object.assign({},j==null?void 0:j.style),b),we.root),prefixCls:H,getPopupContainer:g||L,generateConfig:e,components:Me,direction:W,disabled:tt,classNames:{popup:ne(X,ce,ee,F,ye.popup.root)},styles:{popup:Object.assign(Object.assign({},we.popup.root),{zIndex:Ae})},allowClear:Fe,removeIcon:me}))))})},r=t(),n=t(qRe,XRe),a=t(JRe,ZRe),i=t(QRe,eMe),o=t(tMe,rMe),l=t(IO,gV);return{DatePicker:r,WeekPicker:n,MonthPicker:a,YearPicker:i,TimePicker:l,QuarterPicker:o}},Lle=e=>{const{DatePicker:t,WeekPicker:r,MonthPicker:n,YearPicker:a,TimePicker:i,QuarterPicker:o}=fMe(e),l=cMe(e),s=t;return s.WeekPicker=r,s.MonthPicker=n,s.YearPicker=a,s.RangePicker=l,s.TimePicker=i,s.QuarterPicker=o,s},Wl=Lle(hIe),hMe=g6(Wl,\"popupAlign\",void 0,\"picker\");Wl._InternalPanelDoNotUseOrYouWillBeFired=hMe;const pMe=g6(Wl.RangePicker,\"popupAlign\",void 0,\"picker\");Wl._InternalRangePanelDoNotUseOrYouWillBeFired=pMe;Wl.generatePicker=Lle;const mMe={xxl:3,xl:3,lg:3,md:3,sm:2,xs:1},kO=le.createContext({});var vMe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const gMe=e=>ba(e).map(t=>Object.assign(Object.assign({},t==null?void 0:t.props),{key:t.key}));function yMe(e,t,r){const n=m.useMemo(()=>t||gMe(r),[t,r]);return m.useMemo(()=>n.map(i=>{var{span:o}=i,l=vMe(i,[\"span\"]);return o===\"filled\"?Object.assign(Object.assign({},l),{filled:!0}):Object.assign(Object.assign({},l),{span:typeof o==\"number\"?o:Tie(e,o)})}),[n,e])}var bMe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function xMe(e,t){let r=[],n=[],a=!1,i=0;return e.filter(o=>o).forEach(o=>{const{filled:l}=o,s=bMe(o,[\"filled\"]);if(l){n.push(s),r.push(n),n=[],i=0;return}const u=t-i;i+=o.span||1,i>=t?(i>t?(a=!0,n.push(Object.assign(Object.assign({},s),{span:u}))):n.push(s),r.push(n),n=[],i=0):n.push(s)}),n.length>0&&r.push(n),r=r.map(o=>{const l=o.reduce((s,u)=>s+(u.span||1),0);if(l<t){const s=o[o.length-1];return s.span=t-(l-(s.span||1)),o}return o}),[r,a]}const CMe=(e,t)=>{const[r,n]=m.useMemo(()=>xMe(t,e),[t,e]);return r},FMe=({children:e})=>e,rF=e=>e!=null,W_=e=>{const{itemPrefixCls:t,component:r,span:n,className:a,style:i,labelStyle:o,contentStyle:l,bordered:s,label:u,content:c,colon:d,type:f,styles:h}=e,p=r,{classNames:v}=m.useContext(kO),g=Object.assign(Object.assign({},o),h==null?void 0:h.label),y=Object.assign(Object.assign({},l),h==null?void 0:h.content);return s?m.createElement(p,{colSpan:n,style:i,className:ne(a,{[`${t}-item-${f}`]:f===\"label\"||f===\"content\",[v==null?void 0:v.label]:(v==null?void 0:v.label)&&f===\"label\",[v==null?void 0:v.content]:(v==null?void 0:v.content)&&f===\"content\"})},rF(u)&&m.createElement(\"span\",{style:g},u),rF(c)&&m.createElement(\"span\",{style:y},c)):m.createElement(p,{colSpan:n,style:i,className:ne(`${t}-item`,a)},m.createElement(\"div\",{className:`${t}-item-container`},rF(u)&&m.createElement(\"span\",{style:g,className:ne(`${t}-item-label`,v==null?void 0:v.label,{[`${t}-item-no-colon`]:!d})},u),rF(c)&&m.createElement(\"span\",{style:y,className:ne(`${t}-item-content`,v==null?void 0:v.content)},c)))};function G_(e,{colon:t,prefixCls:r,bordered:n},{component:a,type:i,showLabel:o,showContent:l,labelStyle:s,contentStyle:u,styles:c}){return e.map(({label:d,children:f,prefixCls:h=r,className:p,style:v,labelStyle:g,contentStyle:y,span:b=1,key:x,styles:F},S)=>typeof a==\"string\"?m.createElement(W_,{key:`${i}-${x||S}`,className:p,style:v,styles:{label:Object.assign(Object.assign(Object.assign(Object.assign({},s),c==null?void 0:c.label),g),F==null?void 0:F.label),content:Object.assign(Object.assign(Object.assign(Object.assign({},u),c==null?void 0:c.content),y),F==null?void 0:F.content)},span:b,colon:t,component:a,itemPrefixCls:h,bordered:n,label:o?d:null,content:l?f:null,type:i}):[m.createElement(W_,{key:`label-${x||S}`,className:p,style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},s),c==null?void 0:c.label),v),g),F==null?void 0:F.label),span:1,colon:t,component:a[0],itemPrefixCls:h,bordered:n,label:d,type:\"label\"}),m.createElement(W_,{key:`content-${x||S}`,className:p,style:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},u),c==null?void 0:c.content),v),y),F==null?void 0:F.content),span:b*2-1,component:a[1],itemPrefixCls:h,bordered:n,content:f,type:\"content\"})])}const SMe=e=>{const t=m.useContext(kO),{prefixCls:r,vertical:n,row:a,index:i,bordered:o}=e;return n?m.createElement(m.Fragment,null,m.createElement(\"tr\",{key:`label-${i}`,className:`${r}-row`},G_(a,e,Object.assign({component:\"th\",type:\"label\",showLabel:!0},t))),m.createElement(\"tr\",{key:`content-${i}`,className:`${r}-row`},G_(a,e,Object.assign({component:\"td\",type:\"content\",showContent:!0},t)))):m.createElement(\"tr\",{key:i,className:`${r}-row`},G_(a,e,Object.assign({component:o?[\"th\",\"td\"]:\"td\",type:\"item\",showLabel:!0,showContent:!0},t)))},wMe=e=>{const{componentCls:t,labelBg:r}=e;return{[`&${t}-bordered`]:{[`> ${t}-view`]:{border:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`,\"> table\":{tableLayout:\"auto\"},[`${t}-row`]:{borderBottom:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`,\"&:first-child\":{\"> th:first-child, > td:first-child\":{borderStartStartRadius:e.borderRadiusLG}},\"&:last-child\":{borderBottom:\"none\",\"> th:first-child, > td:first-child\":{borderEndStartRadius:e.borderRadiusLG}},[`> ${t}-item-label, > ${t}-item-content`]:{padding:`${re(e.padding)} ${re(e.paddingLG)}`,borderInlineEnd:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`,\"&:last-child\":{borderInlineEnd:\"none\"}},[`> ${t}-item-label`]:{color:e.colorTextSecondary,backgroundColor:r,\"&::after\":{display:\"none\"}}}},[`&${t}-middle`]:{[`${t}-row`]:{[`> ${t}-item-label, > ${t}-item-content`]:{padding:`${re(e.paddingSM)} ${re(e.paddingLG)}`}}},[`&${t}-small`]:{[`${t}-row`]:{[`> ${t}-item-label, > ${t}-item-content`]:{padding:`${re(e.paddingXS)} ${re(e.padding)}`}}}}}},EMe=e=>{const{componentCls:t,extraColor:r,itemPaddingBottom:n,itemPaddingEnd:a,colonMarginRight:i,colonMarginLeft:o,titleMarginBottom:l}=e;return{[t]:Object.assign(Object.assign(Object.assign({},Hr(e)),wMe(e)),{\"&-rtl\":{direction:\"rtl\"},[`${t}-header`]:{display:\"flex\",alignItems:\"center\",marginBottom:l},[`${t}-title`]:Object.assign(Object.assign({},$l),{flex:\"auto\",color:e.titleColor,fontWeight:e.fontWeightStrong,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}),[`${t}-extra`]:{marginInlineStart:\"auto\",color:r,fontSize:e.fontSize},[`${t}-view`]:{width:\"100%\",borderRadius:e.borderRadiusLG,table:{width:\"100%\",tableLayout:\"fixed\",borderCollapse:\"collapse\"}},[`${t}-row`]:{\"> th, > td\":{paddingBottom:n,paddingInlineEnd:a},\"> th:last-child, > td:last-child\":{paddingInlineEnd:0},\"&:last-child\":{borderBottom:\"none\",\"> th, > td\":{paddingBottom:0}}},[`${t}-item-label`]:{color:e.labelColor,fontWeight:\"normal\",fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:\"start\",\"&::after\":{content:'\":\"',position:\"relative\",top:-.5,marginInline:`${re(o)} ${re(i)}`},[`&${t}-item-no-colon::after`]:{content:'\"\"'}},[`${t}-item-no-label`]:{\"&::after\":{margin:0,content:'\"\"'}},[`${t}-item-content`]:{display:\"table-cell\",flex:1,color:e.contentColor,fontSize:e.fontSize,lineHeight:e.lineHeight,wordBreak:\"break-word\",overflowWrap:\"break-word\"},[`${t}-item`]:{paddingBottom:0,verticalAlign:\"top\",\"&-container\":{display:\"flex\",[`${t}-item-label`]:{display:\"inline-flex\",alignItems:\"baseline\"},[`${t}-item-content`]:{display:\"inline-flex\",alignItems:\"baseline\",minWidth:\"1em\"}}},\"&-middle\":{[`${t}-row`]:{\"> th, > td\":{paddingBottom:e.paddingSM}}},\"&-small\":{[`${t}-row`]:{\"> th, > td\":{paddingBottom:e.paddingXS}}}})}},DMe=e=>({labelBg:e.colorFillAlter,labelColor:e.colorTextTertiary,titleColor:e.colorText,titleMarginBottom:e.fontSizeSM*e.lineHeightSM,itemPaddingBottom:e.padding,itemPaddingEnd:e.padding,colonMarginRight:e.marginXS,colonMarginLeft:e.marginXXS/2,contentColor:e.colorText,extraColor:e.colorText}),AMe=kr(\"Descriptions\",e=>{const t=Sr(e,{});return EMe(t)},DMe);var _Me=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Ne=e=>{const{prefixCls:t,title:r,extra:n,column:a,colon:i=!0,bordered:o,layout:l,children:s,className:u,rootClassName:c,style:d,size:f,labelStyle:h,contentStyle:p,styles:v,items:g,classNames:y}=e,b=_Me(e,[\"prefixCls\",\"title\",\"extra\",\"column\",\"colon\",\"bordered\",\"layout\",\"children\",\"className\",\"rootClassName\",\"style\",\"size\",\"labelStyle\",\"contentStyle\",\"styles\",\"items\",\"classNames\"]),{getPrefixCls:x,direction:F,className:S,style:E,classNames:w,styles:D}=na(\"descriptions\"),A=x(\"descriptions\",t),_=Eg(),I=m.useMemo(()=>{var O;return typeof a==\"number\"?a:(O=Tie(_,Object.assign(Object.assign({},mMe),a)))!==null&&O!==void 0?O:3},[_,a]),M=yMe(_,g,s),T=Ta(f),k=CMe(I,M),[R,P,B]=AMe(A),N=m.useMemo(()=>({labelStyle:h,contentStyle:p,styles:{content:Object.assign(Object.assign({},D.content),v==null?void 0:v.content),label:Object.assign(Object.assign({},D.label),v==null?void 0:v.label)},classNames:{label:ne(w.label,y==null?void 0:y.label),content:ne(w.content,y==null?void 0:y.content)}}),[h,p,v,y,w,D]);return R(m.createElement(kO.Provider,{value:N},m.createElement(\"div\",Object.assign({className:ne(A,S,w.root,y==null?void 0:y.root,{[`${A}-${T}`]:T&&T!==\"default\",[`${A}-bordered`]:!!o,[`${A}-rtl`]:F===\"rtl\"},u,c,P,B),style:Object.assign(Object.assign(Object.assign(Object.assign({},E),D.root),v==null?void 0:v.root),d)},b),(r||n)&&m.createElement(\"div\",{className:ne(`${A}-header`,w.header,y==null?void 0:y.header),style:Object.assign(Object.assign({},D.header),v==null?void 0:v.header)},r&&m.createElement(\"div\",{className:ne(`${A}-title`,w.title,y==null?void 0:y.title),style:Object.assign(Object.assign({},D.title),v==null?void 0:v.title)},r),n&&m.createElement(\"div\",{className:ne(`${A}-extra`,w.extra,y==null?void 0:y.extra),style:Object.assign(Object.assign({},D.extra),v==null?void 0:v.extra)},n)),m.createElement(\"div\",{className:`${A}-view`},m.createElement(\"table\",null,m.createElement(\"tbody\",null,k.map((O,z)=>m.createElement(SMe,{key:z,index:z,colon:i,prefixCls:A,vertical:l===\"vertical\",bordered:o,row:O}))))))))};Ne.Item=FMe;var yV=m.createContext(null),jle=m.createContext({}),TMe=[\"prefixCls\",\"className\",\"containerRef\"],IMe=function(t){var r=t.prefixCls,n=t.className,a=t.containerRef,i=Xt(t,TMe),o=m.useContext(jle),l=o.panel,s=yc(l,a);return m.createElement(\"div\",Ce({className:ne(\"\".concat(r,\"-content\"),n),role:\"dialog\",ref:s},qn(t,{aria:!0}),{\"aria-modal\":\"true\"},i))};function bV(e){return typeof e==\"string\"&&String(Number(e))===e?(jn(!1,\"Invalid value type of `width` or `height` which should be number type instead.\"),Number(e)):e}var xV={width:0,height:0,overflow:\"hidden\",outline:\"none\",position:\"absolute\"};function kMe(e,t){var r,n,a,i=e.prefixCls,o=e.open,l=e.placement,s=e.inline,u=e.push,c=e.forceRender,d=e.autoFocus,f=e.keyboard,h=e.classNames,p=e.rootClassName,v=e.rootStyle,g=e.zIndex,y=e.className,b=e.id,x=e.style,F=e.motion,S=e.width,E=e.height,w=e.children,D=e.mask,A=e.maskClosable,_=e.maskMotion,I=e.maskClassName,M=e.maskStyle,T=e.afterOpenChange,k=e.onClose,R=e.onMouseEnter,P=e.onMouseOver,B=e.onMouseLeave,N=e.onClick,O=e.onKeyDown,z=e.onKeyUp,W=e.styles,L=e.drawerRender,j=m.useRef(),H=m.useRef(),V=m.useRef();m.useImperativeHandle(t,function(){return j.current});var U=function(we){var Fe=we.keyCode,me=we.shiftKey;switch(Fe){case It.TAB:{if(Fe===It.TAB){if(!me&&document.activeElement===V.current){var Me;(Me=H.current)===null||Me===void 0||Me.focus({preventScroll:!0})}else if(me&&document.activeElement===H.current){var je;(je=V.current)===null||je===void 0||je.focus({preventScroll:!0})}}break}case It.ESC:{k&&f&&(we.stopPropagation(),k(we));break}}};m.useEffect(function(){if(o&&d){var ye;(ye=j.current)===null||ye===void 0||ye.focus({preventScroll:!0})}},[o]);var Q=m.useState(!1),K=ve(Q,2),Y=K[0],ee=K[1],J=m.useContext(yV),X;typeof u==\"boolean\"?X=u?{}:{distance:0}:X=u||{};var ce=(r=(n=(a=X)===null||a===void 0?void 0:a.distance)!==null&&n!==void 0?n:J==null?void 0:J.pushDistance)!==null&&r!==void 0?r:180,oe=m.useMemo(function(){return{pushDistance:ce,push:function(){ee(!0)},pull:function(){ee(!1)}}},[ce]);m.useEffect(function(){if(o){var ye;J==null||(ye=J.push)===null||ye===void 0||ye.call(J)}else{var we;J==null||(we=J.pull)===null||we===void 0||we.call(J)}},[o]),m.useEffect(function(){return function(){var ye;J==null||(ye=J.pull)===null||ye===void 0||ye.call(J)}},[]);var ue=m.createElement(fi,Ce({key:\"mask\"},_,{visible:D&&o}),function(ye,we){var Fe=ye.className,me=ye.style;return m.createElement(\"div\",{className:ne(\"\".concat(i,\"-mask\"),Fe,h==null?void 0:h.mask,I),style:ae(ae(ae({},me),M),W==null?void 0:W.mask),onClick:A&&o?k:void 0,ref:we})}),ie=typeof F==\"function\"?F(l):F,fe={};if(Y&&ce)switch(l){case\"top\":fe.transform=\"translateY(\".concat(ce,\"px)\");break;case\"bottom\":fe.transform=\"translateY(\".concat(-ce,\"px)\");break;case\"left\":fe.transform=\"translateX(\".concat(ce,\"px)\");break;default:fe.transform=\"translateX(\".concat(-ce,\"px)\");break}l===\"left\"||l===\"right\"?fe.width=bV(S):fe.height=bV(E);var xe={onMouseEnter:R,onMouseOver:P,onMouseLeave:B,onClick:N,onKeyDown:O,onKeyUp:z},Ee=m.createElement(fi,Ce({key:\"panel\"},ie,{visible:o,forceRender:c,onVisibleChanged:function(we){T==null||T(we)},removeOnLeave:!1,leavedClassName:\"\".concat(i,\"-content-wrapper-hidden\")}),function(ye,we){var Fe=ye.className,me=ye.style,Me=m.createElement(IMe,Ce({id:b,containerRef:we,prefixCls:i,className:ne(y,h==null?void 0:h.content),style:ae(ae({},x),W==null?void 0:W.content)},qn(e,{aria:!0}),xe),w);return m.createElement(\"div\",Ce({className:ne(\"\".concat(i,\"-content-wrapper\"),h==null?void 0:h.wrapper,Fe),style:ae(ae(ae({},fe),me),W==null?void 0:W.wrapper)},qn(e,{data:!0})),L?L(Me):Me)}),De=ae({},v);return g&&(De.zIndex=g),m.createElement(yV.Provider,{value:oe},m.createElement(\"div\",{className:ne(i,\"\".concat(i,\"-\").concat(l),p,Z(Z({},\"\".concat(i,\"-open\"),o),\"\".concat(i,\"-inline\"),s)),style:De,tabIndex:-1,ref:j,onKeyDown:U},ue,m.createElement(\"div\",{tabIndex:0,ref:H,style:xV,\"aria-hidden\":\"true\",\"data-sentinel\":\"start\"}),Ee,m.createElement(\"div\",{tabIndex:0,ref:V,style:xV,\"aria-hidden\":\"true\",\"data-sentinel\":\"end\"})))}var RMe=m.forwardRef(kMe),MMe=function(t){var r=t.open,n=r===void 0?!1:r,a=t.prefixCls,i=a===void 0?\"rc-drawer\":a,o=t.placement,l=o===void 0?\"right\":o,s=t.autoFocus,u=s===void 0?!0:s,c=t.keyboard,d=c===void 0?!0:c,f=t.width,h=f===void 0?378:f,p=t.mask,v=p===void 0?!0:p,g=t.maskClosable,y=g===void 0?!0:g,b=t.getContainer,x=t.forceRender,F=t.afterOpenChange,S=t.destroyOnClose,E=t.onMouseEnter,w=t.onMouseOver,D=t.onMouseLeave,A=t.onClick,_=t.onKeyDown,I=t.onKeyUp,M=t.panelRef,T=m.useState(!1),k=ve(T,2),R=k[0],P=k[1],B=m.useState(!1),N=ve(B,2),O=N[0],z=N[1];_r(function(){z(!0)},[]);var W=O?n:!1,L=m.useRef(),j=m.useRef();_r(function(){W&&(j.current=document.activeElement)},[W]);var H=function(Y){var ee;if(P(Y),F==null||F(Y),!Y&&j.current&&!((ee=L.current)!==null&&ee!==void 0&&ee.contains(j.current))){var J;(J=j.current)===null||J===void 0||J.focus({preventScroll:!0})}},V=m.useMemo(function(){return{panel:M}},[M]);if(!x&&!R&&!W&&S)return null;var U={onMouseEnter:E,onMouseOver:w,onMouseLeave:D,onClick:A,onKeyDown:_,onKeyUp:I},Q=ae(ae({},t),{},{open:W,prefixCls:i,placement:l,autoFocus:u,keyboard:d,width:h,mask:v,maskClosable:y,inline:b===!1,afterOpenChange:H,ref:L},U);return m.createElement(jle.Provider,{value:V},m.createElement(fx,{open:W||x||R,autoDestroy:!1,getContainer:b,autoLock:v&&(W||R)},m.createElement(RMe,Q)))};const zle=e=>{var t,r;const{prefixCls:n,ariaId:a,title:i,footer:o,extra:l,closable:s,loading:u,onClose:c,headerStyle:d,bodyStyle:f,footerStyle:h,children:p,classNames:v,styles:g}=e,y=na(\"drawer\");let b;s===!1?b=void 0:s===void 0||s===!0?b=\"start\":b=(s==null?void 0:s.placement)===\"end\"?\"end\":\"start\";const x=m.useCallback(D=>m.createElement(\"button\",{type:\"button\",onClick:c,className:ne(`${n}-close`,{[`${n}-close-${b}`]:b===\"end\"})},D),[c,n,b]),[F,S]=P7(U0(e),U0(y),{closable:!0,closeIconRender:x}),E=()=>{var D,A;return!i&&!F?null:m.createElement(\"div\",{style:Object.assign(Object.assign(Object.assign({},(D=y.styles)===null||D===void 0?void 0:D.header),d),g==null?void 0:g.header),className:ne(`${n}-header`,{[`${n}-header-close-only`]:F&&!i&&!l},(A=y.classNames)===null||A===void 0?void 0:A.header,v==null?void 0:v.header)},m.createElement(\"div\",{className:`${n}-header-title`},b===\"start\"&&S,i&&m.createElement(\"div\",{className:`${n}-title`,id:a},i)),l&&m.createElement(\"div\",{className:`${n}-extra`},l),b===\"end\"&&S)},w=()=>{var D,A;if(!o)return null;const _=`${n}-footer`;return m.createElement(\"div\",{className:ne(_,(D=y.classNames)===null||D===void 0?void 0:D.footer,v==null?void 0:v.footer),style:Object.assign(Object.assign(Object.assign({},(A=y.styles)===null||A===void 0?void 0:A.footer),h),g==null?void 0:g.footer)},o)};return m.createElement(m.Fragment,null,E(),m.createElement(\"div\",{className:ne(`${n}-body`,v==null?void 0:v.body,(t=y.classNames)===null||t===void 0?void 0:t.body),style:Object.assign(Object.assign(Object.assign({},(r=y.styles)===null||r===void 0?void 0:r.body),f),g==null?void 0:g.body)},u?m.createElement(Cd,{active:!0,title:!1,paragraph:{rows:5},className:`${n}-body-skeleton`}):p),w())},PMe=e=>{const t=\"100%\";return{left:`translateX(-${t})`,right:`translateX(${t})`,top:`translateY(-${t})`,bottom:`translateY(${t})`}[e]},Hle=(e,t)=>({\"&-enter, &-appear\":Object.assign(Object.assign({},e),{\"&-active\":t}),\"&-leave\":Object.assign(Object.assign({},t),{\"&-active\":e})}),Vle=(e,t)=>Object.assign({\"&-enter, &-appear, &-leave\":{\"&-start\":{transition:\"none\"},\"&-active\":{transition:`all ${t}`}}},Hle({opacity:e},{opacity:1})),OMe=(e,t)=>[Vle(.7,t),Hle({transform:PMe(e)},{transform:\"none\"})],BMe=e=>{const{componentCls:t,motionDurationSlow:r}=e;return{[t]:{[`${t}-mask-motion`]:Vle(0,r),[`${t}-panel-motion`]:[\"left\",\"right\",\"top\",\"bottom\"].reduce((n,a)=>Object.assign(Object.assign({},n),{[`&-${a}`]:OMe(a,r)}),{})}}},NMe=e=>{const{borderRadiusSM:t,componentCls:r,zIndexPopup:n,colorBgMask:a,colorBgElevated:i,motionDurationSlow:o,motionDurationMid:l,paddingXS:s,padding:u,paddingLG:c,fontSizeLG:d,lineHeightLG:f,lineWidth:h,lineType:p,colorSplit:v,marginXS:g,colorIcon:y,colorIconHover:b,colorBgTextHover:x,colorBgTextActive:F,colorText:S,fontWeightStrong:E,footerPaddingBlock:w,footerPaddingInline:D,calc:A}=e,_=`${r}-content-wrapper`;return{[r]:{position:\"fixed\",inset:0,zIndex:n,pointerEvents:\"none\",color:S,\"&-pure\":{position:\"relative\",background:i,display:\"flex\",flexDirection:\"column\",[`&${r}-left`]:{boxShadow:e.boxShadowDrawerLeft},[`&${r}-right`]:{boxShadow:e.boxShadowDrawerRight},[`&${r}-top`]:{boxShadow:e.boxShadowDrawerUp},[`&${r}-bottom`]:{boxShadow:e.boxShadowDrawerDown}},\"&-inline\":{position:\"absolute\"},[`${r}-mask`]:{position:\"absolute\",inset:0,zIndex:n,background:a,pointerEvents:\"auto\"},[_]:{position:\"absolute\",zIndex:n,maxWidth:\"100vw\",transition:`all ${o}`,\"&-hidden\":{display:\"none\"}},[`&-left > ${_}`]:{top:0,bottom:0,left:{_skip_check_:!0,value:0},boxShadow:e.boxShadowDrawerLeft},[`&-right > ${_}`]:{top:0,right:{_skip_check_:!0,value:0},bottom:0,boxShadow:e.boxShadowDrawerRight},[`&-top > ${_}`]:{top:0,insetInline:0,boxShadow:e.boxShadowDrawerUp},[`&-bottom > ${_}`]:{bottom:0,insetInline:0,boxShadow:e.boxShadowDrawerDown},[`${r}-content`]:{display:\"flex\",flexDirection:\"column\",width:\"100%\",height:\"100%\",overflow:\"auto\",background:i,pointerEvents:\"auto\"},[`${r}-header`]:{display:\"flex\",flex:0,alignItems:\"center\",padding:`${re(u)} ${re(c)}`,fontSize:d,lineHeight:f,borderBottom:`${re(h)} ${p} ${v}`,\"&-title\":{display:\"flex\",flex:1,alignItems:\"center\",minWidth:0,minHeight:0}},[`${r}-extra`]:{flex:\"none\"},[`${r}-close`]:Object.assign({display:\"inline-flex\",width:A(d).add(s).equal(),height:A(d).add(s).equal(),borderRadius:t,justifyContent:\"center\",alignItems:\"center\",color:y,fontWeight:E,fontSize:d,fontStyle:\"normal\",lineHeight:1,textAlign:\"center\",textTransform:\"none\",textDecoration:\"none\",background:\"transparent\",border:0,cursor:\"pointer\",transition:`all ${l}`,textRendering:\"auto\",[`&${r}-close-end`]:{marginInlineStart:g},[`&:not(${r}-close-end)`]:{marginInlineEnd:g},\"&:hover\":{color:b,backgroundColor:x,textDecoration:\"none\"},\"&:active\":{backgroundColor:F}},pl(e)),[`${r}-title`]:{flex:1,margin:0,fontWeight:e.fontWeightStrong,fontSize:d,lineHeight:f},[`${r}-body`]:{flex:1,minWidth:0,minHeight:0,padding:c,overflow:\"auto\",[`${r}-body-skeleton`]:{width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\"}},[`${r}-footer`]:{flexShrink:0,padding:`${re(w)} ${re(D)}`,borderTop:`${re(h)} ${p} ${v}`},\"&-rtl\":{direction:\"rtl\"}}}},$Me=e=>({zIndexPopup:e.zIndexPopupBase,footerPaddingBlock:e.paddingXS,footerPaddingInline:e.padding}),Wle=kr(\"Drawer\",e=>{const t=Sr(e,{});return[NMe(t),BMe(t)]},$Me);var Gle=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const LMe={distance:180},RO=e=>{const{rootClassName:t,width:r,height:n,size:a=\"default\",mask:i=!0,push:o=LMe,open:l,afterOpenChange:s,onClose:u,prefixCls:c,getContainer:d,panelRef:f=null,style:h,className:p,\"aria-labelledby\":v,visible:g,afterVisibleChange:y,maskStyle:b,drawerStyle:x,contentWrapperStyle:F,destroyOnClose:S,destroyOnHidden:E}=e,w=Gle(e,[\"rootClassName\",\"width\",\"height\",\"size\",\"mask\",\"push\",\"open\",\"afterOpenChange\",\"onClose\",\"prefixCls\",\"getContainer\",\"panelRef\",\"style\",\"className\",\"aria-labelledby\",\"visible\",\"afterVisibleChange\",\"maskStyle\",\"drawerStyle\",\"contentWrapperStyle\",\"destroyOnClose\",\"destroyOnHidden\"]),D=hx(),A=w.title?D:void 0,{getPopupContainer:_,getPrefixCls:I,direction:M,className:T,style:k,classNames:R,styles:P}=na(\"drawer\"),B=I(\"drawer\",c),[N,O,z]=Wle(B),W=d===void 0&&_?()=>_(document.body):d,L=ne({\"no-mask\":!i,[`${B}-rtl`]:M===\"rtl\"},t,O,z),j=m.useMemo(()=>r??(a===\"large\"?736:378),[r,a]),H=m.useMemo(()=>n??(a===\"large\"?736:378),[n,a]),V={motionName:ml(B,\"mask-motion\"),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500},U=ce=>({motionName:ml(B,`panel-motion-${ce}`),motionAppear:!0,motionEnter:!0,motionLeave:!0,motionDeadline:500}),Q=Nae(),K=Qa(f,Q),[Y,ee]=xc(\"Drawer\",w.zIndex),{classNames:J={},styles:X={}}=w;return N(m.createElement(gu,{form:!0,space:!0},m.createElement(lx.Provider,{value:ee},m.createElement(MMe,Object.assign({prefixCls:B,onClose:u,maskMotion:V,motion:U},w,{classNames:{mask:ne(J.mask,R.mask),content:ne(J.content,R.content),wrapper:ne(J.wrapper,R.wrapper)},styles:{mask:Object.assign(Object.assign(Object.assign({},X.mask),b),P.mask),content:Object.assign(Object.assign(Object.assign({},X.content),x),P.content),wrapper:Object.assign(Object.assign(Object.assign({},X.wrapper),F),P.wrapper)},open:l??g,mask:i,push:o,width:j,height:H,style:Object.assign(Object.assign({},k),h),className:ne(T,p),rootClassName:L,getContainer:W,afterOpenChange:s??y,panelRef:K,zIndex:Y,\"aria-labelledby\":v??A,destroyOnClose:E??S}),m.createElement(zle,Object.assign({prefixCls:B},w,{ariaId:A,onClose:u}))))))},jMe=e=>{const{prefixCls:t,style:r,className:n,placement:a=\"right\"}=e,i=Gle(e,[\"prefixCls\",\"style\",\"className\",\"placement\"]),{getPrefixCls:o}=m.useContext(Ot),l=o(\"drawer\",t),[s,u,c]=Wle(l),d=ne(l,`${l}-pure`,`${l}-${a}`,u,c,n);return s(m.createElement(\"div\",{className:d,style:r},m.createElement(zle,Object.assign({prefixCls:l},i))))};RO._InternalPanelDoNotUseOrYouWillBeFired=jMe;function CV(e){return[\"small\",\"middle\",\"large\"].includes(e)}function FV(e){return e?typeof e==\"number\"&&!Number.isNaN(e):!1}const zMe=e=>{const{componentCls:t,borderRadius:r,paddingSM:n,colorBorder:a,paddingXS:i,fontSizeLG:o,fontSizeSM:l,borderRadiusLG:s,borderRadiusSM:u,colorBgContainerDisabled:c,lineWidth:d}=e;return{[t]:[{display:\"inline-flex\",alignItems:\"center\",gap:0,paddingInline:n,margin:0,background:c,borderWidth:d,borderStyle:\"solid\",borderColor:a,borderRadius:r,\"&-large\":{fontSize:o,borderRadius:s},\"&-small\":{paddingInline:i,borderRadius:u,fontSize:l},\"&-compact-last-item\":{borderEndStartRadius:0,borderStartStartRadius:0},\"&-compact-first-item\":{borderEndEndRadius:0,borderStartEndRadius:0},\"&-compact-item:not(:first-child):not(:last-child)\":{borderRadius:0},\"&-compact-item:not(:last-child)\":{borderInlineEndWidth:0}},Fg(e,{focus:!1})]}},HMe=kr([\"Space\",\"Addon\"],e=>[zMe(e)]);var VMe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const WMe=le.forwardRef((e,t)=>{const{className:r,children:n,style:a,prefixCls:i}=e,o=VMe(e,[\"className\",\"children\",\"style\",\"prefixCls\"]),{getPrefixCls:l,direction:s}=le.useContext(Ot),u=l(\"space-addon\",i),[c,d,f]=HMe(u),{compactItemClassnames:h,compactSize:p}=Cc(u,s),v=ne(u,d,h,f,{[`${u}-${p}`]:p},r);return c(le.createElement(\"div\",Object.assign({ref:t,className:v,style:a},o),n))}),Ule=le.createContext({latestIndex:0}),GMe=Ule.Provider,UMe=({className:e,index:t,children:r,split:n,style:a})=>{const{latestIndex:i}=m.useContext(Ule);return r==null?null:m.createElement(m.Fragment,null,m.createElement(\"div\",{className:e,style:a},r),t<i&&n&&m.createElement(\"span\",{className:`${e}-split`},n))},KMe=e=>{const{componentCls:t,antCls:r}=e;return{[t]:{display:\"inline-flex\",\"&-rtl\":{direction:\"rtl\"},\"&-vertical\":{flexDirection:\"column\"},\"&-align\":{flexDirection:\"column\",\"&-center\":{alignItems:\"center\"},\"&-start\":{alignItems:\"flex-start\"},\"&-end\":{alignItems:\"flex-end\"},\"&-baseline\":{alignItems:\"baseline\"}},[`${t}-item:empty`]:{display:\"none\"},[`${t}-item > ${r}-badge-not-a-wrapper:only-child`]:{display:\"block\"}}}},YMe=e=>{const{componentCls:t}=e;return{[t]:{\"&-gap-row-small\":{rowGap:e.spaceGapSmallSize},\"&-gap-row-middle\":{rowGap:e.spaceGapMiddleSize},\"&-gap-row-large\":{rowGap:e.spaceGapLargeSize},\"&-gap-col-small\":{columnGap:e.spaceGapSmallSize},\"&-gap-col-middle\":{columnGap:e.spaceGapMiddleSize},\"&-gap-col-large\":{columnGap:e.spaceGapLargeSize}}}},qMe=kr(\"Space\",e=>{const t=Sr(e,{spaceGapSmallSize:e.paddingXS,spaceGapMiddleSize:e.padding,spaceGapLargeSize:e.paddingLG});return[KMe(t),YMe(t)]},()=>({}),{resetStyle:!1});var XMe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const JMe=m.forwardRef((e,t)=>{var r;const{getPrefixCls:n,direction:a,size:i,className:o,style:l,classNames:s,styles:u}=na(\"space\"),{size:c=i??\"small\",align:d,className:f,rootClassName:h,children:p,direction:v=\"horizontal\",prefixCls:g,split:y,style:b,wrap:x=!1,classNames:F,styles:S}=e,E=XMe(e,[\"size\",\"align\",\"className\",\"rootClassName\",\"children\",\"direction\",\"prefixCls\",\"split\",\"style\",\"wrap\",\"classNames\",\"styles\"]),[w,D]=Array.isArray(c)?c:[c,c],A=CV(D),_=CV(w),I=FV(D),M=FV(w),T=ba(p,{keepEmpty:!0}),k=d===void 0&&v===\"horizontal\"?\"center\":d,R=n(\"space\",g),[P,B,N]=qMe(R),O=ne(R,o,B,`${R}-${v}`,{[`${R}-rtl`]:a===\"rtl\",[`${R}-align-${k}`]:k,[`${R}-gap-row-${D}`]:A,[`${R}-gap-col-${w}`]:_},f,h,N),z=ne(`${R}-item`,(r=F==null?void 0:F.item)!==null&&r!==void 0?r:s.item),W=Object.assign(Object.assign({},u.item),S==null?void 0:S.item),L=T.map((V,U)=>{const Q=(V==null?void 0:V.key)||`${z}-${U}`;return m.createElement(UMe,{className:z,key:Q,index:U,split:y,style:W},V)}),j=m.useMemo(()=>({latestIndex:T.reduce((U,Q,K)=>Q!=null?K:U,0)}),[T]);if(T.length===0)return null;const H={};return x&&(H.flexWrap=\"wrap\"),!_&&M&&(H.columnGap=w),!A&&I&&(H.rowGap=D),P(m.createElement(\"div\",Object.assign({ref:t,className:O,style:Object.assign(Object.assign(Object.assign({},H),l),b)},E),m.createElement(GMe,{value:j},L)))}),Qt=JMe;Qt.Compact=hEe;Qt.Addon=WMe;var ZMe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Kle=e=>{const{getPopupContainer:t,getPrefixCls:r,direction:n}=m.useContext(Ot),{prefixCls:a,type:i=\"default\",danger:o,disabled:l,loading:s,onClick:u,htmlType:c,children:d,className:f,menu:h,arrow:p,autoFocus:v,overlay:g,trigger:y,align:b,open:x,onOpenChange:F,placement:S,getPopupContainer:E,href:w,icon:D=m.createElement(dO,null),title:A,buttonsRender:_=J=>J,mouseEnterDelay:I,mouseLeaveDelay:M,overlayClassName:T,overlayStyle:k,destroyOnHidden:R,destroyPopupOnHide:P,dropdownRender:B,popupRender:N}=e,O=ZMe(e,[\"prefixCls\",\"type\",\"danger\",\"disabled\",\"loading\",\"onClick\",\"htmlType\",\"children\",\"className\",\"menu\",\"arrow\",\"autoFocus\",\"overlay\",\"trigger\",\"align\",\"open\",\"onOpenChange\",\"placement\",\"getPopupContainer\",\"href\",\"icon\",\"title\",\"buttonsRender\",\"mouseEnterDelay\",\"mouseLeaveDelay\",\"overlayClassName\",\"overlayStyle\",\"destroyOnHidden\",\"destroyPopupOnHide\",\"dropdownRender\",\"popupRender\"]),z=r(\"dropdown\",a),W=`${z}-button`,j={menu:h,arrow:p,autoFocus:v,align:b,disabled:l,trigger:l?[]:y,onOpenChange:F,getPopupContainer:E||t,mouseEnterDelay:I,mouseLeaveDelay:M,overlayClassName:T,overlayStyle:k,destroyOnHidden:R,popupRender:N||B},{compactSize:H,compactItemClassnames:V}=Cc(z,n),U=ne(W,V,f);\"destroyPopupOnHide\"in e&&(j.destroyPopupOnHide=P),\"overlay\"in e&&(j.overlay=g),\"open\"in e&&(j.open=x),\"placement\"in e?j.placement=S:j.placement=n===\"rtl\"?\"bottomLeft\":\"bottomRight\";const Q=m.createElement(ze,{type:i,danger:o,disabled:l,loading:s,onClick:u,htmlType:c,href:w,title:A},d),K=m.createElement(ze,{type:i,danger:o,icon:D}),[Y,ee]=_([Q,K]);return m.createElement(Qt.Compact,Object.assign({className:U,size:H,block:!0},O),Y,m.createElement(Cx,Object.assign({},j),ee))};Kle.__ANT_BUTTON=!0;const Fd=Cx;Fd.Button=Kle;function QMe(e){return e==null?null:typeof e==\"object\"&&!m.isValidElement(e)?e:{title:e}}var ePe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM504 618H320c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM312 490v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H320c-4.4 0-8 3.6-8 8z\"}}]},name:\"file-text\",theme:\"outlined\"},tPe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:ePe}))},Yle=m.forwardRef(tPe);function kE(e){const[t,r]=m.useState(e);return m.useEffect(()=>{const n=setTimeout(()=>{r(e)},e.length?0:10);return()=>{clearTimeout(n)}},[e]),t}const rPe=e=>{const{componentCls:t}=e,r=`${t}-show-help`,n=`${t}-show-help-item`;return{[r]:{transition:`opacity ${e.motionDurationFast} ${e.motionEaseInOut}`,\"&-appear, &-enter\":{opacity:0,\"&-active\":{opacity:1}},\"&-leave\":{opacity:1,\"&-active\":{opacity:0}},[n]:{overflow:\"hidden\",transition:`height ${e.motionDurationFast} ${e.motionEaseInOut},\n opacity ${e.motionDurationFast} ${e.motionEaseInOut},\n transform ${e.motionDurationFast} ${e.motionEaseInOut} !important`,[`&${n}-appear, &${n}-enter`]:{transform:\"translateY(-5px)\",opacity:0,\"&-active\":{transform:\"translateY(0)\",opacity:1}},[`&${n}-leave-active`]:{transform:\"translateY(-5px)\"}}}}},nPe=e=>({legend:{display:\"block\",width:\"100%\",marginBottom:e.marginLG,padding:0,color:e.colorTextDescription,fontSize:e.fontSizeLG,lineHeight:\"inherit\",border:0,borderBottom:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`},'input[type=\"search\"]':{boxSizing:\"border-box\"},'input[type=\"radio\"], input[type=\"checkbox\"]':{lineHeight:\"normal\"},'input[type=\"file\"]':{display:\"block\"},'input[type=\"range\"]':{display:\"block\",width:\"100%\"},\"select[multiple], select[size]\":{height:\"auto\"},\"input[type='file']:focus,\\n input[type='radio']:focus,\\n input[type='checkbox']:focus\":{outline:0,boxShadow:`0 0 0 ${re(e.controlOutlineWidth)} ${e.controlOutline}`},output:{display:\"block\",paddingTop:15,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight}}),SV=(e,t)=>{const{formItemCls:r}=e;return{[r]:{[`${r}-label > label`]:{height:t},[`${r}-control-input`]:{minHeight:t}}}},aPe=e=>{const{componentCls:t}=e;return{[e.componentCls]:Object.assign(Object.assign(Object.assign({},Hr(e)),nPe(e)),{[`${t}-text`]:{display:\"inline-block\",paddingInlineEnd:e.paddingSM},\"&-small\":Object.assign({},SV(e,e.controlHeightSM)),\"&-large\":Object.assign({},SV(e,e.controlHeightLG))})}},iPe=e=>{const{formItemCls:t,iconCls:r,rootPrefixCls:n,antCls:a,labelRequiredMarkColor:i,labelColor:o,labelFontSize:l,labelHeight:s,labelColonMarginInlineStart:u,labelColonMarginInlineEnd:c,itemMarginBottom:d}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{marginBottom:d,verticalAlign:\"top\",\"&-with-help\":{transition:\"none\"},[`&-hidden,\n &-hidden${a}-row`]:{display:\"none\"},\"&-has-warning\":{[`${t}-split`]:{color:e.colorError}},\"&-has-error\":{[`${t}-split`]:{color:e.colorWarning}},[`${t}-label`]:{flexGrow:0,overflow:\"hidden\",whiteSpace:\"nowrap\",textAlign:\"end\",verticalAlign:\"middle\",\"&-left\":{textAlign:\"start\"},\"&-wrap\":{overflow:\"unset\",lineHeight:e.lineHeight,whiteSpace:\"unset\",\"> label\":{verticalAlign:\"middle\",textWrap:\"balance\"}},\"> label\":{position:\"relative\",display:\"inline-flex\",alignItems:\"center\",maxWidth:\"100%\",height:s,color:o,fontSize:l,[`> ${r}`]:{fontSize:e.fontSize,verticalAlign:\"top\"},[`&${t}-required`]:{\"&::before\":{display:\"inline-block\",marginInlineEnd:e.marginXXS,color:i,fontSize:e.fontSize,fontFamily:\"SimSun, sans-serif\",lineHeight:1,content:'\"*\"'},[`&${t}-required-mark-hidden, &${t}-required-mark-optional`]:{\"&::before\":{display:\"none\"}}},[`${t}-optional`]:{display:\"inline-block\",marginInlineStart:e.marginXXS,color:e.colorTextDescription,[`&${t}-required-mark-hidden`]:{display:\"none\"}},[`${t}-tooltip`]:{color:e.colorTextDescription,cursor:\"help\",writingMode:\"horizontal-tb\",marginInlineStart:e.marginXXS},\"&::after\":{content:'\":\"',position:\"relative\",marginBlock:0,marginInlineStart:u,marginInlineEnd:c},[`&${t}-no-colon::after`]:{content:'\"\\\\a0\"'}}},[`${t}-control`]:{\"--ant-display\":\"flex\",flexDirection:\"column\",flexGrow:1,[`&:first-child:not([class^=\"'${n}-col-'\"]):not([class*=\"' ${n}-col-'\"])`]:{width:\"100%\"},\"&-input\":{position:\"relative\",display:\"flex\",alignItems:\"center\",minHeight:e.controlHeight,\"&-content\":{flex:\"auto\",maxWidth:\"100%\",[`&:has(> ${a}-switch:only-child, > ${a}-rate:only-child)`]:{display:\"flex\",alignItems:\"center\"}}}},[t]:{\"&-additional\":{display:\"flex\",flexDirection:\"column\"},\"&-explain, &-extra\":{clear:\"both\",color:e.colorTextDescription,fontSize:e.fontSize,lineHeight:e.lineHeight},\"&-explain-connected\":{width:\"100%\"},\"&-extra\":{minHeight:e.controlHeightSM,transition:`color ${e.motionDurationMid} ${e.motionEaseOut}`},\"&-explain\":{\"&-error\":{color:e.colorError},\"&-warning\":{color:e.colorWarning}}},[`&-with-help ${t}-explain`]:{height:\"auto\",opacity:1},[`${t}-feedback-icon`]:{fontSize:e.fontSize,textAlign:\"center\",visibility:\"visible\",animationName:V7,animationDuration:e.motionDurationMid,animationTimingFunction:e.motionEaseOutBack,pointerEvents:\"none\",\"&-success\":{color:e.colorSuccess},\"&-error\":{color:e.colorError},\"&-warning\":{color:e.colorWarning},\"&-validating\":{color:e.colorPrimary}}})}},Zh=e=>({padding:e.verticalLabelPadding,margin:e.verticalLabelMargin,whiteSpace:\"initial\",textAlign:\"start\",\"> label\":{margin:0,\"&::after\":{visibility:\"hidden\"}}}),oPe=e=>{const{antCls:t,formItemCls:r}=e;return{[`${r}-horizontal`]:{[`${r}-label`]:{flexGrow:0},[`${r}-control`]:{flex:\"1 1 0\",minWidth:0},[`${r}-label[class$='-24'], ${r}-label[class*='-24 ']`]:{[`& + ${r}-control`]:{minWidth:\"unset\"}},[`${t}-col-24${r}-label,\n ${t}-col-xl-24${r}-label`]:Zh(e)}}},lPe=e=>{const{componentCls:t,formItemCls:r,inlineItemMarginBottom:n}=e;return{[`${t}-inline`]:{display:\"flex\",flexWrap:\"wrap\",[`${r}-inline`]:{flex:\"none\",marginInlineEnd:e.margin,marginBottom:n,\"&-row\":{flexWrap:\"nowrap\"},[`> ${r}-label,\n > ${r}-control`]:{display:\"inline-block\",verticalAlign:\"top\"},[`> ${r}-label`]:{flex:\"none\"},[`${t}-text`]:{display:\"inline-block\"},[`${r}-has-feedback`]:{display:\"inline-block\"}}}}},sPe=e=>{const{componentCls:t,formItemCls:r,rootPrefixCls:n}=e;return{[`${r} ${r}-label`]:Zh(e),[`${t}:not(${t}-inline)`]:{[r]:{flexWrap:\"wrap\",[`${r}-label, ${r}-control`]:{[`&:not([class*=\" ${n}-col-xs\"])`]:{flex:\"0 0 100%\",maxWidth:\"100%\"}}}}}},uPe=e=>{const{componentCls:t,formItemCls:r,antCls:n}=e;return{[`${r}-vertical`]:{[`${r}-row`]:{flexDirection:\"column\"},[`${r}-label > label`]:{height:\"auto\"},[`${r}-control`]:{width:\"100%\"},[`${r}-label,\n ${n}-col-24${r}-label,\n ${n}-col-xl-24${r}-label`]:Zh(e)},[`@media (max-width: ${re(e.screenXSMax)})`]:[sPe(e),{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-xs-24${r}-label`]:Zh(e)}}}],[`@media (max-width: ${re(e.screenSMMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-sm-24${r}-label`]:Zh(e)}}},[`@media (max-width: ${re(e.screenMDMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-md-24${r}-label`]:Zh(e)}}},[`@media (max-width: ${re(e.screenLGMax)})`]:{[t]:{[`${r}:not(${r}-horizontal)`]:{[`${n}-col-lg-24${r}-label`]:Zh(e)}}}}},cPe=e=>({labelRequiredMarkColor:e.colorError,labelColor:e.colorTextHeading,labelFontSize:e.fontSize,labelHeight:e.controlHeight,labelColonMarginInlineStart:e.marginXXS/2,labelColonMarginInlineEnd:e.marginXS,itemMarginBottom:e.marginLG,verticalLabelPadding:`0 0 ${e.paddingXS}px`,verticalLabelMargin:0,inlineItemMarginBottom:0}),qle=(e,t)=>Sr(e,{formItemCls:`${e.componentCls}-item`,rootPrefixCls:t}),MO=kr(\"Form\",(e,{rootPrefixCls:t})=>{const r=qle(e,t);return[aPe(r),iPe(r),rPe(r),oPe(r),lPe(r),uPe(r),cx(r),V7]},cPe,{order:-1e3}),wV=[];function U_(e,t,r,n=0){return{key:typeof e==\"string\"?e:`${t}-${n}`,error:e,errorStatus:r}}const Xle=({help:e,helpStatus:t,errors:r=wV,warnings:n=wV,className:a,fieldId:i,onVisibleChanged:o})=>{const{prefixCls:l}=m.useContext(X7),s=`${l}-item-explain`,u=Zn(l),[c,d,f]=MO(l,u),h=m.useMemo(()=>K0(l),[l]),p=kE(r),v=kE(n),g=m.useMemo(()=>e!=null?[U_(e,\"help\",t)]:[].concat(He(p.map((x,F)=>U_(x,\"error\",\"error\",F))),He(v.map((x,F)=>U_(x,\"warning\",\"warning\",F)))),[e,t,p,v]),y=m.useMemo(()=>{const x={};return g.forEach(({key:F})=>{x[F]=(x[F]||0)+1}),g.map((F,S)=>Object.assign(Object.assign({},F),{key:x[F.key]>1?`${F.key}-fallback-${S}`:F.key}))},[g]),b={};return i&&(b.id=`${i}_help`),c(m.createElement(fi,{motionDeadline:h.motionDeadline,motionName:`${l}-show-help`,visible:!!y.length,onVisibleChanged:o},x=>{const{className:F,style:S}=x;return m.createElement(\"div\",Object.assign({},b,{className:ne(s,F,f,u,a,d),style:S}),m.createElement(R7,Object.assign({keys:y},K0(l),{motionName:`${l}-show-help-item`,component:!1}),E=>{const{key:w,error:D,errorStatus:A,className:_,style:I}=E;return m.createElement(\"div\",{key:w,className:ne(_,{[`${s}-${A}`]:A}),style:I},D)}))}))};var dPe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const fPe=(e,t)=>{const r=m.useContext(Ui),{getPrefixCls:n,direction:a,requiredMark:i,colon:o,scrollToFirstError:l,className:s,style:u}=na(\"form\"),{prefixCls:c,className:d,rootClassName:f,size:h,disabled:p=r,form:v,colon:g,labelAlign:y,labelWrap:b,labelCol:x,wrapperCol:F,hideRequiredMark:S,layout:E=\"horizontal\",scrollToFirstError:w,requiredMark:D,onFinishFailed:A,name:_,style:I,feedbackIcons:M,variant:T}=e,k=dPe(e,[\"prefixCls\",\"className\",\"rootClassName\",\"size\",\"disabled\",\"form\",\"colon\",\"labelAlign\",\"labelWrap\",\"labelCol\",\"wrapperCol\",\"hideRequiredMark\",\"layout\",\"scrollToFirstError\",\"requiredMark\",\"onFinishFailed\",\"name\",\"style\",\"feedbackIcons\",\"variant\"]),R=Ta(h),P=m.useContext(gne),B=m.useMemo(()=>D!==void 0?D:S?!1:i!==void 0?i:!0,[S,D,i]),N=g??o,O=n(\"form\",c),z=Zn(O),[W,L,j]=MO(O,z),H=ne(O,`${O}-${E}`,{[`${O}-hide-required-mark`]:B===!1,[`${O}-rtl`]:a===\"rtl\",[`${O}-${R}`]:R},j,z,L,s,d,f),[V]=nle(v),{__INTERNAL__:U}=V;U.name=_;const Q=m.useMemo(()=>({name:_,labelAlign:y,labelCol:x,labelWrap:b,wrapperCol:F,layout:E,colon:N,requiredMark:B,itemRef:U.itemRef,form:V,feedbackIcons:M}),[_,y,x,F,E,N,B,V,M]),K=m.useRef(null);m.useImperativeHandle(t,()=>{var J;return Object.assign(Object.assign({},V),{nativeElement:(J=K.current)===null||J===void 0?void 0:J.nativeElement})});const Y=(J,X)=>{if(J){let ce={block:\"nearest\"};typeof J==\"object\"&&(ce=Object.assign(Object.assign({},ce),J)),V.scrollToField(X,ce)}},ee=J=>{if(A==null||A(J),J.errorFields.length){const X=J.errorFields[0].name;if(w!==void 0){Y(w,X);return}l!==void 0&&Y(l,X)}};return W(m.createElement(Oae.Provider,{value:T},m.createElement(T7,{disabled:p},m.createElement(Gp.Provider,{value:R},m.createElement(Mae,{validateMessages:P},m.createElement(ad.Provider,{value:Q},m.createElement(Pae,{status:!0},m.createElement(Sg,Object.assign({id:_},k,{name:_,onFinishFailed:ee,form:V,ref:K,style:Object.assign(Object.assign({},u),I),className:H})))))))))},hPe=m.forwardRef(fPe);function pPe(e){if(typeof e==\"function\")return e;const t=ba(e);return t.length<=1?t[0]:t}const Jle=()=>{const{status:e,errors:t=[],warnings:r=[]}=m.useContext(pi);return{status:e,errors:t,warnings:r}};Jle.Context=pi;function mPe(e){const[t,r]=m.useState(e),n=m.useRef(null),a=m.useRef([]),i=m.useRef(!1);m.useEffect(()=>(i.current=!1,()=>{i.current=!0,Tr.cancel(n.current),n.current=null}),[]);function o(l){i.current||(n.current===null&&(a.current=[],n.current=Tr(()=>{n.current=null,r(s=>{let u=s;return a.current.forEach(c=>{u=c(u)}),u})})),a.current.push(l))}return[t,o]}function vPe(){const{itemRef:e}=m.useContext(ad),t=m.useRef({});function r(n,a){const i=a&&typeof a==\"object\"&&rh(a),o=n.join(\"_\");return(t.current.name!==o||t.current.originRef!==i)&&(t.current.name=o,t.current.originRef=i,t.current.ref=Qa(e(n),i)),t.current.ref}return r}const gPe=e=>{const{formItemCls:t}=e;return{\"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)\":{[`${t}-control`]:{display:\"flex\"}}}},yPe=yg([\"Form\",\"item-item\"],(e,{rootPrefixCls:t})=>{const r=qle(e,t);return gPe(r)});var bPe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const xPe=24,CPe=e=>{const{prefixCls:t,status:r,labelCol:n,wrapperCol:a,children:i,errors:o,warnings:l,_internalItemRender:s,extra:u,help:c,fieldId:d,marginBottom:f,onErrorVisibleChanged:h,label:p}=e,v=`${t}-item`,g=m.useContext(ad),y=m.useMemo(()=>{let k=Object.assign({},a||g.wrapperCol||{});return p===null&&!n&&!a&&g.labelCol&&[void 0,\"xs\",\"sm\",\"md\",\"lg\",\"xl\",\"xxl\"].forEach(P=>{const B=P?[P]:[],N=No(g.labelCol,B),O=typeof N==\"object\"?N:{},z=No(k,B),W=typeof z==\"object\"?z:{};\"span\"in O&&!(\"offset\"in W)&&O.span<xPe&&(k=us(k,[].concat(B,[\"offset\"]),O.span))}),k},[a,g.wrapperCol,g.labelCol,p,n]),b=ne(`${v}-control`,y.className),x=m.useMemo(()=>{const{labelCol:k,wrapperCol:R}=g;return bPe(g,[\"labelCol\",\"wrapperCol\"])},[g]),F=m.useRef(null),[S,E]=m.useState(0);_r(()=>{u&&F.current?E(F.current.clientHeight):E(0)},[u]);const w=m.createElement(\"div\",{className:`${v}-control-input`},m.createElement(\"div\",{className:`${v}-control-input-content`},i)),D=m.useMemo(()=>({prefixCls:t,status:r}),[t,r]),A=f!==null||o.length||l.length?m.createElement(X7.Provider,{value:D},m.createElement(Xle,{fieldId:d,errors:o,warnings:l,help:c,helpStatus:r,className:`${v}-explain-connected`,onVisibleChanged:h})):null,_={};d&&(_.id=`${d}_extra`);const I=u?m.createElement(\"div\",Object.assign({},_,{className:`${v}-extra`,ref:F}),u):null,M=A||I?m.createElement(\"div\",{className:`${v}-additional`,style:f?{minHeight:f+S}:{}},A,I):null,T=s&&s.mark===\"pro_table_render\"&&s.render?s.render(e,{input:w,errorList:A,extra:I}):m.createElement(m.Fragment,null,w,M);return m.createElement(ad.Provider,{value:x},m.createElement(Se,Object.assign({},y,{className:b}),T),m.createElement(yPe,{prefixCls:t}))};var FPe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{tag:\"path\",attrs:{d:\"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z\"}}]},name:\"question-circle\",theme:\"outlined\"},SPe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:FPe}))},wPe=m.forwardRef(SPe),EPe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const DPe=({prefixCls:e,label:t,htmlFor:r,labelCol:n,labelAlign:a,colon:i,required:o,requiredMark:l,tooltip:s,vertical:u})=>{var c;const[d]=Jo(\"Form\"),{labelAlign:f,labelCol:h,labelWrap:p,colon:v}=m.useContext(ad);if(!t)return null;const g=n||h||{},y=a||f,b=`${e}-item-label`,x=ne(b,y===\"left\"&&`${b}-left`,g.className,{[`${b}-wrap`]:!!p});let F=t;const S=i===!0||v!==!1&&i!==!1;S&&!u&&typeof t==\"string\"&&t.trim()&&(F=t.replace(/[:|]\\s*$/,\"\"));const w=QMe(s);if(w){const{icon:T=m.createElement(wPe,null)}=w,k=EPe(w,[\"icon\"]),R=m.createElement(Dr,Object.assign({},k),m.cloneElement(T,{className:`${e}-item-tooltip`,title:\"\",onClick:P=>{P.preventDefault()},tabIndex:null}));F=m.createElement(m.Fragment,null,F,R)}const D=l===\"optional\",A=typeof l==\"function\",_=l===!1;A?F=l(F,{required:!!o}):D&&!o&&(F=m.createElement(m.Fragment,null,F,m.createElement(\"span\",{className:`${e}-item-optional`,title:\"\"},(d==null?void 0:d.optional)||((c=ws.Form)===null||c===void 0?void 0:c.optional))));let I;_?I=\"hidden\":(D||A)&&(I=\"optional\");const M=ne({[`${e}-item-required`]:o,[`${e}-item-required-mark-${I}`]:I,[`${e}-item-no-colon`]:!S});return m.createElement(Se,Object.assign({},g,{className:x}),m.createElement(\"label\",{htmlFor:r,className:M,title:typeof t==\"string\"?t:\"\"},F))},APe={success:mm,warning:nh,error:xd,validating:cc};function Zle({children:e,errors:t,warnings:r,hasFeedback:n,validateStatus:a,prefixCls:i,meta:o,noStyle:l,name:s}){const u=`${i}-item`,{feedbackIcons:c}=m.useContext(ad),d=rle(t,r,o,null,!!n,a),{isFormItemInput:f,status:h,hasFeedback:p,feedbackIcon:v,name:g}=m.useContext(pi),y=m.useMemo(()=>{var b;let x;if(n){const S=n!==!0&&n.icons||c,E=d&&((b=S==null?void 0:S({status:d,errors:t,warnings:r}))===null||b===void 0?void 0:b[d]),w=d?APe[d]:null;x=E!==!1&&w?m.createElement(\"span\",{className:ne(`${u}-feedback-icon`,`${u}-feedback-icon-${d}`)},E||m.createElement(w,null)):null}const F={status:d||\"\",errors:t,warnings:r,hasFeedback:!!n,feedbackIcon:x,isFormItemInput:!0,name:s};return l&&(F.status=(d??h)||\"\",F.isFormItemInput=f,F.hasFeedback=!!(n??p),F.feedbackIcon=n!==void 0?F.feedbackIcon:v,F.name=s??g),F},[d,n,l,f,h]);return m.createElement(pi.Provider,{value:y},e)}var _Pe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function TPe(e){const{prefixCls:t,className:r,rootClassName:n,style:a,help:i,errors:o,warnings:l,validateStatus:s,meta:u,hasFeedback:c,hidden:d,children:f,fieldId:h,required:p,isRequired:v,onSubItemMetaChange:g,layout:y,name:b}=e,x=_Pe(e,[\"prefixCls\",\"className\",\"rootClassName\",\"style\",\"help\",\"errors\",\"warnings\",\"validateStatus\",\"meta\",\"hasFeedback\",\"hidden\",\"children\",\"fieldId\",\"required\",\"isRequired\",\"onSubItemMetaChange\",\"layout\",\"name\"]),F=`${t}-item`,{requiredMark:S,layout:E}=m.useContext(ad),w=y||E,D=w===\"vertical\",A=m.useRef(null),_=kE(o),I=kE(l),M=i!=null,T=!!(M||o.length||l.length),k=!!A.current&&xg(A.current),[R,P]=m.useState(null);_r(()=>{if(T&&A.current){const W=getComputedStyle(A.current);P(Number.parseInt(W.marginBottom,10))}},[T,k]);const B=W=>{W||P(null)},O=((W=!1)=>{const L=W?_:u.errors,j=W?I:u.warnings;return rle(L,j,u,\"\",!!c,s)})(),z=ne(F,r,n,{[`${F}-with-help`]:M||_.length||I.length,[`${F}-has-feedback`]:O&&c,[`${F}-has-success`]:O===\"success\",[`${F}-has-warning`]:O===\"warning\",[`${F}-has-error`]:O===\"error\",[`${F}-is-validating`]:O===\"validating\",[`${F}-hidden`]:d,[`${F}-${w}`]:w});return m.createElement(\"div\",{className:z,style:a,ref:A},m.createElement(sr,Object.assign({className:`${F}-row`},wn(x,[\"_internalItemRender\",\"colon\",\"dependencies\",\"extra\",\"fieldKey\",\"getValueFromEvent\",\"getValueProps\",\"htmlFor\",\"id\",\"initialValue\",\"isListField\",\"label\",\"labelAlign\",\"labelCol\",\"labelWrap\",\"messageVariables\",\"name\",\"normalize\",\"noStyle\",\"preserve\",\"requiredMark\",\"rules\",\"shouldUpdate\",\"trigger\",\"tooltip\",\"validateFirst\",\"validateTrigger\",\"valuePropName\",\"wrapperCol\",\"validateDebounce\"])),m.createElement(DPe,Object.assign({htmlFor:h},e,{requiredMark:S,required:p??v,prefixCls:t,vertical:D})),m.createElement(CPe,Object.assign({},e,u,{errors:_,warnings:I,prefixCls:t,status:O,help:i,marginBottom:R,onErrorVisibleChanged:B}),m.createElement(Rae.Provider,{value:g},m.createElement(Zle,{prefixCls:t,meta:u,errors:u.errors,warnings:u.warnings,hasFeedback:c,validateStatus:O,name:b},f)))),!!R&&m.createElement(\"div\",{className:`${F}-margin-offset`,style:{marginBottom:-R}}))}const IPe=\"__SPLIT__\";function kPe(e,t){const r=Object.keys(e),n=Object.keys(t);return r.length===n.length&&r.every(a=>{const i=e[a],o=t[a];return i===o||typeof i==\"function\"||typeof o==\"function\"})}const RPe=m.memo(({children:e})=>e,(e,t)=>kPe(e.control,t.control)&&e.update===t.update&&e.childProps.length===t.childProps.length&&e.childProps.every((r,n)=>r===t.childProps[n]));function EV(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}function MPe(e){const{name:t,noStyle:r,className:n,dependencies:a,prefixCls:i,shouldUpdate:o,rules:l,children:s,required:u,label:c,messageVariables:d,trigger:f=\"onChange\",validateTrigger:h,hidden:p,help:v,layout:g}=e,{getPrefixCls:y}=m.useContext(Ot),{name:b}=m.useContext(ad),x=pPe(s),F=typeof x==\"function\",S=m.useContext(Rae),{validateTrigger:E}=m.useContext(Kp),w=h!==void 0?h:E,D=t!=null,A=y(\"form\",i),_=Zn(A),[I,M,T]=MO(A,_);bc();const k=m.useContext(Qb),R=m.useRef(null),[P,B]=mPe({}),[N,O]=Up(()=>EV()),z=Q=>{const K=k==null?void 0:k.getKey(Q.name);if(O(Q.destroy?EV():Q,!0),r&&v!==!1&&S){let Y=Q.name;if(Q.destroy)Y=R.current||Y;else if(K!==void 0){const[ee,J]=K;Y=[ee].concat(He(J)),R.current=Y}S(Q,Y)}},W=(Q,K)=>{B(Y=>{const ee=Object.assign({},Y),X=[].concat(He(Q.name.slice(0,-1)),He(K)).join(IPe);return Q.destroy?delete ee[X]:ee[X]=Q,ee})},[L,j]=m.useMemo(()=>{const Q=He(N.errors),K=He(N.warnings);return Object.values(P).forEach(Y=>{Q.push.apply(Q,He(Y.errors||[])),K.push.apply(K,He(Y.warnings||[]))}),[Q,K]},[P,N.errors,N.warnings]),H=vPe();function V(Q,K,Y){return r&&!p?m.createElement(Zle,{prefixCls:A,hasFeedback:e.hasFeedback,validateStatus:e.validateStatus,meta:N,errors:L,warnings:j,noStyle:!0,name:t},Q):m.createElement(TPe,Object.assign({key:\"row\"},e,{className:ne(n,T,_,M),prefixCls:A,fieldId:K,isRequired:Y,errors:L,warnings:j,meta:N,onSubItemMetaChange:W,layout:g,name:t}),Q)}if(!D&&!F&&!a)return I(V(x));let U={};return typeof c==\"string\"?U.label=c:t&&(U.label=String(t)),d&&(U=Object.assign(Object.assign({},U),d)),I(m.createElement(Y7,Object.assign({},e,{messageVariables:U,trigger:f,validateTrigger:w,onMetaChange:z}),(Q,K,Y)=>{const ee=Wy(t).length&&K?K.name:[],J=tle(ee,b),X=u!==void 0?u:!!(l!=null&&l.some(ue=>{if(ue&&typeof ue==\"object\"&&ue.required&&!ue.warningOnly)return!0;if(typeof ue==\"function\"){const ie=ue(Y);return(ie==null?void 0:ie.required)&&!(ie!=null&&ie.warningOnly)}return!1})),ce=Object.assign({},Q);let oe=null;if(Array.isArray(x)&&D)oe=x;else if(!(F&&(!(o||a)||D))){if(!(a&&!F&&!D))if(m.isValidElement(x)){const ue=Object.assign(Object.assign({},x.props),ce);if(ue.id||(ue.id=J),v||L.length>0||j.length>0||e.extra){const xe=[];(v||L.length>0)&&xe.push(`${J}_help`),e.extra&&xe.push(`${J}_extra`),ue[\"aria-describedby\"]=xe.join(\" \")}L.length>0&&(ue[\"aria-invalid\"]=\"true\"),X&&(ue[\"aria-required\"]=\"true\"),mu(x)&&(ue.ref=H(ee,x)),new Set([].concat(He(Wy(f)),He(Wy(w)))).forEach(xe=>{ue[xe]=(...Ee)=>{var De,ye,we,Fe,me;(we=ce[xe])===null||we===void 0||(De=we).call.apply(De,[ce].concat(Ee)),(me=(Fe=x.props)[xe])===null||me===void 0||(ye=me).call.apply(ye,[Fe].concat(Ee))}});const fe=[ue[\"aria-required\"],ue[\"aria-invalid\"],ue[\"aria-describedby\"]];oe=m.createElement(RPe,{control:ce,update:x,childProps:fe},oa(x,ue))}else F&&(o||a)&&!D?oe=x(Y):oe=x}return V(oe,J,X)}))}const Qle=MPe;Qle.useStatus=Jle;var PPe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const OPe=e=>{var{prefixCls:t,children:r}=e,n=PPe(e,[\"prefixCls\",\"children\"]);const{getPrefixCls:a}=m.useContext(Ot),i=a(\"form\",t),o=m.useMemo(()=>({prefixCls:i,status:\"error\"}),[i]);return m.createElement(_ae,Object.assign({},n),(l,s,u)=>m.createElement(X7.Provider,{value:o},r(l.map(c=>Object.assign(Object.assign({},c),{fieldKey:c.key})),s,{errors:u.errors,warnings:u.warnings})))};function BPe(){const{form:e}=m.useContext(ad);return e}const be=hPe;be.Item=Qle;be.List=OPe;be.ErrorList=Xle;be.useForm=nle;be.useFormInstance=BPe;be.useWatch=kae;be.Provider=Mae;be.create=()=>{};var NPe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\"}}]},name:\"eye\",theme:\"outlined\"},$Pe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:NPe}))},Zo=m.forwardRef($Pe);function ese(){var e=document.documentElement.clientWidth,t=window.innerHeight||document.documentElement.clientHeight;return{width:e,height:t}}function LPe(e){var t=e.getBoundingClientRect(),r=document.documentElement;return{left:t.left+(window.pageXOffset||r.scrollLeft)-(r.clientLeft||document.body.clientLeft||0),top:t.top+(window.pageYOffset||r.scrollTop)-(r.clientTop||document.body.clientTop||0)}}function lf(e,t,r,n){var a=zb.unstable_batchedUpdates?function(o){zb.unstable_batchedUpdates(r,o)}:r;return e!=null&&e.addEventListener&&e.addEventListener(t,a,n),{remove:function(){e!=null&&e.removeEventListener&&e.removeEventListener(t,a,n)}}}var Ax=m.createContext(null),jPe=function(t){var r=t.visible,n=t.maskTransitionName,a=t.getContainer,i=t.prefixCls,o=t.rootClassName,l=t.icons,s=t.countRender,u=t.showSwitch,c=t.showProgress,d=t.current,f=t.transform,h=t.count,p=t.scale,v=t.minScale,g=t.maxScale,y=t.closeIcon,b=t.onActive,x=t.onClose,F=t.onZoomIn,S=t.onZoomOut,E=t.onRotateRight,w=t.onRotateLeft,D=t.onFlipX,A=t.onFlipY,_=t.onReset,I=t.toolbarRender,M=t.zIndex,T=t.image,k=m.useContext(Ax),R=l.rotateLeft,P=l.rotateRight,B=l.zoomIn,N=l.zoomOut,O=l.close,z=l.left,W=l.right,L=l.flipX,j=l.flipY,H=\"\".concat(i,\"-operations-operation\");m.useEffect(function(){var ie=function(xe){xe.keyCode===It.ESC&&x()};return r&&window.addEventListener(\"keydown\",ie),function(){window.removeEventListener(\"keydown\",ie)}},[r]);var V=function(fe,xe){fe.preventDefault(),fe.stopPropagation(),b(xe)},U=m.useCallback(function(ie){var fe=ie.type,xe=ie.disabled,Ee=ie.onClick,De=ie.icon;return m.createElement(\"div\",{key:fe,className:ne(H,\"\".concat(i,\"-operations-operation-\").concat(fe),Z({},\"\".concat(i,\"-operations-operation-disabled\"),!!xe)),onClick:Ee},De)},[H,i]),Q=u?U({icon:z,onClick:function(fe){return V(fe,-1)},type:\"prev\",disabled:d===0}):void 0,K=u?U({icon:W,onClick:function(fe){return V(fe,1)},type:\"next\",disabled:d===h-1}):void 0,Y=U({icon:j,onClick:A,type:\"flipY\"}),ee=U({icon:L,onClick:D,type:\"flipX\"}),J=U({icon:R,onClick:w,type:\"rotateLeft\"}),X=U({icon:P,onClick:E,type:\"rotateRight\"}),ce=U({icon:N,onClick:S,type:\"zoomOut\",disabled:p<=v}),oe=U({icon:B,onClick:F,type:\"zoomIn\",disabled:p===g}),ue=m.createElement(\"div\",{className:\"\".concat(i,\"-operations\")},Y,ee,J,X,ce,oe);return m.createElement(fi,{visible:r,motionName:n},function(ie){var fe=ie.className,xe=ie.style;return m.createElement(fx,{open:!0,getContainer:a??document.body},m.createElement(\"div\",{className:ne(\"\".concat(i,\"-operations-wrapper\"),fe,o),style:ae(ae({},xe),{},{zIndex:M})},y===null?null:m.createElement(\"button\",{className:\"\".concat(i,\"-close\"),onClick:x},y||O),u&&m.createElement(m.Fragment,null,m.createElement(\"div\",{className:ne(\"\".concat(i,\"-switch-left\"),Z({},\"\".concat(i,\"-switch-left-disabled\"),d===0)),onClick:function(De){return V(De,-1)}},z),m.createElement(\"div\",{className:ne(\"\".concat(i,\"-switch-right\"),Z({},\"\".concat(i,\"-switch-right-disabled\"),d===h-1)),onClick:function(De){return V(De,1)}},W)),m.createElement(\"div\",{className:\"\".concat(i,\"-footer\")},c&&m.createElement(\"div\",{className:\"\".concat(i,\"-progress\")},s?s(d+1,h):m.createElement(\"bdi\",null,\"\".concat(d+1,\" / \").concat(h))),I?I(ue,ae(ae({icons:{prevIcon:Q,nextIcon:K,flipYIcon:Y,flipXIcon:ee,rotateLeftIcon:J,rotateRightIcon:X,zoomOutIcon:ce,zoomInIcon:oe},actions:{onActive:b,onFlipY:A,onFlipX:D,onRotateLeft:w,onRotateRight:E,onZoomOut:S,onZoomIn:F,onReset:_,onClose:x},transform:f},k?{current:d,total:h}:{}),{},{image:T})):ue)))})},nF={x:0,y:0,rotate:0,scale:1,flipX:!1,flipY:!1};function zPe(e,t,r,n){var a=m.useRef(null),i=m.useRef([]),o=m.useState(nF),l=ve(o,2),s=l[0],u=l[1],c=function(p){u(nF),vu(nF,s)||n==null||n({transform:nF,action:p})},d=function(p,v){a.current===null&&(i.current=[],a.current=Tr(function(){u(function(g){var y=g;return i.current.forEach(function(b){y=ae(ae({},y),b)}),a.current=null,n==null||n({transform:y,action:v}),y})})),i.current.push(ae(ae({},s),p))},f=function(p,v,g,y,b){var x=e.current,F=x.width,S=x.height,E=x.offsetWidth,w=x.offsetHeight,D=x.offsetLeft,A=x.offsetTop,_=p,I=s.scale*p;I>r?(I=r,_=r/s.scale):I<t&&(I=b?I:t,_=I/s.scale);var M=g??innerWidth/2,T=y??innerHeight/2,k=_-1,R=k*F*.5,P=k*S*.5,B=k*(M-s.x-D),N=k*(T-s.y-A),O=s.x-(B-R),z=s.y-(N-P);if(p<1&&I===1){var W=E*I,L=w*I,j=ese(),H=j.width,V=j.height;W<=H&&L<=V&&(O=0,z=0)}d({x:O,y:z,scale:I},v)};return{transform:s,resetTransform:c,updateTransform:d,dispatchZoomChange:f}}function DV(e,t,r,n){var a=t+r,i=(r-n)/2;if(r>n){if(t>0)return Z({},e,i);if(t<0&&a<n)return Z({},e,-i)}else if(t<0||a>n)return Z({},e,t<0?i:-i);return{}}function tse(e,t,r,n){var a=ese(),i=a.width,o=a.height,l=null;return e<=i&&t<=o?l={x:0,y:0}:(e>i||t>o)&&(l=ae(ae({},DV(\"x\",r,e,i)),DV(\"y\",n,t,o))),l}var n0=1,HPe=1;function VPe(e,t,r,n,a,i,o){var l=a.rotate,s=a.scale,u=a.x,c=a.y,d=m.useState(!1),f=ve(d,2),h=f[0],p=f[1],v=m.useRef({diffX:0,diffY:0,transformX:0,transformY:0}),g=function(S){!t||S.button!==0||(S.preventDefault(),S.stopPropagation(),v.current={diffX:S.pageX-u,diffY:S.pageY-c,transformX:u,transformY:c},p(!0))},y=function(S){r&&h&&i({x:S.pageX-v.current.diffX,y:S.pageY-v.current.diffY},\"move\")},b=function(){if(r&&h){p(!1);var S=v.current,E=S.transformX,w=S.transformY,D=u!==E&&c!==w;if(!D)return;var A=e.current.offsetWidth*s,_=e.current.offsetHeight*s,I=e.current.getBoundingClientRect(),M=I.left,T=I.top,k=l%180!==0,R=tse(k?_:A,k?A:_,M,T);R&&i(ae({},R),\"dragRebound\")}},x=function(S){if(!(!r||S.deltaY==0)){var E=Math.abs(S.deltaY/100),w=Math.min(E,HPe),D=n0+w*n;S.deltaY>0&&(D=n0/D),o(D,\"wheel\",S.clientX,S.clientY)}};return m.useEffect(function(){var F,S,E,w;if(t){E=lf(window,\"mouseup\",b,!1),w=lf(window,\"mousemove\",y,!1);try{window.top!==window.self&&(F=lf(window.top,\"mouseup\",b,!1),S=lf(window.top,\"mousemove\",y,!1))}catch{}}return function(){var D,A,_,I;(D=E)===null||D===void 0||D.remove(),(A=w)===null||A===void 0||A.remove(),(_=F)===null||_===void 0||_.remove(),(I=S)===null||I===void 0||I.remove()}},[r,h,u,c,l,t]),{isMoving:h,onMouseDown:g,onMouseMove:y,onMouseUp:b,onWheel:x}}function WPe(e){return new Promise(function(t){if(!e){t(!1);return}var r=document.createElement(\"img\");r.onerror=function(){return t(!1)},r.onload=function(){return t(!0)},r.src=e})}function rse(e){var t=e.src,r=e.isCustomPlaceholder,n=e.fallback,a=m.useState(r?\"loading\":\"normal\"),i=ve(a,2),o=i[0],l=i[1],s=m.useRef(!1),u=o===\"error\";m.useEffect(function(){var h=!0;return WPe(t).then(function(p){!p&&h&&l(\"error\")}),function(){h=!1}},[t]),m.useEffect(function(){r&&!s.current?l(\"loading\"):u&&l(\"normal\")},[t]);var c=function(){l(\"normal\")},d=function(p){s.current=!1,o===\"loading\"&&p!==null&&p!==void 0&&p.complete&&(p.naturalWidth||p.naturalHeight)&&(s.current=!0,c())},f=u&&n?{src:n}:{onLoad:c,src:t};return[d,f,o]}function RE(e,t){var r=e.x-t.x,n=e.y-t.y;return Math.hypot(r,n)}function GPe(e,t,r,n){var a=RE(e,r),i=RE(t,n);if(a===0&&i===0)return[e.x,e.y];var o=a/(a+i),l=e.x+o*(t.x-e.x),s=e.y+o*(t.y-e.y);return[l,s]}function UPe(e,t,r,n,a,i,o){var l=a.rotate,s=a.scale,u=a.x,c=a.y,d=m.useState(!1),f=ve(d,2),h=f[0],p=f[1],v=m.useRef({point1:{x:0,y:0},point2:{x:0,y:0},eventType:\"none\"}),g=function(S){v.current=ae(ae({},v.current),S)},y=function(S){if(t){S.stopPropagation(),p(!0);var E=S.touches,w=E===void 0?[]:E;w.length>1?g({point1:{x:w[0].clientX,y:w[0].clientY},point2:{x:w[1].clientX,y:w[1].clientY},eventType:\"touchZoom\"}):g({point1:{x:w[0].clientX-u,y:w[0].clientY-c},eventType:\"move\"})}},b=function(S){var E=S.touches,w=E===void 0?[]:E,D=v.current,A=D.point1,_=D.point2,I=D.eventType;if(w.length>1&&I===\"touchZoom\"){var M={x:w[0].clientX,y:w[0].clientY},T={x:w[1].clientX,y:w[1].clientY},k=GPe(A,_,M,T),R=ve(k,2),P=R[0],B=R[1],N=RE(M,T)/RE(A,_);o(N,\"touchZoom\",P,B,!0),g({point1:M,point2:T,eventType:\"touchZoom\"})}else I===\"move\"&&(i({x:w[0].clientX-A.x,y:w[0].clientY-A.y},\"move\"),g({eventType:\"move\"}))},x=function(){if(r){if(h&&p(!1),g({eventType:\"none\"}),n>s)return i({x:0,y:0,scale:n},\"touchZoom\");var S=e.current.offsetWidth*s,E=e.current.offsetHeight*s,w=e.current.getBoundingClientRect(),D=w.left,A=w.top,_=l%180!==0,I=tse(_?E:S,_?S:E,D,A);I&&i(ae({},I),\"dragRebound\")}};return m.useEffect(function(){var F;return r&&t&&(F=lf(window,\"touchmove\",function(S){return S.preventDefault()},{passive:!1})),function(){var S;(S=F)===null||S===void 0||S.remove()}},[r,t]),{isTouching:h,onTouchStart:y,onTouchMove:b,onTouchEnd:x}}var KPe=[\"fallback\",\"src\",\"imgRef\"],YPe=[\"prefixCls\",\"src\",\"alt\",\"imageInfo\",\"fallback\",\"movable\",\"onClose\",\"visible\",\"icons\",\"rootClassName\",\"closeIcon\",\"getContainer\",\"current\",\"count\",\"countRender\",\"scaleStep\",\"minScale\",\"maxScale\",\"transitionName\",\"maskTransitionName\",\"imageRender\",\"imgCommonProps\",\"toolbarRender\",\"onTransform\",\"onChange\"],qPe=function(t){var r=t.fallback,n=t.src,a=t.imgRef,i=Xt(t,KPe),o=rse({src:n,fallback:r}),l=ve(o,2),s=l[0],u=l[1];return le.createElement(\"img\",Ce({ref:function(d){a.current=d,s(d)}},i,u))},nse=function(t){var r=t.prefixCls,n=t.src,a=t.alt,i=t.imageInfo,o=t.fallback,l=t.movable,s=l===void 0?!0:l,u=t.onClose,c=t.visible,d=t.icons,f=d===void 0?{}:d,h=t.rootClassName,p=t.closeIcon,v=t.getContainer,g=t.current,y=g===void 0?0:g,b=t.count,x=b===void 0?1:b,F=t.countRender,S=t.scaleStep,E=S===void 0?.5:S,w=t.minScale,D=w===void 0?1:w,A=t.maxScale,_=A===void 0?50:A,I=t.transitionName,M=I===void 0?\"zoom\":I,T=t.maskTransitionName,k=T===void 0?\"fade\":T,R=t.imageRender,P=t.imgCommonProps,B=t.toolbarRender,N=t.onTransform,O=t.onChange,z=Xt(t,YPe),W=m.useRef(),L=m.useContext(Ax),j=L&&x>1,H=L&&x>=1,V=m.useState(!0),U=ve(V,2),Q=U[0],K=U[1],Y=zPe(W,D,_,N),ee=Y.transform,J=Y.resetTransform,X=Y.updateTransform,ce=Y.dispatchZoomChange,oe=VPe(W,s,c,E,ee,X,ce),ue=oe.isMoving,ie=oe.onMouseDown,fe=oe.onWheel,xe=UPe(W,s,c,D,ee,X,ce),Ee=xe.isTouching,De=xe.onTouchStart,ye=xe.onTouchMove,we=xe.onTouchEnd,Fe=ee.rotate,me=ee.scale,Me=ne(Z({},\"\".concat(r,\"-moving\"),ue));m.useEffect(function(){Q||K(!0)},[Q]);var je=function(){J(\"close\")},lt=function(){ce(n0+E,\"zoomIn\")},tt=function(){ce(n0/(n0+E),\"zoomOut\")},rt=function(){X({rotate:Fe+90},\"rotateRight\")},dt=function(){X({rotate:Fe-90},\"rotateLeft\")},Ve=function(){X({flipX:!ee.flipX},\"flipX\")},Ie=function(){X({flipY:!ee.flipY},\"flipY\")},Je=function(){J(\"reset\")},Pe=function(pt){var _t=y+pt;!Number.isInteger(_t)||_t<0||_t>x-1||(K(!1),J(pt<0?\"prev\":\"next\"),O==null||O(_t,y))},Ge=function(pt){!c||!j||(pt.keyCode===It.LEFT?Pe(-1):pt.keyCode===It.RIGHT&&Pe(1))},Ae=function(pt){c&&(me!==1?X({x:0,y:0,scale:1},\"doubleClick\"):ce(n0+E,\"doubleClick\",pt.clientX,pt.clientY))};m.useEffect(function(){var Ke=lf(window,\"keydown\",Ge,!1);return function(){Ke.remove()}},[c,j,y]);var _e=le.createElement(qPe,Ce({},P,{width:t.width,height:t.height,imgRef:W,className:\"\".concat(r,\"-img\"),alt:a,style:{transform:\"translate3d(\".concat(ee.x,\"px, \").concat(ee.y,\"px, 0) scale3d(\").concat(ee.flipX?\"-\":\"\").concat(me,\", \").concat(ee.flipY?\"-\":\"\").concat(me,\", 1) rotate(\").concat(Fe,\"deg)\"),transitionDuration:(!Q||Ee)&&\"0s\"},fallback:o,src:n,onWheel:fe,onMouseDown:ie,onDoubleClick:Ae,onTouchStart:De,onTouchMove:ye,onTouchEnd:we,onTouchCancel:we})),$e=ae({url:n,alt:a},i);return le.createElement(le.Fragment,null,le.createElement(U7,Ce({transitionName:M,maskTransitionName:k,closable:!1,keyboard:!0,prefixCls:r,onClose:u,visible:c,classNames:{wrapper:Me},rootClassName:h,getContainer:v},z,{afterClose:je}),le.createElement(\"div\",{className:\"\".concat(r,\"-img-wrapper\")},R?R(_e,ae({transform:ee,image:$e},L?{current:y}:{})):_e)),le.createElement(jPe,{visible:c,transform:ee,maskTransitionName:k,closeIcon:p,getContainer:v,prefixCls:r,rootClassName:h,icons:f,countRender:F,showSwitch:j,showProgress:H,current:y,count:x,scale:me,minScale:D,maxScale:_,toolbarRender:B,onActive:Pe,onZoomIn:lt,onZoomOut:tt,onRotateRight:rt,onRotateLeft:dt,onFlipX:Ve,onFlipY:Ie,onClose:u,onReset:Je,zIndex:z.zIndex!==void 0?z.zIndex+1:void 0,image:$e}))},LR=[\"crossOrigin\",\"decoding\",\"draggable\",\"loading\",\"referrerPolicy\",\"sizes\",\"srcSet\",\"useMap\",\"alt\"];function XPe(e){var t=m.useState({}),r=ve(t,2),n=r[0],a=r[1],i=m.useCallback(function(l,s){return a(function(u){return ae(ae({},u),{},Z({},l,s))}),function(){a(function(u){var c=ae({},u);return delete c[l],c})}},[]),o=m.useMemo(function(){return e?e.map(function(l){if(typeof l==\"string\")return{data:{src:l}};var s={};return Object.keys(l).forEach(function(u){[\"src\"].concat(He(LR)).includes(u)&&(s[u]=l[u])}),{data:s}}):Object.keys(n).reduce(function(l,s){var u=n[s],c=u.canPreview,d=u.data;return c&&l.push({data:d,id:s}),l},[])},[e,n]);return[o,i,!!e]}var JPe=[\"visible\",\"onVisibleChange\",\"getContainer\",\"current\",\"movable\",\"minScale\",\"maxScale\",\"countRender\",\"closeIcon\",\"onChange\",\"onTransform\",\"toolbarRender\",\"imageRender\"],ZPe=[\"src\"],QPe=function(t){var r,n=t.previewPrefixCls,a=n===void 0?\"rc-image-preview\":n,i=t.children,o=t.icons,l=o===void 0?{}:o,s=t.items,u=t.preview,c=t.fallback,d=Nt(u)===\"object\"?u:{},f=d.visible,h=d.onVisibleChange,p=d.getContainer,v=d.current,g=d.movable,y=d.minScale,b=d.maxScale,x=d.countRender,F=d.closeIcon,S=d.onChange,E=d.onTransform,w=d.toolbarRender,D=d.imageRender,A=Xt(d,JPe),_=XPe(s),I=ve(_,3),M=I[0],T=I[1],k=I[2],R=un(0,{value:v}),P=ve(R,2),B=P[0],N=P[1],O=m.useState(!1),z=ve(O,2),W=z[0],L=z[1],j=((r=M[B])===null||r===void 0?void 0:r.data)||{},H=j.src,V=Xt(j,ZPe),U=un(!!f,{value:f,onChange:function(Ee,De){h==null||h(Ee,De,B)}}),Q=ve(U,2),K=Q[0],Y=Q[1],ee=m.useState(null),J=ve(ee,2),X=J[0],ce=J[1],oe=m.useCallback(function(xe,Ee,De,ye){var we=k?M.findIndex(function(Fe){return Fe.data.src===Ee}):M.findIndex(function(Fe){return Fe.id===xe});N(we<0?0:we),Y(!0),ce({x:De,y:ye}),L(!0)},[M,k]);m.useEffect(function(){K?W||N(0):L(!1)},[K]);var ue=function(Ee,De){N(Ee),S==null||S(Ee,De)},ie=function(){Y(!1),ce(null)},fe=m.useMemo(function(){return{register:T,onPreview:oe}},[T,oe]);return m.createElement(Ax.Provider,{value:fe},i,m.createElement(nse,Ce({\"aria-hidden\":!K,movable:g,visible:K,prefixCls:a,closeIcon:F,onClose:ie,mousePosition:X,imgCommonProps:V,src:H,fallback:c,icons:l,minScale:y,maxScale:b,getContainer:p,current:B,count:M.length,countRender:x,onTransform:E,toolbarRender:w,imageRender:D,onChange:ue},A)))},AV=0;function e9e(e,t){var r=m.useState(function(){return AV+=1,String(AV)}),n=ve(r,1),a=n[0],i=m.useContext(Ax),o={data:t,canPreview:e};return m.useEffect(function(){if(i)return i.register(a,o)},[]),m.useEffect(function(){i&&i.register(a,o)},[e,t]),a}var t9e=[\"src\",\"alt\",\"onPreviewClose\",\"prefixCls\",\"previewPrefixCls\",\"placeholder\",\"fallback\",\"width\",\"height\",\"style\",\"preview\",\"className\",\"onClick\",\"onError\",\"wrapperClassName\",\"wrapperStyle\",\"rootClassName\"],r9e=[\"src\",\"visible\",\"onVisibleChange\",\"getContainer\",\"mask\",\"maskClassName\",\"movable\",\"icons\",\"scaleStep\",\"minScale\",\"maxScale\",\"imageRender\",\"toolbarRender\"],PO=function(t){var r=t.src,n=t.alt,a=t.onPreviewClose,i=t.prefixCls,o=i===void 0?\"rc-image\":i,l=t.previewPrefixCls,s=l===void 0?\"\".concat(o,\"-preview\"):l,u=t.placeholder,c=t.fallback,d=t.width,f=t.height,h=t.style,p=t.preview,v=p===void 0?!0:p,g=t.className,y=t.onClick,b=t.onError,x=t.wrapperClassName,F=t.wrapperStyle,S=t.rootClassName,E=Xt(t,t9e),w=u&&u!==!0,D=Nt(v)===\"object\"?v:{},A=D.src,_=D.visible,I=_===void 0?void 0:_,M=D.onVisibleChange,T=M===void 0?a:M,k=D.getContainer,R=k===void 0?void 0:k,P=D.mask,B=D.maskClassName,N=D.movable,O=D.icons,z=D.scaleStep,W=D.minScale,L=D.maxScale,j=D.imageRender,H=D.toolbarRender,V=Xt(D,r9e),U=A??r,Q=un(!!I,{value:I,onChange:T}),K=ve(Q,2),Y=K[0],ee=K[1],J=rse({src:r,isCustomPlaceholder:w,fallback:c}),X=ve(J,3),ce=X[0],oe=X[1],ue=X[2],ie=m.useState(null),fe=ve(ie,2),xe=fe[0],Ee=fe[1],De=m.useContext(Ax),ye=!!v,we=function(){ee(!1),Ee(null)},Fe=ne(o,x,S,Z({},\"\".concat(o,\"-error\"),ue===\"error\")),me=m.useMemo(function(){var tt={};return LR.forEach(function(rt){t[rt]!==void 0&&(tt[rt]=t[rt])}),tt},LR.map(function(tt){return t[tt]})),Me=m.useMemo(function(){return ae(ae({},me),{},{src:U})},[U,me]),je=e9e(ye,Me),lt=function(rt){var dt=LPe(rt.target),Ve=dt.left,Ie=dt.top;De?De.onPreview(je,U,Ve,Ie):(Ee({x:Ve,y:Ie}),ee(!0)),y==null||y(rt)};return m.createElement(m.Fragment,null,m.createElement(\"div\",Ce({},E,{className:Fe,onClick:ye?lt:y,style:ae({width:d,height:f},F)}),m.createElement(\"img\",Ce({},me,{className:ne(\"\".concat(o,\"-img\"),Z({},\"\".concat(o,\"-img-placeholder\"),u===!0),g),style:ae({height:f},h),ref:ce},oe,{width:d,height:f,onError:b})),ue===\"loading\"&&m.createElement(\"div\",{\"aria-hidden\":\"true\",className:\"\".concat(o,\"-placeholder\")},u),P&&ye&&m.createElement(\"div\",{className:ne(\"\".concat(o,\"-mask\"),B),style:{display:(h==null?void 0:h.display)===\"none\"?\"none\":void 0}},P)),!De&&ye&&m.createElement(nse,Ce({\"aria-hidden\":!Y,visible:Y,prefixCls:s,onClose:we,mousePosition:xe,src:U,alt:n,imageInfo:{width:d,height:f},fallback:c,getContainer:R,icons:O,movable:N,scaleStep:z,minScale:W,maxScale:L,rootClassName:S,imageRender:j,imgCommonProps:me,toolbarRender:H},V)))};PO.PreviewGroup=QPe;var n9e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"defs\",attrs:{},children:[{tag:\"style\",attrs:{}}]},{tag:\"path\",attrs:{d:\"M672 418H144c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H188V494h440v326z\"}},{tag:\"path\",attrs:{d:\"M819.3 328.5c-78.8-100.7-196-153.6-314.6-154.2l-.2-64c0-6.5-7.6-10.1-12.6-6.1l-128 101c-4 3.1-3.9 9.1 0 12.3L492 318.6c5.1 4 12.7.4 12.6-6.1v-63.9c12.9.1 25.9.9 38.8 2.5 42.1 5.2 82.1 18.2 119 38.7 38.1 21.2 71.2 49.7 98.4 84.3 27.1 34.7 46.7 73.7 58.1 115.8a325.95 325.95 0 016.5 140.9h74.9c14.8-103.6-11.3-213-81-302.3z\"}}]},name:\"rotate-left\",theme:\"outlined\"},a9e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:n9e}))},i9e=m.forwardRef(a9e),o9e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"defs\",attrs:{},children:[{tag:\"style\",attrs:{}}]},{tag:\"path\",attrs:{d:\"M480.5 251.2c13-1.6 25.9-2.4 38.8-2.5v63.9c0 6.5 7.5 10.1 12.6 6.1L660 217.6c4-3.2 4-9.2 0-12.3l-128-101c-5.1-4-12.6-.4-12.6 6.1l-.2 64c-118.6.5-235.8 53.4-314.6 154.2A399.75 399.75 0 00123.5 631h74.9c-.9-5.3-1.7-10.7-2.4-16.1-5.1-42.1-2.1-84.1 8.9-124.8 11.4-42.2 31-81.1 58.1-115.8 27.2-34.7 60.3-63.2 98.4-84.3 37-20.6 76.9-33.6 119.1-38.8z\"}},{tag:\"path\",attrs:{d:\"M880 418H352c-17.7 0-32 14.3-32 32v414c0 17.7 14.3 32 32 32h528c17.7 0 32-14.3 32-32V450c0-17.7-14.3-32-32-32zm-44 402H396V494h440v326z\"}}]},name:\"rotate-right\",theme:\"outlined\"},l9e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:o9e}))},s9e=m.forwardRef(l9e),u9e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]},name:\"swap\",theme:\"outlined\"},c9e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:u9e}))},ME=m.forwardRef(c9e),d9e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M637 443H519V309c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v134H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h118v134c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V519h118c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\"}}]},name:\"zoom-in\",theme:\"outlined\"},f9e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:d9e}))},h9e=m.forwardRef(f9e),p9e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M637 443H325c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h312c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm284 424L775 721c122.1-148.9 113.6-369.5-26-509-148-148.1-388.4-148.1-537 0-148.1 148.6-148.1 389 0 537 139.5 139.6 360.1 148.1 509 26l146 146c3.2 2.8 8.3 2.8 11 0l43-43c2.8-2.7 2.8-7.8 0-11zM696 696c-118.8 118.7-311.2 118.7-430 0-118.7-118.8-118.7-311.2 0-430 118.8-118.7 311.2-118.7 430 0 118.7 118.8 118.7 311.2 0 430z\"}}]},name:\"zoom-out\",theme:\"outlined\"},m9e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:p9e}))},v9e=m.forwardRef(m9e);const jR=e=>({position:e||\"absolute\",inset:0}),g9e=e=>{const{iconCls:t,motionDurationSlow:r,paddingXXS:n,marginXXS:a,prefixCls:i,colorTextLightSolid:o}=e;return{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:o,background:new $r(\"#000\").setA(.5).toRgbString(),cursor:\"pointer\",opacity:0,transition:`opacity ${r}`,[`.${i}-mask-info`]:Object.assign(Object.assign({},$l),{padding:`0 ${re(n)}`,[t]:{marginInlineEnd:a,svg:{verticalAlign:\"baseline\"}}})}},y9e=e=>{const{previewCls:t,modalMaskBg:r,paddingSM:n,marginXL:a,margin:i,paddingLG:o,previewOperationColorDisabled:l,previewOperationHoverColor:s,motionDurationSlow:u,iconCls:c,colorTextLightSolid:d}=e,f=new $r(r).setA(.1),h=f.clone().setA(.2);return{[`${t}-footer`]:{position:\"fixed\",bottom:a,left:{_skip_check_:!0,value:\"50%\"},display:\"flex\",flexDirection:\"column\",alignItems:\"center\",color:e.previewOperationColor,transform:\"translateX(-50%)\"},[`${t}-progress`]:{marginBottom:i},[`${t}-close`]:{position:\"fixed\",top:a,right:{_skip_check_:!0,value:a},display:\"flex\",color:d,backgroundColor:f.toRgbString(),borderRadius:\"50%\",padding:n,outline:0,border:0,cursor:\"pointer\",transition:`all ${u}`,\"&:hover\":{backgroundColor:h.toRgbString()},[`& > ${c}`]:{fontSize:e.previewOperationSize}},[`${t}-operations`]:{display:\"flex\",alignItems:\"center\",padding:`0 ${re(o)}`,backgroundColor:f.toRgbString(),borderRadius:100,\"&-operation\":{marginInlineStart:n,padding:n,cursor:\"pointer\",transition:`all ${u}`,userSelect:\"none\",[`&:not(${t}-operations-operation-disabled):hover > ${c}`]:{color:s},\"&-disabled\":{color:l,cursor:\"not-allowed\"},\"&:first-of-type\":{marginInlineStart:0},[`& > ${c}`]:{fontSize:e.previewOperationSize}}}}},b9e=e=>{const{modalMaskBg:t,iconCls:r,previewOperationColorDisabled:n,previewCls:a,zIndexPopup:i,motionDurationSlow:o}=e,l=new $r(t).setA(.1),s=l.clone().setA(.2);return{[`${a}-switch-left, ${a}-switch-right`]:{position:\"fixed\",insetBlockStart:\"50%\",zIndex:e.calc(i).add(1).equal(),display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:e.imagePreviewSwitchSize,height:e.imagePreviewSwitchSize,marginTop:e.calc(e.imagePreviewSwitchSize).mul(-1).div(2).equal(),color:e.previewOperationColor,background:l.toRgbString(),borderRadius:\"50%\",transform:\"translateY(-50%)\",cursor:\"pointer\",transition:`all ${o}`,userSelect:\"none\",\"&:hover\":{background:s.toRgbString()},\"&-disabled\":{\"&, &:hover\":{color:n,background:\"transparent\",cursor:\"not-allowed\",[`> ${r}`]:{cursor:\"not-allowed\"}}},[`> ${r}`]:{fontSize:e.previewOperationSize}},[`${a}-switch-left`]:{insetInlineStart:e.marginSM},[`${a}-switch-right`]:{insetInlineEnd:e.marginSM}}},x9e=e=>{const{motionEaseOut:t,previewCls:r,motionDurationSlow:n,componentCls:a}=e;return[{[`${a}-preview-root`]:{[r]:{height:\"100%\",textAlign:\"center\",pointerEvents:\"none\"},[`${r}-body`]:Object.assign(Object.assign({},jR()),{overflow:\"hidden\"}),[`${r}-img`]:{maxWidth:\"100%\",maxHeight:\"70%\",verticalAlign:\"middle\",transform:\"scale3d(1, 1, 1)\",cursor:\"grab\",transition:`transform ${n} ${t} 0s`,userSelect:\"none\",\"&-wrapper\":Object.assign(Object.assign({},jR()),{transition:`transform ${n} ${t} 0s`,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",\"& > *\":{pointerEvents:\"auto\"},\"&::before\":{display:\"inline-block\",width:1,height:\"50%\",marginInlineEnd:-1,content:'\"\"'}})},[`${r}-moving`]:{[`${r}-preview-img`]:{cursor:\"grabbing\",\"&-wrapper\":{transitionDuration:\"0s\"}}}}},{[`${a}-preview-root`]:{[`${r}-wrap`]:{zIndex:e.zIndexPopup}}},{[`${a}-preview-operations-wrapper`]:{position:\"fixed\",zIndex:e.calc(e.zIndexPopup).add(1).equal()},\"&\":[y9e(e),b9e(e)]}]},C9e=e=>{const{componentCls:t}=e;return{[t]:{position:\"relative\",display:\"inline-block\",[`${t}-img`]:{width:\"100%\",height:\"auto\",verticalAlign:\"middle\"},[`${t}-img-placeholder`]:{backgroundColor:e.colorBgContainerDisabled,backgroundImage:\"url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTQuNSAyLjVoLTEzQS41LjUgMCAwIDAgMSAzdjEwYS41LjUgMCAwIDAgLjUuNWgxM2EuNS41IDAgMCAwIC41LS41VjNhLjUuNSAwIDAgMC0uNS0uNXpNNS4yODEgNC43NWExIDEgMCAwIDEgMCAyIDEgMSAwIDAgMSAwLTJ6bTguMDMgNi44M2EuMTI3LjEyNyAwIDAgMS0uMDgxLjAzSDIuNzY5YS4xMjUuMTI1IDAgMCAxLS4wOTYtLjIwN2wyLjY2MS0zLjE1NmEuMTI2LjEyNiAwIDAgMSAuMTc3LS4wMTZsLjAxNi4wMTZMNy4wOCAxMC4wOWwyLjQ3LTIuOTNhLjEyNi4xMjYgMCAwIDEgLjE3Ny0uMDE2bC4wMTUuMDE2IDMuNTg4IDQuMjQ0YS4xMjcuMTI3IDAgMCAxLS4wMi4xNzV6IiBmaWxsPSIjOEM4QzhDIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=')\",backgroundRepeat:\"no-repeat\",backgroundPosition:\"center center\",backgroundSize:\"30%\"},[`${t}-mask`]:Object.assign({},g9e(e)),[`${t}-mask:hover`]:{opacity:1},[`${t}-placeholder`]:Object.assign({},jR())}}},F9e=e=>{const{previewCls:t}=e;return{[`${t}-root`]:Cg(e,\"zoom\"),\"&\":H7(e,!0)}},S9e=e=>({zIndexPopup:e.zIndexPopupBase+80,previewOperationColor:new $r(e.colorTextLightSolid).setA(.65).toRgbString(),previewOperationHoverColor:new $r(e.colorTextLightSolid).setA(.85).toRgbString(),previewOperationColorDisabled:new $r(e.colorTextLightSolid).setA(.25).toRgbString(),previewOperationSize:e.fontSizeIcon*1.5}),ase=kr(\"Image\",e=>{const t=`${e.componentCls}-preview`,r=Sr(e,{previewCls:t,modalMaskBg:new $r(\"#000\").setA(.45).toRgbString(),imagePreviewSwitchSize:e.controlHeightLG});return[C9e(r),x9e(r),zae(Sr(r,{componentCls:t})),F9e(r)]},S9e);var w9e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const ise={rotateLeft:m.createElement(i9e,null),rotateRight:m.createElement(s9e,null),zoomIn:m.createElement(h9e,null),zoomOut:m.createElement(v9e,null),close:m.createElement(wu,null),left:m.createElement(zf,null),right:m.createElement(nd,null),flipX:m.createElement(ME,null),flipY:m.createElement(ME,{rotate:90})},E9e=e=>{var{previewPrefixCls:t,preview:r}=e,n=w9e(e,[\"previewPrefixCls\",\"preview\"]);const{getPrefixCls:a,direction:i}=m.useContext(Ot),o=a(\"image\",t),l=`${o}-preview`,s=a(),u=Zn(o),[c,d,f]=ase(o,u),[h]=xc(\"ImagePreview\",typeof r==\"object\"?r.zIndex:void 0),p=m.useMemo(()=>Object.assign(Object.assign({},ise),{left:i===\"rtl\"?m.createElement(nd,null):m.createElement(zf,null),right:i===\"rtl\"?m.createElement(zf,null):m.createElement(nd,null)}),[i]),v=m.useMemo(()=>{var g;if(r===!1)return r;const y=typeof r==\"object\"?r:{},b=ne(d,f,u,(g=y.rootClassName)!==null&&g!==void 0?g:\"\");return Object.assign(Object.assign({},y),{transitionName:ml(s,\"zoom\",y.transitionName),maskTransitionName:ml(s,\"fade\",y.maskTransitionName),rootClassName:b,zIndex:h})},[r,s,h,d,f,u]);return c(m.createElement(PO.PreviewGroup,Object.assign({preview:v,previewPrefixCls:l,icons:p},n)))};var _V=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const r2=e=>{const{prefixCls:t,preview:r,className:n,rootClassName:a,style:i,fallback:o}=e,l=_V(e,[\"prefixCls\",\"preview\",\"className\",\"rootClassName\",\"style\",\"fallback\"]),{getPrefixCls:s,getPopupContainer:u,className:c,style:d,preview:f,fallback:h}=na(\"image\"),[p]=Jo(\"Image\"),v=s(\"image\",t),g=s(),y=Zn(v),[b,x,F]=ase(v,y),S=ne(a,x,F,y),E=ne(n,x,c),[w]=xc(\"ImagePreview\",typeof r==\"object\"?r.zIndex:void 0),D=m.useMemo(()=>{if(r===!1)return r;const I=typeof r==\"object\"?r:{},{getContainer:M,closeIcon:T,rootClassName:k,destroyOnClose:R,destroyOnHidden:P}=I,B=_V(I,[\"getContainer\",\"closeIcon\",\"rootClassName\",\"destroyOnClose\",\"destroyOnHidden\"]);return Object.assign(Object.assign({mask:m.createElement(\"div\",{className:`${v}-mask-info`},m.createElement(Zo,null),p==null?void 0:p.preview),icons:ise},B),{destroyOnClose:P??R,rootClassName:ne(S,k),getContainer:M??u,transitionName:ml(g,\"zoom\",I.transitionName),maskTransitionName:ml(g,\"fade\",I.maskTransitionName),zIndex:w,closeIcon:T??(f==null?void 0:f.closeIcon)})},[r,p,f==null?void 0:f.closeIcon]),A=Object.assign(Object.assign({},d),i),_=o??h;return b(m.createElement(PO,Object.assign({prefixCls:v,preview:D,rootClassName:S,className:E,style:A,fallback:_},l)))};r2.PreviewGroup=E9e;const D9e=e=>{const{getPrefixCls:t,direction:r}=m.useContext(Ot),{prefixCls:n,className:a}=e,i=t(\"input-group\",n),o=t(\"input\"),[l,s,u]=dle(o),c=ne(i,u,{[`${i}-lg`]:e.size===\"large\",[`${i}-sm`]:e.size===\"small\",[`${i}-compact`]:e.compact,[`${i}-rtl`]:r===\"rtl\"},s,a),d=m.useContext(pi),f=m.useMemo(()=>Object.assign(Object.assign({},d),{isFormItemInput:!1}),[d]);return l(m.createElement(\"span\",{className:c,style:e.style,onMouseEnter:e.onMouseEnter,onMouseLeave:e.onMouseLeave,onFocus:e.onFocus,onBlur:e.onBlur},m.createElement(pi.Provider,{value:f},e.children)))},A9e=e=>{const{componentCls:t,paddingXS:r}=e;return{[t]:{display:\"inline-flex\",alignItems:\"center\",flexWrap:\"nowrap\",columnGap:r,[`${t}-input-wrapper`]:{position:\"relative\",[`${t}-mask-icon`]:{position:\"absolute\",zIndex:\"1\",top:\"50%\",right:\"50%\",transform:\"translate(50%, -50%)\",pointerEvents:\"none\"},[`${t}-mask-input`]:{color:\"transparent\",caretColor:e.colorText},[`${t}-mask-input[type=number]::-webkit-inner-spin-button`]:{\"-webkit-appearance\":\"none\",margin:0},[`${t}-mask-input[type=number]`]:{\"-moz-appearance\":\"textfield\"}},\"&-rtl\":{direction:\"rtl\"},[`${t}-input`]:{textAlign:\"center\",paddingInline:e.paddingXXS},[`&${t}-sm ${t}-input`]:{paddingInline:e.calc(e.paddingXXS).div(2).equal()},[`&${t}-lg ${t}-input`]:{paddingInline:e.paddingXS}}}},_9e=kr([\"Input\",\"OTP\"],e=>{const t=Sr(e,Cm(e));return A9e(t)},Fm);var T9e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const I9e=m.forwardRef((e,t)=>{const{className:r,value:n,onChange:a,onActiveChange:i,index:o,mask:l}=e,s=T9e(e,[\"className\",\"value\",\"onChange\",\"onActiveChange\",\"index\",\"mask\"]),{getPrefixCls:u}=m.useContext(Ot),c=u(\"otp\"),d=typeof l==\"string\"?l:n,f=m.useRef(null);m.useImperativeHandle(t,()=>f.current);const h=g=>{a(o,g.target.value)},p=()=>{Tr(()=>{var g;const y=(g=f.current)===null||g===void 0?void 0:g.input;document.activeElement===y&&y&&y.select()})},v=g=>{const{key:y,ctrlKey:b,metaKey:x}=g;y===\"ArrowLeft\"?i(o-1):y===\"ArrowRight\"?i(o+1):y===\"z\"&&(b||x)?g.preventDefault():y===\"Backspace\"&&!n&&i(o-1),p()};return m.createElement(\"span\",{className:`${c}-input-wrapper`,role:\"presentation\"},l&&n!==\"\"&&n!==void 0&&m.createElement(\"span\",{className:`${c}-mask-icon`,\"aria-hidden\":\"true\"},d),m.createElement(Dx,Object.assign({\"aria-label\":`OTP Input ${o+1}`,type:l===!0?\"password\":\"text\"},s,{ref:f,value:n,onInput:h,onFocus:p,onKeyDown:v,onMouseDown:p,onMouseUp:p,className:ne(r,{[`${c}-mask-input`]:l})})))});var k9e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function aF(e){return(e||\"\").split(\"\")}const R9e=e=>{const{index:t,prefixCls:r,separator:n}=e,a=typeof n==\"function\"?n(t):n;return a?m.createElement(\"span\",{className:`${r}-separator`},a):null},M9e=m.forwardRef((e,t)=>{const{prefixCls:r,length:n=6,size:a,defaultValue:i,value:o,onChange:l,formatter:s,separator:u,variant:c,disabled:d,status:f,autoFocus:h,mask:p,type:v,onInput:g,inputMode:y}=e,b=k9e(e,[\"prefixCls\",\"length\",\"size\",\"defaultValue\",\"value\",\"onChange\",\"formatter\",\"separator\",\"variant\",\"disabled\",\"status\",\"autoFocus\",\"mask\",\"type\",\"onInput\",\"inputMode\"]),{getPrefixCls:x,direction:F}=m.useContext(Ot),S=x(\"otp\",r),E=qn(b,{aria:!0,data:!0,attr:!0}),[w,D,A]=_9e(S),_=Ta(H=>a??H),I=m.useContext(pi),M=vm(I.status,f),T=m.useMemo(()=>Object.assign(Object.assign({},I),{status:M,hasFeedback:!1,feedbackIcon:null}),[I,M]),k=m.useRef(null),R=m.useRef({});m.useImperativeHandle(t,()=>({focus:()=>{var H;(H=R.current[0])===null||H===void 0||H.focus()},blur:()=>{var H;for(let V=0;V<n;V+=1)(H=R.current[V])===null||H===void 0||H.blur()},nativeElement:k.current}));const P=H=>s?s(H):H,[B,N]=m.useState(()=>aF(P(i||\"\")));m.useEffect(()=>{o!==void 0&&N(aF(o))},[o]);const O=Pr(H=>{N(H),g&&g(H),l&&H.length===n&&H.every(V=>V)&&H.some((V,U)=>B[U]!==V)&&l(H.join(\"\"))}),z=Pr((H,V)=>{let U=He(B);for(let K=0;K<H;K+=1)U[K]||(U[K]=\"\");V.length<=1?U[H]=V:U=U.slice(0,H).concat(aF(V)),U=U.slice(0,n);for(let K=U.length-1;K>=0&&!U[K];K-=1)U.pop();const Q=P(U.map(K=>K||\" \").join(\"\"));return U=aF(Q).map((K,Y)=>K===\" \"&&!U[Y]?U[Y]:K),U}),W=(H,V)=>{var U;const Q=z(H,V),K=Math.min(H+V.length,n-1);K!==H&&Q[H]!==void 0&&((U=R.current[K])===null||U===void 0||U.focus()),O(Q)},L=H=>{var V;(V=R.current[H])===null||V===void 0||V.focus()},j={variant:c,disabled:d,status:M,mask:p,type:v,inputMode:y};return w(m.createElement(\"div\",Object.assign({},E,{ref:k,className:ne(S,{[`${S}-sm`]:_===\"small\",[`${S}-lg`]:_===\"large\",[`${S}-rtl`]:F===\"rtl\"},A,D),role:\"group\"}),m.createElement(pi.Provider,{value:T},Array.from({length:n}).map((H,V)=>{const U=`otp-${V}`,Q=B[V]||\"\";return m.createElement(m.Fragment,{key:U},m.createElement(I9e,Object.assign({ref:K=>{R.current[V]=K},index:V,size:_,htmlSize:1,className:`${S}-input`,onChange:W,value:Q,onActiveChange:L,autoFocus:V===0&&h},j)),V<n-1&&m.createElement(R9e,{separator:u,index:V,prefixCls:S}))}))))});var P9e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z\"}},{tag:\"path\",attrs:{d:\"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z\"}}]},name:\"eye-invisible\",theme:\"outlined\"},O9e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:P9e}))},B9e=m.forwardRef(O9e),N9e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const $9e=e=>e?m.createElement(Zo,null):m.createElement(B9e,null),L9e={click:\"onClick\",hover:\"onMouseOver\"},j9e=m.forwardRef((e,t)=>{const{disabled:r,action:n=\"click\",visibilityToggle:a=!0,iconRender:i=$9e,suffix:o}=e,l=m.useContext(Ui),s=r??l,u=typeof a==\"object\"&&a.visible!==void 0,[c,d]=m.useState(()=>u?a.visible:!1),f=m.useRef(null);m.useEffect(()=>{u&&d(a.visible)},[u,a]);const h=Mle(f),p=()=>{var I;if(s)return;c&&h();const M=!c;d(M),typeof a==\"object\"&&((I=a.onVisibleChange)===null||I===void 0||I.call(a,M))},v=I=>{const M=L9e[n]||\"\",T=i(c),k={[M]:p,className:`${I}-icon`,key:\"passwordIcon\",onMouseDown:R=>{R.preventDefault()},onMouseUp:R=>{R.preventDefault()}};return m.cloneElement(m.isValidElement(T)?T:m.createElement(\"span\",null,T),k)},{className:g,prefixCls:y,inputPrefixCls:b,size:x}=e,F=N9e(e,[\"className\",\"prefixCls\",\"inputPrefixCls\",\"size\"]),{getPrefixCls:S}=m.useContext(Ot),E=S(\"input\",b),w=S(\"input-password\",y),D=a&&v(w),A=ne(w,g,{[`${w}-${x}`]:!!x}),_=Object.assign(Object.assign({},wn(F,[\"suffix\",\"iconRender\",\"visibilityToggle\"])),{type:c?\"text\":\"password\",className:A,prefixCls:E,suffix:m.createElement(m.Fragment,null,D,o)});return x&&(_.size=x),m.createElement(Dx,Object.assign({ref:Qa(t,f)},_))});var z9e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const H9e=m.forwardRef((e,t)=>{const{prefixCls:r,inputPrefixCls:n,className:a,size:i,suffix:o,enterButton:l=!1,addonAfter:s,loading:u,disabled:c,onSearch:d,onChange:f,onCompositionStart:h,onCompositionEnd:p,variant:v,onPressEnter:g}=e,y=z9e(e,[\"prefixCls\",\"inputPrefixCls\",\"className\",\"size\",\"suffix\",\"enterButton\",\"addonAfter\",\"loading\",\"disabled\",\"onSearch\",\"onChange\",\"onCompositionStart\",\"onCompositionEnd\",\"variant\",\"onPressEnter\"]),{getPrefixCls:b,direction:x}=m.useContext(Ot),F=m.useRef(!1),S=b(\"input-search\",r),E=b(\"input\",n),{compactSize:w}=Cc(S,x),D=Ta(j=>{var H;return(H=i??w)!==null&&H!==void 0?H:j}),A=m.useRef(null),_=j=>{j!=null&&j.target&&j.type===\"click\"&&d&&d(j.target.value,j,{source:\"clear\"}),f==null||f(j)},I=j=>{var H;document.activeElement===((H=A.current)===null||H===void 0?void 0:H.input)&&j.preventDefault()},M=j=>{var H,V;d&&d((V=(H=A.current)===null||H===void 0?void 0:H.input)===null||V===void 0?void 0:V.value,j,{source:\"input\"})},T=j=>{F.current||u||(g==null||g(j),M(j))},k=typeof l==\"boolean\"?m.createElement(xa,null):null,R=`${S}-button`;let P;const B=l||{},N=B.type&&B.type.__ANT_BUTTON===!0;N||B.type===\"button\"?P=oa(B,Object.assign({onMouseDown:I,onClick:j=>{var H,V;(V=(H=B==null?void 0:B.props)===null||H===void 0?void 0:H.onClick)===null||V===void 0||V.call(H,j),M(j)},key:\"enterButton\"},N?{className:R,size:D}:{})):P=m.createElement(ze,{className:R,color:l?\"primary\":\"default\",size:D,disabled:c,key:\"enterButton\",onMouseDown:I,onClick:M,loading:u,icon:k,variant:v===\"borderless\"||v===\"filled\"||v===\"underlined\"?\"text\":l?\"solid\":void 0},l),s&&(P=[P,oa(s,{key:\"addonAfter\"})]);const O=ne(S,{[`${S}-rtl`]:x===\"rtl\",[`${S}-${D}`]:!!D,[`${S}-with-button`]:!!l},a),z=j=>{F.current=!0,h==null||h(j)},W=j=>{F.current=!1,p==null||p(j)},L=Object.assign(Object.assign({},y),{className:O,prefixCls:E,type:\"search\",size:D,variant:v,onPressEnter:T,onCompositionStart:z,onCompositionEnd:W,addonAfter:P,suffix:o,onChange:_,disabled:c,_skipAddonWarning:!0});return m.createElement(Dx,Object.assign({ref:Qa(A,t)},L))});var V9e=`\n min-height:0 !important;\n max-height:none !important;\n height:0 !important;\n visibility:hidden !important;\n overflow:hidden !important;\n position:absolute !important;\n z-index:-1000 !important;\n top:0 !important;\n right:0 !important;\n pointer-events: none !important;\n`,W9e=[\"letter-spacing\",\"line-height\",\"padding-top\",\"padding-bottom\",\"font-family\",\"font-weight\",\"font-size\",\"font-variant\",\"text-rendering\",\"text-transform\",\"width\",\"text-indent\",\"padding-left\",\"padding-right\",\"border-width\",\"box-sizing\",\"word-break\",\"white-space\"],K_={},xl;function G9e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=e.getAttribute(\"id\")||e.getAttribute(\"data-reactid\")||e.getAttribute(\"name\");if(t&&K_[r])return K_[r];var n=window.getComputedStyle(e),a=n.getPropertyValue(\"box-sizing\")||n.getPropertyValue(\"-moz-box-sizing\")||n.getPropertyValue(\"-webkit-box-sizing\"),i=parseFloat(n.getPropertyValue(\"padding-bottom\"))+parseFloat(n.getPropertyValue(\"padding-top\")),o=parseFloat(n.getPropertyValue(\"border-bottom-width\"))+parseFloat(n.getPropertyValue(\"border-top-width\")),l=W9e.map(function(u){return\"\".concat(u,\":\").concat(n.getPropertyValue(u))}).join(\";\"),s={sizingStyle:l,paddingSize:i,borderSize:o,boxSizing:a};return t&&r&&(K_[r]=s),s}function U9e(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;xl||(xl=document.createElement(\"textarea\"),xl.setAttribute(\"tab-index\",\"-1\"),xl.setAttribute(\"aria-hidden\",\"true\"),xl.setAttribute(\"name\",\"hiddenTextarea\"),document.body.appendChild(xl)),e.getAttribute(\"wrap\")?xl.setAttribute(\"wrap\",e.getAttribute(\"wrap\")):xl.removeAttribute(\"wrap\");var a=G9e(e,t),i=a.paddingSize,o=a.borderSize,l=a.boxSizing,s=a.sizingStyle;xl.setAttribute(\"style\",\"\".concat(s,\";\").concat(V9e)),xl.value=e.value||e.placeholder||\"\";var u=void 0,c=void 0,d,f=xl.scrollHeight;if(l===\"border-box\"?f+=o:l===\"content-box\"&&(f-=i),r!==null||n!==null){xl.value=\" \";var h=xl.scrollHeight-i;r!==null&&(u=h*r,l===\"border-box\"&&(u=u+i+o),f=Math.max(u,f)),n!==null&&(c=h*n,l===\"border-box\"&&(c=c+i+o),d=f>c?\"\":\"hidden\",f=Math.min(c,f))}var p={height:f,overflowY:d,resize:\"none\"};return u&&(p.minHeight=u),c&&(p.maxHeight=c),p}var K9e=[\"prefixCls\",\"defaultValue\",\"value\",\"autoSize\",\"onResize\",\"className\",\"style\",\"disabled\",\"onChange\",\"onInternalAutoSize\"],Y_=0,q_=1,X_=2,Y9e=m.forwardRef(function(e,t){var r=e,n=r.prefixCls,a=r.defaultValue,i=r.value,o=r.autoSize,l=r.onResize,s=r.className,u=r.style,c=r.disabled,d=r.onChange;r.onInternalAutoSize;var f=Xt(r,K9e),h=un(a,{value:i,postState:function(j){return j??\"\"}}),p=ve(h,2),v=p[0],g=p[1],y=function(j){g(j.target.value),d==null||d(j)},b=m.useRef();m.useImperativeHandle(t,function(){return{textArea:b.current}});var x=m.useMemo(function(){return o&&Nt(o)===\"object\"?[o.minRows,o.maxRows]:[]},[o]),F=ve(x,2),S=F[0],E=F[1],w=!!o,D=m.useState(X_),A=ve(D,2),_=A[0],I=A[1],M=m.useState(),T=ve(M,2),k=T[0],R=T[1],P=function(){I(Y_)};_r(function(){w&&P()},[i,S,E,w]),_r(function(){if(_===Y_)I(q_);else if(_===q_){var L=U9e(b.current,!1,S,E);I(X_),R(L)}},[_]);var B=m.useRef(),N=function(){Tr.cancel(B.current)},O=function(j){_===X_&&(l==null||l(j),o&&(N(),B.current=Tr(function(){P()})))};m.useEffect(function(){return N},[]);var z=w?k:null,W=ae(ae({},u),z);return(_===Y_||_===q_)&&(W.overflowY=\"hidden\",W.overflowX=\"hidden\"),m.createElement(_i,{onResize:O,disabled:!(o||l)},m.createElement(\"textarea\",Ce({},f,{ref:b,style:W,className:ne(n,s,Z({},\"\".concat(n,\"-disabled\"),c)),disabled:c,value:v,onChange:y})))}),q9e=[\"defaultValue\",\"value\",\"onFocus\",\"onBlur\",\"onChange\",\"allowClear\",\"maxLength\",\"onCompositionStart\",\"onCompositionEnd\",\"suffix\",\"prefixCls\",\"showCount\",\"count\",\"className\",\"style\",\"disabled\",\"hidden\",\"classNames\",\"styles\",\"onResize\",\"onClear\",\"onPressEnter\",\"readOnly\",\"autoSize\",\"onKeyDown\"],X9e=le.forwardRef(function(e,t){var r,n=e.defaultValue,a=e.value,i=e.onFocus,o=e.onBlur,l=e.onChange,s=e.allowClear,u=e.maxLength,c=e.onCompositionStart,d=e.onCompositionEnd,f=e.suffix,h=e.prefixCls,p=h===void 0?\"rc-textarea\":h,v=e.showCount,g=e.count,y=e.className,b=e.style,x=e.disabled,F=e.hidden,S=e.classNames,E=e.styles,w=e.onResize,D=e.onClear,A=e.onPressEnter,_=e.readOnly,I=e.autoSize,M=e.onKeyDown,T=Xt(e,q9e),k=un(n,{value:a,defaultValue:n}),R=ve(k,2),P=R[0],B=R[1],N=P==null?\"\":String(P),O=le.useState(!1),z=ve(O,2),W=z[0],L=z[1],j=le.useRef(!1),H=le.useState(null),V=ve(H,2),U=V[0],Q=V[1],K=m.useRef(null),Y=m.useRef(null),ee=function(){var Pe;return(Pe=Y.current)===null||Pe===void 0?void 0:Pe.textArea},J=function(){ee().focus()};m.useImperativeHandle(t,function(){var Je;return{resizableTextArea:Y.current,focus:J,blur:function(){ee().blur()},nativeElement:((Je=K.current)===null||Je===void 0?void 0:Je.nativeElement)||ee()}}),m.useEffect(function(){L(function(Je){return!x&&Je})},[x]);var X=le.useState(null),ce=ve(X,2),oe=ce[0],ue=ce[1];le.useEffect(function(){if(oe){var Je;(Je=ee()).setSelectionRange.apply(Je,He(oe))}},[oe]);var ie=Ile(g,v),fe=(r=ie.max)!==null&&r!==void 0?r:u,xe=Number(fe)>0,Ee=ie.strategy(N),De=!!fe&&Ee>fe,ye=function(Pe,Ge){var Ae=Ge;!j.current&&ie.exceedFormatter&&ie.max&&ie.strategy(Ge)>ie.max&&(Ae=ie.exceedFormatter(Ge,{max:ie.max}),Ge!==Ae&&ue([ee().selectionStart||0,ee().selectionEnd||0])),B(Ae),IE(Pe.currentTarget,Pe,l,Ae)},we=function(Pe){j.current=!0,c==null||c(Pe)},Fe=function(Pe){j.current=!1,ye(Pe,Pe.currentTarget.value),d==null||d(Pe)},me=function(Pe){ye(Pe,Pe.target.value)},Me=function(Pe){Pe.key===\"Enter\"&&A&&A(Pe),M==null||M(Pe)},je=function(Pe){L(!0),i==null||i(Pe)},lt=function(Pe){L(!1),o==null||o(Pe)},tt=function(Pe){B(\"\"),J(),IE(ee(),Pe,l)},rt=f,dt;ie.show&&(ie.showFormatter?dt=ie.showFormatter({value:N,count:Ee,maxLength:fe}):dt=\"\".concat(Ee).concat(xe?\" / \".concat(fe):\"\"),rt=le.createElement(le.Fragment,null,rt,le.createElement(\"span\",{className:ne(\"\".concat(p,\"-data-count\"),S==null?void 0:S.count),style:E==null?void 0:E.count},dt)));var Ve=function(Pe){var Ge;w==null||w(Pe),(Ge=ee())!==null&&Ge!==void 0&&Ge.style.height&&Q(!0)},Ie=!I&&!v&&!s;return le.createElement(TO,{ref:K,value:N,allowClear:s,handleReset:tt,suffix:rt,prefixCls:p,classNames:ae(ae({},S),{},{affixWrapper:ne(S==null?void 0:S.affixWrapper,Z(Z({},\"\".concat(p,\"-show-count\"),v),\"\".concat(p,\"-textarea-allow-clear\"),s))}),disabled:x,focused:W,className:ne(y,De&&\"\".concat(p,\"-out-of-range\")),style:ae(ae({},b),U&&!Ie?{height:\"auto\"}:{}),dataAttrs:{affixWrapper:{\"data-count\":typeof dt==\"string\"?dt:void 0}},hidden:F,readOnly:_,onClear:D},le.createElement(Y9e,Ce({},T,{autoSize:I,maxLength:u,onKeyDown:Me,onChange:me,onFocus:je,onBlur:lt,onCompositionStart:we,onCompositionEnd:Fe,className:ne(S==null?void 0:S.textarea),style:ae(ae({},E==null?void 0:E.textarea),{},{resize:b==null?void 0:b.resize}),disabled:x,prefixCls:p,onResize:Ve,ref:Y,readOnly:_})))});const J9e=e=>{const{componentCls:t,paddingLG:r}=e,n=`${t}-textarea`;return{[`textarea${t}`]:{maxWidth:\"100%\",height:\"auto\",minHeight:e.controlHeight,lineHeight:e.lineHeight,verticalAlign:\"bottom\",transition:`all ${e.motionDurationSlow}`,resize:\"vertical\",[`&${t}-mouse-active`]:{transition:`all ${e.motionDurationSlow}, height 0s, width 0s`}},[`${t}-textarea-affix-wrapper-resize-dirty`]:{width:\"auto\"},[n]:{position:\"relative\",\"&-show-count\":{[`${t}-data-count`]:{position:\"absolute\",bottom:e.calc(e.fontSize).mul(e.lineHeight).mul(-1).equal(),insetInlineEnd:0,color:e.colorTextDescription,whiteSpace:\"nowrap\",pointerEvents:\"none\"}},[`\n &-allow-clear > ${t},\n &-affix-wrapper${n}-has-feedback ${t}\n `]:{paddingInlineEnd:r},[`&-affix-wrapper${t}-affix-wrapper`]:{padding:0,[`> textarea${t}`]:{fontSize:\"inherit\",border:\"none\",outline:\"none\",background:\"transparent\",minHeight:e.calc(e.controlHeight).sub(e.calc(e.lineWidth).mul(2)).equal(),\"&:focus\":{boxShadow:\"none !important\"}},[`${t}-suffix`]:{margin:0,\"> *:not(:last-child)\":{marginInline:0},[`${t}-clear-icon`]:{position:\"absolute\",insetInlineEnd:e.paddingInline,insetBlockStart:e.paddingXS},[`${n}-suffix`]:{position:\"absolute\",top:0,insetInlineEnd:e.paddingInline,bottom:0,zIndex:1,display:\"inline-flex\",alignItems:\"center\",margin:\"auto\",pointerEvents:\"none\"}}},[`&-affix-wrapper${t}-affix-wrapper-rtl`]:{[`${t}-suffix`]:{[`${t}-data-count`]:{direction:\"ltr\",insetInlineStart:0}}},[`&-affix-wrapper${t}-affix-wrapper-sm`]:{[`${t}-suffix`]:{[`${t}-clear-icon`]:{insetInlineEnd:e.paddingInlineSM}}}}}},Z9e=kr([\"Input\",\"TextArea\"],e=>{const t=Sr(e,Cm(e));return J9e(t)},Fm,{resetFont:!1});var Q9e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const ose=m.forwardRef((e,t)=>{var r;const{prefixCls:n,bordered:a=!0,size:i,disabled:o,status:l,allowClear:s,classNames:u,rootClassName:c,className:d,style:f,styles:h,variant:p,showCount:v,onMouseDown:g,onResize:y}=e,b=Q9e(e,[\"prefixCls\",\"bordered\",\"size\",\"disabled\",\"status\",\"allowClear\",\"classNames\",\"rootClassName\",\"className\",\"style\",\"styles\",\"variant\",\"showCount\",\"onMouseDown\",\"onResize\"]),{getPrefixCls:x,direction:F,allowClear:S,autoComplete:E,className:w,style:D,classNames:A,styles:_}=na(\"textArea\"),I=m.useContext(Ui),M=o??I,{status:T,hasFeedback:k,feedbackIcon:R}=m.useContext(pi),P=vm(T,l),B=m.useRef(null);m.useImperativeHandle(t,()=>{var ie;return{resizableTextArea:(ie=B.current)===null||ie===void 0?void 0:ie.resizableTextArea,focus:fe=>{var xe,Ee;_O((Ee=(xe=B.current)===null||xe===void 0?void 0:xe.resizableTextArea)===null||Ee===void 0?void 0:Ee.textArea,fe)},blur:()=>{var fe;return(fe=B.current)===null||fe===void 0?void 0:fe.blur()}}});const N=x(\"input\",n),O=Zn(N),[z,W,L]=cle(N,c),[j]=Z9e(N,O),{compactSize:H,compactItemClassnames:V}=Cc(N,F),U=Ta(ie=>{var fe;return(fe=i??H)!==null&&fe!==void 0?fe:ie}),[Q,K]=gm(\"textArea\",p,a),Y=Rle(s??S),[ee,J]=m.useState(!1),[X,ce]=m.useState(!1),oe=ie=>{J(!0),g==null||g(ie);const fe=()=>{J(!1),document.removeEventListener(\"mouseup\",fe)};document.addEventListener(\"mouseup\",fe)},ue=ie=>{var fe,xe;if(y==null||y(ie),ee&&typeof getComputedStyle==\"function\"){const Ee=(xe=(fe=B.current)===null||fe===void 0?void 0:fe.nativeElement)===null||xe===void 0?void 0:xe.querySelector(\"textarea\");Ee&&getComputedStyle(Ee).resize===\"both\"&&ce(!0)}};return z(j(m.createElement(X9e,Object.assign({autoComplete:E},b,{style:Object.assign(Object.assign({},D),f),styles:Object.assign(Object.assign({},_),h),disabled:M,allowClear:Y,className:ne(L,O,d,c,V,w,X&&`${N}-textarea-affix-wrapper-resize-dirty`),classNames:Object.assign(Object.assign(Object.assign({},u),A),{textarea:ne({[`${N}-sm`]:U===\"small\",[`${N}-lg`]:U===\"large\"},W,u==null?void 0:u.textarea,A.textarea,ee&&`${N}-mouse-active`),variant:ne({[`${N}-${Q}`]:K},jf(N,P)),affixWrapper:ne(`${N}-textarea-affix-wrapper`,{[`${N}-affix-wrapper-rtl`]:F===\"rtl\",[`${N}-affix-wrapper-sm`]:U===\"small\",[`${N}-affix-wrapper-lg`]:U===\"large\",[`${N}-textarea-show-count`]:v||((r=e.count)===null||r===void 0?void 0:r.show)},W)}),prefixCls:N,suffix:k&&m.createElement(\"span\",{className:`${N}-textarea-suffix`},R),showCount:v,ref:B,onResize:ue,onMouseDown:oe}))))}),ut=Dx;ut.Group=D9e;ut.Search=H9e;ut.TextArea=ose;ut.Password=j9e;ut.OTP=M9e;function e7e(e,t,r){return typeof r==\"boolean\"?r:e.length?!0:ba(t).some(a=>a.type===aoe)}var lse=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function z6({suffixCls:e,tagName:t,displayName:r}){return n=>m.forwardRef((i,o)=>m.createElement(n,Object.assign({ref:o,suffixCls:e,tagName:t},i)))}const OO=m.forwardRef((e,t)=>{const{prefixCls:r,suffixCls:n,className:a,tagName:i}=e,o=lse(e,[\"prefixCls\",\"suffixCls\",\"className\",\"tagName\"]),{getPrefixCls:l}=m.useContext(Ot),s=l(\"layout\",r),[u,c,d]=noe(s),f=n?`${s}-${n}`:s;return u(m.createElement(i,Object.assign({className:ne(r||f,a,c,d),ref:t},o)))}),t7e=m.forwardRef((e,t)=>{const{direction:r}=m.useContext(Ot),[n,a]=m.useState([]),{prefixCls:i,className:o,rootClassName:l,children:s,hasSider:u,tagName:c,style:d}=e,f=lse(e,[\"prefixCls\",\"className\",\"rootClassName\",\"children\",\"hasSider\",\"tagName\",\"style\"]),h=wn(f,[\"suffixCls\"]),{getPrefixCls:p,className:v,style:g}=na(\"layout\"),y=p(\"layout\",i),b=e7e(n,s,u),[x,F,S]=noe(y),E=ne(y,{[`${y}-has-sider`]:b,[`${y}-rtl`]:r===\"rtl\"},v,o,l,F,S),w=m.useMemo(()=>({siderHook:{addSider:D=>{a(A=>[].concat(He(A),[D]))},removeSider:D=>{a(A=>A.filter(_=>_!==D))}}}),[]);return x(m.createElement(eoe.Provider,{value:w},m.createElement(c,Object.assign({ref:t,className:E,style:Object.assign(Object.assign({},g),d)},h),s)))}),r7e=z6({tagName:\"div\",displayName:\"Layout\"})(t7e),n7e=z6({suffixCls:\"header\",tagName:\"header\",displayName:\"Header\"})(OO),a7e=z6({suffixCls:\"footer\",tagName:\"footer\",displayName:\"Footer\"})(OO),i7e=z6({suffixCls:\"content\",tagName:\"main\",displayName:\"Content\"})(OO),hc=r7e;hc.Header=n7e;hc.Footer=a7e;hc.Content=i7e;hc.Sider=aoe;hc._InternalSiderContext=T6;var o7e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M272.9 512l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L186.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H532c6.7 0 10.4-7.7 6.3-12.9L272.9 512zm304 0l265.4-339.1c4.1-5.2.4-12.9-6.3-12.9h-77.3c-4.9 0-9.6 2.3-12.6 6.1L490.8 492.3a31.99 31.99 0 000 39.5l255.3 326.1c3 3.9 7.7 6.1 12.6 6.1H836c6.7 0 10.4-7.7 6.3-12.9L576.9 512z\"}}]},name:\"double-left\",theme:\"outlined\"},l7e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:o7e}))},TV=m.forwardRef(l7e),s7e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M533.2 492.3L277.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H188c-6.7 0-10.4 7.7-6.3 12.9L447.1 512 181.7 851.1A7.98 7.98 0 00188 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5zm304 0L581.9 166.1c-3-3.9-7.7-6.1-12.6-6.1H492c-6.7 0-10.4 7.7-6.3 12.9L751.1 512 485.7 851.1A7.98 7.98 0 00492 864h77.3c4.9 0 9.6-2.3 12.6-6.1l255.3-326.1c9.1-11.7 9.1-27.9 0-39.5z\"}}]},name:\"double-right\",theme:\"outlined\"},u7e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:s7e}))},IV=m.forwardRef(u7e),c7e={items_per_page:\"条/页\",jump_to:\"跳至\",jump_to_confirm:\"确定\",page:\"页\",prev_page:\"上一页\",next_page:\"下一页\",prev_5:\"向前 5 页\",next_5:\"向后 5 页\",prev_3:\"向前 3 页\",next_3:\"向后 3 页\",page_size:\"页码\"},d7e=[10,20,50,100],f7e=function(t){var r=t.pageSizeOptions,n=r===void 0?d7e:r,a=t.locale,i=t.changeSize,o=t.pageSize,l=t.goButton,s=t.quickGo,u=t.rootPrefixCls,c=t.disabled,d=t.buildOptionText,f=t.showSizeChanger,h=t.sizeChangerRender,p=le.useState(\"\"),v=ve(p,2),g=v[0],y=v[1],b=function(){return!g||Number.isNaN(g)?void 0:Number(g)},x=typeof d==\"function\"?d:function(M){return\"\".concat(M,\" \").concat(a.items_per_page)},F=function(T){y(T.target.value)},S=function(T){l||g===\"\"||(y(\"\"),!(T.relatedTarget&&(T.relatedTarget.className.indexOf(\"\".concat(u,\"-item-link\"))>=0||T.relatedTarget.className.indexOf(\"\".concat(u,\"-item\"))>=0))&&(s==null||s(b())))},E=function(T){g!==\"\"&&(T.keyCode===It.ENTER||T.type===\"click\")&&(y(\"\"),s==null||s(b()))},w=function(){return n.some(function(T){return T.toString()===o.toString()})?n:n.concat([o]).sort(function(T,k){var R=Number.isNaN(Number(T))?0:Number(T),P=Number.isNaN(Number(k))?0:Number(k);return R-P})},D=\"\".concat(u,\"-options\");if(!f&&!s)return null;var A=null,_=null,I=null;return f&&h&&(A=h({disabled:c,size:o,onSizeChange:function(T){i==null||i(Number(T))},\"aria-label\":a.page_size,className:\"\".concat(D,\"-size-changer\"),options:w().map(function(M){return{label:x(M),value:M}})})),s&&(l&&(I=typeof l==\"boolean\"?le.createElement(\"button\",{type:\"button\",onClick:E,onKeyUp:E,disabled:c,className:\"\".concat(D,\"-quick-jumper-button\")},a.jump_to_confirm):le.createElement(\"span\",{onClick:E,onKeyUp:E},l)),_=le.createElement(\"div\",{className:\"\".concat(D,\"-quick-jumper\")},a.jump_to,le.createElement(\"input\",{disabled:c,type:\"text\",value:g,onChange:F,onKeyUp:E,onBlur:S,\"aria-label\":a.page}),a.page,I)),le.createElement(\"li\",{className:D},A,_)},w1=function(t){var r=t.rootPrefixCls,n=t.page,a=t.active,i=t.className,o=t.showTitle,l=t.onClick,s=t.onKeyPress,u=t.itemRender,c=\"\".concat(r,\"-item\"),d=ne(c,\"\".concat(c,\"-\").concat(n),Z(Z({},\"\".concat(c,\"-active\"),a),\"\".concat(c,\"-disabled\"),!n),i),f=function(){l(n)},h=function(g){s(g,l,n)},p=u(n,\"page\",le.createElement(\"a\",{rel:\"nofollow\"},n));return p?le.createElement(\"li\",{title:o?String(n):null,className:d,onClick:f,onKeyDown:h,tabIndex:0},p):null},h7e=function(t,r,n){return n};function kV(){}function RV(e){var t=Number(e);return typeof t==\"number\"&&!Number.isNaN(t)&&isFinite(t)&&Math.floor(t)===t}function hh(e,t,r){var n=typeof e>\"u\"?t:e;return Math.floor((r-1)/n)+1}var p7e=function(t){var r=t.prefixCls,n=r===void 0?\"rc-pagination\":r,a=t.selectPrefixCls,i=a===void 0?\"rc-select\":a,o=t.className,l=t.current,s=t.defaultCurrent,u=s===void 0?1:s,c=t.total,d=c===void 0?0:c,f=t.pageSize,h=t.defaultPageSize,p=h===void 0?10:h,v=t.onChange,g=v===void 0?kV:v,y=t.hideOnSinglePage,b=t.align,x=t.showPrevNextJumpers,F=x===void 0?!0:x,S=t.showQuickJumper,E=t.showLessItems,w=t.showTitle,D=w===void 0?!0:w,A=t.onShowSizeChange,_=A===void 0?kV:A,I=t.locale,M=I===void 0?c7e:I,T=t.style,k=t.totalBoundaryShowSizeChanger,R=k===void 0?50:k,P=t.disabled,B=t.simple,N=t.showTotal,O=t.showSizeChanger,z=O===void 0?d>R:O,W=t.sizeChangerRender,L=t.pageSizeOptions,j=t.itemRender,H=j===void 0?h7e:j,V=t.jumpPrevIcon,U=t.jumpNextIcon,Q=t.prevIcon,K=t.nextIcon,Y=le.useRef(null),ee=un(10,{value:f,defaultValue:p}),J=ve(ee,2),X=J[0],ce=J[1],oe=un(1,{value:l,defaultValue:u,postState:function(Yt){return Math.max(1,Math.min(Yt,hh(void 0,X,d)))}}),ue=ve(oe,2),ie=ue[0],fe=ue[1],xe=le.useState(ie),Ee=ve(xe,2),De=Ee[0],ye=Ee[1];m.useEffect(function(){ye(ie)},[ie]);var we=Math.max(1,ie-(E?3:5)),Fe=Math.min(hh(void 0,X,d),ie+(E?3:5));function me(kt,Yt){var xr=kt||le.createElement(\"button\",{type:\"button\",\"aria-label\":Yt,className:\"\".concat(n,\"-item-link\")});return typeof kt==\"function\"&&(xr=le.createElement(kt,ae({},t))),xr}function Me(kt){var Yt=kt.target.value,xr=hh(void 0,X,d),mn;return Yt===\"\"?mn=Yt:Number.isNaN(Number(Yt))?mn=De:Yt>=xr?mn=xr:mn=Number(Yt),mn}function je(kt){return RV(kt)&&kt!==ie&&RV(d)&&d>0}var lt=d>X?S:!1;function tt(kt){(kt.keyCode===It.UP||kt.keyCode===It.DOWN)&&kt.preventDefault()}function rt(kt){var Yt=Me(kt);switch(Yt!==De&&ye(Yt),kt.keyCode){case It.ENTER:Ie(Yt);break;case It.UP:Ie(Yt-1);break;case It.DOWN:Ie(Yt+1);break}}function dt(kt){Ie(Me(kt))}function Ve(kt){var Yt=hh(kt,X,d),xr=ie>Yt&&Yt!==0?Yt:ie;ce(kt),ye(xr),_==null||_(ie,kt),fe(xr),g==null||g(xr,kt)}function Ie(kt){if(je(kt)&&!P){var Yt=hh(void 0,X,d),xr=kt;return kt>Yt?xr=Yt:kt<1&&(xr=1),xr!==De&&ye(xr),fe(xr),g==null||g(xr,X),xr}return ie}var Je=ie>1,Pe=ie<hh(void 0,X,d);function Ge(){Je&&Ie(ie-1)}function Ae(){Pe&&Ie(ie+1)}function _e(){Ie(we)}function $e(){Ie(Fe)}function Ke(kt,Yt){if(kt.key===\"Enter\"||kt.charCode===It.ENTER||kt.keyCode===It.ENTER){for(var xr=arguments.length,mn=new Array(xr>2?xr-2:0),Pn=2;Pn<xr;Pn++)mn[Pn-2]=arguments[Pn];Yt.apply(void 0,mn)}}function pt(kt){Ke(kt,Ge)}function _t(kt){Ke(kt,Ae)}function ht(kt){Ke(kt,_e)}function gt(kt){Ke(kt,$e)}function Et(kt){var Yt=H(kt,\"prev\",me(Q,\"prev page\"));return le.isValidElement(Yt)?le.cloneElement(Yt,{disabled:!Je}):Yt}function xt(kt){var Yt=H(kt,\"next\",me(K,\"next page\"));return le.isValidElement(Yt)?le.cloneElement(Yt,{disabled:!Pe}):Yt}function Dt(kt){(kt.type===\"click\"||kt.keyCode===It.ENTER)&&Ie(De)}var ur=null,mr=qn(t,{aria:!0,data:!0}),Tt=N&&le.createElement(\"li\",{className:\"\".concat(n,\"-total-text\")},N(d,[d===0?0:(ie-1)*X+1,ie*X>d?d:ie*X])),jt=null,Lt=hh(void 0,X,d);if(y&&d<=X)return null;var mt=[],it={rootPrefixCls:n,onClick:Ie,onKeyPress:Ke,showTitle:D,itemRender:H,page:-1},st=ie-1>0?ie-1:0,Ct=ie+1<Lt?ie+1:Lt,te=S&&S.goButton,pe=Nt(B)===\"object\"?B.readOnly:!B,he=te,se=null;B&&(te&&(typeof te==\"boolean\"?he=le.createElement(\"button\",{type:\"button\",onClick:Dt,onKeyUp:Dt},M.jump_to_confirm):he=le.createElement(\"span\",{onClick:Dt,onKeyUp:Dt},te),he=le.createElement(\"li\",{title:D?\"\".concat(M.jump_to).concat(ie,\"/\").concat(Lt):null,className:\"\".concat(n,\"-simple-pager\")},he)),se=le.createElement(\"li\",{title:D?\"\".concat(ie,\"/\").concat(Lt):null,className:\"\".concat(n,\"-simple-pager\")},pe?De:le.createElement(\"input\",{type:\"text\",\"aria-label\":M.jump_to,value:De,disabled:P,onKeyDown:tt,onKeyUp:rt,onChange:rt,onBlur:dt,size:3}),le.createElement(\"span\",{className:\"\".concat(n,\"-slash\")},\"/\"),Lt));var de=E?1:2;if(Lt<=3+de*2){Lt||mt.push(le.createElement(w1,Ce({},it,{key:\"noPager\",page:1,className:\"\".concat(n,\"-item-disabled\")})));for(var ge=1;ge<=Lt;ge+=1)mt.push(le.createElement(w1,Ce({},it,{key:ge,page:ge,active:ie===ge})))}else{var Te=E?M.prev_3:M.prev_5,We=E?M.next_3:M.next_5,ke=H(we,\"jump-prev\",me(V,\"prev page\")),Be=H(Fe,\"jump-next\",me(U,\"next page\"));F&&(ur=ke?le.createElement(\"li\",{title:D?Te:null,key:\"prev\",onClick:_e,tabIndex:0,onKeyDown:ht,className:ne(\"\".concat(n,\"-jump-prev\"),Z({},\"\".concat(n,\"-jump-prev-custom-icon\"),!!V))},ke):null,jt=Be?le.createElement(\"li\",{title:D?We:null,key:\"next\",onClick:$e,tabIndex:0,onKeyDown:gt,className:ne(\"\".concat(n,\"-jump-next\"),Z({},\"\".concat(n,\"-jump-next-custom-icon\"),!!U))},Be):null);var Oe=Math.max(1,ie-de),at=Math.min(ie+de,Lt);ie-1<=de&&(at=1+de*2),Lt-ie<=de&&(Oe=Lt-de*2);for(var Le=Oe;Le<=at;Le+=1)mt.push(le.createElement(w1,Ce({},it,{key:Le,page:Le,active:ie===Le})));if(ie-1>=de*2&&ie!==3&&(mt[0]=le.cloneElement(mt[0],{className:ne(\"\".concat(n,\"-item-after-jump-prev\"),mt[0].props.className)}),mt.unshift(ur)),Lt-ie>=de*2&&ie!==Lt-2){var Ye=mt[mt.length-1];mt[mt.length-1]=le.cloneElement(Ye,{className:ne(\"\".concat(n,\"-item-before-jump-next\"),Ye.props.className)}),mt.push(jt)}Oe!==1&&mt.unshift(le.createElement(w1,Ce({},it,{key:1,page:1}))),at!==Lt&&mt.push(le.createElement(w1,Ce({},it,{key:Lt,page:Lt})))}var qe=Et(st);if(qe){var Ze=!Je||!Lt;qe=le.createElement(\"li\",{title:D?M.prev_page:null,onClick:Ge,tabIndex:Ze?null:0,onKeyDown:pt,className:ne(\"\".concat(n,\"-prev\"),Z({},\"\".concat(n,\"-disabled\"),Ze)),\"aria-disabled\":Ze},qe)}var ft=xt(Ct);if(ft){var yt,zt;B?(yt=!Pe,zt=Je?0:null):(yt=!Pe||!Lt,zt=yt?null:0),ft=le.createElement(\"li\",{title:D?M.next_page:null,onClick:Ae,tabIndex:zt,onKeyDown:_t,className:ne(\"\".concat(n,\"-next\"),Z({},\"\".concat(n,\"-disabled\"),yt)),\"aria-disabled\":yt},ft)}var vr=ne(n,o,Z(Z(Z(Z(Z({},\"\".concat(n,\"-start\"),b===\"start\"),\"\".concat(n,\"-center\"),b===\"center\"),\"\".concat(n,\"-end\"),b===\"end\"),\"\".concat(n,\"-simple\"),B),\"\".concat(n,\"-disabled\"),P));return le.createElement(\"ul\",Ce({className:vr,style:T,ref:Y},mr),Tt,qe,B?se:mt,ft,le.createElement(f7e,{locale:M,rootPrefixCls:n,disabled:P,selectPrefixCls:i,changeSize:Ve,pageSize:X,pageSizeOptions:L,quickGo:lt?Ie:null,goButton:he,showSizeChanger:z,sizeChangerRender:W}))};const m7e=e=>{const{componentCls:t}=e;return{[`${t}-disabled`]:{\"&, &:hover\":{cursor:\"not-allowed\",[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:\"not-allowed\"}},\"&:focus-visible\":{cursor:\"not-allowed\",[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:\"not-allowed\"}}},[`&${t}-disabled`]:{cursor:\"not-allowed\",[`${t}-item`]:{cursor:\"not-allowed\",backgroundColor:\"transparent\",\"&:hover, &:active\":{backgroundColor:\"transparent\"},a:{color:e.colorTextDisabled,backgroundColor:\"transparent\",border:\"none\",cursor:\"not-allowed\"},\"&-active\":{borderColor:e.colorBorder,backgroundColor:e.itemActiveBgDisabled,\"&:hover, &:active\":{backgroundColor:e.itemActiveBgDisabled},a:{color:e.itemActiveColorDisabled}}},[`${t}-item-link`]:{color:e.colorTextDisabled,cursor:\"not-allowed\",\"&:hover, &:active\":{backgroundColor:\"transparent\"},[`${t}-simple&`]:{backgroundColor:\"transparent\",\"&:hover, &:active\":{backgroundColor:\"transparent\"}}},[`${t}-simple-pager`]:{color:e.colorTextDisabled},[`${t}-jump-prev, ${t}-jump-next`]:{[`${t}-item-link-icon`]:{opacity:0},[`${t}-item-ellipsis`]:{opacity:1}}}}},v7e=e=>{const{componentCls:t}=e;return{[`&${t}-mini ${t}-total-text, &${t}-mini ${t}-simple-pager`]:{height:e.itemSizeSM,lineHeight:re(e.itemSizeSM)},[`&${t}-mini ${t}-item`]:{minWidth:e.itemSizeSM,height:e.itemSizeSM,margin:0,lineHeight:re(e.calc(e.itemSizeSM).sub(2).equal())},[`&${t}-mini ${t}-prev, &${t}-mini ${t}-next`]:{minWidth:e.itemSizeSM,height:e.itemSizeSM,margin:0,lineHeight:re(e.itemSizeSM)},[`&${t}-mini:not(${t}-disabled)`]:{[`${t}-prev, ${t}-next`]:{[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover ${t}-item-link`]:{backgroundColor:\"transparent\"}}},[`\n &${t}-mini ${t}-prev ${t}-item-link,\n &${t}-mini ${t}-next ${t}-item-link\n `]:{backgroundColor:\"transparent\",borderColor:\"transparent\",\"&::after\":{height:e.itemSizeSM,lineHeight:re(e.itemSizeSM)}},[`&${t}-mini ${t}-jump-prev, &${t}-mini ${t}-jump-next`]:{height:e.itemSizeSM,marginInlineEnd:0,lineHeight:re(e.itemSizeSM)},[`&${t}-mini ${t}-options`]:{marginInlineStart:e.paginationMiniOptionsMarginInlineStart,\"&-size-changer\":{top:e.miniOptionsSizeChangerTop},\"&-quick-jumper\":{height:e.itemSizeSM,lineHeight:re(e.itemSizeSM),input:Object.assign(Object.assign({},wO(e)),{width:e.paginationMiniQuickJumperInputWidth,height:e.controlHeightSM})}}}},g7e=e=>{const{componentCls:t}=e;return{[`&${t}-simple`]:{[`${t}-prev, ${t}-next`]:{height:e.itemSize,lineHeight:re(e.itemSize),verticalAlign:\"top\",[`${t}-item-link`]:{height:e.itemSize,backgroundColor:\"transparent\",border:0,\"&:hover\":{backgroundColor:e.colorBgTextHover},\"&:active\":{backgroundColor:e.colorBgTextActive},\"&::after\":{height:e.itemSize,lineHeight:re(e.itemSize)}}},[`${t}-simple-pager`]:{display:\"inline-flex\",alignItems:\"center\",height:e.itemSize,marginInlineEnd:e.marginXS,input:{boxSizing:\"border-box\",height:\"100%\",width:e.quickJumperInputWidth,padding:`0 ${re(e.paginationItemPaddingInline)}`,textAlign:\"center\",backgroundColor:e.itemInputBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadius,outline:\"none\",transition:`border-color ${e.motionDurationMid}`,color:\"inherit\",\"&:hover\":{borderColor:e.colorPrimary},\"&:focus\":{borderColor:e.colorPrimaryHover,boxShadow:`${re(e.inputOutlineOffset)} 0 ${re(e.controlOutlineWidth)} ${e.controlOutline}`},\"&[disabled]\":{color:e.colorTextDisabled,backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,cursor:\"not-allowed\"}}},[`&${t}-disabled`]:{[`${t}-prev, ${t}-next`]:{[`${t}-item-link`]:{\"&:hover, &:active\":{backgroundColor:\"transparent\"}}}},[`&${t}-mini`]:{[`${t}-prev, ${t}-next`]:{height:e.itemSizeSM,lineHeight:re(e.itemSizeSM),[`${t}-item-link`]:{height:e.itemSizeSM,\"&::after\":{height:e.itemSizeSM,lineHeight:re(e.itemSizeSM)}}},[`${t}-simple-pager`]:{height:e.itemSizeSM,input:{width:e.paginationMiniQuickJumperInputWidth}}}}}},y7e=e=>{const{componentCls:t}=e;return{[`${t}-jump-prev, ${t}-jump-next`]:{outline:0,[`${t}-item-container`]:{position:\"relative\",[`${t}-item-link-icon`]:{color:e.colorPrimary,fontSize:e.fontSizeSM,opacity:0,transition:`all ${e.motionDurationMid}`,\"&-svg\":{top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,margin:\"auto\"}},[`${t}-item-ellipsis`]:{position:\"absolute\",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,display:\"block\",margin:\"auto\",color:e.colorTextDisabled,letterSpacing:e.paginationEllipsisLetterSpacing,textAlign:\"center\",textIndent:e.paginationEllipsisTextIndent,opacity:1,transition:`all ${e.motionDurationMid}`}},\"&:hover\":{[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}}},[`\n ${t}-prev,\n ${t}-jump-prev,\n ${t}-jump-next\n `]:{marginInlineEnd:e.marginXS},[`\n ${t}-prev,\n ${t}-next,\n ${t}-jump-prev,\n ${t}-jump-next\n `]:{display:\"inline-block\",minWidth:e.itemSize,height:e.itemSize,color:e.colorText,fontFamily:e.fontFamily,lineHeight:re(e.itemSize),textAlign:\"center\",verticalAlign:\"middle\",listStyle:\"none\",borderRadius:e.borderRadius,cursor:\"pointer\",transition:`all ${e.motionDurationMid}`},[`${t}-prev, ${t}-next`]:{outline:0,button:{color:e.colorText,cursor:\"pointer\",userSelect:\"none\"},[`${t}-item-link`]:{display:\"block\",width:\"100%\",height:\"100%\",padding:0,fontSize:e.fontSizeSM,textAlign:\"center\",backgroundColor:\"transparent\",border:`${re(e.lineWidth)} ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:\"none\",transition:`all ${e.motionDurationMid}`},[`&:hover ${t}-item-link`]:{backgroundColor:e.colorBgTextHover},[`&:active ${t}-item-link`]:{backgroundColor:e.colorBgTextActive},[`&${t}-disabled:hover`]:{[`${t}-item-link`]:{backgroundColor:\"transparent\"}}},[`${t}-slash`]:{marginInlineEnd:e.paginationSlashMarginInlineEnd,marginInlineStart:e.paginationSlashMarginInlineStart},[`${t}-options`]:{display:\"inline-block\",marginInlineStart:e.margin,verticalAlign:\"middle\",\"&-size-changer\":{display:\"inline-block\",width:\"auto\"},\"&-quick-jumper\":{display:\"inline-block\",height:e.controlHeight,marginInlineStart:e.marginXS,lineHeight:re(e.controlHeight),verticalAlign:\"top\",input:Object.assign(Object.assign(Object.assign({},Sx(e)),yO(e,{borderColor:e.colorBorder,hoverBorderColor:e.colorPrimaryHover,activeBorderColor:e.colorPrimary,activeShadow:e.activeShadow})),{\"&[disabled]\":Object.assign({},N6(e)),width:e.quickJumperInputWidth,height:e.controlHeight,boxSizing:\"border-box\",margin:0,marginInlineStart:e.marginXS,marginInlineEnd:e.marginXS})}}}},b7e=e=>{const{componentCls:t}=e;return{[`${t}-item`]:{display:\"inline-block\",minWidth:e.itemSize,height:e.itemSize,marginInlineEnd:e.marginXS,fontFamily:e.fontFamily,lineHeight:re(e.calc(e.itemSize).sub(2).equal()),textAlign:\"center\",verticalAlign:\"middle\",listStyle:\"none\",backgroundColor:e.itemBg,border:`${re(e.lineWidth)} ${e.lineType} transparent`,borderRadius:e.borderRadius,outline:0,cursor:\"pointer\",userSelect:\"none\",a:{display:\"block\",padding:`0 ${re(e.paginationItemPaddingInline)}`,color:e.colorText,\"&:hover\":{textDecoration:\"none\"}},[`&:not(${t}-item-active)`]:{\"&:hover\":{transition:`all ${e.motionDurationMid}`,backgroundColor:e.colorBgTextHover},\"&:active\":{backgroundColor:e.colorBgTextActive}},\"&-active\":{fontWeight:e.fontWeightStrong,backgroundColor:e.itemActiveBg,borderColor:e.colorPrimary,a:{color:e.itemActiveColor},\"&:hover\":{borderColor:e.colorPrimaryHover},\"&:hover a\":{color:e.itemActiveColorHover}}}}},x7e=e=>{const{componentCls:t}=e;return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{display:\"flex\",flexWrap:\"wrap\",rowGap:e.paddingXS,\"&-start\":{justifyContent:\"start\"},\"&-center\":{justifyContent:\"center\"},\"&-end\":{justifyContent:\"end\"},\"ul, ol\":{margin:0,padding:0,listStyle:\"none\"},\"&::after\":{display:\"block\",clear:\"both\",height:0,overflow:\"hidden\",visibility:\"hidden\",content:'\"\"'},[`${t}-total-text`]:{display:\"inline-block\",height:e.itemSize,marginInlineEnd:e.marginXS,lineHeight:re(e.calc(e.itemSize).sub(2).equal()),verticalAlign:\"middle\"}}),b7e(e)),y7e(e)),g7e(e)),v7e(e)),m7e(e)),{[`@media only screen and (max-width: ${e.screenLG}px)`]:{[`${t}-item`]:{\"&-after-jump-prev, &-before-jump-next\":{display:\"none\"}}},[`@media only screen and (max-width: ${e.screenSM}px)`]:{[`${t}-options`]:{display:\"none\"}}}),[`&${e.componentCls}-rtl`]:{direction:\"rtl\"}}},C7e=e=>{const{componentCls:t}=e;return{[`${t}:not(${t}-disabled)`]:{[`${t}-item`]:Object.assign({},pl(e)),[`${t}-jump-prev, ${t}-jump-next`]:{\"&:focus-visible\":Object.assign({[`${t}-item-link-icon`]:{opacity:1},[`${t}-item-ellipsis`]:{opacity:0}},uc(e))},[`${t}-prev, ${t}-next`]:{[`&:focus-visible ${t}-item-link`]:uc(e)}}}},sse=e=>Object.assign({itemBg:e.colorBgContainer,itemSize:e.controlHeight,itemSizeSM:e.controlHeightSM,itemActiveBg:e.colorBgContainer,itemActiveColor:e.colorPrimary,itemActiveColorHover:e.colorPrimaryHover,itemLinkBg:e.colorBgContainer,itemActiveColorDisabled:e.colorTextDisabled,itemActiveBgDisabled:e.controlItemBgActiveDisabled,itemInputBg:e.colorBgContainer,miniOptionsSizeChangerTop:0},Fm(e)),use=e=>Sr(e,{inputOutlineOffset:0,quickJumperInputWidth:e.calc(e.controlHeightLG).mul(1.25).equal(),paginationMiniOptionsMarginInlineStart:e.calc(e.marginXXS).div(2).equal(),paginationMiniQuickJumperInputWidth:e.calc(e.controlHeightLG).mul(1.1).equal(),paginationItemPaddingInline:e.calc(e.marginXXS).mul(1.5).equal(),paginationEllipsisLetterSpacing:e.calc(e.marginXXS).div(2).equal(),paginationSlashMarginInlineStart:e.marginSM,paginationSlashMarginInlineEnd:e.marginSM,paginationEllipsisTextIndent:\"0.13em\"},Cm(e)),F7e=kr(\"Pagination\",e=>{const t=use(e);return[x7e(t),C7e(t)]},sse),S7e=e=>{const{componentCls:t}=e;return{[`${t}${t}-bordered${t}-disabled:not(${t}-mini)`]:{\"&, &:hover\":{[`${t}-item-link`]:{borderColor:e.colorBorder}},\"&:focus-visible\":{[`${t}-item-link`]:{borderColor:e.colorBorder}},[`${t}-item, ${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,[`&:hover:not(${t}-item-active)`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,a:{color:e.colorTextDisabled}},[`&${t}-item-active`]:{backgroundColor:e.itemActiveBgDisabled}},[`${t}-prev, ${t}-next`]:{\"&:hover button\":{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder,color:e.colorTextDisabled},[`${t}-item-link`]:{backgroundColor:e.colorBgContainerDisabled,borderColor:e.colorBorder}}},[`${t}${t}-bordered:not(${t}-mini)`]:{[`${t}-prev, ${t}-next`]:{\"&:hover button\":{borderColor:e.colorPrimaryHover,backgroundColor:e.itemBg},[`${t}-item-link`]:{backgroundColor:e.itemLinkBg,borderColor:e.colorBorder},[`&:hover ${t}-item-link`]:{borderColor:e.colorPrimary,backgroundColor:e.itemBg,color:e.colorPrimary},[`&${t}-disabled`]:{[`${t}-item-link`]:{borderColor:e.colorBorder,color:e.colorTextDisabled}}},[`${t}-item`]:{backgroundColor:e.itemBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,[`&:hover:not(${t}-item-active)`]:{borderColor:e.colorPrimary,backgroundColor:e.itemBg,a:{color:e.colorPrimary}},\"&-active\":{borderColor:e.colorPrimary}}}}},w7e=yg([\"Pagination\",\"bordered\"],e=>{const t=use(e);return S7e(t)},sse);function MV(e){return m.useMemo(()=>typeof e==\"boolean\"?[e,{}]:e&&typeof e==\"object\"?[!0,e]:[void 0,void 0],[e])}var E7e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const cse=e=>{const{align:t,prefixCls:r,selectPrefixCls:n,className:a,rootClassName:i,style:o,size:l,locale:s,responsive:u,showSizeChanger:c,selectComponentClass:d,pageSizeOptions:f}=e,h=E7e(e,[\"align\",\"prefixCls\",\"selectPrefixCls\",\"className\",\"rootClassName\",\"style\",\"size\",\"locale\",\"responsive\",\"showSizeChanger\",\"selectComponentClass\",\"pageSizeOptions\"]),{xs:p}=Eg(u),[,v]=Mi(),{getPrefixCls:g,direction:y,showSizeChanger:b,className:x,style:F}=na(\"pagination\"),S=g(\"pagination\",r),[E,w,D]=F7e(S),A=Ta(l),_=A===\"small\"||!!(p&&!A&&u),[I]=Jo(\"Pagination\",yne),M=Object.assign(Object.assign({},I),s),[T,k]=MV(c),[R,P]=MV(b),B=T??R,N=k??P,O=d||Qe,z=m.useMemo(()=>f?f.map(U=>Number(U)):void 0,[f]),W=U=>{var Q;const{disabled:K,size:Y,onSizeChange:ee,\"aria-label\":J,className:X,options:ce}=U,{className:oe,onChange:ue}=N||{},ie=(Q=ce.find(fe=>String(fe.value)===String(Y)))===null||Q===void 0?void 0:Q.value;return m.createElement(O,Object.assign({disabled:K,showSearch:!0,popupMatchSelectWidth:!1,getPopupContainer:fe=>fe.parentNode,\"aria-label\":J,options:ce},N,{value:ie,onChange:(fe,xe)=>{ee==null||ee(fe),ue==null||ue(fe,xe)},size:_?\"small\":\"middle\",className:ne(X,oe)}))},L=m.useMemo(()=>{const U=m.createElement(\"span\",{className:`${S}-item-ellipsis`},\"•••\"),Q=m.createElement(\"button\",{className:`${S}-item-link`,type:\"button\",tabIndex:-1},y===\"rtl\"?m.createElement(nd,null):m.createElement(zf,null)),K=m.createElement(\"button\",{className:`${S}-item-link`,type:\"button\",tabIndex:-1},y===\"rtl\"?m.createElement(zf,null):m.createElement(nd,null)),Y=m.createElement(\"a\",{className:`${S}-item-link`},m.createElement(\"div\",{className:`${S}-item-container`},y===\"rtl\"?m.createElement(IV,{className:`${S}-item-link-icon`}):m.createElement(TV,{className:`${S}-item-link-icon`}),U)),ee=m.createElement(\"a\",{className:`${S}-item-link`},m.createElement(\"div\",{className:`${S}-item-container`},y===\"rtl\"?m.createElement(TV,{className:`${S}-item-link-icon`}):m.createElement(IV,{className:`${S}-item-link-icon`}),U));return{prevIcon:Q,nextIcon:K,jumpPrevIcon:Y,jumpNextIcon:ee}},[y,S]),j=g(\"select\",n),H=ne({[`${S}-${t}`]:!!t,[`${S}-mini`]:_,[`${S}-rtl`]:y===\"rtl\",[`${S}-bordered`]:v.wireframe},x,a,i,w,D),V=Object.assign(Object.assign({},F),o);return E(m.createElement(m.Fragment,null,v.wireframe&&m.createElement(w7e,{prefixCls:S}),m.createElement(p7e,Object.assign({},L,h,{style:V,prefixCls:S,selectPrefixCls:j,className:H,locale:M,pageSizeOptions:z,showSizeChanger:B,sizeChangerRender:W}))))},PE=100,dse=PE/5,fse=PE/2-dse/2,J_=fse*2*Math.PI,PV=50,OV=e=>{const{dotClassName:t,style:r,hasCircleCls:n}=e;return m.createElement(\"circle\",{className:ne(`${t}-circle`,{[`${t}-circle-bg`]:n}),r:fse,cx:PV,cy:PV,strokeWidth:dse,style:r})},D7e=({percent:e,prefixCls:t})=>{const r=`${t}-dot`,n=`${r}-holder`,a=`${n}-hidden`,[i,o]=m.useState(!1);_r(()=>{e!==0&&o(!0)},[e!==0]);const l=Math.max(Math.min(e,100),0);if(!i)return null;const s={strokeDashoffset:`${J_/4}`,strokeDasharray:`${J_*l/100} ${J_*(100-l)/100}`};return m.createElement(\"span\",{className:ne(n,`${r}-progress`,l<=0&&a)},m.createElement(\"svg\",{viewBox:`0 0 ${PE} ${PE}`,role:\"progressbar\",\"aria-valuemin\":0,\"aria-valuemax\":100,\"aria-valuenow\":l},m.createElement(OV,{dotClassName:r,hasCircleCls:!0}),m.createElement(OV,{dotClassName:r,style:s})))};function A7e(e){const{prefixCls:t,percent:r=0}=e,n=`${t}-dot`,a=`${n}-holder`,i=`${a}-hidden`;return m.createElement(m.Fragment,null,m.createElement(\"span\",{className:ne(a,r>0&&i)},m.createElement(\"span\",{className:ne(n,`${t}-dot-spin`)},[1,2,3,4].map(o=>m.createElement(\"i\",{className:`${t}-dot-item`,key:o})))),m.createElement(D7e,{prefixCls:t,percent:r}))}function _7e(e){var t;const{prefixCls:r,indicator:n,percent:a}=e,i=`${r}-dot`;return n&&m.isValidElement(n)?oa(n,{className:ne((t=n.props)===null||t===void 0?void 0:t.className,i),percent:a}):m.createElement(A7e,{prefixCls:r,percent:a})}const T7e=new Br(\"antSpinMove\",{to:{opacity:1}}),I7e=new Br(\"antRotate\",{to:{transform:\"rotate(405deg)\"}}),k7e=e=>{const{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{position:\"absolute\",display:\"none\",color:e.colorPrimary,fontSize:0,textAlign:\"center\",verticalAlign:\"middle\",opacity:0,transition:`transform ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`,\"&-spinning\":{position:\"relative\",display:\"inline-block\",opacity:1},[`${t}-text`]:{fontSize:e.fontSize,paddingTop:r(r(e.dotSize).sub(e.fontSize)).div(2).add(2).equal()},\"&-fullscreen\":{position:\"fixed\",width:\"100vw\",height:\"100vh\",backgroundColor:e.colorBgMask,zIndex:e.zIndexPopupBase,inset:0,display:\"flex\",alignItems:\"center\",flexDirection:\"column\",justifyContent:\"center\",opacity:0,visibility:\"hidden\",transition:`all ${e.motionDurationMid}`,\"&-show\":{opacity:1,visibility:\"visible\"},[t]:{[`${t}-dot-holder`]:{color:e.colorWhite},[`${t}-text`]:{color:e.colorTextLightSolid}}},\"&-nested-loading\":{position:\"relative\",[`> div > ${t}`]:{position:\"absolute\",top:0,insetInlineStart:0,zIndex:4,display:\"block\",width:\"100%\",height:\"100%\",maxHeight:e.contentHeight,[`${t}-dot`]:{position:\"absolute\",top:\"50%\",insetInlineStart:\"50%\",margin:r(e.dotSize).mul(-1).div(2).equal()},[`${t}-text`]:{position:\"absolute\",top:\"50%\",width:\"100%\",textShadow:`0 1px 2px ${e.colorBgContainer}`},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSize).div(2).mul(-1).sub(10).equal()},\"&-sm\":{[`${t}-dot`]:{margin:r(e.dotSizeSM).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeSM).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeSM).div(2).mul(-1).sub(10).equal()}},\"&-lg\":{[`${t}-dot`]:{margin:r(e.dotSizeLG).mul(-1).div(2).equal()},[`${t}-text`]:{paddingTop:r(r(e.dotSizeLG).sub(e.fontSize)).div(2).add(2).equal()},[`&${t}-show-text ${t}-dot`]:{marginTop:r(e.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${t}-container`]:{position:\"relative\",transition:`opacity ${e.motionDurationSlow}`,\"&::after\":{position:\"absolute\",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:\"100%\",height:\"100%\",background:e.colorBgContainer,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'\"\"',pointerEvents:\"none\"}},[`${t}-blur`]:{clear:\"both\",opacity:.5,userSelect:\"none\",pointerEvents:\"none\",\"&::after\":{opacity:.4,pointerEvents:\"auto\"}}},\"&-tip\":{color:e.spinDotDefault},[`${t}-dot-holder`]:{width:\"1em\",height:\"1em\",fontSize:e.dotSize,display:\"inline-block\",transition:`transform ${e.motionDurationSlow} ease, opacity ${e.motionDurationSlow} ease`,transformOrigin:\"50% 50%\",lineHeight:1,color:e.colorPrimary,\"&-hidden\":{transform:\"scale(0.3)\",opacity:0}},[`${t}-dot-progress`]:{position:\"absolute\",inset:0},[`${t}-dot`]:{position:\"relative\",display:\"inline-block\",fontSize:e.dotSize,width:\"1em\",height:\"1em\",\"&-item\":{position:\"absolute\",display:\"block\",width:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),height:r(e.dotSize).sub(r(e.marginXXS).div(2)).div(2).equal(),background:\"currentColor\",borderRadius:\"100%\",transform:\"scale(0.75)\",transformOrigin:\"50% 50%\",opacity:.3,animationName:T7e,animationDuration:\"1s\",animationIterationCount:\"infinite\",animationTimingFunction:\"linear\",animationDirection:\"alternate\",\"&:nth-child(1)\":{top:0,insetInlineStart:0,animationDelay:\"0s\"},\"&:nth-child(2)\":{top:0,insetInlineEnd:0,animationDelay:\"0.4s\"},\"&:nth-child(3)\":{insetInlineEnd:0,bottom:0,animationDelay:\"0.8s\"},\"&:nth-child(4)\":{bottom:0,insetInlineStart:0,animationDelay:\"1.2s\"}},\"&-spin\":{transform:\"rotate(45deg)\",animationName:I7e,animationDuration:\"1.2s\",animationIterationCount:\"infinite\",animationTimingFunction:\"linear\"},\"&-circle\":{strokeLinecap:\"round\",transition:[\"stroke-dashoffset\",\"stroke-dasharray\",\"stroke\",\"stroke-width\",\"opacity\"].map(n=>`${n} ${e.motionDurationSlow} ease`).join(\",\"),fillOpacity:0,stroke:\"currentcolor\"},\"&-circle-bg\":{stroke:e.colorFillSecondary}},[`&-sm ${t}-dot`]:{\"&, &-holder\":{fontSize:e.dotSizeSM}},[`&-sm ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal(),height:r(r(e.dotSizeSM).sub(r(e.marginXXS).div(2))).div(2).equal()}},[`&-lg ${t}-dot`]:{\"&, &-holder\":{fontSize:e.dotSizeLG}},[`&-lg ${t}-dot-holder`]:{i:{width:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal(),height:r(r(e.dotSizeLG).sub(e.marginXXS)).div(2).equal()}},[`&${t}-show-text ${t}-text`]:{display:\"block\"}})}},R7e=e=>{const{controlHeightLG:t,controlHeight:r}=e;return{contentHeight:400,dotSize:t/2,dotSizeSM:t*.35,dotSizeLG:r}},M7e=kr(\"Spin\",e=>{const t=Sr(e,{spinDotDefault:e.colorTextDescription});return k7e(t)},R7e),P7e=200,BV=[[30,.05],[70,.03],[96,.01]];function O7e(e,t){const[r,n]=m.useState(0),a=m.useRef(null),i=t===\"auto\";return m.useEffect(()=>(i&&e&&(n(0),a.current=setInterval(()=>{n(o=>{const l=100-o;for(let s=0;s<BV.length;s+=1){const[u,c]=BV[s];if(o<=u)return o+l*c}return o})},P7e)),()=>{a.current&&(clearInterval(a.current),a.current=null)}),[i,e]),i?r:t}var B7e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};let hse;function N7e(e,t){return!!e&&!!t&&!Number.isNaN(Number(t))}const mi=e=>{var t;const{prefixCls:r,spinning:n=!0,delay:a=0,className:i,rootClassName:o,size:l=\"default\",tip:s,wrapperClassName:u,style:c,children:d,fullscreen:f=!1,indicator:h,percent:p}=e,v=B7e(e,[\"prefixCls\",\"spinning\",\"delay\",\"className\",\"rootClassName\",\"size\",\"tip\",\"wrapperClassName\",\"style\",\"children\",\"fullscreen\",\"indicator\",\"percent\"]),{getPrefixCls:g,direction:y,className:b,style:x,indicator:F}=na(\"spin\"),S=g(\"spin\",r),[E,w,D]=M7e(S),[A,_]=m.useState(()=>n&&!N7e(n,a)),I=O7e(A,p);m.useEffect(()=>{if(n){const N=K8e(a,()=>{_(!0)});return N(),()=>{var O;(O=N==null?void 0:N.cancel)===null||O===void 0||O.call(N)}}_(!1)},[a,n]);const M=m.useMemo(()=>typeof d<\"u\"&&!f,[d,f]),T=ne(S,b,{[`${S}-sm`]:l===\"small\",[`${S}-lg`]:l===\"large\",[`${S}-spinning`]:A,[`${S}-show-text`]:!!s,[`${S}-rtl`]:y===\"rtl\"},i,!f&&o,w,D),k=ne(`${S}-container`,{[`${S}-blur`]:A}),R=(t=h??F)!==null&&t!==void 0?t:hse,P=Object.assign(Object.assign({},x),c),B=m.createElement(\"div\",Object.assign({},v,{style:P,className:T,\"aria-live\":\"polite\",\"aria-busy\":A}),m.createElement(_7e,{prefixCls:S,indicator:R,percent:I}),s&&(M||f)?m.createElement(\"div\",{className:`${S}-text`},s):null);return E(M?m.createElement(\"div\",Object.assign({},v,{className:ne(`${S}-nested-loading`,u,w,D)}),A&&m.createElement(\"div\",{key:\"loading\"},B),m.createElement(\"div\",{className:k,key:\"container\"},d)):f?m.createElement(\"div\",{className:ne(`${S}-fullscreen`,{[`${S}-fullscreen-show`]:A},o,w,D)},B):B)};mi.setDefaultIndicator=e=>{hse=e};const BO=le.createContext({});BO.Consumer;var pse=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const $7e=e=>{var{prefixCls:t,className:r,avatar:n,title:a,description:i}=e,o=pse(e,[\"prefixCls\",\"className\",\"avatar\",\"title\",\"description\"]);const{getPrefixCls:l}=m.useContext(Ot),s=l(\"list\",t),u=ne(`${s}-item-meta`,r),c=le.createElement(\"div\",{className:`${s}-item-meta-content`},a&&le.createElement(\"h4\",{className:`${s}-item-meta-title`},a),i&&le.createElement(\"div\",{className:`${s}-item-meta-description`},i));return le.createElement(\"div\",Object.assign({},o,{className:u}),n&&le.createElement(\"div\",{className:`${s}-item-meta-avatar`},n),(a||i)&&c)},L7e=le.forwardRef((e,t)=>{const{prefixCls:r,children:n,actions:a,extra:i,styles:o,className:l,classNames:s,colStyle:u}=e,c=pse(e,[\"prefixCls\",\"children\",\"actions\",\"extra\",\"styles\",\"className\",\"classNames\",\"colStyle\"]),{grid:d,itemLayout:f}=m.useContext(BO),{getPrefixCls:h,list:p}=m.useContext(Ot),v=w=>{var D,A;return ne((A=(D=p==null?void 0:p.item)===null||D===void 0?void 0:D.classNames)===null||A===void 0?void 0:A[w],s==null?void 0:s[w])},g=w=>{var D,A;return Object.assign(Object.assign({},(A=(D=p==null?void 0:p.item)===null||D===void 0?void 0:D.styles)===null||A===void 0?void 0:A[w]),o==null?void 0:o[w])},y=()=>{let w=!1;return m.Children.forEach(n,D=>{typeof D==\"string\"&&(w=!0)}),w&&m.Children.count(n)>1},b=()=>f===\"vertical\"?!!i:!y(),x=h(\"list\",r),F=a&&a.length>0&&le.createElement(\"ul\",{className:ne(`${x}-item-action`,v(\"actions\")),key:\"actions\",style:g(\"actions\")},a.map((w,D)=>le.createElement(\"li\",{key:`${x}-item-action-${D}`},w,D!==a.length-1&&le.createElement(\"em\",{className:`${x}-item-action-split`})))),S=d?\"div\":\"li\",E=le.createElement(S,Object.assign({},c,d?{}:{ref:t},{className:ne(`${x}-item`,{[`${x}-item-no-flex`]:!b()},l)}),f===\"vertical\"&&i?[le.createElement(\"div\",{className:`${x}-item-main`,key:\"content\"},n,F),le.createElement(\"div\",{className:ne(`${x}-item-extra`,v(\"extra\")),key:\"extra\",style:g(\"extra\")},i)]:[n,F,oa(i,{key:\"extra\"})]);return d?le.createElement(Se,{ref:t,flex:1,style:u},E):E}),mse=L7e;mse.Meta=$7e;const j7e=e=>{const{listBorderedCls:t,componentCls:r,paddingLG:n,margin:a,itemPaddingSM:i,itemPaddingLG:o,marginLG:l,borderRadiusLG:s}=e,u=re(e.calc(s).sub(e.lineWidth).equal());return{[t]:{border:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:s,[`${r}-header`]:{borderRadius:`${u} ${u} 0 0`},[`${r}-footer`]:{borderRadius:`0 0 ${u} ${u}`},[`${r}-header,${r}-footer,${r}-item`]:{paddingInline:n},[`${r}-pagination`]:{margin:`${re(a)} ${re(l)}`}},[`${t}${r}-sm`]:{[`${r}-item,${r}-header,${r}-footer`]:{padding:i}},[`${t}${r}-lg`]:{[`${r}-item,${r}-header,${r}-footer`]:{padding:o}}}},z7e=e=>{const{componentCls:t,screenSM:r,screenMD:n,marginLG:a,marginSM:i,margin:o}=e;return{[`@media screen and (max-width:${n}px)`]:{[t]:{[`${t}-item`]:{[`${t}-item-action`]:{marginInlineStart:a}}},[`${t}-vertical`]:{[`${t}-item`]:{[`${t}-item-extra`]:{marginInlineStart:a}}}},[`@media screen and (max-width: ${r}px)`]:{[t]:{[`${t}-item`]:{flexWrap:\"wrap\",[`${t}-action`]:{marginInlineStart:i}}},[`${t}-vertical`]:{[`${t}-item`]:{flexWrap:\"wrap-reverse\",[`${t}-item-main`]:{minWidth:e.contentWidth},[`${t}-item-extra`]:{margin:`auto auto ${re(o)}`}}}}}},H7e=e=>{const{componentCls:t,antCls:r,controlHeight:n,minHeight:a,paddingSM:i,marginLG:o,padding:l,itemPadding:s,colorPrimary:u,itemPaddingSM:c,itemPaddingLG:d,paddingXS:f,margin:h,colorText:p,colorTextDescription:v,motionDurationSlow:g,lineWidth:y,headerBg:b,footerBg:x,emptyTextPadding:F,metaMarginBottom:S,avatarMarginRight:E,titleMarginBottom:w,descriptionFontSize:D}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{position:\"relative\",\"--rc-virtual-list-scrollbar-bg\":e.colorSplit,\"*\":{outline:\"none\"},[`${t}-header`]:{background:b},[`${t}-footer`]:{background:x},[`${t}-header, ${t}-footer`]:{paddingBlock:i},[`${t}-pagination`]:{marginBlockStart:o,[`${r}-pagination-options`]:{textAlign:\"start\"}},[`${t}-spin`]:{minHeight:a,textAlign:\"center\"},[`${t}-items`]:{margin:0,padding:0,listStyle:\"none\"},[`${t}-item`]:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",padding:s,color:p,[`${t}-item-meta`]:{display:\"flex\",flex:1,alignItems:\"flex-start\",maxWidth:\"100%\",[`${t}-item-meta-avatar`]:{marginInlineEnd:E},[`${t}-item-meta-content`]:{flex:\"1 0\",width:0,color:p},[`${t}-item-meta-title`]:{margin:`0 0 ${re(e.marginXXS)} 0`,color:p,fontSize:e.fontSize,lineHeight:e.lineHeight,\"> a\":{color:p,transition:`all ${g}`,\"&:hover\":{color:u}}},[`${t}-item-meta-description`]:{color:v,fontSize:D,lineHeight:e.lineHeight}},[`${t}-item-action`]:{flex:\"0 0 auto\",marginInlineStart:e.marginXXL,padding:0,fontSize:0,listStyle:\"none\",\"& > li\":{position:\"relative\",display:\"inline-block\",padding:`0 ${re(f)}`,color:v,fontSize:e.fontSize,lineHeight:e.lineHeight,textAlign:\"center\",\"&:first-child\":{paddingInlineStart:0}},[`${t}-item-action-split`]:{position:\"absolute\",insetBlockStart:\"50%\",insetInlineEnd:0,width:y,height:e.calc(e.fontHeight).sub(e.calc(e.marginXXS).mul(2)).equal(),transform:\"translateY(-50%)\",backgroundColor:e.colorSplit}}},[`${t}-empty`]:{padding:`${re(l)} 0`,color:v,fontSize:e.fontSizeSM,textAlign:\"center\"},[`${t}-empty-text`]:{padding:F,color:e.colorTextDisabled,fontSize:e.fontSize,textAlign:\"center\"},[`${t}-item-no-flex`]:{display:\"block\"}}),[`${t}-grid ${r}-col > ${t}-item`]:{display:\"block\",maxWidth:\"100%\",marginBlockEnd:h,paddingBlock:0,borderBlockEnd:\"none\"},[`${t}-vertical ${t}-item`]:{alignItems:\"initial\",[`${t}-item-main`]:{display:\"block\",flex:1},[`${t}-item-extra`]:{marginInlineStart:o},[`${t}-item-meta`]:{marginBlockEnd:S,[`${t}-item-meta-title`]:{marginBlockStart:0,marginBlockEnd:w,color:p,fontSize:e.fontSizeLG,lineHeight:e.lineHeightLG}},[`${t}-item-action`]:{marginBlockStart:l,marginInlineStart:\"auto\",\"> li\":{padding:`0 ${re(l)}`,\"&:first-child\":{paddingInlineStart:0}}}},[`${t}-split ${t}-item`]:{borderBlockEnd:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`,\"&:last-child\":{borderBlockEnd:\"none\"}},[`${t}-split ${t}-header`]:{borderBlockEnd:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-split${t}-empty ${t}-footer`]:{borderTop:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-loading ${t}-spin-nested-loading`]:{minHeight:n},[`${t}-split${t}-something-after-last-item ${r}-spin-container > ${t}-items > ${t}-item:last-child`]:{borderBlockEnd:`${re(e.lineWidth)} ${e.lineType} ${e.colorSplit}`},[`${t}-lg ${t}-item`]:{padding:d},[`${t}-sm ${t}-item`]:{padding:c},[`${t}:not(${t}-vertical)`]:{[`${t}-item-no-flex`]:{[`${t}-item-action`]:{float:\"right\"}}}}},V7e=e=>({contentWidth:220,itemPadding:`${re(e.paddingContentVertical)} 0`,itemPaddingSM:`${re(e.paddingContentVerticalSM)} ${re(e.paddingContentHorizontal)}`,itemPaddingLG:`${re(e.paddingContentVerticalLG)} ${re(e.paddingContentHorizontalLG)}`,headerBg:\"transparent\",footerBg:\"transparent\",emptyTextPadding:e.padding,metaMarginBottom:e.padding,avatarMarginRight:e.padding,titleMarginBottom:e.paddingSM,descriptionFontSize:e.fontSize}),W7e=kr(\"List\",e=>{const t=Sr(e,{listBorderedCls:`${e.componentCls}-bordered`,minHeight:e.controlHeightLG});return[H7e(t),j7e(t),z7e(t)]},V7e);var G7e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function U7e(e,t){const{pagination:r=!1,prefixCls:n,bordered:a=!1,split:i=!0,className:o,rootClassName:l,style:s,children:u,itemLayout:c,loadMore:d,grid:f,dataSource:h=[],size:p,header:v,footer:g,loading:y=!1,rowKey:b,renderItem:x,locale:F}=e,S=G7e(e,[\"pagination\",\"prefixCls\",\"bordered\",\"split\",\"className\",\"rootClassName\",\"style\",\"children\",\"itemLayout\",\"loadMore\",\"grid\",\"dataSource\",\"size\",\"header\",\"footer\",\"loading\",\"rowKey\",\"renderItem\",\"locale\"]),E=r&&typeof r==\"object\"?r:{},[w,D]=m.useState(E.defaultCurrent||1),[A,_]=m.useState(E.defaultPageSize||10),{getPrefixCls:I,direction:M,className:T,style:k}=na(\"list\"),{renderEmpty:R}=m.useContext(Ot),P={current:1,total:0,position:\"bottom\"},B=we=>(Fe,me)=>{var Me;D(Fe),_(me),r&&((Me=r==null?void 0:r[we])===null||Me===void 0||Me.call(r,Fe,me))},N=B(\"onChange\"),O=B(\"onShowSizeChange\"),z=(we,Fe)=>{if(!x)return null;let me;return typeof b==\"function\"?me=b(we):b?me=we[b]:me=we.key,me||(me=`list-item-${Fe}`),m.createElement(m.Fragment,{key:me},x(we,Fe))},W=!!(d||r||g),L=I(\"list\",n),[j,H,V]=W7e(L);let U=y;typeof U==\"boolean\"&&(U={spinning:U});const Q=!!(U!=null&&U.spinning),K=Ta(p);let Y=\"\";switch(K){case\"large\":Y=\"lg\";break;case\"small\":Y=\"sm\";break}const ee=ne(L,{[`${L}-vertical`]:c===\"vertical\",[`${L}-${Y}`]:Y,[`${L}-split`]:i,[`${L}-bordered`]:a,[`${L}-loading`]:Q,[`${L}-grid`]:!!f,[`${L}-something-after-last-item`]:W,[`${L}-rtl`]:M===\"rtl\"},T,o,l,H,V),J=Jb(P,{total:h.length,current:w,pageSize:A},r||{}),X=Math.ceil(J.total/J.pageSize);J.current=Math.min(J.current,X);const ce=r&&m.createElement(\"div\",{className:ne(`${L}-pagination`)},m.createElement(cse,Object.assign({align:\"end\"},J,{onChange:N,onShowSizeChange:O})));let oe=He(h);r&&h.length>(J.current-1)*J.pageSize&&(oe=He(h).splice((J.current-1)*J.pageSize,J.pageSize));const ue=Object.keys(f||{}).some(we=>[\"xs\",\"sm\",\"md\",\"lg\",\"xl\",\"xxl\"].includes(we)),ie=Eg(ue),fe=m.useMemo(()=>{for(let we=0;we<id.length;we+=1){const Fe=id[we];if(ie[Fe])return Fe}},[ie]),xe=m.useMemo(()=>{if(!f)return;const we=fe&&f[fe]?f[fe]:f.column;if(we)return{width:`${100/we}%`,maxWidth:`${100/we}%`}},[JSON.stringify(f),fe]);let Ee=Q&&m.createElement(\"div\",{style:{minHeight:53}});if(oe.length>0){const we=oe.map(z);Ee=f?m.createElement(sr,{gutter:f.gutter},m.Children.map(we,Fe=>m.createElement(\"div\",{key:Fe==null?void 0:Fe.key,style:xe},Fe))):m.createElement(\"ul\",{className:`${L}-items`},we)}else!u&&!Q&&(Ee=m.createElement(\"div\",{className:`${L}-empty-text`},(F==null?void 0:F.emptyText)||(R==null?void 0:R(\"List\"))||m.createElement(tO,{componentName:\"List\"})));const De=J.position,ye=m.useMemo(()=>({grid:f,itemLayout:c}),[JSON.stringify(f),c]);return j(m.createElement(BO.Provider,{value:ye},m.createElement(\"div\",Object.assign({ref:t,style:Object.assign(Object.assign({},k),s),className:ee},S),(De===\"top\"||De===\"both\")&&ce,v&&m.createElement(\"div\",{className:`${L}-header`},v),m.createElement(mi,Object.assign({},U),Ee,u),g&&m.createElement(\"div\",{className:`${L}-footer`},g),d||(De===\"bottom\"||De===\"both\")&&ce)))}const K7e=m.forwardRef(U7e),tc=K7e;tc.Item=mse;const Y7e=(e,t=!1)=>t&&e==null?[]:Array.isArray(e)?e:[e];let is=null,up=e=>e(),n2=[],a2={};function NV(){const{getContainer:e,duration:t,rtl:r,maxCount:n,top:a}=a2,i=(e==null?void 0:e())||document.body;return{getContainer:()=>i,duration:t,rtl:r,maxCount:n,top:a}}const q7e=le.forwardRef((e,t)=>{const{messageConfig:r,sync:n}=e,{getPrefixCls:a}=m.useContext(Ot),i=a2.prefixCls||a(\"message\"),o=m.useContext(xR),[l,s]=lae(Object.assign(Object.assign(Object.assign({},r),{prefixCls:i}),o.message));return le.useImperativeHandle(t,()=>{const u=Object.assign({},l);return Object.keys(u).forEach(c=>{u[c]=(...d)=>(n(),l[c].apply(l,d))}),{instance:u,sync:n}}),s}),X7e=le.forwardRef((e,t)=>{const[r,n]=le.useState(NV),a=()=>{n(NV)};le.useEffect(a,[]);const i=Une(),o=i.getRootPrefixCls(),l=i.getIconPrefixCls(),s=i.getTheme(),u=le.createElement(q7e,{ref:t,sync:a,messageConfig:r});return le.createElement(Is,{prefixCls:o,iconPrefixCls:l,theme:s},i.holderRender?i.holderRender(u):u)}),H6=()=>{if(!is){const e=document.createDocumentFragment(),t={fragment:e};is=t,up(()=>{L7()(le.createElement(X7e,{ref:n=>{const{instance:a,sync:i}=n||{};Promise.resolve().then(()=>{!t.instance&&a&&(t.instance=a,t.sync=i,H6())})}}),e)});return}is.instance&&(n2.forEach(e=>{const{type:t,skipped:r}=e;if(!r)switch(t){case\"open\":{up(()=>{const n=is.instance.open(Object.assign(Object.assign({},a2),e.config));n==null||n.then(e.resolve),e.setCloseFn(n)});break}case\"destroy\":up(()=>{is==null||is.instance.destroy(e.key)});break;default:up(()=>{var n;const a=(n=is.instance)[t].apply(n,He(e.args));a==null||a.then(e.resolve),e.setCloseFn(a)})}}),n2=[])};function J7e(e){a2=Object.assign(Object.assign({},a2),e),up(()=>{var t;(t=is==null?void 0:is.sync)===null||t===void 0||t.call(is)})}function Z7e(e){const t=N7(r=>{let n;const a={type:\"open\",config:e,resolve:r,setCloseFn:i=>{n=i}};return n2.push(a),()=>{n?up(()=>{n()}):a.skipped=!0}});return H6(),t}function Q7e(e,t){const r=N7(n=>{let a;const i={type:e,args:t,resolve:n,setCloseFn:o=>{a=o}};return n2.push(i),()=>{a?up(()=>{a()}):i.skipped=!0}});return H6(),r}const eOe=e=>{n2.push({type:\"destroy\",key:e}),H6()},tOe=[\"success\",\"info\",\"warning\",\"error\",\"loading\"],rOe={open:Z7e,destroy:eOe,config:J7e,useMessage:sae,_InternalPanelDoNotUseOrYouWillBeFired:Pwe},vt=rOe;tOe.forEach(e=>{vt[e]=(...t)=>Q7e(e,t)});var nOe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const aOe=e=>{const{prefixCls:t,className:r,closeIcon:n,closable:a,type:i,title:o,children:l,footer:s}=e,u=nOe(e,[\"prefixCls\",\"className\",\"closeIcon\",\"closable\",\"type\",\"title\",\"children\",\"footer\"]),{getPrefixCls:c}=m.useContext(Ot),d=c(),f=t||c(\"modal\"),h=Zn(d),[p,v,g]=Wae(f,h),y=`${f}-confirm`;let b={};return i?b={closable:a??!1,title:\"\",footer:\"\",children:m.createElement(Uae,Object.assign({},e,{prefixCls:f,confirmPrefixCls:y,rootPrefixCls:d,content:l}))}:b={closable:a??!0,title:o,footer:s!==null&&m.createElement(Lae,Object.assign({},e)),children:l},p(m.createElement(Sae,Object.assign({prefixCls:f,className:ne(v,`${f}-pure-panel`,i&&y,i&&`${y}-${i}`,r,g,h)},u,{closeIcon:$ae(f,n),closable:a},b)))},iOe=iie(aOe);function vse(e){return mx(Xae(e))}const an=Gae;an.useModal=tie;an.info=function(t){return mx(Jae(t))};an.success=function(t){return mx(Zae(t))};an.error=function(t){return mx(Qae(t))};an.warning=vse;an.warn=vse;an.confirm=function(t){return mx(eie(t))};an.destroyAll=function(){for(;sp.length;){const t=sp.pop();t&&t()}};an.config=L6e;an._InternalPanelDoNotUseOrYouWillBeFired=iOe;const oOe=e=>{const{componentCls:t,iconCls:r,antCls:n,zIndexPopup:a,colorText:i,colorWarning:o,marginXXS:l,marginXS:s,fontSize:u,fontWeightStrong:c,colorTextHeading:d}=e;return{[t]:{zIndex:a,[`&${n}-popover`]:{fontSize:u},[`${t}-message`]:{marginBottom:s,display:\"flex\",flexWrap:\"nowrap\",alignItems:\"start\",[`> ${t}-message-icon ${r}`]:{color:o,fontSize:u,lineHeight:1,marginInlineEnd:s},[`${t}-title`]:{fontWeight:c,color:d,\"&:only-child\":{fontWeight:\"normal\"}},[`${t}-description`]:{marginTop:l,color:i}},[`${t}-buttons`]:{textAlign:\"end\",whiteSpace:\"nowrap\",button:{marginInlineStart:s}}}}},lOe=e=>{const{zIndexPopupBase:t}=e;return{zIndexPopup:t+60}},gse=kr(\"Popconfirm\",e=>oOe(e),lOe,{resetStyle:!1});var sOe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const yse=e=>{const{prefixCls:t,okButtonProps:r,cancelButtonProps:n,title:a,description:i,cancelText:o,okText:l,okType:s=\"primary\",icon:u=m.createElement(nh,null),showCancel:c=!0,close:d,onConfirm:f,onCancel:h,onPopupClick:p}=e,{getPrefixCls:v}=m.useContext(Ot),[g]=Jo(\"Popconfirm\",ws.Popconfirm),y=q0(a),b=q0(i);return m.createElement(\"div\",{className:`${t}-inner-content`,onClick:p},m.createElement(\"div\",{className:`${t}-message`},u&&m.createElement(\"span\",{className:`${t}-message-icon`},u),m.createElement(\"div\",{className:`${t}-message-text`},y&&m.createElement(\"div\",{className:`${t}-title`},y),b&&m.createElement(\"div\",{className:`${t}-description`},b))),m.createElement(\"div\",{className:`${t}-buttons`},c&&m.createElement(ze,Object.assign({onClick:h,size:\"small\"},n),o||(g==null?void 0:g.cancelText)),m.createElement(G7,{buttonProps:Object.assign(Object.assign({size:\"small\"},j7(s)),r),actionFn:f,close:d,prefixCls:v(\"btn\"),quitOnNullishReturnValue:!0,emitEvent:!0},l||(g==null?void 0:g.okText))))},uOe=e=>{const{prefixCls:t,placement:r,className:n,style:a}=e,i=sOe(e,[\"prefixCls\",\"placement\",\"className\",\"style\"]),{getPrefixCls:o}=m.useContext(Ot),l=o(\"popconfirm\",t),[s]=gse(l);return s(m.createElement(Lie,{placement:r,className:ne(l,n),style:a,content:m.createElement(yse,Object.assign({prefixCls:l},i))}))};var cOe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const dOe=m.forwardRef((e,t)=>{var r,n;const{prefixCls:a,placement:i=\"top\",trigger:o=\"click\",okType:l=\"primary\",icon:s=m.createElement(nh,null),children:u,overlayClassName:c,onOpenChange:d,onVisibleChange:f,overlayStyle:h,styles:p,classNames:v}=e,g=cOe(e,[\"prefixCls\",\"placement\",\"trigger\",\"okType\",\"icon\",\"children\",\"overlayClassName\",\"onOpenChange\",\"onVisibleChange\",\"overlayStyle\",\"styles\",\"classNames\"]),{getPrefixCls:y,className:b,style:x,classNames:F,styles:S}=na(\"popconfirm\"),[E,w]=un(!1,{value:(r=e.open)!==null&&r!==void 0?r:e.visible,defaultValue:(n=e.defaultOpen)!==null&&n!==void 0?n:e.defaultVisible}),D=(B,N)=>{w(B,!0),f==null||f(B),d==null||d(B,N)},A=B=>{D(!1,B)},_=B=>{var N;return(N=e.onConfirm)===null||N===void 0?void 0:N.call(void 0,B)},I=B=>{var N;D(!1,B),(N=e.onCancel)===null||N===void 0||N.call(void 0,B)},M=(B,N)=>{const{disabled:O=!1}=e;O||D(B,N)},T=y(\"popconfirm\",a),k=ne(T,b,c,F.root,v==null?void 0:v.root),R=ne(F.body,v==null?void 0:v.body),[P]=gse(T);return P(m.createElement(w6,Object.assign({},wn(g,[\"title\"]),{trigger:o,placement:i,onOpenChange:M,open:E,ref:t,classNames:{root:k,body:R},styles:{root:Object.assign(Object.assign(Object.assign(Object.assign({},S.root),x),h),p==null?void 0:p.root),body:Object.assign(Object.assign({},S.body),p==null?void 0:p.body)},content:m.createElement(yse,Object.assign({okType:l,icon:s},e,{prefixCls:T,close:A,onConfirm:_,onCancel:I})),\"data-popover-inject\":!0}),u))}),V6=dOe;V6._InternalPanelDoNotUseOrYouWillBeFired=uOe;var fOe={percent:0,prefixCls:\"rc-progress\",strokeColor:\"#2db7f5\",strokeLinecap:\"round\",strokeWidth:1,trailColor:\"#D9D9D9\",trailWidth:1,gapPosition:\"bottom\"},hOe=function(){var t=m.useRef([]),r=m.useRef(null);return m.useEffect(function(){var n=Date.now(),a=!1;t.current.forEach(function(i){if(i){a=!0;var o=i.style;o.transitionDuration=\".3s, .3s, .3s, .06s\",r.current&&n-r.current<100&&(o.transitionDuration=\"0s, 0s\")}}),a&&(r.current=Date.now())}),t.current},$V=0,pOe=ki();function mOe(){var e;return pOe?(e=$V,$V+=1):e=\"TEST_OR_SSR\",e}const vOe=function(e){var t=m.useState(),r=ve(t,2),n=r[0],a=r[1];return m.useEffect(function(){a(\"rc_progress_\".concat(mOe()))},[]),e||n};var LV=function(t){var r=t.bg,n=t.children;return m.createElement(\"div\",{style:{width:\"100%\",height:\"100%\",background:r}},n)};function jV(e,t){return Object.keys(e).map(function(r){var n=parseFloat(r),a=\"\".concat(Math.floor(n*t),\"%\");return\"\".concat(e[r],\" \").concat(a)})}var gOe=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.color,a=e.gradientId,i=e.radius,o=e.style,l=e.ptg,s=e.strokeLinecap,u=e.strokeWidth,c=e.size,d=e.gapDegree,f=n&&Nt(n)===\"object\",h=f?\"#FFF\":void 0,p=c/2,v=m.createElement(\"circle\",{className:\"\".concat(r,\"-circle-path\"),r:i,cx:p,cy:p,stroke:h,strokeLinecap:s,strokeWidth:u,opacity:l===0?0:1,style:o,ref:t});if(!f)return v;var g=\"\".concat(a,\"-conic\"),y=d?\"\".concat(180+d/2,\"deg\"):\"0deg\",b=jV(n,(360-d)/360),x=jV(n,1),F=\"conic-gradient(from \".concat(y,\", \").concat(b.join(\", \"),\")\"),S=\"linear-gradient(to \".concat(d?\"bottom\":\"top\",\", \").concat(x.join(\", \"),\")\");return m.createElement(m.Fragment,null,m.createElement(\"mask\",{id:g},v),m.createElement(\"foreignObject\",{x:0,y:0,width:c,height:c,mask:\"url(#\".concat(g,\")\")},m.createElement(LV,{bg:S},m.createElement(LV,{bg:F}))))}),hy=100,Z_=function(t,r,n,a,i,o,l,s,u,c){var d=arguments.length>10&&arguments[10]!==void 0?arguments[10]:0,f=n/100*360*((360-o)/360),h=o===0?0:{bottom:0,top:180,left:90,right:-90}[l],p=(100-a)/100*r;u===\"round\"&&a!==100&&(p+=c/2,p>=r&&(p=r-.01));var v=hy/2;return{stroke:typeof s==\"string\"?s:void 0,strokeDasharray:\"\".concat(r,\"px \").concat(t),strokeDashoffset:p+d,transform:\"rotate(\".concat(i+f+h,\"deg)\"),transformOrigin:\"\".concat(v,\"px \").concat(v,\"px\"),transition:\"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s\",fillOpacity:0}},yOe=[\"id\",\"prefixCls\",\"steps\",\"strokeWidth\",\"trailWidth\",\"gapDegree\",\"gapPosition\",\"trailColor\",\"strokeLinecap\",\"style\",\"className\",\"strokeColor\",\"percent\"];function zV(e){var t=e??[];return Array.isArray(t)?t:[t]}var bOe=function(t){var r=ae(ae({},fOe),t),n=r.id,a=r.prefixCls,i=r.steps,o=r.strokeWidth,l=r.trailWidth,s=r.gapDegree,u=s===void 0?0:s,c=r.gapPosition,d=r.trailColor,f=r.strokeLinecap,h=r.style,p=r.className,v=r.strokeColor,g=r.percent,y=Xt(r,yOe),b=hy/2,x=vOe(n),F=\"\".concat(x,\"-gradient\"),S=b-o/2,E=Math.PI*2*S,w=u>0?90+u/2:-90,D=E*((360-u)/360),A=Nt(i)===\"object\"?i:{count:i,gap:2},_=A.count,I=A.gap,M=zV(g),T=zV(v),k=T.find(function(W){return W&&Nt(W)===\"object\"}),R=k&&Nt(k)===\"object\",P=R?\"butt\":f,B=Z_(E,D,0,100,w,u,c,d,P,o),N=hOe(),O=function(){var L=0;return M.map(function(j,H){var V=T[H]||T[T.length-1],U=Z_(E,D,L,j,w,u,c,V,P,o);return L+=j,m.createElement(gOe,{key:H,color:V,ptg:j,radius:S,prefixCls:a,gradientId:F,style:U,strokeLinecap:P,strokeWidth:o,gapDegree:u,ref:function(K){N[H]=K},size:hy})}).reverse()},z=function(){var L=Math.round(_*(M[0]/100)),j=100/_,H=0;return new Array(_).fill(null).map(function(V,U){var Q=U<=L-1?T[0]:d,K=Q&&Nt(Q)===\"object\"?\"url(#\".concat(F,\")\"):void 0,Y=Z_(E,D,H,j,w,u,c,Q,\"butt\",o,I);return H+=(D-Y.strokeDashoffset+I)*100/D,m.createElement(\"circle\",{key:U,className:\"\".concat(a,\"-circle-path\"),r:S,cx:b,cy:b,stroke:K,strokeWidth:o,opacity:1,style:Y,ref:function(J){N[U]=J}})})};return m.createElement(\"svg\",Ce({className:ne(\"\".concat(a,\"-circle\"),p),viewBox:\"0 0 \".concat(hy,\" \").concat(hy),style:h,id:n,role:\"presentation\"},y),!_&&m.createElement(\"circle\",{className:\"\".concat(a,\"-circle-trail\"),r:S,cx:b,cy:b,stroke:d,strokeLinecap:P,strokeWidth:l||o,style:B}),_?z():O())};function Af(e){return!e||e<0?0:e>100?100:e}function OE({success:e,successPercent:t}){let r=t;return e&&\"progress\"in e&&(r=e.progress),e&&\"percent\"in e&&(r=e.percent),r}const xOe=({percent:e,success:t,successPercent:r})=>{const n=Af(OE({success:t,successPercent:r}));return[n,Af(Af(e)-n)]},COe=({success:e={},strokeColor:t})=>{const{strokeColor:r}=e;return[r||v0.green,t||null]},W6=(e,t,r)=>{var n,a,i,o;let l=-1,s=-1;if(t===\"step\"){const u=r.steps,c=r.strokeWidth;typeof e==\"string\"||typeof e>\"u\"?(l=e===\"small\"?2:14,s=c??8):typeof e==\"number\"?[l,s]=[e,e]:[l=14,s=8]=Array.isArray(e)?e:[e.width,e.height],l*=u}else if(t===\"line\"){const u=r==null?void 0:r.strokeWidth;typeof e==\"string\"||typeof e>\"u\"?s=u||(e===\"small\"?6:8):typeof e==\"number\"?[l,s]=[e,e]:[l=-1,s=8]=Array.isArray(e)?e:[e.width,e.height]}else(t===\"circle\"||t===\"dashboard\")&&(typeof e==\"string\"||typeof e>\"u\"?[l,s]=e===\"small\"?[60,60]:[120,120]:typeof e==\"number\"?[l,s]=[e,e]:Array.isArray(e)&&(l=(a=(n=e[0])!==null&&n!==void 0?n:e[1])!==null&&a!==void 0?a:120,s=(o=(i=e[0])!==null&&i!==void 0?i:e[1])!==null&&o!==void 0?o:120));return[l,s]},FOe=3,SOe=e=>FOe/e*100,wOe=e=>{const{prefixCls:t,trailColor:r=null,strokeLinecap:n=\"round\",gapPosition:a,gapDegree:i,width:o=120,type:l,children:s,success:u,size:c=o,steps:d}=e,[f,h]=W6(c,\"circle\");let{strokeWidth:p}=e;p===void 0&&(p=Math.max(SOe(f),6));const v={width:f,height:h,fontSize:f*.15+6},g=m.useMemo(()=>{if(i||i===0)return i;if(l===\"dashboard\")return 75},[i,l]),y=xOe(e),b=a||l===\"dashboard\"&&\"bottom\"||void 0,x=Object.prototype.toString.call(e.strokeColor)===\"[object Object]\",F=COe({success:u,strokeColor:e.strokeColor}),S=ne(`${t}-inner`,{[`${t}-circle-gradient`]:x}),E=m.createElement(bOe,{steps:d,percent:d?y[1]:y,strokeWidth:p,trailWidth:p,strokeColor:d?F[1]:F,strokeLinecap:n,trailColor:r,prefixCls:t,gapDegree:g,gapPosition:b}),w=f<=20,D=m.createElement(\"div\",{className:S,style:v},E,!w&&s);return w?m.createElement(Dr,{title:s},D):D},BE=\"--progress-line-stroke-color\",bse=\"--progress-percent\",HV=e=>{const t=e?\"100%\":\"-100%\";return new Br(`antProgress${e?\"RTL\":\"LTR\"}Active`,{\"0%\":{transform:`translateX(${t}) scaleX(0)`,opacity:.1},\"20%\":{transform:`translateX(${t}) scaleX(0)`,opacity:.5},to:{transform:\"translateX(0) scaleX(1)\",opacity:0}})},EOe=e=>{const{componentCls:t,iconCls:r}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{display:\"inline-block\",\"&-rtl\":{direction:\"rtl\"},\"&-line\":{position:\"relative\",width:\"100%\",fontSize:e.fontSize},[`${t}-outer`]:{display:\"inline-flex\",alignItems:\"center\",width:\"100%\"},[`${t}-inner`]:{position:\"relative\",display:\"inline-block\",width:\"100%\",flex:1,overflow:\"hidden\",verticalAlign:\"middle\",backgroundColor:e.remainingColor,borderRadius:e.lineBorderRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.defaultColor}},[`${t}-success-bg, ${t}-bg`]:{position:\"relative\",background:e.defaultColor,borderRadius:e.lineBorderRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-layout-bottom`]:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",[`${t}-text`]:{width:\"max-content\",marginInlineStart:0,marginTop:e.marginXXS}},[`${t}-bg`]:{overflow:\"hidden\",\"&::after\":{content:'\"\"',background:{_multi_value_:!0,value:[\"inherit\",`var(${BE})`]},height:\"100%\",width:`calc(1 / var(${bse}) * 100%)`,display:\"block\"},[`&${t}-bg-inner`]:{minWidth:\"max-content\",\"&::after\":{content:\"none\"},[`${t}-text-inner`]:{color:e.colorWhite,[`&${t}-text-bright`]:{color:\"rgba(0, 0, 0, 0.45)\"}}}},[`${t}-success-bg`]:{position:\"absolute\",insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:\"inline-block\",marginInlineStart:e.marginXS,color:e.colorText,lineHeight:1,width:\"2em\",whiteSpace:\"nowrap\",textAlign:\"start\",verticalAlign:\"middle\",wordBreak:\"normal\",[r]:{fontSize:e.fontSize},[`&${t}-text-outer`]:{width:\"max-content\"},[`&${t}-text-outer${t}-text-start`]:{width:\"max-content\",marginInlineStart:0,marginInlineEnd:e.marginXS}},[`${t}-text-inner`]:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",width:\"100%\",height:\"100%\",marginInlineStart:0,padding:`0 ${re(e.paddingXXS)}`,[`&${t}-text-start`]:{justifyContent:\"start\"},[`&${t}-text-end`]:{justifyContent:\"end\"}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:\"absolute\",inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.lineBorderRadius,opacity:0,animationName:HV(),animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:\"infinite\",content:'\"\"'}},[`&${t}-rtl${t}-status-active`]:{[`${t}-bg::before`]:{animationName:HV(!0)}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}},DOe=e=>{const{componentCls:t,iconCls:r}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.remainingColor},[`&${t}-circle ${t}-inner`]:{position:\"relative\",lineHeight:1,backgroundColor:\"transparent\"},[`&${t}-circle ${t}-text`]:{position:\"absolute\",insetBlockStart:\"50%\",insetInlineStart:0,width:\"100%\",margin:0,padding:0,color:e.circleTextColor,fontSize:e.circleTextFontSize,lineHeight:1,whiteSpace:\"normal\",textAlign:\"center\",transform:\"translateY(-50%)\",[r]:{fontSize:e.circleIconFontSize}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:\"bottom\"}}}},AOe=e=>{const{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:\"inline-block\",\"&-outer\":{display:\"flex\",flexDirection:\"row\",alignItems:\"center\"},\"&-item\":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.remainingColor,transition:`all ${e.motionDurationSlow}`,\"&-active\":{backgroundColor:e.defaultColor}}}}}},_Oe=e=>{const{componentCls:t,iconCls:r}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${r}`]:{fontSize:e.fontSizeSM}}}},TOe=e=>({circleTextColor:e.colorText,defaultColor:e.colorInfo,remainingColor:e.colorFillSecondary,lineBorderRadius:100,circleTextFontSize:\"1em\",circleIconFontSize:`${e.fontSize/e.fontSizeSM}em`}),IOe=kr(\"Progress\",e=>{const t=e.calc(e.marginXXS).div(2).equal(),r=Sr(e,{progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:\"2.4s\"});return[EOe(r),DOe(r),AOe(r),_Oe(r)]},TOe);var kOe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const ROe=e=>{let t=[];return Object.keys(e).forEach(r=>{const n=Number.parseFloat(r.replace(/%/g,\"\"));Number.isNaN(n)||t.push({key:n,value:e[r]})}),t=t.sort((r,n)=>r.key-n.key),t.map(({key:r,value:n})=>`${n} ${r}%`).join(\", \")},MOe=(e,t)=>{const{from:r=v0.blue,to:n=v0.blue,direction:a=t===\"rtl\"?\"to left\":\"to right\"}=e,i=kOe(e,[\"from\",\"to\",\"direction\"]);if(Object.keys(i).length!==0){const l=ROe(i),s=`linear-gradient(${a}, ${l})`;return{background:s,[BE]:s}}const o=`linear-gradient(${a}, ${r}, ${n})`;return{background:o,[BE]:o}},POe=e=>{const{prefixCls:t,direction:r,percent:n,size:a,strokeWidth:i,strokeColor:o,strokeLinecap:l=\"round\",children:s,trailColor:u=null,percentPosition:c,success:d}=e,{align:f,type:h}=c,p=o&&typeof o!=\"string\"?MOe(o,r):{[BE]:o,background:o},v=l===\"square\"||l===\"butt\"?0:void 0,g=a??[-1,i||(a===\"small\"?6:8)],[y,b]=W6(g,\"line\",{strokeWidth:i}),x={backgroundColor:u||void 0,borderRadius:v},F=Object.assign(Object.assign({width:`${Af(n)}%`,height:b,borderRadius:v},p),{[bse]:Af(n)/100}),S=OE(e),E={width:`${Af(S)}%`,height:b,borderRadius:v,backgroundColor:d==null?void 0:d.strokeColor},w={width:y<0?\"100%\":y},D=m.createElement(\"div\",{className:`${t}-inner`,style:x},m.createElement(\"div\",{className:ne(`${t}-bg`,`${t}-bg-${h}`),style:F},h===\"inner\"&&s),S!==void 0&&m.createElement(\"div\",{className:`${t}-success-bg`,style:E})),A=h===\"outer\"&&f===\"start\",_=h===\"outer\"&&f===\"end\";return h===\"outer\"&&f===\"center\"?m.createElement(\"div\",{className:`${t}-layout-bottom`},D,s):m.createElement(\"div\",{className:`${t}-outer`,style:w},A&&s,D,_&&s)},OOe=e=>{const{size:t,steps:r,rounding:n=Math.round,percent:a=0,strokeWidth:i=8,strokeColor:o,trailColor:l=null,prefixCls:s,children:u}=e,c=n(r*(a/100)),f=t??[t===\"small\"?2:14,i],[h,p]=W6(f,\"step\",{steps:r,strokeWidth:i}),v=h/r,g=Array.from({length:r});for(let y=0;y<r;y++){const b=Array.isArray(o)?o[y]:o;g[y]=m.createElement(\"div\",{key:y,className:ne(`${s}-steps-item`,{[`${s}-steps-item-active`]:y<=c-1}),style:{backgroundColor:y<=c-1?b:l,width:v,height:p}})}return m.createElement(\"div\",{className:`${s}-steps-outer`},g,u)};var BOe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const NOe=[\"normal\",\"exception\",\"active\",\"success\"],Es=m.forwardRef((e,t)=>{const{prefixCls:r,className:n,rootClassName:a,steps:i,strokeColor:o,percent:l=0,size:s=\"default\",showInfo:u=!0,type:c=\"line\",status:d,format:f,style:h,percentPosition:p={}}=e,v=BOe(e,[\"prefixCls\",\"className\",\"rootClassName\",\"steps\",\"strokeColor\",\"percent\",\"size\",\"showInfo\",\"type\",\"status\",\"format\",\"style\",\"percentPosition\"]),{align:g=\"end\",type:y=\"outer\"}=p,b=Array.isArray(o)?o[0]:o,x=typeof o==\"string\"||Array.isArray(o)?o:void 0,F=m.useMemo(()=>{if(b){const O=typeof b==\"string\"?b:Object.values(b)[0];return new $r(O).isLight()}return!1},[o]),S=m.useMemo(()=>{var O,z;const W=OE(e);return Number.parseInt(W!==void 0?(O=W??0)===null||O===void 0?void 0:O.toString():(z=l??0)===null||z===void 0?void 0:z.toString(),10)},[l,e.success,e.successPercent]),E=m.useMemo(()=>!NOe.includes(d)&&S>=100?\"success\":d||\"normal\",[d,S]),{getPrefixCls:w,direction:D,progress:A}=m.useContext(Ot),_=w(\"progress\",r),[I,M,T]=IOe(_),k=c===\"line\",R=k&&!i,P=m.useMemo(()=>{if(!u)return null;const O=OE(e);let z;const W=f||(j=>`${j}%`),L=k&&F&&y===\"inner\";return y===\"inner\"||f||E!==\"exception\"&&E!==\"success\"?z=W(Af(l),Af(O)):E===\"exception\"?z=k?m.createElement(xd,null):m.createElement(wu,null):E===\"success\"&&(z=k?m.createElement(mm,null):m.createElement(yx,null)),m.createElement(\"span\",{className:ne(`${_}-text`,{[`${_}-text-bright`]:L,[`${_}-text-${g}`]:R,[`${_}-text-${y}`]:R}),title:typeof z==\"string\"?z:void 0},z)},[u,l,S,E,c,_,f]);let B;c===\"line\"?B=i?m.createElement(OOe,Object.assign({},e,{strokeColor:x,prefixCls:_,steps:typeof i==\"object\"?i.count:i}),P):m.createElement(POe,Object.assign({},e,{strokeColor:b,prefixCls:_,direction:D,percentPosition:{align:g,type:y}}),P):(c===\"circle\"||c===\"dashboard\")&&(B=m.createElement(wOe,Object.assign({},e,{strokeColor:b,prefixCls:_,progressStatus:E}),P));const N=ne(_,`${_}-status-${E}`,{[`${_}-${c===\"dashboard\"&&\"circle\"||c}`]:c!==\"line\",[`${_}-inline-circle`]:c===\"circle\"&&W6(s,\"circle\")[0]<=20,[`${_}-line`]:R,[`${_}-line-align-${g}`]:R,[`${_}-line-position-${y}`]:R,[`${_}-steps`]:i,[`${_}-show-info`]:u,[`${_}-${s}`]:typeof s==\"string\",[`${_}-rtl`]:D===\"rtl\"},A==null?void 0:A.className,n,a,M,T);return I(m.createElement(\"div\",Object.assign({ref:t,style:Object.assign(Object.assign({},A==null?void 0:A.style),h),className:N,role:\"progressbar\",\"aria-valuenow\":S,\"aria-valuemin\":0,\"aria-valuemax\":100},wn(v,[\"trailColor\",\"strokeWidth\",\"width\",\"gapDegree\",\"gapPosition\",\"strokeLinecap\",\"success\",\"successPercent\"])),B))});var $Oe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M909.1 209.3l-56.4 44.1C775.8 155.1 656.2 92 521.9 92 290 92 102.3 279.5 102 511.5 101.7 743.7 289.8 932 521.9 932c181.3 0 335.8-115 394.6-276.1 1.5-4.2-.7-8.9-4.9-10.3l-56.7-19.5a8 8 0 00-10.1 4.8c-1.8 5-3.8 10-5.9 14.9-17.3 41-42.1 77.8-73.7 109.4A344.77 344.77 0 01655.9 829c-42.3 17.9-87.4 27-133.8 27-46.5 0-91.5-9.1-133.8-27A341.5 341.5 0 01279 755.2a342.16 342.16 0 01-73.7-109.4c-17.9-42.4-27-87.4-27-133.9s9.1-91.5 27-133.9c17.3-41 42.1-77.8 73.7-109.4 31.6-31.6 68.4-56.4 109.3-73.8 42.3-17.9 87.4-27 133.8-27 46.5 0 91.5 9.1 133.8 27a341.5 341.5 0 01109.3 73.8c9.9 9.9 19.2 20.4 27.8 31.4l-60.2 47a8 8 0 003 14.1l175.6 43c5 1.2 9.9-2.6 9.9-7.7l.8-180.9c-.1-6.6-7.8-10.3-13-6.2z\"}}]},name:\"reload\",theme:\"outlined\"},LOe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:$Oe}))},Sm=m.forwardRef(LOe),jOe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M955.7 856l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zM480 416c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v184c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V416zm32 352a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\"}}]},name:\"warning\",theme:\"filled\"},zOe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:jOe}))},HOe=m.forwardRef(zOe);const VOe=()=>m.createElement(\"svg\",{width:\"252\",height:\"294\"},m.createElement(\"title\",null,\"No Found\"),m.createElement(\"g\",{fill:\"none\",fillRule:\"evenodd\"},m.createElement(\"circle\",{cx:\"126.75\",cy:\"128.1\",r:\"126\",fill:\"#E4EBF7\"}),m.createElement(\"circle\",{cx:\"31.55\",cy:\"130.8\",r:\"8.3\",fill:\"#FFF\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"m37 134.3 10.5 6m.9 6.2-12.7 10.8\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M39.9 159.4a5.7 5.7 0 1 1-11.3-1.2 5.7 5.7 0 0 1 11.3 1.2m17.7-16.2a5.7 5.7 0 1 1-11.4-1.1 5.7 5.7 0 0 1 11.4 1.1M99 27h29.8a4.6 4.6 0 1 0 0-9.2H99a4.6 4.6 0 1 0 0 9.2m11.4 18.3h29.8a4.6 4.6 0 0 0 0-9.2h-29.8a4.6 4.6 0 1 0 0 9.2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M112.8 26.9h15.8a4.6 4.6 0 1 0 0 9.1h-15.8a4.6 4.6 0 0 0 0-9.1m71.7 108.8a10 10 0 1 1-19.8-2 10 10 0 0 1 19.8 2\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"m179.3 141.8 12.6 7.1m1.1 7.6-15.2 13\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M184.7 170a6.8 6.8 0 1 1-13.6-1.3 6.8 6.8 0 0 1 13.6 1.4m18.6-16.8a6.9 6.9 0 1 1-13.7-1.4 6.9 6.9 0 0 1 13.7 1.4\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"M152 192.3a2.2 2.2 0 1 1-4.5 0 2.2 2.2 0 0 1 4.4 0zm73.3-76.2a2.2 2.2 0 1 1-4.5 0 2.2 2.2 0 0 1 4.5 0zm-9 35a2.2 2.2 0 1 1-4.4 0 2.2 2.2 0 0 1 4.5 0zM177 107.6a2.2 2.2 0 1 1-4.4 0 2.2 2.2 0 0 1 4.4 0zm18.4-15.4a2.2 2.2 0 1 1-4.5 0 2.2 2.2 0 0 1 4.5 0zm6.8 88.5a2.2 2.2 0 1 1-4.5 0 2.2 2.2 0 0 1 4.5 0z\",strokeWidth:\"2\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"m214.4 153.3-2 20.2-10.8 6m-28-4.7-6.3 9.8H156l-4.5 6.5m23.5-66v-15.7m46 7.8-13 8-15.2-8V94.4\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M166.6 66h-4a4.8 4.8 0 0 1-4.7-4.8 4.8 4.8 0 0 1 4.7-4.7h4a4.8 4.8 0 0 1 4.7 4.7 4.8 4.8 0 0 1-4.7 4.7\"}),m.createElement(\"circle\",{cx:\"204.3\",cy:\"30\",r:\"29.5\",fill:\"#1677ff\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M206 38.4c.5.5.7 1.1.7 2s-.2 1.4-.7 1.9a3 3 0 0 1-2 .7c-.8 0-1.5-.3-2-.8s-.8-1.1-.8-1.9.3-1.4.8-2c.5-.4 1.2-.7 2-.7.7 0 1.4.3 2 .8m4.2-19.5c1.5 1.3 2.2 3 2.2 5.2a7.2 7.2 0 0 1-1.5 4.5l-3 2.7a5 5 0 0 0-1.3 1.7 5.2 5.2 0 0 0-.6 2.4v.5h-4v-.5c0-1.4.1-2.5.6-3.5s1.9-2.5 4.2-4.5l.4-.5a4 4 0 0 0 1-2.6c0-1.2-.4-2-1-2.8-.7-.6-1.6-1-2.9-1-1.5 0-2.6.5-3.3 1.5-.4.5-.6 1-.8 1.9a2 2 0 0 1-2 1.6 2 2 0 0 1-2-2.4c.4-1.6 1-2.8 2.1-3.8a8.5 8.5 0 0 1 6.3-2.3c2.3 0 4.2.6 5.6 2\"}),m.createElement(\"path\",{fill:\"#FFB594\",d:\"M52 76.1s21.8 5.4 27.3 16c5.6 10.7-6.3 9.2-15.7 5C52.8 92 39 85 52 76\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"m90.5 67.5-.5 2.9c-.7.5-4.7-2.7-4.7-2.7l-1.7.8-1.3-5.7s6.8-4.6 9-5c2.4-.5 9.8 1 10.6 2.3 0 0 1.3.4-2.2.6-3.6.3-5 .5-6.8 3.2l-2.4 3.6\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M128 111.4a36.7 36.7 0 0 0-8.9-15.5c-3.5-3-9.3-2.2-11.3-4.2-1.3-1.2-3.2-1.2-3.2-1.2L87.7 87c-2.3-.4-2.1-.7-6-1.4-1.6-1.9-3-1.1-3-1.1l-7-1.4c-1-1.5-2.5-1-2.5-1l-2.4-.9C65 91.2 59 95 59 95c1.8 1.1 15.7 8.3 15.7 8.3l5.1 37.1s-3.3 5.7 1.4 9.1c0 0 19.9-3.7 34.9-.3 0 0 3-2.6 1-8.8.5-3 1.4-8.3 1.7-11.6.4.7 2 1.9 3.1 3.4 0 0 9.4-7.3 11-14a17 17 0 0 1-2.2-2.4c-.5-.8-.3-2-.7-2.8-.7-1-1.8-1.3-2-1.6\"}),m.createElement(\"path\",{fill:\"#CBD1D1\",d:\"M101 290s4.4 2 7.4 1c2.9-1 4.6.7 7.1 1.2 2.6.5 6.9 1.1 11.7-1.3 0-5.5-6.9-4-12-6.7-2.5-1.4-3.7-4.7-3.5-8.8h-9.5s-1.2 10.6-1 14.6\"}),m.createElement(\"path\",{fill:\"#2B0849\",d:\"M101 289.8s2.5 1.3 6.8.7c3-.5 3.7.5 7.4 1 3.8.6 10.8 0 11.9-.9.4 1.1-.4 2-.4 2s-1.5.7-4.8.9c-2 .1-5.8.3-7.6-.5-1.8-1.4-5.2-1.9-5.7-.2-4 1-7.4-.3-7.4-.3l-.1-2.7z\"}),m.createElement(\"path\",{fill:\"#A4AABA\",d:\"M108.3 276h3.1s0 6.7 4.6 8.6c-4.7.6-8.6-2.3-7.7-8.6\"}),m.createElement(\"path\",{fill:\"#CBD1D1\",d:\"M57.5 272.4s-2 7.4-4.4 12.3c-1.8 3.7-4.3 7.5 5.4 7.5 6.7 0 9-.5 7.4-6.6-1.5-6.1.3-13.2.3-13.2h-8.7z\"}),m.createElement(\"path\",{fill:\"#2B0849\",d:\"M51.5 289.8s2 1.2 6.6 1.2c6 0 8.3-1.7 8.3-1.7s.6 1.1-.7 2.2c-1 .8-3.6 1.6-7.4 1.5-4.1 0-5.8-.5-6.7-1.1-.8-.6-.7-1.6-.1-2.1\"}),m.createElement(\"path\",{fill:\"#A4AABA\",d:\"M58.4 274.3s0 1.5-.3 3c-.3 1.4-1 3-1.1 4 0 1.2 4.5 1.7 5.1.1.6-1.5 1.3-6.4 2-7.2.6-.9-5-2.2-5.7.1\"}),m.createElement(\"path\",{fill:\"#7BB2F9\",d:\"m99.7 278.5 13.3.1s1.3-54.5 1.9-64.4c.5-9.9 3.8-43.4 1-63.1l-12.6-.7-22.8.8-1.2 10c0 .5-.7.8-.7 1.4-.1.5.4 1.3.3 2-2.4 14-6.4 33-8.8 46.6 0 .7-1.2 1-1.4 2.7 0 .3.2 1.5 0 1.8-6.8 18.7-10.9 47.8-14.2 61.9h14.6s2.2-8.6 4-17c2.9-12.9 23.2-85 23.2-85l3-.5 1 46.3s-.2 1.2.4 2c.5.8-.6 1.1-.4 2.3l.4 1.8-1 11.8c-.4 4.8 0 39.2 0 39.2\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M76 221.6c1.2.1 4.1-2 7-5m23.4 8.5s2.7-1 6-3.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M107.3 222.1s2.7-1.1 6-3.9\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M74.7 224.8s2.7-.6 6.5-3.4m4.8-69.8c-.2 3.1.3 8.6-4.3 9.2m22-11s0 14-1.4 15.1a15 15 0 0 1-3 2m.5-16.5s0 13-1.2 24.4m-5 1.1s7.3-1.7 9.5-1.7M74.3 206a212 212 0 0 1-1 4.5s-1.4 1.9-1 3.8c.5 2-1 2-5 15.4A353 353 0 0 0 61 257l-.2 1.2m14.9-60.5a321 321 0 0 1-.9 4.8m7.8-50.4-1.2 10.5s-1.1.1-.5 2.2c.1 1.4-2.7 15.8-5.2 30.5m-19.6 79h13.3\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#192064\",d:\"M116.2 148.2s-17-3-35.9.2c.2 2.5 0 4.2 0 4.2s14.7-2.8 35.7-.3c.3-2.4.2-4 .2-4\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M106.3 151.2v-5a.8.8 0 0 0-.8-.8h-7.8a.8.8 0 0 0-.8.8v5a.8.8 0 0 0 .8.8h7.8a.8.8 0 0 0 .8-.8\"}),m.createElement(\"path\",{fill:\"#192064\",d:\"M105.2 150.2v-3a.6.6 0 0 0-.6-.7 94.3 94.3 0 0 0-5.9 0 .7.7 0 0 0-.6.6v3.1a.6.6 0 0 0 .6.7 121.1 121.1 0 0 1 5.8 0c.4 0 .7-.3.7-.7\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M100.3 275.4h12.3m-11.2-4.9.1 6.5m0-12.5a915.8 915.8 0 0 0 0 4.4m-.5-94 .9 44.7s.7 1.6-.2 2.7c-1 1.1 2.4.7.9 2.2-1.6 1.6.9 1.2 0 3.4-.6 1.5-1 21.1-1.1 35.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M46.9 83.4s-.5 6 7.2 5.6c11.2-.7 9.2-9.4 31.5-21.7-.7-2.7-2.4-4.7-2.4-4.7s-11 3-22.6 8c-6.8 3-13.4 6.4-13.7 12.8m57.6 7.7.9-5.4-8.9-11.4-5 5.3-1.8 7.9a.3.3 0 0 0 .1.3c1 .8 6.5 5 14.4 3.5a.3.3 0 0 0 .3-.2\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M94 79.4s-4.6-2.9-2.5-6.9c1.6-3 4.5 1.2 4.5 1.2s.5-3.7 3.1-3.7c.6-1 1.6-4.1 1.6-4.1l13.5 3c0 5.3-2.3 19.5-7.8 20-8.9.6-12.5-9.5-12.5-9.5\"}),m.createElement(\"path\",{fill:\"#520038\",d:\"M113.9 73.4c2.6-2 3.4-9.7 3.4-9.7s-2.4-.5-6.6-2c-4.7-2.1-12.8-4.8-17.5 1-9.6 3.2-2 19.8-2 19.8l2.7-3s-4-3.3-2-6.3c2-3.5 3.8 1 3.8 1s.7-2.3 3.6-3.3c.4-.7 1-2.6 1.4-3.8a1 1 0 0 1 1.3-.7l11.4 2.6c.5.2.8.7.8 1.2l-.3 3.2z\"}),m.createElement(\"path\",{fill:\"#552950\",d:\"M105 76c-.1.7-.6 1.1-1 1-.6 0-.9-.6-.8-1.2.1-.6.6-1 1-1 .6 0 .9.7.8 1.3m7.1 1.6c0 .6-.5 1-1 1-.5-.1-.8-.7-.7-1.3 0-.6.5-1 1-1 .5.1.8.7.7 1.3\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"m110.1 74.8-.9 1.7-.3 4.3h-2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#5C2552\",d:\"M110.8 74.5s1.8-.7 2.6.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M92.4 74.3s.5-1.1 1.1-.7c.6.4 1.3 1.4.6 2-.8.5.1 1.6.1 1.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#5C2552\",d:\"M103.3 73s1.8 1 4.1.9\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M103.7 81.8s2.2 1.2 4.4 1.2m-3.5 1.3s1 .4 1.6.3m-11.5-3.4s2.3 7.4 10.4 7.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M81.5 89.4s.4 5.6-5 12.8M69 82.7s-.7 9.2-8.2 14.2m68.6 26s-5.3 7.4-9.4 10.7m-.7-26.3s.5 4.4-2.1 32\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#F2D7AD\",d:\"M150 151.2h-49.8a1 1 0 0 1-1-1v-31.7c0-.5.4-1 1-1H150c.6 0 1 .5 1 1v31.7a1 1 0 0 1-1 1\"}),m.createElement(\"path\",{fill:\"#F4D19D\",d:\"M150.3 151.2h-19.9v-33.7h20.8v32.8a1 1 0 0 1-1 1\"}),m.createElement(\"path\",{fill:\"#F2D7AD\",d:\"M123.6 127.9H92.9a.5.5 0 0 1-.4-.8l6.4-9.1c.2-.3.5-.5.8-.5h31.1l-7.2 10.4z\"}),m.createElement(\"path\",{fill:\"#CC9B6E\",d:\"M123.7 128.4H99.2v-.5h24.2l7.2-10.2.4.3z\"}),m.createElement(\"path\",{fill:\"#F4D19D\",d:\"M158.3 127.9h-18.7a2 2 0 0 1-1.6-.8l-7.2-9.6h20c.5 0 1 .3 1.2.6l6.7 9a.5.5 0 0 1-.4.8\"}),m.createElement(\"path\",{fill:\"#CC9B6E\",d:\"M157.8 128.5h-19.3l-7.9-10.5.4-.3 7.7 10.3h19.1zm-27.2 22.2v-8.2h.4v8.2zm-.1-10.9v-21.4h.4l.1 21.4zm-18.6 1.1-.5-.1 1.5-5.2.5.2zm-3.5.2-2.6-3 2.6-3.4.4.3-2.4 3.1 2.4 2.6zm8.2 0-.4-.4 2.4-2.6-2.4-3 .4-.4 2.7 3.4z\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"m154.3 131.9-3.1-2v3.5l-1 .1a85 85 0 0 1-4.8.3c-1.9 0-2.7 2.2 2.2 2.6l-2.6-.6s-2.2 1.3.5 2.3c0 0-1.6 1.2.6 2.6-.6 3.5 5.2 4 7 3.6a6.1 6.1 0 0 0 4.6-5.2 8 8 0 0 0-3.4-7.2\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M153.7 133.6s-6.5.4-8.4.3c-1.8 0-1.9 2.2 2.4 2.3 3.7.2 5.4 0 5.4 0\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M145.2 135.9c-1.9 1.3.5 2.3.5 2.3s3.5 1 6.8.6m-.6 2.9s-6.3.1-6.7-2.1c-.3-1.4.4-1.4.4-1.4m.5 2.7s-1 3.1 5.5 3.5m-.4-14.5v3.5M52.8 89.3a18 18 0 0 0 13.6-7.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#5BA02E\",d:\"M168.6 248.3a6.6 6.6 0 0 1-6.7-6.6v-66.5a6.6 6.6 0 1 1 13.3 0v66.5a6.6 6.6 0 0 1-6.6 6.6\"}),m.createElement(\"path\",{fill:\"#92C110\",d:\"M176.5 247.7a6.6 6.6 0 0 1-6.6-6.7v-33.2a6.6 6.6 0 1 1 13.3 0V241a6.6 6.6 0 0 1-6.7 6.7\"}),m.createElement(\"path\",{fill:\"#F2D7AD\",d:\"M186.4 293.6H159a3.2 3.2 0 0 1-3.2-3.2v-46.1a3.2 3.2 0 0 1 3.2-3.2h27.5a3.2 3.2 0 0 1 3.2 3.2v46.1a3.2 3.2 0 0 1-3.2 3.2\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M89 89.5s7.8 5.4 16.6 2.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}))),WOe=()=>m.createElement(\"svg\",{width:\"254\",height:\"294\"},m.createElement(\"title\",null,\"Server Error\"),m.createElement(\"g\",{fill:\"none\",fillRule:\"evenodd\"},m.createElement(\"path\",{fill:\"#E4EBF7\",d:\"M0 128.1v-2C0 56.5 56.3.2 125.7.2h2.1C197.2.3 253.5 56.6 253.5 126v2.1c0 69.5-56.3 125.7-125.7 125.7h-2.1A125.7 125.7 0 0 1 0 128.1\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M40 132.1a8.3 8.3 0 1 1-16.6-1.7 8.3 8.3 0 0 1 16.6 1.7\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"m37.2 135.6 10.5 6m1 6.3-12.8 10.8\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M40.1 160.8a5.7 5.7 0 1 1-11.3-1.1 5.7 5.7 0 0 1 11.3 1.1M58 144.6a5.7 5.7 0 1 1-11.4-1.2 5.7 5.7 0 0 1 11.4 1.2M99.7 27.4h30a4.6 4.6 0 1 0 0-9.2h-30a4.6 4.6 0 0 0 0 9.2M111 46h30a4.6 4.6 0 1 0 0-9.3h-30a4.6 4.6 0 1 0 0 9.3m2.5-18.6h16a4.6 4.6 0 1 0 0 9.3h-16a4.6 4.6 0 0 0 0-9.3m36.7 42.7h-4a4.8 4.8 0 0 1-4.8-4.8 4.8 4.8 0 0 1 4.8-4.8h4a4.8 4.8 0 0 1 4.7 4.8 4.8 4.8 0 0 1-4.7 4.8\"}),m.createElement(\"circle\",{cx:\"201.35\",cy:\"30.2\",r:\"29.7\",fill:\"#FF603B\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"m203.6 19.4-.7 15a1.5 1.5 0 0 1-3 0l-.7-15a2.2 2.2 0 1 1 4.4 0m-.3 19.4c.5.5.8 1.1.8 1.9s-.3 1.4-.8 1.9a3 3 0 0 1-2 .7 2.5 2.5 0 0 1-1.8-.7c-.6-.6-.8-1.2-.8-2 0-.7.2-1.3.8-1.8.5-.5 1.1-.7 1.8-.7.8 0 1.5.2 2 .7\"}),m.createElement(\"path\",{fill:\"#FFB594\",d:\"M119.3 133.3c4.4-.6 3.6-1.2 4-4.8.8-5.2-3-17-8.2-25.1-1-10.7-12.6-11.3-12.6-11.3s4.3 5 4.2 16.2c1.4 5.3.8 14.5.8 14.5s5.3 11.4 11.8 10.5\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M101 91.6s1.4-.6 3.2.6c8 1.4 10.3 6.7 11.3 11.4 1.8 1.2 1.8 2.3 1.8 3.5l1.5 3s-7.2 1.7-11 6.7c-1.3-6.4-6.9-25.2-6.9-25.2\"}),m.createElement(\"path\",{fill:\"#FFB594\",d:\"m94 90.5 1-5.8-9.2-11.9-5.2 5.6-2.6 9.9s8.4 5 16 2.2\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M83 78.2s-4.6-2.9-2.5-6.9c1.6-3 4.5 1.2 4.5 1.2s.5-3.7 3.2-3.7c.5-1 1.5-4.2 1.5-4.2l13.6 3.2c0 5.2-2.3 19.5-7.9 20-8.9.6-12.5-9.6-12.5-9.6\"}),m.createElement(\"path\",{fill:\"#520038\",d:\"M103 72.2c2.6-2 3.5-9.7 3.5-9.7s-2.5-.5-6.7-2c-4.7-2.2-12.9-4.9-17.6.9-9.5 4.4-2 20-2 20l2.7-3.1s-4-3.3-2.1-6.3c2.2-3.5 4 1 4 1s.6-2.3 3.5-3.3c.4-.7 1-2.7 1.5-3.8A1 1 0 0 1 91 65l11.5 2.7c.5.1.8.6.8 1.2l-.3 3.2z\"}),m.createElement(\"path\",{fill:\"#552950\",d:\"M101.2 76.5c0 .6-.6 1-1 1-.5-.1-.9-.7-.8-1.3.1-.6.6-1 1.1-1 .5.1.8.7.7 1.3m-7-1.4c0 .6-.5 1-1 1-.5-.1-.8-.7-.7-1.3 0-.6.6-1 1-1 .5.1.9.7.8 1.3\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"m99.2 73.6-.9 1.7-.3 4.3h-2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#5C2552\",d:\"M100 73.3s1.7-.7 2.4.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M81.4 73s.4-1 1-.6c.7.4 1.4 1.4.6 2s.2 1.6.2 1.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#5C2552\",d:\"M92.3 71.7s1.9 1.1 4.2 1\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M92.7 80.6s2.3 1.2 4.4 1.2m-3.4 1.4s1 .4 1.5.3M83.7 80s1.8 6.6 9.2 8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M95.5 91.7s-1 2.8-8.2 2c-7.3-.6-10.3-5-10.3-5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M78.1 87.5s6.6 5 16.5 2.5c0 0 9.6 1 11.5 5.3 5.4 11.8.6 36.8 0 40 3.5 4-.4 8.4-.4 8.4-15.7-3.5-35.8-.6-35.8-.6-4.9-3.5-1.3-9-1.3-9l-6.2-23.8c-2.5-15.2.8-19.8 3.5-20.7 3-1 8-1.3 8-1.3.6 0 1.1 0 1.4-.2 2.4-1.3 2.8-.6 2.8-.6\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M65.8 89.8s-6.8.5-7.6 8.2c-.4 8.8 3 11 3 11s6.1 22 16.9 22.9c8.4-2.2 4.7-6.7 4.6-11.4-.2-11.3-7-17-7-17s-4.3-13.7-9.9-13.7\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M71.7 124.2s.9 11.3 9.8 6.5c4.8-2.5 7.6-13.8 9.8-22.6A201 201 0 0 0 94 96l-5-1.7s-2.4 5.6-7.7 12.3c-4.4 5.5-9.2 11.1-9.5 17.7\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M108.5 105.2s1.7 2.7-2.4 30.5c2.4 2.2 1 6-.2 7.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M123.3 131.5s-.5 2.8-11.8 2c-15.2-1-25.3-3.2-25.3-3.2l.9-5.8s.7.2 9.7-.1c11.9-.4 18.7-6 25-1 4 3.2 1.5 8.1 1.5 8.1\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M70.2 91s-5.6-4.8-11 2.7c-3.3 7.2.5 15.2 2.6 19.5-.3 3.8 2.4 4.3 2.4 4.3s0 1 1.5 2.7c4-7 6.7-9.1 13.7-12.5-.3-.7-1.9-3.3-1.8-3.8.2-1.7-1.3-2.6-1.3-2.6s-.3-.2-1.2-2.8c-.8-2.3-2-5.1-4.9-7.5\"}),m.createElement(\"path\",{fill:\"#CBD1D1\",d:\"M90.2 288s4.9 2.3 8.3 1.2c3.2-1 5.2.7 8 1.3a20 20 0 0 0 13.3-1.4c-.2-6.2-7.8-4.5-13.6-7.6-2.9-1.6-4.2-5.3-4-10H91.5s-1.5 12-1.3 16.5\"}),m.createElement(\"path\",{fill:\"#2B0849\",d:\"M90.2 287.8s2.8 1.5 7.6.8c3.5-.5 3.3.6 7.5 1.3 4.2.6 13-.2 14.3-1.2.5 1.3-.4 2.4-.4 2.4s-1.7.6-5.4.9c-2.3.1-8.1.3-10.2-.6-2-1.6-4.9-1.5-6-.3-4.5 1.1-7.2-.3-7.2-.3l-.2-3z\"}),m.createElement(\"path\",{fill:\"#A4AABA\",d:\"M98.4 272.3h3.5s0 7.5 5.2 9.6c-5.3.7-9.7-2.6-8.7-9.6\"}),m.createElement(\"path\",{fill:\"#CBD1D1\",d:\"M44.4 272s-2.2 7.8-4.7 13c-1.9 3.8-4.4 7.8 5.8 7.8 7 0 9.3-.5 7.7-7-1.6-6.3.3-13.8.3-13.8h-9z\"}),m.createElement(\"path\",{fill:\"#2B0849\",d:\"M38 290.3s2.3 1.2 7 1.2c6.4 0 8.7-1.7 8.7-1.7s.6 1.1-.7 2.2c-1 1-3.8 1.7-7.7 1.7-4.4 0-6.1-.6-7-1.3-1-.5-.8-1.6-.2-2.1\"}),m.createElement(\"path\",{fill:\"#A4AABA\",d:\"M45.3 274s0 1.6-.3 3.1-1.1 3.3-1.2 4.4c0 1.2 4.8 1.6 5.4 0 .7-1.6 1.4-6.8 2-7.6.7-.9-5.1-2.2-5.9.1\"}),m.createElement(\"path\",{fill:\"#7BB2F9\",d:\"M89.5 277.6h13.9s1.3-56.6 1.9-66.8c.6-10.3 4-45.1 1-65.6l-13-.7-23.7.8-1.3 10.4c0 .5-.7.9-.8 1.4 0 .6.5 1.4.4 2L59.6 206c-.1.7-1.3 1-1.5 2.8 0 .3.2 1.6.1 1.8-7.1 19.5-12.2 52.6-15.6 67.2h15.1L62 259c3-13.3 24-88.3 24-88.3l3.2-1-.2 48.6s-.2 1.3.4 2.1c.5.8-.6 1.2-.4 2.4l.4 1.8-1 12.4c-.4 4.9 1.2 40.7 1.2 40.7\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M64.6 218.9c1.2 0 4.2-2.1 7.2-5.1m24.2 8.7s3-1.1 6.4-4\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M97 219.4s2.9-1.2 6.3-4\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M63.2 222.1s2.7-.6 6.7-3.5m5-72.4c-.3 3.2.3 8.8-4.5 9.4m22.8-11.3s.1 14.6-1.4 15.7c-2.3 1.7-3 2-3 2m.4-17s.3 13-1 25m-4.7.7s6.8-1 9.1-1M46 270l-.9 4.6m1.8-11.3-.8 4.1m16.6-64.9c-.3 1.6 0 2-.4 3.4 0 0-2.8 2-2.3 4s-.3 3.4-4.5 17.2c-1.8 5.8-4.3 19-6.2 28.3l-1.1 5.8m16-67-1 4.9m8.1-52.3-1.2 10.9s-1.2.1-.5 2.3c0 1.4-2.8 16.4-5.4 31.6m-20 82.1h13.9\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#192064\",d:\"M106.2 142.1c-3-.5-18.8-2.7-36.2.2a.6.6 0 0 0-.6.7v3a.6.6 0 0 0 .8.6c3.3-.5 17-2.4 35.6-.3.4 0 .7-.2.7-.5.2-1.4.2-2.5.2-3a.6.6 0 0 0-.5-.7\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M96.4 145.3v-5.1a.8.8 0 0 0-.8-.9 114.1 114.1 0 0 0-8.1 0 .8.8 0 0 0-.9.8v5.1c0 .5.4.9.9.9h8a.8.8 0 0 0 .9-.8\"}),m.createElement(\"path\",{fill:\"#192064\",d:\"M95.2 144.3v-3.2a.7.7 0 0 0-.6-.7h-6.1a.7.7 0 0 0-.6.7v3.2c0 .4.3.7.6.7h6c.4 0 .7-.3.7-.7\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M90.1 273.5h12.8m-11.7-3.7v6.3m-.3-12.6v4.5m-.5-97.6 1 46.4s.7 1.6-.3 2.8c-.9 1.1 2.6.7 1 2.3-1.7 1.6.9 1.2 0 3.5-.6 1.6-1 22-1.2 36.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M73.7 98.7 76 103s2 .8 1.8 2.7l.8 2.2m-14.3 8.7c.2-1 2.2-7.1 12.6-10.5m.7-16s7.7 6 16.5 2.7\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M92 87s5.5-.9 7.5-4.6c1.3-.3.8 2.2-.3 3.7l-1 1.5s.2.3.2.9c0 .6-.2.6-.3 1v1l-.4 1c-.1.2 0 .6-.2.9-.2.4-1.6 1.8-2.6 2.8-3.8 3.6-5 1.7-6-.4-1-1.8-.7-5.1-.9-6.9-.3-2.9-2.6-3-2-4.4.4-.7 3 .7 3.4 1.8.7 2 2.9 1.8 2.6 1.7\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M99.8 82.4c-.5.1-.3.3-1 1.3-.6 1-4.8 2.9-6.4 3.2-2.5.5-2.2-1.6-4.2-2.9-1.7-1-3.6-.6-1.4 1.4 1 1 1 1.1 1.4 3.2.3 1.5-.7 3.7.7 5.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\".8\"}),m.createElement(\"path\",{stroke:\"#E59788\",d:\"M79.5 108.7c-2 2.9-4.2 6.1-5.5 8.7\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\".8\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M87.7 124.8s-2-2-5.1-2.8c-3-.7-3.6-.1-5.5.1-2 .3-4-.9-3.7.7.3 1.7 5 1 5.2 2.1.2 1.1-6.3 2.8-8.3 2.2-.8.8.5 1.9 2 2.2.3 1.5 2.3 1.5 2.3 1.5s.7 1 2.6 1.1c2.5 1.3 9-.7 11-1.5 2-.9-.5-5.6-.5-5.6\"}),m.createElement(\"path\",{stroke:\"#E59788\",d:\"M73.4 122.8s.7 1.2 3.2 1.4c2.3.3 2.6.6 2.6.6s-2.6 3-9.1 2.3m2.3 2.2s3.8 0 5-.7m-2.4 2.2s2 0 3.3-.6m-1 1.7s1.7 0 2.8-.5m-6.8-9s-.6-1.1 1.3-.5c1.7.5 2.8 0 5.1.1 1.4.1 3-.2 4 .2 1.6.8 3.6 2.2 3.6 2.2s10.6 1.2 19-1.1M79 108s-8.4 2.8-13.2 12.1\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\".8\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M109.3 112.5s3.4-3.6 7.6-4.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#E59788\",d:\"M107.4 123s9.7-2.7 11.4-.9\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\".8\"}),m.createElement(\"path\",{stroke:\"#BFCDDD\",d:\"m194.6 83.7 4-4M187.2 91l3.7-3.6m.9-3-4.5-4.7m11.2 11.5-4.2-4.3m-65 76.3 3.7-3.7M122.3 170l3.5-3.5m.8-2.9-4.3-4.2M133 170l-4-4\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#A3B4C6\",d:\"M190.2 211.8h-1.6a4 4 0 0 1-4-4v-32.1a4 4 0 0 1 4-4h1.6a4 4 0 0 1 4 4v32a4 4 0 0 1-4 4\"}),m.createElement(\"path\",{fill:\"#A3B4C6\",d:\"M237.8 213a4.8 4.8 0 0 1-4.8 4.8h-86.6a4.8 4.8 0 0 1 0-9.6H233a4.8 4.8 0 0 1 4.8 4.8\"}),m.createElement(\"path\",{fill:\"#A3B4C6\",d:\"M154.1 190.1h70.5v-84.6h-70.5z\"}),m.createElement(\"path\",{fill:\"#BFCDDD\",d:\"M225 190.1h-71.2a3.2 3.2 0 0 1-3.2-3.2v-19a3.2 3.2 0 0 1 3.2-3.2h71.1a3.2 3.2 0 0 1 3.2 3.2v19a3.2 3.2 0 0 1-3.2 3.2m0-59.3h-71.1a3.2 3.2 0 0 1-3.2-3.2v-19a3.2 3.2 0 0 1 3.2-3.2h71.1a3.2 3.2 0 0 1 3.2 3.3v19a3.2 3.2 0 0 1-3.2 3.1\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M159.6 120.5a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m7.4 0a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m7.4 0a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m48.1 0h-22.4a.8.8 0 0 1-.8-.8v-3.2c0-.4.3-.8.8-.8h22.4c.5 0 .8.4.8.8v3.2c0 .5-.3.8-.8.8\"}),m.createElement(\"path\",{fill:\"#BFCDDD\",d:\"M225 160.5h-71.2a3.2 3.2 0 0 1-3.2-3.2v-19a3.2 3.2 0 0 1 3.2-3.2h71.1a3.2 3.2 0 0 1 3.2 3.2v19a3.2 3.2 0 0 1-3.2 3.2\"}),m.createElement(\"path\",{stroke:\"#7C90A5\",d:\"M173.5 130.8h49.3m-57.8 0h6m-15 0h6.7m11.1 29.8h49.3m-57.7 0h6m-15.8 0h6.7\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M159.6 151a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m7.4 0a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m7.4 0a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m48.1 0h-22.4a.8.8 0 0 1-.8-.8V147c0-.4.3-.8.8-.8h22.4c.5 0 .8.4.8.8v3.2c0 .5-.3.8-.8.8m-63 29a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m7.5 0a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m7.4 0a2.4 2.4 0 1 1 0-4.8 2.4 2.4 0 0 1 0 4.8m48.1 0h-22.4a.8.8 0 0 1-.8-.8V176c0-.5.3-.8.8-.8h22.4c.5 0 .8.3.8.8v3.2c0 .4-.3.8-.8.8\"}),m.createElement(\"path\",{fill:\"#BFCDDD\",d:\"M203 221.1h-27.3a2.4 2.4 0 0 1-2.4-2.4v-11.4a2.4 2.4 0 0 1 2.4-2.5H203a2.4 2.4 0 0 1 2.4 2.5v11.4a2.4 2.4 0 0 1-2.4 2.4\"}),m.createElement(\"path\",{stroke:\"#A3B4C6\",d:\"M177.3 207.2v11.5m23.8-11.5v11.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#5BA02E\",d:\"M162.9 267.9a9.4 9.4 0 0 1-9.4-9.4v-14.8a9.4 9.4 0 0 1 18.8 0v14.8a9.4 9.4 0 0 1-9.4 9.4\"}),m.createElement(\"path\",{fill:\"#92C110\",d:\"M171.2 267.8a9.4 9.4 0 0 1-9.4-9.4V255a9.4 9.4 0 0 1 18.8 0v3.4a9.4 9.4 0 0 1-9.4 9.4\"}),m.createElement(\"path\",{fill:\"#F2D7AD\",d:\"M181.3 293.7h-27.7a3.2 3.2 0 0 1-3.2-3.2v-20.7a3.2 3.2 0 0 1 3.2-3.2h27.7a3.2 3.2 0 0 1 3.2 3.2v20.7a3.2 3.2 0 0 1-3.2 3.2\"}))),GOe=e=>{const{componentCls:t,lineHeightHeading3:r,iconCls:n,padding:a,paddingXL:i,paddingXS:o,paddingLG:l,marginXS:s,lineHeight:u}=e;return{[t]:{padding:`${re(e.calc(l).mul(2).equal())} ${re(i)}`,\"&-rtl\":{direction:\"rtl\"}},[`${t} ${t}-image`]:{width:e.imageWidth,height:e.imageHeight,margin:\"auto\"},[`${t} ${t}-icon`]:{marginBottom:l,textAlign:\"center\",[`& > ${n}`]:{fontSize:e.iconFontSize}},[`${t} ${t}-title`]:{color:e.colorTextHeading,fontSize:e.titleFontSize,lineHeight:r,marginBlock:s,textAlign:\"center\"},[`${t} ${t}-subtitle`]:{color:e.colorTextDescription,fontSize:e.subtitleFontSize,lineHeight:u,textAlign:\"center\"},[`${t} ${t}-content`]:{marginTop:l,padding:`${re(l)} ${re(e.calc(a).mul(2.5).equal())}`,backgroundColor:e.colorFillAlter},[`${t} ${t}-extra`]:{margin:e.extraMargin,textAlign:\"center\",\"& > *\":{marginInlineEnd:o,\"&:last-child\":{marginInlineEnd:0}}}}},UOe=e=>{const{componentCls:t,iconCls:r}=e;return{[`${t}-success ${t}-icon > ${r}`]:{color:e.resultSuccessIconColor},[`${t}-error ${t}-icon > ${r}`]:{color:e.resultErrorIconColor},[`${t}-info ${t}-icon > ${r}`]:{color:e.resultInfoIconColor},[`${t}-warning ${t}-icon > ${r}`]:{color:e.resultWarningIconColor}}},KOe=e=>[GOe(e),UOe(e)],YOe=e=>KOe(e),qOe=e=>({titleFontSize:e.fontSizeHeading3,subtitleFontSize:e.fontSize,iconFontSize:e.fontSizeHeading3*3,extraMargin:`${e.paddingLG}px 0 0 0`}),XOe=kr(\"Result\",e=>{const t=e.colorInfo,r=e.colorError,n=e.colorSuccess,a=e.colorWarning,i=Sr(e,{resultInfoIconColor:t,resultErrorIconColor:r,resultSuccessIconColor:n,resultWarningIconColor:a,imageWidth:250,imageHeight:295});return[YOe(i)]},qOe),JOe=()=>m.createElement(\"svg\",{width:\"251\",height:\"294\"},m.createElement(\"title\",null,\"Unauthorized\"),m.createElement(\"g\",{fill:\"none\",fillRule:\"evenodd\"},m.createElement(\"path\",{fill:\"#E4EBF7\",d:\"M0 129v-2C0 58.3 55.6 2.7 124.2 2.7h2c68.6 0 124.2 55.6 124.2 124.1v2.1c0 68.6-55.6 124.2-124.1 124.2h-2.1A124.2 124.2 0 0 1 0 129\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M41.4 133a8.2 8.2 0 1 1-16.4-1.7 8.2 8.2 0 0 1 16.4 1.6\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"m38.7 136.4 10.4 5.9m.9 6.2-12.6 10.7\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M41.5 161.3a5.6 5.6 0 1 1-11.2-1.2 5.6 5.6 0 0 1 11.2 1.2m17.7-16a5.7 5.7 0 1 1-11.3-1.2 5.7 5.7 0 0 1 11.3 1.2m41.2-115.8H130a4.6 4.6 0 1 0 0-9.1h-29.6a4.6 4.6 0 0 0 0 9.1m11.3 18.3h29.7a4.6 4.6 0 1 0 0-9.2h-29.7a4.6 4.6 0 1 0 0 9.2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M114 29.5h15.8a4.6 4.6 0 1 0 0 9.1H114a4.6 4.6 0 0 0 0-9.1m71.3 108.2a10 10 0 1 1-19.8-2 10 10 0 0 1 19.8 2\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"m180.2 143.8 12.5 7.1m1.1 7.5-15.1 13\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M185.6 172a6.8 6.8 0 1 1-13.6-1.4 6.8 6.8 0 0 1 13.5 1.3m18.6-16.6a6.8 6.8 0 1 1-13.6-1.4 6.8 6.8 0 0 1 13.6 1.4\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"M153 194a2.2 2.2 0 1 1-4.4 0 2.2 2.2 0 0 1 4.4 0zm73-75.8a2.2 2.2 0 1 1-4.5 0 2.2 2.2 0 0 1 4.4 0zm-9 34.9a2.2 2.2 0 1 1-4.3 0 2.2 2.2 0 0 1 4.4 0zm-39.2-43.3a2.2 2.2 0 1 1-4.4 0 2.2 2.2 0 0 1 4.4 0zm18.3-15.3a2.2 2.2 0 1 1-4.4 0 2.2 2.2 0 0 1 4.4 0zm6.7 88a2.2 2.2 0 1 1-4.4 0 2.2 2.2 0 0 1 4.4 0z\",strokeWidth:\"2\"}),m.createElement(\"path\",{stroke:\"#FFF\",d:\"m215.1 155.3-1.9 20-10.8 6m-27.8-4.7-6.3 9.8H157l-4.5 6.4m23.4-65.5v-15.7m45.6 7.8-12.8 7.9-15.2-7.9V96.7\",strokeWidth:\"2\"}),m.createElement(\"path\",{fill:\"#A26EF4\",d:\"M180.7 29.3a29.3 29.3 0 1 1 58.6 0 29.3 29.3 0 0 1-58.6 0\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"m221.4 41.7-21.5-.1a1.7 1.7 0 0 1-1.7-1.8V27.6a1.7 1.7 0 0 1 1.8-1.7h21.5c1 0 1.8.9 1.8 1.8l-.1 12.3a1.7 1.7 0 0 1-1.7 1.7\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M215.1 29.2c0 2.6-2 4.6-4.5 4.6a4.6 4.6 0 0 1-4.5-4.7v-6.9c0-2.6 2-4.6 4.6-4.6 2.5 0 4.5 2 4.4 4.7v6.9zm-4.5-14a6.9 6.9 0 0 0-7 6.8v7.3a6.9 6.9 0 0 0 13.8.1V22a6.9 6.9 0 0 0-6.8-6.9zm-43 53.2h-4a4.7 4.7 0 0 1-4.7-4.8 4.7 4.7 0 0 1 4.7-4.7h4a4.7 4.7 0 0 1 4.7 4.8 4.7 4.7 0 0 1-4.7 4.7\"}),m.createElement(\"path\",{fill:\"#5BA02E\",d:\"M168.2 248.8a6.6 6.6 0 0 1-6.6-6.6v-66a6.6 6.6 0 0 1 13.2 0v66a6.6 6.6 0 0 1-6.6 6.6\"}),m.createElement(\"path\",{fill:\"#92C110\",d:\"M176.1 248.2a6.6 6.6 0 0 1-6.6-6.6v-33a6.6 6.6 0 1 1 13.3 0v33a6.6 6.6 0 0 1-6.7 6.6\"}),m.createElement(\"path\",{fill:\"#F2D7AD\",d:\"M186 293.9h-27.4a3.2 3.2 0 0 1-3.2-3.2v-45.9a3.2 3.2 0 0 1 3.2-3.1H186a3.2 3.2 0 0 1 3.2 3.1v46a3.2 3.2 0 0 1-3.2 3\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M82 147.7s6.3-1 17.5-1.3c11.8-.4 17.6 1 17.6 1s3.7-3.8 1-8.3c1.3-12.1 6-32.9.3-48.3-1.1-1.4-3.7-1.5-7.5-.6-1.4.3-7.2-.2-8-.1l-15.3-.4-8-.5c-1.6-.1-4.3-1.7-5.5-.3-.4.4-2.4 5.6-2 16l8.7 35.7s-3.2 3.6 1.2 7\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"m75.8 73.3-1-6.4 12-6.5s7.4-.1 8 1.2c.8 1.3-5.5 1-5.5 1s-1.9 1.4-2.6 2.5c-1.7 2.4-1 6.5-8.4 6-1.7.3-2.5 2.2-2.5 2.2\"}),m.createElement(\"path\",{fill:\"#FFB594\",d:\"M52.4 77.7S66.7 87 77.4 92c1 .5-2 16.2-11.9 11.8-7.4-3.3-20.1-8.4-21.5-14.5-.7-3.2 2.6-7.6 8.4-11.7M142 80s-6.7 3-13.9 6.9c-3.9 2.1-10.1 4.7-12.3 8-6.2 9.3 3.5 11.2 13 7.5 6.6-2.7 29-12.1 13.2-22.4\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"m76.2 66.4 3 3.8S76.4 73 73 76c-7 6.2-12.8 14.3-16 16.4-4 2.7-9.7 3.3-12.2 0-3.5-5.1.5-14.7 31.5-26\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M64.7 85.1s-2.4 8.4-9 14.5c.7.5 18.6 10.5 22.2 10 5.2-.6 6.4-19 1.2-20.5-.8-.2-6-1.3-8.9-2.2-.9-.2-1.6-1.7-3.5-1l-2-.8zm63.7.7s5.3 2 7.3 13.8c-.6.2-17.6 12.3-21.8 7.8-6.6-7-.8-17.4 4.2-18.6 4.7-1.2 5-1.4 10.3-3\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M78.2 94.7s.9 7.4-5 13\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M87.4 94.7s3.1 2.6 10.3 2.6c7.1 0 9-3.5 9-3.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\".9\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"m117.2 68.6-6.8-6.1s-5.4-4.4-9.2-1c-3.9 3.5 4.4 2.2 5.6 4.2 1.2 2.1.9 1.2-2 .5-5.7-1.4-2.1.9 3 5.3 2 1.9 7 1 7 1l2.4-3.9z\"}),m.createElement(\"path\",{fill:\"#FFB594\",d:\"m105.3 91.3-.3-11H89l-.5 10.5c0 .4.2.8.6 1 2 1.3 9.3 5 15.8.4.2-.2.4-.5.4-.9\"}),m.createElement(\"path\",{fill:\"#5C2552\",d:\"M107.6 74.2c.8-1.1 1-9 1-11.9a1 1 0 0 0-1-1l-4.6-.4c-7.7-1-17 .6-18.3 6.3-5.4 5.9-.4 13.3-.4 13.3s2 3.5 4.3 6.8c.8 1 .4-3.8 3-6a47.9 47.9 0 0 1 16-7\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"M88.4 83.2s2.7 6.2 11.6 6.5c7.8.3 9-7 7.5-17.5l-1-5.5c-6-2.9-15.4.6-15.4.6s-.6 2-.2 5.5c-2.3 2-1.8 5.6-1.8 5.6s-1-2-2-2.3c-.9-.3-2 0-2.3 2-1 4.6 3.6 5.1 3.6 5.1\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"m100.8 77.1 1.7-1-1-4.3.7-1.4\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#552950\",d:\"M105.5 74c0 .8-.4 1.4-1 1.4-.4 0-.8-.7-.8-1.4s.5-1.2 1-1.2.9.6.8 1.3m-8 .2c0 .8-.4 1.3-.9 1.3s-.9-.6-.9-1.3c0-.7.5-1.3 1-1.3s1 .6.9 1.3\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M91.1 86.8s5.3 5 12.7 2.3\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#DB836E\",d:\"M99.8 81.9s-3.6.2-1.5-2.8c1.6-1.5 5-.4 5-.4s1 3.9-3.5 3.2\"}),m.createElement(\"path\",{stroke:\"#5C2552\",d:\"M102.9 70.6s2.5.8 3.4.7m-12.4.7s2.5-1.2 4.8-1.1\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.5\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M86.3 77.4s1 .9 1.5 2c-.4.6-1 1.2-.3 1.9m11.8 2.4s2 .2 2.5-.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"m87.8 115.8 15.7-3m-3.3 3 10-2m-43.7-27s-1.6 8.8-6.7 14M128.3 88s3 4 4 11.7\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M64 84.8s-6 10-13.5 10\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\".8\"}),m.createElement(\"path\",{fill:\"#FFC6A0\",d:\"m112.4 66-.2 5.2 12 9.2c4.5 3.6 8.9 7.5 11 8.7 4.8 2.8 8.9 3.3 11 1.8 4.1-2.9 4.4-9.9-8.1-15.3-4.3-1.8-16.1-6.3-25.7-9.7\"}),m.createElement(\"path\",{stroke:\"#DB836E\",d:\"M130.5 85.5s4.6 5.7 11.7 6.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\".8\"}),m.createElement(\"path\",{stroke:\"#E4EBF7\",d:\"M121.7 105.7s-.4 8.6-1.3 13.6\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M115.8 161.5s-3.6-1.5-2.7-7.1\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#CBD1D1\",d:\"M101.5 290.2s4.3 2.1 7.4 1c2.9-.9 4.6.7 7.2 1.3 2.5.5 6.9 1 11.7-1.3 0-5.6-7-4-12-6.8-2.6-1.4-3.8-4.7-3.6-8.8h-9.5s-1.4 10.6-1.2 14.6\"}),m.createElement(\"path\",{fill:\"#2B0849\",d:\"M101.5 290s2.4 1.4 6.8.7c3-.4 3.7.5 7.5 1 3.7.6 10.8 0 11.9-.8.4 1-.4 2-.4 2s-1.5.7-4.8.9c-2 .1-5.8.3-7.7-.5-1.8-1.4-5.2-2-5.7-.3-4 1-7.4-.3-7.4-.3l-.2-2.6z\"}),m.createElement(\"path\",{fill:\"#A4AABA\",d:\"M108.8 276.2h3.1s0 6.7 4.6 8.6c-4.7.6-8.6-2.3-7.7-8.6\"}),m.createElement(\"path\",{fill:\"#CBD1D1\",d:\"M57.6 272.5s-2 7.5-4.5 12.4c-1.8 3.7-4.2 7.6 5.5 7.6 6.7 0 9-.5 7.5-6.7-1.5-6.1.3-13.3.3-13.3h-8.8z\"}),m.createElement(\"path\",{fill:\"#2B0849\",d:\"M51.5 290s2.2 1.2 6.7 1.2c6.1 0 8.3-1.6 8.3-1.6s.6 1-.6 2.1c-1 .9-3.6 1.6-7.4 1.6-4.2 0-6-.6-6.8-1.2-.9-.5-.7-1.6-.2-2\"}),m.createElement(\"path\",{fill:\"#A4AABA\",d:\"M58.5 274.4s0 1.6-.3 3-1 3.1-1.1 4.2c0 1.1 4.5 1.5 5.2 0 .6-1.6 1.3-6.5 1.9-7.3.6-.8-5-2.1-5.7.1\"}),m.createElement(\"path\",{fill:\"#7BB2F9\",d:\"m100.9 277 13.3.1s1.3-54.2 1.8-64c.6-9.9 3.8-43.2 1-62.8l-12.4-.7-22.8.8-1.2 10c0 .4-.6.8-.7 1.3 0 .6.4 1.3.3 2-2.3 14-6.3 32.9-8.7 46.4-.1.6-1.2 1-1.4 2.6 0 .3.2 1.6 0 1.8-6.8 18.7-10.8 47.6-14.1 61.6h14.5s2.2-8.6 4-17a3984 3984 0 0 1 23-84.5l3-.5 1 46.1s-.2 1.2.4 2c.5.8-.6 1.1-.4 2.3l.4 1.7-1 11.9c-.4 4.6 0 39 0 39\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M77.4 220.4c1.2.1 4-2 7-4.9m23.1 8.4s2.8-1 6.1-3.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M108.5 221s2.7-1.2 6-4\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M76.1 223.6s2.6-.6 6.5-3.4m4.7-69.4c-.2 3.1.3 8.5-4.3 9m21.8-10.7s.1 14-1.3 15c-2.2 1.6-3 1.9-3 1.9m.5-16.4s0 12.8-1.2 24.3m-4.9 1s7.2-1.6 9.4-1.6m-28.6 31.5-1 4.5s-1.5 1.8-1 3.7c.4 2-1 2-5 15.3-1.7 5.6-4.4 18.5-6.3 27.5l-4 18.4M77 196.7a313.3 313.3 0 0 1-.8 4.8m7.7-50-1.2 10.3s-1 .2-.5 2.3c.1 1.3-2.6 15.6-5.1 30.2M57.6 273h13.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}),m.createElement(\"path\",{fill:\"#192064\",d:\"M117.4 147.4s-17-3-35.7.2v4.2s14.6-2.9 35.5-.4l.2-4\"}),m.createElement(\"path\",{fill:\"#FFF\",d:\"M107.5 150.4v-5a.8.8 0 0 0-.8-.7H99a.8.8 0 0 0-.7.8v4.8c0 .5.3.9.8.8a140.8 140.8 0 0 1 7.7 0 .8.8 0 0 0 .8-.7\"}),m.createElement(\"path\",{fill:\"#192064\",d:\"M106.4 149.4v-3a.6.6 0 0 0-.6-.7 94.1 94.1 0 0 0-5.8 0 .6.6 0 0 0-.7.7v3c0 .4.3.7.7.7h5.7c.4 0 .7-.3.7-.7\"}),m.createElement(\"path\",{stroke:\"#648BD8\",d:\"M101.5 274h12.3m-11.1-5v6.5m0-12.4v4.3m-.5-93.4.9 44.4s.7 1.6-.2 2.7c-1 1.1 2.4.7.9 2.2-1.6 1.6.9 1.1 0 3.4-.6 1.5-1 21-1.1 35\",strokeLinecap:\"round\",strokeLinejoin:\"round\",strokeWidth:\"1.1\"}))),ZOe={success:mm,error:xd,info:nh,warning:HOe},_x={404:VOe,500:WOe,403:JOe},QOe=Object.keys(_x),eBe=({prefixCls:e,icon:t,status:r})=>{const n=ne(`${e}-icon`);if(QOe.includes(`${r}`)){const i=_x[r];return m.createElement(\"div\",{className:`${n} ${e}-image`},m.createElement(i,null))}const a=m.createElement(ZOe[r]);return t===null||t===!1?null:m.createElement(\"div\",{className:n},t||a)},tBe=({prefixCls:e,extra:t})=>t?m.createElement(\"div\",{className:`${e}-extra`},t):null,wm=({prefixCls:e,className:t,rootClassName:r,subTitle:n,title:a,style:i,children:o,status:l=\"info\",icon:s,extra:u})=>{const{getPrefixCls:c,direction:d,result:f}=m.useContext(Ot),h=c(\"result\",e),[p,v,g]=XOe(h),y=ne(h,`${h}-${l}`,t,f==null?void 0:f.className,r,{[`${h}-rtl`]:d===\"rtl\"},v,g),b=Object.assign(Object.assign({},f==null?void 0:f.style),i);return p(m.createElement(\"div\",{className:y,style:b},m.createElement(eBe,{prefixCls:h,status:l,icon:s}),m.createElement(\"div\",{className:`${h}-title`},a),n&&m.createElement(\"div\",{className:`${h}-subtitle`},n),m.createElement(tBe,{prefixCls:h,extra:u}),o&&m.createElement(\"div\",{className:`${h}-content`},o)))};wm.PRESENTED_IMAGE_403=_x[403];wm.PRESENTED_IMAGE_404=_x[404];wm.PRESENTED_IMAGE_500=_x[500];const rBe=e=>{const{value:t,formatter:r,precision:n,decimalSeparator:a,groupSeparator:i=\"\",prefixCls:o}=e;let l;if(typeof r==\"function\")l=r(t);else{const s=String(t),u=s.match(/^(-?)(\\d*)(\\.(\\d+))?$/);if(!u||s===\"-\")l=s;else{const c=u[1];let d=u[2]||\"0\",f=u[4]||\"\";d=d.replace(/\\B(?=(\\d{3})+(?!\\d))/g,i),typeof n==\"number\"&&(f=f.padEnd(n,\"0\").slice(0,n>0?n:0)),f&&(f=`${a}${f}`),l=[m.createElement(\"span\",{key:\"int\",className:`${o}-content-value-int`},c,d),f&&m.createElement(\"span\",{key:\"decimal\",className:`${o}-content-value-decimal`},f)]}}return m.createElement(\"span\",{className:`${o}-content-value`},l)},nBe=e=>{const{componentCls:t,marginXXS:r,padding:n,colorTextDescription:a,titleFontSize:i,colorTextHeading:o,contentFontSize:l,fontFamily:s}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{[`${t}-title`]:{marginBottom:r,color:a,fontSize:i},[`${t}-skeleton`]:{paddingTop:n},[`${t}-content`]:{color:o,fontSize:l,fontFamily:s,[`${t}-content-value`]:{display:\"inline-block\",direction:\"ltr\"},[`${t}-content-prefix, ${t}-content-suffix`]:{display:\"inline-block\"},[`${t}-content-prefix`]:{marginInlineEnd:r},[`${t}-content-suffix`]:{marginInlineStart:r}}})}},aBe=e=>{const{fontSizeHeading3:t,fontSize:r}=e;return{titleFontSize:r,contentFontSize:t}},iBe=kr(\"Statistic\",e=>{const t=Sr(e,{});return nBe(t)},aBe);var oBe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const nl=m.forwardRef((e,t)=>{const{prefixCls:r,className:n,rootClassName:a,style:i,valueStyle:o,value:l=0,title:s,valueRender:u,prefix:c,suffix:d,loading:f=!1,formatter:h,precision:p,decimalSeparator:v=\".\",groupSeparator:g=\",\",onMouseEnter:y,onMouseLeave:b}=e,x=oBe(e,[\"prefixCls\",\"className\",\"rootClassName\",\"style\",\"valueStyle\",\"value\",\"title\",\"valueRender\",\"prefix\",\"suffix\",\"loading\",\"formatter\",\"precision\",\"decimalSeparator\",\"groupSeparator\",\"onMouseEnter\",\"onMouseLeave\"]),{getPrefixCls:F,direction:S,className:E,style:w}=na(\"statistic\"),D=F(\"statistic\",r),[A,_,I]=iBe(D),M=m.createElement(rBe,{decimalSeparator:v,groupSeparator:g,prefixCls:D,formatter:h,precision:p,value:l}),T=ne(D,{[`${D}-rtl`]:S===\"rtl\"},E,n,a,_,I),k=m.useRef(null);m.useImperativeHandle(t,()=>({nativeElement:k.current}));const R=qn(x,{aria:!0,data:!0});return A(m.createElement(\"div\",Object.assign({},R,{ref:k,className:T,style:Object.assign(Object.assign({},w),i),onMouseEnter:y,onMouseLeave:b}),s&&m.createElement(\"div\",{className:`${D}-title`},s),m.createElement(Cd,{paragraph:!1,loading:f,className:`${D}-skeleton`,active:!0},m.createElement(\"div\",{style:o,className:`${D}-content`},c&&m.createElement(\"span\",{className:`${D}-content-prefix`},c),u?u(M):M,d&&m.createElement(\"span\",{className:`${D}-content-suffix`},d)))))}),lBe=[[\"Y\",1e3*60*60*24*365],[\"M\",1e3*60*60*24*30],[\"D\",1e3*60*60*24],[\"H\",1e3*60*60],[\"m\",1e3*60],[\"s\",1e3],[\"S\",1]];function sBe(e,t){let r=e;const n=/\\[[^\\]]*]/g,a=(t.match(n)||[]).map(s=>s.slice(1,-1)),i=t.replace(n,\"[]\"),o=lBe.reduce((s,[u,c])=>{if(s.includes(u)){const d=Math.floor(r/c);return r-=d*c,s.replace(new RegExp(`${u}+`,\"g\"),f=>{const h=f.length;return d.toString().padStart(h,\"0\")})}return s},i);let l=0;return o.replace(n,()=>{const s=a[l];return l+=1,s})}function uBe(e,t,r){const{format:n=\"\"}=t,a=new Date(e).getTime(),i=Date.now(),o=Math.max(r?a-i:i-a,0);return sBe(o,n)}var cBe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function dBe(e){return new Date(e).getTime()}const xse=e=>{const{value:t,format:r=\"HH:mm:ss\",onChange:n,onFinish:a,type:i}=e,o=cBe(e,[\"value\",\"format\",\"onChange\",\"onFinish\",\"type\"]),l=i===\"countdown\",[s,u]=m.useState(null),c=Pr(()=>{const h=Date.now(),p=dBe(t);u({});const v=l?p-h:h-p;return n==null||n(v),l&&p<h?(a==null||a(),!1):!0});m.useEffect(()=>{let h;const p=()=>Tr.cancel(h),v=()=>{h=Tr(()=>{c()&&v()})};return v(),p},[t,l]),m.useEffect(()=>{u({})},[]);const d=(h,p)=>s?uBe(h,Object.assign(Object.assign({},p),{format:r}),l):\"-\",f=h=>oa(h,{title:void 0});return m.createElement(nl,Object.assign({},o,{value:t,valueRender:f,formatter:d}))},fBe=e=>m.createElement(xse,Object.assign({},e,{type:\"countdown\"})),hBe=m.memo(fBe);nl.Timer=xse;nl.Countdown=hBe;var pBe=[\"prefixCls\",\"className\",\"checked\",\"defaultChecked\",\"disabled\",\"loadingIcon\",\"checkedChildren\",\"unCheckedChildren\",\"onClick\",\"onChange\",\"onKeyDown\"],Cse=m.forwardRef(function(e,t){var r,n=e.prefixCls,a=n===void 0?\"rc-switch\":n,i=e.className,o=e.checked,l=e.defaultChecked,s=e.disabled,u=e.loadingIcon,c=e.checkedChildren,d=e.unCheckedChildren,f=e.onClick,h=e.onChange,p=e.onKeyDown,v=Xt(e,pBe),g=un(!1,{value:o,defaultValue:l}),y=ve(g,2),b=y[0],x=y[1];function F(D,A){var _=b;return s||(_=D,x(_),h==null||h(_,A)),_}function S(D){D.which===It.LEFT?F(!1,D):D.which===It.RIGHT&&F(!0,D),p==null||p(D)}function E(D){var A=F(!b,D);f==null||f(A,D)}var w=ne(a,i,(r={},Z(r,\"\".concat(a,\"-checked\"),b),Z(r,\"\".concat(a,\"-disabled\"),s),r));return m.createElement(\"button\",Ce({},v,{type:\"button\",role:\"switch\",\"aria-checked\":b,disabled:s,className:w,ref:t,onKeyDown:S,onClick:E}),u,m.createElement(\"span\",{className:\"\".concat(a,\"-inner\")},m.createElement(\"span\",{className:\"\".concat(a,\"-inner-checked\")},c),m.createElement(\"span\",{className:\"\".concat(a,\"-inner-unchecked\")},d)))});Cse.displayName=\"Switch\";const mBe=e=>{const{componentCls:t,trackHeightSM:r,trackPadding:n,trackMinWidthSM:a,innerMinMarginSM:i,innerMaxMarginSM:o,handleSizeSM:l,calc:s}=e,u=`${t}-inner`,c=re(s(l).add(s(n).mul(2)).equal()),d=re(s(o).mul(2).equal());return{[t]:{[`&${t}-small`]:{minWidth:a,height:r,lineHeight:re(r),[`${t}-inner`]:{paddingInlineStart:o,paddingInlineEnd:i,[`${u}-checked, ${u}-unchecked`]:{minHeight:r},[`${u}-checked`]:{marginInlineStart:`calc(-100% + ${c} - ${d})`,marginInlineEnd:`calc(100% - ${c} + ${d})`},[`${u}-unchecked`]:{marginTop:s(r).mul(-1).equal(),marginInlineStart:0,marginInlineEnd:0}},[`${t}-handle`]:{width:l,height:l},[`${t}-loading-icon`]:{top:s(s(l).sub(e.switchLoadingIconSize)).div(2).equal(),fontSize:e.switchLoadingIconSize},[`&${t}-checked`]:{[`${t}-inner`]:{paddingInlineStart:i,paddingInlineEnd:o,[`${u}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${u}-unchecked`]:{marginInlineStart:`calc(100% - ${c} + ${d})`,marginInlineEnd:`calc(-100% + ${c} - ${d})`}},[`${t}-handle`]:{insetInlineStart:`calc(100% - ${re(s(l).add(n).equal())})`}},[`&:not(${t}-disabled):active`]:{[`&:not(${t}-checked) ${u}`]:{[`${u}-unchecked`]:{marginInlineStart:s(e.marginXXS).div(2).equal(),marginInlineEnd:s(e.marginXXS).mul(-1).div(2).equal()}},[`&${t}-checked ${u}`]:{[`${u}-checked`]:{marginInlineStart:s(e.marginXXS).mul(-1).div(2).equal(),marginInlineEnd:s(e.marginXXS).div(2).equal()}}}}}}},vBe=e=>{const{componentCls:t,handleSize:r,calc:n}=e;return{[t]:{[`${t}-loading-icon${e.iconCls}`]:{position:\"relative\",top:n(n(r).sub(e.fontSize)).div(2).equal(),color:e.switchLoadingIconColor,verticalAlign:\"top\"},[`&${t}-checked ${t}-loading-icon`]:{color:e.switchColor}}}},gBe=e=>{const{componentCls:t,trackPadding:r,handleBg:n,handleShadow:a,handleSize:i,calc:o}=e,l=`${t}-handle`;return{[t]:{[l]:{position:\"absolute\",top:r,insetInlineStart:r,width:i,height:i,transition:`all ${e.switchDuration} ease-in-out`,\"&::before\":{position:\"absolute\",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,backgroundColor:n,borderRadius:o(i).div(2).equal(),boxShadow:a,transition:`all ${e.switchDuration} ease-in-out`,content:'\"\"'}},[`&${t}-checked ${l}`]:{insetInlineStart:`calc(100% - ${re(o(i).add(r).equal())})`},[`&:not(${t}-disabled):active`]:{[`${l}::before`]:{insetInlineEnd:e.switchHandleActiveInset,insetInlineStart:0},[`&${t}-checked ${l}::before`]:{insetInlineEnd:0,insetInlineStart:e.switchHandleActiveInset}}}}},yBe=e=>{const{componentCls:t,trackHeight:r,trackPadding:n,innerMinMargin:a,innerMaxMargin:i,handleSize:o,calc:l}=e,s=`${t}-inner`,u=re(l(o).add(l(n).mul(2)).equal()),c=re(l(i).mul(2).equal());return{[t]:{[s]:{display:\"block\",overflow:\"hidden\",borderRadius:100,height:\"100%\",paddingInlineStart:i,paddingInlineEnd:a,transition:`padding-inline-start ${e.switchDuration} ease-in-out, padding-inline-end ${e.switchDuration} ease-in-out`,[`${s}-checked, ${s}-unchecked`]:{display:\"block\",color:e.colorTextLightSolid,fontSize:e.fontSizeSM,transition:`margin-inline-start ${e.switchDuration} ease-in-out, margin-inline-end ${e.switchDuration} ease-in-out`,pointerEvents:\"none\",minHeight:r},[`${s}-checked`]:{marginInlineStart:`calc(-100% + ${u} - ${c})`,marginInlineEnd:`calc(100% - ${u} + ${c})`},[`${s}-unchecked`]:{marginTop:l(r).mul(-1).equal(),marginInlineStart:0,marginInlineEnd:0}},[`&${t}-checked ${s}`]:{paddingInlineStart:a,paddingInlineEnd:i,[`${s}-checked`]:{marginInlineStart:0,marginInlineEnd:0},[`${s}-unchecked`]:{marginInlineStart:`calc(100% - ${u} + ${c})`,marginInlineEnd:`calc(-100% + ${u} - ${c})`}},[`&:not(${t}-disabled):active`]:{[`&:not(${t}-checked) ${s}`]:{[`${s}-unchecked`]:{marginInlineStart:l(n).mul(2).equal(),marginInlineEnd:l(n).mul(-1).mul(2).equal()}},[`&${t}-checked ${s}`]:{[`${s}-checked`]:{marginInlineStart:l(n).mul(-1).mul(2).equal(),marginInlineEnd:l(n).mul(2).equal()}}}}}},bBe=e=>{const{componentCls:t,trackHeight:r,trackMinWidth:n}=e;return{[t]:Object.assign(Object.assign(Object.assign(Object.assign({},Hr(e)),{position:\"relative\",display:\"inline-block\",boxSizing:\"border-box\",minWidth:n,height:r,lineHeight:re(r),verticalAlign:\"middle\",background:e.colorTextQuaternary,border:\"0\",borderRadius:100,cursor:\"pointer\",transition:`all ${e.motionDurationMid}`,userSelect:\"none\",[`&:hover:not(${t}-disabled)`]:{background:e.colorTextTertiary}}),pl(e)),{[`&${t}-checked`]:{background:e.switchColor,[`&:hover:not(${t}-disabled)`]:{background:e.colorPrimaryHover}},[`&${t}-loading, &${t}-disabled`]:{cursor:\"not-allowed\",opacity:e.switchDisabledOpacity,\"*\":{boxShadow:\"none\",cursor:\"not-allowed\"}},[`&${t}-rtl`]:{direction:\"rtl\"}})}},xBe=e=>{const{fontSize:t,lineHeight:r,controlHeight:n,colorWhite:a}=e,i=t*r,o=n/2,l=2,s=i-l*2,u=o-l*2;return{trackHeight:i,trackHeightSM:o,trackMinWidth:s*2+l*4,trackMinWidthSM:u*2+l*2,trackPadding:l,handleBg:a,handleSize:s,handleSizeSM:u,handleShadow:`0 2px 4px 0 ${new $r(\"#00230b\").setA(.2).toRgbString()}`,innerMinMargin:s/2,innerMaxMargin:s+l+l*2,innerMinMarginSM:u/2,innerMaxMarginSM:u+l+l*2}},CBe=kr(\"Switch\",e=>{const t=Sr(e,{switchDuration:e.motionDurationMid,switchColor:e.colorPrimary,switchDisabledOpacity:e.opacityLoading,switchLoadingIconSize:e.calc(e.fontSizeIcon).mul(.75).equal(),switchLoadingIconColor:`rgba(0, 0, 0, ${e.opacityLoading})`,switchHandleActiveInset:\"-30%\"});return[bBe(t),yBe(t),gBe(t),vBe(t),mBe(t)]},xBe);var FBe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const SBe=m.forwardRef((e,t)=>{const{prefixCls:r,size:n,disabled:a,loading:i,className:o,rootClassName:l,style:s,checked:u,value:c,defaultChecked:d,defaultValue:f,onChange:h}=e,p=FBe(e,[\"prefixCls\",\"size\",\"disabled\",\"loading\",\"className\",\"rootClassName\",\"style\",\"checked\",\"value\",\"defaultChecked\",\"defaultValue\",\"onChange\"]),[v,g]=un(!1,{value:u??c,defaultValue:d??f}),{getPrefixCls:y,direction:b,switch:x}=m.useContext(Ot),F=m.useContext(Ui),S=(a??F)||i,E=y(\"switch\",r),w=m.createElement(\"div\",{className:`${E}-handle`},i&&m.createElement(cc,{className:`${E}-loading-icon`})),[D,A,_]=CBe(E),I=Ta(n),M=ne(x==null?void 0:x.className,{[`${E}-small`]:I===\"small\",[`${E}-loading`]:i,[`${E}-rtl`]:b===\"rtl\"},o,l,A,_),T=Object.assign(Object.assign({},x==null?void 0:x.style),s),k=(...R)=>{g(R[0]),h==null||h.apply(void 0,R)};return D(m.createElement(ux,{component:\"Switch\",disabled:S},m.createElement(Cse,Object.assign({},p,{checked:v,onChange:k,prefixCls:E,className:M,style:T,disabled:S,ref:t,loadingIcon:w}))))}),G6=SBe;G6.__ANT_SWITCH=!0;var qd={},Tx=\"rc-table-internal-hook\";function NO(e){var t=m.createContext(void 0),r=function(a){var i=a.value,o=a.children,l=m.useRef(i);l.current=i;var s=m.useState(function(){return{getValue:function(){return l.current},listeners:new Set}}),u=ve(s,1),c=u[0];return _r(function(){Fs.unstable_batchedUpdates(function(){c.listeners.forEach(function(d){d(i)})})},[i]),m.createElement(t.Provider,{value:c},o)};return{Context:t,Provider:r,defaultValue:e}}function Ri(e,t){var r=Pr(typeof t==\"function\"?t:function(d){if(t===void 0)return d;if(!Array.isArray(t))return d[t];var f={};return t.forEach(function(h){f[h]=d[h]}),f}),n=m.useContext(e==null?void 0:e.Context),a=n||{},i=a.listeners,o=a.getValue,l=m.useRef();l.current=r(n?o():e==null?void 0:e.defaultValue);var s=m.useState({}),u=ve(s,2),c=u[1];return _r(function(){if(!n)return;function d(f){var h=r(f);vu(l.current,h,!0)||c({})}return i.add(d),function(){i.delete(d)}},[n]),l.current}function wBe(){var e=m.createContext(null);function t(){return m.useContext(e)}function r(a,i){var o=mu(a),l=function(u,c){var d=o?{ref:c}:{},f=m.useRef(0),h=m.useRef(u),p=t();return p!==null?m.createElement(a,Ce({},u,d)):((!i||i(h.current,u))&&(f.current+=1),h.current=u,m.createElement(e.Provider,{value:f.current},m.createElement(a,Ce({},u,d))))};return o?m.forwardRef(l):l}function n(a,i){var o=mu(a),l=function(u,c){var d=o?{ref:c}:{};return t(),m.createElement(a,Ce({},u,d))};return o?m.memo(m.forwardRef(l),i):m.memo(l,i)}return{makeImmutable:r,responseImmutable:n,useImmutableMark:t}}var $O=wBe(),Fse=$O.makeImmutable,kg=$O.responseImmutable,EBe=$O.useImmutableMark,Ao=NO(),Sse=m.createContext({renderWithProps:!1}),DBe=\"RC_TABLE_KEY\";function ABe(e){return e==null?[]:Array.isArray(e)?e:[e]}function U6(e){var t=[],r={};return e.forEach(function(n){for(var a=n||{},i=a.key,o=a.dataIndex,l=i||ABe(o).join(\"-\")||DBe;r[l];)l=\"\".concat(l,\"_next\");r[l]=!0,t.push(l)}),t}function zR(e){return e!=null}function _Be(e){return typeof e==\"number\"&&!Number.isNaN(e)}function TBe(e){return e&&Nt(e)===\"object\"&&!Array.isArray(e)&&!m.isValidElement(e)}function IBe(e,t,r,n,a,i){var o=m.useContext(Sse),l=EBe(),s=hm(function(){if(zR(n))return[n];var u=t==null||t===\"\"?[]:Array.isArray(t)?t:[t],c=No(e,u),d=c,f=void 0;if(a){var h=a(c,e,r);TBe(h)?(d=h.children,f=h.props,o.renderWithProps=!0):d=h}return[d,f]},[l,e,n,t,a,r],function(u,c){if(i){var d=ve(u,2),f=d[1],h=ve(c,2),p=h[1];return i(p,f)}return o.renderWithProps?!0:!vu(u,c,!0)});return s}function kBe(e,t,r,n){var a=e+t-1;return e<=n&&a>=r}function RBe(e,t){return Ri(Ao,function(r){var n=kBe(e,t||1,r.hoverStartRow,r.hoverEndRow);return[n,r.onHover]})}var MBe=function(t){var r=t.ellipsis,n=t.rowType,a=t.children,i,o=r===!0?{showTitle:!0}:r;return o&&(o.showTitle||n===\"header\")&&(typeof a==\"string\"||typeof a==\"number\"?i=a.toString():m.isValidElement(a)&&typeof a.props.children==\"string\"&&(i=a.props.children)),i};function PBe(e){var t,r,n,a,i,o,l,s,u=e.component,c=e.children,d=e.ellipsis,f=e.scope,h=e.prefixCls,p=e.className,v=e.align,g=e.record,y=e.render,b=e.dataIndex,x=e.renderIndex,F=e.shouldCellUpdate,S=e.index,E=e.rowType,w=e.colSpan,D=e.rowSpan,A=e.fixLeft,_=e.fixRight,I=e.firstFixLeft,M=e.lastFixLeft,T=e.firstFixRight,k=e.lastFixRight,R=e.appendNode,P=e.additionalProps,B=P===void 0?{}:P,N=e.isSticky,O=\"\".concat(h,\"-cell\"),z=Ri(Ao,[\"supportSticky\",\"allColumnsFixedLeft\",\"rowHoverable\"]),W=z.supportSticky,L=z.allColumnsFixedLeft,j=z.rowHoverable,H=IBe(g,b,x,c,y,F),V=ve(H,2),U=V[0],Q=V[1],K={},Y=typeof A==\"number\"&&W,ee=typeof _==\"number\"&&W;Y&&(K.position=\"sticky\",K.left=A),ee&&(K.position=\"sticky\",K.right=_);var J=(t=(r=(n=Q==null?void 0:Q.colSpan)!==null&&n!==void 0?n:B.colSpan)!==null&&r!==void 0?r:w)!==null&&t!==void 0?t:1,X=(a=(i=(o=Q==null?void 0:Q.rowSpan)!==null&&o!==void 0?o:B.rowSpan)!==null&&i!==void 0?i:D)!==null&&a!==void 0?a:1,ce=RBe(S,X),oe=ve(ce,2),ue=oe[0],ie=oe[1],fe=Pr(function(me){var Me;g&&ie(S,S+X-1),B==null||(Me=B.onMouseEnter)===null||Me===void 0||Me.call(B,me)}),xe=Pr(function(me){var Me;g&&ie(-1,-1),B==null||(Me=B.onMouseLeave)===null||Me===void 0||Me.call(B,me)});if(J===0||X===0)return null;var Ee=(l=B.title)!==null&&l!==void 0?l:MBe({rowType:E,ellipsis:d,children:U}),De=ne(O,p,(s={},Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(s,\"\".concat(O,\"-fix-left\"),Y&&W),\"\".concat(O,\"-fix-left-first\"),I&&W),\"\".concat(O,\"-fix-left-last\"),M&&W),\"\".concat(O,\"-fix-left-all\"),M&&L&&W),\"\".concat(O,\"-fix-right\"),ee&&W),\"\".concat(O,\"-fix-right-first\"),T&&W),\"\".concat(O,\"-fix-right-last\"),k&&W),\"\".concat(O,\"-ellipsis\"),d),\"\".concat(O,\"-with-append\"),R),\"\".concat(O,\"-fix-sticky\"),(Y||ee)&&N&&W),Z(s,\"\".concat(O,\"-row-hover\"),!Q&&ue)),B.className,Q==null?void 0:Q.className),ye={};v&&(ye.textAlign=v);var we=ae(ae(ae(ae({},Q==null?void 0:Q.style),K),ye),B.style),Fe=U;return Nt(Fe)===\"object\"&&!Array.isArray(Fe)&&!m.isValidElement(Fe)&&(Fe=null),d&&(M||T)&&(Fe=m.createElement(\"span\",{className:\"\".concat(O,\"-content\")},Fe)),m.createElement(u,Ce({},Q,B,{className:De,style:we,title:Ee,scope:f,onMouseEnter:j?fe:void 0,onMouseLeave:j?xe:void 0,colSpan:J!==1?J:null,rowSpan:X!==1?X:null}),R,Fe)}const Rg=m.memo(PBe);function LO(e,t,r,n,a){var i=r[e]||{},o=r[t]||{},l,s;i.fixed===\"left\"?l=n.left[a===\"rtl\"?t:e]:o.fixed===\"right\"&&(s=n.right[a===\"rtl\"?e:t]);var u=!1,c=!1,d=!1,f=!1,h=r[t+1],p=r[e-1],v=h&&!h.fixed||p&&!p.fixed||r.every(function(F){return F.fixed===\"left\"});if(a===\"rtl\"){if(l!==void 0){var g=p&&p.fixed===\"left\";f=!g&&v}else if(s!==void 0){var y=h&&h.fixed===\"right\";d=!y&&v}}else if(l!==void 0){var b=h&&h.fixed===\"left\";u=!b&&v}else if(s!==void 0){var x=p&&p.fixed===\"right\";c=!x&&v}return{fixLeft:l,fixRight:s,lastFixLeft:u,firstFixRight:c,lastFixRight:d,firstFixLeft:f,isSticky:n.isSticky}}var wse=m.createContext({});function OBe(e){var t=e.className,r=e.index,n=e.children,a=e.colSpan,i=a===void 0?1:a,o=e.rowSpan,l=e.align,s=Ri(Ao,[\"prefixCls\",\"direction\"]),u=s.prefixCls,c=s.direction,d=m.useContext(wse),f=d.scrollColumnIndex,h=d.stickyOffsets,p=d.flattenColumns,v=r+i-1,g=v+1===f?i+1:i,y=LO(r,r+g-1,p,h,c);return m.createElement(Rg,Ce({className:t,index:r,component:\"td\",prefixCls:u,record:null,dataIndex:null,align:l,colSpan:g,rowSpan:o,render:function(){return n}},y))}var BBe=[\"children\"];function NBe(e){var t=e.children,r=Xt(e,BBe);return m.createElement(\"tr\",r,t)}function K6(e){var t=e.children;return t}K6.Row=NBe;K6.Cell=OBe;function $Be(e){var t=e.children,r=e.stickyOffsets,n=e.flattenColumns,a=Ri(Ao,\"prefixCls\"),i=n.length-1,o=n[i],l=m.useMemo(function(){return{stickyOffsets:r,flattenColumns:n,scrollColumnIndex:o!=null&&o.scrollbar?i:null}},[o,n,i,r]);return m.createElement(wse.Provider,{value:l},m.createElement(\"tfoot\",{className:\"\".concat(a,\"-summary\")},t))}const iF=kg($Be);var Ese=K6;function LBe(e){return null}function jBe(e){return null}function Dse(e,t,r,n,a,i,o){var l=i(t,o);e.push({record:t,indent:r,index:o,rowKey:l});var s=a==null?void 0:a.has(l);if(t&&Array.isArray(t[n])&&s)for(var u=0;u<t[n].length;u+=1)Dse(e,t[n][u],r+1,n,a,i,u)}function Ase(e,t,r,n){var a=m.useMemo(function(){if(r!=null&&r.size){for(var i=[],o=0;o<(e==null?void 0:e.length);o+=1){var l=e[o];Dse(i,l,0,t,r,n,o)}return i}return e==null?void 0:e.map(function(s,u){return{record:s,indent:0,index:u,rowKey:n(s,u)}})},[e,t,r,n]);return a}function _se(e,t,r,n){var a=Ri(Ao,[\"prefixCls\",\"fixedInfoList\",\"flattenColumns\",\"expandableType\",\"expandRowByClick\",\"onTriggerExpand\",\"rowClassName\",\"expandedRowClassName\",\"indentSize\",\"expandIcon\",\"expandedRowRender\",\"expandIconColumnIndex\",\"expandedKeys\",\"childrenColumnName\",\"rowExpandable\",\"onRow\"]),i=a.flattenColumns,o=a.expandableType,l=a.expandedKeys,s=a.childrenColumnName,u=a.onTriggerExpand,c=a.rowExpandable,d=a.onRow,f=a.expandRowByClick,h=a.rowClassName,p=o===\"nest\",v=o===\"row\"&&(!c||c(e)),g=v||p,y=l&&l.has(t),b=s&&e&&e[s],x=Pr(u),F=d==null?void 0:d(e,r),S=F==null?void 0:F.onClick,E=function(_){f&&g&&u(e,_);for(var I=arguments.length,M=new Array(I>1?I-1:0),T=1;T<I;T++)M[T-1]=arguments[T];S==null||S.apply(void 0,[_].concat(M))},w;typeof h==\"string\"?w=h:typeof h==\"function\"&&(w=h(e,r,n));var D=U6(i);return ae(ae({},a),{},{columnsKey:D,nestExpandable:p,expanded:y,hasNestChildren:b,record:e,onTriggerExpand:x,rowSupportExpand:v,expandable:g,rowProps:ae(ae({},F),{},{className:ne(w,F==null?void 0:F.className),onClick:E})})}function Tse(e){var t=e.prefixCls,r=e.children,n=e.component,a=e.cellComponent,i=e.className,o=e.expanded,l=e.colSpan,s=e.isEmpty,u=e.stickyOffset,c=u===void 0?0:u,d=Ri(Ao,[\"scrollbarSize\",\"fixHeader\",\"fixColumn\",\"componentWidth\",\"horizonScroll\"]),f=d.scrollbarSize,h=d.fixHeader,p=d.fixColumn,v=d.componentWidth,g=d.horizonScroll,y=r;return(s?g&&v:p)&&(y=m.createElement(\"div\",{style:{width:v-c-(h&&!s?f:0),position:\"sticky\",left:c,overflow:\"hidden\"},className:\"\".concat(t,\"-expanded-row-fixed\")},y)),m.createElement(n,{className:i,style:{display:o?null:\"none\"}},m.createElement(Rg,{component:a,prefixCls:t,colSpan:l},y))}function zBe(e){var t=e.prefixCls,r=e.record,n=e.onExpand,a=e.expanded,i=e.expandable,o=\"\".concat(t,\"-row-expand-icon\");if(!i)return m.createElement(\"span\",{className:ne(o,\"\".concat(t,\"-row-spaced\"))});var l=function(u){n(r,u),u.stopPropagation()};return m.createElement(\"span\",{className:ne(o,Z(Z({},\"\".concat(t,\"-row-expanded\"),a),\"\".concat(t,\"-row-collapsed\"),!a)),onClick:l})}function HBe(e,t,r){var n=[];function a(i){(i||[]).forEach(function(o,l){n.push(t(o,l)),a(o[r])})}return a(e),n}function Ise(e,t,r,n){return typeof e==\"string\"?e:typeof e==\"function\"?e(t,r,n):\"\"}function kse(e,t,r,n,a){var i,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:0,s=e.record,u=e.prefixCls,c=e.columnsKey,d=e.fixedInfoList,f=e.expandIconColumnIndex,h=e.nestExpandable,p=e.indentSize,v=e.expandIcon,g=e.expanded,y=e.hasNestChildren,b=e.onTriggerExpand,x=e.expandable,F=e.expandedKeys,S=c[r],E=d[r],w;r===(f||0)&&h&&(w=m.createElement(m.Fragment,null,m.createElement(\"span\",{style:{paddingLeft:\"\".concat(p*n,\"px\")},className:\"\".concat(u,\"-row-indent indent-level-\").concat(n)}),v({prefixCls:u,expanded:g,expandable:y,record:s,onExpand:b})));var D=((i=t.onCell)===null||i===void 0?void 0:i.call(t,s,a))||{};if(l){var A=D.rowSpan,_=A===void 0?1:A;if(x&&_&&r<l){for(var I=_,M=a;M<a+_;M+=1){var T=o[M];F.has(T)&&(I+=1)}D.rowSpan=I}}return{key:S,fixedInfo:E,appendCellNode:w,additionalCellProps:D}}function VBe(e){var t=e.className,r=e.style,n=e.record,a=e.index,i=e.renderIndex,o=e.rowKey,l=e.rowKeys,s=e.indent,u=s===void 0?0:s,c=e.rowComponent,d=e.cellComponent,f=e.scopeCellComponent,h=e.expandedRowInfo,p=_se(n,o,a,u),v=p.prefixCls,g=p.flattenColumns,y=p.expandedRowClassName,b=p.expandedRowRender,x=p.rowProps,F=p.expanded,S=p.rowSupportExpand,E=m.useRef(!1);E.current||(E.current=F);var w=Ise(y,n,a,u),D=m.createElement(c,Ce({},x,{\"data-row-key\":o,className:ne(t,\"\".concat(v,\"-row\"),\"\".concat(v,\"-row-level-\").concat(u),x==null?void 0:x.className,Z({},w,u>=1)),style:ae(ae({},r),x==null?void 0:x.style)}),g.map(function(I,M){var T=I.render,k=I.dataIndex,R=I.className,P=kse(p,I,M,u,a,l,h==null?void 0:h.offset),B=P.key,N=P.fixedInfo,O=P.appendCellNode,z=P.additionalCellProps;return m.createElement(Rg,Ce({className:R,ellipsis:I.ellipsis,align:I.align,scope:I.rowScope,component:I.rowScope?f:d,prefixCls:v,key:B,record:n,index:a,renderIndex:i,dataIndex:k,render:T,shouldCellUpdate:I.shouldCellUpdate},N,{appendNode:O,additionalProps:z}))})),A;if(S&&(E.current||F)){var _=b(n,a,u+1,F);A=m.createElement(Tse,{expanded:F,className:ne(\"\".concat(v,\"-expanded-row\"),\"\".concat(v,\"-expanded-row-level-\").concat(u+1),w),prefixCls:v,component:c,cellComponent:d,colSpan:h?h.colSpan:g.length,stickyOffset:h==null?void 0:h.sticky,isEmpty:!1},_)}return m.createElement(m.Fragment,null,D,A)}const WBe=kg(VBe);function GBe(e){var t=e.columnKey,r=e.onColumnResize,n=e.prefixCls,a=e.title,i=m.useRef();return _r(function(){i.current&&r(t,i.current.offsetWidth)},[]),m.createElement(_i,{data:t},m.createElement(\"th\",{ref:i,className:\"\".concat(n,\"-measure-cell\")},m.createElement(\"div\",{className:\"\".concat(n,\"-measure-cell-content\")},a||\" \")))}function UBe(e){var t=e.prefixCls,r=e.columnsKey,n=e.onColumnResize,a=e.columns,i=m.useRef(null),o=Ri(Ao,[\"measureRowRender\"]),l=o.measureRowRender,s=m.createElement(\"tr\",{\"aria-hidden\":\"true\",className:\"\".concat(t,\"-measure-row\"),ref:i,tabIndex:-1},m.createElement(_i.Collection,{onBatchResize:function(c){xg(i.current)&&c.forEach(function(d){var f=d.data,h=d.size;n(f,h.offsetWidth)})}},r.map(function(u){var c=a.find(function(h){return h.key===u}),d=c==null?void 0:c.title,f=m.isValidElement(d)?m.cloneElement(d,{ref:null}):d;return m.createElement(GBe,{prefixCls:t,key:u,columnKey:u,onColumnResize:n,title:f})})));return l?l(s):s}function KBe(e){var t=e.data,r=e.measureColumnWidth,n=Ri(Ao,[\"prefixCls\",\"getComponent\",\"onColumnResize\",\"flattenColumns\",\"getRowKey\",\"expandedKeys\",\"childrenColumnName\",\"emptyNode\",\"expandedRowOffset\",\"fixedInfoList\",\"colWidths\"]),a=n.prefixCls,i=n.getComponent,o=n.onColumnResize,l=n.flattenColumns,s=n.getRowKey,u=n.expandedKeys,c=n.childrenColumnName,d=n.emptyNode,f=n.expandedRowOffset,h=f===void 0?0:f,p=n.colWidths,v=Ase(t,c,u,s),g=m.useMemo(function(){return v.map(function(A){return A.rowKey})},[v]),y=m.useRef({renderWithProps:!1}),b=m.useMemo(function(){for(var A=l.length-h,_=0,I=0;I<h;I+=1)_+=p[I]||0;return{offset:h,colSpan:A,sticky:_}},[l.length,h,p]),x=i([\"body\",\"wrapper\"],\"tbody\"),F=i([\"body\",\"row\"],\"tr\"),S=i([\"body\",\"cell\"],\"td\"),E=i([\"body\",\"cell\"],\"th\"),w;t.length?w=v.map(function(A,_){var I=A.record,M=A.indent,T=A.index,k=A.rowKey;return m.createElement(WBe,{key:k,rowKey:k,rowKeys:g,record:I,index:_,renderIndex:T,rowComponent:F,cellComponent:S,scopeCellComponent:E,indent:M,expandedRowInfo:b})}):w=m.createElement(Tse,{expanded:!0,className:\"\".concat(a,\"-placeholder\"),prefixCls:a,component:F,cellComponent:S,colSpan:l.length,isEmpty:!0},d);var D=U6(l);return m.createElement(Sse.Provider,{value:y.current},m.createElement(x,{className:\"\".concat(a,\"-tbody\")},r&&m.createElement(UBe,{prefixCls:a,columnsKey:D,onColumnResize:o,columns:l}),w))}const YBe=kg(KBe);var qBe=[\"expandable\"],Uy=\"RC_TABLE_INTERNAL_COL_DEFINE\";function XBe(e){var t=e.expandable,r=Xt(e,qBe),n;return\"expandable\"in e?n=ae(ae({},r),t):n=r,n.showExpandColumn===!1&&(n.expandIconColumnIndex=-1),n}var JBe=[\"columnType\"];function Rse(e){for(var t=e.colWidths,r=e.columns,n=e.columCount,a=Ri(Ao,[\"tableLayout\"]),i=a.tableLayout,o=[],l=n||r.length,s=!1,u=l-1;u>=0;u-=1){var c=t[u],d=r&&r[u],f=void 0,h=void 0;if(d&&(f=d[Uy],i===\"auto\"&&(h=d.minWidth)),c||h||f||s){var p=f||{};p.columnType;var v=Xt(p,JBe);o.unshift(m.createElement(\"col\",Ce({key:u,style:{width:c,minWidth:h}},v))),s=!0}}return o.length>0?m.createElement(\"colgroup\",null,o):null}var ZBe=[\"className\",\"noData\",\"columns\",\"flattenColumns\",\"colWidths\",\"colGroup\",\"columCount\",\"stickyOffsets\",\"direction\",\"fixHeader\",\"stickyTopOffset\",\"stickyBottomOffset\",\"stickyClassName\",\"scrollX\",\"tableLayout\",\"onScroll\",\"children\"];function QBe(e,t){return m.useMemo(function(){for(var r=[],n=0;n<t;n+=1){var a=e[n];if(a!==void 0)r[n]=a;else return null}return r},[e.join(\"_\"),t])}var eNe=m.forwardRef(function(e,t){var r=e.className,n=e.noData,a=e.columns,i=e.flattenColumns,o=e.colWidths,l=e.colGroup,s=e.columCount,u=e.stickyOffsets,c=e.direction,d=e.fixHeader,f=e.stickyTopOffset,h=e.stickyBottomOffset,p=e.stickyClassName,v=e.scrollX,g=e.tableLayout,y=g===void 0?\"fixed\":g,b=e.onScroll,x=e.children,F=Xt(e,ZBe),S=Ri(Ao,[\"prefixCls\",\"scrollbarSize\",\"isSticky\",\"getComponent\"]),E=S.prefixCls,w=S.scrollbarSize,D=S.isSticky,A=S.getComponent,_=A([\"header\",\"table\"],\"table\"),I=D&&!d?0:w,M=m.useRef(null),T=m.useCallback(function(W){Vb(t,W),Vb(M,W)},[]);m.useEffect(function(){function W(j){var H=j,V=H.currentTarget,U=H.deltaX;U&&(b({currentTarget:V,scrollLeft:V.scrollLeft+U}),j.preventDefault())}var L=M.current;return L==null||L.addEventListener(\"wheel\",W,{passive:!1}),function(){L==null||L.removeEventListener(\"wheel\",W)}},[]);var k=i[i.length-1],R={fixed:k?k.fixed:null,scrollbar:!0,onHeaderCell:function(){return{className:\"\".concat(E,\"-cell-scrollbar\")}}},P=m.useMemo(function(){return I?[].concat(He(a),[R]):a},[I,a]),B=m.useMemo(function(){return I?[].concat(He(i),[R]):i},[I,i]),N=m.useMemo(function(){var W=u.right,L=u.left;return ae(ae({},u),{},{left:c===\"rtl\"?[].concat(He(L.map(function(j){return j+I})),[0]):L,right:c===\"rtl\"?W:[].concat(He(W.map(function(j){return j+I})),[0]),isSticky:D})},[I,u,D]),O=QBe(o,s),z=m.useMemo(function(){var W=!O||!O.length||O.every(function(L){return!L});return n||W},[n,O]);return m.createElement(\"div\",{style:ae({overflow:\"hidden\"},D?{top:f,bottom:h}:{}),ref:T,className:ne(r,Z({},p,!!p))},m.createElement(_,{style:{tableLayout:y,minWidth:\"100%\",width:v}},z?l:m.createElement(Rse,{colWidths:[].concat(He(O),[I]),columCount:s+1,columns:B}),x(ae(ae({},F),{},{stickyOffsets:N,columns:P,flattenColumns:B}))))});const VV=m.memo(eNe);var tNe=function(t){var r=t.cells,n=t.stickyOffsets,a=t.flattenColumns,i=t.rowComponent,o=t.cellComponent,l=t.onHeaderRow,s=t.index,u=Ri(Ao,[\"prefixCls\",\"direction\"]),c=u.prefixCls,d=u.direction,f;l&&(f=l(r.map(function(p){return p.column}),s));var h=U6(r.map(function(p){return p.column}));return m.createElement(i,f,r.map(function(p,v){var g=p.column,y=LO(p.colStart,p.colEnd,a,n,d),b;return g&&g.onHeaderCell&&(b=p.column.onHeaderCell(g)),m.createElement(Rg,Ce({},p,{scope:g.title?p.colSpan>1?\"colgroup\":\"col\":null,ellipsis:g.ellipsis,align:g.align,component:o,prefixCls:c,key:h[v]},y,{additionalProps:b,rowType:\"header\"}))}))};function rNe(e){var t=[];function r(o,l){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;t[s]=t[s]||[];var u=l,c=o.filter(Boolean).map(function(d){var f={key:d.key,className:d.className||\"\",children:d.title,column:d,colStart:u},h=1,p=d.children;return p&&p.length>0&&(h=r(p,u,s+1).reduce(function(v,g){return v+g},0),f.hasSubColumns=!0),\"colSpan\"in d&&(h=d.colSpan),\"rowSpan\"in d&&(f.rowSpan=d.rowSpan),f.colSpan=h,f.colEnd=f.colStart+h-1,t[s].push(f),u+=h,h});return c}r(e,0);for(var n=t.length,a=function(l){t[l].forEach(function(s){!(\"rowSpan\"in s)&&!s.hasSubColumns&&(s.rowSpan=n-l)})},i=0;i<n;i+=1)a(i);return t}var nNe=function(t){var r=t.stickyOffsets,n=t.columns,a=t.flattenColumns,i=t.onHeaderRow,o=Ri(Ao,[\"prefixCls\",\"getComponent\"]),l=o.prefixCls,s=o.getComponent,u=m.useMemo(function(){return rNe(n)},[n]),c=s([\"header\",\"wrapper\"],\"thead\"),d=s([\"header\",\"row\"],\"tr\"),f=s([\"header\",\"cell\"],\"th\");return m.createElement(c,{className:\"\".concat(l,\"-thead\")},u.map(function(h,p){var v=m.createElement(tNe,{key:p,flattenColumns:a,cells:h,stickyOffsets:r,rowComponent:d,cellComponent:f,onHeaderRow:i,index:p});return v}))};const WV=kg(nNe);function GV(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\";return typeof t==\"number\"?t:t.endsWith(\"%\")?e*parseFloat(t)/100:null}function aNe(e,t,r){return m.useMemo(function(){if(t&&t>0){var n=0,a=0;e.forEach(function(f){var h=GV(t,f.width);h?n+=h:a+=1});var i=Math.max(t,r),o=Math.max(i-n,a),l=a,s=o/a,u=0,c=e.map(function(f){var h=ae({},f),p=GV(t,h.width);if(p)h.width=p;else{var v=Math.floor(s);h.width=l===1?o:v,o-=v,l-=1}return u+=h.width,h});if(u<i){var d=i/u;o=i,c.forEach(function(f,h){var p=Math.floor(f.width*d);f.width=h===c.length-1?o:p,o-=p})}return[c,Math.max(u,i)]}return[e,t]},[e,t,r])}var iNe=[\"children\"],oNe=[\"fixed\"];function jO(e){return ba(e).filter(function(t){return m.isValidElement(t)}).map(function(t){var r=t.key,n=t.props,a=n.children,i=Xt(n,iNe),o=ae({key:r},i);return a&&(o.children=jO(a)),o})}function Mse(e){return e.filter(function(t){return t&&Nt(t)===\"object\"&&!t.hidden}).map(function(t){var r=t.children;return r&&r.length>0?ae(ae({},t),{},{children:Mse(r)}):t})}function HR(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"key\";return e.filter(function(r){return r&&Nt(r)===\"object\"}).reduce(function(r,n,a){var i=n.fixed,o=i===!0?\"left\":i,l=\"\".concat(t,\"-\").concat(a),s=n.children;return s&&s.length>0?[].concat(He(r),He(HR(s,l).map(function(u){var c;return ae(ae({},u),{},{fixed:(c=u.fixed)!==null&&c!==void 0?c:o})}))):[].concat(He(r),[ae(ae({key:l},n),{},{fixed:o})])},[])}function lNe(e){return e.map(function(t){var r=t.fixed,n=Xt(t,oNe),a=r;return r===\"left\"?a=\"right\":r===\"right\"&&(a=\"left\"),ae({fixed:a},n)})}function sNe(e,t){var r=e.prefixCls,n=e.columns,a=e.children,i=e.expandable,o=e.expandedKeys,l=e.columnTitle,s=e.getRowKey,u=e.onTriggerExpand,c=e.expandIcon,d=e.rowExpandable,f=e.expandIconColumnIndex,h=e.expandedRowOffset,p=h===void 0?0:h,v=e.direction,g=e.expandRowByClick,y=e.columnWidth,b=e.fixed,x=e.scrollWidth,F=e.clientWidth,S=m.useMemo(function(){var k=n||jO(a)||[];return Mse(k.slice())},[n,a]),E=m.useMemo(function(){if(i){var k=S.slice();if(!k.includes(qd)){var R=f||0,P=R===0&&b===\"right\"?S.length:R;P>=0&&k.splice(P,0,qd)}var B=k.indexOf(qd);k=k.filter(function(W,L){return W!==qd||L===B});var N=S[B],O;b?O=b:O=N?N.fixed:null;var z=Z(Z(Z(Z(Z(Z({},Uy,{className:\"\".concat(r,\"-expand-icon-col\"),columnType:\"EXPAND_COLUMN\"}),\"title\",l),\"fixed\",O),\"className\",\"\".concat(r,\"-row-expand-icon-cell\")),\"width\",y),\"render\",function(L,j,H){var V=s(j,H),U=o.has(V),Q=d?d(j):!0,K=c({prefixCls:r,expanded:U,expandable:Q,record:j,onExpand:u});return g?m.createElement(\"span\",{onClick:function(ee){return ee.stopPropagation()}},K):K});return k.map(function(W,L){var j=W===qd?z:W;return L<p?ae(ae({},j),{},{fixed:j.fixed||\"left\"}):j})}return S.filter(function(W){return W!==qd})},[i,S,s,o,c,v,p]),w=m.useMemo(function(){var k=E;return t&&(k=t(k)),k.length||(k=[{render:function(){return null}}]),k},[t,E,v]),D=m.useMemo(function(){return v===\"rtl\"?lNe(HR(w)):HR(w)},[w,v,x]),A=m.useMemo(function(){for(var k=-1,R=D.length-1;R>=0;R-=1){var P=D[R].fixed;if(P===\"left\"||P===!0){k=R;break}}if(k>=0)for(var B=0;B<=k;B+=1){var N=D[B].fixed;if(N!==\"left\"&&N!==!0)return!0}var O=D.findIndex(function(L){var j=L.fixed;return j===\"right\"});if(O>=0)for(var z=O;z<D.length;z+=1){var W=D[z].fixed;if(W!==\"right\")return!0}return!1},[D]),_=aNe(D,x,F),I=ve(_,2),M=I[0],T=I[1];return[w,M,T,A]}function uNe(e,t,r){var n=XBe(e),a=n.expandIcon,i=n.expandedRowKeys,o=n.defaultExpandedRowKeys,l=n.defaultExpandAllRows,s=n.expandedRowRender,u=n.onExpand,c=n.onExpandedRowsChange,d=n.childrenColumnName,f=a||zBe,h=d||\"children\",p=m.useMemo(function(){return s?\"row\":e.expandable&&e.internalHooks===Tx&&e.expandable.__PARENT_RENDER_ICON__||t.some(function(S){return S&&Nt(S)===\"object\"&&S[h]})?\"nest\":!1},[!!s,t]),v=m.useState(function(){return o||(l?HBe(t,r,h):[])}),g=ve(v,2),y=g[0],b=g[1],x=m.useMemo(function(){return new Set(i||y||[])},[i,y]),F=m.useCallback(function(S){var E=r(S,t.indexOf(S)),w,D=x.has(E);D?(x.delete(E),w=He(x)):w=[].concat(He(x),[E]),b(w),u&&u(!D,S),c&&c(w)},[r,x,t,u,c]);return[n,p,x,f,h,F]}function cNe(e,t,r){var n=e.map(function(a,i){return LO(i,i,e,t,r)});return hm(function(){return n},[n],function(a,i){return!vu(a,i)})}function dNe(e){var t=m.useRef(e),r=m.useState({}),n=ve(r,2),a=n[1],i=m.useRef(null),o=m.useRef([]);function l(s){o.current.push(s);var u=Promise.resolve();i.current=u,u.then(function(){if(i.current===u){var c=o.current,d=t.current;o.current=[],c.forEach(function(f){t.current=f(t.current)}),i.current=null,d!==t.current&&a({})}})}return m.useEffect(function(){return function(){i.current=null}},[]),[t.current,l]}function fNe(e){var t=m.useRef(null),r=m.useRef();function n(){window.clearTimeout(r.current)}function a(o){t.current=o,n(),r.current=window.setTimeout(function(){t.current=null,r.current=void 0},100)}function i(){return t.current}return m.useEffect(function(){return n},[]),[a,i]}function hNe(){var e=m.useState(-1),t=ve(e,2),r=t[0],n=t[1],a=m.useState(-1),i=ve(a,2),o=i[0],l=i[1],s=m.useCallback(function(u,c){n(u),l(c)},[]);return[r,o,s]}var UV=ki()?window:null;function pNe(e,t){var r=Nt(e)===\"object\"?e:{},n=r.offsetHeader,a=n===void 0?0:n,i=r.offsetSummary,o=i===void 0?0:i,l=r.offsetScroll,s=l===void 0?0:l,u=r.getContainer,c=u===void 0?function(){return UV}:u,d=c()||UV,f=!!e;return m.useMemo(function(){return{isSticky:f,stickyClassName:f?\"\".concat(t,\"-sticky-holder\"):\"\",offsetHeader:a,offsetSummary:o,offsetScroll:s,container:d}},[f,s,a,o,t,d])}function mNe(e,t,r){var n=m.useMemo(function(){var a=t.length,i=function(u,c,d){for(var f=[],h=0,p=u;p!==c;p+=d)f.push(h),t[p].fixed&&(h+=e[p]||0);return f},o=i(0,a,1),l=i(a-1,-1,-1).reverse();return r===\"rtl\"?{left:l,right:o}:{left:o,right:l}},[e,t,r]);return n}function KV(e){var t=e.className,r=e.children;return m.createElement(\"div\",{className:t},r)}function YV(e){var t=ax(e),r=t.getBoundingClientRect(),n=document.documentElement;return{left:r.left+(window.pageXOffset||n.scrollLeft)-(n.clientLeft||document.body.clientLeft||0),top:r.top+(window.pageYOffset||n.scrollTop)-(n.clientTop||document.body.clientTop||0)}}var vNe=function(t,r){var n,a,i=t.scrollBodyRef,o=t.onScroll,l=t.offsetScroll,s=t.container,u=t.direction,c=Ri(Ao,\"prefixCls\"),d=((n=i.current)===null||n===void 0?void 0:n.scrollWidth)||0,f=((a=i.current)===null||a===void 0?void 0:a.clientWidth)||0,h=d&&f*(f/d),p=m.useRef(),v=dNe({scrollLeft:0,isHiddenScrollBar:!0}),g=ve(v,2),y=g[0],b=g[1],x=m.useRef({delta:0,x:0}),F=m.useState(!1),S=ve(F,2),E=S[0],w=S[1],D=m.useRef(null);m.useEffect(function(){return function(){Tr.cancel(D.current)}},[]);var A=function(){w(!1)},_=function(R){R.persist(),x.current.delta=R.pageX-y.scrollLeft,x.current.x=0,w(!0),R.preventDefault()},I=function(R){var P,B=R||((P=window)===null||P===void 0?void 0:P.event),N=B.buttons;if(!E||N===0){E&&w(!1);return}var O=x.current.x+R.pageX-x.current.x-x.current.delta,z=u===\"rtl\";O=Math.max(z?h-f:0,Math.min(z?0:f-h,O));var W=!z||Math.abs(O)+Math.abs(h)<f;W&&(o({scrollLeft:O/f*(d+2)}),x.current.x=R.pageX)},M=function(){Tr.cancel(D.current),D.current=Tr(function(){if(i.current){var R=YV(i.current).top,P=R+i.current.offsetHeight,B=s===window?document.documentElement.scrollTop+window.innerHeight:YV(s).top+s.clientHeight;b(function(N){return ae(ae({},N),{},{isHiddenScrollBar:P-Bz()<=B||R>=B-l})})}})},T=function(R){b(function(P){return ae(ae({},P),{},{scrollLeft:d?R/d*f:0})})};return m.useImperativeHandle(r,function(){return{setScrollLeft:T,checkScrollBarVisible:M}}),m.useEffect(function(){var k=lf(document.body,\"mouseup\",A,!1),R=lf(document.body,\"mousemove\",I,!1);return M(),function(){k.remove(),R.remove()}},[h,E]),m.useEffect(function(){if(i.current){for(var k=[],R=ax(i.current);R;)k.push(R),R=R.parentElement;return k.forEach(function(P){return P.addEventListener(\"scroll\",M,!1)}),window.addEventListener(\"resize\",M,!1),window.addEventListener(\"scroll\",M,!1),s.addEventListener(\"scroll\",M,!1),function(){k.forEach(function(P){return P.removeEventListener(\"scroll\",M)}),window.removeEventListener(\"resize\",M),window.removeEventListener(\"scroll\",M),s.removeEventListener(\"scroll\",M)}}},[s]),m.useEffect(function(){y.isHiddenScrollBar||b(function(k){var R=i.current;return R?ae(ae({},k),{},{scrollLeft:R.scrollLeft/R.scrollWidth*R.clientWidth}):k})},[y.isHiddenScrollBar]),d<=f||!h||y.isHiddenScrollBar?null:m.createElement(\"div\",{style:{height:Bz(),width:f,bottom:l},className:\"\".concat(c,\"-sticky-scroll\")},m.createElement(\"div\",{onMouseDown:_,ref:p,className:ne(\"\".concat(c,\"-sticky-scroll-bar\"),Z({},\"\".concat(c,\"-sticky-scroll-bar-active\"),E)),style:{width:\"\".concat(h,\"px\"),transform:\"translate3d(\".concat(y.scrollLeft,\"px, 0, 0)\")}}))};const gNe=m.forwardRef(vNe);var Pse=\"rc-table\",yNe=[],bNe={};function xNe(){return\"No Data\"}function CNe(e,t){var r=ae({rowKey:\"key\",prefixCls:Pse,emptyText:xNe},e),n=r.prefixCls,a=r.className,i=r.rowClassName,o=r.style,l=r.data,s=r.rowKey,u=r.scroll,c=r.tableLayout,d=r.direction,f=r.title,h=r.footer,p=r.summary,v=r.caption,g=r.id,y=r.showHeader,b=r.components,x=r.emptyText,F=r.onRow,S=r.onHeaderRow,E=r.measureRowRender,w=r.onScroll,D=r.internalHooks,A=r.transformColumns,_=r.internalRefs,I=r.tailor,M=r.getContainerWidth,T=r.sticky,k=r.rowHoverable,R=k===void 0?!0:k,P=l||yNe,B=!!P.length,N=D===Tx,O=m.useCallback(function(St,Wt){return No(b,St)||Wt},[b]),z=m.useMemo(function(){return typeof s==\"function\"?s:function(St){var Wt=St&&St[s];return Wt}},[s]),W=O([\"body\"]),L=hNe(),j=ve(L,3),H=j[0],V=j[1],U=j[2],Q=uNe(r,P,z),K=ve(Q,6),Y=K[0],ee=K[1],J=K[2],X=K[3],ce=K[4],oe=K[5],ue=u==null?void 0:u.x,ie=m.useState(0),fe=ve(ie,2),xe=fe[0],Ee=fe[1],De=sNe(ae(ae(ae({},r),Y),{},{expandable:!!Y.expandedRowRender,columnTitle:Y.columnTitle,expandedKeys:J,getRowKey:z,onTriggerExpand:oe,expandIcon:X,expandIconColumnIndex:Y.expandIconColumnIndex,direction:d,scrollWidth:N&&I&&typeof ue==\"number\"?ue:null,clientWidth:xe}),N?A:null),ye=ve(De,4),we=ye[0],Fe=ye[1],me=ye[2],Me=ye[3],je=me??ue,lt=m.useMemo(function(){return{columns:we,flattenColumns:Fe}},[we,Fe]),tt=m.useRef(),rt=m.useRef(),dt=m.useRef(),Ve=m.useRef();m.useImperativeHandle(t,function(){return{nativeElement:tt.current,scrollTo:function(Wt){var Kr;if(dt.current instanceof HTMLElement){var Xr=Wt.index,ea=Wt.top,Gl=Wt.key;if(_Be(ea)){var Pi;(Pi=dt.current)===null||Pi===void 0||Pi.scrollTo({top:ea})}else{var Ji,Ns=Gl??z(P[Xr]);(Ji=dt.current.querySelector('[data-row-key=\"'.concat(Ns,'\"]')))===null||Ji===void 0||Ji.scrollIntoView()}}else(Kr=dt.current)!==null&&Kr!==void 0&&Kr.scrollTo&&dt.current.scrollTo(Wt)}}});var Ie=m.useRef(),Je=m.useState(!1),Pe=ve(Je,2),Ge=Pe[0],Ae=Pe[1],_e=m.useState(!1),$e=ve(_e,2),Ke=$e[0],pt=$e[1],_t=m.useState(new Map),ht=ve(_t,2),gt=ht[0],Et=ht[1],xt=U6(Fe),Dt=xt.map(function(St){return gt.get(St)}),ur=m.useMemo(function(){return Dt},[Dt.join(\"_\")]),mr=mNe(ur,Fe,d),Tt=u&&zR(u.y),jt=u&&zR(je)||!!Y.fixed,Lt=jt&&Fe.some(function(St){var Wt=St.fixed;return Wt}),mt=m.useRef(),it=pNe(T,n),st=it.isSticky,Ct=it.offsetHeader,te=it.offsetSummary,pe=it.offsetScroll,he=it.stickyClassName,se=it.container,de=m.useMemo(function(){return p==null?void 0:p(P)},[p,P]),ge=(Tt||st)&&m.isValidElement(de)&&de.type===K6&&de.props.fixed,Te,We,ke;Tt&&(We={overflowY:B?\"scroll\":\"auto\",maxHeight:u.y}),jt&&(Te={overflowX:\"auto\"},Tt||(We={overflowY:\"hidden\"}),ke={width:je===!0?\"auto\":je,minWidth:\"100%\"});var Be=m.useCallback(function(St,Wt){Et(function(Kr){if(Kr.get(St)!==Wt){var Xr=new Map(Kr);return Xr.set(St,Wt),Xr}return Kr})},[]),Oe=fNe(),at=ve(Oe,2),Le=at[0],Ye=at[1];function qe(St,Wt){Wt&&(typeof Wt==\"function\"?Wt(St):Wt.scrollLeft!==St&&(Wt.scrollLeft=St,Wt.scrollLeft!==St&&setTimeout(function(){Wt.scrollLeft=St},0)))}var Ze=Pr(function(St){var Wt=St.currentTarget,Kr=St.scrollLeft,Xr=d===\"rtl\",ea=typeof Kr==\"number\"?Kr:Wt.scrollLeft,Gl=Wt||bNe;if(!Ye()||Ye()===Gl){var Pi;Le(Gl),qe(ea,rt.current),qe(ea,dt.current),qe(ea,Ie.current),qe(ea,(Pi=mt.current)===null||Pi===void 0?void 0:Pi.setScrollLeft)}var Ji=Wt||rt.current;if(Ji){var Ns=N&&I&&typeof je==\"number\"?je:Ji.scrollWidth,Dd=Ji.clientWidth;if(Ns===Dd){Ae(!1),pt(!1);return}Xr?(Ae(-ea<Ns-Dd),pt(-ea>0)):(Ae(ea>0),pt(ea<Ns-Dd))}}),ft=Pr(function(St){Ze(St),w==null||w(St)}),yt=function(){if(jt&&dt.current){var Wt;Ze({currentTarget:ax(dt.current),scrollLeft:(Wt=dt.current)===null||Wt===void 0?void 0:Wt.scrollLeft})}else Ae(!1),pt(!1)},zt=function(Wt){var Kr,Xr=Wt.width;(Kr=mt.current)===null||Kr===void 0||Kr.checkScrollBarVisible();var ea=tt.current?tt.current.offsetWidth:Xr;N&&M&&tt.current&&(ea=M(tt.current,ea)||ea),ea!==xe&&(yt(),Ee(ea))},vr=m.useRef(!1);m.useEffect(function(){vr.current&&yt()},[jt,l,we.length]),m.useEffect(function(){vr.current=!0},[]);var kt=m.useState(0),Yt=ve(kt,2),xr=Yt[0],mn=Yt[1],Pn=m.useState(!0),Tn=ve(Pn,2),ka=Tn[0],ha=Tn[1];_r(function(){(!I||!N)&&(dt.current instanceof Element?mn(oR(dt.current).width):mn(oR(Ve.current).width)),ha(gR(\"position\",\"sticky\"))},[]),m.useEffect(function(){N&&_&&(_.body.current=dt.current)});var ja=m.useCallback(function(St){return m.createElement(m.Fragment,null,m.createElement(WV,St),ge===\"top\"&&m.createElement(iF,St,de))},[ge,de]),za=m.useCallback(function(St){return m.createElement(iF,St,de)},[de]),ti=O([\"table\"],\"table\"),Ha=m.useMemo(function(){return c||(Lt?je===\"max-content\"?\"auto\":\"fixed\":Tt||st||Fe.some(function(St){var Wt=St.ellipsis;return Wt})?\"fixed\":\"auto\")},[Tt,Lt,Fe,c,st]),dn,Zt={colWidths:ur,columCount:Fe.length,stickyOffsets:mr,onHeaderRow:S,fixHeader:Tt,scroll:u},Jt=m.useMemo(function(){return B?null:typeof x==\"function\"?x():x},[B,x]),on=m.createElement(YBe,{data:P,measureColumnWidth:Tt||jt||st}),Ut=m.createElement(Rse,{colWidths:Fe.map(function(St){var Wt=St.width;return Wt}),columns:Fe}),qt=v!=null?m.createElement(\"caption\",{className:\"\".concat(n,\"-caption\")},v):void 0,Qr=qn(r,{data:!0}),On=qn(r,{aria:!0});if(Tt||st){var Qn;typeof W==\"function\"?(Qn=W(P,{scrollbarSize:xr,ref:dt,onScroll:Ze}),Zt.colWidths=Fe.map(function(St,Wt){var Kr=St.width,Xr=Wt===Fe.length-1?Kr-xr:Kr;return typeof Xr==\"number\"&&!Number.isNaN(Xr)?Xr:0})):Qn=m.createElement(\"div\",{style:ae(ae({},Te),We),onScroll:ft,ref:dt,className:ne(\"\".concat(n,\"-body\"))},m.createElement(ti,Ce({style:ae(ae({},ke),{},{tableLayout:Ha})},On),qt,Ut,on,!ge&&de&&m.createElement(iF,{stickyOffsets:mr,flattenColumns:Fe},de)));var Va=ae(ae(ae({noData:!P.length},Zt),lt),{},{direction:d,stickyClassName:he,scrollX:je,tableLayout:Ha,onScroll:Ze});dn=m.createElement(m.Fragment,null,y!==!1&&m.createElement(VV,Ce({},Va,{stickyTopOffset:Ct,className:\"\".concat(n,\"-header\"),ref:rt,colGroup:Ut}),ja),Qn,ge&&ge!==\"top\"&&m.createElement(VV,Ce({},Va,{stickyBottomOffset:te,className:\"\".concat(n,\"-summary\"),ref:Ie,colGroup:Ut}),za),st&&dt.current&&dt.current instanceof Element&&m.createElement(gNe,{ref:mt,offsetScroll:pe,scrollBodyRef:dt,onScroll:Ze,container:se,direction:d}))}else dn=m.createElement(\"div\",{style:ae(ae({},Te),We),className:ne(\"\".concat(n,\"-content\")),onScroll:Ze,ref:dt},m.createElement(ti,Ce({style:ae(ae({},ke),{},{tableLayout:Ha})},On),qt,Ut,y!==!1&&m.createElement(WV,Ce({},Zt,lt)),on,de&&m.createElement(iF,{stickyOffsets:mr,flattenColumns:Fe},de)));var Fa=m.createElement(\"div\",Ce({className:ne(n,a,Z(Z(Z(Z(Z(Z(Z(Z(Z(Z({},\"\".concat(n,\"-rtl\"),d===\"rtl\"),\"\".concat(n,\"-ping-left\"),Ge),\"\".concat(n,\"-ping-right\"),Ke),\"\".concat(n,\"-layout-fixed\"),c===\"fixed\"),\"\".concat(n,\"-fixed-header\"),Tt),\"\".concat(n,\"-fixed-column\"),Lt),\"\".concat(n,\"-fixed-column-gapped\"),Lt&&Me),\"\".concat(n,\"-scroll-horizontal\"),jt),\"\".concat(n,\"-has-fix-left\"),Fe[0]&&Fe[0].fixed),\"\".concat(n,\"-has-fix-right\"),Fe[Fe.length-1]&&Fe[Fe.length-1].fixed===\"right\")),style:o,id:g,ref:tt},Qr),f&&m.createElement(KV,{className:\"\".concat(n,\"-title\")},f(P)),m.createElement(\"div\",{ref:Ve,className:\"\".concat(n,\"-container\")},dn),h&&m.createElement(KV,{className:\"\".concat(n,\"-footer\")},h(P)));jt&&(Fa=m.createElement(_i,{onResize:zt},Fa));var Wa=cNe(Fe,mr,d),Wr=m.useMemo(function(){return{scrollX:je,prefixCls:n,getComponent:O,scrollbarSize:xr,direction:d,fixedInfoList:Wa,isSticky:st,supportSticky:ka,componentWidth:xe,fixHeader:Tt,fixColumn:Lt,horizonScroll:jt,tableLayout:Ha,rowClassName:i,expandedRowClassName:Y.expandedRowClassName,expandIcon:X,expandableType:ee,expandRowByClick:Y.expandRowByClick,expandedRowRender:Y.expandedRowRender,expandedRowOffset:Y.expandedRowOffset,onTriggerExpand:oe,expandIconColumnIndex:Y.expandIconColumnIndex,indentSize:Y.indentSize,allColumnsFixedLeft:Fe.every(function(St){return St.fixed===\"left\"}),emptyNode:Jt,columns:we,flattenColumns:Fe,onColumnResize:Be,colWidths:ur,hoverStartRow:H,hoverEndRow:V,onHover:U,rowExpandable:Y.rowExpandable,onRow:F,getRowKey:z,expandedKeys:J,childrenColumnName:ce,rowHoverable:R,measureRowRender:E}},[je,n,O,xr,d,Wa,st,ka,xe,Tt,Lt,jt,Ha,i,Y.expandedRowClassName,X,ee,Y.expandRowByClick,Y.expandedRowRender,Y.expandedRowOffset,oe,Y.expandIconColumnIndex,Y.indentSize,Jt,we,Fe,Be,ur,H,V,U,Y.rowExpandable,F,z,J,ce,R,E]);return m.createElement(Ao.Provider,{value:Wr},Fa)}var FNe=m.forwardRef(CNe);function Ose(e){return Fse(FNe,e)}var Mg=Ose();Mg.EXPAND_COLUMN=qd;Mg.INTERNAL_HOOKS=Tx;Mg.Column=LBe;Mg.ColumnGroup=jBe;Mg.Summary=Ese;var zO=NO(null),Bse=NO(null);function SNe(e,t,r){var n=t||1;return r[e+n]-(r[e]||0)}function wNe(e){var t=e.rowInfo,r=e.column,n=e.colIndex,a=e.indent,i=e.index,o=e.component,l=e.renderIndex,s=e.record,u=e.style,c=e.className,d=e.inverse,f=e.getHeight,h=r.render,p=r.dataIndex,v=r.className,g=r.width,y=Ri(Bse,[\"columnsOffset\"]),b=y.columnsOffset,x=kse(t,r,n,a,i),F=x.key,S=x.fixedInfo,E=x.appendCellNode,w=x.additionalCellProps,D=w.style,A=w.colSpan,_=A===void 0?1:A,I=w.rowSpan,M=I===void 0?1:I,T=n-1,k=SNe(T,_,b),R=_>1?g-k:0,P=ae(ae(ae({},D),u),{},{flex:\"0 0 \".concat(k,\"px\"),width:\"\".concat(k,\"px\"),marginRight:R,pointerEvents:\"auto\"}),B=m.useMemo(function(){return d?M<=1:_===0||M===0||M>1},[M,_,d]);B?P.visibility=\"hidden\":d&&(P.height=f==null?void 0:f(M));var N=B?function(){return null}:h,O={};return(M===0||_===0)&&(O.rowSpan=1,O.colSpan=1),m.createElement(Rg,Ce({className:ne(v,c),ellipsis:r.ellipsis,align:r.align,scope:r.rowScope,component:o,prefixCls:t.prefixCls,key:F,record:s,index:i,renderIndex:l,dataIndex:p,render:N,shouldCellUpdate:r.shouldCellUpdate},S,{appendNode:E,additionalProps:ae(ae({},w),{},{style:P},O)}))}var ENe=[\"data\",\"index\",\"className\",\"rowKey\",\"style\",\"extra\",\"getHeight\"],DNe=m.forwardRef(function(e,t){var r=e.data,n=e.index,a=e.className,i=e.rowKey,o=e.style,l=e.extra,s=e.getHeight,u=Xt(e,ENe),c=r.record,d=r.indent,f=r.index,h=Ri(Ao,[\"prefixCls\",\"flattenColumns\",\"fixColumn\",\"componentWidth\",\"scrollX\"]),p=h.scrollX,v=h.flattenColumns,g=h.prefixCls,y=h.fixColumn,b=h.componentWidth,x=Ri(zO,[\"getComponent\"]),F=x.getComponent,S=_se(c,i,n,d),E=F([\"body\",\"row\"],\"div\"),w=F([\"body\",\"cell\"],\"div\"),D=S.rowSupportExpand,A=S.expanded,_=S.rowProps,I=S.expandedRowRender,M=S.expandedRowClassName,T;if(D&&A){var k=I(c,n,d+1,A),R=Ise(M,c,n,d),P={};y&&(P={style:Z({},\"--virtual-width\",\"\".concat(b,\"px\"))});var B=\"\".concat(g,\"-expanded-row-cell\");T=m.createElement(E,{className:ne(\"\".concat(g,\"-expanded-row\"),\"\".concat(g,\"-expanded-row-level-\").concat(d+1),R)},m.createElement(Rg,{component:w,prefixCls:g,className:ne(B,Z({},\"\".concat(B,\"-fixed\"),y)),additionalProps:P},k))}var N=ae(ae({},o),{},{width:p});l&&(N.position=\"absolute\",N.pointerEvents=\"none\");var O=m.createElement(E,Ce({},_,u,{\"data-row-key\":i,ref:D?null:t,className:ne(a,\"\".concat(g,\"-row\"),_==null?void 0:_.className,Z({},\"\".concat(g,\"-row-extra\"),l)),style:ae(ae({},N),_==null?void 0:_.style)}),v.map(function(z,W){return m.createElement(wNe,{key:W,component:w,rowInfo:S,column:z,colIndex:W,indent:d,index:n,renderIndex:f,record:c,inverse:l,getHeight:s})}));return D?m.createElement(\"div\",{ref:t},O,T):O}),qV=kg(DNe),ANe=m.forwardRef(function(e,t){var r=e.data,n=e.onScroll,a=Ri(Ao,[\"flattenColumns\",\"onColumnResize\",\"getRowKey\",\"prefixCls\",\"expandedKeys\",\"childrenColumnName\",\"scrollX\",\"direction\"]),i=a.flattenColumns,o=a.onColumnResize,l=a.getRowKey,s=a.expandedKeys,u=a.prefixCls,c=a.childrenColumnName,d=a.scrollX,f=a.direction,h=Ri(zO),p=h.sticky,v=h.scrollY,g=h.listItemHeight,y=h.getComponent,b=h.onScroll,x=m.useRef(),F=Ase(r,c,s,l),S=m.useMemo(function(){var T=0;return i.map(function(k){var R=k.width,P=k.minWidth,B=k.key,N=Math.max(R||0,P||0);return T+=N,[B,N,T]})},[i]),E=m.useMemo(function(){return S.map(function(T){return T[2]})},[S]);m.useEffect(function(){S.forEach(function(T){var k=ve(T,2),R=k[0],P=k[1];o(R,P)})},[S]),m.useImperativeHandle(t,function(){var T,k={scrollTo:function(P){var B;(B=x.current)===null||B===void 0||B.scrollTo(P)},nativeElement:(T=x.current)===null||T===void 0?void 0:T.nativeElement};return Object.defineProperty(k,\"scrollLeft\",{get:function(){var P;return((P=x.current)===null||P===void 0?void 0:P.getScrollInfo().x)||0},set:function(P){var B;(B=x.current)===null||B===void 0||B.scrollTo({left:P})}}),Object.defineProperty(k,\"scrollTop\",{get:function(){var P;return((P=x.current)===null||P===void 0?void 0:P.getScrollInfo().y)||0},set:function(P){var B;(B=x.current)===null||B===void 0||B.scrollTo({top:P})}}),k});var w=function(k,R){var P,B=(P=F[R])===null||P===void 0?void 0:P.record,N=k.onCell;if(N){var O,z=N(B,R);return(O=z==null?void 0:z.rowSpan)!==null&&O!==void 0?O:1}return 1},D=function(k){var R=k.start,P=k.end,B=k.getSize,N=k.offsetY;if(P<0)return null;for(var O=i.filter(function(J){return w(J,R)===0}),z=R,W=function(X){if(O=O.filter(function(ce){return w(ce,X)===0}),!O.length)return z=X,1},L=R;L>=0&&!W(L);L-=1);for(var j=i.filter(function(J){return w(J,P)!==1}),H=P,V=function(X){if(j=j.filter(function(ce){return w(ce,X)!==1}),!j.length)return H=Math.max(X-1,P),1},U=P;U<F.length&&!V(U);U+=1);for(var Q=[],K=function(X){var ce=F[X];if(!ce)return 1;i.some(function(oe){return w(oe,X)>1})&&Q.push(X)},Y=z;Y<=H;Y+=1)K(Y);var ee=Q.map(function(J){var X=F[J],ce=l(X.record,J),oe=function(fe){var xe=J+fe-1,Ee=l(F[xe].record,xe),De=B(ce,Ee);return De.bottom-De.top},ue=B(ce);return m.createElement(qV,{key:J,data:X,rowKey:ce,index:J,style:{top:-N+ue.top},extra:!0,getHeight:oe})});return ee},A=m.useMemo(function(){return{columnsOffset:E}},[E]),_=\"\".concat(u,\"-tbody\"),I=y([\"body\",\"wrapper\"]),M={};return p&&(M.position=\"sticky\",M.bottom=0,Nt(p)===\"object\"&&p.offsetScroll&&(M.bottom=p.offsetScroll)),m.createElement(Bse.Provider,{value:A},m.createElement(x6,{fullHeight:!1,ref:x,prefixCls:\"\".concat(_,\"-virtual\"),styles:{horizontalScrollBar:M},className:_,height:v,itemHeight:g||24,data:F,itemKey:function(k){return l(k.record)},component:I,scrollWidth:d,direction:f,onVirtualScroll:function(k){var R,P=k.x;n({currentTarget:(R=x.current)===null||R===void 0?void 0:R.nativeElement,scrollLeft:P})},onScroll:b,extraRender:D},function(T,k,R){var P=l(T.record,k);return m.createElement(qV,{data:T,rowKey:P,index:k,style:R.style})}))}),_Ne=kg(ANe),TNe=function(t,r){var n=r.ref,a=r.onScroll;return m.createElement(_Ne,{ref:n,data:t,onScroll:a})};function INe(e,t){var r=e.data,n=e.columns,a=e.scroll,i=e.sticky,o=e.prefixCls,l=o===void 0?Pse:o,s=e.className,u=e.listItemHeight,c=e.components,d=e.onScroll,f=a||{},h=f.x,p=f.y;typeof h!=\"number\"&&(h=1),typeof p!=\"number\"&&(p=500);var v=Pr(function(b,x){return No(c,b)||x}),g=Pr(d),y=m.useMemo(function(){return{sticky:i,scrollY:p,listItemHeight:u,getComponent:v,onScroll:g}},[i,p,u,v,g]);return m.createElement(zO.Provider,{value:y},m.createElement(Mg,Ce({},e,{className:ne(s,\"\".concat(l,\"-virtual\")),scroll:ae(ae({},a),{},{x:h}),components:ae(ae({},c),{},{body:r!=null&&r.length?TNe:void 0}),columns:n,internalHooks:Tx,tailor:!0,ref:t})))}var kNe=m.forwardRef(INe);function Nse(e){return Fse(kNe,e)}Nse();const RNe=e=>null,MNe=e=>null;var HO=m.createContext(null),PNe=m.createContext({}),ONe=function(t){for(var r=t.prefixCls,n=t.level,a=t.isStart,i=t.isEnd,o=\"\".concat(r,\"-indent-unit\"),l=[],s=0;s<n;s+=1)l.push(m.createElement(\"span\",{key:s,className:ne(o,Z(Z({},\"\".concat(o,\"-start\"),a[s]),\"\".concat(o,\"-end\"),i[s]))}));return m.createElement(\"span\",{\"aria-hidden\":\"true\",className:\"\".concat(r,\"-indent\")},l)};const BNe=m.memo(ONe);var NNe=[\"eventKey\",\"className\",\"style\",\"dragOver\",\"dragOverGapTop\",\"dragOverGapBottom\",\"isLeaf\",\"isStart\",\"isEnd\",\"expanded\",\"selected\",\"checked\",\"halfChecked\",\"loading\",\"domRef\",\"active\",\"data\",\"onMouseMove\",\"selectable\"],XV=\"open\",JV=\"close\",$Ne=\"---\",i2=function(t){var r,n,a,i=t.eventKey,o=t.className,l=t.style,s=t.dragOver,u=t.dragOverGapTop,c=t.dragOverGapBottom,d=t.isLeaf,f=t.isStart,h=t.isEnd,p=t.expanded,v=t.selected,g=t.checked,y=t.halfChecked,b=t.loading,x=t.domRef,F=t.active,S=t.data,E=t.onMouseMove,w=t.selectable,D=Xt(t,NNe),A=le.useContext(HO),_=le.useContext(PNe),I=le.useRef(null),M=le.useState(!1),T=ve(M,2),k=T[0],R=T[1],P=!!(A.disabled||t.disabled||(r=_.nodeDisabled)!==null&&r!==void 0&&r.call(_,S)),B=le.useMemo(function(){return!A.checkable||t.checkable===!1?!1:A.checkable},[A.checkable,t.checkable]),N=function(Ie){P||A.onNodeSelect(Ie,Ua(t))},O=function(Ie){P||!B||t.disableCheckbox||A.onNodeCheck(Ie,Ua(t),!g)},z=le.useMemo(function(){return typeof w==\"boolean\"?w:A.selectable},[w,A.selectable]),W=function(Ie){A.onNodeClick(Ie,Ua(t)),z?N(Ie):O(Ie)},L=function(Ie){A.onNodeDoubleClick(Ie,Ua(t))},j=function(Ie){A.onNodeMouseEnter(Ie,Ua(t))},H=function(Ie){A.onNodeMouseLeave(Ie,Ua(t))},V=function(Ie){A.onNodeContextMenu(Ie,Ua(t))},U=le.useMemo(function(){return!!(A.draggable&&(!A.draggable.nodeDraggable||A.draggable.nodeDraggable(S)))},[A.draggable,S]),Q=function(Ie){Ie.stopPropagation(),R(!0),A.onNodeDragStart(Ie,t);try{Ie.dataTransfer.setData(\"text/plain\",\"\")}catch{}},K=function(Ie){Ie.preventDefault(),Ie.stopPropagation(),A.onNodeDragEnter(Ie,t)},Y=function(Ie){Ie.preventDefault(),Ie.stopPropagation(),A.onNodeDragOver(Ie,t)},ee=function(Ie){Ie.stopPropagation(),A.onNodeDragLeave(Ie,t)},J=function(Ie){Ie.stopPropagation(),R(!1),A.onNodeDragEnd(Ie,t)},X=function(Ie){Ie.preventDefault(),Ie.stopPropagation(),R(!1),A.onNodeDrop(Ie,t)},ce=function(Ie){b||A.onNodeExpand(Ie,Ua(t))},oe=le.useMemo(function(){var Ve=rl(A.keyEntities,i)||{},Ie=Ve.children;return!!(Ie||[]).length},[A.keyEntities,i]),ue=le.useMemo(function(){return d===!1?!1:d||!A.loadData&&!oe||A.loadData&&t.loaded&&!oe},[d,A.loadData,oe,t.loaded]);le.useEffect(function(){b||typeof A.loadData==\"function\"&&p&&!ue&&!t.loaded&&A.onNodeLoad(Ua(t))},[b,A.loadData,A.onNodeLoad,p,ue,t]);var ie=le.useMemo(function(){var Ve;return(Ve=A.draggable)!==null&&Ve!==void 0&&Ve.icon?le.createElement(\"span\",{className:\"\".concat(A.prefixCls,\"-draggable-icon\")},A.draggable.icon):null},[A.draggable]),fe=function(Ie){var Je=t.switcherIcon||A.switcherIcon;return typeof Je==\"function\"?Je(ae(ae({},t),{},{isLeaf:Ie})):Je},xe=function(){if(ue){var Ie=fe(!0);return Ie!==!1?le.createElement(\"span\",{className:ne(\"\".concat(A.prefixCls,\"-switcher\"),\"\".concat(A.prefixCls,\"-switcher-noop\"))},Ie):null}var Je=fe(!1);return Je!==!1?le.createElement(\"span\",{onClick:ce,className:ne(\"\".concat(A.prefixCls,\"-switcher\"),\"\".concat(A.prefixCls,\"-switcher_\").concat(p?XV:JV))},Je):null},Ee=le.useMemo(function(){if(!B)return null;var Ve=typeof B!=\"boolean\"?B:null;return le.createElement(\"span\",{className:ne(\"\".concat(A.prefixCls,\"-checkbox\"),Z(Z(Z({},\"\".concat(A.prefixCls,\"-checkbox-checked\"),g),\"\".concat(A.prefixCls,\"-checkbox-indeterminate\"),!g&&y),\"\".concat(A.prefixCls,\"-checkbox-disabled\"),P||t.disableCheckbox)),onClick:O,role:\"checkbox\",\"aria-checked\":y?\"mixed\":g,\"aria-disabled\":P||t.disableCheckbox,\"aria-label\":\"Select \".concat(typeof t.title==\"string\"?t.title:\"tree node\")},Ve)},[B,g,y,P,t.disableCheckbox,t.title]),De=le.useMemo(function(){return ue?null:p?XV:JV},[ue,p]),ye=le.useMemo(function(){return le.createElement(\"span\",{className:ne(\"\".concat(A.prefixCls,\"-iconEle\"),\"\".concat(A.prefixCls,\"-icon__\").concat(De||\"docu\"),Z({},\"\".concat(A.prefixCls,\"-icon_loading\"),b))})},[A.prefixCls,De,b]),we=le.useMemo(function(){var Ve=!!A.draggable,Ie=!t.disabled&&Ve&&A.dragOverNodeKey===i;return Ie?A.dropIndicatorRender({dropPosition:A.dropPosition,dropLevelOffset:A.dropLevelOffset,indent:A.indent,prefixCls:A.prefixCls,direction:A.direction}):null},[A.dropPosition,A.dropLevelOffset,A.indent,A.prefixCls,A.direction,A.draggable,A.dragOverNodeKey,A.dropIndicatorRender]),Fe=le.useMemo(function(){var Ve=t.title,Ie=Ve===void 0?$Ne:Ve,Je=\"\".concat(A.prefixCls,\"-node-content-wrapper\"),Pe;if(A.showIcon){var Ge=t.icon||A.icon;Pe=Ge?le.createElement(\"span\",{className:ne(\"\".concat(A.prefixCls,\"-iconEle\"),\"\".concat(A.prefixCls,\"-icon__customize\"))},typeof Ge==\"function\"?Ge(t):Ge):ye}else A.loadData&&b&&(Pe=ye);var Ae;return typeof Ie==\"function\"?Ae=Ie(S):A.titleRender?Ae=A.titleRender(S):Ae=Ie,le.createElement(\"span\",{ref:I,title:typeof Ie==\"string\"?Ie:\"\",className:ne(Je,\"\".concat(Je,\"-\").concat(De||\"normal\"),Z({},\"\".concat(A.prefixCls,\"-node-selected\"),!P&&(v||k))),onMouseEnter:j,onMouseLeave:H,onContextMenu:V,onClick:W,onDoubleClick:L},Pe,le.createElement(\"span\",{className:\"\".concat(A.prefixCls,\"-title\")},Ae),we)},[A.prefixCls,A.showIcon,t,A.icon,ye,A.titleRender,S,De,j,H,V,W,L]),me=qn(D,{aria:!0,data:!0}),Me=rl(A.keyEntities,i)||{},je=Me.level,lt=h[h.length-1],tt=!P&&U,rt=A.draggingNodeKey===i,dt=w!==void 0?{\"aria-selected\":!!w}:void 0;return le.createElement(\"div\",Ce({ref:x,role:\"treeitem\",\"aria-expanded\":d?void 0:p,className:ne(o,\"\".concat(A.prefixCls,\"-treenode\"),(a={},Z(Z(Z(Z(Z(Z(Z(Z(Z(Z(a,\"\".concat(A.prefixCls,\"-treenode-disabled\"),P),\"\".concat(A.prefixCls,\"-treenode-switcher-\").concat(p?\"open\":\"close\"),!d),\"\".concat(A.prefixCls,\"-treenode-checkbox-checked\"),g),\"\".concat(A.prefixCls,\"-treenode-checkbox-indeterminate\"),y),\"\".concat(A.prefixCls,\"-treenode-selected\"),v),\"\".concat(A.prefixCls,\"-treenode-loading\"),b),\"\".concat(A.prefixCls,\"-treenode-active\"),F),\"\".concat(A.prefixCls,\"-treenode-leaf-last\"),lt),\"\".concat(A.prefixCls,\"-treenode-draggable\"),U),\"dragging\",rt),Z(Z(Z(Z(Z(Z(Z(a,\"drop-target\",A.dropTargetKey===i),\"drop-container\",A.dropContainerKey===i),\"drag-over\",!P&&s),\"drag-over-gap-top\",!P&&u),\"drag-over-gap-bottom\",!P&&c),\"filter-node\",(n=A.filterTreeNode)===null||n===void 0?void 0:n.call(A,Ua(t))),\"\".concat(A.prefixCls,\"-treenode-leaf\"),ue))),style:l,draggable:tt,onDragStart:tt?Q:void 0,onDragEnter:U?K:void 0,onDragOver:U?Y:void 0,onDragLeave:U?ee:void 0,onDrop:U?X:void 0,onDragEnd:U?J:void 0,onMouseMove:E},dt,me),le.createElement(BNe,{prefixCls:A.prefixCls,level:je,isStart:f,isEnd:h}),ie,xe(),Ee,Fe)};i2.isTreeNode=1;function Bu(e,t){if(!e)return[];var r=e.slice(),n=r.indexOf(t);return n>=0&&r.splice(n,1),r}function kc(e,t){var r=(e||[]).slice();return r.indexOf(t)===-1&&r.push(t),r}function VO(e){return e.split(\"-\")}function LNe(e,t){var r=[],n=rl(t,e);function a(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];i.forEach(function(o){var l=o.key,s=o.children;r.push(l),a(s)})}return a(n.children),r}function jNe(e){if(e.parent){var t=VO(e.pos);return Number(t[t.length-1])===e.parent.children.length-1}return!1}function zNe(e){var t=VO(e.pos);return Number(t[t.length-1])===0}function ZV(e,t,r,n,a,i,o,l,s,u){var c,d=e.clientX,f=e.clientY,h=e.target.getBoundingClientRect(),p=h.top,v=h.height,g=(u===\"rtl\"?-1:1)*(((a==null?void 0:a.x)||0)-d),y=(g-12)/n,b=s.filter(function(P){var B;return(B=l[P])===null||B===void 0||(B=B.children)===null||B===void 0?void 0:B.length}),x=rl(l,r.eventKey);if(f<p+v/2){var F=o.findIndex(function(P){return P.key===x.key}),S=F<=0?0:F-1,E=o[S].key;x=rl(l,E)}var w=x.key,D=x,A=x.key,_=0,I=0;if(!b.includes(w))for(var M=0;M<y&&jNe(x);M+=1)x=x.parent,I+=1;var T=t.data,k=x.node,R=!0;return zNe(x)&&x.level===0&&f<p+v/2&&i({dragNode:T,dropNode:k,dropPosition:-1})&&x.key===r.eventKey?_=-1:(D.children||[]).length&&b.includes(A)?i({dragNode:T,dropNode:k,dropPosition:0})?_=0:R=!1:I===0?y>-1.5?i({dragNode:T,dropNode:k,dropPosition:1})?_=1:R=!1:i({dragNode:T,dropNode:k,dropPosition:0})?_=0:i({dragNode:T,dropNode:k,dropPosition:1})?_=1:R=!1:i({dragNode:T,dropNode:k,dropPosition:1})?_=1:R=!1,{dropPosition:_,dropLevelOffset:I,dropTargetKey:x.key,dropTargetPos:x.pos,dragOverNodeKey:A,dropContainerKey:_===0?null:((c=x.parent)===null||c===void 0?void 0:c.key)||null,dropAllowed:R}}function QV(e,t){if(e){var r=t.multiple;return r?e.slice():e.length?[e[0]]:e}}function Q_(e){if(!e)return null;var t;if(Array.isArray(e))t={checkedKeys:e,halfCheckedKeys:void 0};else if(Nt(e)===\"object\")t={checkedKeys:e.checked||void 0,halfCheckedKeys:e.halfChecked||void 0};else return jn(!1,\"`checkedKeys` is not an array or an object\"),null;return t}function VR(e,t){var r=new Set;function n(a){if(!r.has(a)){var i=rl(t,a);if(i){r.add(a);var o=i.parent,l=i.node;l.disabled||o&&n(o.key)}}}return(e||[]).forEach(function(a){n(a)}),He(r)}const Vd={},WR=\"SELECT_ALL\",GR=\"SELECT_INVERT\",UR=\"SELECT_NONE\",eW=[],$se=(e,t,r=[])=>((t||[]).forEach(n=>{r.push(n),n&&typeof n==\"object\"&&e in n&&$se(e,n[e],r)}),r),HNe=(e,t)=>{const{preserveSelectedRowKeys:r,selectedRowKeys:n,defaultSelectedRowKeys:a,getCheckboxProps:i,getTitleCheckboxProps:o,onChange:l,onSelect:s,onSelectAll:u,onSelectInvert:c,onSelectNone:d,onSelectMultiple:f,columnWidth:h,type:p,selections:v,fixed:g,renderCell:y,hideSelectAll:b,checkStrictly:x=!0}=t||{},{prefixCls:F,data:S,pageData:E,getRecordByKey:w,getRowKey:D,expandType:A,childrenColumnName:_,locale:I,getPopupContainer:M}=e,T=bc(),[k,R]=Fwe(X=>X),[P,B]=un(n||a||eW,{value:n}),N=m.useRef(new Map),O=m.useCallback(X=>{if(r){const ce=new Map;X.forEach(oe=>{let ue=w(oe);!ue&&N.current.has(oe)&&(ue=N.current.get(oe)),ce.set(oe,ue)}),N.current=ce}},[w,r]);m.useEffect(()=>{O(P)},[P]);const z=m.useMemo(()=>$se(_,E),[_,E]),{keyEntities:W}=m.useMemo(()=>{if(x)return{keyEntities:null};let X=S;if(r){const ce=new Set(z.map((ue,ie)=>D(ue,ie))),oe=Array.from(N.current).reduce((ue,[ie,fe])=>ce.has(ie)?ue:ue.concat(fe),[]);X=[].concat(He(X),He(oe))}return DO(X,{externalGetKey:D,childrenPropName:_})},[S,D,x,_,r,z]),L=m.useMemo(()=>{const X=new Map;return z.forEach((ce,oe)=>{const ue=D(ce,oe),ie=(i?i(ce):null)||{};X.set(ue,ie)}),X},[z,D,i]),j=m.useCallback(X=>{const ce=D(X);let oe;return L.has(ce)?oe=L.get(D(X)):oe=i?i(X):void 0,!!(oe!=null&&oe.disabled)},[L,D]),[H,V]=m.useMemo(()=>{if(x)return[P||[],[]];const{checkedKeys:X,halfCheckedKeys:ce}=b0(P,!0,W,j);return[X||[],ce]},[P,x,W,j]),U=m.useMemo(()=>{const X=p===\"radio\"?H.slice(0,1):H;return new Set(X)},[H,p]),Q=m.useMemo(()=>p===\"radio\"?new Set:new Set(V),[V,p]);m.useEffect(()=>{t||B(eW)},[!!t]);const K=m.useCallback((X,ce)=>{let oe,ue;O(X),r?(oe=X,ue=X.map(ie=>N.current.get(ie))):(oe=[],ue=[],X.forEach(ie=>{const fe=w(ie);fe!==void 0&&(oe.push(ie),ue.push(fe))})),B(oe),l==null||l(oe,ue,{type:ce})},[B,w,l,r]),Y=m.useCallback((X,ce,oe,ue)=>{if(s){const ie=oe.map(fe=>w(fe));s(w(X),ce,ie,ue)}K(oe,\"single\")},[s,w,K]),ee=m.useMemo(()=>!v||b?null:(v===!0?[WR,GR,UR]:v).map(ce=>ce===WR?{key:\"all\",text:I.selectionAll,onSelect(){K(S.map((oe,ue)=>D(oe,ue)).filter(oe=>{const ue=L.get(oe);return!(ue!=null&&ue.disabled)||U.has(oe)}),\"all\")}}:ce===GR?{key:\"invert\",text:I.selectInvert,onSelect(){const oe=new Set(U);E.forEach((ie,fe)=>{const xe=D(ie,fe),Ee=L.get(xe);Ee!=null&&Ee.disabled||(oe.has(xe)?oe.delete(xe):oe.add(xe))});const ue=Array.from(oe);c&&(T.deprecated(!1,\"onSelectInvert\",\"onChange\"),c(ue)),K(ue,\"invert\")}}:ce===UR?{key:\"none\",text:I.selectNone,onSelect(){d==null||d(),K(Array.from(U).filter(oe=>{const ue=L.get(oe);return ue==null?void 0:ue.disabled}),\"none\")}}:ce).map(ce=>Object.assign(Object.assign({},ce),{onSelect:(...oe)=>{var ue,ie;(ie=ce.onSelect)===null||ie===void 0||(ue=ie).call.apply(ue,[ce].concat(oe)),R(null)}})),[v,U,E,D,c,K]);return[m.useCallback(X=>{var ce;if(!t)return X.filter(Ve=>Ve!==Vd);let oe=He(X);const ue=new Set(U),ie=z.map(D).filter(Ve=>!L.get(Ve).disabled),fe=ie.every(Ve=>ue.has(Ve)),xe=ie.some(Ve=>ue.has(Ve)),Ee=()=>{const Ve=[];fe?ie.forEach(Je=>{ue.delete(Je),Ve.push(Je)}):ie.forEach(Je=>{ue.has(Je)||(ue.add(Je),Ve.push(Je))});const Ie=Array.from(ue);u==null||u(!fe,Ie.map(Je=>w(Je)),Ve.map(Je=>w(Je))),K(Ie,\"all\"),R(null)};let De,ye;if(p!==\"radio\"){let Ve;if(ee){const Ke={getPopupContainer:M,items:ee.map((pt,_t)=>{const{key:ht,text:gt,onSelect:Et}=pt;return{key:ht??_t,onClick:()=>{Et==null||Et(ie)},label:gt}})};Ve=m.createElement(\"div\",{className:`${F}-selection-extra`},m.createElement(Fd,{menu:Ke,getPopupContainer:M},m.createElement(\"span\",null,m.createElement(bx,null))))}const Ie=z.map((Ke,pt)=>{const _t=D(Ke,pt),ht=L.get(_t)||{};return Object.assign({checked:ue.has(_t)},ht)}).filter(({disabled:Ke})=>Ke),Je=!!Ie.length&&Ie.length===z.length,Pe=Je&&Ie.every(({checked:Ke})=>Ke),Ge=Je&&Ie.some(({checked:Ke})=>Ke),Ae=(o==null?void 0:o())||{},{onChange:_e,disabled:$e}=Ae;ye=m.createElement(J0,Object.assign({\"aria-label\":Ve?\"Custom selection\":\"Select all\"},Ae,{checked:Je?Pe:!!z.length&&fe,indeterminate:Je?!Pe&&Ge:!fe&&xe,onChange:Ke=>{Ee(),_e==null||_e(Ke)},disabled:$e??(z.length===0||Je),skipGroup:!0})),De=!b&&m.createElement(\"div\",{className:`${F}-selection`},ye,Ve)}let we;p===\"radio\"?we=(Ve,Ie,Je)=>{const Pe=D(Ie,Je),Ge=ue.has(Pe),Ae=L.get(Pe);return{node:m.createElement(Ti,Object.assign({},Ae,{checked:Ge,onClick:_e=>{var $e;_e.stopPropagation(),($e=Ae==null?void 0:Ae.onClick)===null||$e===void 0||$e.call(Ae,_e)},onChange:_e=>{var $e;ue.has(Pe)||Y(Pe,!0,[Pe],_e.nativeEvent),($e=Ae==null?void 0:Ae.onChange)===null||$e===void 0||$e.call(Ae,_e)}})),checked:Ge}}:we=(Ve,Ie,Je)=>{var Pe;const Ge=D(Ie,Je),Ae=ue.has(Ge),_e=Q.has(Ge),$e=L.get(Ge);let Ke;return A===\"nest\"?Ke=_e:Ke=(Pe=$e==null?void 0:$e.indeterminate)!==null&&Pe!==void 0?Pe:_e,{node:m.createElement(J0,Object.assign({},$e,{indeterminate:Ke,checked:Ae,skipGroup:!0,onClick:pt=>{var _t;pt.stopPropagation(),(_t=$e==null?void 0:$e.onClick)===null||_t===void 0||_t.call($e,pt)},onChange:pt=>{var _t;const{nativeEvent:ht}=pt,{shiftKey:gt}=ht,Et=ie.indexOf(Ge),xt=H.some(Dt=>ie.includes(Dt));if(gt&&x&&xt){const Dt=k(Et,ie,ue),ur=Array.from(ue);f==null||f(!Ae,ur.map(mr=>w(mr)),Dt.map(mr=>w(mr))),K(ur,\"multiple\")}else{const Dt=H;if(x){const ur=Ae?Bu(Dt,Ge):kc(Dt,Ge);Y(Ge,!Ae,ur,ht)}else{const ur=b0([].concat(He(Dt),[Ge]),!0,W,j),{checkedKeys:mr,halfCheckedKeys:Tt}=ur;let jt=mr;if(Ae){const Lt=new Set(mr);Lt.delete(Ge),jt=b0(Array.from(Lt),{halfCheckedKeys:Tt},W,j).checkedKeys}Y(Ge,!Ae,jt,ht)}}R(Ae?null:Et),(_t=$e==null?void 0:$e.onChange)===null||_t===void 0||_t.call($e,pt)}})),checked:Ae}};const Fe=(Ve,Ie,Je)=>{const{node:Pe,checked:Ge}=we(Ve,Ie,Je);return y?y(Ge,Ie,Je,Pe):Pe};if(!oe.includes(Vd))if(oe.findIndex(Ve=>{var Ie;return((Ie=Ve[Uy])===null||Ie===void 0?void 0:Ie.columnType)===\"EXPAND_COLUMN\"})===0){const[Ve,...Ie]=oe;oe=[Ve,Vd].concat(He(Ie))}else oe=[Vd].concat(He(oe));const me=oe.indexOf(Vd);oe=oe.filter((Ve,Ie)=>Ve!==Vd||Ie===me);const Me=oe[me-1],je=oe[me+1];let lt=g;lt===void 0&&((je==null?void 0:je.fixed)!==void 0?lt=je.fixed:(Me==null?void 0:Me.fixed)!==void 0&&(lt=Me.fixed)),lt&&Me&&((ce=Me[Uy])===null||ce===void 0?void 0:ce.columnType)===\"EXPAND_COLUMN\"&&Me.fixed===void 0&&(Me.fixed=lt);const tt=ne(`${F}-selection-col`,{[`${F}-selection-col-with-dropdown`]:v&&p===\"checkbox\"}),rt=()=>t!=null&&t.columnTitle?typeof t.columnTitle==\"function\"?t.columnTitle(ye):t.columnTitle:De,dt={fixed:lt,width:h,className:`${F}-selection-column`,title:rt(),render:Fe,onCell:t.onCell,align:t.align,[Uy]:{className:tt}};return oe.map(Ve=>Ve===Vd?dt:Ve)},[D,z,t,H,U,Q,h,ee,A,L,f,Y,j]),U]};function VNe(e){return t=>{const{prefixCls:r,onExpand:n,record:a,expanded:i,expandable:o}=t,l=`${r}-row-expand-icon`;return m.createElement(\"button\",{type:\"button\",onClick:s=>{n(a,s),s.stopPropagation()},className:ne(l,{[`${l}-spaced`]:!o,[`${l}-expanded`]:o&&i,[`${l}-collapsed`]:o&&!i}),\"aria-label\":i?e.collapse:e.expand,\"aria-expanded\":i})}}function WNe(e){return(r,n)=>{const a=r.querySelector(`.${e}-container`);let i=n;if(a){const o=getComputedStyle(a),l=Number.parseInt(o.borderLeftWidth,10),s=Number.parseInt(o.borderRightWidth,10);i=n-l-s}return i}}const Hf=(e,t)=>\"key\"in e&&e.key!==void 0&&e.key!==null?e.key:e.dataIndex?Array.isArray(e.dataIndex)?e.dataIndex.join(\".\"):e.dataIndex:t;function Pg(e,t){return t?`${t}-${e}`:`${e}`}const Y6=(e,t)=>typeof e==\"function\"?e(t):e,GNe=(e,t)=>{const r=Y6(e,t);return Object.prototype.toString.call(r)===\"[object Object]\"?\"\":r};var UNe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M349 838c0 17.7 14.2 32 31.8 32h262.4c17.6 0 31.8-14.3 31.8-32V642H349v196zm531.1-684H143.9c-24.5 0-39.8 26.7-27.5 48l221.3 376h348.8l221.3-376c12.1-21.3-3.2-48-27.7-48z\"}}]},name:\"filter\",theme:\"filled\"},KNe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:UNe}))},YNe=m.forwardRef(KNe),qNe=function(t){var r=t.dropPosition,n=t.dropLevelOffset,a=t.indent,i={pointerEvents:\"none\",position:\"absolute\",right:0,backgroundColor:\"red\",height:2};switch(r){case-1:i.top=0,i.left=-n*a;break;case 1:i.bottom=0,i.left=-n*a;break;case 0:i.bottom=0,i.left=a;break}return le.createElement(\"div\",{style:i})};function Lse(e){if(e==null)throw new TypeError(\"Cannot destructure \"+e)}function XNe(e,t){var r=m.useState(!1),n=ve(r,2),a=n[0],i=n[1];_r(function(){if(a)return e(),function(){t()}},[a]),_r(function(){return i(!0),function(){i(!1)}},[])}var JNe=[\"className\",\"style\",\"motion\",\"motionNodes\",\"motionType\",\"onMotionStart\",\"onMotionEnd\",\"active\",\"treeNodeRequiredProps\"],ZNe=m.forwardRef(function(e,t){var r=e.className,n=e.style,a=e.motion,i=e.motionNodes,o=e.motionType,l=e.onMotionStart,s=e.onMotionEnd,u=e.active,c=e.treeNodeRequiredProps,d=Xt(e,JNe),f=m.useState(!0),h=ve(f,2),p=h[0],v=h[1],g=m.useContext(HO),y=g.prefixCls,b=i&&o!==\"hide\";_r(function(){i&&b!==p&&v(b)},[i]);var x=function(){i&&l()},F=m.useRef(!1),S=function(){i&&!F.current&&(F.current=!0,s())};XNe(x,S);var E=function(D){b===D&&S()};return i?m.createElement(fi,Ce({ref:t,visible:p},a,{motionAppear:o===\"show\",onVisibleChanged:E}),function(w,D){var A=w.className,_=w.style;return m.createElement(\"div\",{ref:D,className:ne(\"\".concat(y,\"-treenode-motion\"),A),style:_},i.map(function(I){var M=Object.assign({},(Lse(I.data),I.data)),T=I.title,k=I.key,R=I.isStart,P=I.isEnd;delete M.children;var B=Gy(k,c);return m.createElement(i2,Ce({},M,B,{title:T,active:u,data:I.data,key:k,isStart:R,isEnd:P}))}))}):m.createElement(i2,Ce({domRef:t,className:r,style:n},d,{active:u}))});function QNe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=e.length,n=t.length;if(Math.abs(r-n)!==1)return{add:!1,key:null};function a(i,o){var l=new Map;i.forEach(function(u){l.set(u,!0)});var s=o.filter(function(u){return!l.has(u)});return s.length===1?s[0]:null}return r<n?{add:!0,key:a(e,t)}:{add:!1,key:a(t,e)}}function tW(e,t,r){var n=e.findIndex(function(l){return l.key===r}),a=e[n+1],i=t.findIndex(function(l){return l.key===r});if(a){var o=t.findIndex(function(l){return l.key===a.key});return t.slice(i+1,o)}return t.slice(i+1)}var e$e=[\"prefixCls\",\"data\",\"selectable\",\"checkable\",\"expandedKeys\",\"selectedKeys\",\"checkedKeys\",\"loadedKeys\",\"loadingKeys\",\"halfCheckedKeys\",\"keyEntities\",\"disabled\",\"dragging\",\"dragOverNodeKey\",\"dropPosition\",\"motion\",\"height\",\"itemHeight\",\"virtual\",\"scrollWidth\",\"focusable\",\"activeItem\",\"focused\",\"tabIndex\",\"onKeyDown\",\"onFocus\",\"onBlur\",\"onActiveChange\",\"onListChangeStart\",\"onListChangeEnd\"],rW={width:0,height:0,display:\"flex\",overflow:\"hidden\",opacity:0,border:0,padding:0,margin:0},t$e=function(){},qp=\"RC_TREE_MOTION_\".concat(Math.random()),KR={key:qp},jse={key:qp,level:0,index:0,pos:\"0\",node:KR,nodes:[KR]},nW={parent:null,children:[],pos:jse.pos,data:KR,title:null,key:qp,isStart:[],isEnd:[]};function aW(e,t,r,n){return t===!1||!r?e:e.slice(0,Math.ceil(r/n)+1)}function iW(e){var t=e.key,r=e.pos;return Ex(t,r)}function r$e(e){for(var t=String(e.data.key),r=e;r.parent;)r=r.parent,t=\"\".concat(r.data.key,\" > \").concat(t);return t}var n$e=m.forwardRef(function(e,t){var r=e.prefixCls,n=e.data;e.selectable,e.checkable;var a=e.expandedKeys,i=e.selectedKeys,o=e.checkedKeys,l=e.loadedKeys,s=e.loadingKeys,u=e.halfCheckedKeys,c=e.keyEntities,d=e.disabled,f=e.dragging,h=e.dragOverNodeKey,p=e.dropPosition,v=e.motion,g=e.height,y=e.itemHeight,b=e.virtual,x=e.scrollWidth,F=e.focusable,S=e.activeItem,E=e.focused,w=e.tabIndex,D=e.onKeyDown,A=e.onFocus,_=e.onBlur,I=e.onActiveChange,M=e.onListChangeStart,T=e.onListChangeEnd,k=Xt(e,e$e),R=m.useRef(null),P=m.useRef(null);m.useImperativeHandle(t,function(){return{scrollTo:function(we){R.current.scrollTo(we)},getIndentWidth:function(){return P.current.offsetWidth}}});var B=m.useState(a),N=ve(B,2),O=N[0],z=N[1],W=m.useState(n),L=ve(W,2),j=L[0],H=L[1],V=m.useState(n),U=ve(V,2),Q=U[0],K=U[1],Y=m.useState([]),ee=ve(Y,2),J=ee[0],X=ee[1],ce=m.useState(null),oe=ve(ce,2),ue=oe[0],ie=oe[1],fe=m.useRef(n);fe.current=n;function xe(){var ye=fe.current;H(ye),K(ye),X([]),ie(null),T()}_r(function(){z(a);var ye=QNe(O,a);if(ye.key!==null)if(ye.add){var we=j.findIndex(function(tt){var rt=tt.key;return rt===ye.key}),Fe=aW(tW(j,n,ye.key),b,g,y),me=j.slice();me.splice(we+1,0,nW),K(me),X(Fe),ie(\"show\")}else{var Me=n.findIndex(function(tt){var rt=tt.key;return rt===ye.key}),je=aW(tW(n,j,ye.key),b,g,y),lt=n.slice();lt.splice(Me+1,0,nW),K(lt),X(je),ie(\"hide\")}else j!==n&&(H(n),K(n))},[a,n]),m.useEffect(function(){f||xe()},[f]);var Ee=v?Q:n,De={expandedKeys:a,selectedKeys:i,loadedKeys:l,loadingKeys:s,checkedKeys:o,halfCheckedKeys:u,dragOverNodeKey:h,dropPosition:p,keyEntities:c};return m.createElement(m.Fragment,null,E&&S&&m.createElement(\"span\",{style:rW,\"aria-live\":\"assertive\"},r$e(S)),m.createElement(\"div\",null,m.createElement(\"input\",{style:rW,disabled:F===!1||d,tabIndex:F!==!1?w:null,onKeyDown:D,onFocus:A,onBlur:_,value:\"\",onChange:t$e,\"aria-label\":\"for screen reader\"})),m.createElement(\"div\",{className:\"\".concat(r,\"-treenode\"),\"aria-hidden\":!0,style:{position:\"absolute\",pointerEvents:\"none\",visibility:\"hidden\",height:0,overflow:\"hidden\",border:0,padding:0}},m.createElement(\"div\",{className:\"\".concat(r,\"-indent\")},m.createElement(\"div\",{ref:P,className:\"\".concat(r,\"-indent-unit\")}))),m.createElement(x6,Ce({},k,{data:Ee,itemKey:iW,height:g,fullHeight:!1,virtual:b,itemHeight:y,scrollWidth:x,prefixCls:\"\".concat(r,\"-list\"),ref:R,role:\"tree\",onVisibleChange:function(we){we.every(function(Fe){return iW(Fe)!==qp})&&xe()}}),function(ye){var we=ye.pos,Fe=Object.assign({},(Lse(ye.data),ye.data)),me=ye.title,Me=ye.key,je=ye.isStart,lt=ye.isEnd,tt=Ex(Me,we);delete Fe.key,delete Fe.children;var rt=Gy(tt,De);return m.createElement(ZNe,Ce({},Fe,rt,{title:me,active:!!S&&Me===S.key,pos:we,data:ye.data,isStart:je,isEnd:lt,motion:v,motionNodes:Me===qp?J:null,motionType:ue,onMotionStart:M,onMotionEnd:xe,treeNodeRequiredProps:De,onMouseMove:function(){I(null)}}))}))}),a$e=10,WO=function(e){Vl(r,e);var t=Ts(r);function r(){var n;Xn(this,r);for(var a=arguments.length,i=new Array(a),o=0;o<a;o++)i[o]=arguments[o];return n=t.call.apply(t,[this].concat(i)),Z(Rt(n),\"destroyed\",!1),Z(Rt(n),\"delayedDragEnterLogic\",void 0),Z(Rt(n),\"loadingRetryTimes\",{}),Z(Rt(n),\"state\",{keyEntities:{},indent:null,selectedKeys:[],checkedKeys:[],halfCheckedKeys:[],loadedKeys:[],loadingKeys:[],expandedKeys:[],draggingNodeKey:null,dragChildrenKeys:[],dropTargetKey:null,dropPosition:null,dropContainerKey:null,dropLevelOffset:null,dropTargetPos:null,dropAllowed:!0,dragOverNodeKey:null,treeData:[],flattenNodes:[],focused:!1,activeKey:null,listChanging:!1,prevProps:null,fieldNames:X0()}),Z(Rt(n),\"dragStartMousePosition\",null),Z(Rt(n),\"dragNodeProps\",null),Z(Rt(n),\"currentMouseOverDroppableNodeKey\",null),Z(Rt(n),\"listRef\",m.createRef()),Z(Rt(n),\"onNodeDragStart\",function(l,s){var u=n.state,c=u.expandedKeys,d=u.keyEntities,f=n.props.onDragStart,h=s.eventKey;n.dragNodeProps=s,n.dragStartMousePosition={x:l.clientX,y:l.clientY};var p=Bu(c,h);n.setState({draggingNodeKey:h,dragChildrenKeys:LNe(h,d),indent:n.listRef.current.getIndentWidth()}),n.setExpandedKeys(p),window.addEventListener(\"dragend\",n.onWindowDragEnd),f==null||f({event:l,node:Ua(s)})}),Z(Rt(n),\"onNodeDragEnter\",function(l,s){var u=n.state,c=u.expandedKeys,d=u.keyEntities,f=u.dragChildrenKeys,h=u.flattenNodes,p=u.indent,v=n.props,g=v.onDragEnter,y=v.onExpand,b=v.allowDrop,x=v.direction,F=s.pos,S=s.eventKey;if(n.currentMouseOverDroppableNodeKey!==S&&(n.currentMouseOverDroppableNodeKey=S),!n.dragNodeProps){n.resetDragState();return}var E=ZV(l,n.dragNodeProps,s,p,n.dragStartMousePosition,b,h,d,c,x),w=E.dropPosition,D=E.dropLevelOffset,A=E.dropTargetKey,_=E.dropContainerKey,I=E.dropTargetPos,M=E.dropAllowed,T=E.dragOverNodeKey;if(f.includes(A)||!M){n.resetDragState();return}if(n.delayedDragEnterLogic||(n.delayedDragEnterLogic={}),Object.keys(n.delayedDragEnterLogic).forEach(function(k){clearTimeout(n.delayedDragEnterLogic[k])}),n.dragNodeProps.eventKey!==s.eventKey&&(l.persist(),n.delayedDragEnterLogic[F]=window.setTimeout(function(){if(n.state.draggingNodeKey!==null){var k=He(c),R=rl(d,s.eventKey);R&&(R.children||[]).length&&(k=kc(c,s.eventKey)),n.props.hasOwnProperty(\"expandedKeys\")||n.setExpandedKeys(k),y==null||y(k,{node:Ua(s),expanded:!0,nativeEvent:l.nativeEvent})}},800)),n.dragNodeProps.eventKey===A&&D===0){n.resetDragState();return}n.setState({dragOverNodeKey:T,dropPosition:w,dropLevelOffset:D,dropTargetKey:A,dropContainerKey:_,dropTargetPos:I,dropAllowed:M}),g==null||g({event:l,node:Ua(s),expandedKeys:c})}),Z(Rt(n),\"onNodeDragOver\",function(l,s){var u=n.state,c=u.dragChildrenKeys,d=u.flattenNodes,f=u.keyEntities,h=u.expandedKeys,p=u.indent,v=n.props,g=v.onDragOver,y=v.allowDrop,b=v.direction;if(n.dragNodeProps){var x=ZV(l,n.dragNodeProps,s,p,n.dragStartMousePosition,y,d,f,h,b),F=x.dropPosition,S=x.dropLevelOffset,E=x.dropTargetKey,w=x.dropContainerKey,D=x.dropTargetPos,A=x.dropAllowed,_=x.dragOverNodeKey;c.includes(E)||!A||(n.dragNodeProps.eventKey===E&&S===0?n.state.dropPosition===null&&n.state.dropLevelOffset===null&&n.state.dropTargetKey===null&&n.state.dropContainerKey===null&&n.state.dropTargetPos===null&&n.state.dropAllowed===!1&&n.state.dragOverNodeKey===null||n.resetDragState():F===n.state.dropPosition&&S===n.state.dropLevelOffset&&E===n.state.dropTargetKey&&w===n.state.dropContainerKey&&D===n.state.dropTargetPos&&A===n.state.dropAllowed&&_===n.state.dragOverNodeKey||n.setState({dropPosition:F,dropLevelOffset:S,dropTargetKey:E,dropContainerKey:w,dropTargetPos:D,dropAllowed:A,dragOverNodeKey:_}),g==null||g({event:l,node:Ua(s)}))}}),Z(Rt(n),\"onNodeDragLeave\",function(l,s){n.currentMouseOverDroppableNodeKey===s.eventKey&&!l.currentTarget.contains(l.relatedTarget)&&(n.resetDragState(),n.currentMouseOverDroppableNodeKey=null);var u=n.props.onDragLeave;u==null||u({event:l,node:Ua(s)})}),Z(Rt(n),\"onWindowDragEnd\",function(l){n.onNodeDragEnd(l,null,!0),window.removeEventListener(\"dragend\",n.onWindowDragEnd)}),Z(Rt(n),\"onNodeDragEnd\",function(l,s){var u=n.props.onDragEnd;n.setState({dragOverNodeKey:null}),n.cleanDragState(),u==null||u({event:l,node:Ua(s)}),n.dragNodeProps=null,window.removeEventListener(\"dragend\",n.onWindowDragEnd)}),Z(Rt(n),\"onNodeDrop\",function(l,s){var u,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,d=n.state,f=d.dragChildrenKeys,h=d.dropPosition,p=d.dropTargetKey,v=d.dropTargetPos,g=d.dropAllowed;if(g){var y=n.props.onDrop;if(n.setState({dragOverNodeKey:null}),n.cleanDragState(),p!==null){var b=ae(ae({},Gy(p,n.getTreeNodeRequiredProps())),{},{active:((u=n.getActiveItem())===null||u===void 0?void 0:u.key)===p,data:rl(n.state.keyEntities,p).node}),x=f.includes(p);jn(!x,\"Can not drop to dragNode's children node. This is a bug of rc-tree. Please report an issue.\");var F=VO(v),S={event:l,node:Ua(b),dragNode:n.dragNodeProps?Ua(n.dragNodeProps):null,dragNodesKeys:[n.dragNodeProps.eventKey].concat(f),dropToGap:h!==0,dropPosition:h+Number(F[F.length-1])};c||y==null||y(S),n.dragNodeProps=null}}}),Z(Rt(n),\"cleanDragState\",function(){var l=n.state.draggingNodeKey;l!==null&&n.setState({draggingNodeKey:null,dropPosition:null,dropContainerKey:null,dropTargetKey:null,dropLevelOffset:null,dropAllowed:!0,dragOverNodeKey:null}),n.dragStartMousePosition=null,n.currentMouseOverDroppableNodeKey=null}),Z(Rt(n),\"triggerExpandActionExpand\",function(l,s){var u=n.state,c=u.expandedKeys,d=u.flattenNodes,f=s.expanded,h=s.key,p=s.isLeaf;if(!(p||l.shiftKey||l.metaKey||l.ctrlKey)){var v=d.filter(function(y){return y.key===h})[0],g=Ua(ae(ae({},Gy(h,n.getTreeNodeRequiredProps())),{},{data:v.data}));n.setExpandedKeys(f?Bu(c,h):kc(c,h)),n.onNodeExpand(l,g)}}),Z(Rt(n),\"onNodeClick\",function(l,s){var u=n.props,c=u.onClick,d=u.expandAction;d===\"click\"&&n.triggerExpandActionExpand(l,s),c==null||c(l,s)}),Z(Rt(n),\"onNodeDoubleClick\",function(l,s){var u=n.props,c=u.onDoubleClick,d=u.expandAction;d===\"doubleClick\"&&n.triggerExpandActionExpand(l,s),c==null||c(l,s)}),Z(Rt(n),\"onNodeSelect\",function(l,s){var u=n.state.selectedKeys,c=n.state,d=c.keyEntities,f=c.fieldNames,h=n.props,p=h.onSelect,v=h.multiple,g=s.selected,y=s[f.key],b=!g;b?v?u=kc(u,y):u=[y]:u=Bu(u,y);var x=u.map(function(F){var S=rl(d,F);return S?S.node:null}).filter(Boolean);n.setUncontrolledState({selectedKeys:u}),p==null||p(u,{event:\"select\",selected:b,node:s,selectedNodes:x,nativeEvent:l.nativeEvent})}),Z(Rt(n),\"onNodeCheck\",function(l,s,u){var c=n.state,d=c.keyEntities,f=c.checkedKeys,h=c.halfCheckedKeys,p=n.props,v=p.checkStrictly,g=p.onCheck,y=s.key,b,x={event:\"check\",node:s,checked:u,nativeEvent:l.nativeEvent};if(v){var F=u?kc(f,y):Bu(f,y),S=Bu(h,y);b={checked:F,halfChecked:S},x.checkedNodes=F.map(function(I){return rl(d,I)}).filter(Boolean).map(function(I){return I.node}),n.setUncontrolledState({checkedKeys:F})}else{var E=b0([].concat(He(f),[y]),!0,d),w=E.checkedKeys,D=E.halfCheckedKeys;if(!u){var A=new Set(w);A.delete(y);var _=b0(Array.from(A),{halfCheckedKeys:D},d);w=_.checkedKeys,D=_.halfCheckedKeys}b=w,x.checkedNodes=[],x.checkedNodesPositions=[],x.halfCheckedKeys=D,w.forEach(function(I){var M=rl(d,I);if(M){var T=M.node,k=M.pos;x.checkedNodes.push(T),x.checkedNodesPositions.push({node:T,pos:k})}}),n.setUncontrolledState({checkedKeys:w},!1,{halfCheckedKeys:D})}g==null||g(b,x)}),Z(Rt(n),\"onNodeLoad\",function(l){var s,u=l.key,c=n.state.keyEntities,d=rl(c,u);if(!(d!=null&&(s=d.children)!==null&&s!==void 0&&s.length)){var f=new Promise(function(h,p){n.setState(function(v){var g=v.loadedKeys,y=g===void 0?[]:g,b=v.loadingKeys,x=b===void 0?[]:b,F=n.props,S=F.loadData,E=F.onLoad;if(!S||y.includes(u)||x.includes(u))return null;var w=S(l);return w.then(function(){var D=n.state.loadedKeys,A=kc(D,u);E==null||E(A,{event:\"load\",node:l}),n.setUncontrolledState({loadedKeys:A}),n.setState(function(_){return{loadingKeys:Bu(_.loadingKeys,u)}}),h()}).catch(function(D){if(n.setState(function(_){return{loadingKeys:Bu(_.loadingKeys,u)}}),n.loadingRetryTimes[u]=(n.loadingRetryTimes[u]||0)+1,n.loadingRetryTimes[u]>=a$e){var A=n.state.loadedKeys;jn(!1,\"Retry for `loadData` many times but still failed. No more retry.\"),n.setUncontrolledState({loadedKeys:kc(A,u)}),h()}p(D)}),{loadingKeys:kc(x,u)}})});return f.catch(function(){}),f}}),Z(Rt(n),\"onNodeMouseEnter\",function(l,s){var u=n.props.onMouseEnter;u==null||u({event:l,node:s})}),Z(Rt(n),\"onNodeMouseLeave\",function(l,s){var u=n.props.onMouseLeave;u==null||u({event:l,node:s})}),Z(Rt(n),\"onNodeContextMenu\",function(l,s){var u=n.props.onRightClick;u&&(l.preventDefault(),u({event:l,node:s}))}),Z(Rt(n),\"onFocus\",function(){var l=n.props.onFocus;n.setState({focused:!0});for(var s=arguments.length,u=new Array(s),c=0;c<s;c++)u[c]=arguments[c];l==null||l.apply(void 0,u)}),Z(Rt(n),\"onBlur\",function(){var l=n.props.onBlur;n.setState({focused:!1}),n.onActiveChange(null);for(var s=arguments.length,u=new Array(s),c=0;c<s;c++)u[c]=arguments[c];l==null||l.apply(void 0,u)}),Z(Rt(n),\"getTreeNodeRequiredProps\",function(){var l=n.state,s=l.expandedKeys,u=l.selectedKeys,c=l.loadedKeys,d=l.loadingKeys,f=l.checkedKeys,h=l.halfCheckedKeys,p=l.dragOverNodeKey,v=l.dropPosition,g=l.keyEntities;return{expandedKeys:s||[],selectedKeys:u||[],loadedKeys:c||[],loadingKeys:d||[],checkedKeys:f||[],halfCheckedKeys:h||[],dragOverNodeKey:p,dropPosition:v,keyEntities:g}}),Z(Rt(n),\"setExpandedKeys\",function(l){var s=n.state,u=s.treeData,c=s.fieldNames,d=V_(u,l,c);n.setUncontrolledState({expandedKeys:l,flattenNodes:d},!0)}),Z(Rt(n),\"onNodeExpand\",function(l,s){var u=n.state.expandedKeys,c=n.state,d=c.listChanging,f=c.fieldNames,h=n.props,p=h.onExpand,v=h.loadData,g=s.expanded,y=s[f.key];if(!d){var b=u.includes(y),x=!g;if(jn(g&&b||!g&&!b,\"Expand state not sync with index check\"),u=x?kc(u,y):Bu(u,y),n.setExpandedKeys(u),p==null||p(u,{node:s,expanded:x,nativeEvent:l.nativeEvent}),x&&v){var F=n.onNodeLoad(s);F&&F.then(function(){var S=V_(n.state.treeData,u,f);n.setUncontrolledState({flattenNodes:S})}).catch(function(){var S=n.state.expandedKeys,E=Bu(S,y);n.setExpandedKeys(E)})}}}),Z(Rt(n),\"onListChangeStart\",function(){n.setUncontrolledState({listChanging:!0})}),Z(Rt(n),\"onListChangeEnd\",function(){setTimeout(function(){n.setUncontrolledState({listChanging:!1})})}),Z(Rt(n),\"onActiveChange\",function(l){var s=n.state.activeKey,u=n.props,c=u.onActiveChange,d=u.itemScrollOffset,f=d===void 0?0:d;s!==l&&(n.setState({activeKey:l}),l!==null&&n.scrollTo({key:l,offset:f}),c==null||c(l))}),Z(Rt(n),\"getActiveItem\",function(){var l=n.state,s=l.activeKey,u=l.flattenNodes;return s===null?null:u.find(function(c){var d=c.key;return d===s})||null}),Z(Rt(n),\"offsetActiveKey\",function(l){var s=n.state,u=s.flattenNodes,c=s.activeKey,d=u.findIndex(function(p){var v=p.key;return v===c});d===-1&&l<0&&(d=u.length),d=(d+l+u.length)%u.length;var f=u[d];if(f){var h=f.key;n.onActiveChange(h)}else n.onActiveChange(null)}),Z(Rt(n),\"onKeyDown\",function(l){var s=n.state,u=s.activeKey,c=s.expandedKeys,d=s.checkedKeys,f=s.fieldNames,h=n.props,p=h.onKeyDown,v=h.checkable,g=h.selectable;switch(l.which){case It.UP:{n.offsetActiveKey(-1),l.preventDefault();break}case It.DOWN:{n.offsetActiveKey(1),l.preventDefault();break}}var y=n.getActiveItem();if(y&&y.data){var b=n.getTreeNodeRequiredProps(),x=y.data.isLeaf===!1||!!(y.data[f.children]||[]).length,F=Ua(ae(ae({},Gy(u,b)),{},{data:y.data,active:!0}));switch(l.which){case It.LEFT:{x&&c.includes(u)?n.onNodeExpand({},F):y.parent&&n.onActiveChange(y.parent.key),l.preventDefault();break}case It.RIGHT:{x&&!c.includes(u)?n.onNodeExpand({},F):y.children&&y.children.length&&n.onActiveChange(y.children[0].key),l.preventDefault();break}case It.ENTER:case It.SPACE:{v&&!F.disabled&&F.checkable!==!1&&!F.disableCheckbox?n.onNodeCheck({},F,!d.includes(u)):!v&&g&&!F.disabled&&F.selectable!==!1&&n.onNodeSelect({},F);break}}}p==null||p(l)}),Z(Rt(n),\"setUncontrolledState\",function(l){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;if(!n.destroyed){var c=!1,d=!0,f={};Object.keys(l).forEach(function(h){if(n.props.hasOwnProperty(h)){d=!1;return}c=!0,f[h]=l[h]}),c&&(!s||d)&&n.setState(ae(ae({},f),u))}}),Z(Rt(n),\"scrollTo\",function(l){n.listRef.current.scrollTo(l)}),n}return Jn(r,[{key:\"componentDidMount\",value:function(){this.destroyed=!1,this.onUpdated()}},{key:\"componentDidUpdate\",value:function(){this.onUpdated()}},{key:\"onUpdated\",value:function(){var a=this.props,i=a.activeKey,o=a.itemScrollOffset,l=o===void 0?0:o;i!==void 0&&i!==this.state.activeKey&&(this.setState({activeKey:i}),i!==null&&this.scrollTo({key:i,offset:l}))}},{key:\"componentWillUnmount\",value:function(){window.removeEventListener(\"dragend\",this.onWindowDragEnd),this.destroyed=!0}},{key:\"resetDragState\",value:function(){this.setState({dragOverNodeKey:null,dropPosition:null,dropLevelOffset:null,dropTargetKey:null,dropContainerKey:null,dropTargetPos:null,dropAllowed:!1})}},{key:\"render\",value:function(){var a=this.state,i=a.focused,o=a.flattenNodes,l=a.keyEntities,s=a.draggingNodeKey,u=a.activeKey,c=a.dropLevelOffset,d=a.dropContainerKey,f=a.dropTargetKey,h=a.dropPosition,p=a.dragOverNodeKey,v=a.indent,g=this.props,y=g.prefixCls,b=g.className,x=g.style,F=g.showLine,S=g.focusable,E=g.tabIndex,w=E===void 0?0:E,D=g.selectable,A=g.showIcon,_=g.icon,I=g.switcherIcon,M=g.draggable,T=g.checkable,k=g.checkStrictly,R=g.disabled,P=g.motion,B=g.loadData,N=g.filterTreeNode,O=g.height,z=g.itemHeight,W=g.scrollWidth,L=g.virtual,j=g.titleRender,H=g.dropIndicatorRender,V=g.onContextMenu,U=g.onScroll,Q=g.direction,K=g.rootClassName,Y=g.rootStyle,ee=qn(this.props,{aria:!0,data:!0}),J;M&&(Nt(M)===\"object\"?J=M:typeof M==\"function\"?J={nodeDraggable:M}:J={});var X={prefixCls:y,selectable:D,showIcon:A,icon:_,switcherIcon:I,draggable:J,draggingNodeKey:s,checkable:T,checkStrictly:k,disabled:R,keyEntities:l,dropLevelOffset:c,dropContainerKey:d,dropTargetKey:f,dropPosition:h,dragOverNodeKey:p,indent:v,direction:Q,dropIndicatorRender:H,loadData:B,filterTreeNode:N,titleRender:j,onNodeClick:this.onNodeClick,onNodeDoubleClick:this.onNodeDoubleClick,onNodeExpand:this.onNodeExpand,onNodeSelect:this.onNodeSelect,onNodeCheck:this.onNodeCheck,onNodeLoad:this.onNodeLoad,onNodeMouseEnter:this.onNodeMouseEnter,onNodeMouseLeave:this.onNodeMouseLeave,onNodeContextMenu:this.onNodeContextMenu,onNodeDragStart:this.onNodeDragStart,onNodeDragEnter:this.onNodeDragEnter,onNodeDragOver:this.onNodeDragOver,onNodeDragLeave:this.onNodeDragLeave,onNodeDragEnd:this.onNodeDragEnd,onNodeDrop:this.onNodeDrop};return m.createElement(HO.Provider,{value:X},m.createElement(\"div\",{className:ne(y,b,K,Z(Z(Z({},\"\".concat(y,\"-show-line\"),F),\"\".concat(y,\"-focused\"),i),\"\".concat(y,\"-active-focused\"),u!==null)),style:Y},m.createElement(n$e,Ce({ref:this.listRef,prefixCls:y,style:x,data:o,disabled:R,selectable:D,checkable:!!T,motion:P,dragging:s!==null,height:O,itemHeight:z,virtual:L,focusable:S,focused:i,tabIndex:w,activeItem:this.getActiveItem(),onFocus:this.onFocus,onBlur:this.onBlur,onKeyDown:this.onKeyDown,onActiveChange:this.onActiveChange,onListChangeStart:this.onListChangeStart,onListChangeEnd:this.onListChangeEnd,onContextMenu:V,onScroll:U,scrollWidth:W},this.getTreeNodeRequiredProps(),ee))))}}],[{key:\"getDerivedStateFromProps\",value:function(a,i){var o=i.prevProps,l={prevProps:a};function s(w){return!o&&a.hasOwnProperty(w)||o&&o[w]!==a[w]}var u,c=i.fieldNames;if(s(\"fieldNames\")&&(c=X0(a.fieldNames),l.fieldNames=c),s(\"treeData\")?u=a.treeData:s(\"children\")&&(jn(!1,\"`children` of Tree is deprecated. Please use `treeData` instead.\"),u=ble(a.children)),u){l.treeData=u;var d=DO(u,{fieldNames:c});l.keyEntities=ae(Z({},qp,jse),d.keyEntities)}var f=l.keyEntities||i.keyEntities;if(s(\"expandedKeys\")||o&&s(\"autoExpandParent\"))l.expandedKeys=a.autoExpandParent||!o&&a.defaultExpandParent?VR(a.expandedKeys,f):a.expandedKeys;else if(!o&&a.defaultExpandAll){var h=ae({},f);delete h[qp];var p=[];Object.keys(h).forEach(function(w){var D=h[w];D.children&&D.children.length&&p.push(D.key)}),l.expandedKeys=p}else!o&&a.defaultExpandedKeys&&(l.expandedKeys=a.autoExpandParent||a.defaultExpandParent?VR(a.defaultExpandedKeys,f):a.defaultExpandedKeys);if(l.expandedKeys||delete l.expandedKeys,u||l.expandedKeys){var v=V_(u||i.treeData,l.expandedKeys||i.expandedKeys,c);l.flattenNodes=v}if(a.selectable&&(s(\"selectedKeys\")?l.selectedKeys=QV(a.selectedKeys,a):!o&&a.defaultSelectedKeys&&(l.selectedKeys=QV(a.defaultSelectedKeys,a))),a.checkable){var g;if(s(\"checkedKeys\")?g=Q_(a.checkedKeys)||{}:!o&&a.defaultCheckedKeys?g=Q_(a.defaultCheckedKeys)||{}:u&&(g=Q_(a.checkedKeys)||{checkedKeys:i.checkedKeys,halfCheckedKeys:i.halfCheckedKeys}),g){var y=g,b=y.checkedKeys,x=b===void 0?[]:b,F=y.halfCheckedKeys,S=F===void 0?[]:F;if(!a.checkStrictly){var E=b0(x,!0,f);x=E.checkedKeys,S=E.halfCheckedKeys}l.checkedKeys=x,l.halfCheckedKeys=S}}return s(\"loadedKeys\")&&(l.loadedKeys=a.loadedKeys),l}}]),r}(m.Component);Z(WO,\"defaultProps\",{prefixCls:\"rc-tree\",showLine:!1,showIcon:!0,selectable:!0,multiple:!1,checkable:!1,disabled:!1,checkStrictly:!1,draggable:!1,defaultExpandParent:!0,autoExpandParent:!1,defaultExpandAll:!1,defaultExpandedKeys:[],defaultCheckedKeys:[],defaultSelectedKeys:[],dropIndicatorRender:qNe,allowDrop:function(){return!0},expandAction:!1});Z(WO,\"TreeNode\",i2);var i$e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\"}}]},name:\"file\",theme:\"outlined\"},o$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:i$e}))},zse=m.forwardRef(o$e),l$e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 00-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12 0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z\"}}]},name:\"folder-open\",theme:\"outlined\"},s$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:l$e}))},u$e=m.forwardRef(s$e),c$e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M880 298.4H521L403.7 186.2a8.15 8.15 0 00-5.5-2.2H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330.4c0-17.7-14.3-32-32-32zM840 768H184V256h188.5l119.6 114.4H840V768z\"}}]},name:\"folder\",theme:\"outlined\"},d$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:c$e}))},f$e=m.forwardRef(d$e),h$e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M300 276.5a56 56 0 1056-97 56 56 0 00-56 97zm0 284a56 56 0 1056-97 56 56 0 00-56 97zM640 228a56 56 0 10112 0 56 56 0 00-112 0zm0 284a56 56 0 10112 0 56 56 0 00-112 0zM300 844.5a56 56 0 1056-97 56 56 0 00-56 97zM640 796a56 56 0 10112 0 56 56 0 00-112 0z\"}}]},name:\"holder\",theme:\"outlined\"},p$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:h$e}))},m$e=m.forwardRef(p$e);const v$e=({treeCls:e,treeNodeCls:t,directoryNodeSelectedBg:r,directoryNodeSelectedColor:n,motionDurationMid:a,borderRadius:i,controlItemBgHover:o})=>({[`${e}${e}-directory ${t}`]:{[`${e}-node-content-wrapper`]:{position:\"static\",[`&:has(${e}-drop-indicator)`]:{position:\"relative\"},[`> *:not(${e}-drop-indicator)`]:{position:\"relative\"},\"&:hover\":{background:\"transparent\"},\"&:before\":{position:\"absolute\",inset:0,transition:`background-color ${a}`,content:'\"\"',borderRadius:i},\"&:hover:before\":{background:o}},[`${e}-switcher, ${e}-checkbox, ${e}-draggable-icon`]:{zIndex:1},\"&-selected\":{background:r,borderRadius:i,[`${e}-switcher, ${e}-draggable-icon`]:{color:n},[`${e}-node-content-wrapper`]:{color:n,background:\"transparent\",\"&, &:hover\":{color:n},\"&:before, &:hover:before\":{background:r}}}}}),g$e=new Br(\"ant-tree-node-fx-do-not-use\",{\"0%\":{opacity:0},\"100%\":{opacity:1}}),y$e=(e,t)=>({[`.${e}-switcher-icon`]:{display:\"inline-block\",fontSize:10,verticalAlign:\"baseline\",svg:{transition:`transform ${t.motionDurationSlow}`}}}),b$e=(e,t)=>({[`.${e}-drop-indicator`]:{position:\"absolute\",zIndex:1,height:2,backgroundColor:t.colorPrimary,borderRadius:1,pointerEvents:\"none\",\"&:after\":{position:\"absolute\",top:-3,insetInlineStart:-6,width:8,height:8,backgroundColor:\"transparent\",border:`${re(t.lineWidthBold)} solid ${t.colorPrimary}`,borderRadius:\"50%\",content:'\"\"'}}}),x$e=(e,t)=>{const{treeCls:r,treeNodeCls:n,treeNodePadding:a,titleHeight:i,indentSize:o,nodeSelectedBg:l,nodeHoverBg:s,colorTextQuaternary:u,controlItemBgActiveDisabled:c}=t;return{[r]:Object.assign(Object.assign({},Hr(t)),{\"--rc-virtual-list-scrollbar-bg\":t.colorSplit,background:t.colorBgContainer,borderRadius:t.borderRadius,transition:`background-color ${t.motionDurationSlow}`,\"&-rtl\":{direction:\"rtl\"},[`&${r}-rtl ${r}-switcher_close ${r}-switcher-icon svg`]:{transform:\"rotate(90deg)\"},[`&-focused:not(:hover):not(${r}-active-focused)`]:uc(t),[`${r}-list-holder-inner`]:{alignItems:\"flex-start\"},[`&${r}-block-node`]:{[`${r}-list-holder-inner`]:{alignItems:\"stretch\",[`${r}-node-content-wrapper`]:{flex:\"auto\"},[`${n}.dragging:after`]:{position:\"absolute\",inset:0,border:`1px solid ${t.colorPrimary}`,opacity:0,animationName:g$e,animationDuration:t.motionDurationSlow,animationPlayState:\"running\",animationFillMode:\"forwards\",content:'\"\"',pointerEvents:\"none\",borderRadius:t.borderRadius}}},[n]:{display:\"flex\",alignItems:\"flex-start\",marginBottom:a,lineHeight:re(i),position:\"relative\",\"&:before\":{content:'\"\"',position:\"absolute\",zIndex:1,insetInlineStart:0,width:\"100%\",top:\"100%\",height:a},[`&-disabled ${r}-node-content-wrapper`]:{color:t.colorTextDisabled,cursor:\"not-allowed\",\"&:hover\":{background:\"transparent\"}},[`${r}-checkbox-disabled + ${r}-node-selected,&${n}-disabled${n}-selected ${r}-node-content-wrapper`]:{backgroundColor:c},[`${r}-checkbox-disabled`]:{pointerEvents:\"unset\"},[`&:not(${n}-disabled)`]:{[`${r}-node-content-wrapper`]:{\"&:hover\":{color:t.nodeHoverColor}}},[`&-active ${r}-node-content-wrapper`]:{background:t.controlItemBgHover},[`&:not(${n}-disabled).filter-node ${r}-title`]:{color:t.colorPrimary,fontWeight:t.fontWeightStrong},\"&-draggable\":{cursor:\"grab\",[`${r}-draggable-icon`]:{flexShrink:0,width:i,textAlign:\"center\",visibility:\"visible\",color:u},[`&${n}-disabled ${r}-draggable-icon`]:{visibility:\"hidden\"}}},[`${r}-indent`]:{alignSelf:\"stretch\",whiteSpace:\"nowrap\",userSelect:\"none\",\"&-unit\":{display:\"inline-block\",width:o}},[`${r}-draggable-icon`]:{visibility:\"hidden\"},[`${r}-switcher, ${r}-checkbox`]:{marginInlineEnd:t.calc(t.calc(i).sub(t.controlInteractiveSize)).div(2).equal()},[`${r}-switcher`]:Object.assign(Object.assign({},y$e(e,t)),{position:\"relative\",flex:\"none\",alignSelf:\"stretch\",width:i,textAlign:\"center\",cursor:\"pointer\",userSelect:\"none\",transition:`all ${t.motionDurationSlow}`,\"&-noop\":{cursor:\"unset\"},\"&:before\":{pointerEvents:\"none\",content:'\"\"',width:i,height:i,position:\"absolute\",left:{_skip_check_:!0,value:0},top:0,borderRadius:t.borderRadius,transition:`all ${t.motionDurationSlow}`},[`&:not(${r}-switcher-noop):hover:before`]:{backgroundColor:t.colorBgTextHover},[`&_close ${r}-switcher-icon svg`]:{transform:\"rotate(-90deg)\"},\"&-loading-icon\":{color:t.colorPrimary},\"&-leaf-line\":{position:\"relative\",zIndex:1,display:\"inline-block\",width:\"100%\",height:\"100%\",\"&:before\":{position:\"absolute\",top:0,insetInlineEnd:t.calc(i).div(2).equal(),bottom:t.calc(a).mul(-1).equal(),marginInlineStart:-1,borderInlineEnd:`1px solid ${t.colorBorder}`,content:'\"\"'},\"&:after\":{position:\"absolute\",width:t.calc(t.calc(i).div(2).equal()).mul(.8).equal(),height:t.calc(i).div(2).equal(),borderBottom:`1px solid ${t.colorBorder}`,content:'\"\"'}}}),[`${r}-node-content-wrapper`]:Object.assign(Object.assign({position:\"relative\",minHeight:i,paddingBlock:0,paddingInline:t.paddingXS,background:\"transparent\",borderRadius:t.borderRadius,cursor:\"pointer\",transition:`all ${t.motionDurationMid}, border 0s, line-height 0s, box-shadow 0s`},b$e(e,t)),{\"&:hover\":{backgroundColor:s},[`&${r}-node-selected`]:{color:t.nodeSelectedColor,backgroundColor:l},[`${r}-iconEle`]:{display:\"inline-block\",width:i,height:i,textAlign:\"center\",verticalAlign:\"top\",\"&:empty\":{display:\"none\"}}}),[`${r}-unselectable ${r}-node-content-wrapper:hover`]:{backgroundColor:\"transparent\"},[`${n}.drop-container > [draggable]`]:{boxShadow:`0 0 0 2px ${t.colorPrimary}`},\"&-show-line\":{[`${r}-indent-unit`]:{position:\"relative\",height:\"100%\",\"&:before\":{position:\"absolute\",top:0,insetInlineEnd:t.calc(i).div(2).equal(),bottom:t.calc(a).mul(-1).equal(),borderInlineEnd:`1px solid ${t.colorBorder}`,content:'\"\"'},\"&-end:before\":{display:\"none\"}},[`${r}-switcher`]:{background:\"transparent\",\"&-line-icon\":{verticalAlign:\"-0.15em\"}}},[`${n}-leaf-last ${r}-switcher-leaf-line:before`]:{top:\"auto !important\",bottom:\"auto !important\",height:`${re(t.calc(i).div(2).equal())} !important`}})}},C$e=(e,t,r=!0)=>{const n=`.${e}`,a=`${n}-treenode`,i=t.calc(t.paddingXS).div(2).equal(),o=Sr(t,{treeCls:n,treeNodeCls:a,treeNodePadding:i});return[x$e(e,o),r&&v$e(o)].filter(Boolean)},F$e=e=>{const{controlHeightSM:t,controlItemBgHover:r,controlItemBgActive:n}=e,a=t;return{titleHeight:a,indentSize:a,nodeHoverBg:r,nodeHoverColor:e.colorText,nodeSelectedBg:n,nodeSelectedColor:e.colorText}},S$e=e=>{const{colorTextLightSolid:t,colorPrimary:r}=e;return Object.assign(Object.assign({},F$e(e)),{directoryNodeSelectedColor:t,directoryNodeSelectedBg:r})},w$e=kr(\"Tree\",(e,{prefixCls:t})=>[{[e.componentCls]:Cle(`${t}-checkbox`,e)},C$e(t,e),cx(e)],S$e),oW=4;function E$e(e){const{dropPosition:t,dropLevelOffset:r,prefixCls:n,indent:a,direction:i=\"ltr\"}=e,o=i===\"ltr\"?\"left\":\"right\",l=i===\"ltr\"?\"right\":\"left\",s={[o]:-r*a+oW,[l]:0};switch(t){case-1:s.top=-3;break;case 1:s.bottom=-3;break;default:s.bottom=-3,s[o]=a+oW;break}return le.createElement(\"div\",{style:s,className:`${n}-drop-indicator`})}var D$e={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\"}}]},name:\"caret-down\",theme:\"filled\"},A$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:D$e}))},_$e=m.forwardRef(A$e),T$e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M328 544h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}},{tag:\"path\",attrs:{d:\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]},name:\"minus-square\",theme:\"outlined\"},I$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:T$e}))},k$e=m.forwardRef(I$e),R$e={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M328 544h152v152c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V544h152c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H544V328c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v152H328c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8z\"}},{tag:\"path\",attrs:{d:\"M880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\"}}]},name:\"plus-square\",theme:\"outlined\"},M$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:R$e}))},P$e=m.forwardRef(M$e);const O$e=e=>{var t,r;const{prefixCls:n,switcherIcon:a,treeNodeProps:i,showLine:o,switcherLoadingIcon:l}=e,{isLeaf:s,expanded:u,loading:c}=i;if(c)return m.isValidElement(l)?l:m.createElement(cc,{className:`${n}-switcher-loading-icon`});let d;if(o&&typeof o==\"object\"&&(d=o.showLeafIcon),s){if(!o)return null;if(typeof d!=\"boolean\"&&d){const p=typeof d==\"function\"?d(i):d,v=`${n}-switcher-line-custom-icon`;return m.isValidElement(p)?oa(p,{className:ne((t=p.props)===null||t===void 0?void 0:t.className,v)}):p}return d?m.createElement(zse,{className:`${n}-switcher-line-icon`}):m.createElement(\"span\",{className:`${n}-switcher-leaf-line`})}const f=`${n}-switcher-icon`,h=typeof a==\"function\"?a(i):a;return m.isValidElement(h)?oa(h,{className:ne((r=h.props)===null||r===void 0?void 0:r.className,f)}):h!==void 0?h:o?u?m.createElement(k$e,{className:`${n}-switcher-line-icon`}):m.createElement(P$e,{className:`${n}-switcher-line-icon`}):m.createElement(_$e,{className:f})},Hse=le.forwardRef((e,t)=>{var r;const{getPrefixCls:n,direction:a,virtual:i,tree:o}=le.useContext(Ot),{prefixCls:l,className:s,showIcon:u=!1,showLine:c,switcherIcon:d,switcherLoadingIcon:f,blockNode:h=!1,children:p,checkable:v=!1,selectable:g=!0,draggable:y,disabled:b,motion:x,style:F}=e,S=n(\"tree\",l),E=n(),w=le.useContext(Ui),D=b??w,A=x??Object.assign(Object.assign({},K0(E)),{motionAppear:!1}),_=Object.assign(Object.assign({},e),{checkable:v,selectable:g,showIcon:u,motion:A,blockNode:h,disabled:D,showLine:!!c,dropIndicatorRender:E$e}),[I,M,T]=w$e(S),[,k]=Mi(),R=k.paddingXS/2+(((r=k.Tree)===null||r===void 0?void 0:r.titleHeight)||k.controlHeightSM),P=le.useMemo(()=>{if(!y)return!1;let N={};switch(typeof y){case\"function\":N.nodeDraggable=y;break;case\"object\":N=Object.assign({},y);break}return N.icon!==!1&&(N.icon=N.icon||le.createElement(m$e,null)),N},[y]),B=N=>le.createElement(O$e,{prefixCls:S,switcherIcon:d,switcherLoadingIcon:f,treeNodeProps:N,showLine:c});return I(le.createElement(WO,Object.assign({itemHeight:R,ref:t,virtual:i},_,{style:Object.assign(Object.assign({},o==null?void 0:o.style),F),prefixCls:S,className:ne({[`${S}-icon-hide`]:!u,[`${S}-block-node`]:h,[`${S}-unselectable`]:!g,[`${S}-rtl`]:a===\"rtl\",[`${S}-disabled`]:D},o==null?void 0:o.className,s,M,T),direction:a,checkable:v&&le.createElement(\"span\",{className:`${S}-checkbox-inner`}),selectable:g,switcherIcon:B,draggable:P}),p))}),lW=0,e5=1,sW=2;function GO(e,t,r){const{key:n,children:a}=r;function i(o){const l=o[n],s=o[a];t(l,o)!==!1&&GO(s||[],t,r)}e.forEach(i)}function B$e({treeData:e,expandedKeys:t,startKey:r,endKey:n,fieldNames:a}){const i=[];let o=lW;if(r&&r===n)return[r];if(!r||!n)return[];function l(s){return s===r||s===n}return GO(e,s=>{if(o===sW)return!1;if(l(s)){if(i.push(s),o===lW)o=e5;else if(o===e5)return o=sW,!1}else o===e5&&i.push(s);return t.includes(s)},X0(a)),i}function t5(e,t,r){const n=He(t),a=[];return GO(e,(i,o)=>{const l=n.indexOf(i);return l!==-1&&(a.push(o),n.splice(l,1)),!!n.length},X0(r)),a}var uW=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function N$e(e){const{isLeaf:t,expanded:r}=e;return t?m.createElement(zse,null):r?m.createElement(u$e,null):m.createElement(f$e,null)}function cW({treeData:e,children:t}){return e||ble(t)}const $$e=(e,t)=>{var{defaultExpandAll:r,defaultExpandParent:n,defaultExpandedKeys:a}=e,i=uW(e,[\"defaultExpandAll\",\"defaultExpandParent\",\"defaultExpandedKeys\"]);const o=m.useRef(null),l=m.useRef(null),s=()=>{const{keyEntities:D}=DO(cW(i),{fieldNames:i.fieldNames});let A;return r?A=Object.keys(D):n?A=VR(i.expandedKeys||a||[],D):A=i.expandedKeys||a||[],A},[u,c]=m.useState(i.selectedKeys||i.defaultSelectedKeys||[]),[d,f]=m.useState(()=>s());m.useEffect(()=>{\"selectedKeys\"in i&&c(i.selectedKeys)},[i.selectedKeys]),m.useEffect(()=>{\"expandedKeys\"in i&&f(i.expandedKeys)},[i.expandedKeys]);const h=(D,A)=>{var _;return\"expandedKeys\"in i||f(D),(_=i.onExpand)===null||_===void 0?void 0:_.call(i,D,A)},p=(D,A)=>{var _;const{multiple:I,fieldNames:M}=i,{node:T,nativeEvent:k}=A,{key:R=\"\"}=T,P=cW(i),B=Object.assign(Object.assign({},A),{selected:!0}),N=(k==null?void 0:k.ctrlKey)||(k==null?void 0:k.metaKey),O=k==null?void 0:k.shiftKey;let z;I&&N?(z=D,o.current=R,l.current=z,B.selectedNodes=t5(P,z,M)):I&&O?(z=Array.from(new Set([].concat(He(l.current||[]),He(B$e({treeData:P,expandedKeys:d,startKey:R,endKey:o.current,fieldNames:M}))))),B.selectedNodes=t5(P,z,M)):(z=[R],o.current=R,l.current=z,B.selectedNodes=t5(P,z,M)),(_=i.onSelect)===null||_===void 0||_.call(i,z,B),\"selectedKeys\"in i||c(z)},{getPrefixCls:v,direction:g}=m.useContext(Ot),{prefixCls:y,className:b,showIcon:x=!0,expandAction:F=\"click\"}=i,S=uW(i,[\"prefixCls\",\"className\",\"showIcon\",\"expandAction\"]),E=v(\"tree\",y),w=ne(`${E}-directory`,{[`${E}-directory-rtl`]:g===\"rtl\"},b);return m.createElement(Hse,Object.assign({icon:N$e,ref:t,blockNode:!0},S,{showIcon:x,expandAction:F,prefixCls:E,className:w,expandedKeys:d,selectedKeys:u,onSelect:p,onExpand:h}))},L$e=m.forwardRef($$e),UO=Hse;UO.DirectoryTree=L$e;UO.TreeNode=i2;const dW=e=>{const{value:t,filterSearch:r,tablePrefixCls:n,locale:a,onChange:i}=e;return r?m.createElement(\"div\",{className:`${n}-filter-dropdown-search`},m.createElement(Dx,{prefix:m.createElement(xa,null),placeholder:a.filterSearchPlaceholder,onChange:i,value:t,htmlSize:1,className:`${n}-filter-dropdown-search-input`})):null},j$e=e=>{const{keyCode:t}=e;t===It.ENTER&&e.stopPropagation()},z$e=m.forwardRef((e,t)=>m.createElement(\"div\",{className:e.className,onClick:r=>r.stopPropagation(),onKeyDown:j$e,ref:t},e.children));function x0(e){let t=[];return(e||[]).forEach(({value:r,children:n})=>{t.push(r),n&&(t=[].concat(He(t),He(x0(n))))}),t}function H$e(e){return e.some(({children:t})=>t)}function Vse(e,t){return typeof t==\"string\"||typeof t==\"number\"?t==null?void 0:t.toString().toLowerCase().includes(e.trim().toLowerCase()):!1}function Wse({filters:e,prefixCls:t,filteredKeys:r,filterMultiple:n,searchValue:a,filterSearch:i}){return e.map((o,l)=>{const s=String(o.value);if(o.children)return{key:s||l,label:o.text,popupClassName:`${t}-dropdown-submenu`,children:Wse({filters:o.children,prefixCls:t,filteredKeys:r,filterMultiple:n,searchValue:a,filterSearch:i})};const u=n?J0:Ti,c={key:o.value!==void 0?s:l,label:m.createElement(m.Fragment,null,m.createElement(u,{checked:r.includes(s)}),m.createElement(\"span\",null,o.text))};return a.trim()?typeof i==\"function\"?i(a,o)?c:null:Vse(a,o.text)?c:null:c})}function r5(e){return e||[]}const V$e=e=>{var t,r,n,a;const{tablePrefixCls:i,prefixCls:o,column:l,dropdownPrefixCls:s,columnKey:u,filterOnClose:c,filterMultiple:d,filterMode:f=\"menu\",filterSearch:h=!1,filterState:p,triggerFilter:v,locale:g,children:y,getPopupContainer:b,rootClassName:x}=e,{filterResetToDefaultFilteredValue:F,defaultFilteredValue:S,filterDropdownProps:E={},filterDropdownOpen:w,filterDropdownVisible:D,onFilterDropdownVisibleChange:A,onFilterDropdownOpenChange:_}=l,[I,M]=m.useState(!1),T=!!(p&&(!((t=p.filteredKeys)===null||t===void 0)&&t.length||p.forceFiltered)),k=ye=>{var we;M(ye),(we=E.onOpenChange)===null||we===void 0||we.call(E,ye),_==null||_(ye),A==null||A(ye)},R=(a=(n=(r=E.open)!==null&&r!==void 0?r:w)!==null&&n!==void 0?n:D)!==null&&a!==void 0?a:I,P=p==null?void 0:p.filteredKeys,[B,N]=Dwe(r5(P)),O=({selectedKeys:ye})=>{N(ye)},z=(ye,{node:we,checked:Fe})=>{O(d?{selectedKeys:ye}:{selectedKeys:Fe&&we.key?[we.key]:[]})};m.useEffect(()=>{I&&O({selectedKeys:r5(P)})},[P]);const[W,L]=m.useState([]),j=ye=>{L(ye)},[H,V]=m.useState(\"\"),U=ye=>{const{value:we}=ye.target;V(we)};m.useEffect(()=>{I||V(\"\")},[I]);const Q=ye=>{const we=ye!=null&&ye.length?ye:null;if(we===null&&(!p||!p.filteredKeys)||vu(we,p==null?void 0:p.filteredKeys,!0))return null;v({column:l,key:u,filteredKeys:we})},K=()=>{k(!1),Q(B())},Y=({confirm:ye,closeDropdown:we}={confirm:!1,closeDropdown:!1})=>{ye&&Q([]),we&&k(!1),V(\"\"),N(F?(S||[]).map(Fe=>String(Fe)):[])},ee=({closeDropdown:ye}={closeDropdown:!0})=>{ye&&k(!1),Q(B())},J=(ye,we)=>{we.source===\"trigger\"&&(ye&&P!==void 0&&N(r5(P)),k(ye),!ye&&!l.filterDropdown&&c&&K())},X=ne({[`${s}-menu-without-submenu`]:!H$e(l.filters||[])}),ce=ye=>{if(ye.target.checked){const we=x0(l==null?void 0:l.filters).map(Fe=>String(Fe));N(we)}else N([])},oe=({filters:ye})=>(ye||[]).map((we,Fe)=>{const me=String(we.value),Me={title:we.text,key:we.value!==void 0?me:String(Fe)};return we.children&&(Me.children=oe({filters:we.children})),Me}),ue=ye=>{var we;return Object.assign(Object.assign({},ye),{text:ye.title,value:ye.key,children:((we=ye.children)===null||we===void 0?void 0:we.map(Fe=>ue(Fe)))||[]})};let ie;const{direction:fe,renderEmpty:xe}=m.useContext(Ot);if(typeof l.filterDropdown==\"function\")ie=l.filterDropdown({prefixCls:`${s}-custom`,setSelectedKeys:ye=>O({selectedKeys:ye}),selectedKeys:B(),confirm:ee,clearFilters:Y,filters:l.filters,visible:R,close:()=>{k(!1)}});else if(l.filterDropdown)ie=l.filterDropdown;else{const ye=B()||[],we=()=>{var me,Me;const je=(me=xe==null?void 0:xe(\"Table.filter\"))!==null&&me!==void 0?me:m.createElement(ra,{image:ra.PRESENTED_IMAGE_SIMPLE,description:g.filterEmptyText,styles:{image:{height:24}},style:{margin:0,padding:\"16px 0\"}});if((l.filters||[]).length===0)return je;if(f===\"tree\")return m.createElement(m.Fragment,null,m.createElement(dW,{filterSearch:h,value:H,onChange:U,tablePrefixCls:i,locale:g}),m.createElement(\"div\",{className:`${i}-filter-dropdown-tree`},d?m.createElement(J0,{checked:ye.length===x0(l.filters).length,indeterminate:ye.length>0&&ye.length<x0(l.filters).length,className:`${i}-filter-dropdown-checkall`,onChange:ce},(Me=g==null?void 0:g.filterCheckall)!==null&&Me!==void 0?Me:g==null?void 0:g.filterCheckAll):null,m.createElement(UO,{checkable:!0,selectable:!1,blockNode:!0,multiple:d,checkStrictly:!d,className:`${s}-menu`,onCheck:z,checkedKeys:ye,selectedKeys:ye,showIcon:!1,treeData:oe({filters:l.filters}),autoExpandParent:!0,defaultExpandAll:!0,filterTreeNode:H.trim()?rt=>typeof h==\"function\"?h(H,ue(rt)):Vse(H,rt.title):void 0})));const lt=Wse({filters:l.filters||[],filterSearch:h,prefixCls:o,filteredKeys:B(),filterMultiple:d,searchValue:H}),tt=lt.every(rt=>rt===null);return m.createElement(m.Fragment,null,m.createElement(dW,{filterSearch:h,value:H,onChange:U,tablePrefixCls:i,locale:g}),tt?je:m.createElement(ym,{selectable:!0,multiple:d,prefixCls:`${s}-menu`,className:X,onSelect:O,onDeselect:O,selectedKeys:ye,getPopupContainer:b,openKeys:W,onOpenChange:j,items:lt}))},Fe=()=>F?vu((S||[]).map(me=>String(me)),ye,!0):ye.length===0;ie=m.createElement(m.Fragment,null,we(),m.createElement(\"div\",{className:`${o}-dropdown-btns`},m.createElement(ze,{type:\"link\",size:\"small\",disabled:Fe(),onClick:()=>Y()},g.filterReset),m.createElement(ze,{type:\"primary\",size:\"small\",onClick:K},g.filterConfirm)))}l.filterDropdown&&(ie=m.createElement(loe,{selectable:void 0},ie)),ie=m.createElement(z$e,{className:`${o}-dropdown`},ie);const De=Jb({trigger:[\"click\"],placement:fe===\"rtl\"?\"bottomLeft\":\"bottomRight\",children:(()=>{let ye;return typeof l.filterIcon==\"function\"?ye=l.filterIcon(T):l.filterIcon?ye=l.filterIcon:ye=m.createElement(YNe,null),m.createElement(\"span\",{role:\"button\",tabIndex:-1,className:ne(`${o}-trigger`,{active:T}),onClick:we=>{we.stopPropagation()}},ye)})(),getPopupContainer:b},Object.assign(Object.assign({},E),{rootClassName:ne(x,E.rootClassName),open:R,onOpenChange:J,popupRender:()=>typeof(E==null?void 0:E.dropdownRender)==\"function\"?E.dropdownRender(ie):ie}));return m.createElement(\"div\",{className:`${o}-column`},m.createElement(\"span\",{className:`${i}-column-title`},y),m.createElement(Fd,Object.assign({},De)))},YR=(e,t,r)=>{let n=[];return(e||[]).forEach((a,i)=>{var o;const l=Pg(i,r),s=a.filterDropdown!==void 0;if(a.filters||s||\"onFilter\"in a)if(\"filteredValue\"in a){let u=a.filteredValue;s||(u=(o=u==null?void 0:u.map(String))!==null&&o!==void 0?o:u),n.push({column:a,key:Hf(a,l),filteredKeys:u,forceFiltered:a.filtered})}else n.push({column:a,key:Hf(a,l),filteredKeys:t&&a.defaultFilteredValue?a.defaultFilteredValue:void 0,forceFiltered:a.filtered});\"children\"in a&&(n=[].concat(He(n),He(YR(a.children,t,l))))}),n};function Gse(e,t,r,n,a,i,o,l,s){return r.map((u,c)=>{const d=Pg(c,l),{filterOnClose:f=!0,filterMultiple:h=!0,filterMode:p,filterSearch:v}=u;let g=u;if(g.filters||g.filterDropdown){const y=Hf(g,d),b=n.find(({key:x})=>y===x);g=Object.assign(Object.assign({},g),{title:x=>m.createElement(V$e,{tablePrefixCls:e,prefixCls:`${e}-filter`,dropdownPrefixCls:t,column:g,columnKey:y,filterState:b,filterOnClose:f,filterMultiple:h,filterMode:p,filterSearch:v,triggerFilter:i,locale:a,getPopupContainer:o,rootClassName:s},Y6(u.title,x))})}return\"children\"in g&&(g=Object.assign(Object.assign({},g),{children:Gse(e,t,g.children,n,a,i,o,d,s)})),g})}const fW=e=>{const t={};return e.forEach(({key:r,filteredKeys:n,column:a})=>{const i=r,{filters:o,filterDropdown:l}=a;if(l)t[i]=n||null;else if(Array.isArray(n)){const s=x0(o);t[i]=s.filter(u=>n.includes(String(u)))}else t[i]=null}),t},qR=(e,t,r)=>t.reduce((a,i)=>{const{column:{onFilter:o,filters:l},filteredKeys:s}=i;return o&&s&&s.length?a.map(u=>Object.assign({},u)).filter(u=>s.some(c=>{const d=x0(l),f=d.findIndex(p=>String(p)===String(c)),h=f!==-1?d[f]:c;return u[r]&&(u[r]=qR(u[r],t,r)),o(h,u)})):a},e),Use=e=>e.flatMap(t=>\"children\"in t?[t].concat(He(Use(t.children||[]))):[t]),W$e=e=>{const{prefixCls:t,dropdownPrefixCls:r,mergedColumns:n,onFilterChange:a,getPopupContainer:i,locale:o,rootClassName:l}=e;bc();const s=m.useMemo(()=>Use(n||[]),[n]),[u,c]=m.useState(()=>YR(s,!0)),d=m.useMemo(()=>{const v=YR(s,!1);if(v.length===0)return v;let g=!0;if(v.forEach(({filteredKeys:y})=>{y!==void 0&&(g=!1)}),g){const y=(s||[]).map((b,x)=>Hf(b,Pg(x)));return u.filter(({key:b})=>y.includes(b)).map(b=>{const x=s[y.indexOf(b.key)];return Object.assign(Object.assign({},b),{column:Object.assign(Object.assign({},b.column),x),forceFiltered:x.filtered})})}return v},[s,u]),f=m.useMemo(()=>fW(d),[d]),h=v=>{const g=d.filter(({key:y})=>y!==v.key);g.push(v),c(g),a(fW(g),g)};return[v=>Gse(t,r,v,d,o,h,i,void 0,l),d,f]},G$e=(e,t,r)=>{const n=m.useRef({});function a(i){var o;if(!n.current||n.current.data!==e||n.current.childrenColumnName!==t||n.current.getRowKey!==r){let s=function(u){u.forEach((c,d)=>{const f=r(c,d);l.set(f,c),c&&typeof c==\"object\"&&t in c&&s(c[t]||[])})};const l=new Map;s(e),n.current={data:e,childrenColumnName:t,kvMap:l,getRowKey:r}}return(o=n.current.kvMap)===null||o===void 0?void 0:o.get(i)}return[a]};var U$e=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Kse=10;function K$e(e,t){const r={current:e.current,pageSize:e.pageSize};return Object.keys(t&&typeof t==\"object\"?t:{}).forEach(a=>{const i=e[a];typeof i!=\"function\"&&(r[a]=i)}),r}function Y$e(e,t,r){const n=r&&typeof r==\"object\"?r:{},{total:a=0}=n,i=U$e(n,[\"total\"]),[o,l]=m.useState(()=>({current:\"defaultCurrent\"in i?i.defaultCurrent:1,pageSize:\"defaultPageSize\"in i?i.defaultPageSize:Kse})),s=Jb(o,i,{total:a>0?a:e}),u=Math.ceil((a||e)/s.pageSize);s.current>u&&(s.current=u||1);const c=(f,h)=>{l({current:f??1,pageSize:h||s.pageSize})},d=(f,h)=>{var p;r&&((p=r.onChange)===null||p===void 0||p.call(r,f,h)),c(f,h),t(f,h||(s==null?void 0:s.pageSize))};return r===!1?[{},()=>{}]:[Object.assign(Object.assign({},s),{onChange:d}),c]}var q$e={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M840.4 300H183.6c-19.7 0-30.7 20.8-18.5 35l328.4 380.8c9.4 10.9 27.5 10.9 37 0L858.9 335c12.2-14.2 1.2-35-18.5-35z\"}}]},name:\"caret-down\",theme:\"outlined\"},X$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:q$e}))},J$e=m.forwardRef(X$e),Z$e={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M858.9 689L530.5 308.2c-9.4-10.9-27.5-10.9-37 0L165.1 689c-12.2 14.2-1.2 35 18.5 35h656.8c19.7 0 30.7-20.8 18.5-35z\"}}]},name:\"caret-up\",theme:\"outlined\"},Q$e=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Z$e}))},eLe=m.forwardRef(Q$e);const dw=\"ascend\",n5=\"descend\",NE=e=>typeof e.sorter==\"object\"&&typeof e.sorter.multiple==\"number\"?e.sorter.multiple:!1,hW=e=>typeof e==\"function\"?e:e&&typeof e==\"object\"&&e.compare?e.compare:!1,tLe=(e,t)=>t?e[e.indexOf(t)+1]:e[0],XR=(e,t,r)=>{let n=[];const a=(i,o)=>{n.push({column:i,key:Hf(i,o),multiplePriority:NE(i),sortOrder:i.sortOrder})};return(e||[]).forEach((i,o)=>{const l=Pg(o,r);i.children?(\"sortOrder\"in i&&a(i,l),n=[].concat(He(n),He(XR(i.children,t,l)))):i.sorter&&(\"sortOrder\"in i?a(i,l):t&&i.defaultSortOrder&&n.push({column:i,key:Hf(i,l),multiplePriority:NE(i),sortOrder:i.defaultSortOrder}))}),n},Yse=(e,t,r,n,a,i,o,l)=>(t||[]).map((u,c)=>{const d=Pg(c,l);let f=u;if(f.sorter){const h=f.sortDirections||a,p=f.showSorterTooltip===void 0?o:f.showSorterTooltip,v=Hf(f,d),g=r.find(({key:A})=>A===v),y=g?g.sortOrder:null,b=tLe(h,y);let x;if(u.sortIcon)x=u.sortIcon({sortOrder:y});else{const A=h.includes(dw)&&m.createElement(eLe,{className:ne(`${e}-column-sorter-up`,{active:y===dw})}),_=h.includes(n5)&&m.createElement(J$e,{className:ne(`${e}-column-sorter-down`,{active:y===n5})});x=m.createElement(\"span\",{className:ne(`${e}-column-sorter`,{[`${e}-column-sorter-full`]:!!(A&&_)})},m.createElement(\"span\",{className:`${e}-column-sorter-inner`,\"aria-hidden\":\"true\"},A,_))}const{cancelSort:F,triggerAsc:S,triggerDesc:E}=i||{};let w=F;b===n5?w=E:b===dw&&(w=S);const D=typeof p==\"object\"?Object.assign({title:w},p):{title:w};f=Object.assign(Object.assign({},f),{className:ne(f.className,{[`${e}-column-sort`]:y}),title:A=>{const _=`${e}-column-sorters`,I=m.createElement(\"span\",{className:`${e}-column-title`},Y6(u.title,A)),M=m.createElement(\"div\",{className:_},I,x);return p?typeof p!=\"boolean\"&&(p==null?void 0:p.target)===\"sorter-icon\"?m.createElement(\"div\",{className:ne(_,`${_}-tooltip-target-sorter`)},I,m.createElement(Dr,Object.assign({},D),x)):m.createElement(Dr,Object.assign({},D),M):M},onHeaderCell:A=>{var _;const I=((_=u.onHeaderCell)===null||_===void 0?void 0:_.call(u,A))||{},M=I.onClick,T=I.onKeyDown;I.onClick=P=>{n({column:u,key:v,sortOrder:b,multiplePriority:NE(u)}),M==null||M(P)},I.onKeyDown=P=>{P.keyCode===It.ENTER&&(n({column:u,key:v,sortOrder:b,multiplePriority:NE(u)}),T==null||T(P))};const k=GNe(u.title,{}),R=k==null?void 0:k.toString();return y&&(I[\"aria-sort\"]=y===\"ascend\"?\"ascending\":\"descending\"),I[\"aria-label\"]=R||\"\",I.className=ne(I.className,`${e}-column-has-sorters`),I.tabIndex=0,u.ellipsis&&(I.title=(k??\"\").toString()),I}})}return\"children\"in f&&(f=Object.assign(Object.assign({},f),{children:Yse(e,f.children,r,n,a,i,o,d)})),f}),pW=e=>{const{column:t,sortOrder:r}=e;return{column:t,order:r,field:t.dataIndex,columnKey:t.key}},mW=e=>{const t=e.filter(({sortOrder:r})=>r).map(pW);if(t.length===0&&e.length){const r=e.length-1;return Object.assign(Object.assign({},pW(e[r])),{column:void 0,order:void 0,field:void 0,columnKey:void 0})}return t.length<=1?t[0]||{}:t},JR=(e,t,r)=>{const n=t.slice().sort((o,l)=>l.multiplePriority-o.multiplePriority),a=e.slice(),i=n.filter(({column:{sorter:o},sortOrder:l})=>hW(o)&&l);return i.length?a.sort((o,l)=>{for(let s=0;s<i.length;s+=1){const u=i[s],{column:{sorter:c},sortOrder:d}=u,f=hW(c);if(f&&d){const h=f(o,l,d);if(h!==0)return d===dw?h:-h}}return 0}).map(o=>{const l=o[r];return l?Object.assign(Object.assign({},o),{[r]:JR(l,t,r)}):o}):a},rLe=e=>{const{prefixCls:t,mergedColumns:r,sortDirections:n,tableLocale:a,showSorterTooltip:i,onSorterChange:o}=e,[l,s]=m.useState(()=>XR(r,!0)),u=(v,g)=>{const y=[];return v.forEach((b,x)=>{const F=Pg(x,g);if(y.push(Hf(b,F)),Array.isArray(b.children)){const S=u(b.children,F);y.push.apply(y,He(S))}}),y},c=m.useMemo(()=>{let v=!0;const g=XR(r,!1);if(!g.length){const F=u(r);return l.filter(({key:S})=>F.includes(S))}const y=[];function b(F){v?y.push(F):y.push(Object.assign(Object.assign({},F),{sortOrder:null}))}let x=null;return g.forEach(F=>{x===null?(b(F),F.sortOrder&&(F.multiplePriority===!1?v=!1:x=!0)):(x&&F.multiplePriority!==!1||(v=!1),b(F))}),y},[r,l]),d=m.useMemo(()=>{var v,g;const y=c.map(({column:b,sortOrder:x})=>({column:b,order:x}));return{sortColumns:y,sortColumn:(v=y[0])===null||v===void 0?void 0:v.column,sortOrder:(g=y[0])===null||g===void 0?void 0:g.order}},[c]),f=v=>{let g;v.multiplePriority===!1||!c.length||c[0].multiplePriority===!1?g=[v]:g=[].concat(He(c.filter(({key:y})=>y!==v.key)),[v]),s(g),o(mW(g),g)};return[v=>Yse(t,v,c,f,n,a,i),c,d,()=>mW(c)]},qse=(e,t)=>e.map(n=>{const a=Object.assign({},n);return a.title=Y6(n.title,t),\"children\"in a&&(a.children=qse(a.children,t)),a}),nLe=e=>[m.useCallback(r=>qse(r,e),[e])],aLe=Ose((e,t)=>{const{_renderTimes:r}=e,{_renderTimes:n}=t;return r!==n}),iLe=Nse((e,t)=>{const{_renderTimes:r}=e,{_renderTimes:n}=t;return r!==n}),oLe=e=>{const{componentCls:t,lineWidth:r,lineType:n,tableBorderColor:a,tableHeaderBg:i,tablePaddingVertical:o,tablePaddingHorizontal:l,calc:s}=e,u=`${re(r)} ${n} ${a}`,c=(d,f,h)=>({[`&${t}-${d}`]:{[`> ${t}-container`]:{[`> ${t}-content, > ${t}-body`]:{\"\\n > table > tbody > tr > th,\\n > table > tbody > tr > td\\n \":{[`> ${t}-expanded-row-fixed`]:{margin:`${re(s(f).mul(-1).equal())}\n ${re(s(s(h).add(r)).mul(-1).equal())}`}}}}}});return{[`${t}-wrapper`]:{[`${t}${t}-bordered`]:Object.assign(Object.assign(Object.assign({[`> ${t}-title`]:{border:u,borderBottom:0},[`> ${t}-container`]:{borderInlineStart:u,borderTop:u,[`\n > ${t}-content,\n > ${t}-header,\n > ${t}-body,\n > ${t}-summary\n `]:{\"> table\":{\"\\n > thead > tr > th,\\n > thead > tr > td,\\n > tbody > tr > th,\\n > tbody > tr > td,\\n > tfoot > tr > th,\\n > tfoot > tr > td\\n \":{borderInlineEnd:u},\"> thead\":{\"> tr:not(:last-child) > th\":{borderBottom:u},\"> tr > th::before\":{backgroundColor:\"transparent !important\"}},\"\\n > thead > tr,\\n > tbody > tr,\\n > tfoot > tr\\n \":{[`> ${t}-cell-fix-right-first::after`]:{borderInlineEnd:u}},\"\\n > tbody > tr > th,\\n > tbody > tr > td\\n \":{[`> ${t}-expanded-row-fixed`]:{margin:`${re(s(o).mul(-1).equal())} ${re(s(s(l).add(r)).mul(-1).equal())}`,\"&::after\":{position:\"absolute\",top:0,insetInlineEnd:r,bottom:0,borderInlineEnd:u,content:'\"\"'}}}}}},[`&${t}-scroll-horizontal`]:{[`> ${t}-container > ${t}-body`]:{\"> table > tbody\":{[`\n > tr${t}-expanded-row,\n > tr${t}-placeholder\n `]:{\"> th, > td\":{borderInlineEnd:0}}}}}},c(\"middle\",e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle)),c(\"small\",e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall)),{[`> ${t}-footer`]:{border:u,borderTop:0}}),[`${t}-cell`]:{[`${t}-container:first-child`]:{borderTop:0},\"&-scrollbar:not([rowspan])\":{boxShadow:`0 ${re(r)} 0 ${re(r)} ${i}`}},[`${t}-bordered ${t}-cell-scrollbar`]:{borderInlineEnd:u}}}},lLe=e=>{const{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-cell-ellipsis`]:Object.assign(Object.assign({},$l),{wordBreak:\"keep-all\",[`\n &${t}-cell-fix-left-last,\n &${t}-cell-fix-right-first\n `]:{overflow:\"visible\",[`${t}-cell-content`]:{display:\"block\",overflow:\"hidden\",textOverflow:\"ellipsis\"}},[`${t}-column-title`]:{overflow:\"hidden\",textOverflow:\"ellipsis\",wordBreak:\"keep-all\"}})}}},sLe=e=>{const{componentCls:t}=e;return{[`${t}-wrapper`]:{[`${t}-tbody > tr${t}-placeholder`]:{textAlign:\"center\",color:e.colorTextDisabled,\"\\n &:hover > th,\\n &:hover > td,\\n \":{background:e.colorBgContainer}}}}},uLe=e=>{const{componentCls:t,antCls:r,motionDurationSlow:n,lineWidth:a,paddingXS:i,lineType:o,tableBorderColor:l,tableExpandIconBg:s,tableExpandColumnWidth:u,borderRadius:c,tablePaddingVertical:d,tablePaddingHorizontal:f,tableExpandedRowBg:h,paddingXXS:p,expandIconMarginTop:v,expandIconSize:g,expandIconHalfInner:y,expandIconScale:b,calc:x}=e,F=`${re(a)} ${o} ${l}`,S=x(p).sub(a).equal();return{[`${t}-wrapper`]:{[`${t}-expand-icon-col`]:{width:u},[`${t}-row-expand-icon-cell`]:{textAlign:\"center\",[`${t}-row-expand-icon`]:{display:\"inline-flex\",float:\"none\",verticalAlign:\"sub\"}},[`${t}-row-indent`]:{height:1,float:\"left\"},[`${t}-row-expand-icon`]:Object.assign(Object.assign({},I7(e)),{position:\"relative\",float:\"left\",width:g,height:g,color:\"inherit\",lineHeight:re(g),background:s,border:F,borderRadius:c,transform:`scale(${b})`,\"&:focus, &:hover, &:active\":{borderColor:\"currentcolor\"},\"&::before, &::after\":{position:\"absolute\",background:\"currentcolor\",transition:`transform ${n} ease-out`,content:'\"\"'},\"&::before\":{top:y,insetInlineEnd:S,insetInlineStart:S,height:a},\"&::after\":{top:S,bottom:S,insetInlineStart:y,width:a,transform:\"rotate(90deg)\"},\"&-collapsed::before\":{transform:\"rotate(-180deg)\"},\"&-collapsed::after\":{transform:\"rotate(0deg)\"},\"&-spaced\":{\"&::before, &::after\":{display:\"none\",content:\"none\"},background:\"transparent\",border:0,visibility:\"hidden\"}}),[`${t}-row-indent + ${t}-row-expand-icon`]:{marginTop:v,marginInlineEnd:i},[`tr${t}-expanded-row`]:{\"&, &:hover\":{\"> th, > td\":{background:h}},[`${r}-descriptions-view`]:{display:\"flex\",table:{flex:\"auto\",width:\"100%\"}}},[`${t}-expanded-row-fixed`]:{position:\"relative\",margin:`${re(x(d).mul(-1).equal())} ${re(x(f).mul(-1).equal())}`,padding:`${re(d)} ${re(f)}`}}}},cLe=e=>{const{componentCls:t,antCls:r,iconCls:n,tableFilterDropdownWidth:a,tableFilterDropdownSearchWidth:i,paddingXXS:o,paddingXS:l,colorText:s,lineWidth:u,lineType:c,tableBorderColor:d,headerIconColor:f,fontSizeSM:h,tablePaddingHorizontal:p,borderRadius:v,motionDurationSlow:g,colorIcon:y,colorPrimary:b,tableHeaderFilterActiveBg:x,colorTextDisabled:F,tableFilterDropdownBg:S,tableFilterDropdownHeight:E,controlItemBgHover:w,controlItemBgActive:D,boxShadowSecondary:A,filterDropdownMenuBg:_,calc:I}=e,M=`${r}-dropdown`,T=`${t}-filter-dropdown`,k=`${r}-tree`,R=`${re(u)} ${c} ${d}`;return[{[`${t}-wrapper`]:{[`${t}-filter-column`]:{display:\"flex\",justifyContent:\"space-between\"},[`${t}-filter-trigger`]:{position:\"relative\",display:\"flex\",alignItems:\"center\",marginBlock:I(o).mul(-1).equal(),marginInline:`${re(o)} ${re(I(p).div(2).mul(-1).equal())}`,padding:`0 ${re(o)}`,color:f,fontSize:h,borderRadius:v,cursor:\"pointer\",transition:`all ${g}`,\"&:hover\":{color:y,background:x},\"&.active\":{color:b}}}},{[`${r}-dropdown`]:{[T]:Object.assign(Object.assign({},Hr(e)),{minWidth:a,backgroundColor:S,borderRadius:v,boxShadow:A,overflow:\"hidden\",[`${M}-menu`]:{maxHeight:E,overflowX:\"hidden\",border:0,boxShadow:\"none\",borderRadius:\"unset\",backgroundColor:_,\"&:empty::after\":{display:\"block\",padding:`${re(l)} 0`,color:F,fontSize:h,textAlign:\"center\",content:'\"Not Found\"'}},[`${T}-tree`]:{paddingBlock:`${re(l)} 0`,paddingInline:l,[k]:{padding:0},[`${k}-treenode ${k}-node-content-wrapper:hover`]:{backgroundColor:w},[`${k}-treenode-checkbox-checked ${k}-node-content-wrapper`]:{\"&, &:hover\":{backgroundColor:D}}},[`${T}-search`]:{padding:l,borderBottom:R,\"&-input\":{input:{minWidth:i},[n]:{color:F}}},[`${T}-checkall`]:{width:\"100%\",marginBottom:o,marginInlineStart:o},[`${T}-btns`]:{display:\"flex\",justifyContent:\"space-between\",padding:`${re(I(l).sub(u).equal())} ${re(l)}`,overflow:\"hidden\",borderTop:R}})}},{[`${r}-dropdown ${T}, ${T}-submenu`]:{[`${r}-checkbox-wrapper + span`]:{paddingInlineStart:l,color:s},\"> ul\":{maxHeight:\"calc(100vh - 130px)\",overflowX:\"hidden\",overflowY:\"auto\"}}}]},dLe=e=>{const{componentCls:t,lineWidth:r,colorSplit:n,motionDurationSlow:a,zIndexTableFixed:i,tableBg:o,zIndexTableSticky:l,calc:s}=e,u=n;return{[`${t}-wrapper`]:{[`\n ${t}-cell-fix-left,\n ${t}-cell-fix-right\n `]:{position:\"sticky !important\",zIndex:i,background:o},[`\n ${t}-cell-fix-left-first::after,\n ${t}-cell-fix-left-last::after\n `]:{position:\"absolute\",top:0,right:{_skip_check_:!0,value:0},bottom:s(r).mul(-1).equal(),width:30,transform:\"translateX(100%)\",transition:`box-shadow ${a}`,content:'\"\"',pointerEvents:\"none\",willChange:\"transform\"},[`${t}-cell-fix-left-all::after`]:{display:\"none\"},[`\n ${t}-cell-fix-right-first::after,\n ${t}-cell-fix-right-last::after\n `]:{position:\"absolute\",top:0,bottom:s(r).mul(-1).equal(),left:{_skip_check_:!0,value:0},width:30,transform:\"translateX(-100%)\",transition:`box-shadow ${a}`,content:'\"\"',pointerEvents:\"none\"},[`${t}-container`]:{position:\"relative\",\"&::before, &::after\":{position:\"absolute\",top:0,bottom:0,zIndex:s(l).add(1).equal({unit:!1}),width:30,transition:`box-shadow ${a}`,content:'\"\"',pointerEvents:\"none\"},\"&::before\":{insetInlineStart:0},\"&::after\":{insetInlineEnd:0}},[`${t}-ping-left`]:{[`&:not(${t}-has-fix-left) ${t}-container::before`]:{boxShadow:`inset 10px 0 8px -8px ${u}`},[`\n ${t}-cell-fix-left-first::after,\n ${t}-cell-fix-left-last::after\n `]:{boxShadow:`inset 10px 0 8px -8px ${u}`},[`${t}-cell-fix-left-last::before`]:{backgroundColor:\"transparent !important\"}},[`${t}-ping-right`]:{[`&:not(${t}-has-fix-right) ${t}-container::after`]:{boxShadow:`inset -10px 0 8px -8px ${u}`},[`\n ${t}-cell-fix-right-first::after,\n ${t}-cell-fix-right-last::after\n `]:{boxShadow:`inset -10px 0 8px -8px ${u}`}},[`${t}-fixed-column-gapped`]:{[`\n ${t}-cell-fix-left-first::after,\n ${t}-cell-fix-left-last::after,\n ${t}-cell-fix-right-first::after,\n ${t}-cell-fix-right-last::after\n `]:{boxShadow:\"none\"}}}}},fLe=e=>{const{componentCls:t,antCls:r,margin:n}=e;return{[`${t}-wrapper ${t}-pagination${r}-pagination`]:{margin:`${re(n)} 0`}}},hLe=e=>{const{componentCls:t,tableRadius:r}=e;return{[`${t}-wrapper`]:{[t]:{[`${t}-title, ${t}-header`]:{borderRadius:`${re(r)} ${re(r)} 0 0`},[`${t}-title + ${t}-container`]:{borderStartStartRadius:0,borderStartEndRadius:0,[`${t}-header, table`]:{borderRadius:0},\"table > thead > tr:first-child\":{\"th:first-child, th:last-child, td:first-child, td:last-child\":{borderRadius:0}}},\"&-container\":{borderStartStartRadius:r,borderStartEndRadius:r,\"table > thead > tr:first-child\":{\"> *:first-child\":{borderStartStartRadius:r},\"> *:last-child\":{borderStartEndRadius:r}}},\"&-footer\":{borderRadius:`0 0 ${re(r)} ${re(r)}`}}}}},pLe=e=>{const{componentCls:t}=e;return{[`${t}-wrapper-rtl`]:{direction:\"rtl\",table:{direction:\"rtl\"},[`${t}-pagination-left`]:{justifyContent:\"flex-end\"},[`${t}-pagination-right`]:{justifyContent:\"flex-start\"},[`${t}-row-expand-icon`]:{float:\"right\",\"&::after\":{transform:\"rotate(-90deg)\"},\"&-collapsed::before\":{transform:\"rotate(180deg)\"},\"&-collapsed::after\":{transform:\"rotate(0deg)\"}},[`${t}-container`]:{\"&::before\":{insetInlineStart:\"unset\",insetInlineEnd:0},\"&::after\":{insetInlineStart:0,insetInlineEnd:\"unset\"},[`${t}-row-indent`]:{float:\"right\"}}}}},mLe=e=>{const{componentCls:t,antCls:r,iconCls:n,fontSizeIcon:a,padding:i,paddingXS:o,headerIconColor:l,headerIconHoverColor:s,tableSelectionColumnWidth:u,tableSelectedRowBg:c,tableSelectedRowHoverBg:d,tableRowHoverBg:f,tablePaddingHorizontal:h,calc:p}=e;return{[`${t}-wrapper`]:{[`${t}-selection-col`]:{width:u,[`&${t}-selection-col-with-dropdown`]:{width:p(u).add(a).add(p(i).div(4)).equal()}},[`${t}-bordered ${t}-selection-col`]:{width:p(u).add(p(o).mul(2)).equal(),[`&${t}-selection-col-with-dropdown`]:{width:p(u).add(a).add(p(i).div(4)).add(p(o).mul(2)).equal()}},[`\n table tr th${t}-selection-column,\n table tr td${t}-selection-column,\n ${t}-selection-column\n `]:{paddingInlineEnd:e.paddingXS,paddingInlineStart:e.paddingXS,textAlign:\"center\",[`${r}-radio-wrapper`]:{marginInlineEnd:0}},[`table tr th${t}-selection-column${t}-cell-fix-left`]:{zIndex:p(e.zIndexTableFixed).add(1).equal({unit:!1})},[`table tr th${t}-selection-column::after`]:{backgroundColor:\"transparent !important\"},[`${t}-selection`]:{position:\"relative\",display:\"inline-flex\",flexDirection:\"column\"},[`${t}-selection-extra`]:{position:\"absolute\",top:0,zIndex:1,cursor:\"pointer\",transition:`all ${e.motionDurationSlow}`,marginInlineStart:\"100%\",paddingInlineStart:re(p(h).div(4).equal()),[n]:{color:l,fontSize:a,verticalAlign:\"baseline\",\"&:hover\":{color:s}}},[`${t}-tbody`]:{[`${t}-row`]:{[`&${t}-row-selected`]:{[`> ${t}-cell`]:{background:c,\"&-row-hover\":{background:d}}},[`> ${t}-cell-row-hover`]:{background:f}}}}}},vLe=e=>{const{componentCls:t,tableExpandColumnWidth:r,calc:n}=e,a=(i,o,l,s)=>({[`${t}${t}-${i}`]:{fontSize:s,[`\n ${t}-title,\n ${t}-footer,\n ${t}-cell,\n ${t}-thead > tr > th,\n ${t}-tbody > tr > th,\n ${t}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]:{padding:`${re(o)} ${re(l)}`},[`${t}-filter-trigger`]:{marginInlineEnd:re(n(l).div(2).mul(-1).equal())},[`${t}-expanded-row-fixed`]:{margin:`${re(n(o).mul(-1).equal())} ${re(n(l).mul(-1).equal())}`},[`${t}-tbody`]:{[`${t}-wrapper:only-child ${t}`]:{marginBlock:re(n(o).mul(-1).equal()),marginInline:`${re(n(r).sub(l).equal())} ${re(n(l).mul(-1).equal())}`}},[`${t}-selection-extra`]:{paddingInlineStart:re(n(l).div(4).equal())}}});return{[`${t}-wrapper`]:Object.assign(Object.assign({},a(\"middle\",e.tablePaddingVerticalMiddle,e.tablePaddingHorizontalMiddle,e.tableFontSizeMiddle)),a(\"small\",e.tablePaddingVerticalSmall,e.tablePaddingHorizontalSmall,e.tableFontSizeSmall))}},gLe=e=>{const{componentCls:t,marginXXS:r,fontSizeIcon:n,headerIconColor:a,headerIconHoverColor:i}=e;return{[`${t}-wrapper`]:{[`${t}-thead th${t}-column-has-sorters`]:{outline:\"none\",cursor:\"pointer\",transition:`all ${e.motionDurationSlow}, left 0s`,\"&:hover\":{background:e.tableHeaderSortHoverBg,\"&::before\":{backgroundColor:\"transparent !important\"}},\"&:focus-visible\":{color:e.colorPrimary},[`\n &${t}-cell-fix-left:hover,\n &${t}-cell-fix-right:hover\n `]:{background:e.tableFixedHeaderSortActiveBg}},[`${t}-thead th${t}-column-sort`]:{background:e.tableHeaderSortBg,\"&::before\":{backgroundColor:\"transparent !important\"}},[`td${t}-column-sort`]:{background:e.tableBodySortBg},[`${t}-column-title`]:{position:\"relative\",zIndex:1,flex:1,minWidth:0},[`${t}-column-sorters`]:{display:\"flex\",flex:\"auto\",alignItems:\"center\",justifyContent:\"space-between\",\"&::after\":{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",content:'\"\"'}},[`${t}-column-sorters-tooltip-target-sorter`]:{\"&::after\":{content:\"none\"}},[`${t}-column-sorter`]:{marginInlineStart:r,color:a,fontSize:0,transition:`color ${e.motionDurationSlow}`,\"&-inner\":{display:\"inline-flex\",flexDirection:\"column\",alignItems:\"center\"},\"&-up, &-down\":{fontSize:n,\"&.active\":{color:e.colorPrimary}},[`${t}-column-sorter-up + ${t}-column-sorter-down`]:{marginTop:\"-0.3em\"}},[`${t}-column-sorters:hover ${t}-column-sorter`]:{color:i}}}},yLe=e=>{const{componentCls:t,opacityLoading:r,tableScrollThumbBg:n,tableScrollThumbBgHover:a,tableScrollThumbSize:i,tableScrollBg:o,zIndexTableSticky:l,stickyScrollBarBorderRadius:s,lineWidth:u,lineType:c,tableBorderColor:d}=e,f=`${re(u)} ${c} ${d}`;return{[`${t}-wrapper`]:{[`${t}-sticky`]:{\"&-holder\":{position:\"sticky\",zIndex:l,background:e.colorBgContainer},\"&-scroll\":{position:\"sticky\",bottom:0,height:`${re(i)} !important`,zIndex:l,display:\"flex\",alignItems:\"center\",background:o,borderTop:f,opacity:r,\"&:hover\":{transformOrigin:\"center bottom\"},\"&-bar\":{height:i,backgroundColor:n,borderRadius:s,transition:`all ${e.motionDurationSlow}, transform 0s`,position:\"absolute\",bottom:0,\"&:hover, &-active\":{backgroundColor:a}}}}}}},vW=e=>{const{componentCls:t,lineWidth:r,tableBorderColor:n,calc:a}=e,i=`${re(r)} ${e.lineType} ${n}`;return{[`${t}-wrapper`]:{[`${t}-summary`]:{position:\"relative\",zIndex:e.zIndexTableFixed,background:e.tableBg,\"> tr\":{\"> th, > td\":{borderBottom:i}}},[`div${t}-summary`]:{boxShadow:`0 ${re(a(r).mul(-1).equal())} 0 ${n}`}}}},bLe=e=>{const{componentCls:t,motionDurationMid:r,lineWidth:n,lineType:a,tableBorderColor:i,calc:o}=e,l=`${re(n)} ${a} ${i}`,s=`${t}-expanded-row-cell`;return{[`${t}-wrapper`]:{[`${t}-tbody-virtual`]:{[`${t}-tbody-virtual-holder-inner`]:{[`\n & > ${t}-row, \n & > div:not(${t}-row) > ${t}-row\n `]:{display:\"flex\",boxSizing:\"border-box\",width:\"100%\"}},[`${t}-cell`]:{borderBottom:l,transition:`background ${r}`},[`${t}-expanded-row`]:{[`${s}${s}-fixed`]:{position:\"sticky\",insetInlineStart:0,overflow:\"hidden\",width:`calc(var(--virtual-width) - ${re(n)})`,borderInlineEnd:\"none\"}}},[`${t}-bordered`]:{[`${t}-tbody-virtual`]:{\"&:after\":{content:'\"\"',insetInline:0,bottom:0,borderBottom:l,position:\"absolute\"},[`${t}-cell`]:{borderInlineEnd:l,[`&${t}-cell-fix-right-first:before`]:{content:'\"\"',position:\"absolute\",insetBlock:0,insetInlineStart:o(n).mul(-1).equal(),borderInlineStart:l}}},[`&${t}-virtual`]:{[`${t}-placeholder ${t}-cell`]:{borderInlineEnd:l,borderBottom:l}}}}}},xLe=e=>{const{componentCls:t,fontWeightStrong:r,tablePaddingVertical:n,tablePaddingHorizontal:a,tableExpandColumnWidth:i,lineWidth:o,lineType:l,tableBorderColor:s,tableFontSize:u,tableBg:c,tableRadius:d,tableHeaderTextColor:f,motionDurationMid:h,tableHeaderBg:p,tableHeaderCellSplitColor:v,tableFooterTextColor:g,tableFooterBg:y,calc:b}=e,x=`${re(o)} ${l} ${s}`;return{[`${t}-wrapper`]:Object.assign(Object.assign({clear:\"both\",maxWidth:\"100%\",\"--rc-virtual-list-scrollbar-bg\":e.tableScrollBg},sc()),{[t]:Object.assign(Object.assign({},Hr(e)),{fontSize:u,background:c,borderRadius:`${re(d)} ${re(d)} 0 0`,scrollbarColor:`${e.tableScrollThumbBg} ${e.tableScrollBg}`}),table:{width:\"100%\",textAlign:\"start\",borderRadius:`${re(d)} ${re(d)} 0 0`,borderCollapse:\"separate\",borderSpacing:0},[`\n ${t}-cell,\n ${t}-thead > tr > th,\n ${t}-tbody > tr > th,\n ${t}-tbody > tr > td,\n tfoot > tr > th,\n tfoot > tr > td\n `]:{position:\"relative\",padding:`${re(n)} ${re(a)}`,overflowWrap:\"break-word\"},[`${t}-title`]:{padding:`${re(n)} ${re(a)}`},[`${t}-thead`]:{\"\\n > tr > th,\\n > tr > td\\n \":{position:\"relative\",color:f,fontWeight:r,textAlign:\"start\",background:p,borderBottom:x,transition:`background ${h} ease`,\"&[colspan]:not([colspan='1'])\":{textAlign:\"center\"},[`&:not(:last-child):not(${t}-selection-column):not(${t}-row-expand-icon-cell):not([colspan])::before`]:{position:\"absolute\",top:\"50%\",insetInlineEnd:0,width:1,height:\"1.6em\",backgroundColor:v,transform:\"translateY(-50%)\",transition:`background-color ${h}`,content:'\"\"'}},\"> tr:not(:last-child) > th[colspan]\":{borderBottom:0}},[`${t}-tbody`]:{\"> tr\":{\"> th, > td\":{transition:`background ${h}, border-color ${h}`,borderBottom:x,[`\n > ${t}-wrapper:only-child,\n > ${t}-expanded-row-fixed > ${t}-wrapper:only-child\n `]:{[t]:{marginBlock:re(b(n).mul(-1).equal()),marginInline:`${re(b(i).sub(a).equal())}\n ${re(b(a).mul(-1).equal())}`,[`${t}-tbody > tr:last-child > td`]:{borderBottomWidth:0,\"&:first-child, &:last-child\":{borderRadius:0}}}}},\"> th\":{position:\"relative\",color:f,fontWeight:r,textAlign:\"start\",background:p,borderBottom:x,transition:`background ${h} ease`},[`& > ${t}-measure-cell`]:{paddingBlock:\"0 !important\",borderBlock:\"0 !important\",[`${t}-measure-cell-content`]:{height:0,overflow:\"hidden\",pointerEvents:\"none\"}}}},[`${t}-footer`]:{padding:`${re(n)} ${re(a)}`,color:g,background:y}})}},CLe=e=>{const{colorFillAlter:t,colorBgContainer:r,colorTextHeading:n,colorFillSecondary:a,colorFillContent:i,controlItemBgActive:o,controlItemBgActiveHover:l,padding:s,paddingSM:u,paddingXS:c,colorBorderSecondary:d,borderRadiusLG:f,controlHeight:h,colorTextPlaceholder:p,fontSize:v,fontSizeSM:g,lineHeight:y,lineWidth:b,colorIcon:x,colorIconHover:F,opacityLoading:S,controlInteractiveSize:E}=e,w=new $r(a).onBackground(r).toHexString(),D=new $r(i).onBackground(r).toHexString(),A=new $r(t).onBackground(r).toHexString(),_=new $r(x),I=new $r(F),M=E/2-b,T=M*2+b*3;return{headerBg:A,headerColor:n,headerSortActiveBg:w,headerSortHoverBg:D,bodySortBg:A,rowHoverBg:A,rowSelectedBg:o,rowSelectedHoverBg:l,rowExpandedBg:t,cellPaddingBlock:s,cellPaddingInline:s,cellPaddingBlockMD:u,cellPaddingInlineMD:c,cellPaddingBlockSM:c,cellPaddingInlineSM:c,borderColor:d,headerBorderRadius:f,footerBg:A,footerColor:n,cellFontSize:v,cellFontSizeMD:v,cellFontSizeSM:v,headerSplitColor:d,fixedHeaderSortActiveBg:w,headerFilterHoverBg:i,filterDropdownMenuBg:r,filterDropdownBg:r,expandIconBg:r,selectionColumnWidth:h,stickyScrollBarBg:p,stickyScrollBarBorderRadius:100,expandIconMarginTop:(v*y-b*3)/2-Math.ceil((g*1.4-b*3)/2),headerIconColor:_.clone().setA(_.a*S).toRgbString(),headerIconHoverColor:I.clone().setA(I.a*S).toRgbString(),expandIconHalfInner:M,expandIconSize:T,expandIconScale:E/T}},gW=2,FLe=kr(\"Table\",e=>{const{colorTextHeading:t,colorSplit:r,colorBgContainer:n,controlInteractiveSize:a,headerBg:i,headerColor:o,headerSortActiveBg:l,headerSortHoverBg:s,bodySortBg:u,rowHoverBg:c,rowSelectedBg:d,rowSelectedHoverBg:f,rowExpandedBg:h,cellPaddingBlock:p,cellPaddingInline:v,cellPaddingBlockMD:g,cellPaddingInlineMD:y,cellPaddingBlockSM:b,cellPaddingInlineSM:x,borderColor:F,footerBg:S,footerColor:E,headerBorderRadius:w,cellFontSize:D,cellFontSizeMD:A,cellFontSizeSM:_,headerSplitColor:I,fixedHeaderSortActiveBg:M,headerFilterHoverBg:T,filterDropdownBg:k,expandIconBg:R,selectionColumnWidth:P,stickyScrollBarBg:B,calc:N}=e,O=Sr(e,{tableFontSize:D,tableBg:n,tableRadius:w,tablePaddingVertical:p,tablePaddingHorizontal:v,tablePaddingVerticalMiddle:g,tablePaddingHorizontalMiddle:y,tablePaddingVerticalSmall:b,tablePaddingHorizontalSmall:x,tableBorderColor:F,tableHeaderTextColor:o,tableHeaderBg:i,tableFooterTextColor:E,tableFooterBg:S,tableHeaderCellSplitColor:I,tableHeaderSortBg:l,tableHeaderSortHoverBg:s,tableBodySortBg:u,tableFixedHeaderSortActiveBg:M,tableHeaderFilterActiveBg:T,tableFilterDropdownBg:k,tableRowHoverBg:c,tableSelectedRowBg:d,tableSelectedRowHoverBg:f,zIndexTableFixed:gW,zIndexTableSticky:N(gW).add(1).equal({unit:!1}),tableFontSizeMiddle:A,tableFontSizeSmall:_,tableSelectionColumnWidth:P,tableExpandIconBg:R,tableExpandColumnWidth:N(a).add(N(e.padding).mul(2)).equal(),tableExpandedRowBg:h,tableFilterDropdownWidth:120,tableFilterDropdownHeight:264,tableFilterDropdownSearchWidth:140,tableScrollThumbSize:8,tableScrollThumbBg:B,tableScrollThumbBgHover:t,tableScrollBg:r});return[xLe(O),fLe(O),vW(O),gLe(O),cLe(O),oLe(O),hLe(O),uLe(O),vW(O),sLe(O),mLe(O),dLe(O),yLe(O),lLe(O),vLe(O),pLe(O),bLe(O)]},CLe,{unitless:{expandIconScale:!0}}),yW=[],SLe=(e,t)=>{var r,n;const{prefixCls:a,className:i,rootClassName:o,style:l,size:s,bordered:u,dropdownPrefixCls:c,dataSource:d,pagination:f,rowSelection:h,rowKey:p=\"key\",rowClassName:v,columns:g,children:y,childrenColumnName:b,onChange:x,getPopupContainer:F,loading:S,expandIcon:E,expandable:w,expandedRowRender:D,expandIconColumnIndex:A,indentSize:_,scroll:I,sortDirections:M,locale:T,showSorterTooltip:k={target:\"full-header\"},virtual:R}=e;bc();const P=m.useMemo(()=>g||jO(y),[g,y]),B=m.useMemo(()=>P.some(se=>se.responsive),[P]),N=Eg(B),O=m.useMemo(()=>{const se=new Set(Object.keys(N).filter(de=>N[de]));return P.filter(de=>!de.responsive||de.responsive.some(ge=>se.has(ge)))},[P,N]),z=wn(e,[\"className\",\"style\",\"columns\"]),{locale:W=ws,direction:L,table:j,renderEmpty:H,getPrefixCls:V,getPopupContainer:U}=m.useContext(Ot),Q=Ta(s),K=Object.assign(Object.assign({},W.Table),T),Y=d||yW,ee=V(\"table\",a),J=V(\"dropdown\",c),[,X]=Mi(),ce=Zn(ee),[oe,ue,ie]=FLe(ee,ce),fe=Object.assign(Object.assign({childrenColumnName:b,expandIconColumnIndex:A},w),{expandIcon:(r=w==null?void 0:w.expandIcon)!==null&&r!==void 0?r:(n=j==null?void 0:j.expandable)===null||n===void 0?void 0:n.expandIcon}),{childrenColumnName:xe=\"children\"}=fe,Ee=m.useMemo(()=>Y.some(se=>se==null?void 0:se[xe])?\"nest\":D||w!=null&&w.expandedRowRender?\"row\":null,[Y]),De={body:m.useRef(null)},ye=WNe(ee),we=m.useRef(null),Fe=m.useRef(null);Ewe(t,()=>Object.assign(Object.assign({},Fe.current),{nativeElement:we.current}));const me=m.useMemo(()=>typeof p==\"function\"?p:se=>se==null?void 0:se[p],[p]),[Me]=G$e(Y,xe,me),je={},lt=(se,de,ge=!1)=>{var Te,We,ke,Be;const Oe=Object.assign(Object.assign({},je),se);ge&&((Te=je.resetPagination)===null||Te===void 0||Te.call(je),!((We=Oe.pagination)===null||We===void 0)&&We.current&&(Oe.pagination.current=1),f&&((ke=f.onChange)===null||ke===void 0||ke.call(f,1,(Be=Oe.pagination)===null||Be===void 0?void 0:Be.pageSize))),I&&I.scrollToFirstRowOnChange!==!1&&De.body.current&&swe(0,{getContainer:()=>De.body.current}),x==null||x(Oe.pagination,Oe.filters,Oe.sorter,{currentDataSource:qR(JR(Y,Oe.sorterStates,xe),Oe.filterStates,xe),action:de})},tt=(se,de)=>{lt({sorter:se,sorterStates:de},\"sort\",!1)},[rt,dt,Ve,Ie]=rLe({prefixCls:ee,mergedColumns:O,onSorterChange:tt,sortDirections:M||[\"ascend\",\"descend\"],tableLocale:K,showSorterTooltip:k}),Je=m.useMemo(()=>JR(Y,dt,xe),[Y,dt]);je.sorter=Ie(),je.sorterStates=dt;const Pe=(se,de)=>{lt({filters:se,filterStates:de},\"filter\",!0)},[Ge,Ae,_e]=W$e({prefixCls:ee,locale:K,dropdownPrefixCls:J,mergedColumns:O,onFilterChange:Pe,getPopupContainer:F||U,rootClassName:ne(o,ce)}),$e=qR(Je,Ae,xe);je.filters=_e,je.filterStates=Ae;const Ke=m.useMemo(()=>{const se={};return Object.keys(_e).forEach(de=>{_e[de]!==null&&(se[de]=_e[de])}),Object.assign(Object.assign({},Ve),{filters:se})},[Ve,_e]),[pt]=nLe(Ke),_t=(se,de)=>{lt({pagination:Object.assign(Object.assign({},je.pagination),{current:se,pageSize:de})},\"paginate\")},[ht,gt]=Y$e($e.length,_t,f);je.pagination=f===!1?{}:K$e(ht,f),je.resetPagination=gt;const Et=m.useMemo(()=>{if(f===!1||!ht.pageSize)return $e;const{current:se=1,total:de,pageSize:ge=Kse}=ht;return $e.length<de?$e.length>ge?$e.slice((se-1)*ge,se*ge):$e:$e.slice((se-1)*ge,se*ge)},[!!f,$e,ht==null?void 0:ht.current,ht==null?void 0:ht.pageSize,ht==null?void 0:ht.total]),[xt,Dt]=HNe({prefixCls:ee,data:$e,pageData:Et,getRowKey:me,getRecordByKey:Me,expandType:Ee,childrenColumnName:xe,locale:K,getPopupContainer:F||U},h),ur=(se,de,ge)=>{let Te;return typeof v==\"function\"?Te=ne(v(se,de,ge)):Te=ne(v),ne({[`${ee}-row-selected`]:Dt.has(me(se,de))},Te)};fe.__PARENT_RENDER_ICON__=fe.expandIcon,fe.expandIcon=fe.expandIcon||E||VNe(K),Ee===\"nest\"&&fe.expandIconColumnIndex===void 0?fe.expandIconColumnIndex=h?1:0:fe.expandIconColumnIndex>0&&h&&(fe.expandIconColumnIndex-=1),typeof fe.indentSize!=\"number\"&&(fe.indentSize=typeof _==\"number\"?_:15);const mr=m.useCallback(se=>pt(xt(Ge(rt(se)))),[rt,Ge,xt]),Tt=()=>{if(f===!1||!(ht!=null&&ht.total))return{};const se=()=>ht.size||(Q===\"small\"||Q===\"middle\"?\"small\":void 0),de=Ze=>{const ft=Ze===\"left\"?\"start\":Ze===\"right\"?\"end\":Ze;return m.createElement(cse,Object.assign({},ht,{align:ht.align||ft,className:ne(`${ee}-pagination`,ht.className),size:se()}))},ge=L===\"rtl\"?\"left\":\"right\",Te=ht.position;if(Te===null||!Array.isArray(Te))return{bottom:de(ge)};const We=Te.find(Ze=>typeof Ze==\"string\"&&Ze.toLowerCase().includes(\"top\")),ke=Te.find(Ze=>typeof Ze==\"string\"&&Ze.toLowerCase().includes(\"bottom\")),Be=Te.every(Ze=>`${Ze}`==\"none\"),Oe=We?We.toLowerCase().replace(\"top\",\"\"):\"\",at=ke?ke.toLowerCase().replace(\"bottom\",\"\"):\"\",Le=!We&&!ke&&!Be,Ye=()=>Oe?de(Oe):void 0,qe=()=>{if(at)return de(at);if(Le)return de(ge)};return{top:Ye(),bottom:qe()}},jt=m.useMemo(()=>typeof S==\"boolean\"?{spinning:S}:typeof S==\"object\"&&S!==null?Object.assign({spinning:!0},S):void 0,[S]),Lt=ne(ie,ce,`${ee}-wrapper`,j==null?void 0:j.className,{[`${ee}-wrapper-rtl`]:L===\"rtl\"},i,o,ue),mt=Object.assign(Object.assign({},j==null?void 0:j.style),l),it=m.useMemo(()=>jt!=null&&jt.spinning&&Y===yW?null:typeof(T==null?void 0:T.emptyText)<\"u\"?T.emptyText:(H==null?void 0:H(\"Table\"))||m.createElement(tO,{componentName:\"Table\"}),[jt==null?void 0:jt.spinning,Y,T==null?void 0:T.emptyText,H]),st=R?iLe:aLe,Ct={},te=m.useMemo(()=>{const{fontSize:se,lineHeight:de,lineWidth:ge,padding:Te,paddingXS:We,paddingSM:ke}=X,Be=Math.floor(se*de);switch(Q){case\"middle\":return ke*2+Be+ge;case\"small\":return We*2+Be+ge;default:return Te*2+Be+ge}},[X,Q]);R&&(Ct.listItemHeight=te);const{top:pe,bottom:he}=Tt();return oe(m.createElement(\"div\",{ref:we,className:Lt,style:mt},m.createElement(mi,Object.assign({spinning:!1},jt),pe,m.createElement(st,Object.assign({},Ct,z,{ref:Fe,columns:O,direction:L,expandable:fe,prefixCls:ee,className:ne({[`${ee}-middle`]:Q===\"middle\",[`${ee}-small`]:Q===\"small\",[`${ee}-bordered`]:u,[`${ee}-empty`]:Y.length===0},ie,ce,ue),data:Et,rowKey:me,rowClassName:ur,emptyText:it,internalHooks:Tx,internalRefs:De,transformColumns:mr,getContainerWidth:ye,measureRowRender:se=>m.createElement(Is,{getPopupContainer:de=>de},se)})),he)))},wLe=m.forwardRef(SLe),ELe=(e,t)=>{const r=m.useRef(0);return r.current+=1,m.createElement(wLe,Object.assign({},e,{ref:t,_renderTimes:r.current}))},Gr=m.forwardRef(ELe);Gr.SELECTION_COLUMN=Vd;Gr.EXPAND_COLUMN=qd;Gr.SELECTION_ALL=WR;Gr.SELECTION_INVERT=GR;Gr.SELECTION_NONE=UR;Gr.Column=RNe;Gr.ColumnGroup=MNe;Gr.Summary=Ese;const DLe=e=>{const{paddingXXS:t,lineWidth:r,tagPaddingHorizontal:n,componentCls:a,calc:i}=e,o=i(n).sub(r).equal(),l=i(t).sub(r).equal();return{[a]:Object.assign(Object.assign({},Hr(e)),{display:\"inline-block\",height:\"auto\",marginInlineEnd:e.marginXS,paddingInline:o,fontSize:e.tagFontSize,lineHeight:e.tagLineHeight,whiteSpace:\"nowrap\",background:e.defaultBg,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusSM,opacity:1,transition:`all ${e.motionDurationMid}`,textAlign:\"start\",position:\"relative\",[`&${a}-rtl`]:{direction:\"rtl\"},\"&, a, a:hover\":{color:e.defaultColor},[`${a}-close-icon`]:{marginInlineStart:l,fontSize:e.tagIconSize,color:e.colorIcon,cursor:\"pointer\",transition:`all ${e.motionDurationMid}`,\"&:hover\":{color:e.colorTextHeading}},[`&${a}-has-color`]:{borderColor:\"transparent\",[`&, a, a:hover, ${e.iconCls}-close, ${e.iconCls}-close:hover`]:{color:e.colorTextLightSolid}},\"&-checkable\":{backgroundColor:\"transparent\",borderColor:\"transparent\",cursor:\"pointer\",[`&:not(${a}-checkable-checked):hover`]:{color:e.colorPrimary,backgroundColor:e.colorFillSecondary},\"&:active, &-checked\":{color:e.colorTextLightSolid},\"&-checked\":{backgroundColor:e.colorPrimary,\"&:hover\":{backgroundColor:e.colorPrimaryHover}},\"&:active\":{backgroundColor:e.colorPrimaryActive}},\"&-hidden\":{display:\"none\"},[`> ${e.iconCls} + span, > span + ${e.iconCls}`]:{marginInlineStart:o}}),[`${a}-borderless`]:{borderColor:\"transparent\",background:e.tagBorderlessBg}}},KO=e=>{const{lineWidth:t,fontSizeIcon:r,calc:n}=e,a=e.fontSizeSM;return Sr(e,{tagFontSize:a,tagLineHeight:re(n(e.lineHeightSM).mul(a).equal()),tagIconSize:n(r).sub(n(t).mul(2)).equal(),tagPaddingHorizontal:8,tagBorderlessBg:e.defaultBg})},YO=e=>({defaultBg:new $r(e.colorFillQuaternary).onBackground(e.colorBgContainer).toHexString(),defaultColor:e.colorText}),Xse=kr(\"Tag\",e=>{const t=KO(e);return DLe(t)},YO);var ALe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const _Le=m.forwardRef((e,t)=>{const{prefixCls:r,style:n,className:a,checked:i,children:o,icon:l,onChange:s,onClick:u}=e,c=ALe(e,[\"prefixCls\",\"style\",\"className\",\"checked\",\"children\",\"icon\",\"onChange\",\"onClick\"]),{getPrefixCls:d,tag:f}=m.useContext(Ot),h=x=>{s==null||s(!i),u==null||u(x)},p=d(\"tag\",r),[v,g,y]=Xse(p),b=ne(p,`${p}-checkable`,{[`${p}-checkable-checked`]:i},f==null?void 0:f.className,a,g,y);return v(m.createElement(\"span\",Object.assign({},c,{ref:t,style:Object.assign(Object.assign({},n),f==null?void 0:f.style),className:b,onClick:h}),l,m.createElement(\"span\",null,o)))}),TLe=e=>e6(e,(t,{textColor:r,lightBorderColor:n,lightColor:a,darkColor:i})=>({[`${e.componentCls}${e.componentCls}-${t}`]:{color:r,background:a,borderColor:n,\"&-inverse\":{color:e.colorTextLightSolid,background:i,borderColor:i},[`&${e.componentCls}-borderless`]:{borderColor:\"transparent\"}}})),ILe=yg([\"Tag\",\"preset\"],e=>{const t=KO(e);return TLe(t)},YO);function kLe(e){return typeof e!=\"string\"?e:e.charAt(0).toUpperCase()+e.slice(1)}const oF=(e,t,r)=>{const n=kLe(r);return{[`${e.componentCls}${e.componentCls}-${t}`]:{color:e[`color${r}`],background:e[`color${n}Bg`],borderColor:e[`color${n}Border`],[`&${e.componentCls}-borderless`]:{borderColor:\"transparent\"}}}},RLe=yg([\"Tag\",\"status\"],e=>{const t=KO(e);return[oF(t,\"success\",\"Success\"),oF(t,\"processing\",\"Info\"),oF(t,\"error\",\"Error\"),oF(t,\"warning\",\"Warning\")]},YO);var MLe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const PLe=m.forwardRef((e,t)=>{const{prefixCls:r,className:n,rootClassName:a,style:i,children:o,icon:l,color:s,onClose:u,bordered:c=!0,visible:d}=e,f=MLe(e,[\"prefixCls\",\"className\",\"rootClassName\",\"style\",\"children\",\"icon\",\"color\",\"onClose\",\"bordered\",\"visible\"]),{getPrefixCls:h,direction:p,tag:v}=m.useContext(Ot),[g,y]=m.useState(!0),b=wn(f,[\"closeIcon\",\"closable\"]);m.useEffect(()=>{d!==void 0&&y(d)},[d]);const x=S6(s),F=X_e(s),S=x||F,E=Object.assign(Object.assign({backgroundColor:s&&!S?s:void 0},v==null?void 0:v.style),i),w=h(\"tag\",r),[D,A,_]=Xse(w),I=ne(w,v==null?void 0:v.className,{[`${w}-${s}`]:S,[`${w}-has-color`]:s&&!S,[`${w}-hidden`]:!g,[`${w}-rtl`]:p===\"rtl\",[`${w}-borderless`]:!c},n,a,A,_),M=N=>{N.stopPropagation(),u==null||u(N),!N.defaultPrevented&&y(!1)},[,T]=P7(U0(e),U0(v),{closable:!1,closeIconRender:N=>{const O=m.createElement(\"span\",{className:`${w}-close-icon`,onClick:M},N);return M7(N,O,z=>({onClick:W=>{var L;(L=z==null?void 0:z.onClick)===null||L===void 0||L.call(z,W),M(W)},className:ne(z==null?void 0:z.className,`${w}-close-icon`)}))}}),k=typeof f.onClick==\"function\"||o&&o.type===\"a\",R=l||null,P=R?m.createElement(m.Fragment,null,R,o&&m.createElement(\"span\",null,o)):o,B=m.createElement(\"span\",Object.assign({},b,{ref:t,className:I,style:E}),P,T,x&&m.createElement(ILe,{key:\"preset\",prefixCls:w}),F&&m.createElement(RLe,{key:\"status\",prefixCls:w}));return D(k?m.createElement(ux,{component:\"Tag\"},B):B)}),et=PLe;et.CheckableTag=_Le;const OLe=e=>{const{componentCls:t,calc:r}=e;return{[t]:Object.assign(Object.assign({},Hr(e)),{margin:0,padding:0,listStyle:\"none\",[`${t}-item`]:{position:\"relative\",margin:0,paddingBottom:e.itemPaddingBottom,fontSize:e.fontSize,listStyle:\"none\",\"&-tail\":{position:\"absolute\",insetBlockStart:e.itemHeadSize,insetInlineStart:r(r(e.itemHeadSize).sub(e.tailWidth)).div(2).equal(),height:`calc(100% - ${re(e.itemHeadSize)})`,borderInlineStart:`${re(e.tailWidth)} ${e.lineType} ${e.tailColor}`},\"&-pending\":{[`${t}-item-head`]:{fontSize:e.fontSizeSM,backgroundColor:\"transparent\"},[`${t}-item-tail`]:{display:\"none\"}},\"&-head\":{position:\"absolute\",width:e.itemHeadSize,height:e.itemHeadSize,backgroundColor:e.dotBg,border:`${re(e.dotBorderWidth)} ${e.lineType} transparent`,borderRadius:\"50%\",\"&-blue\":{color:e.colorPrimary,borderColor:e.colorPrimary},\"&-red\":{color:e.colorError,borderColor:e.colorError},\"&-green\":{color:e.colorSuccess,borderColor:e.colorSuccess},\"&-gray\":{color:e.colorTextDisabled,borderColor:e.colorTextDisabled}},\"&-head-custom\":{position:\"absolute\",insetBlockStart:r(e.itemHeadSize).div(2).equal(),insetInlineStart:r(e.itemHeadSize).div(2).equal(),width:\"auto\",height:\"auto\",marginBlockStart:0,paddingBlock:e.customHeadPaddingVertical,lineHeight:1,textAlign:\"center\",border:0,borderRadius:0,transform:\"translate(-50%, -50%)\"},\"&-content\":{position:\"relative\",insetBlockStart:r(r(e.fontSize).mul(e.lineHeight).sub(e.fontSize)).mul(-1).add(e.lineWidth).equal(),marginInlineStart:r(e.margin).add(e.itemHeadSize).equal(),marginInlineEnd:0,marginBlockStart:0,marginBlockEnd:0,wordBreak:\"break-word\"},\"&-last\":{[`> ${t}-item-tail`]:{display:\"none\"},[`> ${t}-item-content`]:{minHeight:r(e.controlHeightLG).mul(1.2).equal()}}},[`&${t}-alternate,\n &${t}-right,\n &${t}-label`]:{[`${t}-item`]:{\"&-tail, &-head, &-head-custom\":{insetInlineStart:\"50%\"},\"&-head\":{marginInlineStart:r(e.marginXXS).mul(-1).equal(),\"&-custom\":{marginInlineStart:r(e.tailWidth).div(2).equal()}},\"&-left\":{[`${t}-item-content`]:{insetInlineStart:`calc(50% - ${re(e.marginXXS)})`,width:`calc(50% - ${re(e.marginSM)})`,textAlign:\"start\"}},\"&-right\":{[`${t}-item-content`]:{width:`calc(50% - ${re(e.marginSM)})`,margin:0,textAlign:\"end\"}}}},[`&${t}-right`]:{[`${t}-item-right`]:{[`${t}-item-tail,\n ${t}-item-head,\n ${t}-item-head-custom`]:{insetInlineStart:`calc(100% - ${re(r(r(e.itemHeadSize).add(e.tailWidth)).div(2).equal())})`},[`${t}-item-content`]:{width:`calc(100% - ${re(r(e.itemHeadSize).add(e.marginXS).equal())})`}}},[`&${t}-pending\n ${t}-item-last\n ${t}-item-tail`]:{display:\"block\",height:`calc(100% - ${re(e.margin)})`,borderInlineStart:`${re(e.tailWidth)} dotted ${e.tailColor}`},[`&${t}-reverse\n ${t}-item-last\n ${t}-item-tail`]:{display:\"none\"},[`&${t}-reverse ${t}-item-pending`]:{[`${t}-item-tail`]:{insetBlockStart:e.margin,display:\"block\",height:`calc(100% - ${re(e.margin)})`,borderInlineStart:`${re(e.tailWidth)} dotted ${e.tailColor}`},[`${t}-item-content`]:{minHeight:r(e.controlHeightLG).mul(1.2).equal()}},[`&${t}-label`]:{[`${t}-item-label`]:{position:\"absolute\",insetBlockStart:r(r(e.fontSize).mul(e.lineHeight).sub(e.fontSize)).mul(-1).add(e.tailWidth).equal(),width:`calc(50% - ${re(e.marginSM)})`,textAlign:\"end\"},[`${t}-item-right`]:{[`${t}-item-label`]:{insetInlineStart:`calc(50% + ${re(e.marginSM)})`,width:`calc(50% - ${re(e.marginSM)})`,textAlign:\"start\"}}},\"&-rtl\":{direction:\"rtl\",[`${t}-item-head-custom`]:{transform:\"translate(50%, -50%)\"}}})}},BLe=e=>({tailColor:e.colorSplit,tailWidth:e.lineWidthBold,dotBorderWidth:e.wireframe?e.lineWidthBold:e.lineWidth*3,dotBg:e.colorBgContainer,itemPaddingBottom:e.padding*1.25}),NLe=kr(\"Timeline\",e=>{const t=Sr(e,{itemHeadSize:10,customHeadPaddingVertical:e.paddingXXS,paddingInlineEnd:2});return OLe(t)},BLe);var $Le=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Jse=e=>{var{prefixCls:t,className:r,color:n=\"blue\",dot:a,pending:i=!1,position:o,label:l,children:s}=e,u=$Le(e,[\"prefixCls\",\"className\",\"color\",\"dot\",\"pending\",\"position\",\"label\",\"children\"]);const{getPrefixCls:c}=m.useContext(Ot),d=c(\"timeline\",t),f=ne(`${d}-item`,{[`${d}-item-pending`]:i},r),h=/blue|red|green|gray/.test(n||\"\")?void 0:n,p=ne(`${d}-item-head`,{[`${d}-item-head-custom`]:!!a,[`${d}-item-head-${n}`]:!h});return m.createElement(\"li\",Object.assign({},u,{className:f}),l&&m.createElement(\"div\",{className:`${d}-item-label`},l),m.createElement(\"div\",{className:`${d}-item-tail`}),m.createElement(\"div\",{className:p,style:{borderColor:h,color:h}},a),m.createElement(\"div\",{className:`${d}-item-content`},s))};var bW=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const LLe=e=>{var{prefixCls:t,className:r,pending:n=!1,children:a,items:i,rootClassName:o,reverse:l=!1,direction:s,hashId:u,pendingDot:c,mode:d=\"\"}=e,f=bW(e,[\"prefixCls\",\"className\",\"pending\",\"children\",\"items\",\"rootClassName\",\"reverse\",\"direction\",\"hashId\",\"pendingDot\",\"mode\"]);const h=(S,E)=>d===\"alternate\"?S===\"right\"?`${t}-item-right`:S===\"left\"?`${t}-item-left`:E%2===0?`${t}-item-left`:`${t}-item-right`:d===\"left\"?`${t}-item-left`:d===\"right\"?`${t}-item-right`:S===\"right\"?`${t}-item-right`:\"\",p=He(i||[]),v=typeof n==\"boolean\"?null:n;n&&p.push({pending:!!n,dot:c||m.createElement(cc,null),children:v}),l&&p.reverse();const g=p.length,y=`${t}-item-last`,b=p.filter(S=>!!S).map((S,E)=>{var w;const D=E===g-2?y:\"\",A=E===g-1?y:\"\",{className:_}=S,I=bW(S,[\"className\"]);return m.createElement(Jse,Object.assign({},I,{className:ne([_,!l&&n?D:A,h((w=S==null?void 0:S.position)!==null&&w!==void 0?w:\"\",E)]),key:(S==null?void 0:S.key)||E}))}),x=p.some(S=>!!(S!=null&&S.label)),F=ne(t,{[`${t}-pending`]:!!n,[`${t}-reverse`]:!!l,[`${t}-${d}`]:!!d&&!x,[`${t}-label`]:x,[`${t}-rtl`]:s===\"rtl\"},r,o,u);return m.createElement(\"ol\",Object.assign({},f,{className:F}),b)};function jLe(e,t){return e&&Array.isArray(e)?e:ba(t).map(r=>{var n,a;return Object.assign({children:(a=(n=r==null?void 0:r.props)===null||n===void 0?void 0:n.children)!==null&&a!==void 0?a:\"\"},r.props)})}var zLe=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const q6=e=>{const{getPrefixCls:t,direction:r,timeline:n}=m.useContext(Ot),{prefixCls:a,children:i,items:o,className:l,style:s}=e,u=zLe(e,[\"prefixCls\",\"children\",\"items\",\"className\",\"style\"]),c=t(\"timeline\",a),d=Zn(c),[f,h,p]=NLe(c,d),v=jLe(o,i);return f(m.createElement(LLe,Object.assign({},u,{className:ne(n==null?void 0:n.className,l,p,d),style:Object.assign(Object.assign({},n==null?void 0:n.style),s),prefixCls:c,direction:r,items:v,hashId:h})))};q6.Item=Jse;var HLe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z\"}}]},name:\"delete\",theme:\"outlined\"},VLe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:HLe}))},Ix=m.forwardRef(VLe),WLe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M257.7 752c2 0 4-.2 6-.5L431.9 722c2-.4 3.9-1.3 5.3-2.8l423.9-423.9a9.96 9.96 0 000-14.1L694.9 114.9c-1.9-1.9-4.4-2.9-7.1-2.9s-5.2 1-7.1 2.9L256.8 538.8c-1.5 1.5-2.4 3.3-2.8 5.3l-29.5 168.2a33.5 33.5 0 009.4 29.8c6.6 6.4 14.9 9.9 23.8 9.9zm67.4-174.4L687.8 215l73.3 73.3-362.7 362.6-88.9 15.7 15.6-89zM880 836H144c-17.7 0-32 14.3-32 32v36c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-36c0-17.7-14.3-32-32-32z\"}}]},name:\"edit\",theme:\"outlined\"},GLe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:WLe}))},od=m.forwardRef(GLe),ULe={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M864 170h-60c-4.4 0-8 3.6-8 8v518H310v-73c0-6.7-7.8-10.5-13-6.3l-141.9 112a8 8 0 000 12.6l141.9 112c5.3 4.2 13 .4 13-6.3v-75h498c35.3 0 64-28.7 64-64V178c0-4.4-3.6-8-8-8z\"}}]},name:\"enter\",theme:\"outlined\"},KLe=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:ULe}))},YLe=m.forwardRef(KLe);const qLe=(e,t,r,n)=>{const{titleMarginBottom:a,fontWeightStrong:i}=n;return{marginBottom:a,color:r,fontWeight:i,fontSize:e,lineHeight:t}},XLe=e=>{const t=[1,2,3,4,5],r={};return t.forEach(n=>{r[`\n h${n}&,\n div&-h${n},\n div&-h${n} > textarea,\n h${n}\n `]=qLe(e[`fontSizeHeading${n}`],e[`lineHeightHeading${n}`],e.colorTextHeading,e)}),r},JLe=e=>{const{componentCls:t}=e;return{\"a&, a\":Object.assign(Object.assign({},I7(e)),{userSelect:\"text\",[`&[disabled], &${t}-disabled`]:{color:e.colorTextDisabled,cursor:\"not-allowed\",\"&:active, &:hover\":{color:e.colorTextDisabled},\"&:active\":{pointerEvents:\"none\"}}})}},ZLe=e=>({code:{margin:\"0 0.2em\",paddingInline:\"0.4em\",paddingBlock:\"0.2em 0.1em\",fontSize:\"85%\",fontFamily:e.fontFamilyCode,background:\"rgba(150, 150, 150, 0.1)\",border:\"1px solid rgba(100, 100, 100, 0.2)\",borderRadius:3},kbd:{margin:\"0 0.2em\",paddingInline:\"0.4em\",paddingBlock:\"0.15em 0.1em\",fontSize:\"90%\",fontFamily:e.fontFamilyCode,background:\"rgba(150, 150, 150, 0.06)\",border:\"1px solid rgba(100, 100, 100, 0.2)\",borderBottomWidth:2,borderRadius:3},mark:{padding:0,backgroundColor:bE[2]},\"u, ins\":{textDecoration:\"underline\",textDecorationSkipInk:\"auto\"},\"s, del\":{textDecoration:\"line-through\"},strong:{fontWeight:e.fontWeightStrong},\"ul, ol\":{marginInline:0,marginBlock:\"0 1em\",padding:0,li:{marginInline:\"20px 0\",marginBlock:0,paddingInline:\"4px 0\",paddingBlock:0}},ul:{listStyleType:\"circle\",ul:{listStyleType:\"disc\"}},ol:{listStyleType:\"decimal\"},\"pre, blockquote\":{margin:\"1em 0\"},pre:{padding:\"0.4em 0.6em\",whiteSpace:\"pre-wrap\",wordWrap:\"break-word\",background:\"rgba(150, 150, 150, 0.1)\",border:\"1px solid rgba(100, 100, 100, 0.2)\",borderRadius:3,fontFamily:e.fontFamilyCode,code:{display:\"inline\",margin:0,padding:0,fontSize:\"inherit\",fontFamily:\"inherit\",background:\"transparent\",border:0}},blockquote:{paddingInline:\"0.6em 0\",paddingBlock:0,borderInlineStart:\"4px solid rgba(100, 100, 100, 0.2)\",opacity:.85}}),QLe=e=>{const{componentCls:t,paddingSM:r}=e,n=r;return{\"&-edit-content\":{position:\"relative\",\"div&\":{insetInlineStart:e.calc(e.paddingSM).mul(-1).equal(),insetBlockStart:e.calc(n).div(-2).add(1).equal(),marginBottom:e.calc(n).div(2).sub(2).equal()},[`${t}-edit-content-confirm`]:{position:\"absolute\",insetInlineEnd:e.calc(e.marginXS).add(2).equal(),insetBlockEnd:e.marginXS,color:e.colorIcon,fontWeight:\"normal\",fontSize:e.fontSize,fontStyle:\"normal\",pointerEvents:\"none\"},textarea:{margin:\"0!important\",MozTransition:\"none\",height:\"1em\"}}}},eje=e=>({[`${e.componentCls}-copy-success`]:{\"\\n &,\\n &:hover,\\n &:focus\":{color:e.colorSuccess}},[`${e.componentCls}-copy-icon-only`]:{marginInlineStart:0}}),tje=()=>({\"\\n a&-ellipsis,\\n span&-ellipsis\\n \":{display:\"inline-block\",maxWidth:\"100%\"},\"&-ellipsis-single-line\":{whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",\"a&, span&\":{verticalAlign:\"bottom\"},\"> code\":{paddingBlock:0,maxWidth:\"calc(100% - 1.2em)\",display:\"inline-block\",overflow:\"hidden\",textOverflow:\"ellipsis\",verticalAlign:\"bottom\",boxSizing:\"content-box\"}},\"&-ellipsis-multiple-line\":{display:\"-webkit-box\",overflow:\"hidden\",WebkitLineClamp:3,WebkitBoxOrient:\"vertical\"}}),rje=e=>{const{componentCls:t,titleMarginTop:r}=e;return{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({color:e.colorText,wordBreak:\"break-word\",lineHeight:e.lineHeight,[`&${t}-secondary`]:{color:e.colorTextDescription},[`&${t}-success`]:{color:e.colorSuccessText},[`&${t}-warning`]:{color:e.colorWarningText},[`&${t}-danger`]:{color:e.colorErrorText,\"a&:active, a&:focus\":{color:e.colorErrorTextActive},\"a&:hover\":{color:e.colorErrorTextHover}},[`&${t}-disabled`]:{color:e.colorTextDisabled,cursor:\"not-allowed\",userSelect:\"none\"},\"\\n div&,\\n p\\n \":{marginBottom:\"1em\"}},XLe(e)),{[`\n & + h1${t},\n & + h2${t},\n & + h3${t},\n & + h4${t},\n & + h5${t}\n `]:{marginTop:r},\"\\n div,\\n ul,\\n li,\\n p,\\n h1,\\n h2,\\n h3,\\n h4,\\n h5\":{\"\\n + h1,\\n + h2,\\n + h3,\\n + h4,\\n + h5\\n \":{marginTop:r}}}),ZLe(e)),JLe(e)),{[`\n ${t}-expand,\n ${t}-collapse,\n ${t}-edit,\n ${t}-copy\n `]:Object.assign(Object.assign({},I7(e)),{marginInlineStart:e.marginXXS})}),QLe(e)),eje(e)),tje()),{\"&-rtl\":{direction:\"rtl\"}})}},nje=()=>({titleMarginTop:\"1.2em\",titleMarginBottom:\"0.5em\"}),Zse=kr(\"Typography\",rje,nje),aje=e=>{const{prefixCls:t,\"aria-label\":r,className:n,style:a,direction:i,maxLength:o,autoSize:l=!0,value:s,onSave:u,onCancel:c,onEnd:d,component:f,enterIcon:h=m.createElement(YLe,null)}=e,p=m.useRef(null),v=m.useRef(!1),g=m.useRef(null),[y,b]=m.useState(s);m.useEffect(()=>{b(s)},[s]),m.useEffect(()=>{var k;if(!((k=p.current)===null||k===void 0)&&k.resizableTextArea){const{textArea:R}=p.current.resizableTextArea;R.focus();const{length:P}=R.value;R.setSelectionRange(P,P)}},[]);const x=({target:k})=>{b(k.value.replace(/[\\n\\r]/g,\"\"))},F=()=>{v.current=!0},S=()=>{v.current=!1},E=({keyCode:k})=>{v.current||(g.current=k)},w=()=>{u(y.trim())},D=({keyCode:k,ctrlKey:R,altKey:P,metaKey:B,shiftKey:N})=>{g.current!==k||v.current||R||P||B||N||(k===It.ENTER?(w(),d==null||d()):k===It.ESC&&c())},A=()=>{w()},[_,I,M]=Zse(t),T=ne(t,`${t}-edit-content`,{[`${t}-rtl`]:i===\"rtl\",[`${t}-${f}`]:!!f},n,I,M);return _(m.createElement(\"div\",{className:T,style:a},m.createElement(ose,{ref:p,maxLength:o,value:y,onChange:x,onKeyDown:E,onKeyUp:D,onCompositionStart:F,onCompositionEnd:S,onBlur:A,\"aria-label\":r,rows:1,autoSize:l}),h!==null?oa(h,{className:`${t}-edit-content-confirm`}):null))};var ije=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,r=[],n=0;n<e.rangeCount;n++)r.push(e.getRangeAt(n));switch(t.tagName.toUpperCase()){case\"INPUT\":case\"TEXTAREA\":t.blur();break;default:t=null;break}return e.removeAllRanges(),function(){e.type===\"Caret\"&&e.removeAllRanges(),e.rangeCount||r.forEach(function(a){e.addRange(a)}),t&&t.focus()}},oje=ije,xW={\"text/plain\":\"Text\",\"text/html\":\"Url\",default:\"Text\"},lje=\"Copy to clipboard: #{key}, Enter\";function sje(e){var t=(/mac os x/i.test(navigator.userAgent)?\"⌘\":\"Ctrl\")+\"+C\";return e.replace(/#{\\s*key\\s*}/g,t)}function uje(e,t){var r,n,a,i,o,l,s=!1;t||(t={}),r=t.debug||!1;try{a=oje(),i=document.createRange(),o=document.getSelection(),l=document.createElement(\"span\"),l.textContent=e,l.ariaHidden=\"true\",l.style.all=\"unset\",l.style.position=\"fixed\",l.style.top=0,l.style.clip=\"rect(0, 0, 0, 0)\",l.style.whiteSpace=\"pre\",l.style.webkitUserSelect=\"text\",l.style.MozUserSelect=\"text\",l.style.msUserSelect=\"text\",l.style.userSelect=\"text\",l.addEventListener(\"copy\",function(c){if(c.stopPropagation(),t.format)if(c.preventDefault(),typeof c.clipboardData>\"u\"){r&&console.warn(\"unable to use e.clipboardData\"),r&&console.warn(\"trying IE specific stuff\"),window.clipboardData.clearData();var d=xW[t.format]||xW.default;window.clipboardData.setData(d,e)}else c.clipboardData.clearData(),c.clipboardData.setData(t.format,e);t.onCopy&&(c.preventDefault(),t.onCopy(c.clipboardData))}),document.body.appendChild(l),i.selectNodeContents(l),o.addRange(i);var u=document.execCommand(\"copy\");if(!u)throw new Error(\"copy command was unsuccessful\");s=!0}catch(c){r&&console.error(\"unable to copy using execCommand: \",c),r&&console.warn(\"trying IE specific stuff\");try{window.clipboardData.setData(t.format||\"text\",e),t.onCopy&&t.onCopy(window.clipboardData),s=!0}catch(d){r&&console.error(\"unable to copy using clipboardData: \",d),r&&console.error(\"falling back to prompt\"),n=sje(\"message\"in t?t.message:lje),window.prompt(n,e)}}finally{o&&(typeof o.removeRange==\"function\"?o.removeRange(i):o.removeAllRanges()),l&&document.body.removeChild(l),a()}return s}var cje=uje;const dje=Yo(cje);var fje=function(e,t,r,n){function a(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function l(c){try{u(n.next(c))}catch(d){o(d)}}function s(c){try{u(n.throw(c))}catch(d){o(d)}}function u(c){c.done?i(c.value):a(c.value).then(l,s)}u((n=n.apply(e,t||[])).next())})};const hje=({copyConfig:e,children:t})=>{const[r,n]=m.useState(!1),[a,i]=m.useState(!1),o=m.useRef(null),l=()=>{o.current&&clearTimeout(o.current)},s={};e.format&&(s.format=e.format),m.useEffect(()=>l,[]);const u=Pr(c=>fje(void 0,void 0,void 0,function*(){var d;c==null||c.preventDefault(),c==null||c.stopPropagation(),i(!0);try{const f=typeof e.text==\"function\"?yield e.text():e.text;dje(f||Y7e(t,!0).join(\"\")||\"\",s),i(!1),n(!0),l(),o.current=setTimeout(()=>{n(!1)},3e3),(d=e.onCopy)===null||d===void 0||d.call(e,c)}catch(f){throw i(!1),f}}));return{copied:r,copyLoading:a,onClick:u}};function a5(e,t){return m.useMemo(()=>{const r=!!e;return[r,Object.assign(Object.assign({},t),r&&typeof e==\"object\"?e:null)]},[e])}const pje=e=>{const t=m.useRef(void 0);return m.useEffect(()=>{t.current=e}),t.current},mje=(e,t,r)=>m.useMemo(()=>e===!0?{title:t??r}:m.isValidElement(e)?{title:e}:typeof e==\"object\"?Object.assign({title:t??r},e):{title:e},[e,t,r]);var vje=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Qse=m.forwardRef((e,t)=>{const{prefixCls:r,component:n=\"article\",className:a,rootClassName:i,setContentRef:o,children:l,direction:s,style:u}=e,c=vje(e,[\"prefixCls\",\"component\",\"className\",\"rootClassName\",\"setContentRef\",\"children\",\"direction\",\"style\"]),{getPrefixCls:d,direction:f,className:h,style:p}=na(\"typography\"),v=s??f,g=o?Qa(t,o):t,y=d(\"typography\",r),[b,x,F]=Zse(y),S=ne(y,h,{[`${y}-rtl`]:v===\"rtl\"},a,i,x,F),E=Object.assign(Object.assign({},p),u);return b(m.createElement(n,Object.assign({className:S,style:E,ref:g},c),l))});var gje={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z\"}}]},name:\"copy\",theme:\"outlined\"},yje=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:gje}))},Yu=m.forwardRef(yje);function CW(e){return e===!1?[!1,!1]:Array.isArray(e)?e:[e]}function i5(e,t,r){return e===!0||e===void 0?t:e||r&&t}function bje(e){const t=document.createElement(\"em\");e.appendChild(t);const r=e.getBoundingClientRect(),n=t.getBoundingClientRect();return e.removeChild(t),r.left>n.left||n.right>r.right||r.top>n.top||n.bottom>r.bottom}const qO=e=>[\"string\",\"number\"].includes(typeof e),xje=({prefixCls:e,copied:t,locale:r,iconOnly:n,tooltips:a,icon:i,tabIndex:o,onCopy:l,loading:s})=>{const u=CW(a),c=CW(i),{copied:d,copy:f}=r??{},h=t?d:f,p=i5(u[t?1:0],h),v=typeof p==\"string\"?p:h;return m.createElement(Dr,{title:p},m.createElement(\"button\",{type:\"button\",className:ne(`${e}-copy`,{[`${e}-copy-success`]:t,[`${e}-copy-icon-only`]:n}),onClick:l,\"aria-label\":v,tabIndex:o},t?i5(c[1],m.createElement(yx,null),!0):i5(c[0],s?m.createElement(cc,null):m.createElement(Yu,null),!0)))},lF=m.forwardRef(({style:e,children:t},r)=>{const n=m.useRef(null);return m.useImperativeHandle(r,()=>({isExceed:()=>{const a=n.current;return a.scrollHeight>a.clientHeight},getHeight:()=>n.current.clientHeight})),m.createElement(\"span\",{\"aria-hidden\":!0,ref:n,style:Object.assign({position:\"fixed\",display:\"block\",left:0,top:0,pointerEvents:\"none\",backgroundColor:\"rgba(255, 0, 0, 0.65)\"},e)},t)}),Cje=e=>e.reduce((t,r)=>t+(qO(r)?String(r).length:1),0);function FW(e,t){let r=0;const n=[];for(let a=0;a<e.length;a+=1){if(r===t)return n;const i=e[a],l=qO(i)?String(i).length:1,s=r+l;if(s>t){const u=t-r;return n.push(String(i).slice(0,u)),n}n.push(i),r=s}return e}const o5=0,l5=1,s5=2,u5=3,SW=4,sF={display:\"-webkit-box\",overflow:\"hidden\",WebkitBoxOrient:\"vertical\"};function Fje(e){const{enableMeasure:t,width:r,text:n,children:a,rows:i,expanded:o,miscDeps:l,onEllipsis:s}=e,u=m.useMemo(()=>ba(n),[n]),c=m.useMemo(()=>Cje(u),[n]),d=m.useMemo(()=>a(u,!1),[n]),[f,h]=m.useState(null),p=m.useRef(null),v=m.useRef(null),g=m.useRef(null),y=m.useRef(null),b=m.useRef(null),[x,F]=m.useState(!1),[S,E]=m.useState(o5),[w,D]=m.useState(0),[A,_]=m.useState(null);_r(()=>{E(t&&r&&c?l5:o5)},[r,n,i,t,u]),_r(()=>{var k,R,P,B;if(S===l5){E(s5);const N=v.current&&getComputedStyle(v.current).whiteSpace;_(N)}else if(S===s5){const N=!!(!((k=g.current)===null||k===void 0)&&k.isExceed());E(N?u5:SW),h(N?[0,c]:null),F(N);const O=((R=g.current)===null||R===void 0?void 0:R.getHeight())||0,z=i===1?0:((P=y.current)===null||P===void 0?void 0:P.getHeight())||0,W=((B=b.current)===null||B===void 0?void 0:B.getHeight())||0,L=Math.max(O,z+W);D(L+1),s(N)}},[S]);const I=f?Math.ceil((f[0]+f[1])/2):0;_r(()=>{var k;const[R,P]=f||[0,0];if(R!==P){const N=(((k=p.current)===null||k===void 0?void 0:k.getHeight())||0)>w;let O=I;P-R===1&&(O=N?R:P),h(N?[R,O]:[O,P])}},[f,I]);const M=m.useMemo(()=>{if(!t)return a(u,!1);if(S!==u5||!f||f[0]!==f[1]){const k=a(u,!1);return[SW,o5].includes(S)?k:m.createElement(\"span\",{style:Object.assign(Object.assign({},sF),{WebkitLineClamp:i})},k)}return a(o?u:FW(u,f[0]),x)},[o,S,f,u].concat(He(l))),T={width:r,margin:0,padding:0,whiteSpace:A===\"nowrap\"?\"normal\":\"inherit\"};return m.createElement(m.Fragment,null,M,S===s5&&m.createElement(m.Fragment,null,m.createElement(lF,{style:Object.assign(Object.assign(Object.assign({},T),sF),{WebkitLineClamp:i}),ref:g},d),m.createElement(lF,{style:Object.assign(Object.assign(Object.assign({},T),sF),{WebkitLineClamp:i-1}),ref:y},d),m.createElement(lF,{style:Object.assign(Object.assign(Object.assign({},T),sF),{WebkitLineClamp:1}),ref:b},a([],!0))),S===u5&&f&&f[0]!==f[1]&&m.createElement(lF,{style:Object.assign(Object.assign({},T),{top:400}),ref:p},a(FW(u,I),!0)),S===l5&&m.createElement(\"span\",{style:{whiteSpace:\"inherit\"},ref:v}))}const Sje=({enableEllipsis:e,isEllipsis:t,children:r,tooltipProps:n})=>!(n!=null&&n.title)||!e?r:m.createElement(Dr,Object.assign({open:t?void 0:!1},n),r);var wje=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};function Eje({mark:e,code:t,underline:r,delete:n,strong:a,keyboard:i,italic:o},l){let s=l;function u(c,d){d&&(s=m.createElement(c,{},s))}return u(\"strong\",a),u(\"u\",r),u(\"del\",n),u(\"code\",t),u(\"mark\",e),u(\"kbd\",i),u(\"i\",o),s}const Dje=\"...\",wW=[\"delete\",\"mark\",\"code\",\"underline\",\"strong\",\"keyboard\",\"italic\"],X6=m.forwardRef((e,t)=>{var r;const{prefixCls:n,className:a,style:i,type:o,disabled:l,children:s,ellipsis:u,editable:c,copyable:d,component:f,title:h}=e,p=wje(e,[\"prefixCls\",\"className\",\"style\",\"type\",\"disabled\",\"children\",\"ellipsis\",\"editable\",\"copyable\",\"component\",\"title\"]),{getPrefixCls:v,direction:g}=m.useContext(Ot),[y]=Jo(\"Text\"),b=m.useRef(null),x=m.useRef(null),F=v(\"typography\",n),S=wn(p,wW),[E,w]=a5(c),[D,A]=un(!1,{value:w.editing}),{triggerType:_=[\"icon\"]}=w,I=Ae=>{var _e;Ae&&((_e=w.onStart)===null||_e===void 0||_e.call(w)),A(Ae)},M=pje(D);_r(()=>{var Ae;!D&&M&&((Ae=x.current)===null||Ae===void 0||Ae.focus())},[D]);const T=Ae=>{Ae==null||Ae.preventDefault(),I(!0)},k=Ae=>{var _e;(_e=w.onChange)===null||_e===void 0||_e.call(w,Ae),I(!1)},R=()=>{var Ae;(Ae=w.onCancel)===null||Ae===void 0||Ae.call(w),I(!1)},[P,B]=a5(d),{copied:N,copyLoading:O,onClick:z}=hje({copyConfig:B,children:s}),[W,L]=m.useState(!1),[j,H]=m.useState(!1),[V,U]=m.useState(!1),[Q,K]=m.useState(!1),[Y,ee]=m.useState(!0),[J,X]=a5(u,{expandable:!1,symbol:Ae=>Ae?y==null?void 0:y.collapse:y==null?void 0:y.expand}),[ce,oe]=un(X.defaultExpanded||!1,{value:X.expanded}),ue=J&&(!ce||X.expandable===\"collapsible\"),{rows:ie=1}=X,fe=m.useMemo(()=>ue&&(X.suffix!==void 0||X.onEllipsis||X.expandable||E||P),[ue,X,E,P]);_r(()=>{J&&!fe&&(L(gR(\"webkitLineClamp\")),H(gR(\"textOverflow\")))},[fe,J]);const[xe,Ee]=m.useState(ue),De=m.useMemo(()=>fe?!1:ie===1?j:W,[fe,j,W]);_r(()=>{Ee(De&&ue)},[De,ue]);const ye=ue&&(xe?Q:V),we=ue&&ie===1&&xe,Fe=ue&&ie>1&&xe,me=(Ae,_e)=>{var $e;oe(_e.expanded),($e=X.onExpand)===null||$e===void 0||$e.call(X,Ae,_e)},[Me,je]=m.useState(0),lt=({offsetWidth:Ae})=>{je(Ae)},tt=Ae=>{var _e;U(Ae),V!==Ae&&((_e=X.onEllipsis)===null||_e===void 0||_e.call(X,Ae))};m.useEffect(()=>{const Ae=b.current;if(J&&xe&&Ae){const _e=bje(Ae);Q!==_e&&K(_e)}},[J,xe,s,Fe,Y,Me]),m.useEffect(()=>{const Ae=b.current;if(typeof IntersectionObserver>\"u\"||!Ae||!xe||!ue)return;const _e=new IntersectionObserver(()=>{ee(!!Ae.offsetParent)});return _e.observe(Ae),()=>{_e.disconnect()}},[xe,ue]);const rt=mje(X.tooltip,w.text,s),dt=m.useMemo(()=>{if(!(!J||xe))return[w.text,s,h,rt.title].find(qO)},[J,xe,h,rt.title,ye]);if(D)return m.createElement(aje,{value:(r=w.text)!==null&&r!==void 0?r:typeof s==\"string\"?s:\"\",onSave:k,onCancel:R,onEnd:w.onEnd,prefixCls:F,className:a,style:i,direction:g,component:f,maxLength:w.maxLength,autoSize:w.autoSize,enterIcon:w.enterIcon});const Ve=()=>{const{expandable:Ae,symbol:_e}=X;return Ae?m.createElement(\"button\",{type:\"button\",key:\"expand\",className:`${F}-${ce?\"collapse\":\"expand\"}`,onClick:$e=>me($e,{expanded:!ce}),\"aria-label\":ce?y.collapse:y==null?void 0:y.expand},typeof _e==\"function\"?_e(ce):_e):null},Ie=()=>{if(!E)return;const{icon:Ae,tooltip:_e,tabIndex:$e}=w,Ke=ba(_e)[0]||(y==null?void 0:y.edit),pt=typeof Ke==\"string\"?Ke:\"\";return _.includes(\"icon\")?m.createElement(Dr,{key:\"edit\",title:_e===!1?\"\":Ke},m.createElement(\"button\",{type:\"button\",ref:x,className:`${F}-edit`,onClick:T,\"aria-label\":pt,tabIndex:$e},Ae||m.createElement(od,{role:\"button\"}))):null},Je=()=>P?m.createElement(xje,Object.assign({key:\"copy\"},B,{prefixCls:F,copied:N,locale:y,onCopy:z,loading:O,iconOnly:s==null})):null,Pe=Ae=>[Ae&&Ve(),Ie(),Je()],Ge=Ae=>[Ae&&!ce&&m.createElement(\"span\",{\"aria-hidden\":!0,key:\"ellipsis\"},Dje),X.suffix,Pe(Ae)];return m.createElement(_i,{onResize:lt,disabled:!ue},Ae=>m.createElement(Sje,{tooltipProps:rt,enableEllipsis:ue,isEllipsis:ye},m.createElement(Qse,Object.assign({className:ne({[`${F}-${o}`]:o,[`${F}-disabled`]:l,[`${F}-ellipsis`]:J,[`${F}-ellipsis-single-line`]:we,[`${F}-ellipsis-multiple-line`]:Fe},a),prefixCls:n,style:Object.assign(Object.assign({},i),{WebkitLineClamp:Fe?ie:void 0}),component:f,ref:Qa(Ae,b,t),direction:g,onClick:_.includes(\"text\")?T:void 0,\"aria-label\":dt==null?void 0:dt.toString(),title:h},S),m.createElement(Fje,{enableMeasure:ue&&!xe,text:s,rows:ie,width:Me,onEllipsis:tt,expanded:ce,miscDeps:[N,ce,O,E,P,y].concat(He(wW.map(_e=>e[_e])))},(_e,$e)=>Eje(e,m.createElement(m.Fragment,null,_e.length>0&&$e&&!ce&&dt?m.createElement(\"span\",{key:\"show-content\",\"aria-hidden\":!0},_e):_e,Ge($e)))))))});var Aje=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const _je=m.forwardRef((e,t)=>{const{ellipsis:r,rel:n,children:a,navigate:i}=e,o=Aje(e,[\"ellipsis\",\"rel\",\"children\",\"navigate\"]),l=Object.assign(Object.assign({},o),{rel:n===void 0&&o.target===\"_blank\"?\"noopener noreferrer\":n});return m.createElement(X6,Object.assign({},l,{ref:t,ellipsis:!!r,component:\"a\"}),a)});var Tje=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Ije=m.forwardRef((e,t)=>{const{children:r}=e,n=Tje(e,[\"children\"]);return m.createElement(X6,Object.assign({ref:t},n,{component:\"div\"}),r)});var kje=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Rje=(e,t)=>{const{ellipsis:r,children:n}=e,a=kje(e,[\"ellipsis\",\"children\"]),i=m.useMemo(()=>r&&typeof r==\"object\"?wn(r,[\"expandable\",\"rows\"]):r,[r]);return m.createElement(X6,Object.assign({ref:t},a,{ellipsis:i,component:\"span\"}),n)},Mje=m.forwardRef(Rje);var Pje=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const Oje=[1,2,3,4,5],Bje=m.forwardRef((e,t)=>{const{level:r=1,children:n}=e,a=Pje(e,[\"level\",\"children\"]),i=Oje.includes(r)?`h${r}`:\"h1\";return m.createElement(X6,Object.assign({ref:t},a,{component:i}),n)}),ji=Qse;ji.Text=Mje;ji.Link=_je;ji.Title=Bje;ji.Paragraph=Ije;const c5=function(e,t){if(e&&t){var r=Array.isArray(t)?t:t.split(\",\"),n=e.name||\"\",a=e.type||\"\",i=a.replace(/\\/.*$/,\"\");return r.some(function(o){var l=o.trim();if(/^\\*(\\/\\*)?$/.test(o))return!0;if(l.charAt(0)===\".\"){var s=n.toLowerCase(),u=l.toLowerCase(),c=[u];return(u===\".jpg\"||u===\".jpeg\")&&(c=[\".jpg\",\".jpeg\"]),c.some(function(d){return s.endsWith(d)})}return/\\/\\*$/.test(l)?i===l.replace(/\\/.*$/,\"\"):a===l?!0:/^\\w+$/.test(l)?(jn(!1,\"Upload takes an invalidate 'accept' type '\".concat(l,\"'.Skip for check.\")),!0):!1})}return!0};function Nje(e,t){var r=\"cannot \".concat(e.method,\" \").concat(e.action,\" \").concat(t.status,\"'\"),n=new Error(r);return n.status=t.status,n.method=e.method,n.url=e.action,n}function EW(e){var t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}function DW(e){var t=new XMLHttpRequest;e.onProgress&&t.upload&&(t.upload.onprogress=function(i){i.total>0&&(i.percent=i.loaded/i.total*100),e.onProgress(i)});var r=new FormData;e.data&&Object.keys(e.data).forEach(function(a){var i=e.data[a];if(Array.isArray(i)){i.forEach(function(o){r.append(\"\".concat(a,\"[]\"),o)});return}r.append(a,i)}),e.file instanceof Blob?r.append(e.filename,e.file,e.file.name):r.append(e.filename,e.file),t.onerror=function(i){e.onError(i)},t.onload=function(){return t.status<200||t.status>=300?e.onError(Nje(e,t),EW(t)):e.onSuccess(EW(t),t)},t.open(e.method,e.action,!0),e.withCredentials&&\"withCredentials\"in t&&(t.withCredentials=!0);var n=e.headers||{};return n[\"X-Requested-With\"]!==null&&t.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),Object.keys(n).forEach(function(a){n[a]!==null&&t.setRequestHeader(a,n[a])}),t.send(r),{abort:function(){t.abort()}}}var $je=function(){var e=$o(Dn().mark(function t(r,n){var a,i,o,l,s,u,c,d;return Dn().wrap(function(h){for(;;)switch(h.prev=h.next){case 0:u=function(){return u=$o(Dn().mark(function v(g){return Dn().wrap(function(b){for(;;)switch(b.prev=b.next){case 0:return b.abrupt(\"return\",new Promise(function(x){g.file(function(F){n(F)?(g.fullPath&&!F.webkitRelativePath&&(Object.defineProperties(F,{webkitRelativePath:{writable:!0}}),F.webkitRelativePath=g.fullPath.replace(/^\\//,\"\"),Object.defineProperties(F,{webkitRelativePath:{writable:!1}})),x(F)):x(null)})}));case 1:case\"end\":return b.stop()}},v)})),u.apply(this,arguments)},s=function(v){return u.apply(this,arguments)},l=function(){return l=$o(Dn().mark(function v(g){var y,b,x,F,S;return Dn().wrap(function(w){for(;;)switch(w.prev=w.next){case 0:y=g.createReader(),b=[];case 2:return w.next=5,new Promise(function(D){y.readEntries(D,function(){return D([])})});case 5:if(x=w.sent,F=x.length,F){w.next=9;break}return w.abrupt(\"break\",12);case 9:for(S=0;S<F;S++)b.push(x[S]);w.next=2;break;case 12:return w.abrupt(\"return\",b);case 13:case\"end\":return w.stop()}},v)})),l.apply(this,arguments)},o=function(v){return l.apply(this,arguments)},a=[],i=[],r.forEach(function(p){return i.push(p.webkitGetAsEntry())}),c=function(){var p=$o(Dn().mark(function v(g,y){var b,x;return Dn().wrap(function(S){for(;;)switch(S.prev=S.next){case 0:if(g){S.next=2;break}return S.abrupt(\"return\");case 2:if(g.path=y||\"\",!g.isFile){S.next=10;break}return S.next=6,s(g);case 6:b=S.sent,b&&a.push(b),S.next=15;break;case 10:if(!g.isDirectory){S.next=15;break}return S.next=13,o(g);case 13:x=S.sent,i.push.apply(i,He(x));case 15:case\"end\":return S.stop()}},v)}));return function(g,y){return p.apply(this,arguments)}}(),d=0;case 9:if(!(d<i.length)){h.next=15;break}return h.next=12,c(i[d]);case 12:d++,h.next=9;break;case 15:return h.abrupt(\"return\",a);case 16:case\"end\":return h.stop()}},t)}));return function(r,n){return e.apply(this,arguments)}}(),Lje=+new Date,jje=0;function d5(){return\"rc-upload-\".concat(Lje,\"-\").concat(++jje)}var zje=[\"component\",\"prefixCls\",\"className\",\"classNames\",\"disabled\",\"id\",\"name\",\"style\",\"styles\",\"multiple\",\"accept\",\"capture\",\"children\",\"directory\",\"folder\",\"openFileDialogOnClick\",\"onMouseEnter\",\"onMouseLeave\",\"hasControlInside\"],Hje=function(e){Vl(r,e);var t=Ts(r);function r(){var n;Xn(this,r);for(var a=arguments.length,i=new Array(a),o=0;o<a;o++)i[o]=arguments[o];return n=t.call.apply(t,[this].concat(i)),Z(Rt(n),\"state\",{uid:d5()}),Z(Rt(n),\"reqs\",{}),Z(Rt(n),\"fileInput\",void 0),Z(Rt(n),\"_isMounted\",void 0),Z(Rt(n),\"onChange\",function(l){var s=n.props,u=s.accept,c=s.directory,d=l.target.files,f=He(d).filter(function(h){return!c||c5(h,u)});n.uploadFiles(f),n.reset()}),Z(Rt(n),\"onClick\",function(l){var s=n.fileInput;if(s){var u=l.target,c=n.props.onClick;if(u&&u.tagName===\"BUTTON\"){var d=s.parentNode;d.focus(),u.blur()}s.click(),c&&c(l)}}),Z(Rt(n),\"onKeyDown\",function(l){l.key===\"Enter\"&&n.onClick(l)}),Z(Rt(n),\"onDataTransferFiles\",function(){var l=$o(Dn().mark(function s(u,c){var d,f,h,p,v,g,y;return Dn().wrap(function(x){for(;;)switch(x.prev=x.next){case 0:if(d=n.props,f=d.multiple,h=d.accept,p=d.directory,v=He(u.items||[]),g=He(u.files||[]),(g.length>0||v.some(function(F){return F.kind===\"file\"}))&&(c==null||c()),!p){x.next=11;break}return x.next=7,$je(Array.prototype.slice.call(v),function(F){return c5(F,n.props.accept)});case 7:g=x.sent,n.uploadFiles(g),x.next=14;break;case 11:y=He(g).filter(function(F){return c5(F,h)}),f===!1&&(y=g.slice(0,1)),n.uploadFiles(y);case 14:case\"end\":return x.stop()}},s)}));return function(s,u){return l.apply(this,arguments)}}()),Z(Rt(n),\"onFilePaste\",function(){var l=$o(Dn().mark(function s(u){var c,d;return Dn().wrap(function(h){for(;;)switch(h.prev=h.next){case 0:if(c=n.props.pastable,c){h.next=3;break}return h.abrupt(\"return\");case 3:if(u.type!==\"paste\"){h.next=6;break}return d=u.clipboardData,h.abrupt(\"return\",n.onDataTransferFiles(d,function(){u.preventDefault()}));case 6:case\"end\":return h.stop()}},s)}));return function(s){return l.apply(this,arguments)}}()),Z(Rt(n),\"onFileDragOver\",function(l){l.preventDefault()}),Z(Rt(n),\"onFileDrop\",function(){var l=$o(Dn().mark(function s(u){var c;return Dn().wrap(function(f){for(;;)switch(f.prev=f.next){case 0:if(u.preventDefault(),u.type!==\"drop\"){f.next=4;break}return c=u.dataTransfer,f.abrupt(\"return\",n.onDataTransferFiles(c));case 4:case\"end\":return f.stop()}},s)}));return function(s){return l.apply(this,arguments)}}()),Z(Rt(n),\"uploadFiles\",function(l){var s=He(l),u=s.map(function(c){return c.uid=d5(),n.processFile(c,s)});Promise.all(u).then(function(c){var d=n.props.onBatchStart;d==null||d(c.map(function(f){var h=f.origin,p=f.parsedFile;return{file:h,parsedFile:p}})),c.filter(function(f){return f.parsedFile!==null}).forEach(function(f){n.post(f)})})}),Z(Rt(n),\"processFile\",function(){var l=$o(Dn().mark(function s(u,c){var d,f,h,p,v,g,y,b,x;return Dn().wrap(function(S){for(;;)switch(S.prev=S.next){case 0:if(d=n.props.beforeUpload,f=u,!d){S.next=14;break}return S.prev=3,S.next=6,d(u,c);case 6:f=S.sent,S.next=12;break;case 9:S.prev=9,S.t0=S.catch(3),f=!1;case 12:if(f!==!1){S.next=14;break}return S.abrupt(\"return\",{origin:u,parsedFile:null,action:null,data:null});case 14:if(h=n.props.action,typeof h!=\"function\"){S.next=21;break}return S.next=18,h(u);case 18:p=S.sent,S.next=22;break;case 21:p=h;case 22:if(v=n.props.data,typeof v!=\"function\"){S.next=29;break}return S.next=26,v(u);case 26:g=S.sent,S.next=30;break;case 29:g=v;case 30:return y=(Nt(f)===\"object\"||typeof f==\"string\")&&f?f:u,y instanceof File?b=y:b=new File([y],u.name,{type:u.type}),x=b,x.uid=u.uid,S.abrupt(\"return\",{origin:u,data:g,parsedFile:x,action:p});case 35:case\"end\":return S.stop()}},s,null,[[3,9]])}));return function(s,u){return l.apply(this,arguments)}}()),Z(Rt(n),\"saveFileInput\",function(l){n.fileInput=l}),n}return Jn(r,[{key:\"componentDidMount\",value:function(){this._isMounted=!0;var a=this.props.pastable;a&&document.addEventListener(\"paste\",this.onFilePaste)}},{key:\"componentWillUnmount\",value:function(){this._isMounted=!1,this.abort(),document.removeEventListener(\"paste\",this.onFilePaste)}},{key:\"componentDidUpdate\",value:function(a){var i=this.props.pastable;i&&!a.pastable?document.addEventListener(\"paste\",this.onFilePaste):!i&&a.pastable&&document.removeEventListener(\"paste\",this.onFilePaste)}},{key:\"post\",value:function(a){var i=this,o=a.data,l=a.origin,s=a.action,u=a.parsedFile;if(this._isMounted){var c=this.props,d=c.onStart,f=c.customRequest,h=c.name,p=c.headers,v=c.withCredentials,g=c.method,y=l.uid,b=f||DW,x={action:s,filename:h,data:o,file:u,headers:p,withCredentials:v,method:g||\"post\",onProgress:function(S){var E=i.props.onProgress;E==null||E(S,u)},onSuccess:function(S,E){var w=i.props.onSuccess;w==null||w(S,u,E),delete i.reqs[y]},onError:function(S,E){var w=i.props.onError;w==null||w(S,E,u),delete i.reqs[y]}};d(l),this.reqs[y]=b(x,{defaultRequest:DW})}}},{key:\"reset\",value:function(){this.setState({uid:d5()})}},{key:\"abort\",value:function(a){var i=this.reqs;if(a){var o=a.uid?a.uid:a;i[o]&&i[o].abort&&i[o].abort(),delete i[o]}else Object.keys(i).forEach(function(l){i[l]&&i[l].abort&&i[l].abort(),delete i[l]})}},{key:\"render\",value:function(){var a=this.props,i=a.component,o=a.prefixCls,l=a.className,s=a.classNames,u=s===void 0?{}:s,c=a.disabled,d=a.id,f=a.name,h=a.style,p=a.styles,v=p===void 0?{}:p,g=a.multiple,y=a.accept,b=a.capture,x=a.children,F=a.directory,S=a.folder,E=a.openFileDialogOnClick,w=a.onMouseEnter,D=a.onMouseLeave,A=a.hasControlInside,_=Xt(a,zje),I=ne(Z(Z(Z({},o,!0),\"\".concat(o,\"-disabled\"),c),l,l)),M=F||S?{directory:\"directory\",webkitdirectory:\"webkitdirectory\"}:{},T=c?{}:{onClick:E?this.onClick:function(){},onKeyDown:E?this.onKeyDown:function(){},onMouseEnter:w,onMouseLeave:D,onDrop:this.onFileDrop,onDragOver:this.onFileDragOver,tabIndex:A?void 0:\"0\"};return le.createElement(i,Ce({},T,{className:I,role:A?void 0:\"button\",style:h}),le.createElement(\"input\",Ce({},qn(_,{aria:!0,data:!0}),{id:d,name:f,disabled:c,type:\"file\",ref:this.saveFileInput,onClick:function(R){return R.stopPropagation()},key:this.state.uid,style:ae({display:\"none\"},v.input),className:u.input,accept:y},M,{multiple:g,onChange:this.onChange},b!=null?{capture:b}:{})),x)}}]),r}(m.Component);function f5(){}var ZR=function(e){Vl(r,e);var t=Ts(r);function r(){var n;Xn(this,r);for(var a=arguments.length,i=new Array(a),o=0;o<a;o++)i[o]=arguments[o];return n=t.call.apply(t,[this].concat(i)),Z(Rt(n),\"uploader\",void 0),Z(Rt(n),\"saveUploader\",function(l){n.uploader=l}),n}return Jn(r,[{key:\"abort\",value:function(a){this.uploader.abort(a)}},{key:\"render\",value:function(){return le.createElement(Hje,Ce({},this.props,{ref:this.saveUploader}))}}]),r}(m.Component);Z(ZR,\"defaultProps\",{component:\"span\",prefixCls:\"rc-upload\",data:{},headers:{},name:\"file\",multipart:!1,onStart:f5,onError:f5,onSuccess:f5,multiple:!1,beforeUpload:null,customRequest:null,withCredentials:!1,openFileDialogOnClick:!0,hasControlInside:!1});const Vje=e=>{const{componentCls:t,iconCls:r}=e;return{[`${t}-wrapper`]:{[`${t}-drag`]:{position:\"relative\",width:\"100%\",height:\"100%\",textAlign:\"center\",background:e.colorFillAlter,border:`${re(e.lineWidth)} dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:\"pointer\",transition:`border-color ${e.motionDurationSlow}`,[t]:{padding:e.padding},[`${t}-btn`]:{display:\"table\",width:\"100%\",height:\"100%\",outline:\"none\",borderRadius:e.borderRadiusLG,\"&:focus-visible\":{outline:`${re(e.lineWidthFocus)} solid ${e.colorPrimaryBorder}`}},[`${t}-drag-container`]:{display:\"table-cell\",verticalAlign:\"middle\"},[`\n &:not(${t}-disabled):hover,\n &-hover:not(${t}-disabled)\n `]:{borderColor:e.colorPrimaryHover},[`p${t}-drag-icon`]:{marginBottom:e.margin,[r]:{color:e.colorPrimary,fontSize:e.uploadThumbnailSize}},[`p${t}-text`]:{margin:`0 0 ${re(e.marginXXS)}`,color:e.colorTextHeading,fontSize:e.fontSizeLG},[`p${t}-hint`]:{color:e.colorTextDescription,fontSize:e.fontSize},[`&${t}-disabled`]:{[`p${t}-drag-icon ${r},\n p${t}-text,\n p${t}-hint\n `]:{color:e.colorTextDisabled}}}}}},Wje=e=>{const{componentCls:t,iconCls:r,fontSize:n,lineHeight:a,calc:i}=e,o=`${t}-list-item`,l=`${o}-actions`,s=`${o}-action`;return{[`${t}-wrapper`]:{[`${t}-list`]:Object.assign(Object.assign({},sc()),{lineHeight:e.lineHeight,[o]:{position:\"relative\",height:i(e.lineHeight).mul(n).equal(),marginTop:e.marginXS,fontSize:n,display:\"flex\",alignItems:\"center\",transition:`background-color ${e.motionDurationSlow}`,borderRadius:e.borderRadiusSM,\"&:hover\":{backgroundColor:e.controlItemBgHover},[`${o}-name`]:Object.assign(Object.assign({},$l),{padding:`0 ${re(e.paddingXS)}`,lineHeight:a,flex:\"auto\",transition:`all ${e.motionDurationSlow}`}),[l]:{whiteSpace:\"nowrap\",[s]:{opacity:0},[r]:{color:e.actionsColor,transition:`all ${e.motionDurationSlow}`},[`\n ${s}:focus-visible,\n &.picture ${s}\n `]:{opacity:1}},[`${t}-icon ${r}`]:{color:e.colorIcon,fontSize:n},[`${o}-progress`]:{position:\"absolute\",bottom:e.calc(e.uploadProgressOffset).mul(-1).equal(),width:\"100%\",paddingInlineStart:i(n).add(e.paddingXS).equal(),fontSize:n,lineHeight:0,pointerEvents:\"none\",\"> div\":{margin:0}}},[`${o}:hover ${s}`]:{opacity:1},[`${o}-error`]:{color:e.colorError,[`${o}-name, ${t}-icon ${r}`]:{color:e.colorError},[l]:{[`${r}, ${r}:hover`]:{color:e.colorError},[s]:{opacity:1}}},[`${t}-list-item-container`]:{transition:`opacity ${e.motionDurationSlow}, height ${e.motionDurationSlow}`,\"&::before\":{display:\"table\",width:0,height:0,content:'\"\"'}}})}}},Gje=e=>{const{componentCls:t}=e,r=new Br(\"uploadAnimateInlineIn\",{from:{width:0,height:0,padding:0,opacity:0,margin:e.calc(e.marginXS).div(-2).equal()}}),n=new Br(\"uploadAnimateInlineOut\",{to:{width:0,height:0,padding:0,opacity:0,margin:e.calc(e.marginXS).div(-2).equal()}}),a=`${t}-animate-inline`;return[{[`${t}-wrapper`]:{[`${a}-appear, ${a}-enter, ${a}-leave`]:{animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseInOutCirc,animationFillMode:\"forwards\"},[`${a}-appear, ${a}-enter`]:{animationName:r},[`${a}-leave`]:{animationName:n}}},{[`${t}-wrapper`]:H7(e)},r,n]},Uje=e=>{const{componentCls:t,iconCls:r,uploadThumbnailSize:n,uploadProgressOffset:a,calc:i}=e,o=`${t}-list`,l=`${o}-item`;return{[`${t}-wrapper`]:{[`\n ${o}${o}-picture,\n ${o}${o}-picture-card,\n ${o}${o}-picture-circle\n `]:{[l]:{position:\"relative\",height:i(n).add(i(e.lineWidth).mul(2)).add(i(e.paddingXS).mul(2)).equal(),padding:e.paddingXS,border:`${re(e.lineWidth)} ${e.lineType} ${e.colorBorder}`,borderRadius:e.borderRadiusLG,\"&:hover\":{background:\"transparent\"},[`${l}-thumbnail`]:Object.assign(Object.assign({},$l),{width:n,height:n,lineHeight:re(i(n).add(e.paddingSM).equal()),textAlign:\"center\",flex:\"none\",[r]:{fontSize:e.fontSizeHeading2,color:e.colorPrimary},img:{display:\"block\",width:\"100%\",height:\"100%\",overflow:\"hidden\"}}),[`${l}-progress`]:{bottom:a,width:`calc(100% - ${re(i(e.paddingSM).mul(2).equal())})`,marginTop:0,paddingInlineStart:i(n).add(e.paddingXS).equal()}},[`${l}-error`]:{borderColor:e.colorError,[`${l}-thumbnail ${r}`]:{[`svg path[fill='${W0[0]}']`]:{fill:e.colorErrorBg},[`svg path[fill='${W0.primary}']`]:{fill:e.colorError}}},[`${l}-uploading`]:{borderStyle:\"dashed\",[`${l}-name`]:{marginBottom:a}}},[`${o}${o}-picture-circle ${l}`]:{[`&, &::before, ${l}-thumbnail`]:{borderRadius:\"50%\"}}}}},Kje=e=>{const{componentCls:t,iconCls:r,fontSizeLG:n,colorTextLightSolid:a,calc:i}=e,o=`${t}-list`,l=`${o}-item`,s=e.uploadPicCardSize;return{[`\n ${t}-wrapper${t}-picture-card-wrapper,\n ${t}-wrapper${t}-picture-circle-wrapper\n `]:Object.assign(Object.assign({},sc()),{display:\"block\",[`${t}${t}-select`]:{width:s,height:s,textAlign:\"center\",verticalAlign:\"top\",backgroundColor:e.colorFillAlter,border:`${re(e.lineWidth)} dashed ${e.colorBorder}`,borderRadius:e.borderRadiusLG,cursor:\"pointer\",transition:`border-color ${e.motionDurationSlow}`,[`> ${t}`]:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",height:\"100%\",textAlign:\"center\"},[`&:not(${t}-disabled):hover`]:{borderColor:e.colorPrimary}},[`${o}${o}-picture-card, ${o}${o}-picture-circle`]:{display:\"flex\",flexWrap:\"wrap\",\"@supports not (gap: 1px)\":{\"& > *\":{marginBlockEnd:e.marginXS,marginInlineEnd:e.marginXS}},\"@supports (gap: 1px)\":{gap:e.marginXS},[`${o}-item-container`]:{display:\"inline-block\",width:s,height:s,verticalAlign:\"top\"},\"&::after\":{display:\"none\"},\"&::before\":{display:\"none\"},[l]:{height:\"100%\",margin:0,\"&::before\":{position:\"absolute\",zIndex:1,width:`calc(100% - ${re(i(e.paddingXS).mul(2).equal())})`,height:`calc(100% - ${re(i(e.paddingXS).mul(2).equal())})`,backgroundColor:e.colorBgMask,opacity:0,transition:`all ${e.motionDurationSlow}`,content:'\" \"'}},[`${l}:hover`]:{[`&::before, ${l}-actions`]:{opacity:1}},[`${l}-actions`]:{position:\"absolute\",insetInlineStart:0,zIndex:10,width:\"100%\",whiteSpace:\"nowrap\",textAlign:\"center\",opacity:0,transition:`all ${e.motionDurationSlow}`,[`\n ${r}-eye,\n ${r}-download,\n ${r}-delete\n `]:{zIndex:10,width:n,margin:`0 ${re(e.marginXXS)}`,fontSize:n,cursor:\"pointer\",transition:`all ${e.motionDurationSlow}`,color:a,\"&:hover\":{color:a},svg:{verticalAlign:\"baseline\"}}},[`${l}-thumbnail, ${l}-thumbnail img`]:{position:\"static\",display:\"block\",width:\"100%\",height:\"100%\",objectFit:\"contain\"},[`${l}-name`]:{display:\"none\",textAlign:\"center\"},[`${l}-file + ${l}-name`]:{position:\"absolute\",bottom:e.margin,display:\"block\",width:`calc(100% - ${re(i(e.paddingXS).mul(2).equal())})`},[`${l}-uploading`]:{[`&${l}`]:{backgroundColor:e.colorFillAlter},[`&::before, ${r}-eye, ${r}-download, ${r}-delete`]:{display:\"none\"}},[`${l}-progress`]:{bottom:e.marginXL,width:`calc(100% - ${re(i(e.paddingXS).mul(2).equal())})`,paddingInlineStart:0}}}),[`${t}-wrapper${t}-picture-circle-wrapper`]:{[`${t}${t}-select`]:{borderRadius:\"50%\"}}}},Yje=e=>{const{componentCls:t}=e;return{[`${t}-rtl`]:{direction:\"rtl\"}}},qje=e=>{const{componentCls:t,colorTextDisabled:r}=e;return{[`${t}-wrapper`]:Object.assign(Object.assign({},Hr(e)),{[t]:{outline:0,\"input[type='file']\":{cursor:\"pointer\"}},[`${t}-select`]:{display:\"inline-block\"},[`${t}-hidden`]:{display:\"none\"},[`${t}-disabled`]:{color:r,cursor:\"not-allowed\"}})}},Xje=e=>({actionsColor:e.colorIcon,pictureCardSize:e.controlHeightLG*2.55}),Jje=kr(\"Upload\",e=>{const{fontSizeHeading3:t,fontHeight:r,lineWidth:n,pictureCardSize:a,calc:i}=e,o=Sr(e,{uploadThumbnailSize:i(t).mul(2).equal(),uploadProgressOffset:i(i(r).div(2)).add(n).equal(),uploadPicCardSize:a});return[qje(o),Vje(o),Uje(o),Kje(o),Wje(o),Gje(o),Yje(o),cx(o)]},Xje);var Zje={icon:function(t,r){return{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z\",fill:r}},{tag:\"path\",attrs:{d:\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z\",fill:t}}]}},name:\"file\",theme:\"twotone\"},Qje=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Zje}))},eze=m.forwardRef(Qje),tze={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z\"}}]},name:\"paper-clip\",theme:\"outlined\"},rze=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:tze}))},nze=m.forwardRef(rze),aze={icon:function(t,r){return{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z\",fill:t}},{tag:\"path\",attrs:{d:\"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z\",fill:r}},{tag:\"path\",attrs:{d:\"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z\",fill:r}},{tag:\"path\",attrs:{d:\"M276 368a28 28 0 1056 0 28 28 0 10-56 0z\",fill:r}},{tag:\"path\",attrs:{d:\"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z\",fill:t}}]}},name:\"picture\",theme:\"twotone\"},ize=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:aze}))},oze=m.forwardRef(ize);function uF(e){return Object.assign(Object.assign({},e),{lastModified:e.lastModified,lastModifiedDate:e.lastModifiedDate,name:e.name,size:e.size,type:e.type,uid:e.uid,percent:0,originFileObj:e})}function cF(e,t){const r=He(t),n=r.findIndex(({uid:a})=>a===e.uid);return n===-1?r.push(e):r[n]=e,r}function h5(e,t){const r=e.uid!==void 0?\"uid\":\"name\";return t.filter(n=>n[r]===e[r])[0]}function lze(e,t){const r=e.uid!==void 0?\"uid\":\"name\",n=t.filter(a=>a[r]!==e[r]);return n.length===t.length?null:n}const sze=(e=\"\")=>{const t=e.split(\"/\"),n=t[t.length-1].split(/#|\\?/)[0];return(/\\.[^./\\\\]*$/.exec(n)||[\"\"])[0]},eue=e=>e.indexOf(\"image/\")===0,uze=e=>{if(e.type&&!e.thumbUrl)return eue(e.type);const t=e.thumbUrl||e.url||\"\",r=sze(t);return/^data:image\\//.test(t)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(r)?!0:!(/^data:/.test(t)||r)},Id=200;function cze(e){return new Promise(t=>{if(!e.type||!eue(e.type)){t(\"\");return}const r=document.createElement(\"canvas\");r.width=Id,r.height=Id,r.style.cssText=`position: fixed; left: 0; top: 0; width: ${Id}px; height: ${Id}px; z-index: 9999; display: none;`,document.body.appendChild(r);const n=r.getContext(\"2d\"),a=new Image;if(a.onload=()=>{const{width:i,height:o}=a;let l=Id,s=Id,u=0,c=0;i>o?(s=o*(Id/i),c=-(s-l)/2):(l=i*(Id/o),u=-(l-s)/2),n.drawImage(a,u,c,l,s);const d=r.toDataURL();document.body.removeChild(r),window.URL.revokeObjectURL(a.src),t(d)},a.crossOrigin=\"anonymous\",e.type.startsWith(\"image/svg+xml\")){const i=new FileReader;i.onload=()=>{i.result&&typeof i.result==\"string\"&&(a.src=i.result)},i.readAsDataURL(e)}else if(e.type.startsWith(\"image/gif\")){const i=new FileReader;i.onload=()=>{i.result&&t(i.result)},i.readAsDataURL(e)}else a.src=window.URL.createObjectURL(e)})}var dze={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\"}}]},name:\"download\",theme:\"outlined\"},fze=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:dze}))},kx=m.forwardRef(fze);const hze=m.forwardRef(({prefixCls:e,className:t,style:r,locale:n,listType:a,file:i,items:o,progress:l,iconRender:s,actionIconRender:u,itemRender:c,isImgUrl:d,showPreviewIcon:f,showRemoveIcon:h,showDownloadIcon:p,previewIcon:v,removeIcon:g,downloadIcon:y,extra:b,onPreview:x,onDownload:F,onClose:S},E)=>{var w,D;const{status:A}=i,[_,I]=m.useState(A);m.useEffect(()=>{A!==\"removed\"&&I(A)},[A]);const[M,T]=m.useState(!1);m.useEffect(()=>{const X=setTimeout(()=>{T(!0)},300);return()=>{clearTimeout(X)}},[]);const k=s(i);let R=m.createElement(\"div\",{className:`${e}-icon`},k);if(a===\"picture\"||a===\"picture-card\"||a===\"picture-circle\")if(_===\"uploading\"||!i.thumbUrl&&!i.url){const X=ne(`${e}-list-item-thumbnail`,{[`${e}-list-item-file`]:_!==\"uploading\"});R=m.createElement(\"div\",{className:X},k)}else{const X=d!=null&&d(i)?m.createElement(\"img\",{src:i.thumbUrl||i.url,alt:i.name,className:`${e}-list-item-image`,crossOrigin:i.crossOrigin}):k,ce=ne(`${e}-list-item-thumbnail`,{[`${e}-list-item-file`]:d&&!d(i)});R=m.createElement(\"a\",{className:ce,onClick:oe=>x(i,oe),href:i.url||i.thumbUrl,target:\"_blank\",rel:\"noopener noreferrer\"},X)}const P=ne(`${e}-list-item`,`${e}-list-item-${_}`),B=typeof i.linkProps==\"string\"?JSON.parse(i.linkProps):i.linkProps,N=(typeof h==\"function\"?h(i):h)?u((typeof g==\"function\"?g(i):g)||m.createElement(Ix,null),()=>S(i),e,n.removeFile,!0):null,O=(typeof p==\"function\"?p(i):p)&&_===\"done\"?u((typeof y==\"function\"?y(i):y)||m.createElement(kx,null),()=>F(i),e,n.downloadFile):null,z=a!==\"picture-card\"&&a!==\"picture-circle\"&&m.createElement(\"span\",{key:\"download-delete\",className:ne(`${e}-list-item-actions`,{picture:a===\"picture\"})},O,N),W=typeof b==\"function\"?b(i):b,L=W&&m.createElement(\"span\",{className:`${e}-list-item-extra`},W),j=ne(`${e}-list-item-name`),H=i.url?m.createElement(\"a\",Object.assign({key:\"view\",target:\"_blank\",rel:\"noopener noreferrer\",className:j,title:i.name},B,{href:i.url,onClick:X=>x(i,X)}),i.name,L):m.createElement(\"span\",{key:\"view\",className:j,onClick:X=>x(i,X),title:i.name},i.name,L),V=(typeof f==\"function\"?f(i):f)&&(i.url||i.thumbUrl)?m.createElement(\"a\",{href:i.url||i.thumbUrl,target:\"_blank\",rel:\"noopener noreferrer\",onClick:X=>x(i,X),title:n.previewFile},typeof v==\"function\"?v(i):v||m.createElement(Zo,null)):null,U=(a===\"picture-card\"||a===\"picture-circle\")&&_!==\"uploading\"&&m.createElement(\"span\",{className:`${e}-list-item-actions`},V,_===\"done\"&&O,N),{getPrefixCls:Q}=m.useContext(Ot),K=Q(),Y=m.createElement(\"div\",{className:P},R,H,z,U,M&&m.createElement(fi,{motionName:`${K}-fade`,visible:_===\"uploading\",motionDeadline:2e3},({className:X})=>{const ce=\"percent\"in i?m.createElement(Es,Object.assign({type:\"line\",percent:i.percent,\"aria-label\":i[\"aria-label\"],\"aria-labelledby\":i[\"aria-labelledby\"]},l)):null;return m.createElement(\"div\",{className:ne(`${e}-list-item-progress`,X)},ce)})),ee=i.response&&typeof i.response==\"string\"?i.response:((w=i.error)===null||w===void 0?void 0:w.statusText)||((D=i.error)===null||D===void 0?void 0:D.message)||n.uploadError,J=_===\"error\"?m.createElement(Dr,{title:ee,getPopupContainer:X=>X.parentNode},Y):Y;return m.createElement(\"div\",{className:ne(`${e}-list-item-container`,t),style:r,ref:E},c?c(J,i,o,{download:F.bind(null,i),preview:x.bind(null,i),remove:S.bind(null,i)}):J)}),pze=(e,t)=>{const{listType:r=\"text\",previewFile:n=cze,onPreview:a,onDownload:i,onRemove:o,locale:l,iconRender:s,isImageUrl:u=uze,prefixCls:c,items:d=[],showPreviewIcon:f=!0,showRemoveIcon:h=!0,showDownloadIcon:p=!1,removeIcon:v,previewIcon:g,downloadIcon:y,extra:b,progress:x={size:[-1,2],showInfo:!1},appendAction:F,appendActionVisible:S=!0,itemRender:E,disabled:w}=e,[,D]=O7(),[A,_]=m.useState(!1),I=[\"picture-card\",\"picture-circle\"].includes(r);m.useEffect(()=>{r.startsWith(\"picture\")&&(d||[]).forEach(j=>{!(j.originFileObj instanceof File||j.originFileObj instanceof Blob)||j.thumbUrl!==void 0||(j.thumbUrl=\"\",n==null||n(j.originFileObj).then(H=>{j.thumbUrl=H||\"\",D()}))})},[r,d,n]),m.useEffect(()=>{_(!0)},[]);const M=(j,H)=>{if(a)return H==null||H.preventDefault(),a(j)},T=j=>{typeof i==\"function\"?i(j):j.url&&window.open(j.url)},k=j=>{o==null||o(j)},R=j=>{if(s)return s(j,r);const H=j.status===\"uploading\";if(r.startsWith(\"picture\")){const V=r===\"picture\"?m.createElement(cc,null):l.uploading,U=u!=null&&u(j)?m.createElement(oze,null):m.createElement(eze,null);return H?V:U}return H?m.createElement(cc,null):m.createElement(nze,null)},P=(j,H,V,U,Q)=>{const K={type:\"text\",size:\"small\",title:U,onClick:Y=>{var ee,J;H(),m.isValidElement(j)&&((J=(ee=j.props).onClick)===null||J===void 0||J.call(ee,Y))},className:`${V}-list-item-action`,disabled:Q?w:!1};return m.isValidElement(j)?m.createElement(ze,Object.assign({},K,{icon:oa(j,Object.assign(Object.assign({},j.props),{onClick:()=>{}}))})):m.createElement(ze,Object.assign({},K),m.createElement(\"span\",null,j))};m.useImperativeHandle(t,()=>({handlePreview:M,handleDownload:T}));const{getPrefixCls:B}=m.useContext(Ot),N=B(\"upload\",c),O=B(),z=ne(`${N}-list`,`${N}-list-${r}`),W=m.useMemo(()=>wn(K0(O),[\"onAppearEnd\",\"onEnterEnd\",\"onLeaveEnd\"]),[O]),L=Object.assign(Object.assign({},I?{}:W),{motionDeadline:2e3,motionName:`${N}-${I?\"animate-inline\":\"animate\"}`,keys:He(d.map(j=>({key:j.uid,file:j}))),motionAppear:A});return m.createElement(\"div\",{className:z},m.createElement(R7,Object.assign({},L,{component:!1}),({key:j,file:H,className:V,style:U})=>m.createElement(hze,{key:j,locale:l,prefixCls:N,className:V,style:U,file:H,items:d,progress:x,listType:r,isImgUrl:u,showPreviewIcon:f,showRemoveIcon:h,showDownloadIcon:p,removeIcon:v,previewIcon:g,downloadIcon:y,extra:b,iconRender:R,actionIconRender:P,itemRender:E,onPreview:M,onDownload:T,onClose:k})),F&&m.createElement(fi,Object.assign({},L,{visible:S,forceRender:!0}),({className:j,style:H})=>oa(F,V=>({className:ne(V.className,j),style:Object.assign(Object.assign(Object.assign({},H),{pointerEvents:j?\"none\":void 0}),V.style)}))))},mze=m.forwardRef(pze);var vze=function(e,t,r,n){function a(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function l(c){try{u(n.next(c))}catch(d){o(d)}}function s(c){try{u(n.throw(c))}catch(d){o(d)}}function u(c){c.done?i(c.value):a(c.value).then(l,s)}u((n=n.apply(e,[])).next())})};const py=`__LIST_IGNORE_${Date.now()}__`,gze=(e,t)=>{const r=na(\"upload\"),{fileList:n,defaultFileList:a,onRemove:i,showUploadList:o=!0,listType:l=\"text\",onPreview:s,onDownload:u,onChange:c,onDrop:d,previewFile:f,disabled:h,locale:p,iconRender:v,isImageUrl:g,progress:y,prefixCls:b,className:x,type:F=\"select\",children:S,style:E,itemRender:w,maxCount:D,data:A={},multiple:_=!1,hasControlInside:I=!0,action:M=\"\",accept:T=\"\",supportServerRender:k=!0,rootClassName:R}=e,P=m.useContext(Ui),B=h??P,N=e.customRequest||r.customRequest,[O,z]=un(a||[],{value:n,postState:Ae=>Ae??[]}),[W,L]=m.useState(\"drop\"),j=m.useRef(null),H=m.useRef(null);m.useMemo(()=>{const Ae=Date.now();(n||[]).forEach((_e,$e)=>{!_e.uid&&!Object.isFrozen(_e)&&(_e.uid=`__AUTO__${Ae}_${$e}__`)})},[n]);const V=(Ae,_e,$e)=>{let Ke=He(_e),pt=!1;D===1?Ke=Ke.slice(-1):D&&(pt=Ke.length>D,Ke=Ke.slice(0,D)),Fs.flushSync(()=>{z(Ke)});const _t={file:Ae,fileList:Ke};$e&&(_t.event=$e),(!pt||Ae.status===\"removed\"||Ke.some(ht=>ht.uid===Ae.uid))&&Fs.flushSync(()=>{c==null||c(_t)})},U=(Ae,_e)=>vze(void 0,void 0,void 0,function*(){const{beforeUpload:$e,transformFile:Ke}=e;let pt=Ae;if($e){const _t=yield $e(Ae,_e);if(_t===!1)return!1;if(delete Ae[py],_t===py)return Object.defineProperty(Ae,py,{value:!0,configurable:!0}),!1;typeof _t==\"object\"&&_t&&(pt=_t)}return Ke&&(pt=yield Ke(pt)),pt}),Q=Ae=>{const _e=Ae.filter(pt=>!pt.file[py]);if(!_e.length)return;const $e=_e.map(pt=>uF(pt.file));let Ke=He(O);$e.forEach(pt=>{Ke=cF(pt,Ke)}),$e.forEach((pt,_t)=>{let ht=pt;if(_e[_t].parsedFile)pt.status=\"uploading\";else{const{originFileObj:gt}=pt;let Et;try{Et=new File([gt],gt.name,{type:gt.type})}catch{Et=new Blob([gt],{type:gt.type}),Et.name=gt.name,Et.lastModifiedDate=new Date,Et.lastModified=new Date().getTime()}Et.uid=pt.uid,ht=Et}V(ht,Ke)})},K=(Ae,_e,$e)=>{try{typeof Ae==\"string\"&&(Ae=JSON.parse(Ae))}catch{}if(!h5(_e,O))return;const Ke=uF(_e);Ke.status=\"done\",Ke.percent=100,Ke.response=Ae,Ke.xhr=$e;const pt=cF(Ke,O);V(Ke,pt)},Y=(Ae,_e)=>{if(!h5(_e,O))return;const $e=uF(_e);$e.status=\"uploading\",$e.percent=Ae.percent;const Ke=cF($e,O);V($e,Ke,Ae)},ee=(Ae,_e,$e)=>{if(!h5($e,O))return;const Ke=uF($e);Ke.error=Ae,Ke.response=_e,Ke.status=\"error\";const pt=cF(Ke,O);V(Ke,pt)},J=Ae=>{let _e;Promise.resolve(typeof i==\"function\"?i(Ae):i).then($e=>{var Ke;if($e===!1)return;const pt=lze(Ae,O);pt&&(_e=Object.assign(Object.assign({},Ae),{status:\"removed\"}),O==null||O.forEach(_t=>{const ht=_e.uid!==void 0?\"uid\":\"name\";_t[ht]===_e[ht]&&!Object.isFrozen(_t)&&(_t.status=\"removed\")}),(Ke=j.current)===null||Ke===void 0||Ke.abort(_e),V(_e,pt))})},X=Ae=>{L(Ae.type),Ae.type===\"drop\"&&(d==null||d(Ae))};m.useImperativeHandle(t,()=>({onBatchStart:Q,onSuccess:K,onProgress:Y,onError:ee,fileList:O,upload:j.current,nativeElement:H.current}));const{getPrefixCls:ce,direction:oe,upload:ue}=m.useContext(Ot),ie=ce(\"upload\",b),fe=Object.assign(Object.assign({onBatchStart:Q,onError:ee,onProgress:Y,onSuccess:K},e),{customRequest:N,data:A,multiple:_,action:M,accept:T,supportServerRender:k,prefixCls:ie,disabled:B,beforeUpload:U,onChange:void 0,hasControlInside:I});delete fe.className,delete fe.style,(!S||B)&&delete fe.id;const xe=`${ie}-wrapper`,[Ee,De,ye]=Jje(ie,xe),[we]=Jo(\"Upload\",ws.Upload),{showRemoveIcon:Fe,showPreviewIcon:me,showDownloadIcon:Me,removeIcon:je,previewIcon:lt,downloadIcon:tt,extra:rt}=typeof o==\"boolean\"?{}:o,dt=typeof Fe>\"u\"?!B:Fe,Ve=(Ae,_e)=>o?m.createElement(mze,{prefixCls:ie,listType:l,items:O,previewFile:f,onPreview:s,onDownload:u,onRemove:J,showRemoveIcon:dt,showPreviewIcon:me,showDownloadIcon:Me,removeIcon:je,previewIcon:lt,downloadIcon:tt,iconRender:v,extra:rt,locale:Object.assign(Object.assign({},we),p),isImageUrl:g,progress:y,appendAction:Ae,appendActionVisible:_e,itemRender:w,disabled:B}):Ae,Ie=ne(xe,x,R,De,ye,ue==null?void 0:ue.className,{[`${ie}-rtl`]:oe===\"rtl\",[`${ie}-picture-card-wrapper`]:l===\"picture-card\",[`${ie}-picture-circle-wrapper`]:l===\"picture-circle\"}),Je=Object.assign(Object.assign({},ue==null?void 0:ue.style),E);if(F===\"drag\"){const Ae=ne(De,ie,`${ie}-drag`,{[`${ie}-drag-uploading`]:O.some(_e=>_e.status===\"uploading\"),[`${ie}-drag-hover`]:W===\"dragover\",[`${ie}-disabled`]:B,[`${ie}-rtl`]:oe===\"rtl\"});return Ee(m.createElement(\"span\",{className:Ie,ref:H},m.createElement(\"div\",{className:Ae,style:Je,onDrop:X,onDragOver:X,onDragLeave:X},m.createElement(ZR,Object.assign({},fe,{ref:j,className:`${ie}-btn`}),m.createElement(\"div\",{className:`${ie}-drag-container`},S))),Ve()))}const Pe=ne(ie,`${ie}-select`,{[`${ie}-disabled`]:B,[`${ie}-hidden`]:!S}),Ge=m.createElement(\"div\",{className:Pe,style:Je},m.createElement(ZR,Object.assign({},fe,{ref:j})));return Ee(l===\"picture-card\"||l===\"picture-circle\"?m.createElement(\"span\",{className:Ie,ref:H},Ve(Ge,!!S)):m.createElement(\"span\",{className:Ie,ref:H},Ge,Ve()))},tue=m.forwardRef(gze);var yze=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r};const bze=m.forwardRef((e,t)=>{const{style:r,height:n,hasControlInside:a=!1,children:i}=e,o=yze(e,[\"style\",\"height\",\"hasControlInside\",\"children\"]),l=Object.assign(Object.assign({},r),{height:n});return m.createElement(tue,Object.assign({ref:t,hasControlInside:a},o,{style:l,type:\"drag\"}),i)}),J6=tue;J6.Dragger=bze;J6.LIST_IGNORE=py;var Z6={},rue={exports:{}};(function(e){function t(r){return r&&r.__esModule?r:{default:r}}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(rue);var Q6=rue.exports,eD={};Object.defineProperty(eD,\"__esModule\",{value:!0});eD.default=void 0;var xze={items_per_page:\"条/页\",jump_to:\"跳至\",jump_to_confirm:\"确定\",page:\"页\",prev_page:\"上一页\",next_page:\"下一页\",prev_5:\"向前 5 页\",next_5:\"向后 5 页\",prev_3:\"向前 3 页\",next_3:\"向后 3 页\",page_size:\"页码\"};eD.default=xze;var tD={},Rx={},rD={},nue={exports:{}},aue={exports:{}},iue={exports:{}},oue={exports:{}};(function(e){function t(r){\"@babel/helpers - typeof\";return e.exports=t=typeof Symbol==\"function\"&&typeof Symbol.iterator==\"symbol\"?function(n){return typeof n}:function(n){return n&&typeof Symbol==\"function\"&&n.constructor===Symbol&&n!==Symbol.prototype?\"symbol\":typeof n},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})(oue);var lue=oue.exports,sue={exports:{}};(function(e){var t=lue.default;function r(n,a){if(t(n)!=\"object\"||!n)return n;var i=n[Symbol.toPrimitive];if(i!==void 0){var o=i.call(n,a||\"default\");if(t(o)!=\"object\")return o;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(a===\"string\"?String:Number)(n)}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(sue);var Cze=sue.exports;(function(e){var t=lue.default,r=Cze;function n(a){var i=r(a,\"string\");return t(i)==\"symbol\"?i:i+\"\"}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports})(iue);var Fze=iue.exports;(function(e){var t=Fze;function r(n,a,i){return(a=t(a))in n?Object.defineProperty(n,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[a]=i,n}e.exports=r,e.exports.__esModule=!0,e.exports.default=e.exports})(aue);var Sze=aue.exports;(function(e){var t=Sze;function r(a,i){var o=Object.keys(a);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(a);i&&(l=l.filter(function(s){return Object.getOwnPropertyDescriptor(a,s).enumerable})),o.push.apply(o,l)}return o}function n(a){for(var i=1;i<arguments.length;i++){var o=arguments[i]!=null?arguments[i]:{};i%2?r(Object(o),!0).forEach(function(l){t(a,l,o[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(l){Object.defineProperty(a,l,Object.getOwnPropertyDescriptor(o,l))})}return a}e.exports=n,e.exports.__esModule=!0,e.exports.default=e.exports})(nue);var wze=nue.exports,nD={};Object.defineProperty(nD,\"__esModule\",{value:!0});nD.commonLocale=void 0;nD.commonLocale={yearFormat:\"YYYY\",dayFormat:\"D\",cellMeridiemFormat:\"A\",monthBeforeYear:!0};var Eze=Q6.default;Object.defineProperty(rD,\"__esModule\",{value:!0});rD.default=void 0;var AW=Eze(wze),Dze=nD,Aze=(0,AW.default)((0,AW.default)({},Dze.commonLocale),{},{locale:\"zh_CN\",today:\"今天\",now:\"此刻\",backToToday:\"返回今天\",ok:\"确定\",timeSelect:\"选择时间\",dateSelect:\"选择日期\",weekSelect:\"选择周\",clear:\"清除\",week:\"周\",month:\"月\",year:\"年\",previousMonth:\"上个月 (翻页上键)\",nextMonth:\"下个月 (翻页下键)\",monthSelect:\"选择月份\",yearSelect:\"选择年份\",decadeSelect:\"选择年代\",previousYear:\"上一年 (Control键加左方向键)\",nextYear:\"下一年 (Control键加右方向键)\",previousDecade:\"上一年代\",nextDecade:\"下一年代\",previousCentury:\"上一世纪\",nextCentury:\"下一世纪\",yearFormat:\"YYYY年\",cellDateFormat:\"D\",monthBeforeYear:!1});rD.default=Aze;var Mx={};Object.defineProperty(Mx,\"__esModule\",{value:!0});Mx.default=void 0;const _ze={placeholder:\"请选择时间\",rangePlaceholder:[\"开始时间\",\"结束时间\"]};Mx.default=_ze;var uue=Q6.default;Object.defineProperty(Rx,\"__esModule\",{value:!0});Rx.default=void 0;var Tze=uue(rD),Ize=uue(Mx);const cue={lang:Object.assign({placeholder:\"请选择日期\",yearPlaceholder:\"请选择年份\",quarterPlaceholder:\"请选择季度\",monthPlaceholder:\"请选择月份\",weekPlaceholder:\"请选择周\",rangePlaceholder:[\"开始日期\",\"结束日期\"],rangeYearPlaceholder:[\"开始年份\",\"结束年份\"],rangeMonthPlaceholder:[\"开始月份\",\"结束月份\"],rangeQuarterPlaceholder:[\"开始季度\",\"结束季度\"],rangeWeekPlaceholder:[\"开始周\",\"结束周\"]},Tze.default),timePickerLocale:Object.assign({},Ize.default)};cue.lang.ok=\"确定\";Rx.default=cue;var kze=Q6.default;Object.defineProperty(tD,\"__esModule\",{value:!0});tD.default=void 0;var Rze=kze(Rx);tD.default=Rze.default;var aD=Q6.default;Object.defineProperty(Z6,\"__esModule\",{value:!0});Z6.default=void 0;var Mze=aD(eD),Pze=aD(tD),Oze=aD(Rx),Bze=aD(Mx);const Cl=\"${label}不是一个有效的${type}\",Nze={locale:\"zh-cn\",Pagination:Mze.default,DatePicker:Oze.default,TimePicker:Bze.default,Calendar:Pze.default,global:{placeholder:\"请选择\",close:\"关闭\"},Table:{filterTitle:\"筛选\",filterConfirm:\"确定\",filterReset:\"重置\",filterEmptyText:\"无筛选项\",filterCheckAll:\"全选\",filterSearchPlaceholder:\"在筛选项中搜索\",emptyText:\"暂无数据\",selectAll:\"全选当页\",selectInvert:\"反选当页\",selectNone:\"清空所有\",selectionAll:\"全选所有\",sortTitle:\"排序\",expand:\"展开行\",collapse:\"关闭行\",triggerDesc:\"点击降序\",triggerAsc:\"点击升序\",cancelSort:\"取消排序\"},Modal:{okText:\"确定\",cancelText:\"取消\",justOkText:\"知道了\"},Tour:{Next:\"下一步\",Previous:\"上一步\",Finish:\"结束导览\"},Popconfirm:{cancelText:\"取消\",okText:\"确定\"},Transfer:{titles:[\"\",\"\"],searchPlaceholder:\"请输入搜索内容\",itemUnit:\"项\",itemsUnit:\"项\",remove:\"删除\",selectCurrent:\"全选当页\",removeCurrent:\"删除当页\",selectAll:\"全选所有\",deselectAll:\"取消全选\",removeAll:\"删除全部\",selectInvert:\"反选当页\"},Upload:{uploading:\"文件上传中\",removeFile:\"删除文件\",uploadError:\"上传错误\",previewFile:\"预览文件\",downloadFile:\"下载文件\"},Empty:{description:\"暂无数据\"},Icon:{icon:\"图标\"},Text:{edit:\"编辑\",copy:\"复制\",copied:\"复制成功\",expand:\"展开\",collapse:\"收起\"},Form:{optional:\"(可选)\",defaultValidateMessages:{default:\"字段验证错误${label}\",required:\"请输入${label}\",enum:\"${label}必须是其中一个[${enum}]\",whitespace:\"${label}不能为空字符\",date:{format:\"${label}日期格式无效\",parse:\"${label}不能转换为日期\",invalid:\"${label}是一个无效日期\"},types:{string:Cl,method:Cl,array:Cl,object:Cl,number:Cl,date:Cl,boolean:Cl,integer:Cl,float:Cl,regexp:Cl,email:Cl,url:Cl,hex:Cl},string:{len:\"${label}须为${len}个字符\",min:\"${label}最少${min}个字符\",max:\"${label}最多${max}个字符\",range:\"${label}须在${min}-${max}字符之间\"},number:{len:\"${label}必须等于${len}\",min:\"${label}最小值为${min}\",max:\"${label}最大值为${max}\",range:\"${label}须在${min}-${max}之间\"},array:{len:\"须为${len}个${label}\",min:\"最少${min}个${label}\",max:\"最多${max}个${label}\",range:\"${label}数量须在${min}-${max}之间\"},pattern:{mismatch:\"${label}与模式不匹配${pattern}\"}}},Image:{preview:\"预览\"},QRCode:{expired:\"二维码过期\",refresh:\"点击刷新\",scanned:\"已扫描\"},ColorPicker:{presetEmpty:\"暂无\",transparent:\"无色\",singleColor:\"单色\",gradientColor:\"渐变色\"}};Z6.default=Nze;var $ze=Z6;const Lze=Yo($ze);function Bi(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var jze=typeof Symbol==\"function\"&&Symbol.observable||\"@@observable\",_W=jze,p5=()=>Math.random().toString(36).substring(7).split(\"\").join(\".\"),zze={INIT:`@@redux/INIT${p5()}`,REPLACE:`@@redux/REPLACE${p5()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${p5()}`},$E=zze;function XO(e){if(typeof e!=\"object\"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function due(e,t,r){if(typeof e!=\"function\")throw new Error(Bi(2));if(typeof t==\"function\"&&typeof r==\"function\"||typeof r==\"function\"&&typeof arguments[3]==\"function\")throw new Error(Bi(0));if(typeof t==\"function\"&&typeof r>\"u\"&&(r=t,t=void 0),typeof r<\"u\"){if(typeof r!=\"function\")throw new Error(Bi(1));return r(due)(e,t)}let n=e,a=t,i=new Map,o=i,l=0,s=!1;function u(){o===i&&(o=new Map,i.forEach((g,y)=>{o.set(y,g)}))}function c(){if(s)throw new Error(Bi(3));return a}function d(g){if(typeof g!=\"function\")throw new Error(Bi(4));if(s)throw new Error(Bi(5));let y=!0;u();const b=l++;return o.set(b,g),function(){if(y){if(s)throw new Error(Bi(6));y=!1,u(),o.delete(b),i=null}}}function f(g){if(!XO(g))throw new Error(Bi(7));if(typeof g.type>\"u\")throw new Error(Bi(8));if(typeof g.type!=\"string\")throw new Error(Bi(17));if(s)throw new Error(Bi(9));try{s=!0,a=n(a,g)}finally{s=!1}return(i=o).forEach(b=>{b()}),g}function h(g){if(typeof g!=\"function\")throw new Error(Bi(10));n=g,f({type:$E.REPLACE})}function p(){const g=d;return{subscribe(y){if(typeof y!=\"object\"||y===null)throw new Error(Bi(11));function b(){const F=y;F.next&&F.next(c())}return b(),{unsubscribe:g(b)}},[_W](){return this}}}return f({type:$E.INIT}),{dispatch:f,subscribe:d,getState:c,replaceReducer:h,[_W]:p}}function Hze(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:$E.INIT})>\"u\")throw new Error(Bi(12));if(typeof r(void 0,{type:$E.PROBE_UNKNOWN_ACTION()})>\"u\")throw new Error(Bi(13))})}function Vze(e){const t=Object.keys(e),r={};for(let i=0;i<t.length;i++){const o=t[i];typeof e[o]==\"function\"&&(r[o]=e[o])}const n=Object.keys(r);let a;try{Hze(r)}catch(i){a=i}return function(o={},l){if(a)throw a;let s=!1;const u={};for(let c=0;c<n.length;c++){const d=n[c],f=r[d],h=o[d],p=f(h,l);if(typeof p>\"u\")throw l&&l.type,new Error(Bi(14));u[d]=p,s=s||p!==h}return s=s||n.length!==Object.keys(o).length,s?u:o}}function LE(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function Wze(...e){return t=>(r,n)=>{const a=t(r,n);let i=()=>{throw new Error(Bi(15))};const o={getState:a.getState,dispatch:(s,...u)=>i(s,...u)},l=e.map(s=>s(o));return i=LE(...l)(a.dispatch),{...a,dispatch:i}}}function Gze(e){return XO(e)&&\"type\"in e&&typeof e.type==\"string\"}var fue=Symbol.for(\"immer-nothing\"),TW=Symbol.for(\"immer-draftable\"),Wo=Symbol.for(\"immer-state\");function Zs(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Rl=Object,Z0=Rl.getPrototypeOf,jE=\"constructor\",iD=\"prototype\",QR=\"configurable\",zE=\"enumerable\",fw=\"writable\",o2=\"value\",ld=e=>!!e&&!!e[Wo];function bu(e){var t;return e?hue(e)||lD(e)||!!e[TW]||!!((t=e[jE])!=null&&t[TW])||sD(e)||uD(e):!1}var Uze=Rl[iD][jE].toString(),IW=new WeakMap;function hue(e){if(!e||!JO(e))return!1;const t=Z0(e);if(t===null||t===Rl[iD])return!0;const r=Rl.hasOwnProperty.call(t,jE)&&t[jE];if(r===Object)return!0;if(!Rv(r))return!1;let n=IW.get(r);return n===void 0&&(n=Function.toString.call(r),IW.set(r,n)),n===Uze}function oD(e,t,r=!0){Px(e)===0?(r?Reflect.ownKeys(e):Rl.keys(e)).forEach(a=>{t(a,e[a],e)}):e.forEach((n,a)=>t(a,n,e))}function Px(e){const t=e[Wo];return t?t.type_:lD(e)?1:sD(e)?2:uD(e)?3:0}var kW=(e,t,r=Px(e))=>r===2?e.has(t):Rl[iD].hasOwnProperty.call(e,t),eM=(e,t,r=Px(e))=>r===2?e.get(t):e[t],HE=(e,t,r,n=Px(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function Kze(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var lD=Array.isArray,sD=e=>e instanceof Map,uD=e=>e instanceof Set,JO=e=>typeof e==\"object\",Rv=e=>typeof e==\"function\",m5=e=>typeof e==\"boolean\";function Yze(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var Bc=e=>e.copy_||e.base_,ZO=e=>e.modified_?e.copy_:e.base_;function tM(e,t){if(sD(e))return new Map(e);if(uD(e))return new Set(e);if(lD(e))return Array[iD].slice.call(e);const r=hue(e);if(t===!0||t===\"class_only\"&&!r){const n=Rl.getOwnPropertyDescriptors(e);delete n[Wo];let a=Reflect.ownKeys(n);for(let i=0;i<a.length;i++){const o=a[i],l=n[o];l[fw]===!1&&(l[fw]=!0,l[QR]=!0),(l.get||l.set)&&(n[o]={[QR]:!0,[fw]:!0,[zE]:l[zE],[o2]:e[o]})}return Rl.create(Z0(e),n)}else{const n=Z0(e);if(n!==null&&r)return{...e};const a=Rl.create(n);return Rl.assign(a,e)}}function QO(e,t=!1){return cD(e)||ld(e)||!bu(e)||(Px(e)>1&&Rl.defineProperties(e,{set:dF,add:dF,clear:dF,delete:dF}),Rl.freeze(e),t&&oD(e,(r,n)=>{QO(n,!0)},!1)),e}function qze(){Zs(2)}var dF={[o2]:qze};function cD(e){return e===null||!JO(e)?!0:Rl.isFrozen(e)}var VE=\"MapSet\",rM=\"Patches\",RW=\"ArrayMethods\",pue={};function Xp(e){const t=pue[e];return t||Zs(0,e),t}var MW=e=>!!pue[e],l2,mue=()=>l2,Xze=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:MW(VE)?Xp(VE):void 0,arrayMethodsPlugin_:MW(RW)?Xp(RW):void 0});function PW(e,t){t&&(e.patchPlugin_=Xp(rM),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function nM(e){aM(e),e.drafts_.forEach(Jze),e.drafts_=null}function aM(e){e===l2&&(l2=e.parent_)}var OW=e=>l2=Xze(l2,e);function Jze(e){const t=e[Wo];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function BW(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[Wo].modified_&&(nM(t),Zs(4)),bu(e)&&(e=NW(t,e));const{patchPlugin_:a}=t;a&&a.generateReplacementPatches_(r[Wo].base_,e,t)}else e=NW(t,r);return Zze(t,e,!0),nM(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==fue?e:void 0}function NW(e,t){if(cD(t))return t;const r=t[Wo];if(!r)return WE(t,e.handledSet_,e);if(!dD(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);yue(r,e)}return r.copy_}function Zze(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&QO(t,r)}function vue(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var dD=(e,t)=>e.scope_===t,Qze=[];function gue(e,t,r,n){const a=Bc(e),i=e.type_;if(n!==void 0&&eM(a,n,i)===t){HE(a,n,r,i);return}if(!e.draftLocations_){const l=e.draftLocations_=new Map;oD(a,(s,u)=>{if(ld(u)){const c=l.get(u)||[];c.push(s),l.set(u,c)}})}const o=e.draftLocations_.get(t)??Qze;for(const l of o)HE(a,l,r,i)}function eHe(e,t,r){e.callbacks_.push(function(a){var l;const i=t;if(!i||!dD(i,a))return;(l=a.mapSetPlugin_)==null||l.fixSetContents(i);const o=ZO(i);gue(e,i.draft_??i,o,r),yue(i,a)})}function yue(e,t){var n;if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(((n=e.assigned_)==null?void 0:n.size)??0)>0)){const{patchPlugin_:a}=t;if(a){const i=a.getPath(e);i&&a.generatePatches_(e,i,t)}vue(e)}}function tHe(e,t,r){const{scope_:n}=e;if(ld(r)){const a=r[Wo];dD(a,n)&&a.callbacks_.push(function(){hw(e);const o=ZO(a);gue(e,r,o,t)})}else bu(r)&&e.callbacks_.push(function(){const i=Bc(e);e.type_===3?i.has(r)&&WE(r,n.handledSet_,n):eM(i,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&WE(eM(e.copy_,t,e.type_),n.handledSet_,n)})}function WE(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||ld(e)||t.has(e)||!bu(e)||cD(e)||(t.add(e),oD(e,(n,a)=>{if(ld(a)){const i=a[Wo];if(dD(i,r)){const o=ZO(i);HE(e,n,o,e.type_),vue(i)}}else bu(a)&&WE(a,t,r)})),e}function rHe(e,t){const r=lD(e),n={type_:r?1:0,scope_:t?t.scope_:mue(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let a=n,i=GE;r&&(a=[n],i=s2);const{revoke:o,proxy:l}=Proxy.revocable(a,i);return n.draft_=l,n.revoke_=o,[l,n]}var GE={get(e,t){if(t===Wo)return e;let r=e.scope_.arrayMethodsPlugin_;const n=e.type_===1&&typeof t==\"string\";if(n&&r!=null&&r.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);const a=Bc(e);if(!kW(a,t,e.type_))return nHe(e,a,t);const i=a[t];if(e.finalized_||!bu(i)||n&&e.operationMethod&&(r!=null&&r.isMutatingArrayMethod(e.operationMethod))&&Yze(t))return i;if(i===v5(e.base_,t)){hw(e);const o=e.type_===1?+t:t,l=oM(e.scope_,i,e,o);return e.copy_[o]=l}return i},has(e,t){return t in Bc(e)},ownKeys(e){return Reflect.ownKeys(Bc(e))},set(e,t,r){const n=bue(Bc(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const a=v5(Bc(e),t),i=a==null?void 0:a[Wo];if(i&&i.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(Kze(r,a)&&(r!==void 0||kW(e.base_,t,e.type_)))return!0;hw(e),iM(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),tHe(e,t,r)),!0},deleteProperty(e,t){return hw(e),v5(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),iM(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=Bc(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[fw]:!0,[QR]:e.type_!==1||t!==\"length\",[zE]:n[zE],[o2]:r[t]}},defineProperty(){Zs(11)},getPrototypeOf(e){return Z0(e.base_)},setPrototypeOf(){Zs(12)}},s2={};for(let e in GE){let t=GE[e];s2[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}s2.deleteProperty=function(e,t){return s2.set.call(this,e,t,void 0)};s2.set=function(e,t,r){return GE.set.call(this,e[0],t,r,e[0])};function v5(e,t){const r=e[Wo];return(r?Bc(r):e)[t]}function nHe(e,t,r){var a;const n=bue(t,r);return n?o2 in n?n[o2]:(a=n.get)==null?void 0:a.call(e.draft_):void 0}function bue(e,t){if(!(t in e))return;let r=Z0(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Z0(r)}}function iM(e){e.modified_||(e.modified_=!0,e.parent_&&iM(e.parent_))}function hw(e){e.copy_||(e.assigned_=new Map,e.copy_=tM(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var aHe=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,r,n)=>{if(Rv(t)&&!Rv(r)){const i=r;r=t;const o=this;return function(s=i,...u){return o.produce(s,c=>r.call(this,c,...u))}}Rv(r)||Zs(6),n!==void 0&&!Rv(n)&&Zs(7);let a;if(bu(t)){const i=OW(this),o=oM(i,t,void 0);let l=!0;try{a=r(o),l=!1}finally{l?nM(i):aM(i)}return PW(i,n),BW(a,i)}else if(!t||!JO(t)){if(a=r(t),a===void 0&&(a=t),a===fue&&(a=void 0),this.autoFreeze_&&QO(a,!0),n){const i=[],o=[];Xp(rM).generateReplacementPatches_(t,a,{patches_:i,inversePatches_:o}),n(i,o)}return a}else Zs(1,t)},this.produceWithPatches=(t,r)=>{if(Rv(t))return(o,...l)=>this.produceWithPatches(o,s=>t(s,...l));let n,a;return[this.produce(t,r,(o,l)=>{n=o,a=l}),n,a]},m5(e==null?void 0:e.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),m5(e==null?void 0:e.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),m5(e==null?void 0:e.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){bu(e)||Zs(8),ld(e)&&(e=iHe(e));const t=OW(this),r=oM(t,e,void 0);return r[Wo].isManual_=!0,aM(t),r}finishDraft(e,t){const r=e&&e[Wo];(!r||!r.isManual_)&&Zs(9);const{scope_:n}=r;return PW(n,t),BW(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const a=t[r];if(a.path.length===0&&a.op===\"replace\"){e=a.value;break}}r>-1&&(t=t.slice(r+1));const n=Xp(rM).applyPatches_;return ld(e)?n(e,t):this.produce(e,a=>n(a,t))}};function oM(e,t,r,n){const[a,i]=sD(t)?Xp(VE).proxyMap_(t,r):uD(t)?Xp(VE).proxySet_(t,r):rHe(t,r);return((r==null?void 0:r.scope_)??mue()).drafts_.push(a),i.callbacks_=(r==null?void 0:r.callbacks_)??[],i.key_=n,r&&n!==void 0?eHe(r,i,n):i.callbacks_.push(function(s){var c;(c=s.mapSetPlugin_)==null||c.fixSetContents(i);const{patchPlugin_:u}=s;i.modified_&&u&&u.generatePatches_(i,[],s)}),a}function iHe(e){return ld(e)||Zs(10,e),xue(e)}function xue(e){if(!bu(e)||cD(e))return e;const t=e[Wo];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=tM(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=tM(e,!0);return oD(r,(a,i)=>{HE(r,a,xue(i))},n),t&&(t.finalized_=!1),r}var oHe=new aHe,Cue=oHe.produce;function Fue(e){return({dispatch:r,getState:n})=>a=>i=>typeof i==\"function\"?i(r,n,e):a(i)}var lHe=Fue(),sHe=Fue,uHe=typeof window<\"u\"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==\"object\"?LE:LE.apply(null,arguments)},cHe=e=>e&&typeof e.match==\"function\";function Ky(e,t){function r(...n){if(t){let a=t(...n);if(!a)throw new Error(Kc(0));return{type:e,payload:a.payload,...\"meta\"in a&&{meta:a.meta},...\"error\"in a&&{error:a.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>Gze(n)&&n.type===e,r}var Sue=class my extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,my.prototype)}static get[Symbol.species](){return my}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new my(...t[0].concat(this)):new my(...t.concat(this))}};function $W(e){return bu(e)?Cue(e,()=>{}):e}function fF(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function dHe(e){return typeof e==\"boolean\"}var fHe=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:a=!0,actionCreatorCheck:i=!0}=t??{};let o=new Sue;return r&&(dHe(r)?o.push(lHe):o.push(sHe(r.extraArgument))),o},hHe=\"RTK_autoBatch\",LW=e=>t=>{setTimeout(t,e)},pHe=(e,t)=>r=>{let n=!1;const a=()=>{n||(n=!0,cancelAnimationFrame(i),clearTimeout(o),r())},i=e(a),o=setTimeout(a,t)},mHe=(e={type:\"raf\"})=>t=>(...r)=>{const n=t(...r);let a=!0,i=!1,o=!1;const l=new Set,s=e.type===\"tick\"?queueMicrotask:e.type===\"raf\"?typeof window<\"u\"&&window.requestAnimationFrame?pHe(window.requestAnimationFrame,100):LW(10):e.type===\"callback\"?e.queueNotification:LW(e.timeout),u=()=>{o=!1,i&&(i=!1,l.forEach(c=>c()))};return Object.assign({},n,{subscribe(c){const d=()=>a&&c(),f=n.subscribe(d);return l.add(c),()=>{f(),l.delete(c)}},dispatch(c){var d;try{return a=!((d=c==null?void 0:c.meta)!=null&&d[hHe]),i=!a,i&&(o||(o=!0,s(u))),n.dispatch(c)}finally{a=!0}}})},vHe=e=>function(r){const{autoBatch:n=!0}=r??{};let a=new Sue(e);return n&&a.push(mHe(typeof n==\"object\"?n:void 0)),a};function gHe(e){const t=fHe(),{reducer:r=void 0,middleware:n,devTools:a=!0,preloadedState:i=void 0,enhancers:o=void 0}=e||{};let l;if(typeof r==\"function\")l=r;else if(XO(r))l=Vze(r);else throw new Error(Kc(1));let s;typeof n==\"function\"?s=n(t):s=t();let u=LE;a&&(u=uHe({trace:!1,...typeof a==\"object\"&&a}));const c=Wze(...s),d=vHe(c);let f=typeof o==\"function\"?o(d):d();const h=u(...f);return due(l,i,h)}function wue(e){const t={},r=[];let n;const a={addCase(i,o){const l=typeof i==\"string\"?i:i.type;if(!l)throw new Error(Kc(28));if(l in t)throw new Error(Kc(29));return t[l]=o,a},addAsyncThunk(i,o){return o.pending&&(t[i.pending.type]=o.pending),o.rejected&&(t[i.rejected.type]=o.rejected),o.fulfilled&&(t[i.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:i.settled,reducer:o.settled}),a},addMatcher(i,o){return r.push({matcher:i,reducer:o}),a},addDefaultCase(i){return n=i,a}};return e(a),[t,r,n]}function yHe(e){return typeof e==\"function\"}function bHe(e,t){let[r,n,a]=wue(t),i;if(yHe(e))i=()=>$W(e());else{const l=$W(e);i=()=>l}function o(l=i(),s){let u=[r[s.type],...n.filter(({matcher:c})=>c(s)).map(({reducer:c})=>c)];return u.filter(c=>!!c).length===0&&(u=[a]),u.reduce((c,d)=>{if(d)if(ld(c)){const h=d(c,s);return h===void 0?c:h}else{if(bu(c))return Cue(c,f=>d(f,s));{const f=d(c,s);if(f===void 0){if(c===null)return c;throw Error(\"A case reducer on a non-draftable value must not return undefined\")}return f}}return c},l)}return o.getInitialState=i,o}var xHe=(e,t)=>cHe(e)?e.match(t):e(t);function CHe(...e){return t=>e.some(r=>xHe(r,t))}var FHe=\"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\",SHe=(e=21)=>{let t=\"\",r=e;for(;r--;)t+=FHe[Math.random()*64|0];return t},wHe=[\"name\",\"message\",\"stack\",\"code\"],g5=class{constructor(e,t){Tu(this,\"payload\");Tu(this,\"meta\");Tu(this,\"_type\");this.payload=e,this.meta=t}},jW=class{constructor(e,t){Tu(this,\"payload\");Tu(this,\"meta\");Tu(this,\"_type\");this.payload=e,this.meta=t}},EHe=e=>{if(typeof e==\"object\"&&e!==null){const t={};for(const r of wHe)typeof e[r]==\"string\"&&(t[r]=e[r]);return t}return{message:String(e)}},zW=\"External signal was aborted\",tn=(()=>{function e(t,r,n){const a=Ky(t+\"/fulfilled\",(s,u,c,d)=>({payload:s,meta:{...d||{},arg:c,requestId:u,requestStatus:\"fulfilled\"}})),i=Ky(t+\"/pending\",(s,u,c)=>({payload:void 0,meta:{...c||{},arg:u,requestId:s,requestStatus:\"pending\"}})),o=Ky(t+\"/rejected\",(s,u,c,d,f)=>({payload:d,error:(n&&n.serializeError||EHe)(s||\"Rejected\"),meta:{...f||{},arg:c,requestId:u,rejectedWithValue:!!d,requestStatus:\"rejected\",aborted:(s==null?void 0:s.name)===\"AbortError\",condition:(s==null?void 0:s.name)===\"ConditionError\"}}));function l(s,{signal:u}={}){return(c,d,f)=>{const h=n!=null&&n.idGenerator?n.idGenerator(s):SHe(),p=new AbortController;let v,g;function y(x){g=x,p.abort()}u&&(u.aborted?y(zW):u.addEventListener(\"abort\",()=>y(zW),{once:!0}));const b=async function(){var S,E;let x;try{let w=(S=n==null?void 0:n.condition)==null?void 0:S.call(n,s,{getState:d,extra:f});if(AHe(w)&&(w=await w),w===!1||p.signal.aborted)throw{name:\"ConditionError\",message:\"Aborted due to condition callback returning false.\"};const D=new Promise((A,_)=>{v=()=>{_({name:\"AbortError\",message:g||\"Aborted\"})},p.signal.addEventListener(\"abort\",v,{once:!0})});c(i(h,s,(E=n==null?void 0:n.getPendingMeta)==null?void 0:E.call(n,{requestId:h,arg:s},{getState:d,extra:f}))),x=await Promise.race([D,Promise.resolve(r(s,{dispatch:c,getState:d,extra:f,requestId:h,signal:p.signal,abort:y,rejectWithValue:(A,_)=>new g5(A,_),fulfillWithValue:(A,_)=>new jW(A,_)})).then(A=>{if(A instanceof g5)throw A;return A instanceof jW?a(A.payload,h,s,A.meta):a(A,h,s)})])}catch(w){x=w instanceof g5?o(null,h,s,w.payload,w.meta):o(w,h,s)}finally{v&&p.signal.removeEventListener(\"abort\",v)}return n&&!n.dispatchConditionRejection&&o.match(x)&&x.meta.condition||c(x),x}();return Object.assign(b,{abort:y,requestId:h,arg:s,unwrap(){return b.then(DHe)}})}}return Object.assign(l,{pending:i,rejected:o,fulfilled:a,settled:CHe(o,a),typePrefix:t})}return e.withTypes=()=>e,e})();function DHe(e){if(e.meta&&e.meta.rejectedWithValue)throw e.payload;if(e.error)throw e.error;return e.payload}function AHe(e){return e!==null&&typeof e==\"object\"&&typeof e.then==\"function\"}var _He=Symbol.for(\"rtk-slice-createasyncthunk\");function THe(e,t){return`${e}/${t}`}function IHe({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[_He];return function(a){const{name:i,reducerPath:o=i}=a;if(!i)throw new Error(Kc(11));const l=(typeof a.reducers==\"function\"?a.reducers(RHe()):a.reducers)||{},s=Object.keys(l),u={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},c={addCase(F,S){const E=typeof F==\"string\"?F:F.type;if(!E)throw new Error(Kc(12));if(E in u.sliceCaseReducersByType)throw new Error(Kc(13));return u.sliceCaseReducersByType[E]=S,c},addMatcher(F,S){return u.sliceMatchers.push({matcher:F,reducer:S}),c},exposeAction(F,S){return u.actionCreators[F]=S,c},exposeCaseReducer(F,S){return u.sliceCaseReducersByName[F]=S,c}};s.forEach(F=>{const S=l[F],E={reducerName:F,type:THe(i,F),createNotation:typeof a.reducers==\"function\"};PHe(S)?BHe(E,S,c,t):MHe(E,S,c)});function d(){const[F={},S=[],E=void 0]=typeof a.extraReducers==\"function\"?wue(a.extraReducers):[a.extraReducers],w={...F,...u.sliceCaseReducersByType};return bHe(a.initialState,D=>{for(let A in w)D.addCase(A,w[A]);for(let A of u.sliceMatchers)D.addMatcher(A.matcher,A.reducer);for(let A of S)D.addMatcher(A.matcher,A.reducer);E&&D.addDefaultCase(E)})}const f=F=>F,h=new Map,p=new WeakMap;let v;function g(F,S){return v||(v=d()),v(F,S)}function y(){return v||(v=d()),v.getInitialState()}function b(F,S=!1){function E(D){let A=D[F];return typeof A>\"u\"&&S&&(A=fF(p,E,y)),A}function w(D=f){const A=fF(h,S,()=>new WeakMap);return fF(A,D,()=>{const _={};for(const[I,M]of Object.entries(a.selectors??{}))_[I]=kHe(M,D,()=>fF(p,D,y),S);return _})}return{reducerPath:F,getSelectors:w,get selectors(){return w(E)},selectSlice:E}}const x={name:i,reducer:g,actions:u.actionCreators,caseReducers:u.sliceCaseReducersByName,getInitialState:y,...b(o),injectInto(F,{reducerPath:S,...E}={}){const w=S??o;return F.inject({reducerPath:w,reducer:g},E),{...x,...b(w,!0)}}};return x}}function kHe(e,t,r,n){function a(i,...o){let l=t(i);return typeof l>\"u\"&&n&&(l=r()),e(l,...o)}return a.unwrapped=e,a}var Du=IHe();function RHe(){function e(t,r){return{_reducerDefinitionType:\"asyncThunk\",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:\"reducer\"})},preparedReducer(t,r){return{_reducerDefinitionType:\"reducerWithPrepare\",prepare:t,reducer:r}},asyncThunk:e}}function MHe({type:e,reducerName:t,createNotation:r},n,a){let i,o;if(\"reducer\"in n){if(r&&!OHe(n))throw new Error(Kc(17));i=n.reducer,o=n.prepare}else i=n;a.addCase(e,i).exposeCaseReducer(t,i).exposeAction(t,o?Ky(e,o):Ky(e))}function PHe(e){return e._reducerDefinitionType===\"asyncThunk\"}function OHe(e){return e._reducerDefinitionType===\"reducerWithPrepare\"}function BHe({type:e,reducerName:t},r,n,a){if(!a)throw new Error(Kc(18));const{payloadCreator:i,fulfilled:o,pending:l,rejected:s,settled:u,options:c}=r,d=a(e,i,c);n.exposeAction(t,d),o&&n.addCase(d.fulfilled,o),l&&n.addCase(d.pending,l),s&&n.addCase(d.rejected,s),u&&n.addMatcher(d.settled,u),n.exposeCaseReducer(t,{fulfilled:o||hF,pending:l||hF,rejected:s||hF,settled:u||hF})}function hF(){}function Kc(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}function Eue(e,t){return function(){return e.apply(t,arguments)}}const{toString:NHe}=Object.prototype,{getPrototypeOf:fD}=Object,{iterator:hD,toStringTag:Due}=Symbol,pD=(e=>t=>{const r=NHe.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),Au=e=>(e=e.toLowerCase(),t=>pD(t)===e),mD=e=>t=>typeof t===e,{isArray:Og}=Array,Q0=mD(\"undefined\");function Ox(e){return e!==null&&!Q0(e)&&e.constructor!==null&&!Q0(e.constructor)&&dl(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const Aue=Au(\"ArrayBuffer\");function $He(e){let t;return typeof ArrayBuffer<\"u\"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&Aue(e.buffer),t}const LHe=mD(\"string\"),dl=mD(\"function\"),_ue=mD(\"number\"),Bx=e=>e!==null&&typeof e==\"object\",jHe=e=>e===!0||e===!1,pw=e=>{if(pD(e)!==\"object\")return!1;const t=fD(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Due in e)&&!(hD in e)},zHe=e=>{if(!Bx(e)||Ox(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},HHe=Au(\"Date\"),VHe=Au(\"File\"),WHe=e=>!!(e&&typeof e.uri<\"u\"),GHe=e=>e&&typeof e.getParts<\"u\",UHe=Au(\"Blob\"),KHe=Au(\"FileList\"),YHe=e=>Bx(e)&&dl(e.pipe);function qHe(){return typeof globalThis<\"u\"?globalThis:typeof self<\"u\"?self:typeof window<\"u\"?window:typeof global<\"u\"?global:{}}const HW=qHe(),VW=typeof HW.FormData<\"u\"?HW.FormData:void 0,XHe=e=>{if(!e)return!1;if(VW&&e instanceof VW)return!0;const t=fD(e);if(!t||t===Object.prototype||!dl(e.append))return!1;const r=pD(e);return r===\"formdata\"||r===\"object\"&&dl(e.toString)&&e.toString()===\"[object FormData]\"},JHe=Au(\"URLSearchParams\"),[ZHe,QHe,eVe,tVe]=[\"ReadableStream\",\"Request\",\"Response\",\"Headers\"].map(Au),rVe=e=>e.trim?e.trim():e.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\");function Nx(e,t,{allOwnKeys:r=!1}={}){if(e===null||typeof e>\"u\")return;let n,a;if(typeof e!=\"object\"&&(e=[e]),Og(e))for(n=0,a=e.length;n<a;n++)t.call(null,e[n],n,e);else{if(Ox(e))return;const i=r?Object.getOwnPropertyNames(e):Object.keys(e),o=i.length;let l;for(n=0;n<o;n++)l=i[n],t.call(null,e[l],l,e)}}function Tue(e,t){if(Ox(e))return null;t=t.toLowerCase();const r=Object.keys(e);let n=r.length,a;for(;n-- >0;)if(a=r[n],t===a.toLowerCase())return a;return null}const cp=typeof globalThis<\"u\"?globalThis:typeof self<\"u\"?self:typeof window<\"u\"?window:global,Iue=e=>!Q0(e)&&e!==cp;function lM(...e){const{caseless:t,skipUndefined:r}=Iue(this)&&this||{},n={},a=(i,o)=>{if(o===\"__proto__\"||o===\"constructor\"||o===\"prototype\")return;const l=t&&Tue(n,o)||o,s=sM(n,l)?n[l]:void 0;pw(s)&&pw(i)?n[l]=lM(s,i):pw(i)?n[l]=lM({},i):Og(i)?n[l]=i.slice():(!r||!Q0(i))&&(n[l]=i)};for(let i=0,o=e.length;i<o;i++)e[i]&&Nx(e[i],a);return n}const nVe=(e,t,r,{allOwnKeys:n}={})=>(Nx(t,(a,i)=>{r&&dl(a)?Object.defineProperty(e,i,{__proto__:null,value:Eue(a,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,i,{__proto__:null,value:a,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),e),aVe=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),iVe=(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),Object.defineProperty(e.prototype,\"constructor\",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,\"super\",{__proto__:null,value:t.prototype}),r&&Object.assign(e.prototype,r)},oVe=(e,t,r,n)=>{let a,i,o;const l={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),i=a.length;i-- >0;)o=a[i],(!n||n(o,e,t))&&!l[o]&&(t[o]=e[o],l[o]=!0);e=r!==!1&&fD(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},lVe=(e,t,r)=>{e=String(e),(r===void 0||r>e.length)&&(r=e.length),r-=t.length;const n=e.indexOf(t,r);return n!==-1&&n===r},sVe=e=>{if(!e)return null;if(Og(e))return e;let t=e.length;if(!_ue(t))return null;const r=new Array(t);for(;t-- >0;)r[t]=e[t];return r},uVe=(e=>t=>e&&t instanceof e)(typeof Uint8Array<\"u\"&&fD(Uint8Array)),cVe=(e,t)=>{const n=(e&&e[hD]).call(e);let a;for(;(a=n.next())&&!a.done;){const i=a.value;t.call(e,i[0],i[1])}},dVe=(e,t)=>{let r;const n=[];for(;(r=e.exec(t))!==null;)n.push(r);return n},fVe=Au(\"HTMLFormElement\"),hVe=e=>e.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,function(r,n,a){return n.toUpperCase()+a}),sM=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),pVe=Au(\"RegExp\"),kue=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e),n={};Nx(r,(a,i)=>{let o;(o=t(a,i,e))!==!1&&(n[i]=o||a)}),Object.defineProperties(e,n)},mVe=e=>{kue(e,(t,r)=>{if(dl(e)&&[\"arguments\",\"caller\",\"callee\"].includes(r))return!1;const n=e[r];if(dl(n)){if(t.enumerable=!1,\"writable\"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error(\"Can not rewrite read-only method '\"+r+\"'\")})}})},vVe=(e,t)=>{const r={},n=a=>{a.forEach(i=>{r[i]=!0})};return Og(e)?n(e):n(String(e).split(t)),r},gVe=()=>{},yVe=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function bVe(e){return!!(e&&dl(e.append)&&e[Due]===\"FormData\"&&e[hD])}const xVe=e=>{const t=new WeakSet,r=n=>{if(Bx(n)){if(t.has(n))return;if(Ox(n))return n;if(!(\"toJSON\"in n)){t.add(n);const a=Og(n)?[]:{};return Nx(n,(i,o)=>{const l=r(i);!Q0(l)&&(a[o]=l)}),t.delete(n),a}}return n};return r(e)},CVe=Au(\"AsyncFunction\"),FVe=e=>e&&(Bx(e)||dl(e))&&dl(e.then)&&dl(e.catch),Rue=((e,t)=>e?setImmediate:t?((r,n)=>(cp.addEventListener(\"message\",({source:a,data:i})=>{a===cp&&i===r&&n.length&&n.shift()()},!1),a=>{n.push(a),cp.postMessage(r,\"*\")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate==\"function\",dl(cp.postMessage)),SVe=typeof queueMicrotask<\"u\"?queueMicrotask.bind(cp):typeof process<\"u\"&&process.nextTick||Rue,wVe=e=>e!=null&&dl(e[hD]),Ue={isArray:Og,isArrayBuffer:Aue,isBuffer:Ox,isFormData:XHe,isArrayBufferView:$He,isString:LHe,isNumber:_ue,isBoolean:jHe,isObject:Bx,isPlainObject:pw,isEmptyObject:zHe,isReadableStream:ZHe,isRequest:QHe,isResponse:eVe,isHeaders:tVe,isUndefined:Q0,isDate:HHe,isFile:VHe,isReactNativeBlob:WHe,isReactNative:GHe,isBlob:UHe,isRegExp:pVe,isFunction:dl,isStream:YHe,isURLSearchParams:JHe,isTypedArray:uVe,isFileList:KHe,forEach:Nx,merge:lM,extend:nVe,trim:rVe,stripBOM:aVe,inherits:iVe,toFlatObject:oVe,kindOf:pD,kindOfTest:Au,endsWith:lVe,toArray:sVe,forEachEntry:cVe,matchAll:dVe,isHTMLForm:fVe,hasOwnProperty:sM,hasOwnProp:sM,reduceDescriptors:kue,freezeMethods:mVe,toObjectSet:vVe,toCamelCase:hVe,noop:gVe,toFiniteNumber:yVe,findKey:Tue,global:cp,isContextDefined:Iue,isSpecCompliantForm:bVe,toJSONObject:xVe,isAsyncFn:CVe,isThenable:FVe,setImmediate:Rue,asap:SVe,isIterable:wVe},EVe=Ue.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\"]),DVe=e=>{const t={};let r,n,a;return e&&e.split(`\n`).forEach(function(o){a=o.indexOf(\":\"),r=o.substring(0,a).trim().toLowerCase(),n=o.substring(a+1).trim(),!(!r||t[r]&&EVe[r])&&(r===\"set-cookie\"?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+\", \"+n:n)}),t};function AVe(e){let t=0,r=e.length;for(;t<r;){const n=e.charCodeAt(t);if(n!==9&&n!==32)break;t+=1}for(;r>t;){const n=e.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return t===0&&r===e.length?e:e.slice(t,r)}const _Ve=new RegExp(\"[\\\\u0000-\\\\u0008\\\\u000a-\\\\u001f\\\\u007f]+\",\"g\"),TVe=new RegExp(\"[^\\\\u0009\\\\u0020-\\\\u007e\\\\u0080-\\\\u00ff]+\",\"g\");function eB(e,t){return Ue.isArray(e)?e.map(r=>eB(r,t)):AVe(String(e).replace(t,\"\"))}const IVe=e=>eB(e,_Ve),kVe=e=>eB(e,TVe);function Mue(e){const t=Object.create(null);return Ue.forEach(e.toJSON(),(r,n)=>{t[n]=kVe(r)}),t}const WW=Symbol(\"internals\");function E1(e){return e&&String(e).trim().toLowerCase()}function mw(e){return e===!1||e==null?e:Ue.isArray(e)?e.map(mw):IVe(String(e))}function RVe(e){const t=Object.create(null),r=/([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}const MVe=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function y5(e,t,r,n,a){if(Ue.isFunction(n))return n.call(this,t,r);if(a&&(t=r),!!Ue.isString(t)){if(Ue.isString(n))return t.indexOf(n)!==-1;if(Ue.isRegExp(n))return n.test(t)}}function PVe(e){return e.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g,(t,r,n)=>r.toUpperCase()+n)}function OVe(e,t){const r=Ue.toCamelCase(\" \"+t);[\"get\",\"set\",\"has\"].forEach(n=>{Object.defineProperty(e,n+r,{__proto__:null,value:function(a,i,o){return this[n].call(this,t,a,i,o)},configurable:!0})})}let jo=class{constructor(t){t&&this.set(t)}set(t,r,n){const a=this;function i(l,s,u){const c=E1(s);if(!c)throw new Error(\"header name must be a non-empty string\");const d=Ue.findKey(a,c);(!d||a[d]===void 0||u===!0||u===void 0&&a[d]!==!1)&&(a[d||s]=mw(l))}const o=(l,s)=>Ue.forEach(l,(u,c)=>i(u,c,s));if(Ue.isPlainObject(t)||t instanceof this.constructor)o(t,r);else if(Ue.isString(t)&&(t=t.trim())&&!MVe(t))o(DVe(t),r);else if(Ue.isObject(t)&&Ue.isIterable(t)){let l={},s,u;for(const c of t){if(!Ue.isArray(c))throw TypeError(\"Object iterator must return a key-value pair\");l[u=c[0]]=(s=l[u])?Ue.isArray(s)?[...s,c[1]]:[s,c[1]]:c[1]}o(l,r)}else t!=null&&i(r,t,n);return this}get(t,r){if(t=E1(t),t){const n=Ue.findKey(this,t);if(n){const a=this[n];if(!r)return a;if(r===!0)return RVe(a);if(Ue.isFunction(r))return r.call(this,a,n);if(Ue.isRegExp(r))return r.exec(a);throw new TypeError(\"parser must be boolean|regexp|function\")}}}has(t,r){if(t=E1(t),t){const n=Ue.findKey(this,t);return!!(n&&this[n]!==void 0&&(!r||y5(this,this[n],n,r)))}return!1}delete(t,r){const n=this;let a=!1;function i(o){if(o=E1(o),o){const l=Ue.findKey(n,o);l&&(!r||y5(n,n[l],l,r))&&(delete n[l],a=!0)}}return Ue.isArray(t)?t.forEach(i):i(t),a}clear(t){const r=Object.keys(this);let n=r.length,a=!1;for(;n--;){const i=r[n];(!t||y5(this,this[i],i,t,!0))&&(delete this[i],a=!0)}return a}normalize(t){const r=this,n={};return Ue.forEach(this,(a,i)=>{const o=Ue.findKey(n,i);if(o){r[o]=mw(a),delete r[i];return}const l=t?PVe(i):String(i).trim();l!==i&&delete r[i],r[l]=mw(a),n[l]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const r=Object.create(null);return Ue.forEach(this,(n,a)=>{n!=null&&n!==!1&&(r[a]=t&&Ue.isArray(n)?n.join(\", \"):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,r])=>t+\": \"+r).join(`\n`)}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,...r){const n=new this(t);return r.forEach(a=>n.set(a)),n}static accessor(t){const n=(this[WW]=this[WW]={accessors:{}}).accessors,a=this.prototype;function i(o){const l=E1(o);n[l]||(OVe(a,o),n[l]=!0)}return Ue.isArray(t)?t.forEach(i):i(t),this}};jo.accessor([\"Content-Type\",\"Content-Length\",\"Accept\",\"Accept-Encoding\",\"User-Agent\",\"Authorization\"]);Ue.reduceDescriptors(jo.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(n){this[r]=n}}});Ue.freezeMethods(jo);const BVe=\"[REDACTED ****]\";function NVe(e){if(Ue.hasOwnProp(e,\"toJSON\"))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(Ue.hasOwnProp(t,\"toJSON\"))return!0;t=Object.getPrototypeOf(t)}return!1}function $Ve(e,t){const r=new Set(t.map(i=>String(i).toLowerCase())),n=[],a=i=>{if(i===null||typeof i!=\"object\"||Ue.isBuffer(i))return i;if(n.indexOf(i)!==-1)return;i instanceof jo&&(i=i.toJSON()),n.push(i);let o;if(Ue.isArray(i))o=[],i.forEach((l,s)=>{const u=a(l);Ue.isUndefined(u)||(o[s]=u)});else{if(!Ue.isPlainObject(i)&&NVe(i))return n.pop(),i;o=Object.create(null);for(const[l,s]of Object.entries(i)){const u=r.has(l.toLowerCase())?BVe:a(s);Ue.isUndefined(u)||(o[l]=u)}}return n.pop(),o};return a(e)}let yr=class Pue extends Error{static from(t,r,n,a,i,o){const l=new Pue(t.message,r||t.code,n,a,i);return l.cause=t,l.name=t.name,t.status!=null&&l.status==null&&(l.status=t.status),o&&Object.assign(l,o),l}constructor(t,r,n,a,i){super(t),Object.defineProperty(this,\"message\",{__proto__:null,value:t,enumerable:!0,writable:!0,configurable:!0}),this.name=\"AxiosError\",this.isAxiosError=!0,r&&(this.code=r),n&&(this.config=n),a&&(this.request=a),i&&(this.response=i,this.status=i.status)}toJSON(){const t=this.config,r=t&&Ue.hasOwnProp(t,\"redact\")?t.redact:void 0,n=Ue.isArray(r)&&r.length>0?$Ve(t,r):Ue.toJSONObject(t);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:n,code:this.code,status:this.status}}};yr.ERR_BAD_OPTION_VALUE=\"ERR_BAD_OPTION_VALUE\";yr.ERR_BAD_OPTION=\"ERR_BAD_OPTION\";yr.ECONNABORTED=\"ECONNABORTED\";yr.ETIMEDOUT=\"ETIMEDOUT\";yr.ECONNREFUSED=\"ECONNREFUSED\";yr.ERR_NETWORK=\"ERR_NETWORK\";yr.ERR_FR_TOO_MANY_REDIRECTS=\"ERR_FR_TOO_MANY_REDIRECTS\";yr.ERR_DEPRECATED=\"ERR_DEPRECATED\";yr.ERR_BAD_RESPONSE=\"ERR_BAD_RESPONSE\";yr.ERR_BAD_REQUEST=\"ERR_BAD_REQUEST\";yr.ERR_CANCELED=\"ERR_CANCELED\";yr.ERR_NOT_SUPPORT=\"ERR_NOT_SUPPORT\";yr.ERR_INVALID_URL=\"ERR_INVALID_URL\";yr.ERR_FORM_DATA_DEPTH_EXCEEDED=\"ERR_FORM_DATA_DEPTH_EXCEEDED\";const LVe=null;function uM(e){return Ue.isPlainObject(e)||Ue.isArray(e)}function Oue(e){return Ue.endsWith(e,\"[]\")?e.slice(0,-2):e}function b5(e,t,r){return e?e.concat(t).map(function(a,i){return a=Oue(a),!r&&i?\"[\"+a+\"]\":a}).join(r?\".\":\"\"):t}function jVe(e){return Ue.isArray(e)&&!e.some(uM)}const zVe=Ue.toFlatObject(Ue,{},null,function(t){return/^is[A-Z]/.test(t)});function vD(e,t,r){if(!Ue.isObject(e))throw new TypeError(\"target must be an object\");t=t||new FormData,r=Ue.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(g,y){return!Ue.isUndefined(y[g])});const n=r.metaTokens,a=r.visitor||d,i=r.dots,o=r.indexes,l=r.Blob||typeof Blob<\"u\"&&Blob,s=r.maxDepth===void 0?100:r.maxDepth,u=l&&Ue.isSpecCompliantForm(t);if(!Ue.isFunction(a))throw new TypeError(\"visitor must be a function\");function c(v){if(v===null)return\"\";if(Ue.isDate(v))return v.toISOString();if(Ue.isBoolean(v))return v.toString();if(!u&&Ue.isBlob(v))throw new yr(\"Blob is not supported. Use a Buffer instead.\");return Ue.isArrayBuffer(v)||Ue.isTypedArray(v)?u&&typeof Blob==\"function\"?new Blob([v]):Buffer.from(v):v}function d(v,g,y){let b=v;if(Ue.isReactNative(t)&&Ue.isReactNativeBlob(v))return t.append(b5(y,g,i),c(v)),!1;if(v&&!y&&typeof v==\"object\"){if(Ue.endsWith(g,\"{}\"))g=n?g:g.slice(0,-2),v=JSON.stringify(v);else if(Ue.isArray(v)&&jVe(v)||(Ue.isFileList(v)||Ue.endsWith(g,\"[]\"))&&(b=Ue.toArray(v)))return g=Oue(g),b.forEach(function(F,S){!(Ue.isUndefined(F)||F===null)&&t.append(o===!0?b5([g],S,i):o===null?g:g+\"[]\",c(F))}),!1}return uM(v)?!0:(t.append(b5(y,g,i),c(v)),!1)}const f=[],h=Object.assign(zVe,{defaultVisitor:d,convertValue:c,isVisitable:uM});function p(v,g,y=0){if(!Ue.isUndefined(v)){if(y>s)throw new yr(\"Object is too deeply nested (\"+y+\" levels). Max depth: \"+s,yr.ERR_FORM_DATA_DEPTH_EXCEEDED);if(f.indexOf(v)!==-1)throw Error(\"Circular reference detected in \"+g.join(\".\"));f.push(v),Ue.forEach(v,function(x,F){(!(Ue.isUndefined(x)||x===null)&&a.call(t,x,Ue.isString(F)?F.trim():F,g,h))===!0&&p(x,g?g.concat(F):[F],y+1)}),f.pop()}}if(!Ue.isObject(e))throw new TypeError(\"data must be an object\");return p(e),t}function GW(e){const t={\"!\":\"%21\",\"'\":\"%27\",\"(\":\"%28\",\")\":\"%29\",\"~\":\"%7E\",\"%20\":\"+\"};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(n){return t[n]})}function tB(e,t){this._pairs=[],e&&vD(e,this,t)}const Bue=tB.prototype;Bue.append=function(t,r){this._pairs.push([t,r])};Bue.toString=function(t){const r=t?function(n){return t.call(this,n,GW)}:GW;return this._pairs.map(function(a){return r(a[0])+\"=\"+r(a[1])},\"\").join(\"&\")};function HVe(e){return encodeURIComponent(e).replace(/%3A/gi,\":\").replace(/%24/g,\"$\").replace(/%2C/gi,\",\").replace(/%20/g,\"+\")}function Nue(e,t,r){if(!t)return e;const n=r&&r.encode||HVe,a=Ue.isFunction(r)?{serialize:r}:r,i=a&&a.serialize;let o;if(i?o=i(t,a):o=Ue.isURLSearchParams(t)?t.toString():new tB(t,a).toString(n),o){const l=e.indexOf(\"#\");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf(\"?\")===-1?\"?\":\"&\")+o}return e}class UW{constructor(){this.handlers=[]}use(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){Ue.forEach(this.handlers,function(n){n!==null&&t(n)})}}const rB={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},VVe=typeof URLSearchParams<\"u\"?URLSearchParams:tB,WVe=typeof FormData<\"u\"?FormData:null,GVe=typeof Blob<\"u\"?Blob:null,UVe={isBrowser:!0,classes:{URLSearchParams:VVe,FormData:WVe,Blob:GVe},protocols:[\"http\",\"https\",\"file\",\"blob\",\"url\",\"data\"]},nB=typeof window<\"u\"&&typeof document<\"u\",cM=typeof navigator==\"object\"&&navigator||void 0,KVe=nB&&(!cM||[\"ReactNative\",\"NativeScript\",\"NS\"].indexOf(cM.product)<0),YVe=typeof WorkerGlobalScope<\"u\"&&self instanceof WorkerGlobalScope&&typeof self.importScripts==\"function\",qVe=nB&&window.location.href||\"http://localhost\",XVe=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:nB,hasStandardBrowserEnv:KVe,hasStandardBrowserWebWorkerEnv:YVe,navigator:cM,origin:qVe},Symbol.toStringTag,{value:\"Module\"})),mo={...XVe,...UVe};function JVe(e,t){return vD(e,new mo.classes.URLSearchParams,{visitor:function(r,n,a,i){return mo.isNode&&Ue.isBuffer(r)?(this.append(n,r.toString(\"base64\")),!1):i.defaultVisitor.apply(this,arguments)},...t})}function ZVe(e){return Ue.matchAll(/\\w+|\\[(\\w*)]/g,e).map(t=>t[0]===\"[]\"?\"\":t[1]||t[0])}function QVe(e){const t={},r=Object.keys(e);let n;const a=r.length;let i;for(n=0;n<a;n++)i=r[n],t[i]=e[i];return t}function $ue(e){function t(r,n,a,i){let o=r[i++];if(o===\"__proto__\")return!0;const l=Number.isFinite(+o),s=i>=r.length;return o=!o&&Ue.isArray(a)?a.length:o,s?(Ue.hasOwnProp(a,o)?a[o]=Ue.isArray(a[o])?a[o].concat(n):[a[o],n]:a[o]=n,!l):((!Ue.hasOwnProp(a,o)||!Ue.isObject(a[o]))&&(a[o]=[]),t(r,n,a[o],i)&&Ue.isArray(a[o])&&(a[o]=QVe(a[o])),!l)}if(Ue.isFormData(e)&&Ue.isFunction(e.entries)){const r={};return Ue.forEachEntry(e,(n,a)=>{t(ZVe(n),a,r,0)}),r}return null}const rv=(e,t)=>e!=null&&Ue.hasOwnProp(e,t)?e[t]:void 0;function eWe(e,t,r){if(Ue.isString(e))try{return(t||JSON.parse)(e),Ue.trim(e)}catch(n){if(n.name!==\"SyntaxError\")throw n}return(r||JSON.stringify)(e)}const $x={transitional:rB,adapter:[\"xhr\",\"http\",\"fetch\"],transformRequest:[function(t,r){const n=r.getContentType()||\"\",a=n.indexOf(\"application/json\")>-1,i=Ue.isObject(t);if(i&&Ue.isHTMLForm(t)&&(t=new FormData(t)),Ue.isFormData(t))return a?JSON.stringify($ue(t)):t;if(Ue.isArrayBuffer(t)||Ue.isBuffer(t)||Ue.isStream(t)||Ue.isFile(t)||Ue.isBlob(t)||Ue.isReadableStream(t))return t;if(Ue.isArrayBufferView(t))return t.buffer;if(Ue.isURLSearchParams(t))return r.setContentType(\"application/x-www-form-urlencoded;charset=utf-8\",!1),t.toString();let l;if(i){const s=rv(this,\"formSerializer\");if(n.indexOf(\"application/x-www-form-urlencoded\")>-1)return JVe(t,s).toString();if((l=Ue.isFileList(t))||n.indexOf(\"multipart/form-data\")>-1){const u=rv(this,\"env\"),c=u&&u.FormData;return vD(l?{\"files[]\":t}:t,c&&new c,s)}}return i||a?(r.setContentType(\"application/json\",!1),eWe(t)):t}],transformResponse:[function(t){const r=rv(this,\"transitional\")||$x.transitional,n=r&&r.forcedJSONParsing,a=rv(this,\"responseType\"),i=a===\"json\";if(Ue.isResponse(t)||Ue.isReadableStream(t))return t;if(t&&Ue.isString(t)&&(n&&!a||i)){const l=!(r&&r.silentJSONParsing)&&i;try{return JSON.parse(t,rv(this,\"parseReviver\"))}catch(s){if(l)throw s.name===\"SyntaxError\"?yr.from(s,yr.ERR_BAD_RESPONSE,this,null,rv(this,\"response\")):s}}return t}],timeout:0,xsrfCookieName:\"XSRF-TOKEN\",xsrfHeaderName:\"X-XSRF-TOKEN\",maxContentLength:-1,maxBodyLength:-1,env:{FormData:mo.classes.FormData,Blob:mo.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:\"application/json, text/plain, */*\",\"Content-Type\":void 0}}};Ue.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"query\"],e=>{$x.headers[e]={}});function x5(e,t){const r=this||$x,n=t||r,a=jo.from(n.headers);let i=n.data;return Ue.forEach(e,function(l){i=l.call(r,i,a.normalize(),t?t.status:void 0)}),a.normalize(),i}function Lue(e){return!!(e&&e.__CANCEL__)}let Lx=class extends yr{constructor(t,r,n){super(t??\"canceled\",yr.ERR_CANCELED,r,n),this.name=\"CanceledError\",this.__CANCEL__=!0}};function jue(e,t,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?e(r):t(new yr(\"Request failed with status code \"+r.status,r.status>=400&&r.status<500?yr.ERR_BAD_REQUEST:yr.ERR_BAD_RESPONSE,r.config,r.request,r))}function tWe(e){const t=/^([-+\\w]{1,25}):(?:\\/\\/)?/.exec(e);return t&&t[1]||\"\"}function rWe(e,t){e=e||10;const r=new Array(e),n=new Array(e);let a=0,i=0,o;return t=t!==void 0?t:1e3,function(s){const u=Date.now(),c=n[i];o||(o=u),r[a]=s,n[a]=u;let d=i,f=0;for(;d!==a;)f+=r[d++],d=d%e;if(a=(a+1)%e,a===i&&(i=(i+1)%e),u-o<t)return;const h=c&&u-c;return h?Math.round(f*1e3/h):void 0}}function nWe(e,t){let r=0,n=1e3/t,a,i;const o=(u,c=Date.now())=>{r=c,a=null,i&&(clearTimeout(i),i=null),e(...u)};return[(...u)=>{const c=Date.now(),d=c-r;d>=n?o(u,c):(a=u,i||(i=setTimeout(()=>{i=null,o(a)},n-d)))},()=>a&&o(a)]}const UE=(e,t,r=3)=>{let n=0;const a=rWe(50,250);return nWe(i=>{if(!i||typeof i.loaded!=\"number\")return;const o=i.loaded,l=i.lengthComputable?i.total:void 0,s=l!=null?Math.min(o,l):o,u=Math.max(0,s-n),c=a(u);n=Math.max(n,s);const d={loaded:s,total:l,progress:l?s/l:void 0,bytes:u,rate:c||void 0,estimated:c&&l?(l-s)/c:void 0,event:i,lengthComputable:l!=null,[t?\"download\":\"upload\"]:!0};e(d)},r)},KW=(e,t)=>{const r=e!=null;return[n=>t[0]({lengthComputable:r,total:e,loaded:n}),t[1]]},YW=e=>(...t)=>Ue.asap(()=>e(...t)),aWe=mo.hasStandardBrowserEnv?((e,t)=>r=>(r=new URL(r,mo.origin),e.protocol===r.protocol&&e.host===r.host&&(t||e.port===r.port)))(new URL(mo.origin),mo.navigator&&/(msie|trident)/i.test(mo.navigator.userAgent)):()=>!0,iWe=mo.hasStandardBrowserEnv?{write(e,t,r,n,a,i,o){if(typeof document>\"u\")return;const l=[`${e}=${encodeURIComponent(t)}`];Ue.isNumber(r)&&l.push(`expires=${new Date(r).toUTCString()}`),Ue.isString(n)&&l.push(`path=${n}`),Ue.isString(a)&&l.push(`domain=${a}`),i===!0&&l.push(\"secure\"),Ue.isString(o)&&l.push(`SameSite=${o}`),document.cookie=l.join(\"; \")},read(e){if(typeof document>\"u\")return null;const t=document.cookie.split(\";\");for(let r=0;r<t.length;r++){const n=t[r].replace(/^\\s+/,\"\"),a=n.indexOf(\"=\");if(a!==-1&&n.slice(0,a)===e)return decodeURIComponent(n.slice(a+1))}return null},remove(e){this.write(e,\"\",Date.now()-864e5,\"/\")}}:{write(){},read(){return null},remove(){}};function oWe(e){return typeof e!=\"string\"?!1:/^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(e)}function lWe(e,t){return t?e.replace(/\\/?\\/$/,\"\")+\"/\"+t.replace(/^\\/+/,\"\"):e}function zue(e,t,r){let n=!oWe(t);return e&&(n||r===!1)?lWe(e,t):t}const qW=e=>e instanceof jo?{...e}:e;function Jp(e,t){t=t||{};const r=Object.create(null);Object.defineProperty(r,\"hasOwnProperty\",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function n(u,c,d,f){return Ue.isPlainObject(u)&&Ue.isPlainObject(c)?Ue.merge.call({caseless:f},u,c):Ue.isPlainObject(c)?Ue.merge({},c):Ue.isArray(c)?c.slice():c}function a(u,c,d,f){if(Ue.isUndefined(c)){if(!Ue.isUndefined(u))return n(void 0,u,d,f)}else return n(u,c,d,f)}function i(u,c){if(!Ue.isUndefined(c))return n(void 0,c)}function o(u,c){if(Ue.isUndefined(c)){if(!Ue.isUndefined(u))return n(void 0,u)}else return n(void 0,c)}function l(u,c,d){if(Ue.hasOwnProp(t,d))return n(u,c);if(Ue.hasOwnProp(e,d))return n(void 0,u)}const s={url:i,method:i,data:i,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:l,headers:(u,c,d)=>a(qW(u),qW(c),d,!0)};return Ue.forEach(Object.keys({...e,...t}),function(c){if(c===\"__proto__\"||c===\"constructor\"||c===\"prototype\")return;const d=Ue.hasOwnProp(s,c)?s[c]:a,f=Ue.hasOwnProp(e,c)?e[c]:void 0,h=Ue.hasOwnProp(t,c)?t[c]:void 0,p=d(f,h,c);Ue.isUndefined(p)&&d!==l||(r[c]=p)}),r}const sWe=[\"content-type\",\"content-length\"];function uWe(e,t,r){if(r!==\"content-only\"){e.set(t);return}Object.entries(t).forEach(([n,a])=>{sWe.includes(n.toLowerCase())&&e.set(n,a)})}const cWe=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(t,r)=>String.fromCharCode(parseInt(r,16))),Hue=e=>{const t=Jp({},e),r=f=>Ue.hasOwnProp(t,f)?t[f]:void 0,n=r(\"data\");let a=r(\"withXSRFToken\");const i=r(\"xsrfHeaderName\"),o=r(\"xsrfCookieName\");let l=r(\"headers\");const s=r(\"auth\"),u=r(\"baseURL\"),c=r(\"allowAbsoluteUrls\"),d=r(\"url\");if(t.headers=l=jo.from(l),t.url=Nue(zue(u,d,c),e.params,e.paramsSerializer),s&&l.set(\"Authorization\",\"Basic \"+btoa((s.username||\"\")+\":\"+(s.password?cWe(s.password):\"\"))),Ue.isFormData(n)&&(mo.hasStandardBrowserEnv||mo.hasStandardBrowserWebWorkerEnv?l.setContentType(void 0):Ue.isFunction(n.getHeaders)&&uWe(l,n.getHeaders(),r(\"formDataHeaderPolicy\"))),mo.hasStandardBrowserEnv&&(Ue.isFunction(a)&&(a=a(t)),a===!0||a==null&&aWe(t.url))){const h=i&&o&&iWe.read(o);h&&l.set(i,h)}return t},dWe=typeof XMLHttpRequest<\"u\",fWe=dWe&&function(e){return new Promise(function(r,n){const a=Hue(e);let i=a.data;const o=jo.from(a.headers).normalize();let{responseType:l,onUploadProgress:s,onDownloadProgress:u}=a,c,d,f,h,p;function v(){h&&h(),p&&p(),a.cancelToken&&a.cancelToken.unsubscribe(c),a.signal&&a.signal.removeEventListener(\"abort\",c)}let g=new XMLHttpRequest;g.open(a.method.toUpperCase(),a.url,!0),g.timeout=a.timeout;function y(){if(!g)return;const x=jo.from(\"getAllResponseHeaders\"in g&&g.getAllResponseHeaders()),S={data:!l||l===\"text\"||l===\"json\"?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:x,config:e,request:g};jue(function(w){r(w),v()},function(w){n(w),v()},S),g=null}\"onloadend\"in g?g.onloadend=y:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.startsWith(\"file:\"))||setTimeout(y)},g.onabort=function(){g&&(n(new yr(\"Request aborted\",yr.ECONNABORTED,e,g)),v(),g=null)},g.onerror=function(F){const S=F&&F.message?F.message:\"Network Error\",E=new yr(S,yr.ERR_NETWORK,e,g);E.event=F||null,n(E),v(),g=null},g.ontimeout=function(){let F=a.timeout?\"timeout of \"+a.timeout+\"ms exceeded\":\"timeout exceeded\";const S=a.transitional||rB;a.timeoutErrorMessage&&(F=a.timeoutErrorMessage),n(new yr(F,S.clarifyTimeoutError?yr.ETIMEDOUT:yr.ECONNABORTED,e,g)),v(),g=null},i===void 0&&o.setContentType(null),\"setRequestHeader\"in g&&Ue.forEach(Mue(o),function(F,S){g.setRequestHeader(S,F)}),Ue.isUndefined(a.withCredentials)||(g.withCredentials=!!a.withCredentials),l&&l!==\"json\"&&(g.responseType=a.responseType),u&&([f,p]=UE(u,!0),g.addEventListener(\"progress\",f)),s&&g.upload&&([d,h]=UE(s),g.upload.addEventListener(\"progress\",d),g.upload.addEventListener(\"loadend\",h)),(a.cancelToken||a.signal)&&(c=x=>{g&&(n(!x||x.type?new Lx(null,e,g):x),g.abort(),v(),g=null)},a.cancelToken&&a.cancelToken.subscribe(c),a.signal&&(a.signal.aborted?c():a.signal.addEventListener(\"abort\",c)));const b=tWe(a.url);if(b&&!mo.protocols.includes(b)){n(new yr(\"Unsupported protocol \"+b+\":\",yr.ERR_BAD_REQUEST,e));return}g.send(i||null)})},hWe=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;const r=new AbortController;let n=!1;const a=function(s){if(!n){n=!0,o();const u=s instanceof Error?s:this.reason;r.abort(u instanceof yr?u:new Lx(u instanceof Error?u.message:u))}};let i=t&&setTimeout(()=>{i=null,a(new yr(`timeout of ${t}ms exceeded`,yr.ETIMEDOUT))},t);const o=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(s=>{s.unsubscribe?s.unsubscribe(a):s.removeEventListener(\"abort\",a)}),e=null)};e.forEach(s=>s.addEventListener(\"abort\",a));const{signal:l}=r;return l.unsubscribe=()=>Ue.asap(o),l},pWe=function*(e,t){let r=e.byteLength;if(r<t){yield e;return}let n=0,a;for(;n<r;)a=n+t,yield e.slice(n,a),n=a},mWe=async function*(e,t){for await(const r of vWe(e))yield*pWe(r,t)},vWe=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:r,value:n}=await t.read();if(r)break;yield n}}finally{await t.cancel()}},XW=(e,t,r,n)=>{const a=mWe(e,t);let i=0,o,l=s=>{o||(o=!0,n&&n(s))};return new ReadableStream({async pull(s){try{const{done:u,value:c}=await a.next();if(u){l(),s.close();return}let d=c.byteLength;if(r){let f=i+=d;r(f)}s.enqueue(new Uint8Array(c))}catch(u){throw l(u),u}},cancel(s){return l(s),a.return()}},{highWaterMark:2})};function gWe(e){if(!e||typeof e!=\"string\"||!e.startsWith(\"data:\"))return 0;const t=e.indexOf(\",\");if(t<0)return 0;const r=e.slice(5,t),n=e.slice(t+1);if(/;base64/i.test(r)){let o=n.length;const l=n.length;for(let h=0;h<l;h++)if(n.charCodeAt(h)===37&&h+2<l){const p=n.charCodeAt(h+1),v=n.charCodeAt(h+2);(p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102)&&(v>=48&&v<=57||v>=65&&v<=70||v>=97&&v<=102)&&(o-=2,h+=2)}let s=0,u=l-1;const c=h=>h>=2&&n.charCodeAt(h-2)===37&&n.charCodeAt(h-1)===51&&(n.charCodeAt(h)===68||n.charCodeAt(h)===100);u>=0&&(n.charCodeAt(u)===61?(s++,u--):c(u)&&(s++,u-=3)),s===1&&u>=0&&(n.charCodeAt(u)===61||c(u))&&s++;const f=Math.floor(o/4)*3-(s||0);return f>0?f:0}if(typeof Buffer<\"u\"&&typeof Buffer.byteLength==\"function\")return Buffer.byteLength(n,\"utf8\");let i=0;for(let o=0,l=n.length;o<l;o++){const s=n.charCodeAt(o);if(s<128)i+=1;else if(s<2048)i+=2;else if(s>=55296&&s<=56319&&o+1<l){const u=n.charCodeAt(o+1);u>=56320&&u<=57343?(i+=4,o++):i+=3}else i+=3}return i}const aB=\"1.16.1\",JW=64*1024,{isFunction:pF}=Ue,ZW=(e,...t)=>{try{return!!e(...t)}catch{return!1}},yWe=e=>{const t=Ue.global!==void 0&&Ue.global!==null?Ue.global:globalThis,{ReadableStream:r,TextEncoder:n}=t;e=Ue.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);const{fetch:a,Request:i,Response:o}=e,l=a?pF(a):typeof fetch==\"function\",s=pF(i),u=pF(o);if(!l)return!1;const c=l&&pF(r),d=l&&(typeof n==\"function\"?(y=>b=>y.encode(b))(new n):async y=>new Uint8Array(await new i(y).arrayBuffer())),f=s&&c&&ZW(()=>{let y=!1;const b=new i(mo.origin,{body:new r,method:\"POST\",get duplex(){return y=!0,\"half\"}}),x=b.headers.has(\"Content-Type\");return b.body!=null&&b.body.cancel(),y&&!x}),h=u&&c&&ZW(()=>Ue.isReadableStream(new o(\"\").body)),p={stream:h&&(y=>y.body)};l&&[\"text\",\"arrayBuffer\",\"blob\",\"formData\",\"stream\"].forEach(y=>{!p[y]&&(p[y]=(b,x)=>{let F=b&&b[y];if(F)return F.call(b);throw new yr(`Response type '${y}' is not supported`,yr.ERR_NOT_SUPPORT,x)})});const v=async y=>{if(y==null)return 0;if(Ue.isBlob(y))return y.size;if(Ue.isSpecCompliantForm(y))return(await new i(mo.origin,{method:\"POST\",body:y}).arrayBuffer()).byteLength;if(Ue.isArrayBufferView(y)||Ue.isArrayBuffer(y))return y.byteLength;if(Ue.isURLSearchParams(y)&&(y=y+\"\"),Ue.isString(y))return(await d(y)).byteLength},g=async(y,b)=>{const x=Ue.toFiniteNumber(y.getContentLength());return x??v(b)};return async y=>{let{url:b,method:x,data:F,signal:S,cancelToken:E,timeout:w,onDownloadProgress:D,onUploadProgress:A,responseType:_,headers:I,withCredentials:M=\"same-origin\",fetchOptions:T,maxContentLength:k,maxBodyLength:R}=Hue(y);const P=Ue.isNumber(k)&&k>-1,B=Ue.isNumber(R)&&R>-1;let N=a||fetch;_=_?(_+\"\").toLowerCase():\"text\";let O=hWe([S,E&&E.toAbortSignal()],w),z=null;const W=O&&O.unsubscribe&&(()=>{O.unsubscribe()});let L;try{if(P&&typeof b==\"string\"&&b.startsWith(\"data:\")&&gWe(b)>k)throw new yr(\"maxContentLength size of \"+k+\" exceeded\",yr.ERR_BAD_RESPONSE,y,z);if(B&&x!==\"get\"&&x!==\"head\"){const K=await g(I,F);if(typeof K==\"number\"&&isFinite(K)&&K>R)throw new yr(\"Request body larger than maxBodyLength limit\",yr.ERR_BAD_REQUEST,y,z)}if(A&&f&&x!==\"get\"&&x!==\"head\"&&(L=await g(I,F))!==0){let K=new i(b,{method:\"POST\",body:F,duplex:\"half\"}),Y;if(Ue.isFormData(F)&&(Y=K.headers.get(\"content-type\"))&&I.setContentType(Y),K.body){const[ee,J]=KW(L,UE(YW(A)));F=XW(K.body,JW,ee,J)}}Ue.isString(M)||(M=M?\"include\":\"omit\");const j=s&&\"credentials\"in i.prototype;if(Ue.isFormData(F)){const K=I.getContentType();K&&/^multipart\\/form-data/i.test(K)&&!/boundary=/i.test(K)&&I.delete(\"content-type\")}I.set(\"User-Agent\",\"axios/\"+aB,!1);const H={...T,signal:O,method:x.toUpperCase(),headers:Mue(I.normalize()),body:F,duplex:\"half\",credentials:j?M:void 0};z=s&&new i(b,H);let V=await(s?N(z,T):N(b,H));if(P){const K=Ue.toFiniteNumber(V.headers.get(\"content-length\"));if(K!=null&&K>k)throw new yr(\"maxContentLength size of \"+k+\" exceeded\",yr.ERR_BAD_RESPONSE,y,z)}const U=h&&(_===\"stream\"||_===\"response\");if(h&&V.body&&(D||P||U&&W)){const K={};[\"status\",\"statusText\",\"headers\"].forEach(oe=>{K[oe]=V[oe]});const Y=Ue.toFiniteNumber(V.headers.get(\"content-length\")),[ee,J]=D&&KW(Y,UE(YW(D),!0))||[];let X=0;const ce=oe=>{if(P&&(X=oe,X>k))throw new yr(\"maxContentLength size of \"+k+\" exceeded\",yr.ERR_BAD_RESPONSE,y,z);ee&&ee(oe)};V=new o(XW(V.body,JW,ce,()=>{J&&J(),W&&W()}),K)}_=_||\"text\";let Q=await p[Ue.findKey(p,_)||\"text\"](V,y);if(P&&!h&&!U){let K;if(Q!=null&&(typeof Q.byteLength==\"number\"?K=Q.byteLength:typeof Q.size==\"number\"?K=Q.size:typeof Q==\"string\"&&(K=typeof n==\"function\"?new n().encode(Q).byteLength:Q.length)),typeof K==\"number\"&&K>k)throw new yr(\"maxContentLength size of \"+k+\" exceeded\",yr.ERR_BAD_RESPONSE,y,z)}return!U&&W&&W(),await new Promise((K,Y)=>{jue(K,Y,{data:Q,headers:jo.from(V.headers),status:V.status,statusText:V.statusText,config:y,request:z})})}catch(j){if(W&&W(),O&&O.aborted&&O.reason instanceof yr){const H=O.reason;throw H.config=y,z&&(H.request=z),j!==H&&(H.cause=j),H}throw j&&j.name===\"TypeError\"&&/Load failed|fetch/i.test(j.message)?Object.assign(new yr(\"Network Error\",yr.ERR_NETWORK,y,z,j&&j.response),{cause:j.cause||j}):yr.from(j,j&&j.code,y,z,j&&j.response)}}},bWe=new Map,Vue=e=>{let t=e&&e.env||{};const{fetch:r,Request:n,Response:a}=t,i=[n,a,r];let o=i.length,l=o,s,u,c=bWe;for(;l--;)s=i[l],u=c.get(s),u===void 0&&c.set(s,u=l?new Map:yWe(t)),c=u;return u};Vue();const iB={http:LVe,xhr:fWe,fetch:{get:Vue}};Ue.forEach(iB,(e,t)=>{if(e){try{Object.defineProperty(e,\"name\",{__proto__:null,value:t})}catch{}Object.defineProperty(e,\"adapterName\",{__proto__:null,value:t})}});const QW=e=>`- ${e}`,xWe=e=>Ue.isFunction(e)||e===null||e===!1;function CWe(e,t){e=Ue.isArray(e)?e:[e];const{length:r}=e;let n,a;const i={};for(let o=0;o<r;o++){n=e[o];let l;if(a=n,!xWe(n)&&(a=iB[(l=String(n)).toLowerCase()],a===void 0))throw new yr(`Unknown adapter '${l}'`);if(a&&(Ue.isFunction(a)||(a=a.get(t))))break;i[l||\"#\"+o]=a}if(!a){const o=Object.entries(i).map(([s,u])=>`adapter ${s} `+(u===!1?\"is not supported by the environment\":\"is not available in the build\"));let l=r?o.length>1?`since :\n`+o.map(QW).join(`\n`):\" \"+QW(o[0]):\"as no adapter specified\";throw new yr(\"There is no suitable adapter to dispatch the request \"+l,\"ERR_NOT_SUPPORT\")}return a}const Wue={getAdapter:CWe,adapters:iB};function C5(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Lx(null,e)}function eG(e){return C5(e),e.headers=jo.from(e.headers),e.data=x5.call(e,e.transformRequest),[\"post\",\"put\",\"patch\"].indexOf(e.method)!==-1&&e.headers.setContentType(\"application/x-www-form-urlencoded\",!1),Wue.getAdapter(e.adapter||$x.adapter,e)(e).then(function(n){C5(e),e.response=n;try{n.data=x5.call(e,e.transformResponse,n)}finally{delete e.response}return n.headers=jo.from(n.headers),n},function(n){if(!Lue(n)&&(C5(e),n&&n.response)){e.response=n.response;try{n.response.data=x5.call(e,e.transformResponse,n.response)}finally{delete e.response}n.response.headers=jo.from(n.response.headers)}return Promise.reject(n)})}const gD={};[\"object\",\"boolean\",\"number\",\"function\",\"string\",\"symbol\"].forEach((e,t)=>{gD[e]=function(n){return typeof n===e||\"a\"+(t<1?\"n \":\" \")+e}});const tG={};gD.transitional=function(t,r,n){function a(i,o){return\"[Axios v\"+aB+\"] Transitional option '\"+i+\"'\"+o+(n?\". \"+n:\"\")}return(i,o,l)=>{if(t===!1)throw new yr(a(o,\" has been removed\"+(r?\" in \"+r:\"\")),yr.ERR_DEPRECATED);return r&&!tG[o]&&(tG[o]=!0,console.warn(a(o,\" has been deprecated since v\"+r+\" and will be removed in the near future\"))),t?t(i,o,l):!0}};gD.spelling=function(t){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${t}`),!0)};function FWe(e,t,r){if(typeof e!=\"object\")throw new yr(\"options must be an object\",yr.ERR_BAD_OPTION_VALUE);const n=Object.keys(e);let a=n.length;for(;a-- >0;){const i=n[a],o=Object.prototype.hasOwnProperty.call(t,i)?t[i]:void 0;if(o){const l=e[i],s=l===void 0||o(l,i,e);if(s!==!0)throw new yr(\"option \"+i+\" must be \"+s,yr.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new yr(\"Unknown option \"+i,yr.ERR_BAD_OPTION)}}const vw={assertOptions:FWe,validators:gD},ql=vw.validators;let Dp=class{constructor(t){this.defaults=t||{},this.interceptors={request:new UW,response:new UW}}async request(t,r){try{return await this._request(t,r)}catch(n){if(n instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const i=(()=>{if(!a.stack)return\"\";const o=a.stack.indexOf(`\n`);return o===-1?\"\":a.stack.slice(o+1)})();try{if(!n.stack)n.stack=i;else if(i){const o=i.indexOf(`\n`),l=o===-1?-1:i.indexOf(`\n`,o+1),s=l===-1?\"\":i.slice(l+1);String(n.stack).endsWith(s)||(n.stack+=`\n`+i)}}catch{}}throw n}}_request(t,r){typeof t==\"string\"?(r=r||{},r.url=t):r=t||{},r=Jp(this.defaults,r);const{transitional:n,paramsSerializer:a,headers:i}=r;n!==void 0&&vw.assertOptions(n,{silentJSONParsing:ql.transitional(ql.boolean),forcedJSONParsing:ql.transitional(ql.boolean),clarifyTimeoutError:ql.transitional(ql.boolean),legacyInterceptorReqResOrdering:ql.transitional(ql.boolean)},!1),a!=null&&(Ue.isFunction(a)?r.paramsSerializer={serialize:a}:vw.assertOptions(a,{encode:ql.function,serialize:ql.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),vw.assertOptions(r,{baseUrl:ql.spelling(\"baseURL\"),withXsrfToken:ql.spelling(\"withXSRFToken\")},!0),r.method=(r.method||this.defaults.method||\"get\").toLowerCase();let o=i&&Ue.merge(i.common,i[r.method]);i&&Ue.forEach([\"delete\",\"get\",\"head\",\"post\",\"put\",\"patch\",\"query\",\"common\"],p=>{delete i[p]}),r.headers=jo.concat(o,i);const l=[];let s=!0;this.interceptors.request.forEach(function(v){if(typeof v.runWhen==\"function\"&&v.runWhen(r)===!1)return;s=s&&v.synchronous;const g=r.transitional||rB;g&&g.legacyInterceptorReqResOrdering?l.unshift(v.fulfilled,v.rejected):l.push(v.fulfilled,v.rejected)});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let c,d=0,f;if(!s){const p=[eG.bind(this),void 0];for(p.unshift(...l),p.push(...u),f=p.length,c=Promise.resolve(r);d<f;)c=c.then(p[d++],p[d++]);return c}f=l.length;let h=r;for(;d<f;){const p=l[d++],v=l[d++];try{h=p(h)}catch(g){v.call(this,g);break}}try{c=eG.call(this,h)}catch(p){return Promise.reject(p)}for(d=0,f=u.length;d<f;)c=c.then(u[d++],u[d++]);return c}getUri(t){t=Jp(this.defaults,t);const r=zue(t.baseURL,t.url,t.allowAbsoluteUrls);return Nue(r,t.params,t.paramsSerializer)}};Ue.forEach([\"delete\",\"get\",\"head\",\"options\"],function(t){Dp.prototype[t]=function(r,n){return this.request(Jp(n||{},{method:t,url:r,data:(n||{}).data}))}});Ue.forEach([\"post\",\"put\",\"patch\",\"query\"],function(t){function r(n){return function(i,o,l){return this.request(Jp(l||{},{method:t,headers:n?{\"Content-Type\":\"multipart/form-data\"}:{},url:i,data:o}))}}Dp.prototype[t]=r(),t!==\"query\"&&(Dp.prototype[t+\"Form\"]=r(!0))});let SWe=class Gue{constructor(t){if(typeof t!=\"function\")throw new TypeError(\"executor must be a function.\");let r;this.promise=new Promise(function(i){r=i});const n=this;this.promise.then(a=>{if(!n._listeners)return;let i=n._listeners.length;for(;i-- >0;)n._listeners[i](a);n._listeners=null}),this.promise.then=a=>{let i;const o=new Promise(l=>{n.subscribe(l),i=l}).then(a);return o.cancel=function(){n.unsubscribe(i)},o},t(function(i,o,l){n.reason||(n.reason=new Lx(i,o,l),r(n.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 r=this._listeners.indexOf(t);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const t=new AbortController,r=n=>{t.abort(n)};return this.subscribe(r),t.signal.unsubscribe=()=>this.unsubscribe(r),t.signal}static source(){let t;return{token:new Gue(function(a){t=a}),cancel:t}}};function wWe(e){return function(r){return e.apply(null,r)}}function EWe(e){return Ue.isObject(e)&&e.isAxiosError===!0}const dM={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(dM).forEach(([e,t])=>{dM[t]=e});function Uue(e){const t=new Dp(e),r=Eue(Dp.prototype.request,t);return Ue.extend(r,Dp.prototype,t,{allOwnKeys:!0}),Ue.extend(r,t,null,{allOwnKeys:!0}),r.create=function(a){return Uue(Jp(e,a))},r}const Ba=Uue($x);Ba.Axios=Dp;Ba.CanceledError=Lx;Ba.CancelToken=SWe;Ba.isCancel=Lue;Ba.VERSION=aB;Ba.toFormData=vD;Ba.AxiosError=yr;Ba.Cancel=Ba.CanceledError;Ba.all=function(t){return Promise.all(t)};Ba.spread=wWe;Ba.isAxiosError=EWe;Ba.mergeConfig=Jp;Ba.AxiosHeaders=jo;Ba.formToJSON=e=>$ue(Ue.isHTMLForm(e)?new FormData(e):e);Ba.getAdapter=Wue.getAdapter;Ba.HttpStatusCode=dM;Ba.default=Ba;const{Axios:kkt,AxiosError:Rkt,CanceledError:Mkt,isCancel:Pkt,CancelToken:Okt,VERSION:Bkt,all:Nkt,Cancel:$kt,isAxiosError:Lkt,spread:jkt,toFormData:zkt,AxiosHeaders:Hkt,HttpStatusCode:Vkt,formToJSON:Wkt,getAdapter:Gkt,mergeConfig:Ukt,create:Kkt}=Ba,KE=[{id:\"1\",username:\"admin\",password:\"admin123\",name:\"系统管理员\",email:\"admin@user-review.com\",avatar:void 0,permissions:[\"*\"],roles:[\"admin\"]},{id:\"2\",username:\"manager\",password:\"manager123\",name:\"张经理\",email:\"zhang.manager@user-review.com\",avatar:void 0,permissions:[\"requirement:view\",\"requirement:create\",\"requirement:edit\",\"plan:view\",\"plan:create\",\"plan:approve\",\"reviewer:view\",\"reviewer:edit\",\"cs:view\",\"cs:chat\",\"channel:view\",\"risk:view\",\"dashboard:view\"],roles:[\"manager\"]},{id:\"3\",username:\"cs_agent\",password:\"cs123\",name:\"李客服\",email:\"li.cs@user-review.com\",avatar:void 0,permissions:[\"cs:view\",\"cs:chat\",\"ticket:view\",\"ticket:create\",\"ticket:edit\",\"reviewer:view\"],roles:[\"cs_agent\"]},{id:\"4\",username:\"viewer\",password:\"viewer123\",name:\"王观察\",email:\"wang.viewer@user-review.com\",avatar:void 0,permissions:[\"requirement:view\",\"plan:view\",\"reviewer:view\",\"dashboard:view\"],roles:[\"viewer\"]}];function DWe(e,t){return KE.find(r=>r.username===e&&r.password===t)}function AWe(e){return KE.find(t=>t.id===e)}var _We=[{name:\"Aegean Airlines\",iataCode:\"A3\"},{name:\"Aeroflot\",iataCode:\"SU\"},{name:\"Aerolineas Argentinas\",iataCode:\"AR\"},{name:\"Aeromexico\",iataCode:\"AM\"},{name:\"Air Algerie\",iataCode:\"AH\"},{name:\"Air Arabia\",iataCode:\"G9\"},{name:\"Air Canada\",iataCode:\"AC\"},{name:\"Air China\",iataCode:\"CA\"},{name:\"Air Europa\",iataCode:\"UX\"},{name:\"Air France-KLM\",iataCode:\"AF\"},{name:\"Air India\",iataCode:\"AI\"},{name:\"Air Mauritius\",iataCode:\"MK\"},{name:\"Air New Zealand\",iataCode:\"NZ\"},{name:\"Air Niugini\",iataCode:\"PX\"},{name:\"Air Tahiti\",iataCode:\"VT\"},{name:\"Air Tahiti Nui\",iataCode:\"TN\"},{name:\"Air Transat\",iataCode:\"TS\"},{name:\"AirAsia X\",iataCode:\"D7\"},{name:\"AirAsia\",iataCode:\"AK\"},{name:\"Aircalin\",iataCode:\"SB\"},{name:\"Alaska Airlines\",iataCode:\"AS\"},{name:\"Alitalia\",iataCode:\"AZ\"},{name:\"All Nippon Airways\",iataCode:\"NH\"},{name:\"Allegiant Air\",iataCode:\"G4\"},{name:\"American Airlines\",iataCode:\"AA\"},{name:\"Asiana Airlines\",iataCode:\"OZ\"},{name:\"Avianca\",iataCode:\"AV\"},{name:\"Azul Linhas Aereas Brasileiras\",iataCode:\"AD\"},{name:\"Azur Air\",iataCode:\"ZF\"},{name:\"Beijing Capital Airlines\",iataCode:\"JD\"},{name:\"Boliviana de Aviacion\",iataCode:\"OB\"},{name:\"British Airways\",iataCode:\"BA\"},{name:\"Cathay Pacific\",iataCode:\"CX\"},{name:\"Cebu Pacific Air\",iataCode:\"5J\"},{name:\"China Airlines\",iataCode:\"CI\"},{name:\"China Eastern Airlines\",iataCode:\"MU\"},{name:\"China Southern Airlines\",iataCode:\"CZ\"},{name:\"Condor\",iataCode:\"DE\"},{name:\"Copa Airlines\",iataCode:\"CM\"},{name:\"Delta Air Lines\",iataCode:\"DL\"},{name:\"Easyfly\",iataCode:\"VE\"},{name:\"EasyJet\",iataCode:\"U2\"},{name:\"EcoJet\",iataCode:\"8J\"},{name:\"Egyptair\",iataCode:\"MS\"},{name:\"El Al\",iataCode:\"LY\"},{name:\"Emirates Airlines\",iataCode:\"EK\"},{name:\"Ethiopian Airlines\",iataCode:\"ET\"},{name:\"Etihad Airways\",iataCode:\"EY\"},{name:\"EVA Air\",iataCode:\"BR\"},{name:\"Fiji Airways\",iataCode:\"FJ\"},{name:\"Finnair\",iataCode:\"AY\"},{name:\"Flybondi\",iataCode:\"FO\"},{name:\"Flydubai\",iataCode:\"FZ\"},{name:\"FlySafair\",iataCode:\"FA\"},{name:\"Frontier Airlines\",iataCode:\"F9\"},{name:\"Garuda Indonesia\",iataCode:\"GA\"},{name:\"Go First\",iataCode:\"G8\"},{name:\"Gol Linhas Aereas Inteligentes\",iataCode:\"G3\"},{name:\"Hainan Airlines\",iataCode:\"HU\"},{name:\"Hawaiian Airlines\",iataCode:\"HA\"},{name:\"IndiGo Airlines\",iataCode:\"6E\"},{name:\"Japan Airlines\",iataCode:\"JL\"},{name:\"Jeju Air\",iataCode:\"7C\"},{name:\"Jet2\",iataCode:\"LS\"},{name:\"JetBlue Airways\",iataCode:\"B6\"},{name:\"JetSMART\",iataCode:\"JA\"},{name:\"Juneyao Airlines\",iataCode:\"HO\"},{name:\"Kenya Airways\",iataCode:\"KQ\"},{name:\"Korean Air\",iataCode:\"KE\"},{name:\"Kulula.com\",iataCode:\"MN\"},{name:\"LATAM Airlines\",iataCode:\"LA\"},{name:\"Lion Air\",iataCode:\"JT\"},{name:\"LOT Polish Airlines\",iataCode:\"LO\"},{name:\"Lufthansa\",iataCode:\"LH\"},{name:\"Libyan Airlines\",iataCode:\"LN\"},{name:\"Linea Aerea Amaszonas\",iataCode:\"Z8\"},{name:\"Malaysia Airlines\",iataCode:\"MH\"},{name:\"Nordwind Airlines\",iataCode:\"N4\"},{name:\"Norwegian Air Shuttle\",iataCode:\"DY\"},{name:\"Oman Air\",iataCode:\"WY\"},{name:\"Pakistan International Airlines\",iataCode:\"PK\"},{name:\"Pegasus Airlines\",iataCode:\"PC\"},{name:\"Philippine Airlines\",iataCode:\"PR\"},{name:\"Qantas Group\",iataCode:\"QF\"},{name:\"Qatar Airways\",iataCode:\"QR\"},{name:\"Republic Airways\",iataCode:\"YX\"},{name:\"Royal Air Maroc\",iataCode:\"AT\"},{name:\"Ryanair\",iataCode:\"FR\"},{name:\"S7 Airlines\",iataCode:\"S7\"},{name:\"SAS\",iataCode:\"SK\"},{name:\"Satena\",iataCode:\"9R\"},{name:\"Saudia\",iataCode:\"SV\"},{name:\"Shandong Airlines\",iataCode:\"SC\"},{name:\"Sichuan Airlines\",iataCode:\"3U\"},{name:\"Singapore Airlines\",iataCode:\"SQ\"},{name:\"Sky Airline\",iataCode:\"H2\"},{name:\"SkyWest Airlines\",iataCode:\"OO\"},{name:\"South African Airways\",iataCode:\"SA\"},{name:\"Southwest Airlines\",iataCode:\"WN\"},{name:\"SpiceJet\",iataCode:\"SG\"},{name:\"Spirit Airlines\",iataCode:\"NK\"},{name:\"Spring Airlines\",iataCode:\"9S\"},{name:\"SriLankan Airlines\",iataCode:\"UL\"},{name:\"Star Peru\",iataCode:\"2I\"},{name:\"Sun Country Airlines\",iataCode:\"SY\"},{name:\"SunExpress\",iataCode:\"XQ\"},{name:\"TAP Air Portugal\",iataCode:\"TP\"},{name:\"Thai AirAsia\",iataCode:\"FD\"},{name:\"Thai Airways\",iataCode:\"TG\"},{name:\"TUI Airways\",iataCode:\"BY\"},{name:\"Tunisair\",iataCode:\"TU\"},{name:\"Turkish Airlines\",iataCode:\"TK\"},{name:\"Ukraine International\",iataCode:\"PS\"},{name:\"United Airlines\",iataCode:\"UA\"},{name:\"Ural Airlines\",iataCode:\"U6\"},{name:\"VietJet Air\",iataCode:\"VJ\"},{name:\"Vietnam Airlines\",iataCode:\"VN\"},{name:\"Virgin Atlantic Airways\",iataCode:\"VS\"},{name:\"Virgin Australia\",iataCode:\"VA\"},{name:\"VivaAerobus\",iataCode:\"VB\"},{name:\"VOEPASS Linhas Aereas\",iataCode:\"2Z\"},{name:\"Volaris\",iataCode:\"Y4\"},{name:\"WestJet\",iataCode:\"WS\"},{name:\"Wingo\",iataCode:\"P5\"},{name:\"Wizz Air\",iataCode:\"W6\"}],TWe=[{name:\"Aerospatiale/BAC Concorde\",iataTypeCode:\"SSC\"},{name:\"Airbus A300\",iataTypeCode:\"AB3\"},{name:\"Airbus A310\",iataTypeCode:\"310\"},{name:\"Airbus A310-200\",iataTypeCode:\"312\"},{name:\"Airbus A310-300\",iataTypeCode:\"313\"},{name:\"Airbus A318\",iataTypeCode:\"318\"},{name:\"Airbus A319\",iataTypeCode:\"319\"},{name:\"Airbus A319neo\",iataTypeCode:\"31N\"},{name:\"Airbus A320\",iataTypeCode:\"320\"},{name:\"Airbus A320neo\",iataTypeCode:\"32N\"},{name:\"Airbus A321\",iataTypeCode:\"321\"},{name:\"Airbus A321neo\",iataTypeCode:\"32Q\"},{name:\"Airbus A330\",iataTypeCode:\"330\"},{name:\"Airbus A330-200\",iataTypeCode:\"332\"},{name:\"Airbus A330-300\",iataTypeCode:\"333\"},{name:\"Airbus A330-800neo\",iataTypeCode:\"338\"},{name:\"Airbus A330-900neo\",iataTypeCode:\"339\"},{name:\"Airbus A340\",iataTypeCode:\"340\"},{name:\"Airbus A340-200\",iataTypeCode:\"342\"},{name:\"Airbus A340-300\",iataTypeCode:\"343\"},{name:\"Airbus A340-500\",iataTypeCode:\"345\"},{name:\"Airbus A340-600\",iataTypeCode:\"346\"},{name:\"Airbus A350\",iataTypeCode:\"350\"},{name:\"Airbus A350-900\",iataTypeCode:\"359\"},{name:\"Airbus A350-1000\",iataTypeCode:\"351\"},{name:\"Airbus A380\",iataTypeCode:\"380\"},{name:\"Airbus A380-800\",iataTypeCode:\"388\"},{name:\"Antonov An-12\",iataTypeCode:\"ANF\"},{name:\"Antonov An-24\",iataTypeCode:\"AN4\"},{name:\"Antonov An-26\",iataTypeCode:\"A26\"},{name:\"Antonov An-28\",iataTypeCode:\"A28\"},{name:\"Antonov An-30\",iataTypeCode:\"A30\"},{name:\"Antonov An-32\",iataTypeCode:\"A32\"},{name:\"Antonov An-72\",iataTypeCode:\"AN7\"},{name:\"Antonov An-124 Ruslan\",iataTypeCode:\"A4F\"},{name:\"Antonov An-140\",iataTypeCode:\"A40\"},{name:\"Antonov An-148\",iataTypeCode:\"A81\"},{name:\"Antonov An-158\",iataTypeCode:\"A58\"},{name:\"Antonov An-225 Mriya\",iataTypeCode:\"A5F\"},{name:\"Boeing 707\",iataTypeCode:\"703\"},{name:\"Boeing 717\",iataTypeCode:\"717\"},{name:\"Boeing 720B\",iataTypeCode:\"B72\"},{name:\"Boeing 727\",iataTypeCode:\"727\"},{name:\"Boeing 727-100\",iataTypeCode:\"721\"},{name:\"Boeing 727-200\",iataTypeCode:\"722\"},{name:\"Boeing 737 MAX 7\",iataTypeCode:\"7M7\"},{name:\"Boeing 737 MAX 8\",iataTypeCode:\"7M8\"},{name:\"Boeing 737 MAX 9\",iataTypeCode:\"7M9\"},{name:\"Boeing 737 MAX 10\",iataTypeCode:\"7MJ\"},{name:\"Boeing 737\",iataTypeCode:\"737\"},{name:\"Boeing 737-100\",iataTypeCode:\"731\"},{name:\"Boeing 737-200\",iataTypeCode:\"732\"},{name:\"Boeing 737-300\",iataTypeCode:\"733\"},{name:\"Boeing 737-400\",iataTypeCode:\"734\"},{name:\"Boeing 737-500\",iataTypeCode:\"735\"},{name:\"Boeing 737-600\",iataTypeCode:\"736\"},{name:\"Boeing 737-700\",iataTypeCode:\"73G\"},{name:\"Boeing 737-800\",iataTypeCode:\"738\"},{name:\"Boeing 737-900\",iataTypeCode:\"739\"},{name:\"Boeing 747\",iataTypeCode:\"747\"},{name:\"Boeing 747-100\",iataTypeCode:\"741\"},{name:\"Boeing 747-200\",iataTypeCode:\"742\"},{name:\"Boeing 747-300\",iataTypeCode:\"743\"},{name:\"Boeing 747-400\",iataTypeCode:\"744\"},{name:\"Boeing 747-400D\",iataTypeCode:\"74J\"},{name:\"Boeing 747-8\",iataTypeCode:\"748\"},{name:\"Boeing 747SP\",iataTypeCode:\"74L\"},{name:\"Boeing 747SR\",iataTypeCode:\"74R\"},{name:\"Boeing 757\",iataTypeCode:\"757\"},{name:\"Boeing 757-200\",iataTypeCode:\"752\"},{name:\"Boeing 757-300\",iataTypeCode:\"753\"},{name:\"Boeing 767\",iataTypeCode:\"767\"},{name:\"Boeing 767-200\",iataTypeCode:\"762\"},{name:\"Boeing 767-300\",iataTypeCode:\"763\"},{name:\"Boeing 767-400\",iataTypeCode:\"764\"},{name:\"Boeing 777\",iataTypeCode:\"777\"},{name:\"Boeing 777-200\",iataTypeCode:\"772\"},{name:\"Boeing 777-200LR\",iataTypeCode:\"77L\"},{name:\"Boeing 777-300\",iataTypeCode:\"773\"},{name:\"Boeing 777-300ER\",iataTypeCode:\"77W\"},{name:\"Boeing 787\",iataTypeCode:\"787\"},{name:\"Boeing 787-8\",iataTypeCode:\"788\"},{name:\"Boeing 787-9\",iataTypeCode:\"789\"},{name:\"Boeing 787-10\",iataTypeCode:\"781\"},{name:\"Canadair Challenger\",iataTypeCode:\"CCJ\"},{name:\"Canadair CL-44\",iataTypeCode:\"CL4\"},{name:\"Canadair Regional Jet 100\",iataTypeCode:\"CR1\"},{name:\"Canadair Regional Jet 200\",iataTypeCode:\"CR2\"},{name:\"Canadair Regional Jet 700\",iataTypeCode:\"CR7\"},{name:\"Canadair Regional Jet 705\",iataTypeCode:\"CRA\"},{name:\"Canadair Regional Jet 900\",iataTypeCode:\"CR9\"},{name:\"Canadair Regional Jet 1000\",iataTypeCode:\"CRK\"},{name:\"De Havilland Canada DHC-2 Beaver\",iataTypeCode:\"DHP\"},{name:\"De Havilland Canada DHC-2 Turbo-Beaver\",iataTypeCode:\"DHR\"},{name:\"De Havilland Canada DHC-3 Otter\",iataTypeCode:\"DHL\"},{name:\"De Havilland Canada DHC-4 Caribou\",iataTypeCode:\"DHC\"},{name:\"De Havilland Canada DHC-6 Twin Otter\",iataTypeCode:\"DHT\"},{name:\"De Havilland Canada DHC-7 Dash 7\",iataTypeCode:\"DH7\"},{name:\"De Havilland Canada DHC-8-100 Dash 8 / 8Q\",iataTypeCode:\"DH1\"},{name:\"De Havilland Canada DHC-8-200 Dash 8 / 8Q\",iataTypeCode:\"DH2\"},{name:\"De Havilland Canada DHC-8-300 Dash 8 / 8Q\",iataTypeCode:\"DH3\"},{name:\"De Havilland Canada DHC-8-400 Dash 8Q\",iataTypeCode:\"DH4\"},{name:\"De Havilland DH.104 Dove\",iataTypeCode:\"DHD\"},{name:\"De Havilland DH.114 Heron\",iataTypeCode:\"DHH\"},{name:\"Douglas DC-3\",iataTypeCode:\"D3F\"},{name:\"Douglas DC-6\",iataTypeCode:\"D6F\"},{name:\"Douglas DC-8-50\",iataTypeCode:\"D8T\"},{name:\"Douglas DC-8-62\",iataTypeCode:\"D8L\"},{name:\"Douglas DC-8-72\",iataTypeCode:\"D8Q\"},{name:\"Douglas DC-9-10\",iataTypeCode:\"D91\"},{name:\"Douglas DC-9-20\",iataTypeCode:\"D92\"},{name:\"Douglas DC-9-30\",iataTypeCode:\"D93\"},{name:\"Douglas DC-9-40\",iataTypeCode:\"D94\"},{name:\"Douglas DC-9-50\",iataTypeCode:\"D95\"},{name:\"Douglas DC-10\",iataTypeCode:\"D10\"},{name:\"Douglas DC-10-10\",iataTypeCode:\"D1X\"},{name:\"Douglas DC-10-30\",iataTypeCode:\"D1Y\"},{name:\"Embraer 170\",iataTypeCode:\"E70\"},{name:\"Embraer 175\",iataTypeCode:\"E75\"},{name:\"Embraer 190\",iataTypeCode:\"E90\"},{name:\"Embraer 195\",iataTypeCode:\"E95\"},{name:\"Embraer E190-E2\",iataTypeCode:\"290\"},{name:\"Embraer E195-E2\",iataTypeCode:\"295\"},{name:\"Embraer EMB.110 Bandeirante\",iataTypeCode:\"EMB\"},{name:\"Embraer EMB.120 Brasilia\",iataTypeCode:\"EM2\"},{name:\"Embraer Legacy 600\",iataTypeCode:\"ER3\"},{name:\"Embraer Phenom 100\",iataTypeCode:\"EP1\"},{name:\"Embraer Phenom 300\",iataTypeCode:\"EP3\"},{name:\"Embraer RJ135\",iataTypeCode:\"ER3\"},{name:\"Embraer RJ140\",iataTypeCode:\"ERD\"},{name:\"Embraer RJ145 Amazon\",iataTypeCode:\"ER4\"},{name:\"Ilyushin IL18\",iataTypeCode:\"IL8\"},{name:\"Ilyushin IL62\",iataTypeCode:\"IL6\"},{name:\"Ilyushin IL76\",iataTypeCode:\"IL7\"},{name:\"Ilyushin IL86\",iataTypeCode:\"ILW\"},{name:\"Ilyushin IL96-300\",iataTypeCode:\"I93\"},{name:\"Ilyushin IL114\",iataTypeCode:\"I14\"},{name:\"Lockheed L-182 / 282 / 382 (L-100) Hercules\",iataTypeCode:\"LOH\"},{name:\"Lockheed L-188 Electra\",iataTypeCode:\"LOE\"},{name:\"Lockheed L-1011 Tristar\",iataTypeCode:\"L10\"},{name:\"Lockheed L-1049 Super Constellation\",iataTypeCode:\"L49\"},{name:\"McDonnell Douglas MD11\",iataTypeCode:\"M11\"},{name:\"McDonnell Douglas MD80\",iataTypeCode:\"M80\"},{name:\"McDonnell Douglas MD81\",iataTypeCode:\"M81\"},{name:\"McDonnell Douglas MD82\",iataTypeCode:\"M82\"},{name:\"McDonnell Douglas MD83\",iataTypeCode:\"M83\"},{name:\"McDonnell Douglas MD87\",iataTypeCode:\"M87\"},{name:\"McDonnell Douglas MD88\",iataTypeCode:\"M88\"},{name:\"McDonnell Douglas MD90\",iataTypeCode:\"M90\"},{name:\"Sukhoi Superjet 100-95\",iataTypeCode:\"SU9\"},{name:\"Tupolev Tu-134\",iataTypeCode:\"TU3\"},{name:\"Tupolev Tu-154\",iataTypeCode:\"TU5\"},{name:\"Tupolev Tu-204\",iataTypeCode:\"T20\"},{name:\"Yakovlev Yak-40\",iataTypeCode:\"YK4\"},{name:\"Yakovlev Yak-42\",iataTypeCode:\"YK2\"}],IWe=[{name:\"Adelaide International Airport\",iataCode:\"ADL\"},{name:\"Adolfo Suarez Madrid-Barajas Airport\",iataCode:\"MAD\"},{name:\"Aeroparque Jorge Newbery Airport\",iataCode:\"AEP\"},{name:\"Afonso Pena International Airport\",iataCode:\"CWB\"},{name:\"Alfonso Bonilla Aragon International Airport\",iataCode:\"CLO\"},{name:\"Amsterdam Airport Schiphol\",iataCode:\"AMS\"},{name:\"Arturo Merino Benitez International Airport\",iataCode:\"SCL\"},{name:\"Auckland International Airport\",iataCode:\"AKL\"},{name:\"Beijing Capital International Airport\",iataCode:\"PEK\"},{name:\"Belem Val de Cans International Airport\",iataCode:\"BEL\"},{name:\"Belo Horizonte Tancredo Neves International Airport\",iataCode:\"CNF\"},{name:\"Berlin-Tegel Airport\",iataCode:\"TXL\"},{name:\"Bole International Airport\",iataCode:\"ADD\"},{name:\"Brasilia-Presidente Juscelino Kubitschek International Airport\",iataCode:\"BSB\"},{name:\"Brisbane International Airport\",iataCode:\"BNE\"},{name:\"Brussels Airport\",iataCode:\"BRU\"},{name:\"Cairns Airport\",iataCode:\"CNS\"},{name:\"Cairo International Airport\",iataCode:\"CAI\"},{name:\"Canberra Airport\",iataCode:\"CBR\"},{name:\"Capetown International Airport\",iataCode:\"CPT\"},{name:\"Charles de Gaulle International Airport\",iataCode:\"CDG\"},{name:\"Charlotte Douglas International Airport\",iataCode:\"CLT\"},{name:\"Chengdu Shuangliu International Airport\",iataCode:\"CTU\"},{name:\"Chhatrapati Shivaji International Airport\",iataCode:\"BOM\"},{name:\"Chicago O'Hare International Airport\",iataCode:\"ORD\"},{name:\"Chongqing Jiangbei International Airport\",iataCode:\"CKG\"},{name:\"Christchurch International Airport\",iataCode:\"CHC\"},{name:\"Copenhagen Kastrup Airport\",iataCode:\"CPH\"},{name:\"Dallas Fort Worth International Airport\",iataCode:\"DFW\"},{name:\"Daniel K. Inouye International Airport\",iataCode:\"HNL\"},{name:\"Denver International Airport\",iataCode:\"DEN\"},{name:\"Don Mueang International Airport\",iataCode:\"DMK\"},{name:\"Dubai International Airport\",iataCode:\"DXB\"},{name:\"Dublin Airport\",iataCode:\"DUB\"},{name:\"Dusseldorf Airport\",iataCode:\"DUS\"},{name:\"El Dorado International Airport\",iataCode:\"BOG\"},{name:\"Eleftherios Venizelos International Airport\",iataCode:\"ATH\"},{name:\"Faa'a International Airport\",iataCode:\"PPT\"},{name:\"Fort Lauderdale Hollywood International Airport\",iataCode:\"FLL\"},{name:\"Fortaleza Pinto Martins International Airport\",iataCode:\"FOR\"},{name:\"Frankfurt am Main Airport\",iataCode:\"FRA\"},{name:\"George Bush Intercontinental Houston Airport\",iataCode:\"IAH\"},{name:\"Gold Coast Airport\",iataCode:\"OOL\"},{name:\"Guarulhos - Governador Andre Franco Montoro International Airport\",iataCode:\"GRU\"},{name:\"Hartsfield-Jackson Atlanta International Airport\",iataCode:\"ATL\"},{name:\"Helsinki Vantaa Airport\",iataCode:\"HEL\"},{name:\"Hobart International Airport\",iataCode:\"HBA\"},{name:\"Hong Kong International Airport\",iataCode:\"HKG\"},{name:\"Houari Boumediene Airport\",iataCode:\"ALG\"},{name:\"Hurgada International Airport\",iataCode:\"HRG\"},{name:\"Incheon International Airport\",iataCode:\"ICN\"},{name:\"Indira Gandhi International Airport\",iataCode:\"DEL\"},{name:\"Istanbul Airport\",iataCode:\"IST\"},{name:\"Jacksons International Airport\",iataCode:\"POM\"},{name:\"Jeju International Airport\",iataCode:\"CJU\"},{name:\"John F Kennedy International Airport\",iataCode:\"JFK\"},{name:\"Jorge Chavez International Airport\",iataCode:\"LIM\"},{name:\"Jose Maria Cordova International Airport\",iataCode:\"MDE\"},{name:\"Josep Tarradellas Barcelona-El Prat Airport\",iataCode:\"BCN\"},{name:\"Kahului Airport\",iataCode:\"OGG\"},{name:\"King Abdulaziz International Airport\",iataCode:\"JED\"},{name:\"Kuala Lumpur International Airport\",iataCode:\"KUL\"},{name:\"Kunming Changshui International Airport\",iataCode:\"KMG\"},{name:\"La Tontouta International Airport\",iataCode:\"NOU\"},{name:\"Leonardo da Vinci-Fiumicino Airport\",iataCode:\"FCO\"},{name:\"London Heathrow Airport\",iataCode:\"LHR\"},{name:\"Los Angeles International Airport\",iataCode:\"LAX\"},{name:\"McCarran International Airport\",iataCode:\"LAS\"},{name:\"Melbourne International Airport\",iataCode:\"MEL\"},{name:\"Mexico City International Airport\",iataCode:\"MEX\"},{name:\"Miami International Airport\",iataCode:\"MIA\"},{name:\"Ministro Pistarini International Airport\",iataCode:\"EZE\"},{name:\"Minneapolis-St Paul International/Wold-Chamberlain Airport\",iataCode:\"MSP\"},{name:\"Mohammed V International Airport\",iataCode:\"CMN\"},{name:\"Moscow Domodedovo Airport\",iataCode:\"DME\"},{name:\"Munich Airport\",iataCode:\"MUC\"},{name:\"Murtala Muhammed International Airport\",iataCode:\"LOS\"},{name:\"Nadi International Airport\",iataCode:\"NAN\"},{name:\"Nairobi Jomo Kenyatta International Airport\",iataCode:\"NBO\"},{name:\"Narita International Airport\",iataCode:\"NRT\"},{name:\"Newark Liberty International Airport\",iataCode:\"EWR\"},{name:\"Ninoy Aquino International Airport\",iataCode:\"MNL\"},{name:\"Noumea Magenta Airport\",iataCode:\"GEA\"},{name:\"O. R. Tambo International Airport\",iataCode:\"JNB\"},{name:\"Orlando International Airport\",iataCode:\"MCO\"},{name:\"Oslo Lufthavn\",iataCode:\"OSL\"},{name:\"Perth Airport\",iataCode:\"PER\"},{name:\"Phoenix Sky Harbor International Airport\",iataCode:\"PHX\"},{name:\"Recife Guararapes-Gilberto Freyre International Airport\",iataCode:\"REC\"},{name:\"Rio de Janeiro Galeao International Airport\",iataCode:\"GIG\"},{name:\"Salgado Filho International Airport\",iataCode:\"POA\"},{name:\"Salvador Deputado Luis Eduardo Magalhaes International Airport\",iataCode:\"SSA\"},{name:\"San Francisco International Airport\",iataCode:\"SFO\"},{name:\"Santos Dumont Airport\",iataCode:\"SDU\"},{name:\"Sao Paulo-Congonhas Airport\",iataCode:\"CGH\"},{name:\"Seattle Tacoma International Airport\",iataCode:\"SEA\"},{name:\"Shanghai Hongqiao International Airport\",iataCode:\"SHA\"},{name:\"Shanghai Pudong International Airport\",iataCode:\"PVG\"},{name:\"Shenzhen Bao'an International Airport\",iataCode:\"SZX\"},{name:\"Sheremetyevo International Airport\",iataCode:\"SVO\"},{name:\"Singapore Changi Airport\",iataCode:\"SIN\"},{name:\"Soekarno-Hatta International Airport\",iataCode:\"CGK\"},{name:'Stockholm-Arlanda Airport\"',iataCode:\"ARN\"},{name:\"Suvarnabhumi Airport\",iataCode:\"BKK\"},{name:\"Sydney Kingsford Smith International Airport\",iataCode:\"SYD\"},{name:\"Taiwan Taoyuan International Airport\",iataCode:\"TPE\"},{name:\"Tan Son Nhat International Airport\",iataCode:\"SGN\"},{name:\"Tokyo Haneda International Airport\",iataCode:\"HND\"},{name:\"Toronto Pearson International Airport\",iataCode:\"YYZ\"},{name:\"Tunis Carthage International Airport\",iataCode:\"TUN\"},{name:\"Vancouver International Airport\",iataCode:\"YVR\"},{name:\"Vienna International Airport\",iataCode:\"VIE\"},{name:\"Viracopos International Airport\",iataCode:\"VCP\"},{name:\"Vnukovo International Airport\",iataCode:\"VKO\"},{name:\"Wellington International Airport\",iataCode:\"WLG\"},{name:\"Xi'an Xianyang International Airport\",iataCode:\"XIY\"},{name:\"Zhukovsky International Airport\",iataCode:\"ZIA\"},{name:\"Zurich Airport\",iataCode:\"ZRH\"}],kWe={airline:_We,airplane:TWe,airport:IWe},RWe=kWe,MWe=[\"Giant panda\",\"Spectacled bear\",\"Sun bear\",\"Sloth bear\",\"American black bear\",\"Asian black bear\",\"Brown bear\",\"Polar bear\"],PWe=[\"Red-throated Loon\",\"Arctic Loon\",\"Pacific Loon\",\"Common Loon\",\"Yellow-billed Loon\",\"Least Grebe\",\"Pied-billed Grebe\",\"Horned Grebe\",\"Red-necked Grebe\",\"Eared Grebe\",\"Western Grebe\",\"Clark's Grebe\",\"Yellow-nosed Albatross\",\"Shy Albatross\",\"Black-browed Albatross\",\"Wandering Albatross\",\"Laysan Albatross\",\"Black-footed Albatross\",\"Short-tailed Albatross\",\"Northern Fulmar\",\"Herald Petrel\",\"Murphy's Petrel\",\"Mottled Petrel\",\"Black-capped Petrel\",\"Cook's Petrel\",\"Stejneger's Petrel\",\"White-chinned Petrel\",\"Streaked Shearwater\",\"Cory's Shearwater\",\"Pink-footed Shearwater\",\"Flesh-footed Shearwater\",\"Greater Shearwater\",\"Wedge-tailed Shearwater\",\"Buller's Shearwater\",\"Sooty Shearwater\",\"Short-tailed Shearwater\",\"Manx Shearwater\",\"Black-vented Shearwater\",\"Audubon's Shearwater\",\"Little Shearwater\",\"Wilson's Storm-Petrel\",\"White-faced Storm-Petrel\",\"European Storm-Petrel\",\"Fork-tailed Storm-Petrel\",\"Leach's Storm-Petrel\",\"Ashy Storm-Petrel\",\"Band-rumped Storm-Petrel\",\"Wedge-rumped Storm-Petrel\",\"Black Storm-Petrel\",\"Least Storm-Petrel\",\"White-tailed Tropicbird\",\"Red-billed Tropicbird\",\"Red-tailed Tropicbird\",\"Masked Booby\",\"Blue-footed Booby\",\"Brown Booby\",\"Red-footed Booby\",\"Northern Gannet\",\"American White Pelican\",\"Brown Pelican\",\"Brandt's Cormorant\",\"Neotropic Cormorant\",\"Double-crested Cormorant\",\"Great Cormorant\",\"Red-faced Cormorant\",\"Pelagic Cormorant\",\"Anhinga\",\"Magnificent Frigatebird\",\"Great Frigatebird\",\"Lesser Frigatebird\",\"American Bittern\",\"Yellow Bittern\",\"Least Bittern\",\"Great Blue Heron\",\"Great Egret\",\"Chinese Egret\",\"Little Egret\",\"Western Reef-Heron\",\"Snowy Egret\",\"Little Blue Heron\",\"Tricolored Heron\",\"Reddish Egret\",\"Cattle Egret\",\"Green Heron\",\"Black-crowned Night-Heron\",\"Yellow-crowned Night-Heron\",\"White Ibis\",\"Scarlet Ibis\",\"Glossy Ibis\",\"White-faced Ibis\",\"Roseate Spoonbill\",\"Jabiru\",\"Wood Stork\",\"Black Vulture\",\"Turkey Vulture\",\"California Condor\",\"Greater Flamingo\",\"Black-bellied Whistling-Duck\",\"Fulvous Whistling-Duck\",\"Bean Goose\",\"Pink-footed Goose\",\"Greater White-fronted Goose\",\"Lesser White-fronted Goose\",\"Emperor Goose\",\"Snow Goose\",\"Ross's Goose\",\"Canada Goose\",\"Brant\",\"Barnacle Goose\",\"Mute Swan\",\"Trumpeter Swan\",\"Tundra Swan\",\"Whooper Swan\",\"Muscovy Duck\",\"Wood Duck\",\"Gadwall\",\"Falcated Duck\",\"Eurasian Wigeon\",\"American Wigeon\",\"American Black Duck\",\"Mallard\",\"Mottled Duck\",\"Spot-billed Duck\",\"Blue-winged Teal\",\"Cinnamon Teal\",\"Northern Shoveler\",\"White-cheeked Pintail\",\"Northern Pintail\",\"Garganey\",\"Baikal Teal\",\"Green-winged Teal\",\"Canvasback\",\"Redhead\",\"Common Pochard\",\"Ring-necked Duck\",\"Tufted Duck\",\"Greater Scaup\",\"Lesser Scaup\",\"Steller's Eider\",\"Spectacled Eider\",\"King Eider\",\"Common Eider\",\"Harlequin Duck\",\"Labrador Duck\",\"Surf Scoter\",\"White-winged Scoter\",\"Black Scoter\",\"Oldsquaw\",\"Bufflehead\",\"Common Goldeneye\",\"Barrow's Goldeneye\",\"Smew\",\"Hooded Merganser\",\"Common Merganser\",\"Red-breasted Merganser\",\"Masked Duck\",\"Ruddy Duck\",\"Osprey\",\"Hook-billed Kite\",\"Swallow-tailed Kite\",\"White-tailed Kite\",\"Snail Kite\",\"Mississippi Kite\",\"Bald Eagle\",\"White-tailed Eagle\",\"Steller's Sea-Eagle\",\"Northern Harrier\",\"Sharp-shinned Hawk\",\"Cooper's Hawk\",\"Northern Goshawk\",\"Crane Hawk\",\"Gray Hawk\",\"Common Black-Hawk\",\"Harris's Hawk\",\"Roadside Hawk\",\"Red-shouldered Hawk\",\"Broad-winged Hawk\",\"Short-tailed Hawk\",\"Swainson's Hawk\",\"White-tailed Hawk\",\"Zone-tailed Hawk\",\"Red-tailed Hawk\",\"Ferruginous Hawk\",\"Rough-legged Hawk\",\"Golden Eagle\",\"Collared Forest-Falcon\",\"Crested Caracara\",\"Eurasian Kestrel\",\"American Kestrel\",\"Merlin\",\"Eurasian Hobby\",\"Aplomado Falcon\",\"Gyrfalcon\",\"Peregrine Falcon\",\"Prairie Falcon\",\"Plain Chachalaca\",\"Chukar\",\"Himalayan Snowcock\",\"Gray Partridge\",\"Ring-necked Pheasant\",\"Ruffed Grouse\",\"Sage Grouse\",\"Spruce Grouse\",\"Willow Ptarmigan\",\"Rock Ptarmigan\",\"White-tailed Ptarmigan\",\"Blue Grouse\",\"Sharp-tailed Grouse\",\"Greater Prairie-chicken\",\"Lesser Prairie-chicken\",\"Wild Turkey\",\"Mountain Quail\",\"Scaled Quail\",\"California Quail\",\"Gambel's Quail\",\"Northern Bobwhite\",\"Montezuma Quail\",\"Yellow Rail\",\"Black Rail\",\"Corn Crake\",\"Clapper Rail\",\"King Rail\",\"Virginia Rail\",\"Sora\",\"Paint-billed Crake\",\"Spotted Rail\",\"Purple Gallinule\",\"Azure Gallinule\",\"Common Moorhen\",\"Eurasian Coot\",\"American Coot\",\"Limpkin\",\"Sandhill Crane\",\"Common Crane\",\"Whooping Crane\",\"Double-striped Thick-knee\",\"Northern Lapwing\",\"Black-bellied Plover\",\"European Golden-Plover\",\"American Golden-Plover\",\"Pacific Golden-Plover\",\"Mongolian Plover\",\"Collared Plover\",\"Snowy Plover\",\"Wilson's Plover\",\"Common Ringed Plover\",\"Semipalmated Plover\",\"Piping Plover\",\"Little Ringed Plover\",\"Killdeer\",\"Mountain Plover\",\"Eurasian Dotterel\",\"Eurasian Oystercatcher\",\"American Oystercatcher\",\"Black Oystercatcher\",\"Black-winged Stilt\",\"Black-necked Stilt\",\"American Avocet\",\"Northern Jacana\",\"Common Greenshank\",\"Greater Yellowlegs\",\"Lesser Yellowlegs\",\"Marsh Sandpiper\",\"Spotted Redshank\",\"Wood Sandpiper\",\"Green Sandpiper\",\"Solitary Sandpiper\",\"Willet\",\"Wandering Tattler\",\"Gray-tailed Tattler\",\"Common Sandpiper\",\"Spotted Sandpiper\",\"Terek Sandpiper\",\"Upland Sandpiper\",\"Little Curlew\",\"Eskimo Curlew\",\"Whimbrel\",\"Bristle-thighed Curlew\",\"Far Eastern Curlew\",\"Slender-billed Curlew\",\"Eurasian Curlew\",\"Long-billed Curlew\",\"Black-tailed Godwit\",\"Hudsonian Godwit\",\"Bar-tailed Godwit\",\"Marbled Godwit\",\"Ruddy Turnstone\",\"Black Turnstone\",\"Surfbird\",\"Great Knot\",\"Red Knot\",\"Sanderling\",\"Semipalmated Sandpiper\",\"Western Sandpiper\",\"Red-necked Stint\",\"Little Stint\",\"Temminck's Stint\",\"Long-toed Stint\",\"Least Sandpiper\",\"White-rumped Sandpiper\",\"Baird's Sandpiper\",\"Pectoral Sandpiper\",\"Sharp-tailed Sandpiper\",\"Purple Sandpiper\",\"Rock Sandpiper\",\"Dunlin\",\"Curlew Sandpiper\",\"Stilt Sandpiper\",\"Spoonbill Sandpiper\",\"Broad-billed Sandpiper\",\"Buff-breasted Sandpiper\",\"Ruff\",\"Short-billed Dowitcher\",\"Long-billed Dowitcher\",\"Jack Snipe\",\"Common Snipe\",\"Pin-tailed Snipe\",\"Eurasian Woodcock\",\"American Woodcock\",\"Wilson's Phalarope\",\"Red-necked Phalarope\",\"Red Phalarope\",\"Oriental Pratincole\",\"Great Skua\",\"South Polar Skua\",\"Pomarine Jaeger\",\"Parasitic Jaeger\",\"Long-tailed Jaeger\",\"Laughing Gull\",\"Franklin's Gull\",\"Little Gull\",\"Black-headed Gull\",\"Bonaparte's Gull\",\"Heermann's Gull\",\"Band-tailed Gull\",\"Black-tailed Gull\",\"Mew Gull\",\"Ring-billed Gull\",\"California Gull\",\"Herring Gull\",\"Yellow-legged Gull\",\"Thayer's Gull\",\"Iceland Gull\",\"Lesser Black-backed Gull\",\"Slaty-backed Gull\",\"Yellow-footed Gull\",\"Western Gull\",\"Glaucous-winged Gull\",\"Glaucous Gull\",\"Great Black-backed Gull\",\"Sabine's Gull\",\"Black-legged Kittiwake\",\"Red-legged Kittiwake\",\"Ross's Gull\",\"Ivory Gull\",\"Gull-billed Tern\",\"Caspian Tern\",\"Royal Tern\",\"Elegant Tern\",\"Sandwich Tern\",\"Roseate Tern\",\"Common Tern\",\"Arctic Tern\",\"Forster's Tern\",\"Least Tern\",\"Aleutian Tern\",\"Bridled Tern\",\"Sooty Tern\",\"Large-billed Tern\",\"White-winged Tern\",\"Whiskered Tern\",\"Black Tern\",\"Brown Noddy\",\"Black Noddy\",\"Black Skimmer\",\"Dovekie\",\"Common Murre\",\"Thick-billed Murre\",\"Razorbill\",\"Great Auk\",\"Black Guillemot\",\"Pigeon Guillemot\",\"Long-billed Murrelet\",\"Marbled Murrelet\",\"Kittlitz's Murrelet\",\"Xantus's Murrelet\",\"Craveri's Murrelet\",\"Ancient Murrelet\",\"Cassin's Auklet\",\"Parakeet Auklet\",\"Least Auklet\",\"Whiskered Auklet\",\"Crested Auklet\",\"Rhinoceros Auklet\",\"Atlantic Puffin\",\"Horned Puffin\",\"Tufted Puffin\",\"Rock Dove\",\"Scaly-naped Pigeon\",\"White-crowned Pigeon\",\"Red-billed Pigeon\",\"Band-tailed Pigeon\",\"Oriental Turtle-Dove\",\"European Turtle-Dove\",\"Eurasian Collared-Dove\",\"Spotted Dove\",\"White-winged Dove\",\"Zenaida Dove\",\"Mourning Dove\",\"Passenger Pigeon\",\"Inca Dove\",\"Common Ground-Dove\",\"Ruddy Ground-Dove\",\"White-tipped Dove\",\"Key West Quail-Dove\",\"Ruddy Quail-Dove\",\"Budgerigar\",\"Monk Parakeet\",\"Carolina Parakeet\",\"Thick-billed Parrot\",\"White-winged Parakeet\",\"Red-crowned Parrot\",\"Common Cuckoo\",\"Oriental Cuckoo\",\"Black-billed Cuckoo\",\"Yellow-billed Cuckoo\",\"Mangrove Cuckoo\",\"Greater Roadrunner\",\"Smooth-billed Ani\",\"Groove-billed Ani\",\"Barn Owl\",\"Flammulated Owl\",\"Oriental Scops-Owl\",\"Western Screech-Owl\",\"Eastern Screech-Owl\",\"Whiskered Screech-Owl\",\"Great Horned Owl\",\"Snowy Owl\",\"Northern Hawk Owl\",\"Northern Pygmy-Owl\",\"Ferruginous Pygmy-Owl\",\"Elf Owl\",\"Burrowing Owl\",\"Mottled Owl\",\"Spotted Owl\",\"Barred Owl\",\"Great Gray Owl\",\"Long-eared Owl\",\"Short-eared Owl\",\"Boreal Owl\",\"Northern Saw-whet Owl\",\"Lesser Nighthawk\",\"Common Nighthawk\",\"Antillean Nighthawk\",\"Common Pauraque\",\"Common Poorwill\",\"Chuck-will's-widow\",\"Buff-collared Nightjar\",\"Whip-poor-will\",\"Jungle Nightjar\",\"Black Swift\",\"White-collared Swift\",\"Chimney Swift\",\"Vaux's Swift\",\"White-throated Needletail\",\"Common Swift\",\"Fork-tailed Swift\",\"White-throated Swift\",\"Antillean Palm Swift\",\"Green Violet-ear\",\"Green-breasted Mango\",\"Broad-billed Hummingbird\",\"White-eared Hummingbird\",\"Xantus's Hummingbird\",\"Berylline Hummingbird\",\"Buff-bellied Hummingbird\",\"Cinnamon Hummingbird\",\"Violet-crowned Hummingbird\",\"Blue-throated Hummingbird\",\"Magnificent Hummingbird\",\"Plain-capped Starthroat\",\"Bahama Woodstar\",\"Lucifer Hummingbird\",\"Ruby-throated Hummingbird\",\"Black-chinned Hummingbird\",\"Anna's Hummingbird\",\"Costa's Hummingbird\",\"Calliope Hummingbird\",\"Bumblebee Hummingbird\",\"Broad-tailed Hummingbird\",\"Rufous Hummingbird\",\"Allen's Hummingbird\",\"Elegant Trogon\",\"Eared Trogon\",\"Hoopoe\",\"Ringed Kingfisher\",\"Belted Kingfisher\",\"Green Kingfisher\",\"Eurasian Wryneck\",\"Lewis's Woodpecker\",\"Red-headed Woodpecker\",\"Acorn Woodpecker\",\"Gila Woodpecker\",\"Golden-fronted Woodpecker\",\"Red-bellied Woodpecker\",\"Williamson's Sapsucker\",\"Yellow-bellied Sapsucker\",\"Red-naped Sapsucker\",\"Red-breasted Sapsucker\",\"Great Spotted Woodpecker\",\"Ladder-backed Woodpecker\",\"Nuttall's Woodpecker\",\"Downy Woodpecker\",\"Hairy Woodpecker\",\"Strickland's Woodpecker\",\"Red-cockaded Woodpecker\",\"White-headed Woodpecker\",\"Three-toed Woodpecker\",\"Black-backed Woodpecker\",\"Northern Flicker\",\"Gilded Flicker\",\"Pileated Woodpecker\",\"Ivory-billed Woodpecker\",\"Northern Beardless-Tyrannulet\",\"Greenish Elaenia\",\"Caribbean Elaenia\",\"Tufted Flycatcher\",\"Olive-sided Flycatcher\",\"Greater Pewee\",\"Western Wood-Pewee\",\"Eastern Wood-Pewee\",\"Yellow-bellied Flycatcher\",\"Acadian Flycatcher\",\"Alder Flycatcher\",\"Willow Flycatcher\",\"Least Flycatcher\",\"Hammond's Flycatcher\",\"Dusky Flycatcher\",\"Gray Flycatcher\",\"Pacific-slope Flycatcher\",\"Cordilleran Flycatcher\",\"Buff-breasted Flycatcher\",\"Black Phoebe\",\"Eastern Phoebe\",\"Say's Phoebe\",\"Vermilion Flycatcher\",\"Dusky-capped Flycatcher\",\"Ash-throated Flycatcher\",\"Nutting's Flycatcher\",\"Great Crested Flycatcher\",\"Brown-crested Flycatcher\",\"La Sagra's Flycatcher\",\"Great Kiskadee\",\"Sulphur-bellied Flycatcher\",\"Variegated Flycatcher\",\"Tropical Kingbird\",\"Couch's Kingbird\",\"Cassin's Kingbird\",\"Thick-billed Kingbird\",\"Western Kingbird\",\"Eastern Kingbird\",\"Gray Kingbird\",\"Loggerhead Kingbird\",\"Scissor-tailed Flycatcher\",\"Fork-tailed Flycatcher\",\"Rose-throated Becard\",\"Masked Tityra\",\"Brown Shrike\",\"Loggerhead Shrike\",\"Northern Shrike\",\"White-eyed Vireo\",\"Thick-billed Vireo\",\"Bell's Vireo\",\"Black-capped Vireo\",\"Gray Vireo\",\"Yellow-throated Vireo\",\"Plumbeous Vireo\",\"Cassin's Vireo\",\"Blue-headed Vireo\",\"Hutton's Vireo\",\"Warbling Vireo\",\"Philadelphia Vireo\",\"Red-eyed Vireo\",\"Yellow-green Vireo\",\"Black-whiskered Vireo\",\"Yucatan Vireo\",\"Gray Jay\",\"Steller's Jay\",\"Blue Jay\",\"Green Jay\",\"Brown Jay\",\"Florida Scrub-Jay\",\"Island Scrub-Jay\",\"Western Scrub-Jay\",\"Mexican Jay\",\"Pinyon Jay\",\"Clark's Nutcracker\",\"Black-billed Magpie\",\"Yellow-billed Magpie\",\"Eurasian Jackdaw\",\"American Crow\",\"Northwestern Crow\",\"Tamaulipas Crow\",\"Fish Crow\",\"Chihuahuan Raven\",\"Common Raven\",\"Sky Lark\",\"Horned Lark\",\"Purple Martin\",\"Cuban Martin\",\"Gray-breasted Martin\",\"Southern Martin\",\"Brown-chested Martin\",\"Tree Swallow\",\"Violet-green Swallow\",\"Bahama Swallow\",\"Northern Rough-winged Swallow\",\"Bank Swallow\",\"Cliff Swallow\",\"Cave Swallow\",\"Barn Swallow\",\"Common House-Martin\",\"Carolina Chickadee\",\"Black-capped Chickadee\",\"Mountain Chickadee\",\"Mexican Chickadee\",\"Chestnut-backed Chickadee\",\"Boreal Chickadee\",\"Gray-headed Chickadee\",\"Bridled Titmouse\",\"Oak Titmouse\",\"Juniper Titmouse\",\"Tufted Titmouse\",\"Verdin\",\"Bushtit\",\"Red-breasted Nuthatch\",\"White-breasted Nuthatch\",\"Pygmy Nuthatch\",\"Brown-headed Nuthatch\",\"Brown Creeper\",\"Cactus Wren\",\"Rock Wren\",\"Canyon Wren\",\"Carolina Wren\",\"Bewick's Wren\",\"House Wren\",\"Winter Wren\",\"Sedge Wren\",\"Marsh Wren\",\"American Dipper\",\"Red-whiskered Bulbul\",\"Golden-crowned Kinglet\",\"Ruby-crowned Kinglet\",\"Middendorff's Grasshopper-Warbler\",\"Lanceolated Warbler\",\"Wood Warbler\",\"Dusky Warbler\",\"Arctic Warbler\",\"Blue-gray Gnatcatcher\",\"California Gnatcatcher\",\"Black-tailed Gnatcatcher\",\"Black-capped Gnatcatcher\",\"Narcissus Flycatcher\",\"Mugimaki Flycatcher\",\"Red-breasted Flycatcher\",\"Siberian Flycatcher\",\"Gray-spotted Flycatcher\",\"Asian Brown Flycatcher\",\"Siberian Rubythroat\",\"Bluethroat\",\"Siberian Blue Robin\",\"Red-flanked Bluetail\",\"Northern Wheatear\",\"Stonechat\",\"Eastern Bluebird\",\"Western Bluebird\",\"Mountain Bluebird\",\"Townsend's Solitaire\",\"Veery\",\"Gray-cheeked Thrush\",\"Bicknell's Thrush\",\"Swainson's Thrush\",\"Hermit Thrush\",\"Wood Thrush\",\"Eurasian Blackbird\",\"Eyebrowed Thrush\",\"Dusky Thrush\",\"Fieldfare\",\"Redwing\",\"Clay-colored Robin\",\"White-throated Robin\",\"Rufous-backed Robin\",\"American Robin\",\"Varied Thrush\",\"Aztec Thrush\",\"Wrentit\",\"Gray Catbird\",\"Black Catbird\",\"Northern Mockingbird\",\"Bahama Mockingbird\",\"Sage Thrasher\",\"Brown Thrasher\",\"Long-billed Thrasher\",\"Bendire's Thrasher\",\"Curve-billed Thrasher\",\"California Thrasher\",\"Crissal Thrasher\",\"Le Conte's Thrasher\",\"Blue Mockingbird\",\"European Starling\",\"Crested Myna\",\"Siberian Accentor\",\"Yellow Wagtail\",\"Citrine Wagtail\",\"Gray Wagtail\",\"White Wagtail\",\"Black-backed Wagtail\",\"Tree Pipit\",\"Olive-backed Pipit\",\"Pechora Pipit\",\"Red-throated Pipit\",\"American Pipit\",\"Sprague's Pipit\",\"Bohemian Waxwing\",\"Cedar Waxwing\",\"Gray Silky-flycatcher\",\"Phainopepla\",\"Olive Warbler\",\"Bachman's Warbler\",\"Blue-winged Warbler\",\"Golden-winged Warbler\",\"Tennessee Warbler\",\"Orange-crowned Warbler\",\"Nashville Warbler\",\"Virginia's Warbler\",\"Colima Warbler\",\"Lucy's Warbler\",\"Crescent-chested Warbler\",\"Northern Parula\",\"Tropical Parula\",\"Yellow Warbler\",\"Chestnut-sided Warbler\",\"Magnolia Warbler\",\"Cape May Warbler\",\"Black-throated Blue Warbler\",\"Yellow-rumped Warbler\",\"Black-throated Gray Warbler\",\"Golden-cheeked Warbler\",\"Black-throated Green Warbler\",\"Townsend's Warbler\",\"Hermit Warbler\",\"Blackburnian Warbler\",\"Yellow-throated Warbler\",\"Grace's Warbler\",\"Pine Warbler\",\"Kirtland's Warbler\",\"Prairie Warbler\",\"Palm Warbler\",\"Bay-breasted Warbler\",\"Blackpoll Warbler\",\"Cerulean Warbler\",\"Black-and-white Warbler\",\"American Redstart\",\"Prothonotary Warbler\",\"Worm-eating Warbler\",\"Swainson's Warbler\",\"Ovenbird\",\"Northern Waterthrush\",\"Louisiana Waterthrush\",\"Kentucky Warbler\",\"Connecticut Warbler\",\"Mourning Warbler\",\"MacGillivray's Warbler\",\"Common Yellowthroat\",\"Gray-crowned Yellowthroat\",\"Hooded Warbler\",\"Wilson's Warbler\",\"Canada Warbler\",\"Red-faced Warbler\",\"Painted Redstart\",\"Slate-throated Redstart\",\"Fan-tailed Warbler\",\"Golden-crowned Warbler\",\"Rufous-capped Warbler\",\"Yellow-breasted Chat\",\"Bananaquit\",\"Hepatic Tanager\",\"Summer Tanager\",\"Scarlet Tanager\",\"Western Tanager\",\"Flame-colored Tanager\",\"Stripe-headed Tanager\",\"White-collared Seedeater\",\"Yellow-faced Grassquit\",\"Black-faced Grassquit\",\"Olive Sparrow\",\"Green-tailed Towhee\",\"Spotted Towhee\",\"Eastern Towhee\",\"Canyon Towhee\",\"California Towhee\",\"Abert's Towhee\",\"Rufous-winged Sparrow\",\"Cassin's Sparrow\",\"Bachman's Sparrow\",\"Botteri's Sparrow\",\"Rufous-crowned Sparrow\",\"Five-striped Sparrow\",\"American Tree Sparrow\",\"Chipping Sparrow\",\"Clay-colored Sparrow\",\"Brewer's Sparrow\",\"Field Sparrow\",\"Worthen's Sparrow\",\"Black-chinned Sparrow\",\"Vesper Sparrow\",\"Lark Sparrow\",\"Black-throated Sparrow\",\"Sage Sparrow\",\"Lark Bunting\",\"Savannah Sparrow\",\"Grasshopper Sparrow\",\"Baird's Sparrow\",\"Henslow's Sparrow\",\"Le Conte's Sparrow\",\"Nelson's Sharp-tailed Sparrow\",\"Saltmarsh Sharp-tailed Sparrow\",\"Seaside Sparrow\",\"Fox Sparrow\",\"Song Sparrow\",\"Lincoln's Sparrow\",\"Swamp Sparrow\",\"White-throated Sparrow\",\"Harris's Sparrow\",\"White-crowned Sparrow\",\"Golden-crowned Sparrow\",\"Dark-eyed Junco\",\"Yellow-eyed Junco\",\"McCown's Longspur\",\"Lapland Longspur\",\"Smith's Longspur\",\"Chestnut-collared Longspur\",\"Pine Bunting\",\"Little Bunting\",\"Rustic Bunting\",\"Yellow-breasted Bunting\",\"Gray Bunting\",\"Pallas's Bunting\",\"Reed Bunting\",\"Snow Bunting\",\"McKay's Bunting\",\"Crimson-collared Grosbeak\",\"Northern Cardinal\",\"Pyrrhuloxia\",\"Yellow Grosbeak\",\"Rose-breasted Grosbeak\",\"Black-headed Grosbeak\",\"Blue Bunting\",\"Blue Grosbeak\",\"Lazuli Bunting\",\"Indigo Bunting\",\"Varied Bunting\",\"Painted Bunting\",\"Dickcissel\",\"Bobolink\",\"Red-winged Blackbird\",\"Tricolored Blackbird\",\"Tawny-shouldered Blackbird\",\"Eastern Meadowlark\",\"Western Meadowlark\",\"Yellow-headed Blackbird\",\"Rusty Blackbird\",\"Brewer's Blackbird\",\"Common Grackle\",\"Boat-tailed Grackle\",\"Great-tailed Grackle\",\"Shiny Cowbird\",\"Bronzed Cowbird\",\"Brown-headed Cowbird\",\"Black-vented Oriole\",\"Orchard Oriole\",\"Hooded Oriole\",\"Streak-backed Oriole\",\"Spot-breasted Oriole\",\"Altamira Oriole\",\"Audubon's Oriole\",\"Baltimore Oriole\",\"Bullock's Oriole\",\"Scott's Oriole\",\"Common Chaffinch\",\"Brambling\",\"Gray-crowned Rosy-Finch\",\"Black Rosy-Finch\",\"Brown-capped Rosy-Finch\",\"Pine Grosbeak\",\"Common Rosefinch\",\"Purple Finch\",\"Cassin's Finch\",\"House Finch\",\"Red Crossbill\",\"White-winged Crossbill\",\"Common Redpoll\",\"Hoary Redpoll\",\"Eurasian Siskin\",\"Pine Siskin\",\"Lesser Goldfinch\",\"Lawrence's Goldfinch\",\"American Goldfinch\",\"Oriental Greenfinch\",\"Eurasian Bullfinch\",\"Evening Grosbeak\",\"Hawfinch\",\"House Sparrow\",\"Eurasian Tree Sparrow\"],OWe=[\"Abyssinian\",\"American Bobtail\",\"American Curl\",\"American Shorthair\",\"American Wirehair\",\"Balinese\",\"Bengal\",\"Birman\",\"Bombay\",\"British Shorthair\",\"Burmese\",\"Chartreux\",\"Chausie\",\"Cornish Rex\",\"Devon Rex\",\"Donskoy\",\"Egyptian Mau\",\"Exotic Shorthair\",\"Havana\",\"Highlander\",\"Himalayan\",\"Japanese Bobtail\",\"Korat\",\"Kurilian Bobtail\",\"LaPerm\",\"Maine Coon\",\"Manx\",\"Minskin\",\"Munchkin\",\"Nebelung\",\"Norwegian Forest Cat\",\"Ocicat\",\"Ojos Azules\",\"Oriental\",\"Persian\",\"Peterbald\",\"Pixiebob\",\"Ragdoll\",\"Russian Blue\",\"Savannah\",\"Scottish Fold\",\"Selkirk Rex\",\"Serengeti\",\"Siberian\",\"Siamese\",\"Singapura\",\"Snowshoe\",\"Sokoke\",\"Somali\",\"Sphynx\",\"Thai\",\"Tonkinese\",\"Toyger\",\"Turkish Angora\",\"Turkish Van\"],BWe=[\"Blue Whale\",\"Fin Whale\",\"Sei Whale\",\"Sperm Whale\",\"Brydes whale\",\"Omuras whale\",\"Humpback whale\",\"Long-Beaked Common Dolphin\",\"Short-Beaked Common Dolphin\",\"Bottlenose Dolphin\",\"Indo-Pacific Bottlenose Dolphin\",\"Northern Rightwhale Dolphin\",\"Southern Rightwhale Dolphin\",\"Tucuxi\",\"Costero\",\"Indo-Pacific Hump-backed Dolphin\",\"Chinese White Dolphin\",\"Atlantic Humpbacked Dolphin\",\"Atlantic Spotted Dolphin\",\"Clymene Dolphin\",\"Pantropical Spotted Dolphin\",\"Spinner Dolphin\",\"Striped Dolphin\",\"Rough-Toothed Dolphin\",\"Chilean Dolphin\",\"Commersons Dolphin\",\"Heavisides Dolphin\",\"Hectors Dolphin\",\"Rissos Dolphin\",\"Frasers Dolphin\",\"Atlantic White-Sided Dolphin\",\"Dusky Dolphin\",\"Hourglass Dolphin\",\"Pacific White-Sided Dolphin\",\"Peales Dolphin\",\"White-Beaked Dolphin\",\"Australian Snubfin Dolphin\",\"Irrawaddy Dolphin\",\"Melon-headed Whale\",\"Killer Whale (Orca)\",\"Pygmy Killer Whale\",\"False Killer Whale\",\"Long-finned Pilot Whale\",\"Short-finned Pilot Whale\",\"Guiana Dolphin\",\"Burrunan Dolphin\",\"Australian humpback Dolphin\",\"Amazon River Dolphin\",\"Chinese River Dolphin\",\"Ganges River Dolphin\",\"La Plata Dolphin\",\"Southern Bottlenose Whale\",\"Longman's Beaked Whale\",\"Arnoux's Beaked Whale\"],NWe=[\"Aberdeen Angus\",\"Abergele\",\"Abigar\",\"Abondance\",\"Abyssinian Shorthorned Zebu\",\"Aceh\",\"Achham\",\"Adamawa\",\"Adaptaur\",\"Afar\",\"Africangus\",\"Afrikaner\",\"Agerolese\",\"Alambadi\",\"Alatau\",\"Albanian\",\"Albera\",\"Alderney\",\"Alentejana\",\"Aleutian wild cattle\",\"Aliad Dinka\",\"Alistana-Sanabresa\",\"Allmogekor\",\"Alur\",\"American\",\"American Angus\",\"American Beef Friesian\",\"American Brown Swiss\",\"American Milking Devon\",\"American White Park\",\"Amerifax\",\"Amrit Mahal\",\"Amsterdam Island cattle\",\"Anatolian Black\",\"Andalusian Black\",\"Andalusian Blond\",\"Andalusian Grey\",\"Angeln\",\"Angoni\",\"Ankina\",\"Ankole\",\"Ankole-Watusi\",\"Aracena\",\"Arado\",\"Argentine Criollo\",\"Argentine Friesian\",\"Armorican\",\"Arouquesa\",\"Arsi\",\"Asturian Mountain\",\"Asturian Valley\",\"Aubrac\",\"Aulie-Ata\",\"Aure et Saint-Girons\",\"Australian Braford\",\"Australian Brangus\",\"Australian Charbray\",\"Australian Friesian Sahiwal\",\"Australian Lowline\",\"Australian Milking Zebu\",\"Australian Shorthorn\",\"Austrian Simmental\",\"Austrian Yellow\",\"Avétonou\",\"Avileña-Negra Ibérica\",\"Aweil Dinka\",\"Ayrshire\",\"Azaouak\",\"Azebuado\",\"Azerbaijan Zebu\",\"Azores\",\"Bedit\",\"Breed\",\"Bachaur cattle\",\"Baherie cattle\",\"Bakosi cattle\",\"Balancer\",\"Baoule\",\"Bargur cattle\",\"Barrosã\",\"Barzona\",\"Bazadaise\",\"Beef Freisian\",\"Beefalo\",\"Beefmaker\",\"Beefmaster\",\"Begayt\",\"Belgian Blue\",\"Belgian Red\",\"Belgian Red Pied\",\"Belgian White-and-Red\",\"Belmont Red\",\"Belted Galloway\",\"Bernese\",\"Berrenda cattle\",\"Betizu\",\"Bianca Modenese\",\"Blaarkop\",\"Black Angus\",\"Black Baldy\",\"Black Hereford\",\"Blanca Cacereña\",\"Blanco Orejinegro BON\",\"Blonde d'Aquitaine\",\"Blue Albion\",\"Blue Grey\",\"Bohuskulla\",\"Bonsmara\",\"Boran\",\"Boškarin\",\"Braford\",\"Brahman\",\"Brahmousin\",\"Brangus\",\"Braunvieh\",\"Brava\",\"British White\",\"British Friesian\",\"Brown Carpathian\",\"Brown Caucasian\",\"Brown Swiss\",\"Bue Lingo\",\"Burlina\",\"Buša cattle\",\"Butana cattle\",\"Bushuyev\",\"Cedit\",\"Cachena\",\"Caldelana\",\"Camargue\",\"Campbell Island cattle\",\"Canadian Speckle Park\",\"Canadienne\",\"Canaria\",\"Canchim\",\"Caracu\",\"Cárdena Andaluza\",\"Carinthian Blondvieh\",\"Carora\",\"Charbray\",\"Charolais\",\"Chateaubriand\",\"Chiangus\",\"Chianina\",\"Chillingham cattle\",\"Chinese Black Pied\",\"Cholistani\",\"Coloursided White Back\",\"Commercial\",\"Corriente\",\"Corsican cattle\",\"Costeño con Cuernos\",\"Crioulo Lageano\",\"Dedit\",\"Dajal\",\"Dangi cattle\",\"Danish Black-Pied\",\"Danish Jersey\",\"Danish Red\",\"Deep Red cattle\",\"Deoni\",\"Devon\",\"Dexter cattle\",\"Dhanni\",\"Doayo cattle\",\"Doela\",\"Drakensberger\",\"Dølafe\",\"Droughtmaster\",\"Dulong'\",\"Dutch Belted\",\"Dutch Friesian\",\"Dwarf Lulu\",\"Eedit\",\"East Anatolian Red\",\"Eastern Finncattle\",\"Eastern Red Polled\",\"Enderby Island cattle\",\"English Longhorn\",\"Ennstaler Bergscheck\",\"Estonian Holstein\",\"Estonian Native\",\"Estonian Red cattle\",\"Évolène cattle\",\"Fedit\",\"Fēng Cattle\",\"Finnish Ayrshire\",\"Finncattle\",\"Finnish Holstein-Friesian\",\"Fjäll\",\"Fleckvieh\",\"Florida Cracker cattle\",\"Fogera\",\"French Simmental\",\"Fribourgeoise\",\"Friesian Red and White\",\"Fulani Sudanese\",\"Gedit\",\"Galician Blond\",\"Galloway cattle\",\"Gangatiri\",\"Gaolao\",\"Garvonesa\",\"Gascon cattle\",\"Gelbvieh\",\"Georgian Mountain cattle\",\"German Angus\",\"German Black Pied cattle\",\"German Black Pied Dairy\",\"German Red Pied\",\"Gir\",\"Glan cattle\",\"Gloucester\",\"Gobra\",\"Greek Shorthorn\",\"Greek Steppe\",\"Greyman cattle\",\"Gudali\",\"Guernsey cattle\",\"Guzerá\",\"Hedit\",\"Hallikar4\",\"Hanwoo\",\"Hariana cattle\",\"Hartón del Valle\",\"Harzer Rotvieh\",\"Hays Converter\",\"Heck cattle\",\"Hereford\",\"Herens\",\"Hybridmaster\",\"Highland cattle\",\"Hinterwald\",\"Holando-Argentino\",\"Holstein Friesian cattle\",\"Horro\",\"Huáng Cattle\",\"Hungarian Grey\",\"Iedit\",\"Iberian cattle\",\"Icelandic\",\"Illawarra cattle\",\"Improved Red and White\",\"Indo-Brazilian\",\"Irish Moiled\",\"Israeli Holstein\",\"Israeli Red\",\"Istoben cattle\",\"Istrian cattle\",\"Jedit\",\"Jamaica Black\",\"Jamaica Hope\",\"Jamaica Red\",\"Japanese Brown\",\"Jarmelista\",\"Javari cattle\",\"Jersey cattle\",\"Jutland cattle\",\"Kedit\",\"Kabin Buri cattle\",\"Kalmyk cattle\",\"Kangayam\",\"Kankrej\",\"Kamphaeng Saen cattle\",\"Karan Swiss\",\"Kasaragod Dwarf cattle\",\"Kathiawadi\",\"Kazakh Whiteheaded\",\"Kenana cattle\",\"Kenkatha cattle\",\"Kerry cattle\",\"Kherigarh\",\"Khillari cattle\",\"Kholomogory\",\"Korat Wagyu\",\"Kostroma cattle\",\"Krishna Valley cattle\",\"Kuri\",\"Kurgan cattle\",\"Ledit\",\"La Reina cattle\",\"Lakenvelder cattle\",\"Lampurger\",\"Latvian Blue\",\"Latvian Brown\",\"Latvian Danish Red\",\"Lebedyn\",\"Levantina\",\"Limia cattle\",\"Limousin\",\"Limpurger\",\"Lincoln Red\",\"Lineback\",\"Lithuanian Black-and-White\",\"Lithuanian Light Grey\",\"Lithuanian Red\",\"Lithuanian White-Backed\",\"Lohani cattle\",\"Lourdais\",\"Lucerna cattle\",\"Luing\",\"Medit\",\"Madagascar Zebu\",\"Madura\",\"Maine-Anjou\",\"Malnad Gidda\",\"Malvi\",\"Mandalong Special\",\"Mantequera Leonesa\",\"Maramureş Brown\",\"Marchigiana\",\"Maremmana\",\"Marinhoa\",\"Maronesa\",\"Masai\",\"Mashona\",\"Menorquina\",\"Mertolenga\",\"Meuse-Rhine-Issel\",\"Mewati\",\"Milking Shorthorn\",\"Minhota\",\"Mirandesa\",\"Mirkadim\",\"Mocăniţă\",\"Mollie\",\"Monchina\",\"Mongolian\",\"Montbéliarde\",\"Morucha\",\"Muturu\",\"Murboden\",\"Murnau-Werdenfels\",\"Murray Grey\",\"Nedit\",\"Nagori\",\"N'Dama\",\"Negra Andaluza\",\"Nelore\",\"Nguni\",\"Nimari\",\"Normande\",\"North Bengal Grey\",\"Northern Finncattle\",\"Northern Shorthorn\",\"Norwegian Red\",\"Oedit]\",\"Ongole\",\"Original Simmental\",\"Pedit\",\"Pajuna\",\"Palmera\",\"Pantaneiro\",\"Parda Alpina\",\"Parthenaise\",\"Pasiega\",\"Pembroke\",\"Philippine Native\",\"Pie Rouge des Plaines\",\"Piedmontese cattle\",\"Pineywoods\",\"Pinzgauer\",\"Pirenaica\",\"Podolac\",\"Podolica\",\"Polish Black-and-White\",\"Polish Red\",\"Polled Hereford\",\"Poll Shorthorn\",\"Polled Shorthorn\",\"Ponwar\",\"Preta\",\"Punganur\",\"Pulikulam\",\"Pustertaler Sprinzen\",\"Qedit\",\"Qinchaun\",\"Queensland Miniature Boran\",\"Redit\",\"Ramo Grande\",\"Randall\",\"Raramuri Criollo\",\"Rathi\",\"Rätisches Grauvieh\",\"Raya\",\"Red Angus\",\"Red Brangus\",\"Red Chittagong\",\"Red Fulani\",\"Red Gorbatov\",\"Red Holstein\",\"Red Kandhari\",\"Red Mingrelian\",\"Red Poll\",\"Red Polled Østland\",\"Red Sindhi\",\"Retinta\",\"Riggit Galloway\",\"Ringamåla\",\"Rohjan\",\"Romagnola\",\"Romanian Bălţata\",\"Romanian Steppe Gray\",\"Romosinuano\",\"Russian Black Pied\",\"RX3\",\"Sedit\",\"Sahiwal\",\"Salers\",\"Salorn\",\"Sanga\",\"Sanhe\",\"Santa Cruz\",\"Santa Gertrudis\",\"Sayaguesa\",\"Schwyz\",\"Selembu\",\"Senepol\",\"Serbian Pied\",\"Serbian Steppe\",\"Sheko\",\"Shetland\",\"Shorthorn\",\"Siboney de Cuba\",\"Simbrah\",\"Simford\",\"Simmental\",\"Siri\",\"South Devon\",\"Spanish Fighting Bull\",\"Speckle Park\",\"Square Meater\",\"Sussex\",\"Swedish Friesian\",\"Swedish Polled\",\"Swedish Red Pied\",\"Swedish Red Polled\",\"Swedish Red-and-White\",\"Tedit\",\"Tabapuã\",\"Tarentaise\",\"Tasmanian Grey\",\"Tauros\",\"Telemark\",\"Texas Longhorn\",\"Texon\",\"Thai Black\",\"Thai Fighting Bull\",\"Thai Friesian\",\"Thai Milking Zebu\",\"Tharparkar\",\"Tswana\",\"Tudanca\",\"Tuli\",\"Tulim\",\"Turkish Grey Steppe\",\"Tux-Zillertal\",\"Tyrol Grey\",\"Uedit\",\"Umblachery\",\"Ukrainian Grey\",\"Vedit\",\"Valdostana Castana\",\"Valdostana Pezzata Nera\",\"Valdostana Pezzata Rossa\",\"Väneko\",\"Vaynol\",\"Vechur8\",\"Vestland Fjord\",\"Vestland Red Polled\",\"Vianesa\",\"Volinian Beef\",\"Vorderwald\",\"Vosgienne\",\"Wedit\",\"Wagyu\",\"Waguli\",\"Wangus\",\"Welsh Black\",\"Western Finncattle\",\"White Cáceres\",\"White Fulani\",\"White Lamphun\",\"White Park\",\"Whitebred Shorthorn\",\"Xedit\",\"Xingjiang Brown\",\"Yedit\",\"Yakutian\",\"Yanbian\",\"Yanhuang\",\"Yurino\",\"Zedit\",\"Żubroń\",\"Zebu\"],$We=[\"Alligator mississippiensis\",\"Chinese Alligator\",\"Black Caiman\",\"Broad-snouted Caiman\",\"Spectacled Caiman\",\"Yacare Caiman\",\"Cuviers Dwarf Caiman\",\"Schneiders Smooth-fronted Caiman\",\"African Slender-snouted Crocodile\",\"American Crocodile\",\"Australian Freshwater Crocodile\",\"Cuban Crocodile\",\"Dwarf Crocodile\",\"Morelets Crocodile\",\"Mugger Crocodile\",\"New Guinea Freshwater Crocodile\",\"Nile Crocodile\",\"West African Crocodile\",\"Orinoco Crocodile\",\"Philippine Crocodile\",\"Saltwater Crocodile\",\"Siamese Crocodile\",\"Gharial\",\"Tomistoma\"],LWe=[\"Affenpinscher\",\"Afghan Hound\",\"Aidi\",\"Airedale Terrier\",\"Akbash\",\"Akita\",\"Alano Español\",\"Alapaha Blue Blood Bulldog\",\"Alaskan Husky\",\"Alaskan Klee Kai\",\"Alaskan Malamute\",\"Alopekis\",\"Alpine Dachsbracke\",\"American Bulldog\",\"American Bully\",\"American Cocker Spaniel\",\"American English Coonhound\",\"American Foxhound\",\"American Hairless Terrier\",\"American Pit Bull Terrier\",\"American Staffordshire Terrier\",\"American Water Spaniel\",\"Andalusian Hound\",\"Anglo-Français de Petite Vénerie\",\"Appenzeller Sennenhund\",\"Ariegeois\",\"Armant\",\"Armenian Gampr dog\",\"Artois Hound\",\"Australian Cattle Dog\",\"Australian Kelpie\",\"Australian Shepherd\",\"Australian Stumpy Tail Cattle Dog\",\"Australian Terrier\",\"Austrian Black and Tan Hound\",\"Austrian Pinscher\",\"Azawakh\",\"Bakharwal dog\",\"Banjara Hound\",\"Barbado da Terceira\",\"Barbet\",\"Basenji\",\"Basque Shepherd Dog\",\"Basset Artésien Normand\",\"Basset Bleu de Gascogne\",\"Basset Fauve de Bretagne\",\"Basset Hound\",\"Bavarian Mountain Hound\",\"Beagle\",\"Beagle-Harrier\",\"Belgian Shepherd\",\"Bearded Collie\",\"Beauceron\",\"Bedlington Terrier\",\"Bergamasco Shepherd\",\"Berger Picard\",\"Bernese Mountain Dog\",\"Bhotia\",\"Bichon Frisé\",\"Billy\",\"Black and Tan Coonhound\",\"Black Norwegian Elkhound\",\"Black Russian Terrier\",\"Black Mouth Cur\",\"Bloodhound\",\"Blue Lacy\",\"Blue Picardy Spaniel\",\"Bluetick Coonhound\",\"Boerboel\",\"Bohemian Shepherd\",\"Bolognese\",\"Border Collie\",\"Border Terrier\",\"Borzoi\",\"Bosnian Coarse-haired Hound\",\"Boston Terrier\",\"Bouvier des Ardennes\",\"Bouvier des Flandres\",\"Boxer\",\"Boykin Spaniel\",\"Bracco Italiano\",\"Braque d'Auvergne\",\"Braque de l'Ariège\",\"Braque du Bourbonnais\",\"Braque Francais\",\"Braque Saint-Germain\",\"Briard\",\"Briquet Griffon Vendéen\",\"Brittany\",\"Broholmer\",\"Bruno Jura Hound\",\"Brussels Griffon\",\"Bucovina Shepherd Dog\",\"Bull Arab\",\"Bull Terrier\",\"Bulldog\",\"Bullmastiff\",\"Bully Kutta\",\"Burgos Pointer\",\"Cairn Terrier\",\"Campeiro Bulldog\",\"Canaan Dog\",\"Canadian Eskimo Dog\",\"Cane Corso\",\"Cane di Oropa\",\"Cane Paratore\",\"Cantabrian Water Dog\",\"Can de Chira\",\"Cão da Serra de Aires\",\"Cão de Castro Laboreiro\",\"Cão de Gado Transmontano\",\"Cão Fila de São Miguel\",\"Cardigan Welsh Corgi\",\"Carea Castellano Manchego\",\"Carolina Dog\",\"Carpathian Shepherd Dog\",\"Catahoula Leopard Dog\",\"Catalan Sheepdog\",\"Caucasian Shepherd Dog\",\"Cavalier King Charles Spaniel\",\"Central Asian Shepherd Dog\",\"Cesky Fousek\",\"Cesky Terrier\",\"Chesapeake Bay Retriever\",\"Chien Français Blanc et Noir\",\"Chien Français Blanc et Orange\",\"Chien Français Tricolore\",\"Chihuahua\",\"Chilean Terrier\",\"Chinese Chongqing Dog\",\"Chinese Crested Dog\",\"Chinook\",\"Chippiparai\",\"Chongqing dog\",\"Chortai\",\"Chow Chow\",\"Cimarrón Uruguayo\",\"Cirneco dell'Etna\",\"Clumber Spaniel\",\"Colombian fino hound\",\"Coton de Tulear\",\"Cretan Hound\",\"Croatian Sheepdog\",\"Curly-Coated Retriever\",\"Cursinu\",\"Czechoslovakian Wolfdog\",\"Dachshund\",\"Dalmatian\",\"Dandie Dinmont Terrier\",\"Danish-Swedish Farmdog\",\"Denmark Feist\",\"Dingo\",\"Doberman Pinscher\",\"Dogo Argentino\",\"Dogo Guatemalteco\",\"Dogo Sardesco\",\"Dogue Brasileiro\",\"Dogue de Bordeaux\",\"Drentse Patrijshond\",\"Drever\",\"Dunker\",\"Dutch Shepherd\",\"Dutch Smoushond\",\"East Siberian Laika\",\"East European Shepherd\",\"English Cocker Spaniel\",\"English Foxhound\",\"English Mastiff\",\"English Setter\",\"English Shepherd\",\"English Springer Spaniel\",\"English Toy Terrier\",\"Entlebucher Mountain Dog\",\"Estonian Hound\",\"Estrela Mountain Dog\",\"Eurasier\",\"Field Spaniel\",\"Fila Brasileiro\",\"Finnish Hound\",\"Finnish Lapphund\",\"Finnish Spitz\",\"Flat-Coated Retriever\",\"French Bulldog\",\"French Spaniel\",\"Galgo Español\",\"Galician Shepherd Dog\",\"Garafian Shepherd\",\"Gascon Saintongeois\",\"Georgian Shepherd\",\"German Hound\",\"German Longhaired Pointer\",\"German Pinscher\",\"German Roughhaired Pointer\",\"German Shepherd Dog\",\"German Shorthaired Pointer\",\"German Spaniel\",\"German Spitz\",\"German Wirehaired Pointer\",\"Giant Schnauzer\",\"Glen of Imaal Terrier\",\"Golden Retriever\",\"Gończy Polski\",\"Gordon Setter\",\"Grand Anglo-Français Blanc et Noir\",\"Grand Anglo-Français Blanc et Orange\",\"Grand Anglo-Français Tricolore\",\"Grand Basset Griffon Vendéen\",\"Grand Bleu de Gascogne\",\"Grand Griffon Vendéen\",\"Great Dane\",\"Greater Swiss Mountain Dog\",\"Greek Harehound\",\"Greek Shepherd\",\"Greenland Dog\",\"Greyhound\",\"Griffon Bleu de Gascogne\",\"Griffon Fauve de Bretagne\",\"Griffon Nivernais\",\"Gull Dong\",\"Gull Terrier\",\"Hällefors Elkhound\",\"Hamiltonstövare\",\"Hanover Hound\",\"Harrier\",\"Havanese\",\"Hierran Wolfdog\",\"Hokkaido\",\"Hovawart\",\"Huntaway\",\"Hygen Hound\",\"Ibizan Hound\",\"Icelandic Sheepdog\",\"Indian pariah dog\",\"Indian Spitz\",\"Irish Red and White Setter\",\"Irish Setter\",\"Irish Terrier\",\"Irish Water Spaniel\",\"Irish Wolfhound\",\"Istrian Coarse-haired Hound\",\"Istrian Shorthaired Hound\",\"Italian Greyhound\",\"Jack Russell Terrier\",\"Jagdterrier\",\"Japanese Chin\",\"Japanese Spitz\",\"Japanese Terrier\",\"Jindo\",\"Jonangi\",\"Kai Ken\",\"Kaikadi\",\"Kangal Shepherd Dog\",\"Kanni\",\"Karakachan dog\",\"Karelian Bear Dog\",\"Kars\",\"Karst Shepherd\",\"Keeshond\",\"Kerry Beagle\",\"Kerry Blue Terrier\",\"King Charles Spaniel\",\"King Shepherd\",\"Kintamani\",\"Kishu\",\"Kokoni\",\"Kombai\",\"Komondor\",\"Kooikerhondje\",\"Koolie\",\"Koyun dog\",\"Kromfohrländer\",\"Kuchi\",\"Kuvasz\",\"Labrador Retriever\",\"Lagotto Romagnolo\",\"Lakeland Terrier\",\"Lancashire Heeler\",\"Landseer\",\"Lapponian Herder\",\"Large Münsterländer\",\"Leonberger\",\"Levriero Sardo\",\"Lhasa Apso\",\"Lithuanian Hound\",\"Löwchen\",\"Lupo Italiano\",\"Mackenzie River Husky\",\"Magyar agár\",\"Mahratta Greyhound\",\"Maltese\",\"Manchester Terrier\",\"Maremmano-Abruzzese Sheepdog\",\"McNab dog\",\"Miniature American Shepherd\",\"Miniature Bull Terrier\",\"Miniature Fox Terrier\",\"Miniature Pinscher\",\"Miniature Schnauzer\",\"Molossus of Epirus\",\"Montenegrin Mountain Hound\",\"Mountain Cur\",\"Mountain Feist\",\"Mucuchies\",\"Mudhol Hound\",\"Mudi\",\"Neapolitan Mastiff\",\"New Guinea Singing Dog\",\"New Zealand Heading Dog\",\"Newfoundland\",\"Norfolk Terrier\",\"Norrbottenspets\",\"Northern Inuit Dog\",\"Norwegian Buhund\",\"Norwegian Elkhound\",\"Norwegian Lundehund\",\"Norwich Terrier\",\"Nova Scotia Duck Tolling Retriever\",\"Old Croatian Sighthound\",\"Old Danish Pointer\",\"Old English Sheepdog\",\"Old English Terrier\",\"Olde English Bulldogge\",\"Otterhound\",\"Pachon Navarro\",\"Pampas Deerhound\",\"Paisley Terrier\",\"Papillon\",\"Parson Russell Terrier\",\"Pastore della Lessinia e del Lagorai\",\"Patagonian Sheepdog\",\"Patterdale Terrier\",\"Pekingese\",\"Pembroke Welsh Corgi\",\"Perro Majorero\",\"Perro de Pastor Mallorquin\",\"Perro de Presa Canario\",\"Perro de Presa Mallorquin\",\"Peruvian Inca Orchid\",\"Petit Basset Griffon Vendéen\",\"Petit Bleu de Gascogne\",\"Phalène\",\"Pharaoh Hound\",\"Phu Quoc Ridgeback\",\"Picardy Spaniel\",\"Plummer Terrier\",\"Plott Hound\",\"Podenco Canario\",\"Podenco Valenciano\",\"Pointer\",\"Poitevin\",\"Polish Greyhound\",\"Polish Hound\",\"Polish Lowland Sheepdog\",\"Polish Tatra Sheepdog\",\"Pomeranian\",\"Pont-Audemer Spaniel\",\"Poodle\",\"Porcelaine\",\"Portuguese Podengo\",\"Portuguese Pointer\",\"Portuguese Water Dog\",\"Posavac Hound\",\"Pražský Krysařík\",\"Pshdar Dog\",\"Pudelpointer\",\"Pug\",\"Puli\",\"Pumi\",\"Pungsan Dog\",\"Pyrenean Mastiff\",\"Pyrenean Mountain Dog\",\"Pyrenean Sheepdog\",\"Rafeiro do Alentejo\",\"Rajapalayam\",\"Rampur Greyhound\",\"Rat Terrier\",\"Ratonero Bodeguero Andaluz\",\"Ratonero Mallorquin\",\"Ratonero Murciano de Huerta\",\"Ratonero Valenciano\",\"Redbone Coonhound\",\"Rhodesian Ridgeback\",\"Romanian Mioritic Shepherd Dog\",\"Romanian Raven Shepherd Dog\",\"Rottweiler\",\"Rough Collie\",\"Russian Spaniel\",\"Russian Toy\",\"Russo-European Laika\",\"Saarloos Wolfdog\",\"Sabueso Español\",\"Saint Bernard\",\"Saint Hubert Jura Hound\",\"Saint-Usuge Spaniel\",\"Saluki\",\"Samoyed\",\"Sapsali\",\"Sarabi dog\",\"Šarplaninac\",\"Schapendoes\",\"Schillerstövare\",\"Schipperke\",\"Schweizer Laufhund\",\"Schweizerischer Niederlaufhund\",\"Scottish Deerhound\",\"Scottish Terrier\",\"Sealyham Terrier\",\"Segugio dell'Appennino\",\"Segugio Italiano\",\"Segugio Maremmano\",\"Seppala Siberian Sleddog\",\"Serbian Hound\",\"Serbian Tricolour Hound\",\"Serrano Bulldog\",\"Shar Pei\",\"Shetland Sheepdog\",\"Shiba Inu\",\"Shih Tzu\",\"Shikoku\",\"Shiloh Shepherd\",\"Siberian Husky\",\"Silken Windhound\",\"Silky Terrier\",\"Sinhala Hound\",\"Skye Terrier\",\"Sloughi\",\"Slovakian Wirehaired Pointer\",\"Slovenský Cuvac\",\"Slovenský Kopov\",\"Smalandstövare\",\"Small Greek domestic dog\",\"Small Münsterländer\",\"Smooth Collie\",\"Smooth Fox Terrier\",\"Soft-Coated Wheaten Terrier\",\"South Russian Ovcharka\",\"Spanish Mastiff\",\"Spanish Water Dog\",\"Spinone Italiano\",\"Sporting Lucas Terrier\",\"Sardinian Shepherd Dog\",\"Stabyhoun\",\"Staffordshire Bull Terrier\",\"Standard Schnauzer\",\"Stephens Stock\",\"Styrian Coarse-haired Hound\",\"Sussex Spaniel\",\"Swedish Elkhound\",\"Swedish Lapphund\",\"Swedish Vallhund\",\"Swedish White Elkhound\",\"Taigan\",\"Taiwan Dog\",\"Tamaskan Dog\",\"Teddy Roosevelt Terrier\",\"Telomian\",\"Tenterfield Terrier\",\"Terrier Brasileiro\",\"Thai Bangkaew Dog\",\"Thai Ridgeback\",\"Tibetan Mastiff\",\"Tibetan Spaniel\",\"Tibetan Terrier\",\"Tornjak\",\"Tosa\",\"Toy Fox Terrier\",\"Toy Manchester Terrier\",\"Transylvanian Hound\",\"Treeing Cur\",\"Treeing Feist\",\"Treeing Tennessee Brindle\",\"Treeing Walker Coonhound\",\"Trigg Hound\",\"Tyrolean Hound\",\"Vikhan\",\"Villano de Las Encartaciones\",\"Villanuco de Las Encartaciones\",\"Vizsla\",\"Volpino Italiano\",\"Weimaraner\",\"Welsh Sheepdog\",\"Welsh Springer Spaniel\",\"Welsh Terrier\",\"West Highland White Terrier\",\"West Siberian Laika\",\"Westphalian Dachsbracke\",\"Wetterhoun\",\"Whippet\",\"White Shepherd\",\"White Swiss Shepherd Dog\",\"Wire Fox Terrier\",\"Wirehaired Pointing Griffon\",\"Wirehaired Vizsla\",\"Xiasi Dog\",\"Xoloitzcuintli\",\"Yakutian Laika\",\"Yorkshire Terrier\"],jWe=[\"Grass carp\",\"Peruvian anchoveta\",\"Silver carp\",\"Common carp\",\"Asari\",\"Japanese littleneck\",\"Filipino Venus\",\"Japanese cockle\",\"Alaska pollock\",\"Nile tilapia\",\"Whiteleg shrimp\",\"Bighead carp\",\"Skipjack tuna\",\"Catla\",\"Crucian carp\",\"Atlantic salmon\",\"Atlantic herring\",\"Chub mackerel\",\"Rohu\",\"Yellowfin tuna\",\"Japanese anchovy\",\"Largehead hairtail\",\"Atlantic cod\",\"European pilchard\",\"Capelin\",\"Jumbo flying squid\",\"Milkfish\",\"Atlantic mackerel\",\"Rainbow trout\",\"Araucanian herring\",\"Wuchang bream\",\"Gulf menhaden\",\"Indian oil sardine\",\"Black carp\",\"European anchovy\",\"Northern snakehead\",\"Pacific cod\",\"Pacific saury\",\"Pacific herring\",\"Bigeye tuna\",\"Chilean jack mackerel\",\"Yellow croaker\",\"Haddock\",\"Gazami crab\",\"Amur catfish\",\"Japanese common catfish\",\"European sprat\",\"Pink salmon\",\"Mrigal carp\",\"Channel catfish\",\"Blood cockle\",\"Blue whiting\",\"Hilsa shad\",\"Daggertooth pike conger\",\"California pilchard\",\"Cape horse mackerel\",\"Pacific anchoveta\",\"Japanese flying squid\",\"Pollock\",\"Chinese softshell turtle\",\"Kawakawa\",\"Indian mackerel\",\"Asian swamp eel\",\"Argentine hake\",\"Short mackerel\",\"Southern rough shrimp\",\"Southern African anchovy\",\"Pond loach\",\"Iridescent shark\",\"Mandarin fish\",\"Chinese perch\",\"Nile perch\",\"Round sardinella\",\"Japanese pilchard\",\"Bombay-duck\",\"Yellowhead catfish\",\"Korean bullhead\",\"Narrow-barred Spanish mackerel\",\"Albacore\",\"Madeiran sardinella\",\"Bonga shad\",\"Silver cyprinid\",\"Longtail tuna\",\"Atlantic menhaden\",\"North Pacific hake\",\"Atlantic horse mackerel\",\"Japanese jack mackerel\",\"Pacific thread herring\",\"Bigeye scad\",\"Yellowstripe scad\",\"Chum salmon\",\"Blue swimming crab\",\"Pacific sand lance\",\"Pacific sandlance\",\"Goldstripe sardinella\"],zWe=[\"American Albino\",\"Abaco Barb\",\"Abtenauer\",\"Abyssinian\",\"Aegidienberger\",\"Akhal-Teke\",\"Albanian Horse\",\"Altai Horse\",\"Altèr Real\",\"American Cream Draft\",\"American Indian Horse\",\"American Paint Horse\",\"American Quarter Horse\",\"American Saddlebred\",\"American Warmblood\",\"Andalusian Horse\",\"Andravida Horse\",\"Anglo-Arabian\",\"Anglo-Arabo-Sardo\",\"Anglo-Kabarda\",\"Appaloosa\",\"AraAppaloosa\",\"Arabian Horse\",\"Ardennes Horse\",\"Arenberg-Nordkirchen\",\"Argentine Criollo\",\"Asian wild Horse\",\"Assateague Horse\",\"Asturcón\",\"Augeron\",\"Australian Brumby\",\"Australian Draught Horse\",\"Australian Stock Horse\",\"Austrian Warmblood\",\"Auvergne Horse\",\"Auxois\",\"Azerbaijan Horse\",\"Azteca Horse\",\"Baise Horse\",\"Bale\",\"Balearic Horse\",\"Balikun Horse\",\"Baluchi Horse\",\"Banker Horse\",\"Barb Horse\",\"Bardigiano\",\"Bashkir Curly\",\"Basque Mountain Horse\",\"Bavarian Warmblood\",\"Belgian Half-blood\",\"Belgian Horse\",\"Belgian Warmblood \",\"Bhutia Horse\",\"Black Forest Horse\",\"Blazer Horse\",\"Boerperd\",\"Borana\",\"Boulonnais Horse\",\"Brabant\",\"Brandenburger\",\"Brazilian Sport Horse\",\"Breton Horse\",\"Brumby\",\"Budyonny Horse\",\"Burguete Horse\",\"Burmese Horse\",\"Byelorussian Harness Horse\",\"Calabrese Horse\",\"Camargue Horse\",\"Camarillo White Horse\",\"Campeiro\",\"Campolina\",\"Canadian Horse\",\"Canadian Pacer\",\"Carolina Marsh Tacky\",\"Carthusian Horse\",\"Caspian Horse\",\"Castilian Horse\",\"Castillonnais\",\"Catria Horse\",\"Cavallo Romano della Maremma Laziale\",\"Cerbat Mustang\",\"Chickasaw Horse\",\"Chilean Corralero\",\"Choctaw Horse\",\"Cleveland Bay\",\"Clydesdale Horse\",\"Cob\",\"Coldblood Trotter\",\"Colonial Spanish Horse\",\"Colorado Ranger\",\"Comtois Horse\",\"Corsican Horse\",\"Costa Rican Saddle Horse\",\"Cretan Horse\",\"Criollo Horse\",\"Croatian Coldblood\",\"Cuban Criollo\",\"Cumberland Island Horse\",\"Curly Horse\",\"Czech Warmblood\",\"Daliboz\",\"Danish Warmblood\",\"Danube Delta Horse\",\"Dole Gudbrandsdal\",\"Don\",\"Dongola Horse\",\"Draft Trotter\",\"Dutch Harness Horse\",\"Dutch Heavy Draft\",\"Dutch Warmblood\",\"Dzungarian Horse\",\"East Bulgarian\",\"East Friesian Horse\",\"Estonian Draft\",\"Estonian Horse\",\"Falabella\",\"Faroese\",\"Finnhorse\",\"Fjord Horse\",\"Fleuve\",\"Florida Cracker Horse\",\"Foutanké\",\"Frederiksborg Horse\",\"Freiberger\",\"French Trotter\",\"Friesian Cross\",\"Friesian Horse\",\"Friesian Sporthorse\",\"Furioso-North Star\",\"Galiceño\",\"Galician Pony\",\"Gelderland Horse\",\"Georgian Grande Horse\",\"German Warmblood\",\"Giara Horse\",\"Gidran\",\"Groningen Horse\",\"Gypsy Horse\",\"Hackney Horse\",\"Haflinger\",\"Hanoverian Horse\",\"Heck Horse\",\"Heihe Horse\",\"Henson Horse\",\"Hequ Horse\",\"Hirzai\",\"Hispano-Bretón\",\"Holsteiner Horse\",\"Horro\",\"Hungarian Warmblood\",\"Icelandic Horse\",\"Iomud\",\"Irish Draught\",\"Irish Sport Horse sometimes called Irish Hunter\",\"Italian Heavy Draft\",\"Italian Trotter\",\"Jaca Navarra\",\"Jeju Horse\",\"Jutland Horse\",\"Kabarda Horse\",\"Kafa\",\"Kaimanawa Horses\",\"Kalmyk Horse\",\"Karabair\",\"Karabakh Horse\",\"Karachai Horse\",\"Karossier\",\"Kathiawari\",\"Kazakh Horse\",\"Kentucky Mountain Saddle Horse\",\"Kiger Mustang\",\"Kinsky Horse\",\"Kisber Felver\",\"Kiso Horse\",\"Kladruber\",\"Knabstrupper\",\"Konik\",\"Kundudo\",\"Kustanair\",\"Kyrgyz Horse\",\"Latvian Horse\",\"Lipizzan\",\"Lithuanian Heavy Draught\",\"Lokai\",\"Losino Horse\",\"Lusitano\",\"Lyngshest\",\"M'Bayar\",\"M'Par\",\"Mallorquín\",\"Malopolski\",\"Mangalarga\",\"Mangalarga Marchador\",\"Maremmano\",\"Marismeño Horse\",\"Marsh Tacky\",\"Marwari Horse\",\"Mecklenburger\",\"Međimurje Horse\",\"Menorquín\",\"Mérens Horse\",\"Messara Horse\",\"Metis Trotter\",\"Mezőhegyesi Sport Horse\",\"Miniature Horse\",\"Misaki Horse\",\"Missouri Fox Trotter\",\"Monchina\",\"Mongolian Horse\",\"Mongolian Wild Horse\",\"Monterufolino\",\"Morab\",\"Morgan Horse\",\"Mountain Pleasure Horse\",\"Moyle Horse\",\"Murakoz Horse\",\"Murgese\",\"Mustang Horse\",\"Namib Desert Horse\",\"Nangchen Horse\",\"National Show Horse\",\"Nez Perce Horse\",\"Nivernais Horse\",\"Nokota Horse\",\"Noma\",\"Nonius Horse\",\"Nooitgedachter\",\"Nordlandshest\",\"Noriker Horse\",\"Norman Cob\",\"North American Single-Footer Horse\",\"North Swedish Horse\",\"Norwegian Coldblood Trotter\",\"Norwegian Fjord\",\"Novokirghiz\",\"Oberlander Horse\",\"Ogaden\",\"Oldenburg Horse\",\"Orlov trotter\",\"Ostfriesen\",\"Paint\",\"Pampa Horse\",\"Paso Fino\",\"Pentro Horse\",\"Percheron\",\"Persano Horse\",\"Peruvian Paso\",\"Pintabian\",\"Pleven Horse\",\"Poitevin Horse\",\"Posavac Horse\",\"Pottok\",\"Pryor Mountain Mustang\",\"Przewalski's Horse\",\"Pura Raza Española\",\"Purosangue Orientale\",\"Qatgani\",\"Quarab\",\"Quarter Horse\",\"Racking Horse\",\"Retuerta Horse\",\"Rhenish German Coldblood\",\"Rhinelander Horse\",\"Riwoche Horse\",\"Rocky Mountain Horse\",\"Romanian Sporthorse\",\"Rottaler\",\"Russian Don\",\"Russian Heavy Draft\",\"Russian Trotter\",\"Saddlebred\",\"Salerno Horse\",\"Samolaco Horse\",\"San Fratello Horse\",\"Sarcidano Horse\",\"Sardinian Anglo-Arab\",\"Schleswig Coldblood\",\"Schwarzwälder Kaltblut\",\"Selale\",\"Sella Italiano\",\"Selle Français\",\"Shagya Arabian\",\"Shan Horse\",\"Shire Horse\",\"Siciliano Indigeno\",\"Silesian Horse\",\"Sokolsky Horse\",\"Sorraia\",\"South German Coldblood\",\"Soviet Heavy Draft\",\"Spanish Anglo-Arab\",\"Spanish Barb\",\"Spanish Jennet Horse\",\"Spanish Mustang\",\"Spanish Tarpan\",\"Spanish-Norman Horse\",\"Spiti Horse\",\"Spotted Saddle Horse\",\"Standardbred Horse\",\"Suffolk Punch\",\"Swedish Ardennes\",\"Swedish coldblood trotter\",\"Swedish Warmblood\",\"Swiss Warmblood\",\"Taishū Horse\",\"Takhi\",\"Tawleed\",\"Tchernomor\",\"Tennessee Walking Horse\",\"Tersk Horse\",\"Thoroughbred\",\"Tiger Horse\",\"Tinker Horse\",\"Tolfetano\",\"Tori Horse\",\"Trait Du Nord\",\"Trakehner\",\"Tsushima\",\"Tuigpaard\",\"Ukrainian Riding Horse\",\"Unmol Horse\",\"Uzunyayla\",\"Ventasso Horse\",\"Virginia Highlander\",\"Vlaamperd\",\"Vladimir Heavy Draft\",\"Vyatka\",\"Waler\",\"Waler Horse\",\"Walkaloosa\",\"Warlander\",\"Warmblood\",\"Welsh Cob\",\"Westphalian Horse\",\"Wielkopolski\",\"Württemberger\",\"Xilingol Horse\",\"Yakutian Horse\",\"Yili Horse\",\"Yonaguni Horse\",\"Zaniskari\",\"Žemaitukas\",\"Zhemaichu\",\"Zweibrücker\"],HWe=[\"Acacia-ants\",\"Acorn-plum gall\",\"Aerial yellowjacket\",\"Africanized honey bee\",\"Allegheny mound ant\",\"Almond stone wasp\",\"Ant\",\"Arboreal ant\",\"Argentine ant\",\"Asian paper wasp\",\"Baldfaced hornet\",\"Bee\",\"Bigheaded ant\",\"Black and yellow mud dauber\",\"Black carpenter ant\",\"Black imported fire ant\",\"Blue horntail woodwasp\",\"Blue orchard bee\",\"Braconid wasp\",\"Bumble bee\",\"Carpenter ant\",\"Carpenter wasp\",\"Chalcid wasp\",\"Cicada killer\",\"Citrus blackfly parasitoid\",\"Common paper wasp\",\"Crazy ant\",\"Cuckoo wasp\",\"Cynipid gall wasp\",\"Eastern Carpenter bee\",\"Eastern yellowjacket\",\"Elm sawfly\",\"Encyrtid wasp\",\"Erythrina gall wasp\",\"Eulophid wasp\",\"European hornet\",\"European imported fire ant\",\"False honey ant\",\"Fire ant\",\"Forest bachac\",\"Forest yellowjacket\",\"German yellowjacket\",\"Ghost ant\",\"Giant ichneumon wasp\",\"Giant resin bee\",\"Giant wood wasp\",\"Golden northern bumble bee\",\"Golden paper wasp\",\"Gouty oak gall\",\"Grass Carrying Wasp\",\"Great black wasp\",\"Great golden digger wasp\",\"Hackberry nipple gall parasitoid\",\"Honey bee\",\"Horned oak gall\",\"Horse guard wasp\",\"Hunting wasp\",\"Ichneumonid wasp\",\"Keyhole wasp\",\"Knopper gall\",\"Large garden bumble bee\",\"Large oak-apple gall\",\"Leafcutting bee\",\"Little fire ant\",\"Little yellow ant\",\"Long-horned bees\",\"Long-legged ant\",\"Macao paper wasp\",\"Mallow bee\",\"Marble gall\",\"Mossyrose gall wasp\",\"Mud-daubers\",\"Multiflora rose seed chalcid\",\"Oak apple gall wasp\",\"Oak rough bulletgall wasp\",\"Oak saucer gall\",\"Oak shoot sawfly\",\"Odorous house ant\",\"Orange-tailed bumble bee\",\"Orangetailed potter wasp\",\"Oriental chestnut gall wasp\",\"Paper wasp\",\"Pavement ant\",\"Pigeon tremex\",\"Pip gall wasp\",\"Prairie yellowjacket\",\"Pteromalid wasp\",\"Pyramid ant\",\"Raspberry Horntail\",\"Red ant\",\"Red carpenter ant\",\"Red harvester ant\",\"Red imported fire ant\",\"Red wasp\",\"Red wood ant\",\"Red-tailed wasp\",\"Reddish carpenter ant\",\"Rough harvester ant\",\"Sawfly parasitic wasp\",\"Scale parasitoid\",\"Silky ant\",\"Sirex woodwasp\",\"Siricid woodwasp\",\"Smaller yellow ant\",\"Southeastern blueberry bee\",\"Southern fire ant\",\"Southern yellowjacket\",\"Sphecid wasp\",\"Stony gall\",\"Sweat bee\",\"Texas leafcutting ant\",\"Tiphiid wasp\",\"Torymid wasp\",\"Tramp ant\",\"Valentine ant\",\"Velvet ant\",\"Vespid wasp\",\"Weevil parasitoid\",\"Western harvester ant\",\"Western paper wasp\",\"Western thatching ant\",\"Western yellowjacket\",\"White-horned horntail\",\"Willow shoot sawfly\",\"Woodwasp\",\"Wool sower gall maker\",\"Yellow and black potter wasp\",\"Yellow Crazy Ant\",\"Yellow-horned horntail\"],VWe=[\"Asiatic Lion\",\"Barbary Lion\",\"West African Lion\",\"Northeast Congo Lion\",\"Masai Lion\",\"Transvaal lion\",\"Cape lion\"],WWe=[\"American\",\"American Chinchilla\",\"American Fuzzy Lop\",\"American Sable\",\"Argente Brun\",\"Belgian Hare\",\"Beveren\",\"Blanc de Hotot\",\"Britannia Petite\",\"Californian\",\"Champagne DArgent\",\"Checkered Giant\",\"Cinnamon\",\"Crème DArgent\",\"Dutch\",\"Dwarf Hotot\",\"English Angora\",\"English Lop\",\"English Spot\",\"Flemish Giant\",\"Florida White\",\"French Angora\",\"French Lop\",\"Giant Angora\",\"Giant Chinchilla\",\"Harlequin\",\"Havana\",\"Himalayan\",\"Holland Lop\",\"Jersey Wooly\",\"Lilac\",\"Lionhead\",\"Mini Lop\",\"Mini Rex\",\"Mini Satin\",\"Netherland Dwarf\",\"New Zealand\",\"Palomino\",\"Polish\",\"Rex\",\"Rhinelander\",\"Satin\",\"Satin Angora\",\"Silver\",\"Silver Fox\",\"Silver Marten\",\"Standard Chinchilla\",\"Tan\",\"Thrianta\"],GWe=[\"Abrocoma\",\"Abrocoma schistacea\",\"Aconaemys\",\"Aconaemys porteri\",\"African brush-tailed porcupine\",\"Andean mountain cavy\",\"Argentine tuco-tuco\",\"Ashy chinchilla rat\",\"Asiatic brush-tailed porcupine\",\"Atherurus\",\"Azara's agouti\",\"Azara's tuco-tuco\",\"Bahia porcupine\",\"Bathyergus\",\"Bathyergus janetta\",\"Bathyergus suillus\",\"Bennett's chinchilla rat\",\"Bicolored-spined porcupine\",\"Black agouti\",\"Black dwarf porcupine\",\"Black-rumped agouti\",\"Black-tailed hairy dwarf porcupine\",\"Bolivian chinchilla rat\",\"Bolivian tuco-tuco\",\"Bonetto's tuco-tuco\",\"Brandt's yellow-toothed cavy\",\"Brazilian guinea pig\",\"Brazilian porcupine\",\"Brazilian tuco-tuco\",\"Bridge's degu\",\"Brown hairy dwarf porcupine\",\"Budin's chinchilla rat, A. budini\",\"Cape porcupine\",\"Catamarca tuco-tuco\",\"Cavia\",\"Central American agouti\",\"Chacoan tuco-tuco\",\"Chilean rock rat\",\"Chinchilla\",\"Coendou\",\"Coiban agouti\",\"Colburn's tuco-tuco\",\"Collared tuco-tuco\",\"Common degu\",\"Common yellow-toothed cavy\",\"Conover's tuco-tuco\",\"Coruro\",\"Crested agouti\",\"Crested porcupine\",\"Cryptomys\",\"Cryptomys bocagei\",\"Cryptomys damarensis\",\"Cryptomys foxi\",\"Cryptomys hottentotus\",\"Cryptomys mechowi\",\"Cryptomys ochraceocinereus\",\"Cryptomys zechi\",\"Ctenomys\",\"Cuniculus\",\"Cuscomys\",\"Cuscomys ashanika\",\"Dactylomys\",\"Dactylomys boliviensis\",\"Dactylomys dactylinus\",\"Dactylomys peruanus\",\"Dasyprocta\",\"Domestic guinea pig\",\"Emily's tuco-tuco\",\"Erethizon\",\"Famatina chinchilla rat\",\"Frosted hairy dwarf porcupine\",\"Fukomys\",\"Fukomys amatus\",\"Fukomys anselli\",\"Fukomys bocagei\",\"Fukomys damarensis\",\"Fukomys darlingi\",\"Fukomys foxi\",\"Fukomys ilariae\",\"Fukomys kafuensis\",\"Fukomys mechowii\",\"Fukomys micklemi\",\"Fukomys occlusus\",\"Fukomys ochraceocinereus\",\"Fukomys whytei\",\"Fukomys zechi\",\"Furtive tuco-tuco\",\"Galea\",\"Georychus\",\"Georychus capensis\",\"Golden viscacha-rat\",\"Goya tuco-tuco\",\"Greater guinea pig\",\"Green acouchi\",\"Haig's tuco-tuco\",\"Heliophobius\",\"Heliophobius argenteocinereus\",\"Heterocephalus\",\"Heterocephalus glaber\",\"Highland tuco-tuco\",\"Hystrix\",\"Indian porcupine\",\"Isla Mocha degu\",\"Kalinowski agouti\",\"Kannabateomys\",\"Kannabateomys amblyonyx\",\"Lagidium\",\"Lagostomus\",\"Lewis' tuco-tuco\",\"Long-tailed chinchilla\",\"Long-tailed porcupine\",\"Los Chalchaleros' viscacha-rat\",\"Lowland paca\",\"Magellanic tuco-tuco\",\"Malayan porcupine\",\"Maule tuco-tuco\",\"Mendoza tuco-tuco\",\"Mexican agouti\",\"Mexican hairy dwarf porcupine\",\"Microcavia\",\"Montane guinea pig\",\"Moon-toothed degu\",\"Mottled tuco-tuco\",\"Mountain degu\",\"Mountain paca\",\"Mountain viscacha-rat\",\"Myoprocta\",\"Natterer's tuco-tuco\",\"North American porcupine\",\"Northern viscacha\",\"Octodon\",\"Octodontomys\",\"Octomys\",\"Olallamys\",\"Olallamys albicauda\",\"Olallamys edax\",\"Orinoco agouti\",\"Paraguaian hairy dwarf porcupine\",\"Pearson's tuco-tuco\",\"Peruvian tuco-tuco\",\"Philippine porcupine\",\"Pipanacoctomys\",\"Plains viscacha\",\"Plains viscacha-rat\",\"Porteous' tuco-tuco\",\"Punta de Vacas chinchilla rat\",\"Red acouchi\",\"Red-rumped agouti\",\"Reddish tuco-tuco\",\"Rio Negro tuco-tuco\",\"Robust tuco-tuco\",\"Roosmalen's dwarf porcupine\",\"Rothschild's porcupine\",\"Ruatan Island agouti\",\"Sage's rock rat\",\"Salinoctomys\",\"Salta tuco-tuco\",\"San Luis tuco-tuco\",\"Santa Catarina's guinea pig\",\"Shiny guinea pig\",\"Shipton's mountain cavy\",\"Short-tailed chinchilla\",\"Silky tuco-tuco\",\"Social tuco-tuco\",\"Southern mountain cavy\",\"Southern tuco-tuco\",\"Southern viscacha\",\"Spalacopus\",\"Spix's yellow-toothed cavy\",\"Steinbach's tuco-tuco\",\"Streaked dwarf porcupine\",\"Strong tuco-tuco\",\"Stump-tailed porcupine\",\"Sumatran porcupine\",\"Sunda porcupine\",\"Talas tuco-tuco\",\"Tawny tuco-tuco\",\"Thick-spined porcupine\",\"Tiny tuco-tuco\",\"Trichys\",\"Tucuman tuco-tuco\",\"Tympanoctomys\",\"Uspallata chinchilla rat\",\"White-toothed tuco-tuco\",\"Wolffsohn's viscacha\"],UWe=[\"Viper Adder\",\"Common adder\",\"Death Adder\",\"Desert death adder\",\"Horned adder\",\"Long-nosed adder\",\"Many-horned adder\",\"Mountain adder\",\"Mud adder\",\"Namaqua dwarf adder\",\"Nightingale adder\",\"Peringuey's adder\",\"Puff adder\",\"African puff adder\",\"Rhombic night adder\",\"Sand adder\",\"Dwarf sand adder\",\"Namib dwarf sand adder\",\"Water adder\",\"Aesculapian snake\",\"Anaconda\",\"Bolivian anaconda\",\"De Schauensee's anaconda\",\"Green anaconda\",\"Yellow anaconda\",\"Arafura file snake\",\"Asp\",\"European asp\",\"Egyptian asp\",\"African beaked snake\",\"Ball Python\",\"Bird snake\",\"Black-headed snake\",\"Mexican black kingsnake\",\"Black rat snake\",\"Black snake\",\"Red-bellied black snake\",\"Blind snake\",\"Brahminy blind snake\",\"Texas blind snake\",\"Western blind snake\",\"Boa\",\"Abaco Island boa\",\"Amazon tree boa\",\"Boa constrictor\",\"Cuban boa\",\"Dumeril's boa\",\"Dwarf boa\",\"Emerald tree boa\",\"Hogg Island boa\",\"Jamaican boa\",\"Madagascar ground boa\",\"Madagascar tree boa\",\"Puerto Rican boa\",\"Rainbow boa\",\"Red-tailed boa\",\"Rosy boa\",\"Rubber boa\",\"Sand boa\",\"Tree boa\",\"Boiga\",\"Boomslang\",\"Brown snake\",\"Eastern brown snake\",\"Bull snake\",\"Bushmaster\",\"Dwarf beaked snake\",\"Rufous beaked snake\",\"Canebrake\",\"Cantil\",\"Cascabel\",\"Cat-eyed snake\",\"Banded cat-eyed snake\",\"Green cat-eyed snake\",\"Cat snake\",\"Andaman cat snake\",\"Beddome's cat snake\",\"Dog-toothed cat snake\",\"Forsten's cat snake\",\"Gold-ringed cat snake\",\"Gray cat snake\",\"Many-spotted cat snake\",\"Tawny cat snake\",\"Chicken snake\",\"Coachwhip snake\",\"Cobra\",\"Andaman cobra\",\"Arabian cobra\",\"Asian cobra\",\"Banded water cobra\",\"Black-necked cobra\",\"Black-necked spitting cobra\",\"Black tree cobra\",\"Burrowing cobra\",\"Cape cobra\",\"Caspian cobra\",\"Congo water cobra\",\"Common cobra\",\"Eastern water cobra\",\"Egyptian cobra\",\"Equatorial spitting cobra\",\"False cobra\",\"False water cobra\",\"Forest cobra\",\"Gold tree cobra\",\"Indian cobra\",\"Indochinese spitting cobra\",\"Javan spitting cobra\",\"King cobra\",\"Mandalay cobra\",\"Mozambique spitting cobra\",\"North Philippine cobra\",\"Nubian spitting cobra\",\"Philippine cobra\",\"Red spitting cobra\",\"Rinkhals cobra\",\"Shield-nosed cobra\",\"Sinai desert cobra\",\"Southern Indonesian spitting cobra\",\"Southern Philippine cobra\",\"Southwestern black spitting cobra\",\"Snouted cobra\",\"Spectacled cobra\",\"Spitting cobra\",\"Storm water cobra\",\"Thai cobra\",\"Taiwan cobra\",\"Zebra spitting cobra\",\"Collett's snake\",\"Congo snake\",\"Copperhead\",\"American copperhead\",\"Australian copperhead\",\"Coral snake\",\"Arizona coral snake\",\"Beddome's coral snake\",\"Brazilian coral snake\",\"Cape coral snake\",\"Harlequin coral snake\",\"High Woods coral snake\",\"Malayan long-glanded coral snake\",\"Texas Coral Snake\",\"Western coral snake\",\"Corn snake\",\"South eastern corn snake\",\"Cottonmouth\",\"Crowned snake\",\"Cuban wood snake\",\"Eastern hognose snake\",\"Egg-eater\",\"Eastern coral snake\",\"Fer-de-lance\",\"Fierce snake\",\"Fishing snake\",\"Flying snake\",\"Golden tree snake\",\"Indian flying snake\",\"Moluccan flying snake\",\"Ornate flying snake\",\"Paradise flying snake\",\"Twin-Barred tree snake\",\"Banded Flying Snake\",\"Fox snake, three species of Pantherophis\",\"Forest flame snake\",\"Garter snake\",\"Checkered garter snake\",\"Common garter snake\",\"San Francisco garter snake\",\"Texas garter snake\",\"Cape gopher snake\",\"Grass snake\",\"Green snake\",\"Rough green snake\",\"Smooth green snake\",\"Ground snake\",\"Common ground snake\",\"Three-lined ground snake\",\"Western ground snake\",\"Habu\",\"Hognose snake\",\"Blonde hognose snake\",\"Dusty hognose snake\",\"Jan's hognose snake\",\"Giant Malagasy hognose snake\",\"Mexican hognose snake\",\"South American hognose snake\",\"Hundred pacer\",\"Ikaheka snake\",\"Indigo snake\",\"Jamaican Tree Snake\",\"Keelback\",\"Asian keelback\",\"Assam keelback\",\"Black-striped keelback\",\"Buff striped keelback\",\"Burmese keelback\",\"Checkered keelback\",\"Common keelback\",\"Hill keelback\",\"Himalayan keelback\",\"Khasi Hills keelback\",\"Modest keelback\",\"Nicobar Island keelback\",\"Nilgiri keelback\",\"Orange-collared keelback\",\"Red-necked keelback\",\"Sikkim keelback\",\"Speckle-bellied keelback\",\"White-lipped keelback\",\"Wynaad keelback\",\"Yunnan keelback\",\"King brown\",\"King snake\",\"California kingsnake\",\"Desert kingsnake\",\"Grey-banded kingsnake\",\"North eastern king snake\",\"Prairie kingsnake\",\"Scarlet kingsnake\",\"Speckled kingsnake\",\"Krait\",\"Banded krait\",\"Blue krait\",\"Black krait\",\"Burmese krait\",\"Ceylon krait\",\"Indian krait\",\"Lesser black krait\",\"Malayan krait\",\"Many-banded krait\",\"Northeastern hill krait\",\"Red-headed krait\",\"Sind krait\",\"Large shield snake\",\"Lancehead\",\"Common lancehead\",\"Lora\",\"Grey Lora\",\"Lyre snake\",\"Baja California lyresnake\",\"Central American lyre snake\",\"Texas lyre snake\",\"Eastern lyre snake\",\"Machete savane\",\"Mamba\",\"Black mamba\",\"Green mamba\",\"Eastern green mamba\",\"Western green mamba\",\"Mamushi\",\"Mangrove snake\",\"Milk snake\",\"Moccasin snake\",\"Montpellier snake\",\"Mud snake\",\"Eastern mud snake\",\"Western mud snake\",\"Mussurana\",\"Night snake\",\"Cat-eyed night snake\",\"Texas night snake\",\"Nichell snake\",\"Narrowhead Garter Snake\",\"Nose-horned viper\",\"Rhinoceros viper\",\"Vipera ammodytes\",\"Parrot snake\",\"Mexican parrot snake\",\"Patchnose snake\",\"Perrotet's shieldtail snake\",\"Pine snake\",\"Pipe snake\",\"Asian pipe snake\",\"Dwarf pipe snake\",\"Red-tailed pipe snake\",\"Python\",\"African rock python\",\"Amethystine python\",\"Angolan python\",\"Australian scrub python\",\"Ball python\",\"Bismarck ringed python\",\"Black headed python\",\"Blood python\",\"Boelen python\",\"Borneo short-tailed python\",\"Bredl's python\",\"Brown water python\",\"Burmese python\",\"Calabar python\",\"Western carpet python\",\"Centralian carpet python\",\"Coastal carpet python\",\"Inland carpet python\",\"Jungle carpet python\",\"New Guinea carpet python\",\"Northwestern carpet python\",\"Southwestern carpet python\",\"Children's python\",\"Dauan Island water python\",\"Desert woma python\",\"Diamond python\",\"Flinders python\",\"Green tree python\",\"Halmahera python\",\"Indian python\",\"Indonesian water python\",\"Macklot's python\",\"Mollucan python\",\"Oenpelli python\",\"Olive python\",\"Papuan python\",\"Pygmy python\",\"Red blood python\",\"Reticulated python\",\"Kayaudi dwarf reticulated python\",\"Selayer reticulated python\",\"Rough-scaled python\",\"Royal python\",\"Savu python\",\"Spotted python\",\"Stimson's python\",\"Sumatran short-tailed python\",\"Tanimbar python\",\"Timor python\",\"Wetar Island python\",\"White-lipped python\",\"Brown white-lipped python\",\"Northern white-lipped python\",\"Southern white-lipped python\",\"Woma python\",\"Western woma python\",\"Queen snake\",\"Racer\",\"Bimini racer\",\"Buttermilk racer\",\"Eastern racer\",\"Eastern yellowbelly sad racer\",\"Mexican racer\",\"Southern black racer\",\"Tan racer\",\"West Indian racer\",\"Raddysnake\",\"Southwestern blackhead snake\",\"Rat snake\",\"Baird's rat snake\",\"Beauty rat snake\",\"Great Plains rat snake\",\"Green rat snake\",\"Japanese forest rat snake\",\"Japanese rat snake\",\"King rat snake\",\"Mandarin rat snake\",\"Persian rat snake\",\"Red-backed rat snake\",\"Twin-spotted rat snake\",\"Yellow-striped rat snake\",\"Manchurian Black Water Snake\",\"Rattlesnake\",\"Arizona black rattlesnake\",\"Aruba rattlesnake\",\"Chihuahuan ridge-nosed rattlesnake\",\"Coronado Island rattlesnake\",\"Durango rock rattlesnake\",\"Dusky pigmy rattlesnake\",\"Eastern diamondback rattlesnake\",\"Grand Canyon rattlesnake\",\"Great Basin rattlesnake\",\"Hopi rattlesnake\",\"Lance-headed rattlesnake\",\"Long-tailed rattlesnake\",\"Massasauga rattlesnake\",\"Mexican green rattlesnake\",\"Mexican west coast rattlesnake\",\"Midget faded rattlesnake\",\"Mojave rattlesnake\",\"Northern black-tailed rattlesnake\",\"Oaxacan small-headed rattlesnake\",\"Rattler\",\"Red diamond rattlesnake\",\"Southern Pacific rattlesnake\",\"Southwestern speckled rattlesnake\",\"Tancitaran dusky rattlesnake\",\"Tiger rattlesnake\",\"Timber rattlesnake\",\"Tropical rattlesnake\",\"Twin-spotted rattlesnake\",\"Uracoan rattlesnake\",\"Western diamondback rattlesnake\",\"Ribbon snake\",\"Rinkhals\",\"River jack\",\"Sea snake\",\"Annulated sea snake\",\"Beaked sea snake\",\"Dubois's sea snake\",\"Hardwicke's sea snake\",\"Hook Nosed Sea Snake\",\"Olive sea snake\",\"Pelagic sea snake\",\"Stoke's sea snake\",\"Yellow-banded sea snake\",\"Yellow-bellied sea snake\",\"Yellow-lipped sea snake\",\"Shield-tailed snake\",\"Sidewinder\",\"Colorado desert sidewinder\",\"Mojave desert sidewinder\",\"Sonoran sidewinder\",\"Small-eyed snake\",\"Smooth snake\",\"Brazilian smooth snake\",\"European smooth snake\",\"Stiletto snake\",\"Striped snake\",\"Japanese striped snake\",\"Sunbeam snake\",\"Taipan\",\"Central ranges taipan\",\"Coastal taipan\",\"Inland taipan\",\"Paupan taipan\",\"Tentacled snake\",\"Tic polonga\",\"Tiger snake\",\"Chappell Island tiger snake\",\"Common tiger snake\",\"Down's tiger snake\",\"Eastern tiger snake\",\"King Island tiger snake\",\"Krefft's tiger snake\",\"Peninsula tiger snake\",\"Tasmanian tiger snake\",\"Western tiger snake\",\"Tigre snake\",\"Tree snake\",\"Blanding's tree snake\",\"Blunt-headed tree snake\",\"Brown tree snake\",\"Long-nosed tree snake\",\"Many-banded tree snake\",\"Northern tree snake\",\"Trinket snake\",\"Black-banded trinket snake\",\"Twig snake\",\"African twig snake\",\"Twin Headed King Snake\",\"Titanboa\",\"Urutu\",\"Vine snake\",\"Asian Vine Snake, Whip Snake\",\"American Vine Snake\",\"Mexican vine snake\",\"Viper\",\"Asp viper\",\"Bamboo viper\",\"Bluntnose viper\",\"Brazilian mud Viper\",\"Burrowing viper\",\"Bush viper\",\"Great Lakes bush viper\",\"Hairy bush viper\",\"Nitsche's bush viper\",\"Rough-scaled bush viper\",\"Spiny bush viper\",\"Carpet viper\",\"Crossed viper\",\"Cyclades blunt-nosed viper\",\"Eyelash viper\",\"False horned viper\",\"Fea's viper\",\"Fifty pacer\",\"Gaboon viper\",\"Hognosed viper\",\"Horned desert viper\",\"Horned viper\",\"Jumping viper\",\"Kaznakov's viper\",\"Leaf-nosed viper\",\"Leaf viper\",\"Levant viper\",\"Long-nosed viper\",\"McMahon's viper\",\"Mole viper\",\"Palestine viper\",\"Pallas' viper\",\"Palm viper\",\"Amazonian palm viper\",\"Black-speckled palm-pitviper\",\"Eyelash palm-pitviper\",\"Green palm viper\",\"Mexican palm-pitviper\",\"Guatemalan palm viper\",\"Honduran palm viper\",\"Siamese palm viper\",\"Side-striped palm-pitviper\",\"Yellow-lined palm viper\",\"Pit viper\",\"Banded pitviper\",\"Bamboo pitviper\",\"Barbour's pit viper\",\"Black-tailed horned pit viper\",\"Bornean pitviper\",\"Brongersma's pitviper\",\"Brown spotted pitviper[4]\",\"Cantor's pitviper\",\"Elegant pitviper\",\"Eyelash pit viper\",\"Fan-Si-Pan horned pitviper\",\"Flat-nosed pitviper\",\"Godman's pit viper\",\"Green tree pit viper\",\"Habu pit viper\",\"Hagen's pitviper\",\"Horseshoe pitviper\",\"Jerdon's pitviper\",\"Kanburian pit viper\",\"Kaulback's lance-headed pitviper\",\"Kham Plateau pitviper\",\"Large-eyed pitviper\",\"Malabar rock pitviper\",\"Malayan pit viper\",\"Mangrove pit viper\",\"Mangshan pitviper\",\"Motuo bamboo pitviper\",\"Nicobar bamboo pitviper\",\"Philippine pitviper\",\"Pointed-scaled pit viper[5]\",\"Red-tailed bamboo pitviper\",\"Schultze's pitviper\",\"Stejneger's bamboo pitviper\",\"Sri Lankan pit viper\",\"Temple pit viper\",\"Tibetan bamboo pitviper\",\"Tiger pit viper\",\"Undulated pit viper\",\"Wagler's pit viper\",\"Wirot's pit viper\",\"Portuguese viper\",\"Saw-scaled viper\",\"Schlegel's viper\",\"Sedge viper\",\"Sharp-nosed viper\",\"Snorkel viper\",\"Temple viper\",\"Tree viper\",\"Chinese tree viper\",\"Guatemalan tree viper\",\"Hutton's tree viper\",\"Indian tree viper\",\"Large-scaled tree viper\",\"Malcolm's tree viper\",\"Nitsche's tree viper\",\"Pope's tree viper\",\"Rough-scaled tree viper\",\"Rungwe tree viper\",\"Sumatran tree viper\",\"White-lipped tree viper\",\"Ursini's viper\",\"Western hog-nosed viper\",\"Wart snake\",\"Water moccasin\",\"Water snake\",\"Bocourt's water snake\",\"Northern water snake\",\"Whip snake\",\"Long-nosed whip snake\",\"Wolf snake\",\"African wolf snake\",\"Barred wolf snake\",\"Worm snake\",\"Common worm snake\",\"Longnosed worm snake\",\"Wutu\",\"Yarara\",\"Zebra snake\"],KWe=[\"dog\",\"cat\",\"snake\",\"bear\",\"lion\",\"cetacean\",\"insect\",\"crocodilia\",\"cow\",\"bird\",\"fish\",\"rabbit\",\"horse\"],YWe={bear:MWe,bird:PWe,cat:OWe,cetacean:BWe,cow:NWe,crocodilia:$We,dog:LWe,fish:jWe,horse:zWe,insect:HWe,lion:VWe,rabbit:WWe,rodent:GWe,snake:UWe,type:KWe},qWe=YWe,XWe=[\"{{person.name}}\",\"{{company.name}}\"],JWe=[\"Redhold\",\"Treeflex\",\"Trippledex\",\"Kanlam\",\"Bigtax\",\"Daltfresh\",\"Toughjoyfax\",\"Mat Lam Tam\",\"Otcom\",\"Tres-Zap\",\"Y-Solowarm\",\"Tresom\",\"Voltsillam\",\"Biodex\",\"Greenlam\",\"Viva\",\"Matsoft\",\"Temp\",\"Zoolab\",\"Subin\",\"Rank\",\"Job\",\"Stringtough\",\"Tin\",\"It\",\"Home Ing\",\"Zamit\",\"Sonsing\",\"Konklab\",\"Alpha\",\"Latlux\",\"Voyatouch\",\"Alphazap\",\"Holdlamis\",\"Zaam-Dox\",\"Sub-Ex\",\"Quo Lux\",\"Bamity\",\"Ventosanzap\",\"Lotstring\",\"Hatity\",\"Tempsoft\",\"Overhold\",\"Fixflex\",\"Konklux\",\"Zontrax\",\"Tampflex\",\"Span\",\"Namfix\",\"Transcof\",\"Stim\",\"Fix San\",\"Sonair\",\"Stronghold\",\"Fintone\",\"Y-find\",\"Opela\",\"Lotlux\",\"Ronstring\",\"Zathin\",\"Duobam\",\"Keylex\"],ZWe=[\"0.#.#\",\"0.##\",\"#.##\",\"#.#\",\"#.#.#\"],QWe={author:XWe,name:JWe,version:ZWe},eGe=QWe,tGe=[\"###-###-####\",\"(###) ###-####\",\"1-###-###-####\",\"###.###.####\"],rGe={formats:tGe},nGe=rGe,aGe=[\"red\",\"green\",\"blue\",\"yellow\",\"purple\",\"mint green\",\"teal\",\"white\",\"black\",\"orange\",\"pink\",\"grey\",\"maroon\",\"violet\",\"turquoise\",\"tan\",\"sky blue\",\"salmon\",\"plum\",\"orchid\",\"olive\",\"magenta\",\"lime\",\"ivory\",\"indigo\",\"gold\",\"fuchsia\",\"cyan\",\"azure\",\"lavender\",\"silver\"],iGe={human:aGe},oGe=iGe,lGe=[\"Books\",\"Movies\",\"Music\",\"Games\",\"Electronics\",\"Computers\",\"Home\",\"Garden\",\"Tools\",\"Grocery\",\"Health\",\"Beauty\",\"Toys\",\"Kids\",\"Baby\",\"Clothing\",\"Shoes\",\"Jewelery\",\"Sports\",\"Outdoors\",\"Automotive\",\"Industrial\"],sGe=[\"Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support\",\"The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive\",\"New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016\",\"The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality\",\"The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design\",\"The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J\",\"The Football Is Good For Training And Recreational Purposes\",\"Carbonite web goalkeeper gloves are ergonomically designed to give easy fit\",\"Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles\",\"New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart\",\"The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients\",\"Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals\"],uGe={adjective:[\"Small\",\"Ergonomic\",\"Electronic\",\"Rustic\",\"Intelligent\",\"Gorgeous\",\"Incredible\",\"Elegant\",\"Fantastic\",\"Practical\",\"Modern\",\"Recycled\",\"Sleek\",\"Bespoke\",\"Awesome\",\"Generic\",\"Handcrafted\",\"Handmade\",\"Oriental\",\"Licensed\",\"Luxurious\",\"Refined\",\"Unbranded\",\"Tasty\"],material:[\"Steel\",\"Bronze\",\"Wooden\",\"Concrete\",\"Plastic\",\"Cotton\",\"Granite\",\"Rubber\",\"Metal\",\"Soft\",\"Fresh\",\"Frozen\"],product:[\"Chair\",\"Car\",\"Computer\",\"Keyboard\",\"Mouse\",\"Bike\",\"Ball\",\"Gloves\",\"Pants\",\"Shirt\",\"Table\",\"Shoes\",\"Hat\",\"Towels\",\"Soap\",\"Tuna\",\"Chicken\",\"Fish\",\"Cheese\",\"Bacon\",\"Pizza\",\"Salad\",\"Sausages\",\"Chips\"]},cGe={department:lGe,product_description:sGe,product_name:uGe},dGe=cGe,fGe=[\"Adaptive\",\"Advanced\",\"Ameliorated\",\"Assimilated\",\"Automated\",\"Balanced\",\"Business-focused\",\"Centralized\",\"Cloned\",\"Compatible\",\"Configurable\",\"Cross-group\",\"Cross-platform\",\"Customer-focused\",\"Customizable\",\"Decentralized\",\"De-engineered\",\"Devolved\",\"Digitized\",\"Distributed\",\"Diverse\",\"Down-sized\",\"Enhanced\",\"Enterprise-wide\",\"Ergonomic\",\"Exclusive\",\"Expanded\",\"Extended\",\"Face to face\",\"Focused\",\"Front-line\",\"Fully-configurable\",\"Function-based\",\"Fundamental\",\"Future-proofed\",\"Grass-roots\",\"Horizontal\",\"Implemented\",\"Innovative\",\"Integrated\",\"Intuitive\",\"Inverse\",\"Managed\",\"Mandatory\",\"Monitored\",\"Multi-channelled\",\"Multi-lateral\",\"Multi-layered\",\"Multi-tiered\",\"Networked\",\"Object-based\",\"Open-architected\",\"Open-source\",\"Operative\",\"Optimized\",\"Optional\",\"Organic\",\"Organized\",\"Persevering\",\"Persistent\",\"Phased\",\"Polarised\",\"Pre-emptive\",\"Proactive\",\"Profit-focused\",\"Profound\",\"Programmable\",\"Progressive\",\"Public-key\",\"Quality-focused\",\"Reactive\",\"Realigned\",\"Re-contextualized\",\"Re-engineered\",\"Reduced\",\"Reverse-engineered\",\"Right-sized\",\"Robust\",\"Seamless\",\"Secured\",\"Self-enabling\",\"Sharable\",\"Stand-alone\",\"Streamlined\",\"Switchable\",\"Synchronised\",\"Synergistic\",\"Synergized\",\"Team-oriented\",\"Total\",\"Triple-buffered\",\"Universal\",\"Up-sized\",\"Upgradable\",\"User-centric\",\"User-friendly\",\"Versatile\",\"Virtual\",\"Visionary\",\"Vision-oriented\"],hGe=[\"clicks-and-mortar\",\"value-added\",\"vertical\",\"proactive\",\"robust\",\"revolutionary\",\"scalable\",\"leading-edge\",\"innovative\",\"intuitive\",\"strategic\",\"e-business\",\"mission-critical\",\"sticky\",\"one-to-one\",\"24/7\",\"end-to-end\",\"global\",\"B2B\",\"B2C\",\"granular\",\"frictionless\",\"virtual\",\"viral\",\"dynamic\",\"24/365\",\"best-of-breed\",\"killer\",\"magnetic\",\"bleeding-edge\",\"web-enabled\",\"interactive\",\"dot-com\",\"sexy\",\"back-end\",\"real-time\",\"efficient\",\"front-end\",\"distributed\",\"seamless\",\"extensible\",\"turn-key\",\"world-class\",\"open-source\",\"cross-platform\",\"cross-media\",\"synergistic\",\"bricks-and-clicks\",\"out-of-the-box\",\"enterprise\",\"integrated\",\"impactful\",\"wireless\",\"transparent\",\"next-generation\",\"cutting-edge\",\"user-centric\",\"visionary\",\"customized\",\"ubiquitous\",\"plug-and-play\",\"collaborative\",\"compelling\",\"holistic\",\"rich\"],pGe=[\"synergies\",\"paradigms\",\"markets\",\"partnerships\",\"infrastructures\",\"platforms\",\"initiatives\",\"channels\",\"eyeballs\",\"communities\",\"ROI\",\"solutions\",\"action-items\",\"portals\",\"niches\",\"technologies\",\"content\",\"supply-chains\",\"convergence\",\"relationships\",\"architectures\",\"interfaces\",\"e-markets\",\"e-commerce\",\"systems\",\"bandwidth\",\"models\",\"mindshare\",\"deliverables\",\"users\",\"schemas\",\"networks\",\"applications\",\"metrics\",\"e-business\",\"functionalities\",\"experiences\",\"web services\",\"methodologies\",\"blockchains\",\"lifetime value\"],mGe=[\"implement\",\"utilize\",\"integrate\",\"streamline\",\"optimize\",\"evolve\",\"transform\",\"embrace\",\"enable\",\"orchestrate\",\"leverage\",\"reinvent\",\"aggregate\",\"architect\",\"enhance\",\"incentivize\",\"morph\",\"empower\",\"envisioneer\",\"monetize\",\"harness\",\"facilitate\",\"seize\",\"disintermediate\",\"synergize\",\"strategize\",\"deploy\",\"brand\",\"grow\",\"target\",\"syndicate\",\"synthesize\",\"deliver\",\"mesh\",\"incubate\",\"engage\",\"maximize\",\"benchmark\",\"expedite\",\"reintermediate\",\"whiteboard\",\"visualize\",\"repurpose\",\"innovate\",\"scale\",\"unleash\",\"drive\",\"extend\",\"engineer\",\"revolutionize\",\"generate\",\"exploit\",\"transition\",\"e-enable\",\"iterate\",\"cultivate\",\"matrix\",\"productize\",\"redefine\",\"recontextualize\"],vGe=[\"24 hour\",\"24/7\",\"3rd generation\",\"4th generation\",\"5th generation\",\"6th generation\",\"actuating\",\"analyzing\",\"asymmetric\",\"asynchronous\",\"attitude-oriented\",\"background\",\"bandwidth-monitored\",\"bi-directional\",\"bifurcated\",\"bottom-line\",\"clear-thinking\",\"client-driven\",\"client-server\",\"coherent\",\"cohesive\",\"composite\",\"context-sensitive\",\"contextually-based\",\"content-based\",\"dedicated\",\"demand-driven\",\"didactic\",\"directional\",\"discrete\",\"disintermediate\",\"dynamic\",\"eco-centric\",\"empowering\",\"encompassing\",\"even-keeled\",\"executive\",\"explicit\",\"exuding\",\"fault-tolerant\",\"foreground\",\"fresh-thinking\",\"full-range\",\"global\",\"grid-enabled\",\"heuristic\",\"high-level\",\"holistic\",\"homogeneous\",\"human-resource\",\"hybrid\",\"impactful\",\"incremental\",\"intangible\",\"interactive\",\"intermediate\",\"leading edge\",\"local\",\"logistical\",\"maximized\",\"methodical\",\"mission-critical\",\"mobile\",\"modular\",\"motivating\",\"multimedia\",\"multi-state\",\"multi-tasking\",\"national\",\"needs-based\",\"neutral\",\"next generation\",\"non-volatile\",\"object-oriented\",\"optimal\",\"optimizing\",\"radical\",\"real-time\",\"reciprocal\",\"regional\",\"responsive\",\"scalable\",\"secondary\",\"solution-oriented\",\"stable\",\"static\",\"systematic\",\"systemic\",\"system-worthy\",\"tangible\",\"tertiary\",\"transitional\",\"uniform\",\"upward-trending\",\"user-facing\",\"value-added\",\"web-enabled\",\"well-modulated\",\"zero administration\",\"zero defect\",\"zero tolerance\"],gGe=[\"{{person.last_name}} {{company.suffix}}\",\"{{person.last_name}} - {{person.last_name}}\",\"{{person.last_name}}, {{person.last_name}} and {{person.last_name}}\"],yGe=[\"ability\",\"access\",\"adapter\",\"algorithm\",\"alliance\",\"analyzer\",\"application\",\"approach\",\"architecture\",\"archive\",\"artificial intelligence\",\"array\",\"attitude\",\"benchmark\",\"budgetary management\",\"capability\",\"capacity\",\"challenge\",\"circuit\",\"collaboration\",\"complexity\",\"concept\",\"conglomeration\",\"contingency\",\"core\",\"customer loyalty\",\"database\",\"data-warehouse\",\"definition\",\"emulation\",\"encoding\",\"encryption\",\"extranet\",\"firmware\",\"flexibility\",\"focus group\",\"forecast\",\"frame\",\"framework\",\"function\",\"functionalities\",\"Graphic Interface\",\"groupware\",\"Graphical User Interface\",\"hardware\",\"help-desk\",\"hierarchy\",\"hub\",\"implementation\",\"info-mediaries\",\"infrastructure\",\"initiative\",\"installation\",\"instruction set\",\"interface\",\"internet solution\",\"intranet\",\"knowledge user\",\"knowledge base\",\"local area network\",\"leverage\",\"matrices\",\"matrix\",\"methodology\",\"middleware\",\"migration\",\"model\",\"moderator\",\"monitoring\",\"moratorium\",\"neural-net\",\"open architecture\",\"open system\",\"orchestration\",\"paradigm\",\"parallelism\",\"policy\",\"portal\",\"pricing structure\",\"process improvement\",\"product\",\"productivity\",\"project\",\"projection\",\"protocol\",\"secured line\",\"service-desk\",\"software\",\"solution\",\"standardization\",\"strategy\",\"structure\",\"success\",\"superstructure\",\"support\",\"synergy\",\"system engine\",\"task-force\",\"throughput\",\"time-frame\",\"toolset\",\"utilisation\",\"website\",\"workforce\"],bGe=[\"Inc\",\"and Sons\",\"LLC\",\"Group\"],xGe={adjective:fGe,buzz_adjective:hGe,buzz_noun:pGe,buzz_verb:mGe,descriptor:vGe,name_pattern:gGe,noun:yGe,suffix:bGe},CGe=xGe,FGe=[\"id\",\"title\",\"name\",\"email\",\"phone\",\"token\",\"group\",\"category\",\"password\",\"comment\",\"avatar\",\"status\",\"createdAt\",\"updatedAt\"],SGe={column:FGe},wGe=SGe,EGe={wide:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],abbr:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]},DGe={wide:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],abbr:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]},AGe={month:EGe,weekday:DGe},_Ge=AGe,TGe=[\"Checking\",\"Savings\",\"Money Market\",\"Investment\",\"Home Loan\",\"Credit Card\",\"Auto Loan\",\"Personal Loan\"],IGe=[\"34##-######-####L\",\"37##-######-####L\"],kGe=[\"30[0-5]#-######-###L\",\"36##-######-###L\",\"54##-####-####-###L\"],RGe=[\"6011-####-####-###L\",\"65##-####-####-###L\",\"64[4-9]#-####-####-###L\",\"6011-62##-####-####-###L\",\"65##-62##-####-####-###L\",\"64[4-9]#-62##-####-####-###L\"],MGe=[\"3528-####-####-###L\",\"3529-####-####-###L\",\"35[3-8]#-####-####-###L\"],PGe=[\"5018-#{4}-#{4}-#{3}L\",\"5020-#{4}-#{4}-#{3}L\",\"5038-#{4}-#{4}-#{3}L\",\"5893-#{4}-#{4}-#{3}L\",\"6304-#{4}-#{4}-#{3}L\",\"6759-#{4}-#{4}-#{3}L\",\"676[1-3]-####-####-###L\",\"5018#{11,15}L\",\"5020#{11,15}L\",\"5038#{11,15}L\",\"5893#{11,15}L\",\"6304#{11,15}L\",\"6759#{11,15}L\",\"676[1-3]#{11,15}L\"],OGe=[\"5[1-5]##-####-####-###L\",\"2[221-720]-####-####-###L\"],BGe=[\"4###########L\",\"4###-####-####-###L\"],NGe={american_express:IGe,diners_club:kGe,discover:RGe,jcb:MGe,maestro:PGe,mastercard:OGe,visa:BGe},$Ge=NGe,LGe=[{name:\"UAE Dirham\",code:\"AED\",symbol:\"\"},{name:\"Afghani\",code:\"AFN\",symbol:\"؋\"},{name:\"Lek\",code:\"ALL\",symbol:\"Lek\"},{name:\"Armenian Dram\",code:\"AMD\",symbol:\"\"},{name:\"Netherlands Antillian Guilder\",code:\"ANG\",symbol:\"ƒ\"},{name:\"Kwanza\",code:\"AOA\",symbol:\"\"},{name:\"Argentine Peso\",code:\"ARS\",symbol:\"$\"},{name:\"Australian Dollar\",code:\"AUD\",symbol:\"$\"},{name:\"Aruban Guilder\",code:\"AWG\",symbol:\"ƒ\"},{name:\"Azerbaijanian Manat\",code:\"AZN\",symbol:\"ман\"},{name:\"Convertible Marks\",code:\"BAM\",symbol:\"KM\"},{name:\"Barbados Dollar\",code:\"BBD\",symbol:\"$\"},{name:\"Taka\",code:\"BDT\",symbol:\"\"},{name:\"Bulgarian Lev\",code:\"BGN\",symbol:\"лв\"},{name:\"Bahraini Dinar\",code:\"BHD\",symbol:\"\"},{name:\"Burundi Franc\",code:\"BIF\",symbol:\"\"},{name:\"Bermudian Dollar (customarily known as Bermuda Dollar)\",code:\"BMD\",symbol:\"$\"},{name:\"Brunei Dollar\",code:\"BND\",symbol:\"$\"},{name:\"Boliviano boliviano\",code:\"BOB\",symbol:\"Bs\"},{name:\"Brazilian Real\",code:\"BRL\",symbol:\"R$\"},{name:\"Bahamian Dollar\",code:\"BSD\",symbol:\"$\"},{name:\"Pula\",code:\"BWP\",symbol:\"P\"},{name:\"Belarusian Ruble\",code:\"BYN\",symbol:\"Rbl\"},{name:\"Belize Dollar\",code:\"BZD\",symbol:\"BZ$\"},{name:\"Canadian Dollar\",code:\"CAD\",symbol:\"$\"},{name:\"Congolese Franc\",code:\"CDF\",symbol:\"\"},{name:\"Swiss Franc\",code:\"CHF\",symbol:\"CHF\"},{name:\"Chilean Peso\",code:\"CLP\",symbol:\"$\"},{name:\"Yuan Renminbi\",code:\"CNY\",symbol:\"¥\"},{name:\"Colombian Peso\",code:\"COP\",symbol:\"$\"},{name:\"Costa Rican Colon\",code:\"CRC\",symbol:\"₡\"},{name:\"Cuban Peso\",code:\"CUP\",symbol:\"₱\"},{name:\"Cape Verde Escudo\",code:\"CVE\",symbol:\"\"},{name:\"Czech Koruna\",code:\"CZK\",symbol:\"Kč\"},{name:\"Djibouti Franc\",code:\"DJF\",symbol:\"\"},{name:\"Danish Krone\",code:\"DKK\",symbol:\"kr\"},{name:\"Dominican Peso\",code:\"DOP\",symbol:\"RD$\"},{name:\"Algerian Dinar\",code:\"DZD\",symbol:\"\"},{name:\"Egyptian Pound\",code:\"EGP\",symbol:\"£\"},{name:\"Nakfa\",code:\"ERN\",symbol:\"\"},{name:\"Ethiopian Birr\",code:\"ETB\",symbol:\"\"},{name:\"Euro\",code:\"EUR\",symbol:\"€\"},{name:\"Fiji Dollar\",code:\"FJD\",symbol:\"$\"},{name:\"Falkland Islands Pound\",code:\"FKP\",symbol:\"£\"},{name:\"Pound Sterling\",code:\"GBP\",symbol:\"£\"},{name:\"Lari\",code:\"GEL\",symbol:\"\"},{name:\"Cedi\",code:\"GHS\",symbol:\"\"},{name:\"Gibraltar Pound\",code:\"GIP\",symbol:\"£\"},{name:\"Dalasi\",code:\"GMD\",symbol:\"\"},{name:\"Guinea Franc\",code:\"GNF\",symbol:\"\"},{name:\"Quetzal\",code:\"GTQ\",symbol:\"Q\"},{name:\"Guyana Dollar\",code:\"GYD\",symbol:\"$\"},{name:\"Hong Kong Dollar\",code:\"HKD\",symbol:\"$\"},{name:\"Lempira\",code:\"HNL\",symbol:\"L\"},{name:\"Gourde\",code:\"HTG\",symbol:\"\"},{name:\"Forint\",code:\"HUF\",symbol:\"Ft\"},{name:\"Rupiah\",code:\"IDR\",symbol:\"Rp\"},{name:\"New Israeli Sheqel\",code:\"ILS\",symbol:\"₪\"},{name:\"Bhutanese Ngultrum\",code:\"BTN\",symbol:\"Nu\"},{name:\"Indian Rupee\",code:\"INR\",symbol:\"₹\"},{name:\"Iraqi Dinar\",code:\"IQD\",symbol:\"\"},{name:\"Iranian Rial\",code:\"IRR\",symbol:\"﷼\"},{name:\"Iceland Krona\",code:\"ISK\",symbol:\"kr\"},{name:\"Jamaican Dollar\",code:\"JMD\",symbol:\"J$\"},{name:\"Jordanian Dinar\",code:\"JOD\",symbol:\"\"},{name:\"Yen\",code:\"JPY\",symbol:\"¥\"},{name:\"Kenyan Shilling\",code:\"KES\",symbol:\"\"},{name:\"Som\",code:\"KGS\",symbol:\"лв\"},{name:\"Riel\",code:\"KHR\",symbol:\"៛\"},{name:\"Comoro Franc\",code:\"KMF\",symbol:\"\"},{name:\"North Korean Won\",code:\"KPW\",symbol:\"₩\"},{name:\"Won\",code:\"KRW\",symbol:\"₩\"},{name:\"Kuwaiti Dinar\",code:\"KWD\",symbol:\"\"},{name:\"Cayman Islands Dollar\",code:\"KYD\",symbol:\"$\"},{name:\"Tenge\",code:\"KZT\",symbol:\"лв\"},{name:\"Kip\",code:\"LAK\",symbol:\"₭\"},{name:\"Lebanese Pound\",code:\"LBP\",symbol:\"£\"},{name:\"Sri Lanka Rupee\",code:\"LKR\",symbol:\"₨\"},{name:\"Liberian Dollar\",code:\"LRD\",symbol:\"$\"},{name:\"Libyan Dinar\",code:\"LYD\",symbol:\"\"},{name:\"Moroccan Dirham\",code:\"MAD\",symbol:\"\"},{name:\"Moldovan Leu\",code:\"MDL\",symbol:\"\"},{name:\"Malagasy Ariary\",code:\"MGA\",symbol:\"\"},{name:\"Denar\",code:\"MKD\",symbol:\"ден\"},{name:\"Kyat\",code:\"MMK\",symbol:\"\"},{name:\"Tugrik\",code:\"MNT\",symbol:\"₮\"},{name:\"Pataca\",code:\"MOP\",symbol:\"\"},{name:\"Ouguiya\",code:\"MRU\",symbol:\"\"},{name:\"Mauritius Rupee\",code:\"MUR\",symbol:\"₨\"},{name:\"Rufiyaa\",code:\"MVR\",symbol:\"\"},{name:\"Kwacha\",code:\"MWK\",symbol:\"\"},{name:\"Mexican Peso\",code:\"MXN\",symbol:\"$\"},{name:\"Malaysian Ringgit\",code:\"MYR\",symbol:\"RM\"},{name:\"Metical\",code:\"MZN\",symbol:\"MT\"},{name:\"Naira\",code:\"NGN\",symbol:\"₦\"},{name:\"Cordoba Oro\",code:\"NIO\",symbol:\"C$\"},{name:\"Norwegian Krone\",code:\"NOK\",symbol:\"kr\"},{name:\"Nepalese Rupee\",code:\"NPR\",symbol:\"₨\"},{name:\"New Zealand Dollar\",code:\"NZD\",symbol:\"$\"},{name:\"Rial Omani\",code:\"OMR\",symbol:\"﷼\"},{name:\"Balboa\",code:\"PAB\",symbol:\"B/.\"},{name:\"Nuevo Sol\",code:\"PEN\",symbol:\"S/.\"},{name:\"Kina\",code:\"PGK\",symbol:\"\"},{name:\"Philippine Peso\",code:\"PHP\",symbol:\"Php\"},{name:\"Pakistan Rupee\",code:\"PKR\",symbol:\"₨\"},{name:\"Zloty\",code:\"PLN\",symbol:\"zł\"},{name:\"Guarani\",code:\"PYG\",symbol:\"Gs\"},{name:\"Qatari Rial\",code:\"QAR\",symbol:\"﷼\"},{name:\"New Leu\",code:\"RON\",symbol:\"lei\"},{name:\"Serbian Dinar\",code:\"RSD\",symbol:\"Дин.\"},{name:\"Russian Ruble\",code:\"RUB\",symbol:\"руб\"},{name:\"Rwanda Franc\",code:\"RWF\",symbol:\"\"},{name:\"Saudi Riyal\",code:\"SAR\",symbol:\"﷼\"},{name:\"Solomon Islands Dollar\",code:\"SBD\",symbol:\"$\"},{name:\"Seychelles Rupee\",code:\"SCR\",symbol:\"₨\"},{name:\"Sudanese Pound\",code:\"SDG\",symbol:\"\"},{name:\"Swedish Krona\",code:\"SEK\",symbol:\"kr\"},{name:\"Singapore Dollar\",code:\"SGD\",symbol:\"$\"},{name:\"Saint Helena Pound\",code:\"SHP\",symbol:\"£\"},{name:\"Leone\",code:\"SLE\",symbol:\"\"},{name:\"Somali Shilling\",code:\"SOS\",symbol:\"S\"},{name:\"Surinam Dollar\",code:\"SRD\",symbol:\"$\"},{name:\"South Sudanese pound\",code:\"SSP\",symbol:\"\"},{name:\"Dobra\",code:\"STN\",symbol:\"Db\"},{name:\"Syrian Pound\",code:\"SYP\",symbol:\"£\"},{name:\"Lilangeni\",code:\"SZL\",symbol:\"\"},{name:\"Baht\",code:\"THB\",symbol:\"฿\"},{name:\"Somoni\",code:\"TJS\",symbol:\"\"},{name:\"Manat\",code:\"TMT\",symbol:\"\"},{name:\"Tunisian Dinar\",code:\"TND\",symbol:\"\"},{name:\"Pa'anga\",code:\"TOP\",symbol:\"\"},{name:\"Turkish Lira\",code:\"TRY\",symbol:\"₺\"},{name:\"Trinidad and Tobago Dollar\",code:\"TTD\",symbol:\"TT$\"},{name:\"New Taiwan Dollar\",code:\"TWD\",symbol:\"NT$\"},{name:\"Tanzanian Shilling\",code:\"TZS\",symbol:\"\"},{name:\"Hryvnia\",code:\"UAH\",symbol:\"₴\"},{name:\"Uganda Shilling\",code:\"UGX\",symbol:\"\"},{name:\"US Dollar\",code:\"USD\",symbol:\"$\"},{name:\"Peso Uruguayo\",code:\"UYU\",symbol:\"$U\"},{name:\"Uzbekistan Sum\",code:\"UZS\",symbol:\"лв\"},{name:\"Venezuelan bolívar\",code:\"VES\",symbol:\"Bs\"},{name:\"Dong\",code:\"VND\",symbol:\"₫\"},{name:\"Vatu\",code:\"VUV\",symbol:\"\"},{name:\"Tala\",code:\"WST\",symbol:\"\"},{name:\"CFA Franc BEAC\",code:\"XAF\",symbol:\"\"},{name:\"East Caribbean Dollar\",code:\"XCD\",symbol:\"$\"},{name:\"CFA Franc BCEAO\",code:\"XOF\",symbol:\"\"},{name:\"CFP Franc\",code:\"XPF\",symbol:\"\"},{name:\"Yemeni Rial\",code:\"YER\",symbol:\"﷼\"},{name:\"Rand\",code:\"ZAR\",symbol:\"R\"},{name:\"Lesotho Loti\",code:\"LSL\",symbol:\"\"},{name:\"Namibia Dollar\",code:\"NAD\",symbol:\"N$\"},{name:\"Zambian Kwacha\",code:\"ZMW\",symbol:\"K\"},{name:\"Zimbabwe Dollar\",code:\"ZWL\",symbol:\"\"}],jGe=[\"deposit\",\"withdrawal\",\"payment\",\"invoice\"],zGe={account_type:TGe,credit_card:$Ge,currency:LGe,transaction_type:jGe},HGe=zGe,VGe=[\"auxiliary\",\"primary\",\"back-end\",\"digital\",\"open-source\",\"virtual\",\"cross-platform\",\"redundant\",\"online\",\"haptic\",\"multi-byte\",\"bluetooth\",\"wireless\",\"1080p\",\"neural\",\"optical\",\"solid state\",\"mobile\"],WGe=[\"backing up\",\"bypassing\",\"hacking\",\"overriding\",\"compressing\",\"copying\",\"navigating\",\"indexing\",\"connecting\",\"generating\",\"quantifying\",\"calculating\",\"synthesizing\",\"transmitting\",\"programming\",\"parsing\"],GGe=[\"driver\",\"protocol\",\"bandwidth\",\"panel\",\"microchip\",\"program\",\"port\",\"card\",\"array\",\"interface\",\"system\",\"sensor\",\"firewall\",\"hard drive\",\"pixel\",\"alarm\",\"feed\",\"monitor\",\"application\",\"transmitter\",\"bus\",\"circuit\",\"capacitor\",\"matrix\"],UGe=[\"If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!\",\"We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!\",\"Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!\",\"You can't {{verb}} the {{noun}} without {{ingverb}} the {{adjective}} {{abbreviation}} {{noun}}!\",\"Use the {{adjective}} {{abbreviation}} {{noun}}, then you can {{verb}} the {{adjective}} {{noun}}!\",\"The {{abbreviation}} {{noun}} is down, {{verb}} the {{adjective}} {{noun}} so we can {{verb}} the {{abbreviation}} {{noun}}!\",\"{{ingverb}} the {{noun}} won't do anything, we need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!\",\"I'll {{verb}} the {{adjective}} {{abbreviation}} {{noun}}, that should {{noun}} the {{abbreviation}} {{noun}}!\"],KGe=[\"back up\",\"bypass\",\"hack\",\"override\",\"compress\",\"copy\",\"navigate\",\"index\",\"connect\",\"generate\",\"quantify\",\"calculate\",\"synthesize\",\"input\",\"transmit\",\"program\",\"reboot\",\"parse\"],YGe={adjective:VGe,ingverb:WGe,noun:GGe,phrase:UGe,verb:KGe},qGe=YGe,XGe=[\"com\",\"biz\",\"info\",\"name\",\"net\",\"org\"],JGe=[\"example.org\",\"example.com\",\"example.net\"],ZGe=[\"gmail.com\",\"yahoo.com\",\"hotmail.com\"],QGe={domain_suffix:XGe,example_email:JGe,free_email:ZGe},eUe=QGe,tUe=[\"#####\",\"####\",\"###\"],rUe=[\"Abilene\",\"Akron\",\"Alafaya\",\"Alameda\",\"Albany\",\"Albuquerque\",\"Alexandria\",\"Alhambra\",\"Aliso Viejo\",\"Allen\",\"Allentown\",\"Aloha\",\"Alpharetta\",\"Altadena\",\"Altamonte Springs\",\"Altoona\",\"Amarillo\",\"Ames\",\"Anaheim\",\"Anchorage\",\"Anderson\",\"Ankeny\",\"Ann Arbor\",\"Annandale\",\"Antelope\",\"Antioch\",\"Apex\",\"Apopka\",\"Apple Valley\",\"Appleton\",\"Arcadia\",\"Arden-Arcade\",\"Arecibo\",\"Arlington\",\"Arlington Heights\",\"Arvada\",\"Ashburn\",\"Asheville\",\"Aspen Hill\",\"Atascocita\",\"Athens-Clarke County\",\"Atlanta\",\"Attleboro\",\"Auburn\",\"Augusta-Richmond County\",\"Aurora\",\"Austin\",\"Avondale\",\"Azusa\",\"Bakersfield\",\"Baldwin Park\",\"Baltimore\",\"Barnstable Town\",\"Bartlett\",\"Baton Rouge\",\"Battle Creek\",\"Bayamon\",\"Bayonne\",\"Baytown\",\"Beaumont\",\"Beavercreek\",\"Beaverton\",\"Bedford\",\"Bel Air South\",\"Bell Gardens\",\"Belleville\",\"Bellevue\",\"Bellflower\",\"Bellingham\",\"Bend\",\"Bentonville\",\"Berkeley\",\"Berwyn\",\"Bethesda\",\"Bethlehem\",\"Billings\",\"Biloxi\",\"Binghamton\",\"Birmingham\",\"Bismarck\",\"Blacksburg\",\"Blaine\",\"Bloomington\",\"Blue Springs\",\"Boca Raton\",\"Boise City\",\"Bolingbrook\",\"Bonita Springs\",\"Bossier City\",\"Boston\",\"Bothell\",\"Boulder\",\"Bountiful\",\"Bowie\",\"Bowling Green\",\"Boynton Beach\",\"Bozeman\",\"Bradenton\",\"Brandon\",\"Brentwood\",\"Bridgeport\",\"Bristol\",\"Brockton\",\"Broken Arrow\",\"Brookhaven\",\"Brookline\",\"Brooklyn Park\",\"Broomfield\",\"Brownsville\",\"Bryan\",\"Buckeye\",\"Buena Park\",\"Buffalo\",\"Buffalo Grove\",\"Burbank\",\"Burien\",\"Burke\",\"Burleson\",\"Burlington\",\"Burnsville\",\"Caguas\",\"Caldwell\",\"Camarillo\",\"Cambridge\",\"Camden\",\"Canton\",\"Cape Coral\",\"Carlsbad\",\"Carmel\",\"Carmichael\",\"Carolina\",\"Carrollton\",\"Carson\",\"Carson City\",\"Cary\",\"Casa Grande\",\"Casas Adobes\",\"Casper\",\"Castle Rock\",\"Castro Valley\",\"Catalina Foothills\",\"Cathedral City\",\"Catonsville\",\"Cedar Hill\",\"Cedar Park\",\"Cedar Rapids\",\"Centennial\",\"Centreville\",\"Ceres\",\"Cerritos\",\"Champaign\",\"Chandler\",\"Chapel Hill\",\"Charleston\",\"Charlotte\",\"Charlottesville\",\"Chattanooga\",\"Cheektowaga\",\"Chesapeake\",\"Chesterfield\",\"Cheyenne\",\"Chicago\",\"Chico\",\"Chicopee\",\"Chino\",\"Chino Hills\",\"Chula Vista\",\"Cicero\",\"Cincinnati\",\"Citrus Heights\",\"Clarksville\",\"Clearwater\",\"Cleveland\",\"Cleveland Heights\",\"Clifton\",\"Clovis\",\"Coachella\",\"Coconut Creek\",\"Coeur d'Alene\",\"College Station\",\"Collierville\",\"Colorado Springs\",\"Colton\",\"Columbia\",\"Columbus\",\"Commerce City\",\"Compton\",\"Concord\",\"Conroe\",\"Conway\",\"Coon Rapids\",\"Coral Gables\",\"Coral Springs\",\"Corona\",\"Corpus Christi\",\"Corvallis\",\"Costa Mesa\",\"Council Bluffs\",\"Country Club\",\"Covina\",\"Cranston\",\"Cupertino\",\"Cutler Bay\",\"Cuyahoga Falls\",\"Cypress\",\"Dale City\",\"Dallas\",\"Daly City\",\"Danbury\",\"Danville\",\"Davenport\",\"Davie\",\"Davis\",\"Dayton\",\"Daytona Beach\",\"DeKalb\",\"DeSoto\",\"Dearborn\",\"Dearborn Heights\",\"Decatur\",\"Deerfield Beach\",\"Delano\",\"Delray Beach\",\"Deltona\",\"Denton\",\"Denver\",\"Des Moines\",\"Des Plaines\",\"Detroit\",\"Diamond Bar\",\"Doral\",\"Dothan\",\"Downers Grove\",\"Downey\",\"Draper\",\"Dublin\",\"Dubuque\",\"Duluth\",\"Dundalk\",\"Dunwoody\",\"Durham\",\"Eagan\",\"East Hartford\",\"East Honolulu\",\"East Lansing\",\"East Los Angeles\",\"East Orange\",\"East Providence\",\"Eastvale\",\"Eau Claire\",\"Eden Prairie\",\"Edina\",\"Edinburg\",\"Edmond\",\"El Cajon\",\"El Centro\",\"El Dorado Hills\",\"El Monte\",\"El Paso\",\"Elgin\",\"Elizabeth\",\"Elk Grove\",\"Elkhart\",\"Ellicott City\",\"Elmhurst\",\"Elyria\",\"Encinitas\",\"Enid\",\"Enterprise\",\"Erie\",\"Escondido\",\"Euclid\",\"Eugene\",\"Euless\",\"Evanston\",\"Evansville\",\"Everett\",\"Fairfield\",\"Fall River\",\"Fargo\",\"Farmington\",\"Farmington Hills\",\"Fayetteville\",\"Federal Way\",\"Findlay\",\"Fishers\",\"Flagstaff\",\"Flint\",\"Florence-Graham\",\"Florin\",\"Florissant\",\"Flower Mound\",\"Folsom\",\"Fond du Lac\",\"Fontana\",\"Fort Collins\",\"Fort Lauderdale\",\"Fort Myers\",\"Fort Pierce\",\"Fort Smith\",\"Fort Wayne\",\"Fort Worth\",\"Fountain Valley\",\"Fountainebleau\",\"Framingham\",\"Franklin\",\"Frederick\",\"Freeport\",\"Fremont\",\"Fresno\",\"Frisco\",\"Fullerton\",\"Gainesville\",\"Gaithersburg\",\"Galveston\",\"Garden Grove\",\"Gardena\",\"Garland\",\"Gary\",\"Gastonia\",\"Georgetown\",\"Germantown\",\"Gilbert\",\"Gilroy\",\"Glen Burnie\",\"Glendale\",\"Glendora\",\"Glenview\",\"Goodyear\",\"Grand Forks\",\"Grand Island\",\"Grand Junction\",\"Grand Prairie\",\"Grand Rapids\",\"Grapevine\",\"Great Falls\",\"Greeley\",\"Green Bay\",\"Greensboro\",\"Greenville\",\"Greenwood\",\"Gresham\",\"Guaynabo\",\"Gulfport\",\"Hacienda Heights\",\"Hackensack\",\"Haltom City\",\"Hamilton\",\"Hammond\",\"Hampton\",\"Hanford\",\"Harlingen\",\"Harrisburg\",\"Harrisonburg\",\"Hartford\",\"Hattiesburg\",\"Haverhill\",\"Hawthorne\",\"Hayward\",\"Hemet\",\"Hempstead\",\"Henderson\",\"Hendersonville\",\"Hesperia\",\"Hialeah\",\"Hicksville\",\"High Point\",\"Highland\",\"Highlands Ranch\",\"Hillsboro\",\"Hilo\",\"Hoboken\",\"Hoffman Estates\",\"Hollywood\",\"Homestead\",\"Honolulu\",\"Hoover\",\"Houston\",\"Huntersville\",\"Huntington\",\"Huntington Beach\",\"Huntington Park\",\"Huntsville\",\"Hutchinson\",\"Idaho Falls\",\"Independence\",\"Indianapolis\",\"Indio\",\"Inglewood\",\"Iowa City\",\"Irondequoit\",\"Irvine\",\"Irving\",\"Jackson\",\"Jacksonville\",\"Janesville\",\"Jefferson City\",\"Jeffersonville\",\"Jersey City\",\"Johns Creek\",\"Johnson City\",\"Joliet\",\"Jonesboro\",\"Joplin\",\"Jupiter\",\"Jurupa Valley\",\"Kalamazoo\",\"Kannapolis\",\"Kansas City\",\"Kearny\",\"Keller\",\"Kendale Lakes\",\"Kendall\",\"Kenner\",\"Kennewick\",\"Kenosha\",\"Kent\",\"Kentwood\",\"Kettering\",\"Killeen\",\"Kingsport\",\"Kirkland\",\"Kissimmee\",\"Knoxville\",\"Kokomo\",\"La Crosse\",\"La Habra\",\"La Mesa\",\"La Mirada\",\"Lacey\",\"Lafayette\",\"Laguna Niguel\",\"Lake Charles\",\"Lake Elsinore\",\"Lake Forest\",\"Lake Havasu City\",\"Lake Ridge\",\"Lakeland\",\"Lakeville\",\"Lakewood\",\"Lancaster\",\"Lansing\",\"Laredo\",\"Largo\",\"Las Cruces\",\"Las Vegas\",\"Lauderhill\",\"Lawrence\",\"Lawton\",\"Layton\",\"League City\",\"Lee's Summit\",\"Leesburg\",\"Lehi\",\"Lehigh Acres\",\"Lenexa\",\"Levittown\",\"Lewisville\",\"Lexington-Fayette\",\"Lincoln\",\"Linden\",\"Little Rock\",\"Littleton\",\"Livermore\",\"Livonia\",\"Lodi\",\"Logan\",\"Lombard\",\"Lompoc\",\"Long Beach\",\"Longmont\",\"Longview\",\"Lorain\",\"Los Angeles\",\"Louisville/Jefferson County\",\"Loveland\",\"Lowell\",\"Lubbock\",\"Lynchburg\",\"Lynn\",\"Lynwood\",\"Macon-Bibb County\",\"Madera\",\"Madison\",\"Malden\",\"Manchester\",\"Manhattan\",\"Mansfield\",\"Manteca\",\"Maple Grove\",\"Margate\",\"Maricopa\",\"Marietta\",\"Marysville\",\"Mayaguez\",\"McAllen\",\"McKinney\",\"McLean\",\"Medford\",\"Melbourne\",\"Memphis\",\"Menifee\",\"Mentor\",\"Merced\",\"Meriden\",\"Meridian\",\"Mesa\",\"Mesquite\",\"Metairie\",\"Methuen Town\",\"Miami\",\"Miami Beach\",\"Miami Gardens\",\"Middletown\",\"Midland\",\"Midwest City\",\"Milford\",\"Millcreek\",\"Milpitas\",\"Milwaukee\",\"Minneapolis\",\"Minnetonka\",\"Minot\",\"Miramar\",\"Mishawaka\",\"Mission\",\"Mission Viejo\",\"Missoula\",\"Missouri City\",\"Mobile\",\"Modesto\",\"Moline\",\"Monroe\",\"Montebello\",\"Monterey Park\",\"Montgomery\",\"Moore\",\"Moreno Valley\",\"Morgan Hill\",\"Mount Pleasant\",\"Mount Prospect\",\"Mount Vernon\",\"Mountain View\",\"Muncie\",\"Murfreesboro\",\"Murray\",\"Murrieta\",\"Nampa\",\"Napa\",\"Naperville\",\"Nashua\",\"Nashville-Davidson\",\"National City\",\"New Bedford\",\"New Braunfels\",\"New Britain\",\"New Brunswick\",\"New Haven\",\"New Orleans\",\"New Rochelle\",\"New York\",\"Newark\",\"Newport Beach\",\"Newport News\",\"Newton\",\"Niagara Falls\",\"Noblesville\",\"Norfolk\",\"Normal\",\"Norman\",\"North Bethesda\",\"North Charleston\",\"North Highlands\",\"North Las Vegas\",\"North Lauderdale\",\"North Little Rock\",\"North Miami\",\"North Miami Beach\",\"North Port\",\"North Richland Hills\",\"Norwalk\",\"Novato\",\"Novi\",\"O'Fallon\",\"Oak Lawn\",\"Oak Park\",\"Oakland\",\"Oakland Park\",\"Ocala\",\"Oceanside\",\"Odessa\",\"Ogden\",\"Oklahoma City\",\"Olathe\",\"Olympia\",\"Omaha\",\"Ontario\",\"Orange\",\"Orem\",\"Orland Park\",\"Orlando\",\"Oro Valley\",\"Oshkosh\",\"Overland Park\",\"Owensboro\",\"Oxnard\",\"Palatine\",\"Palm Bay\",\"Palm Beach Gardens\",\"Palm Coast\",\"Palm Desert\",\"Palm Harbor\",\"Palm Springs\",\"Palmdale\",\"Palo Alto\",\"Paradise\",\"Paramount\",\"Parker\",\"Parma\",\"Pasadena\",\"Pasco\",\"Passaic\",\"Paterson\",\"Pawtucket\",\"Peabody\",\"Pearl City\",\"Pearland\",\"Pembroke Pines\",\"Pensacola\",\"Peoria\",\"Perris\",\"Perth Amboy\",\"Petaluma\",\"Pflugerville\",\"Pharr\",\"Philadelphia\",\"Phoenix\",\"Pico Rivera\",\"Pine Bluff\",\"Pine Hills\",\"Pinellas Park\",\"Pittsburg\",\"Pittsburgh\",\"Pittsfield\",\"Placentia\",\"Plainfield\",\"Plano\",\"Plantation\",\"Pleasanton\",\"Plymouth\",\"Pocatello\",\"Poinciana\",\"Pomona\",\"Pompano Beach\",\"Ponce\",\"Pontiac\",\"Port Arthur\",\"Port Charlotte\",\"Port Orange\",\"Port St. Lucie\",\"Portage\",\"Porterville\",\"Portland\",\"Portsmouth\",\"Potomac\",\"Poway\",\"Providence\",\"Provo\",\"Pueblo\",\"Quincy\",\"Racine\",\"Raleigh\",\"Rancho Cordova\",\"Rancho Cucamonga\",\"Rancho Palos Verdes\",\"Rancho Santa Margarita\",\"Rapid City\",\"Reading\",\"Redding\",\"Redlands\",\"Redmond\",\"Redondo Beach\",\"Redwood City\",\"Reno\",\"Renton\",\"Reston\",\"Revere\",\"Rialto\",\"Richardson\",\"Richland\",\"Richmond\",\"Rio Rancho\",\"Riverside\",\"Riverton\",\"Riverview\",\"Roanoke\",\"Rochester\",\"Rochester Hills\",\"Rock Hill\",\"Rockford\",\"Rocklin\",\"Rockville\",\"Rockwall\",\"Rocky Mount\",\"Rogers\",\"Rohnert Park\",\"Rosemead\",\"Roseville\",\"Roswell\",\"Round Rock\",\"Rowland Heights\",\"Rowlett\",\"Royal Oak\",\"Sacramento\",\"Saginaw\",\"Salem\",\"Salina\",\"Salinas\",\"Salt Lake City\",\"Sammamish\",\"San Angelo\",\"San Antonio\",\"San Bernardino\",\"San Bruno\",\"San Buenaventura (Ventura)\",\"San Clemente\",\"San Diego\",\"San Francisco\",\"San Jacinto\",\"San Jose\",\"San Juan\",\"San Leandro\",\"San Luis Obispo\",\"San Marcos\",\"San Mateo\",\"San Rafael\",\"San Ramon\",\"San Tan Valley\",\"Sandy\",\"Sandy Springs\",\"Sanford\",\"Santa Ana\",\"Santa Barbara\",\"Santa Clara\",\"Santa Clarita\",\"Santa Cruz\",\"Santa Fe\",\"Santa Maria\",\"Santa Monica\",\"Santa Rosa\",\"Santee\",\"Sarasota\",\"Savannah\",\"Sayreville\",\"Schaumburg\",\"Schenectady\",\"Scottsdale\",\"Scranton\",\"Seattle\",\"Severn\",\"Shawnee\",\"Sheboygan\",\"Shoreline\",\"Shreveport\",\"Sierra Vista\",\"Silver Spring\",\"Simi Valley\",\"Sioux City\",\"Sioux Falls\",\"Skokie\",\"Smyrna\",\"Somerville\",\"South Bend\",\"South Gate\",\"South Hill\",\"South Jordan\",\"South San Francisco\",\"South Valley\",\"South Whittier\",\"Southaven\",\"Southfield\",\"Sparks\",\"Spokane\",\"Spokane Valley\",\"Spring\",\"Spring Hill\",\"Spring Valley\",\"Springdale\",\"Springfield\",\"St. Charles\",\"St. Clair Shores\",\"St. Cloud\",\"St. George\",\"St. Joseph\",\"St. Louis\",\"St. Louis Park\",\"St. Paul\",\"St. Peters\",\"St. Petersburg\",\"Stamford\",\"State College\",\"Sterling Heights\",\"Stillwater\",\"Stockton\",\"Stratford\",\"Strongsville\",\"Suffolk\",\"Sugar Land\",\"Summerville\",\"Sunnyvale\",\"Sunrise\",\"Sunrise Manor\",\"Surprise\",\"Syracuse\",\"Tacoma\",\"Tallahassee\",\"Tamarac\",\"Tamiami\",\"Tampa\",\"Taunton\",\"Taylor\",\"Taylorsville\",\"Temecula\",\"Tempe\",\"Temple\",\"Terre Haute\",\"Texas City\",\"The Hammocks\",\"The Villages\",\"The Woodlands\",\"Thornton\",\"Thousand Oaks\",\"Tigard\",\"Tinley Park\",\"Titusville\",\"Toledo\",\"Toms River\",\"Tonawanda\",\"Topeka\",\"Torrance\",\"Town 'n' Country\",\"Towson\",\"Tracy\",\"Trenton\",\"Troy\",\"Trujillo Alto\",\"Tuckahoe\",\"Tucson\",\"Tulare\",\"Tulsa\",\"Turlock\",\"Tuscaloosa\",\"Tustin\",\"Twin Falls\",\"Tyler\",\"Union City\",\"University\",\"Upland\",\"Urbana\",\"Urbandale\",\"Utica\",\"Vacaville\",\"Valdosta\",\"Vallejo\",\"Vancouver\",\"Victoria\",\"Victorville\",\"Vineland\",\"Virginia Beach\",\"Visalia\",\"Vista\",\"Waco\",\"Waipahu\",\"Waldorf\",\"Walnut Creek\",\"Waltham\",\"Warner Robins\",\"Warren\",\"Warwick\",\"Washington\",\"Waterbury\",\"Waterloo\",\"Watsonville\",\"Waukegan\",\"Waukesha\",\"Wauwatosa\",\"Wellington\",\"Wesley Chapel\",\"West Allis\",\"West Babylon\",\"West Covina\",\"West Des Moines\",\"West Hartford\",\"West Haven\",\"West Jordan\",\"West Lafayette\",\"West New York\",\"West Palm Beach\",\"West Sacramento\",\"West Seneca\",\"West Valley City\",\"Westfield\",\"Westland\",\"Westminster\",\"Weston\",\"Weymouth Town\",\"Wheaton\",\"White Plains\",\"Whittier\",\"Wichita\",\"Wichita Falls\",\"Wilmington\",\"Wilson\",\"Winston-Salem\",\"Woodbury\",\"Woodland\",\"Worcester\",\"Wylie\",\"Wyoming\",\"Yakima\",\"Yonkers\",\"Yorba Linda\",\"York\",\"Youngstown\",\"Yuba City\",\"Yucaipa\",\"Yuma\"],nUe=[\"{{location.city_prefix}} {{person.first_name}}{{location.city_suffix}}\",\"{{location.city_prefix}} {{person.first_name}}\",\"{{person.first_name}}{{location.city_suffix}}\",\"{{person.last_name}}{{location.city_suffix}}\",\"{{location.city_name}}\"],aUe=[\"North\",\"East\",\"West\",\"South\",\"New\",\"Lake\",\"Port\",\"Fort\"],iUe=[\"town\",\"ton\",\"land\",\"ville\",\"berg\",\"burgh\",\"boro\",\"borough\",\"bury\",\"view\",\"port\",\"mouth\",\"stad\",\"stead\",\"furt\",\"chester\",\"cester\",\"fort\",\"field\",\"haven\",\"side\",\"shire\",\"worth\"],oUe=[\"Afghanistan\",\"Aland Islands\",\"Albania\",\"Algeria\",\"American Samoa\",\"Andorra\",\"Angola\",\"Anguilla\",\"Antarctica\",\"Antigua and Barbuda\",\"Argentina\",\"Armenia\",\"Aruba\",\"Australia\",\"Austria\",\"Azerbaijan\",\"Bahamas\",\"Bahrain\",\"Bangladesh\",\"Barbados\",\"Belarus\",\"Belgium\",\"Belize\",\"Benin\",\"Bermuda\",\"Bhutan\",\"Bolivia\",\"Bonaire, Sint Eustatius and Saba\",\"Bosnia and Herzegovina\",\"Botswana\",\"Bouvet Island\",\"Brazil\",\"British Indian Ocean Territory (Chagos Archipelago)\",\"Brunei Darussalam\",\"Bulgaria\",\"Burkina Faso\",\"Burundi\",\"Cambodia\",\"Cameroon\",\"Canada\",\"Cape Verde\",\"Cayman Islands\",\"Central African Republic\",\"Chad\",\"Chile\",\"China\",\"Christmas Island\",\"Cocos (Keeling) Islands\",\"Colombia\",\"Comoros\",\"Congo\",\"Cook Islands\",\"Costa Rica\",\"Cote d'Ivoire\",\"Croatia\",\"Cuba\",\"Curacao\",\"Cyprus\",\"Czechia\",\"Democratic Republic of the Congo\",\"Denmark\",\"Djibouti\",\"Dominica\",\"Dominican Republic\",\"Ecuador\",\"Egypt\",\"El Salvador\",\"Equatorial Guinea\",\"Eritrea\",\"Estonia\",\"Eswatini\",\"Ethiopia\",\"Faroe Islands\",\"Falkland Islands (Malvinas)\",\"Fiji\",\"Finland\",\"France\",\"French Guiana\",\"French Polynesia\",\"French Southern Territories\",\"Gabon\",\"Gambia\",\"Georgia\",\"Germany\",\"Ghana\",\"Gibraltar\",\"Greece\",\"Greenland\",\"Grenada\",\"Guadeloupe\",\"Guam\",\"Guatemala\",\"Guernsey\",\"Guinea\",\"Guinea-Bissau\",\"Guyana\",\"Haiti\",\"Heard Island and McDonald Islands\",\"Holy See (Vatican City State)\",\"Honduras\",\"Hong Kong\",\"Hungary\",\"Iceland\",\"India\",\"Indonesia\",\"Iran\",\"Iraq\",\"Ireland\",\"Isle of Man\",\"Israel\",\"Italy\",\"Jamaica\",\"Japan\",\"Jersey\",\"Jordan\",\"Kazakhstan\",\"Kenya\",\"Kiribati\",\"Democratic People's Republic of Korea\",\"Republic of Korea\",\"Kuwait\",\"Kyrgyz Republic\",\"Lao People's Democratic Republic\",\"Latvia\",\"Lebanon\",\"Lesotho\",\"Liberia\",\"Libyan Arab Jamahiriya\",\"Liechtenstein\",\"Lithuania\",\"Luxembourg\",\"Macao\",\"Madagascar\",\"Malawi\",\"Malaysia\",\"Maldives\",\"Mali\",\"Malta\",\"Marshall Islands\",\"Martinique\",\"Mauritania\",\"Mauritius\",\"Mayotte\",\"Mexico\",\"Micronesia\",\"Moldova\",\"Monaco\",\"Mongolia\",\"Montenegro\",\"Montserrat\",\"Morocco\",\"Mozambique\",\"Myanmar\",\"Namibia\",\"Nauru\",\"Nepal\",\"Netherlands\",\"New Caledonia\",\"New Zealand\",\"Nicaragua\",\"Niger\",\"Nigeria\",\"Niue\",\"Norfolk Island\",\"North Macedonia\",\"Northern Mariana Islands\",\"Norway\",\"Oman\",\"Pakistan\",\"Palau\",\"Palestine\",\"Panama\",\"Papua New Guinea\",\"Paraguay\",\"Peru\",\"Philippines\",\"Pitcairn Islands\",\"Poland\",\"Portugal\",\"Puerto Rico\",\"Qatar\",\"Reunion\",\"Romania\",\"Russian Federation\",\"Rwanda\",\"Saint Barthelemy\",\"Saint Helena\",\"Saint Kitts and Nevis\",\"Saint Lucia\",\"Saint Martin\",\"Saint Pierre and Miquelon\",\"Saint Vincent and the Grenadines\",\"Samoa\",\"San Marino\",\"Sao Tome and Principe\",\"Saudi Arabia\",\"Senegal\",\"Serbia\",\"Seychelles\",\"Sierra Leone\",\"Singapore\",\"Sint Maarten\",\"Slovakia\",\"Slovenia\",\"Solomon Islands\",\"Somalia\",\"South Africa\",\"South Georgia and the South Sandwich Islands\",\"South Sudan\",\"Spain\",\"Sri Lanka\",\"Sudan\",\"Suriname\",\"Svalbard & Jan Mayen Islands\",\"Sweden\",\"Switzerland\",\"Syrian Arab Republic\",\"Taiwan\",\"Tajikistan\",\"Tanzania\",\"Thailand\",\"Timor-Leste\",\"Togo\",\"Tokelau\",\"Tonga\",\"Trinidad and Tobago\",\"Tunisia\",\"Turkey\",\"Turkmenistan\",\"Turks and Caicos Islands\",\"Tuvalu\",\"Uganda\",\"Ukraine\",\"United Arab Emirates\",\"United Kingdom\",\"United States of America\",\"United States Minor Outlying Islands\",\"Uruguay\",\"Uzbekistan\",\"Vanuatu\",\"Venezuela\",\"Vietnam\",\"Virgin Islands, British\",\"Virgin Islands, U.S.\",\"Wallis and Futuna\",\"Western Sahara\",\"Yemen\",\"Zambia\",\"Zimbabwe\"],lUe=[\"Adams County\",\"Calhoun County\",\"Carroll County\",\"Clark County\",\"Clay County\",\"Crawford County\",\"Douglas County\",\"Fayette County\",\"Franklin County\",\"Grant County\",\"Greene County\",\"Hamilton County\",\"Hancock County\",\"Henry County\",\"Jackson County\",\"Jefferson County\",\"Johnson County\",\"Lake County\",\"Lawrence County\",\"Lee County\",\"Lincoln County\",\"Logan County\",\"Madison County\",\"Marion County\",\"Marshall County\",\"Monroe County\",\"Montgomery County\",\"Morgan County\",\"Perry County\",\"Pike County\",\"Polk County\",\"Scott County\",\"Union County\",\"Warren County\",\"Washington County\",\"Wayne County\",\"Avon\",\"Bedfordshire\",\"Berkshire\",\"Borders\",\"Buckinghamshire\",\"Cambridgeshire\",\"Central\",\"Cheshire\",\"Cleveland\",\"Clwyd\",\"Cornwall\",\"County Antrim\",\"County Armagh\",\"County Down\",\"County Fermanagh\",\"County Londonderry\",\"County Tyrone\",\"Cumbria\",\"Derbyshire\",\"Devon\",\"Dorset\",\"Dumfries and Galloway\",\"Durham\",\"Dyfed\",\"East Sussex\",\"Essex\",\"Fife\",\"Gloucestershire\",\"Grampian\",\"Greater Manchester\",\"Gwent\",\"Gwynedd County\",\"Hampshire\",\"Herefordshire\",\"Hertfordshire\",\"Highlands and Islands\",\"Humberside\",\"Isle of Wight\",\"Kent\",\"Lancashire\",\"Leicestershire\",\"Lincolnshire\",\"Lothian\",\"Merseyside\",\"Mid Glamorgan\",\"Norfolk\",\"North Yorkshire\",\"Northamptonshire\",\"Northumberland\",\"Nottinghamshire\",\"Oxfordshire\",\"Powys\",\"Rutland\",\"Shropshire\",\"Somerset\",\"South Glamorgan\",\"South Yorkshire\",\"Staffordshire\",\"Strathclyde\",\"Suffolk\",\"Surrey\",\"Tayside\",\"Tyne and Wear\",\"Warwickshire\",\"West Glamorgan\",\"West Midlands\",\"West Sussex\",\"West Yorkshire\",\"Wiltshire\",\"Worcestershire\"],sUe=[\"United States of America\"],uUe=[\"North\",\"East\",\"South\",\"West\",\"Northeast\",\"Northwest\",\"Southeast\",\"Southwest\"],cUe=[\"N\",\"E\",\"S\",\"W\",\"NE\",\"NW\",\"SE\",\"SW\"],dUe=[\"#####\",\"#####-####\"],fUe=[\"Apt. ###\",\"Suite ###\"],hUe=[\"Alabama\",\"Alaska\",\"Arizona\",\"Arkansas\",\"California\",\"Colorado\",\"Connecticut\",\"Delaware\",\"Florida\",\"Georgia\",\"Hawaii\",\"Idaho\",\"Illinois\",\"Indiana\",\"Iowa\",\"Kansas\",\"Kentucky\",\"Louisiana\",\"Maine\",\"Maryland\",\"Massachusetts\",\"Michigan\",\"Minnesota\",\"Mississippi\",\"Missouri\",\"Montana\",\"Nebraska\",\"Nevada\",\"New Hampshire\",\"New Jersey\",\"New Mexico\",\"New York\",\"North Carolina\",\"North Dakota\",\"Ohio\",\"Oklahoma\",\"Oregon\",\"Pennsylvania\",\"Rhode Island\",\"South Carolina\",\"South Dakota\",\"Tennessee\",\"Texas\",\"Utah\",\"Vermont\",\"Virginia\",\"Washington\",\"West Virginia\",\"Wisconsin\",\"Wyoming\"],pUe=[\"AL\",\"AK\",\"AZ\",\"AR\",\"CA\",\"CO\",\"CT\",\"DE\",\"FL\",\"GA\",\"HI\",\"ID\",\"IL\",\"IN\",\"IA\",\"KS\",\"KY\",\"LA\",\"ME\",\"MD\",\"MA\",\"MI\",\"MN\",\"MS\",\"MO\",\"MT\",\"NE\",\"NV\",\"NH\",\"NJ\",\"NM\",\"NY\",\"NC\",\"ND\",\"OH\",\"OK\",\"OR\",\"PA\",\"RI\",\"SC\",\"SD\",\"TN\",\"TX\",\"UT\",\"VT\",\"VA\",\"WA\",\"WV\",\"WI\",\"WY\"],mUe={normal:\"{{location.buildingNumber}} {{location.street}}\",full:\"{{location.buildingNumber}} {{location.street}} {{location.secondaryAddress}}\"},vUe=[\"10th Street\",\"11th Street\",\"12th Street\",\"13th Street\",\"14th Street\",\"15th Street\",\"16th Street\",\"1st Avenue\",\"1st Street\",\"2nd Avenue\",\"2nd Street\",\"3rd Avenue\",\"3rd Street\",\"4th Avenue\",\"4th Street\",\"5th Avenue\",\"5th Street\",\"6th Avenue\",\"6th Street\",\"7th Avenue\",\"7th Street\",\"8th Avenue\",\"8th Street\",\"9th Street\",\"A Street\",\"Abbey Road\",\"Adams Avenue\",\"Adams Street\",\"Airport Road\",\"Albany Road\",\"Albert Road\",\"Albion Street\",\"Alexandra Road\",\"Alfred Street\",\"Alma Street\",\"Ash Close\",\"Ash Grove\",\"Ash Road\",\"Ash Street\",\"Aspen Close\",\"Atlantic Avenue\",\"Avenue Road\",\"Back Lane\",\"Baker Street\",\"Balmoral Road\",\"Barn Close\",\"Barton Road\",\"Bath Road\",\"Bath Street\",\"Bay Street\",\"Beach Road\",\"Bedford Road\",\"Beech Close\",\"Beech Drive\",\"Beech Grove\",\"Beech Road\",\"Beechwood Avenue\",\"Bell Lane\",\"Belmont Road\",\"Birch Avenue\",\"Birch Close\",\"Birch Grove\",\"Birch Road\",\"Blind Lane\",\"Bluebell Close\",\"Boundary Road\",\"Bramble Close\",\"Bramley Close\",\"Bridge Road\",\"Bridge Street\",\"Broad Lane\",\"Broad Street\",\"Broadway\",\"Broadway Avenue\",\"Broadway Street\",\"Brook Lane\",\"Brook Road\",\"Brook Street\",\"Brookside\",\"Buckingham Road\",\"Cambridge Street\",\"Canal Street\",\"Castle Close\",\"Castle Lane\",\"Castle Road\",\"Castle Street\",\"Cavendish Road\",\"Cedar Avenue\",\"Cedar Close\",\"Cedar Grove\",\"Cedar Road\",\"Cedar Street\",\"Cemetery Road\",\"Center Avenue\",\"Center Road\",\"Center Street\",\"Central Avenue\",\"Central Street\",\"Chapel Close\",\"Chapel Hill\",\"Chapel Road\",\"Chapel Street\",\"Charles Street\",\"Cherry Close\",\"Cherry Street\",\"Cherry Tree Close\",\"Chester Road\",\"Chestnut Close\",\"Chestnut Drive\",\"Chestnut Grove\",\"Chestnut Street\",\"Church Avenue\",\"Church Close\",\"Church Hill\",\"Church Lane\",\"Church Path\",\"Church Road\",\"Church Street\",\"Church View\",\"Church Walk\",\"Claremont Road\",\"Clarence Road\",\"Clarence Street\",\"Clarendon Road\",\"Clark Street\",\"Clay Lane\",\"Cleveland Street\",\"Cliff Road\",\"Clifton Road\",\"Clinton Street\",\"College Avenue\",\"College Street\",\"Columbia Avenue\",\"Commerce Street\",\"Commercial Road\",\"Commercial Street\",\"Common Lane\",\"Coronation Avenue\",\"Coronation Road\",\"County Line Road\",\"County Road\",\"Court Street\",\"Cow Lane\",\"Crescent Road\",\"Cromwell Road\",\"Cross Lane\",\"Cross Street\",\"Crown Street\",\"Cumberland Street\",\"Dale Street\",\"Dark Lane\",\"Davis Street\",\"Depot Street\",\"Derby Road\",\"Derwent Close\",\"Devonshire Road\",\"Division Street\",\"Douglas Road\",\"Duke Street\",\"E 10th Street\",\"E 11th Street\",\"E 12th Street\",\"E 14th Street\",\"E 1st Street\",\"E 2nd Street\",\"E 3rd Street\",\"E 4th Avenue\",\"E 4th Street\",\"E 5th Street\",\"E 6th Avenue\",\"E 6th Street\",\"E 7th Street\",\"E 8th Street\",\"E 9th Street\",\"E Bridge Street\",\"E Broad Street\",\"E Broadway\",\"E Broadway Street\",\"E Cedar Street\",\"E Center Street\",\"E Central Avenue\",\"E Church Street\",\"E Elm Street\",\"E Franklin Street\",\"E Front Street\",\"E Grand Avenue\",\"E High Street\",\"E Jackson Street\",\"E Jefferson Street\",\"E Main\",\"E Main Street\",\"E Maple Street\",\"E Market Street\",\"E North Street\",\"E Oak Street\",\"E Park Avenue\",\"E Pine Street\",\"E River Road\",\"E South Street\",\"E State Street\",\"E Union Street\",\"E Walnut Street\",\"E Washington Avenue\",\"E Washington Street\",\"E Water Street\",\"East Avenue\",\"East Road\",\"East Street\",\"Edward Street\",\"Elm Close\",\"Elm Grove\",\"Elm Road\",\"Elm Street\",\"Euclid Avenue\",\"Fairfield Road\",\"Farm Close\",\"Ferry Road\",\"Field Close\",\"Field Lane\",\"First Avenue\",\"First Street\",\"Fore Street\",\"Forest Avenue\",\"Forest Road\",\"Fourth Avenue\",\"Franklin Avenue\",\"Franklin Road\",\"Franklin Street\",\"Front Street\",\"Frontage Road\",\"Garden Close\",\"Garden Street\",\"George Street\",\"Gladstone Road\",\"Glebe Close\",\"Gloucester Road\",\"Gordon Road\",\"Gordon Street\",\"Grand Avenue\",\"Grange Avenue\",\"Grange Close\",\"Grange Road\",\"Grant Street\",\"Green Close\",\"Green Lane\",\"Green Street\",\"Greenville Road\",\"Greenway\",\"Greenwood Road\",\"Grove Lane\",\"Grove Road\",\"Grove Street\",\"Hall Lane\",\"Hall Street\",\"Harrison Avenue\",\"Harrison Street\",\"Hawthorn Avenue\",\"Hawthorn Close\",\"Hazel Close\",\"Hazel Grove\",\"Heath Road\",\"Heather Close\",\"Henry Street\",\"Heron Close\",\"Hickory Street\",\"High Road\",\"High Street\",\"Highfield Avenue\",\"Highfield Close\",\"Highfield Road\",\"Highland Avenue\",\"Hill Road\",\"Hill Street\",\"Hillside\",\"Hillside Avenue\",\"Hillside Close\",\"Hillside Road\",\"Holly Close\",\"Honeysuckle Close\",\"Howard Road\",\"Howard Street\",\"Jackson Avenue\",\"Jackson Street\",\"James Street\",\"Jefferson Avenue\",\"Jefferson Street\",\"Johnson Street\",\"Jubilee Close\",\"Juniper Close\",\"Kent Road\",\"Kestrel Close\",\"King Street\",\"King's Road\",\"Kingfisher Close\",\"Kings Highway\",\"Kingsway\",\"Laburnum Grove\",\"Lafayette Street\",\"Lake Avenue\",\"Lake Drive\",\"Lake Road\",\"Lake Street\",\"Lancaster Road\",\"Lansdowne Road\",\"Larch Close\",\"Laurel Close\",\"Lawrence Street\",\"Lee Street\",\"Liberty Street\",\"Lime Grove\",\"Lincoln Avenue\",\"Lincoln Highway\",\"Lincoln Road\",\"Lincoln Street\",\"Locust Street\",\"Lodge Close\",\"Lodge Lane\",\"London Road\",\"Long Lane\",\"Low Road\",\"Madison Avenue\",\"Madison Street\",\"Main\",\"Main Avenue\",\"Main Road\",\"Main Street\",\"Main Street E\",\"Main Street N\",\"Main Street S\",\"Main Street W\",\"Manchester Road\",\"Manor Close\",\"Manor Drive\",\"Manor Gardens\",\"Manor Road\",\"Manor Way\",\"Maple Avenue\",\"Maple Close\",\"Maple Drive\",\"Maple Road\",\"Maple Street\",\"Market Place\",\"Market Square\",\"Market Street\",\"Marlborough Road\",\"Marsh Lane\",\"Martin Luther King Boulevard\",\"Martin Luther King Drive\",\"Martin Luther King Jr Boulevard\",\"Mary Street\",\"Mayfield Road\",\"Meadow Close\",\"Meadow Drive\",\"Meadow Lane\",\"Meadow View\",\"Meadow Way\",\"Memorial Drive\",\"Middle Street\",\"Mill Close\",\"Mill Lane\",\"Mill Road\",\"Mill Street\",\"Milton Road\",\"Milton Street\",\"Monroe Street\",\"Moor Lane\",\"Moss Lane\",\"Mount Pleasant\",\"Mount Street\",\"Mulberry Street\",\"N 1st Street\",\"N 2nd Street\",\"N 3rd Street\",\"N 4th Street\",\"N 5th Street\",\"N 6th Street\",\"N 7th Street\",\"N 8th Street\",\"N 9th Street\",\"N Bridge Street\",\"N Broad Street\",\"N Broadway\",\"N Broadway Street\",\"N Cedar Street\",\"N Center Street\",\"N Central Avenue\",\"N Chestnut Street\",\"N Church Street\",\"N College Street\",\"N Court Street\",\"N Division Street\",\"N East Street\",\"N Elm Street\",\"N Franklin Street\",\"N Front Street\",\"N Harrison Street\",\"N High Street\",\"N Jackson Street\",\"N Jefferson Street\",\"N Lincoln Street\",\"N Locust Street\",\"N Main\",\"N Main Avenue\",\"N Main Street\",\"N Maple Street\",\"N Market Street\",\"N Monroe Street\",\"N Oak Street\",\"N Park Street\",\"N Pearl Street\",\"N Pine Street\",\"N Poplar Street\",\"N Railroad Street\",\"N State Street\",\"N Union Street\",\"N Walnut Street\",\"N Washington Avenue\",\"N Washington Street\",\"N Water Street\",\"Nelson Road\",\"Nelson Street\",\"New Lane\",\"New Road\",\"New Street\",\"Newton Road\",\"Nightingale Close\",\"Norfolk Road\",\"North Avenue\",\"North Lane\",\"North Road\",\"North Street\",\"Northfield Road\",\"Oak Avenue\",\"Oak Drive\",\"Oak Lane\",\"Oak Road\",\"Oak Street\",\"Oakfield Road\",\"Oaklands\",\"Old Lane\",\"Old Military Road\",\"Old Road\",\"Old State Road\",\"Orchard Drive\",\"Orchard Lane\",\"Orchard Road\",\"Orchard Street\",\"Oxford Road\",\"Oxford Street\",\"Park Avenue\",\"Park Crescent\",\"Park Drive\",\"Park Lane\",\"Park Place\",\"Park Road\",\"Park Street\",\"Park View\",\"Parkside\",\"Pearl Street\",\"Pennsylvania Avenue\",\"Pine Close\",\"Pine Grove\",\"Pine Street\",\"Pinfold Lane\",\"Pleasant Street\",\"Poplar Avenue\",\"Poplar Close\",\"Poplar Road\",\"Poplar Street\",\"Post Road\",\"Pound Lane\",\"Princes Street\",\"Princess Street\",\"Priory Close\",\"Priory Road\",\"Prospect Avenue\",\"Prospect Place\",\"Prospect Road\",\"Prospect Street\",\"Quarry Lane\",\"Quarry Road\",\"Queen's Road\",\"Railroad Avenue\",\"Railroad Street\",\"Railway Street\",\"Rectory Close\",\"Rectory Lane\",\"Richmond Close\",\"Richmond Road\",\"Ridge Road\",\"River Road\",\"River Street\",\"Riverside\",\"Riverside Avenue\",\"Riverside Drive\",\"Roman Road\",\"Roman Way\",\"Rowan Close\",\"Russell Street\",\"S 10th Street\",\"S 14th Street\",\"S 1st Avenue\",\"S 1st Street\",\"S 2nd Street\",\"S 3rd Street\",\"S 4th Street\",\"S 5th Street\",\"S 6th Street\",\"S 7th Street\",\"S 8th Street\",\"S 9th Street\",\"S Bridge Street\",\"S Broad Street\",\"S Broadway\",\"S Broadway Street\",\"S Center Street\",\"S Central Avenue\",\"S Chestnut Street\",\"S Church Street\",\"S College Street\",\"S Division Street\",\"S East Street\",\"S Elm Street\",\"S Franklin Street\",\"S Front Street\",\"S Grand Avenue\",\"S High Street\",\"S Jackson Street\",\"S Jefferson Street\",\"S Lincoln Street\",\"S Main\",\"S Main Avenue\",\"S Main Street\",\"S Maple Street\",\"S Market Street\",\"S Mill Street\",\"S Monroe Street\",\"S Oak Street\",\"S Park Street\",\"S Pine Street\",\"S Railroad Street\",\"S State Street\",\"S Union Street\",\"S Walnut Street\",\"S Washington Avenue\",\"S Washington Street\",\"S Water Street\",\"S West Street\",\"Salisbury Road\",\"Sandringham Road\",\"Sandy Lane\",\"School Close\",\"School Lane\",\"School Road\",\"School Street\",\"Second Avenue\",\"Silver Street\",\"Skyline Drive\",\"Smith Street\",\"Somerset Road\",\"South Avenue\",\"South Drive\",\"South Road\",\"South Street\",\"South View\",\"Spring Gardens\",\"Spring Street\",\"Springfield Close\",\"Springfield Road\",\"Spruce Street\",\"St Andrew's Road\",\"St Andrews Close\",\"St George's Road\",\"St John's Road\",\"St Mary's Close\",\"St Mary's Road\",\"Stanley Road\",\"Stanley Street\",\"State Avenue\",\"State Line Road\",\"State Road\",\"State Street\",\"Station Road\",\"Station Street\",\"Stoney Lane\",\"Sycamore Avenue\",\"Sycamore Close\",\"Sycamore Drive\",\"Sycamore Street\",\"Talbot Road\",\"Tennyson Road\",\"The Avenue\",\"The Beeches\",\"The Causeway\",\"The Chase\",\"The Coppice\",\"The Copse\",\"The Crescent\",\"The Croft\",\"The Dell\",\"The Drive\",\"The Fairway\",\"The Glebe\",\"The Grange\",\"The Green\",\"The Grove\",\"The Hawthorns\",\"The Lane\",\"The Laurels\",\"The Limes\",\"The Maltings\",\"The Meadows\",\"The Mews\",\"The Mount\",\"The Oaks\",\"The Orchard\",\"The Oval\",\"The Paddock\",\"The Paddocks\",\"The Poplars\",\"The Ridgeway\",\"The Ridings\",\"The Rise\",\"The Sidings\",\"The Spinney\",\"The Square\",\"The Willows\",\"The Woodlands\",\"Third Avenue\",\"Third Street\",\"Tower Road\",\"Trinity Road\",\"Tudor Close\",\"Union Avenue\",\"Union Street\",\"University Avenue\",\"University Drive\",\"Valley Road\",\"Veterans Memorial Drive\",\"Veterans Memorial Highway\",\"Vicarage Close\",\"Vicarage Lane\",\"Vicarage Road\",\"Victoria Place\",\"Victoria Road\",\"Victoria Street\",\"Vine Street\",\"W 10th Street\",\"W 11th Street\",\"W 12th Street\",\"W 14th Street\",\"W 1st Street\",\"W 2nd Street\",\"W 3rd Street\",\"W 4th Avenue\",\"W 4th Street\",\"W 5th Street\",\"W 6th Avenue\",\"W 6th Street\",\"W 7th Street\",\"W 8th Street\",\"W 9th Street\",\"W Bridge Street\",\"W Broad Street\",\"W Broadway\",\"W Broadway Avenue\",\"W Broadway Street\",\"W Center Street\",\"W Central Avenue\",\"W Chestnut Street\",\"W Church Street\",\"W Division Street\",\"W Elm Street\",\"W Franklin Street\",\"W Front Street\",\"W Grand Avenue\",\"W High Street\",\"W Jackson Street\",\"W Jefferson Street\",\"W Lake Street\",\"W Main\",\"W Main Street\",\"W Maple Street\",\"W Market Street\",\"W Monroe Street\",\"W North Street\",\"W Oak Street\",\"W Park Street\",\"W Pine Street\",\"W River Road\",\"W South Street\",\"W State Street\",\"W Union Street\",\"W Walnut Street\",\"W Washington Avenue\",\"W Washington Street\",\"Walnut Close\",\"Walnut Street\",\"Warren Close\",\"Warren Road\",\"Washington Avenue\",\"Washington Boulevard\",\"Washington Road\",\"Washington Street\",\"Water Lane\",\"Water Street\",\"Waterloo Road\",\"Waterside\",\"Watery Lane\",\"Waverley Road\",\"Well Lane\",\"Wellington Road\",\"Wellington Street\",\"West Avenue\",\"West End\",\"West Lane\",\"West Road\",\"West Street\",\"West View\",\"Western Avenue\",\"Western Road\",\"Westfield Road\",\"Westgate\",\"William Street\",\"Willow Close\",\"Willow Drive\",\"Willow Grove\",\"Willow Road\",\"Willow Street\",\"Windermere Road\",\"Windmill Close\",\"Windmill Lane\",\"Windsor Avenue\",\"Windsor Close\",\"Windsor Drive\",\"Wood Lane\",\"Wood Street\",\"Woodland Close\",\"Woodland Road\",\"Woodlands\",\"Woodlands Avenue\",\"Woodlands Close\",\"Woodlands Road\",\"Woodside\",\"Woodside Road\",\"Wren Close\",\"Yew Tree Close\",\"York Road\",\"York Street\"],gUe=[\"{{person.first_name}} {{location.street_suffix}}\",\"{{person.last_name}} {{location.street_suffix}}\",\"{{location.street_name}}\"],yUe=[\"Alley\",\"Avenue\",\"Branch\",\"Bridge\",\"Brook\",\"Brooks\",\"Burg\",\"Burgs\",\"Bypass\",\"Camp\",\"Canyon\",\"Cape\",\"Causeway\",\"Center\",\"Centers\",\"Circle\",\"Circles\",\"Cliff\",\"Cliffs\",\"Club\",\"Common\",\"Corner\",\"Corners\",\"Course\",\"Court\",\"Courts\",\"Cove\",\"Coves\",\"Creek\",\"Crescent\",\"Crest\",\"Crossing\",\"Crossroad\",\"Curve\",\"Dale\",\"Dam\",\"Divide\",\"Drive\",\"Drives\",\"Estate\",\"Estates\",\"Expressway\",\"Extension\",\"Extensions\",\"Fall\",\"Falls\",\"Ferry\",\"Field\",\"Fields\",\"Flat\",\"Flats\",\"Ford\",\"Fords\",\"Forest\",\"Forge\",\"Forges\",\"Fork\",\"Forks\",\"Fort\",\"Freeway\",\"Garden\",\"Gardens\",\"Gateway\",\"Glen\",\"Glens\",\"Green\",\"Greens\",\"Grove\",\"Groves\",\"Harbor\",\"Harbors\",\"Haven\",\"Heights\",\"Highway\",\"Hill\",\"Hills\",\"Hollow\",\"Inlet\",\"Island\",\"Islands\",\"Isle\",\"Junction\",\"Junctions\",\"Key\",\"Keys\",\"Knoll\",\"Knolls\",\"Lake\",\"Lakes\",\"Land\",\"Landing\",\"Lane\",\"Light\",\"Lights\",\"Loaf\",\"Lock\",\"Locks\",\"Lodge\",\"Loop\",\"Mall\",\"Manor\",\"Manors\",\"Meadow\",\"Meadows\",\"Mews\",\"Mill\",\"Mills\",\"Mission\",\"Motorway\",\"Mount\",\"Mountain\",\"Mountains\",\"Neck\",\"Orchard\",\"Oval\",\"Overpass\",\"Park\",\"Parks\",\"Parkway\",\"Parkways\",\"Pass\",\"Passage\",\"Path\",\"Pike\",\"Pine\",\"Pines\",\"Place\",\"Plain\",\"Plains\",\"Plaza\",\"Point\",\"Points\",\"Port\",\"Ports\",\"Prairie\",\"Radial\",\"Ramp\",\"Ranch\",\"Rapid\",\"Rapids\",\"Rest\",\"Ridge\",\"Ridges\",\"River\",\"Road\",\"Roads\",\"Route\",\"Row\",\"Rue\",\"Run\",\"Shoal\",\"Shoals\",\"Shore\",\"Shores\",\"Skyway\",\"Spring\",\"Springs\",\"Spur\",\"Spurs\",\"Square\",\"Squares\",\"Station\",\"Stravenue\",\"Stream\",\"Street\",\"Streets\",\"Summit\",\"Terrace\",\"Throughway\",\"Trace\",\"Track\",\"Trafficway\",\"Trail\",\"Tunnel\",\"Turnpike\",\"Underpass\",\"Union\",\"Unions\",\"Valley\",\"Valleys\",\"Via\",\"Viaduct\",\"View\",\"Views\",\"Village\",\"Villages\",\"Ville\",\"Vista\",\"Walk\",\"Walks\",\"Wall\",\"Way\",\"Ways\",\"Well\",\"Wells\"],bUe={building_number:tUe,city_name:rUe,city_pattern:nUe,city_prefix:aUe,city_suffix:iUe,country:oUe,county:lUe,default_country:sUe,direction:uUe,direction_abbr:cUe,postcode:dUe,secondary_address:fUe,state:hUe,state_abbr:pUe,street_address:mUe,street_name:vUe,street_pattern:gUe,street_suffix:yUe},xUe=bUe,CUe=[\"a\",\"ab\",\"abbas\",\"abduco\",\"abeo\",\"abscido\",\"absconditus\",\"absens\",\"absorbeo\",\"absque\",\"abstergo\",\"absum\",\"abundans\",\"abutor\",\"accedo\",\"accendo\",\"acceptus\",\"accommodo\",\"accusamus\",\"accusantium\",\"accusator\",\"acer\",\"acerbitas\",\"acervus\",\"acidus\",\"acies\",\"acquiro\",\"acsi\",\"ad\",\"adamo\",\"adaugeo\",\"addo\",\"adduco\",\"ademptio\",\"adeo\",\"adeptio\",\"adfectus\",\"adfero\",\"adficio\",\"adflicto\",\"adhaero\",\"adhuc\",\"adicio\",\"adimpleo\",\"adinventitias\",\"adipisci\",\"adipiscor\",\"adiuvo\",\"administratio\",\"admiratio\",\"admitto\",\"admoneo\",\"admoveo\",\"adnuo\",\"adopto\",\"adsidue\",\"adstringo\",\"adsuesco\",\"adsum\",\"adulatio\",\"adulescens\",\"aduro\",\"advenio\",\"adversus\",\"advoco\",\"aedificium\",\"aeger\",\"aegre\",\"aegrotatio\",\"aegrus\",\"aeneus\",\"aequitas\",\"aequus\",\"aer\",\"aestas\",\"aestivus\",\"aestus\",\"aetas\",\"aeternus\",\"ager\",\"aggero\",\"aggredior\",\"agnitio\",\"agnosco\",\"ago\",\"ait\",\"aiunt\",\"alias\",\"alienus\",\"alii\",\"alioqui\",\"aliqua\",\"aliquam\",\"aliquid\",\"alius\",\"allatus\",\"alo\",\"alter\",\"altus\",\"alveus\",\"amaritudo\",\"ambitus\",\"ambulo\",\"amet\",\"amicitia\",\"amiculum\",\"amissio\",\"amita\",\"amitto\",\"amo\",\"amor\",\"amoveo\",\"amplexus\",\"amplitudo\",\"amplus\",\"ancilla\",\"angelus\",\"angulus\",\"angustus\",\"animadverto\",\"animi\",\"animus\",\"annus\",\"anser\",\"ante\",\"antea\",\"antepono\",\"antiquus\",\"aperiam\",\"aperio\",\"aperte\",\"apostolus\",\"apparatus\",\"appello\",\"appono\",\"appositus\",\"approbo\",\"apto\",\"aptus\",\"apud\",\"aqua\",\"ara\",\"aranea\",\"arbitro\",\"arbor\",\"arbustum\",\"arca\",\"arceo\",\"arcesso\",\"architecto\",\"arcus\",\"argentum\",\"argumentum\",\"arguo\",\"arma\",\"armarium\",\"aro\",\"ars\",\"articulus\",\"artificiose\",\"arto\",\"arx\",\"ascisco\",\"ascit\",\"asper\",\"asperiores\",\"aspernatur\",\"aspicio\",\"asporto\",\"assentator\",\"assumenda\",\"astrum\",\"at\",\"atavus\",\"ater\",\"atque\",\"atqui\",\"atrocitas\",\"atrox\",\"attero\",\"attollo\",\"attonbitus\",\"auctor\",\"auctus\",\"audacia\",\"audax\",\"audentia\",\"audeo\",\"audio\",\"auditor\",\"aufero\",\"aureus\",\"aurum\",\"aut\",\"autem\",\"autus\",\"auxilium\",\"avaritia\",\"avarus\",\"aveho\",\"averto\",\"baiulus\",\"balbus\",\"barba\",\"bardus\",\"basium\",\"beatae\",\"beatus\",\"bellicus\",\"bellum\",\"bene\",\"beneficium\",\"benevolentia\",\"benigne\",\"bestia\",\"bibo\",\"bis\",\"blandior\",\"blanditiis\",\"bonus\",\"bos\",\"brevis\",\"cado\",\"caecus\",\"caelestis\",\"caelum\",\"calamitas\",\"calcar\",\"calco\",\"calculus\",\"callide\",\"campana\",\"candidus\",\"canis\",\"canonicus\",\"canto\",\"capillus\",\"capio\",\"capitulus\",\"capto\",\"caput\",\"carbo\",\"carcer\",\"careo\",\"caries\",\"cariosus\",\"caritas\",\"carmen\",\"carpo\",\"carus\",\"casso\",\"caste\",\"casus\",\"catena\",\"caterva\",\"cattus\",\"cauda\",\"causa\",\"caute\",\"caveo\",\"cavus\",\"cedo\",\"celebrer\",\"celer\",\"celo\",\"cena\",\"cenaculum\",\"ceno\",\"censura\",\"centum\",\"cerno\",\"cernuus\",\"certe\",\"certus\",\"cervus\",\"cetera\",\"charisma\",\"chirographum\",\"cibo\",\"cibus\",\"cicuta\",\"cilicium\",\"cimentarius\",\"ciminatio\",\"cinis\",\"circumvenio\",\"cito\",\"civis\",\"civitas\",\"clam\",\"clamo\",\"claro\",\"clarus\",\"claudeo\",\"claustrum\",\"clementia\",\"clibanus\",\"coadunatio\",\"coaegresco\",\"coepi\",\"coerceo\",\"cogito\",\"cognatus\",\"cognomen\",\"cogo\",\"cohaero\",\"cohibeo\",\"cohors\",\"colligo\",\"collum\",\"colo\",\"color\",\"coma\",\"combibo\",\"comburo\",\"comedo\",\"comes\",\"cometes\",\"comis\",\"comitatus\",\"commemoro\",\"comminor\",\"commodi\",\"commodo\",\"communis\",\"comparo\",\"compello\",\"complectus\",\"compono\",\"comprehendo\",\"comptus\",\"conatus\",\"concedo\",\"concido\",\"conculco\",\"condico\",\"conduco\",\"confero\",\"confido\",\"conforto\",\"confugo\",\"congregatio\",\"conicio\",\"coniecto\",\"conitor\",\"coniuratio\",\"conor\",\"conqueror\",\"conscendo\",\"consectetur\",\"consequatur\",\"consequuntur\",\"conservo\",\"considero\",\"conspergo\",\"constans\",\"consuasor\",\"contabesco\",\"contego\",\"contigo\",\"contra\",\"conturbo\",\"conventus\",\"convoco\",\"copia\",\"copiose\",\"cornu\",\"corona\",\"corporis\",\"corpus\",\"correptius\",\"corrigo\",\"corroboro\",\"corrumpo\",\"corrupti\",\"coruscus\",\"cotidie\",\"crapula\",\"cras\",\"crastinus\",\"creator\",\"creber\",\"crebro\",\"credo\",\"creo\",\"creptio\",\"crepusculum\",\"cresco\",\"creta\",\"cribro\",\"crinis\",\"cruciamentum\",\"crudelis\",\"cruentus\",\"crur\",\"crustulum\",\"crux\",\"cubicularis\",\"cubitum\",\"cubo\",\"cui\",\"cuius\",\"culpa\",\"culpo\",\"cultellus\",\"cultura\",\"cum\",\"cumque\",\"cunabula\",\"cunae\",\"cunctatio\",\"cupiditas\",\"cupiditate\",\"cupio\",\"cuppedia\",\"cupressus\",\"cur\",\"cura\",\"curatio\",\"curia\",\"curiositas\",\"curis\",\"curo\",\"curriculum\",\"currus\",\"cursim\",\"curso\",\"cursus\",\"curto\",\"curtus\",\"curvo\",\"custodia\",\"damnatio\",\"damno\",\"dapifer\",\"debeo\",\"debilito\",\"debitis\",\"decens\",\"decerno\",\"decet\",\"decimus\",\"decipio\",\"decor\",\"decretum\",\"decumbo\",\"dedecor\",\"dedico\",\"deduco\",\"defaeco\",\"defendo\",\"defero\",\"defessus\",\"defetiscor\",\"deficio\",\"defleo\",\"defluo\",\"defungo\",\"degenero\",\"degero\",\"degusto\",\"deinde\",\"delectatio\",\"delectus\",\"delego\",\"deleniti\",\"deleo\",\"delibero\",\"delicate\",\"delinquo\",\"deludo\",\"demens\",\"demergo\",\"demitto\",\"demo\",\"demonstro\",\"demoror\",\"demulceo\",\"demum\",\"denego\",\"denique\",\"dens\",\"denuncio\",\"denuo\",\"deorsum\",\"depereo\",\"depono\",\"depopulo\",\"deporto\",\"depraedor\",\"deprecator\",\"deprimo\",\"depromo\",\"depulso\",\"deputo\",\"derelinquo\",\"derideo\",\"deripio\",\"deserunt\",\"desidero\",\"desino\",\"desipio\",\"desolo\",\"desparatus\",\"despecto\",\"dicta\",\"dignissimos\",\"distinctio\",\"dolor\",\"dolore\",\"dolorem\",\"doloremque\",\"dolores\",\"doloribus\",\"dolorum\",\"ducimus\",\"ea\",\"eaque\",\"earum\",\"eius\",\"eligendi\",\"enim\",\"eos\",\"error\",\"esse\",\"est\",\"et\",\"eum\",\"eveniet\",\"ex\",\"excepturi\",\"exercitationem\",\"expedita\",\"explicabo\",\"facere\",\"facilis\",\"fuga\",\"fugiat\",\"fugit\",\"harum\",\"hic\",\"id\",\"illo\",\"illum\",\"impedit\",\"in\",\"incidunt\",\"infit\",\"inflammatio\",\"inventore\",\"ipsa\",\"ipsam\",\"ipsum\",\"iste\",\"itaque\",\"iure\",\"iusto\",\"labore\",\"laboriosam\",\"laborum\",\"laudantium\",\"libero\",\"magnam\",\"magni\",\"maiores\",\"maxime\",\"minima\",\"minus\",\"modi\",\"molestiae\",\"molestias\",\"mollitia\",\"nam\",\"natus\",\"necessitatibus\",\"nemo\",\"neque\",\"nesciunt\",\"nihil\",\"nisi\",\"nobis\",\"non\",\"nostrum\",\"nulla\",\"numquam\",\"occaecati\",\"ocer\",\"odio\",\"odit\",\"officia\",\"officiis\",\"omnis\",\"optio\",\"paens\",\"pariatur\",\"patior\",\"patria\",\"patrocinor\",\"patruus\",\"pauci\",\"paulatim\",\"pauper\",\"pax\",\"peccatus\",\"pecco\",\"pecto\",\"pectus\",\"pecus\",\"peior\",\"pel\",\"perferendis\",\"perspiciatis\",\"placeat\",\"porro\",\"possimus\",\"praesentium\",\"provident\",\"quae\",\"quaerat\",\"quam\",\"quas\",\"quasi\",\"qui\",\"quia\",\"quibusdam\",\"quidem\",\"quis\",\"quisquam\",\"quo\",\"quod\",\"quos\",\"ratione\",\"recusandae\",\"reiciendis\",\"rem\",\"repellat\",\"repellendus\",\"reprehenderit\",\"repudiandae\",\"rerum\",\"saepe\",\"sapiente\",\"sed\",\"sequi\",\"similique\",\"sint\",\"sit\",\"socius\",\"sodalitas\",\"sol\",\"soleo\",\"solio\",\"solitudo\",\"solium\",\"sollers\",\"sollicito\",\"solum\",\"solus\",\"soluta\",\"solutio\",\"solvo\",\"somniculosus\",\"somnus\",\"sonitus\",\"sono\",\"sophismata\",\"sopor\",\"sordeo\",\"sortitus\",\"spargo\",\"speciosus\",\"spectaculum\",\"speculum\",\"sperno\",\"spero\",\"spes\",\"spiculum\",\"spiritus\",\"spoliatio\",\"sponte\",\"stabilis\",\"statim\",\"statua\",\"stella\",\"stillicidium\",\"stipes\",\"stips\",\"sto\",\"strenuus\",\"strues\",\"studio\",\"stultus\",\"suadeo\",\"suasoria\",\"sub\",\"subito\",\"subiungo\",\"sublime\",\"subnecto\",\"subseco\",\"substantia\",\"subvenio\",\"succedo\",\"succurro\",\"sufficio\",\"suffoco\",\"suffragium\",\"suggero\",\"sui\",\"sulum\",\"sum\",\"summa\",\"summisse\",\"summopere\",\"sumo\",\"sumptus\",\"sunt\",\"supellex\",\"super\",\"suppellex\",\"supplanto\",\"suppono\",\"supra\",\"surculus\",\"surgo\",\"sursum\",\"suscipio\",\"suscipit\",\"suspendo\",\"sustineo\",\"suus\",\"synagoga\",\"tabella\",\"tabernus\",\"tabesco\",\"tabgo\",\"tabula\",\"taceo\",\"tactus\",\"taedium\",\"talio\",\"talis\",\"talus\",\"tam\",\"tamdiu\",\"tamen\",\"tametsi\",\"tamisium\",\"tamquam\",\"tandem\",\"tantillus\",\"tantum\",\"tardus\",\"tego\",\"temeritas\",\"temperantia\",\"templum\",\"tempora\",\"tempore\",\"temporibus\",\"temptatio\",\"tempus\",\"tenax\",\"tendo\",\"teneo\",\"tener\",\"tenetur\",\"tenuis\",\"tenus\",\"tepesco\",\"tepidus\",\"ter\",\"terebro\",\"teres\",\"terga\",\"tergeo\",\"tergiversatio\",\"tergo\",\"tergum\",\"termes\",\"terminatio\",\"tero\",\"terra\",\"terreo\",\"territo\",\"terror\",\"tersus\",\"tertius\",\"testimonium\",\"texo\",\"textilis\",\"textor\",\"textus\",\"thalassinus\",\"theatrum\",\"theca\",\"thema\",\"theologus\",\"thermae\",\"thesaurus\",\"thesis\",\"thorax\",\"thymbra\",\"thymum\",\"tibi\",\"timidus\",\"timor\",\"titulus\",\"tolero\",\"tollo\",\"tondeo\",\"tonsor\",\"torqueo\",\"torrens\",\"tot\",\"totam\",\"totidem\",\"toties\",\"totus\",\"tracto\",\"trado\",\"traho\",\"trans\",\"tredecim\",\"tremo\",\"trepide\",\"tres\",\"tribuo\",\"tricesimus\",\"triduana\",\"tripudio\",\"tristis\",\"triumphus\",\"trucido\",\"truculenter\",\"tubineus\",\"tui\",\"tum\",\"tumultus\",\"tunc\",\"turba\",\"turbo\",\"turpis\",\"tutamen\",\"tutis\",\"tyrannus\",\"uberrime\",\"ubi\",\"ulciscor\",\"ullam\",\"ullus\",\"ulterius\",\"ultio\",\"ultra\",\"umbra\",\"umerus\",\"umquam\",\"una\",\"unde\",\"undique\",\"universe\",\"unus\",\"urbanus\",\"urbs\",\"uredo\",\"usitas\",\"usque\",\"ustilo\",\"ustulo\",\"usus\",\"ut\",\"uter\",\"uterque\",\"utilis\",\"utique\",\"utor\",\"utpote\",\"utrimque\",\"utroque\",\"utrum\",\"uxor\",\"vaco\",\"vacuus\",\"vado\",\"vae\",\"valde\",\"valens\",\"valeo\",\"valetudo\",\"validus\",\"vallum\",\"vapulus\",\"varietas\",\"varius\",\"vehemens\",\"vel\",\"velit\",\"velociter\",\"velum\",\"velut\",\"venia\",\"veniam\",\"venio\",\"ventito\",\"ventosus\",\"ventus\",\"venustas\",\"ver\",\"verbera\",\"verbum\",\"vere\",\"verecundia\",\"vereor\",\"vergo\",\"veritas\",\"veritatis\",\"vero\",\"versus\",\"verto\",\"verumtamen\",\"verus\",\"vesco\",\"vesica\",\"vesper\",\"vespillo\",\"vester\",\"vestigium\",\"vestrum\",\"vetus\",\"via\",\"vicinus\",\"vicissitudo\",\"victoria\",\"victus\",\"videlicet\",\"video\",\"viduo\",\"vigilo\",\"vigor\",\"vilicus\",\"vilis\",\"vilitas\",\"villa\",\"vinco\",\"vinculum\",\"vindico\",\"vinitor\",\"vinum\",\"vir\",\"virga\",\"virgo\",\"viridis\",\"viriliter\",\"virtus\",\"vis\",\"viscus\",\"vita\",\"vitae\",\"vitiosus\",\"vitium\",\"vito\",\"vivo\",\"vix\",\"vobis\",\"vociferor\",\"voco\",\"volaticus\",\"volo\",\"volubilis\",\"voluntarius\",\"volup\",\"voluptas\",\"voluptate\",\"voluptatem\",\"voluptates\",\"voluptatibus\",\"voluptatum\",\"volutabrum\",\"volva\",\"vomer\",\"vomica\",\"vomito\",\"vorago\",\"vorax\",\"voro\",\"vos\",\"votum\",\"voveo\",\"vox\",\"vulariter\",\"vulgaris\",\"vulgivagus\",\"vulgo\",\"vulgus\",\"vulnero\",\"vulnus\",\"vulpes\",\"vulticulus\",\"xiphias\"],FUe={words:CUe},SUe=FUe,wUe={title:\"English\",code:\"en\",language:\"en\",endonym:\"English\",dir:\"ltr\",script:\"Latn\"},EUe=wUe,DUe=[\"Rock\",\"Metal\",\"Pop\",\"Electronic\",\"Folk\",\"World\",\"Country\",\"Jazz\",\"Funk\",\"Soul\",\"Hip Hop\",\"Classical\",\"Latin\",\"Reggae\",\"Stage And Screen\",\"Blues\",\"Non Music\",\"Rap\"],AUe=[\"White Christmas\",\"Hey Jude\",\"Every Breath You Take\",\"Mack the Knife\",\"Rock Around the Clock\",\"I Want to Hold Your Hand\",\"(I Can't Get No) Satisfaction\",\"The Twist\",\"(Everything I Do) I Do it For You\",\"Bridge Over Troubled Water\",\"When Doves Cry\",\"Call Me\",\"Bette Davis Eyes\",\"I Will Always Love You\",\"Over the Rainbow\",\"American Pie\",\"Flashdance. What a Feeling\",\"The Way We Were\",\"I Heard it Through the Grapevine\",\"You've Lost That Lovin' Feelin'\",\"Nothing Compares 2 U\",\"Endless Love\",\"Yeah!\",\"Let's Get it On\",\"That's What Friends Are For\",\"You Light Up My Life\",\"(Sittin' On) the Dock of the Bay\",\"Joy to the World\",\"Heartbreak Hotel\",\"Theme From 'A Summer Place'\",\"Aquarius/Let The Sunshine In\",\"I Will Survive\",\"It's Too Late\",\"Respect\",\"Sugar Sugar\",\"Stayin' Alive\",\"Maggie May\",\"My Heart Will Go On\",\"Eye of the Tiger\",\"End of the Road\",\"Another One Bites the Dust\",\"Billie Jean\",\"Let's Stay Together\",\"Battle of New Orleans\",\"Oh\",\"Hound Dog\",\"I Love Rock 'n' Roll\",\"Smooth\",\"Good Vibrations\",\"Physical\",\"Light My Fire\",\"Low\",\"Hey Ya!\",\"Let it Be\",\"Don't Be Cruel\",\"Hotel California\",\"We Belong Together\",\"Le Freak\",\"Raindrops Keep Falling On My Head\",\"How High the Moon\",\"My Girl\",\"I Can't Stop Loving You\",\"Killing Me Softly With His Song\",\"Mona Lisa\",\"In the Mood\",\"She Loves You\",\"The Letter\",\"Mister Sandman\",\"Careless Whisper\",\"What's Love Got to Do With It?\",\"I'm a Believer\",\"Wooly Bully\",\"Theme From 'Shaft'\",\"Hot Stuff\",\"Centerfold\",\"Honky Tonk Woman\",\"I'll Be There\",\"Gangsta's Paradise\",\"Yesterday\",\"My Sharona\",\"Tennessee Waltz\",\"Reach Out (I'll Be There)\",\"California Dreamin'\",\"Jailhouse Rock\",\"Irreplaceable\",\"Dancing in the Street\",\"Rolling In The Deep\",\"Tie a Yellow Ribbon 'round the Old Oak Tree\",\"Stand By Me\",\"Sentimental Journey\",\"The First Time Ever I Saw Your Face\",\"Louie Louie\",\"Another Brick in the Wall (part 2)\",\"(Just Like) Starting Over\",\"Night Fever\",\"To Sir\",\"You're So Vain\",\"Be My Baby\",\"Celebration\",\"(They Long to Be) Close to You\",\"Begin the Beguine\",\"I Still Haven't Found What I'm Looking For\",\"I Want You Back\",\"Arthur's Theme (Best That You Can Do)\",\"Boulevard of Broken Dreams\",\"With Or Without You\",\"Tonight's the Night (Gonna Be Alright)\",\"Are You Lonesome Tonight?\",\"Upside Down\",\"Dancing Queen\",\"Sweet Child O' Mine\",\"Where Did Our Love Go\",\"Unchained Melody\",\"Rudolph\",\"Take My Breath Away\",\"I'll Make Love to You\",\"Love Will Keep Us Together\",\"When a Man Loves a Woman\",\"Walk Like an Egyptian\",\"Crazy in Love\",\"Strangers in the Night\",\"You Belong to Me\",\"In Da Club\",\"Say You\",\"We Are the World\",\"Johnny B Goode\",\"Love Theme From 'A Star is Born' (Evergreen)\",\"Shadow Dancing\",\"Superstition\",\"Beat It\",\"Night & Day\",\"Waterfalls\",\"House of the Rising Sun\",\"Paper Doll\",\"Downtown\",\"I Can't Help Myself (Sugar Pie\",\"Kiss From a Rose\",\"Believe\",\"Ballad of the Green Berets\",\"Proud Mary\",\"Too Young\",\"Umbrella\",\"Swanee\",\"Need You Tonight\",\"Like a Rolling Stone\",\"Lady\",\"One Sweet Day\",\"Lean On Me\",\"Tik-Toc\",\"Monday Monday\",\"What'd I Say\",\"How You Remind Me\",\"Silly Love Songs\",\"My Guy\",\"Macarena\",\"Goodnight\",\"Just My Imagination (Running Away With Me)\",\"The Sounds of Silence\",\"Imagine\",\"Me & Bobby McGee\",\"Near You\",\"What's Going On?\",\"Suspicious Minds\",\"Ode To Billie Joe\",\"Wind Beneath My Wings\",\"The Boy is Mine\",\"Mr Tambourine Man\",\"Faith\",\"Green Onions\",\"Mrs Robinson\",\"How Deep is Your Love?\",\"Hey There\",\"Heart of Glass\",\"Pennies From Heaven\",\"Like a Virgin\",\"Midnight Train to Georgia\",\"Help!\",\"Tossing & Turning\",\"The Sign\",\"Born to Be Wild\",\"Layla\",\"I Just Wanna Be Your Everything\",\"War\",\"96 Tears\",\"I Get Around\",\"Because You Loved Me\",\"Summer in the City\",\"Get Back\",\"Secret Love\",\"9 to 5\",\"(Ghost) Riders in the Sky\",\"The Loco-Motion\",\"Play That Funky Music\",\"Bohemian Rhapsody\",\"Little Things Mean a Lot\",\"Cry\",\"All Shook Up\",\"Up Where We Belong\",\"Sledgehammer\",\"Fire & Rain\",\"Stop! in the Name of Love\",\"Sweet Home Alabama\",\"Another Day in Paradise\",\"Bleeding Love\",\"Lady Marmalade (Voulez-Vous Coucher Aver Moi Ce Soir?)\",\"Whispering\",\"Vogue\",\"Under the Bridge\",\"Sixteen Tons\",\"Sugar Shack\",\"Baby Love\",\"What a Fool Believes\",\"Lose Yourself\",\"Hello Dolly\",\"Brown Eyed Girl\",\"Without You\",\"Build Me Up Buttercup\",\"We Found Love\",\"Tears in Heaven\",\"Family Affair\",\"All I Wanna Do\",\"Soul Man\",\"Tequila\",\"Rock With You\",\"Livin' La Vida Loca\",\"Best of My Love\",\"Runaway\",\"Alone Again (Naturally)\",\"Can't Help Falling in Love\",\"My Sweet Lord\",\"Runaround Sue\",\"Swinging On a Star\",\"Gold Digger\",\"Happy Together\",\"Losing My Religion\",\"Heart of Gold\",\"Stardust\",\"Will You Love Me Tomorrow\",\"You Are the Sunshine of My Life\",\"You Were Meant for Me\",\"Take On Me\",\"Hollaback Girl\",\"God Bless America\",\"I Swear\",\"Sunshine of Your Love\",\"Firework\",\"Groovin'\",\"Smells Like Teen Spirit\",\"Big Girls Don't Cry\",\"Jack & Diane\",\"Addicted to Love\",\"The Last Dance\",\"Georgia On My Mind\",\"Money For Nothing\",\"Jump\",\"Vaya Con Dios (may God Be With You)\",\"You'll Never Know\",\"That'll Be the Day\",\"Girls Just Wanna Have Fun\",\"Wheel of Fortune\",\"When You Wish Upon a Star\",\"Don't Fence Me In\",\"Turn! Turn! Turn! (To Everything There is a Season)\",\"Volare\",\"Sweet Dreams (Are Made of This)\",\"Whole Lotta Love\",\"You've Got a Friend\",\"Penny Lane\",\"People Got to Be Free\",\"Nature Boy\",\"Sexyback\",\"Crying\",\"Single Ladies (Put A Ring On It)\",\"Bad Girls\",\"Too Close\",\"I Got You Babe\",\"We've Only Just Begun\",\"Sh-Boom (Life Could Be a Dream)\",\"Shining Star\",\"Kansas City\",\"Like a Prayer\",\"Cheek to Cheek\",\"Papa Was a Rolling Stone\",\"Promiscuous\",\"Love Shack\",\"Funkytown\",\"Crazy\",\"Philadelphia Freedom\",\"Temperature\",\"Somebody That I Used to Know\",\"All I Have to Do is Dream\",\"Jessie's Girl\",\"Rhinestone Cowboy\",\"Blue Suede Shoes\",\"Ebony & Ivory\",\"I'll Never Smile Again\",\"Keep On Loving You\",\"Since U Been Gone\",\"The Way You Look Tonight\",\"Crazy Little Thing Called Love\",\"The Great Pretender\",\"Brown Sugar\",\"Que sera sera (Whatever will be will be)\",\"No One\",\"Bad Day\",\"Boom Boom Pow\",\"Party Rock Anthem\",\"Because of You\",\"Chattanooga Choo Choo\",\"A Whiter Shade of Pale\",\"Love Me Tender\",\"Higher Love\",\"Footloose\",\"Blurred Lines\",\"I Just Called to Say I Love You\",\"Come Together\",\"It's Now Or Never\",\"Under the Boardwalk\",\"Don't You Want Me\",\"You Can't Hurry Love\",\"Fame\",\"Fallin'\",\"Poker Face\",\"Bad Romance\",\"Ruby Tuesday\",\"All Night Long (All Night)\",\"Baby Got Back\",\"Whole Lotta Shakin' Goin' On\",\"Frenesi\",\"December 1963 (Oh What a Night)\",\"Bad Moon Rising\",\"Abracadabra\",\"I Gotta Feeling\",\"The Song From Moulin Rouge (Where Is Your Heart)\",\"Waiting For a Girl Like You\",\"Everybody Loves Somebody\",\"I Can't Go For That (No Can Do)\",\"Buttons & Bows\",\"It's All in the Game\",\"Love Train\",\"Dance to the Music\",\"Candle in the Wind '97\",\"Honey\",\"Kiss\",\"I'll Take You There\",\"Paint it Black\",\"Band of Gold\",\"Just the Way You Are\",\"Spirit in the Sky\",\"Vision of Love\",\"Hips don't lie\",\"Till The End of Time\",\"Duke of Earl\",\"YMCA\",\"Oh My Papa (O Mein Papa)\",\"Pistol Packin' Mama\",\"Gonna Make You Sweat (Everybody Dance Now)\",\"Dilemma\",\"I Need You Now\",\"Wanted\",\"Jumpin' Jack Flash\",\"Against All Odds (Take a Look At Me Now)\",\"Tom Dooley\",\"Goodbye Yellow Brick Road\",\"Rhapsody in Blue\",\"Bennie & the Jets\",\"Call Me Maybe\",\"You Really Got Me\",\"God Bless the Child\",\"I'm Sorry\",\"Bad\",\"I Can't Get Next to You\",\"The Power of Love\",\"Dreamlover\",\"Only The Lonely (Know The Way I Feel)\",\"We Are Family\",\"At Last\",\"Brand New Key\",\"I've Heard That Song Before\",\"Stay (I Missed You)\",\"Do Ya Think I'm Sexy?\",\"Tutti Frutti\",\"This Ole House\",\"Please Mr Postman\",\"Good Times\",\"Something\",\"(I've Had) the Time of My Life\",\"I Don't Want to Miss a Thing\",\"Down Hearted Blues\",\"Rag Doll\",\"Blueberry Hill\",\"Ain't No Sunshine\",\"Wild Thing\",\"Blaze of Glory\",\"Ray of Light\",\"The Hustle\",\"Grenade\",\"Cathy's Clown\",\"Minnie the Moocher\",\"Love Is Blue (L'Amour Est Bleu)\",\"Iris\",\"The Boys of Summer\",\"The Tide is High\",\"She Drives Me Crazy\",\"Save the Best For Last\",\"These Boots Are Made For Walking\",\"I Feel Love\",\"A Woman in Love\",\"We Can Work it Out\",\"The Reason\",\"Locked Out Of Heaven\",\"Do That to Me One More Time\",\"That's the Way Love Goes\",\"A Hard Day's Night\",\"I Believe I Can Fly\",\"Karma Chameleon\",\"One O'Clock Jump\",\"Mule Train\",\"Car Wash\",\"Rapture\",\"Creep\",\"Streets of Philadelphia\",\"West End Girls\",\"Leader of the Pack\",\"T For Texas (Blue Yodel No 1)\",\"Mama Told Me Not to Come\",\"Just Dance\",\"Mercy Mercy Me (The Ecology)\",\"Livin' On a Prayer\",\"Good Lovin'\",\"50 Ways to Leave Your Lover\",\"Stronger\",\"I Can See Clearly Now\",\"We Are the Champions\",\"(I've Got a Gal In) Kalamazoo\",\"No Scrubs\",\"How Do You Mend a Broken Heart\",\"I Got You (I Feel Good)\",\"Don't Let the Stars Get in Your Eyes\",\"The Girl From Ipanema\",\"(Sexual) Healing\",\"Tears of a Clown\",\"We Will Rock You\",\"Hold On\",\"Bye Bye Love\",\"Chapel of Love\",\"White Rabbit\",\"Rock the Boat\",\"The Gypsy\",\"Take The 'A' Train\",\"Crimson & Clover\",\"Crocodile Rock\",\"Make Love to Me\",\"Nothing's Gonna Stop Us Now\",\"Say Say Say\",\"The Christmas Song (Chestnuts Roasting On An Open Fire)\",\"Un-Break My Heart\",\"Cherish\",\"I'll Be Missing You\",\"Drops of Jupiter (Tell Me)\",\"There goes my baby\",\"You Send Me\",\"If (They Made Me a King)\",\"The Prisoner's Song\",\"ABC\",\"Do Wah Diddy Diddy\",\"He's So Fine\",\"A Boy Named Sue\",\"Roll Over Beethoven\",\"Sweet Georgia Brown\",\"Earth Angel\",\"Rehab\",\"(You Keep Me) Hangin' On\",\"This Diamond Ring\",\"Be My Love\",\"Rush Rush\",\"You're Beautiful\",\"Roll With It\",\"Moonlight Serenade\",\"Unbelievable\",\"Peg o' My Heart\",\"This Land is Your Land\",\"Stranger On the Shore\",\"Rum & Coca-Cola\",\"Hit the Road\",\"Without Me\",\"Crazy For You\",\"I Want to Know What Love Is\",\"Bye Bye\",\"Down Under\",\"At the Hop\",\"One Bad Apple\",\"Kiss & Say Goodbye\",\"For What It's Worth (Stop\",\"The Long & Winding Road\",\"Baby One More Time\",\"Stairway to Heaven\",\"How Do I Live?\",\"Hello\",\"Truly Madly Deeply\",\"Great Balls of Fire\",\"King of the Road\",\"I Wanna Dance With Somebody (Who Loves Me)\",\"Reunited\",\"Help Me\",\"Rags to Riches\",\"(It's No) Sin\",\"Say My Name\",\"Nobody Does it Better\",\"Paperback Writer\",\"Don't Worry Be Happy\",\"I Fall to Pieces\",\"Body & Soul\",\"You're Still the One\",\"Stormy Weather (Keeps Rainin' All the Time)\",\"Horse With No Name\",\"American Woman\",\"Chattanoogie Shoe-Shine Boy\",\"Pick Up the Pieces\",\"Everybody Wants to Rule the World\",\"Blue Tango\",\"Hurt So Good\",\"Apologize\",\"Let's Dance\",\"(You're My) Soul & Inspiration\",\"I Only Have Eyes For You\",\"Wichita Lineman\",\"Hanging by a Moment\",\"Spinning Wheel\",\"Look Away\",\"Ironic\",\"Don't Stop 'Til You Get Enough\",\"Empire State Of Mind\",\"Do You Love Me?\",\"Jive Talkin'\",\"You're the One That I Want\",\"Sweet Soul Music\",\"Hey There Delilah\",\"A Whole New World (Aladdin's Theme)\",\"Somethin' Stupid\",\"Knock Three Times\",\"Mickey\",\"The Wanderer\",\"Dancing in the Dark\",\"It's Still Rock 'n' Roll to Me\",\"Boogie Oogie Oogie\",\"Can You Feel the Love Tonight\",\"Harper Valley PTA\",\"Seasons in the Sun\",\"Come On-a My House\",\"Viva La Vida\",\"Walk On By\",\"Drop it Like It's Hot\",\"Private Eyes\",\"Maniac\",\"All My Lovin' (You're Never Gonna Get It)\",\"Take a Bow\",\"Ring of Fire\",\"Save the Last Dance For Me\",\"Make it With You\",\"Don't Speak\",\"I Shot the Sheriff\",\"Say It Right\",\"Sing\",\"Twist & Shout\",\"Walk This Way\",\"A-Tisket A-Tasket\",\"Let Me Love You\",\"I Can Dream\",\"Toxic\",\"The Joker\",\"Hero\",\"In the Year 2525 (Exordium & Terminus)\",\"Your Song\",\"Oh Happy Day\",\"Grease\",\"Love In This Club\",\"Angie\",\"How Much is That Doggy in the Window?\",\"Daydream Believer\",\"Whip It\",\"Boogie Woogie Bugle Boy\",\"Down\",\"Hanky Panky\",\"Total Eclipse of the Heart\",\"Cat's in the Cradle\",\"Strange Fruit\",\"Breathe\",\"On My Own\",\"Dizzy\",\"Ticket to Ride\",\"We Got The Beat\",\"On the Atchison\",\"Always On My Mind\",\"Unforgettable\",\"In the End\",\"Music\",\"Can't Buy Me Love\",\"Chain of Fools\",\"Won't Get Fooled Again\",\"Happy Days Are Here Again\",\"Third Man Theme\",\"Your Cheatin' Heart\",\"Thriller\",\"Venus\",\"Time After Time\",\"That Lucky Old Sun (Just Rolls Around Heaven All Day)\",\"E.T.\",\"Three Coins in the Fountain\",\"Touch Me\",\"You Ain't Seen Nothin' Yet\",\"Gives You Hell\",\"Knock On Wood\",\"One of These Nights\",\"Again\",\"Doo Wop (That Thing)\",\"Whoomp! (There it Is)\",\"Magic\",\"I'm Walking Behind You\",\"We Didn't Start the Fire\",\"Lola\",\"Ghostbusters\",\"Winchester Cathedral\",\"Greatest Love of All\",\"My Love\",\"Wannabe\",\"Miss You\",\"I Feel Fine\",\"Baby Baby\",\"TSOP (The Sound of Philadelphia)\",\"Loving You\",\"This Guy's in Love With You\",\"Till I Waltz Again With You\",\"Why Do Fools Fall in Love?\",\"Nights in White Satin\",\"That's the Way (I Like It)\",\"My Prayer\",\"(Put Another Nickel In) Music! Music! Music!\",\"Colors of the Wind\",\"Morning Train (Nine to Five)\",\"I Went to Your Wedding\",\"Kiss Me\",\"Gypsies\",\"Cracklin' Rosie\",\"Maybellene\",\"Born in the USA\",\"Here Without You\",\"Mony Mony\",\"Mmmbop\",\"You Always Hurt the One You Love\",\"Eight Days a Week\",\"What Goes Around Comes Around\",\"Kung Fu Fighting\",\"Fantasy\",\"Sir Duke\",\"Ain't Misbehavin'\",\"Need You Now\",\"Last Train to Clarksville\",\"Yakety Yak\",\"I'll be seeing you\",\"Hard to Say I'm Sorry\",\"It's My Party\",\"Love to Love You Baby\",\"Miss You Much\",\"Born to Run\",\"Instant Karma\",\"The Rose\",\"Purple Rain\",\"One\",\"Groove is in the Heart\",\"Gimme Some Lovin'\",\"Beautiful Day\",\"Escape (The Pina Colada Song)\",\"Use Somebody\",\"Fortunate Son\",\"Afternoon Delight\",\"Love's Theme\",\"Sailing\",\"Cherry Pink & Apple Blossom White\",\"Georgy Girl\",\"How to Save a Life\",\"I Walk the Line\",\"All You Need is Love\",\"U Can't Touch This\",\"All Out of Love\",\"Where is the Love?\",\"Revolution\",\"The Love You Save\",\"Black Or White\",\"This Used to Be My Playground\",\"Living For the City\",\"School's Out\",\"Disturbia\",\"Riders On the Storm\",\"Some Enchanted Evening\",\"Weak\",\"Maneater\",\"More Than Words\",\"Time of the Season\",\"Mrs Brown You've Got a Lovely Daughter\",\"If You Leave Me Now\",\"Can't Get Enough of Your Love\",\"Na Na Hey Hey (Kiss Him Goodbye)\",\"Mr Brightside\",\"Black Velvet\",\"I'm Yours\",\"My Blue Heaven\",\"It Had to Be You\",\"Tha Crossroads\",\"Ac-cent-tchu-ate the Positive\",\"Everyday People\",\"We Are Young\",\"Take Me Home\",\"Smoke! Smoke! Smoke! (That Cigarette)\",\"In the Summertime\",\"The Tracks of My Tears\",\"Fly Robin Fly\",\"Love is a Many Splendoured Thing\",\"Another Night\",\"Long Tall Sally\",\"You Sexy Thing\",\"The Morning After\",\"Get Off of My Cloud\",\"Roses Are Red\",\"Thank You (Falettinme be Mice Elf Again)\",\"Slow Poke\",\"You Belong With Me\",\"Ain't No Mountain High Enough\",\"Auf Wiederseh'n Sweetheart\",\"Beauty & the Beast\",\"St Louis Blues\",\"Peggy Sue\",\"U Got it Bad\",\"Sweet Caroline (Good Times Never Seemed So Good)\",\"Wedding Bell Blues\",\"Freebird\",\"Wipe Out\",\"California Girls\",\"Being With You\",\"Makin' Whoopee\",\"Shop Around\",\"Smoke On the Water\",\"Hungry Heart\",\"That's Amore\",\"My Life\",\"Brandy (You're A Fine Girl)\",\"Walk Don't Run\",\"Surfin' USA\",\"Ball of Confusion (That's What the World is Today)\",\"Sunshine Superman\",\"Frankenstein\",\"Kiss You All Over\",\"Wishing Well\",\"Piano Man\",\"Ben\",\"In the Ghetto\",\"Hang On Sloopy\",\"Singing The Blues\",\"Cry Like a Baby\",\"I Honestly Love You\",\"Brother\",\"Lookin' Out My Back Door\",\"Candy Man\",\"Burn\",\"Stagger Lee\",\"Moonlight Cocktail\",\"Coming Up\",\"Pop Muzik\",\"As Time Goes By\",\"My Eyes Adored You\",\"Strawberry Fields Forever\",\"Some of These Days\",\"I Think I Love You\",\"Judy in Disguise (With Glasses)\",\"All Along the Watchtower\",\"A Thousand Miles\",\"Fast Car\",\"Red Red Wine\",\"Live & Let Die\",\"Come On Eileen\",\"Right Back Where We Started From\",\"Brother Louie\",\"Ol' Man River\",\"Band On the Run\",\"Rich Girl\",\"Green River\",\"Got to Give it Up\",\"Behind Closed Doors\",\"Don't Go Breaking My Heart\",\"I'm Looking Over a Four Leaf Clover\",\"Mr Big Stuff\",\"Tiger Rag\",\"Kryptonite\",\"Hey Paula\",\"Go Your Own Way\",\"Big Bad John\",\"Wake Me Up Before You Go Go\",\"Tangerine\",\"Wayward Wind\",\"Disco Lady\",\"Spanish Harlem\",\"Wicked Game\",\"Rosanna\",\"Papa Don't Preach\",\"Somebody to Love\",\"Kokomo\",\"Manana (Is Soon Enough For Me)\",\"Puttin' on the Ritz\",\"One More Try\",\"I'll Walk Alone\",\"Shout\",\"Woman\",\"Ballerina\",\"We Built This City\",\"19th Nervous Breakdown\",\"Working My Way Back to You\",\"Superstar\",\"Foolish Games\",\"Get Down Tonight\",\"On Bended Knee\",\"Magic Carpet Ride\",\"Only You (And You Alone)\",\"A String of Pearls\",\"A Tree in the Meadow\",\"So Much in Love\",\"Every Little Thing She Does is Magic\",\"La Bamba\",\"Tighten Up\",\"Three Times a Lady\",\"Airplanes\",\"Don't Leave Me This Way\",\"Rock the Casbah\",\"Feel Good Inc\",\"Love Me Do\",\"Kiss On My List\",\"Give Me Everything\",\"Have You Ever Really Loved a Woman?\",\"Love Letters in the Sand\",\"Ring My Bell\",\"Love Child\",\"I Feel For You\",\"Bye\",\"(Let Me Be Your) Teddy Bear\",\"Soldier Boy\",\"Papa's Got a Brand New Bag\",\"Love Hangover\",\"Spill the Wine\",\"Royals\",\"April Showers\",\"Don't You (Forget About Me)\",\"Travellin' Man\",\"The Thing\",\"You Make Me Feel Brand New\",\"The Glow-Worm\",\"You Don't Bring Me Flowers\",\"Summertime Blues\",\"Straight Up\",\"Sunday\",\"Wake Up Little Susie\",\"She's a Lady\",\"Over There\",\"Little Darlin'\",\"Rag Mop\",\"Shake Down\",\"Up Around the Bend\",\"Harbour Lights\",\"Chances Are\",\"Mood Indigo\",\"Pony Time\",\"After You've Gone\",\"I Wanna Love You\",\"Da Doo Ron Ron (When He Walked Me Home)\",\"If You Don't Know Me By Now\",\"Green Tambourine\",\"My Man\",\"If I Didn't Care\",\"St George & the Dragonette\",\"Why Don't You Believe Me?\",\"How Will I Know\",\"Disco Duck\",\"Lonely Boy\",\"Never Gonna Give You Up\",\"Before The Next Teardrop Falls\",\"Running Scared\",\"Let's Hear it For the Boy\",\"Sleep Walk\",\"Walk On the Wild Side\",\"Memories Are Made of This\",\"Open Arms\",\"Stuck On You\",\"Personality\",\"Feel Like Making Love\",\"Stars & Stripes Forever\",\"Besame Mucho\",\"Let Me Call You Sweetheart\",\"Indian Reservation (The Lament Of The Cherokee Reservation Indian)\",\"Cars\",\"You Make Me Feel Like Dancing\",\"Whatcha Say\",\"Me & Mrs Jones\",\"Bitter Sweet Symphony\",\"Uncle Albert (Admiral Halsey)\",\"More Than a Feeling\",\"My Boyfriend's Back\",\"People\",\"He'll Have to Go\",\"I Can Help\",\"The Streak\",\"Dreams\",\"Hair\",\"Cold\",\"Nothin' on You\",\"The End of the World\",\"Caldonia Boogie (What Makes Your Big Head So Hard)\",\"I Kissed A Girl\",\"Incense & Peppermints\",\"12th Street Rag\",\"West End Blues\",\"The Way You Move\",\"Smoke Gets in Your Eyes\",\"Want Ads\",\"Long Cool Woman in a Black Dress\",\"Hey Baby\",\"(Your Love Keeps Lifting Me) Higher & Higher\",\"He's a Rebel\",\"Alone\",\"Thrift Shop\",\"Don't Let the Sun Go Down On Me\",\"The Sweet Escape\",\"Return to Sender\",\"Here in My Heart\",\"Wabash Cannonball\",\"Ain't That a Shame\",\"Travellin' Band\",\"I'm Your Boogie Man\",\"I Write the Songs\",\"This Love\",\"Lights\",\"Will It Go Round In Circles\",\"Purple Haze\",\"Rock Your Baby\",\"Delicado\",\"Tammy\",\"Check On It\",\"Breaking Up is Hard to Do\",\"1999\",\"Prisoner of Love\",\"Wild Wild West\",\"Walk Like a Man\",\"I Will Follow Him\",\"Glamorous\",\"Yellow Rose of Texas\",\"That Old Black Magic\",\"I'm So Lonesome I Could Cry\",\"Up Up & Away\",\"Baby Come Back\",\"Let it Snow! Let it Snow! Let it Snow!\",\"Pon De Replay\",\"Because I Love You (The Postman Song)\",\"Sleepy Lagoon\",\"Baker Street\",\"Dardanella\",\"You Don't Have to Be a Star (To Be in My Show)\",\"Leaving\",\"Glory of Love\",\"Theme From 'Greatest American Hero' (Believe It Or Not)\",\"Shake You Down\",\"Ole Buttermilk Sky\",\"I Can't Get Started\",\"Freak Me\",\"Hot Child In The City\",\"Man in the Mirror\",\"Queen of Hearts\",\"Let's Groove\",\"Change the World\",\"You make Me Wanna\",\"Someday\",\"Eve of Destruction\",\"One of Us\",\"Honky Tonk\",\"Be Bop a Lula\",\"Two Hearts\",\"Paper Planes\"],_Ue={genre:DUe,song_name:AUe},TUe=_Ue,IUe=[\"activist\",\"artist\",\"author\",\"blogger\",\"business owner\",\"coach\",\"creator\",\"designer\",\"developer\",\"dreamer\",\"educator\",\"engineer\",\"entrepreneur\",\"environmentalist\",\"film lover\",\"filmmaker\",\"foodie\",\"founder\",\"friend\",\"gamer\",\"geek\",\"grad\",\"inventor\",\"leader\",\"model\",\"musician\",\"nerd\",\"parent\",\"patriot\",\"person\",\"philosopher\",\"photographer\",\"public speaker\",\"scientist\",\"singer\",\"streamer\",\"student\",\"teacher\",\"traveler\",\"veteran\",\"writer\"],kUe=[\"{{person.bio_part}}\",\"{{person.bio_part}}, {{person.bio_part}}\",\"{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}}\",\"{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}} {{internet.emoji}}\",\"{{word.noun}} {{person.bio_supporter}}\",\"{{word.noun}} {{person.bio_supporter}} {{internet.emoji}}\",\"{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}}\",\"{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}} {{internet.emoji}}\"],RUe=[\"advocate\",\"devotee\",\"enthusiast\",\"fan\",\"junkie\",\"lover\",\"supporter\"],MUe=[\"Mary\",\"Patricia\",\"Linda\",\"Barbara\",\"Elizabeth\",\"Jennifer\",\"Maria\",\"Susan\",\"Margaret\",\"Dorothy\",\"Lisa\",\"Nancy\",\"Karen\",\"Betty\",\"Helen\",\"Sandra\",\"Donna\",\"Carol\",\"Ruth\",\"Sharon\",\"Michelle\",\"Laura\",\"Sarah\",\"Kimberly\",\"Deborah\",\"Jessica\",\"Shirley\",\"Cynthia\",\"Angela\",\"Melissa\",\"Brenda\",\"Amy\",\"Anna\",\"Rebecca\",\"Virginia\",\"Kathleen\",\"Pamela\",\"Martha\",\"Debra\",\"Amanda\",\"Stephanie\",\"Carolyn\",\"Christine\",\"Marie\",\"Janet\",\"Catherine\",\"Frances\",\"Ann\",\"Joyce\",\"Diane\",\"Alice\",\"Julie\",\"Heather\",\"Teresa\",\"Doris\",\"Gloria\",\"Evelyn\",\"Jean\",\"Cheryl\",\"Mildred\",\"Katherine\",\"Joan\",\"Ashley\",\"Judith\",\"Rose\",\"Janice\",\"Kelly\",\"Nicole\",\"Judy\",\"Christina\",\"Kathy\",\"Theresa\",\"Beverly\",\"Denise\",\"Tammy\",\"Irene\",\"Jane\",\"Lori\",\"Rachel\",\"Marilyn\",\"Andrea\",\"Kathryn\",\"Louise\",\"Sara\",\"Anne\",\"Jacqueline\",\"Wanda\",\"Bonnie\",\"Julia\",\"Ruby\",\"Lois\",\"Tina\",\"Phyllis\",\"Norma\",\"Paula\",\"Diana\",\"Annie\",\"Lillian\",\"Emily\",\"Robin\",\"Peggy\",\"Crystal\",\"Gladys\",\"Rita\",\"Dawn\",\"Connie\",\"Florence\",\"Tracy\",\"Edna\",\"Tiffany\",\"Carmen\",\"Rosa\",\"Cindy\",\"Grace\",\"Wendy\",\"Victoria\",\"Edith\",\"Kim\",\"Sherry\",\"Sylvia\",\"Josephine\",\"Thelma\",\"Shannon\",\"Sheila\",\"Ethel\",\"Ellen\",\"Elaine\",\"Marjorie\",\"Carrie\",\"Charlotte\",\"Monica\",\"Esther\",\"Pauline\",\"Emma\",\"Juanita\",\"Anita\",\"Rhonda\",\"Hazel\",\"Amber\",\"Eva\",\"Debbie\",\"April\",\"Leslie\",\"Clara\",\"Lucille\",\"Jamie\",\"Joanne\",\"Eleanor\",\"Valerie\",\"Danielle\",\"Megan\",\"Alicia\",\"Suzanne\",\"Michele\",\"Gail\",\"Bertha\",\"Darlene\",\"Veronica\",\"Jill\",\"Erin\",\"Geraldine\",\"Lauren\",\"Cathy\",\"Joann\",\"Lorraine\",\"Lynn\",\"Sally\",\"Regina\",\"Erica\",\"Beatrice\",\"Dolores\",\"Bernice\",\"Audrey\",\"Yvonne\",\"Annette\",\"June\",\"Samantha\",\"Marion\",\"Dana\",\"Stacy\",\"Ana\",\"Renee\",\"Ida\",\"Vivian\",\"Roberta\",\"Holly\",\"Brittany\",\"Melanie\",\"Loretta\",\"Yolanda\",\"Jeanette\",\"Laurie\",\"Katie\",\"Kristen\",\"Vanessa\",\"Alma\",\"Sue\",\"Elsie\",\"Beth\",\"Jeanne\",\"Vicki\",\"Carla\",\"Tara\",\"Rosemary\",\"Eileen\",\"Terri\",\"Gertrude\",\"Lucy\",\"Tonya\",\"Ella\",\"Stacey\",\"Wilma\",\"Gina\",\"Kristin\",\"Jessie\",\"Natalie\",\"Agnes\",\"Vera\",\"Willie\",\"Charlene\",\"Bessie\",\"Delores\",\"Melinda\",\"Pearl\",\"Arlene\",\"Maureen\",\"Colleen\",\"Allison\",\"Tamara\",\"Joy\",\"Georgia\",\"Constance\",\"Lillie\",\"Claudia\",\"Jackie\",\"Marcia\",\"Tanya\",\"Nellie\",\"Minnie\",\"Marlene\",\"Heidi\",\"Glenda\",\"Lydia\",\"Viola\",\"Courtney\",\"Marian\",\"Stella\",\"Caroline\",\"Dora\",\"Jo\",\"Vickie\",\"Mattie\",\"Terry\",\"Maxine\",\"Irma\",\"Mabel\",\"Marsha\",\"Myrtle\",\"Lena\",\"Christy\",\"Deanna\",\"Patsy\",\"Hilda\",\"Gwendolyn\",\"Jennie\",\"Nora\",\"Margie\",\"Nina\",\"Cassandra\",\"Leah\",\"Penny\",\"Kay\",\"Priscilla\",\"Naomi\",\"Carole\",\"Brandy\",\"Olga\",\"Billie\",\"Dianne\",\"Tracey\",\"Leona\",\"Jenny\",\"Felicia\",\"Sonia\",\"Miriam\",\"Velma\",\"Becky\",\"Bobbie\",\"Violet\",\"Kristina\",\"Toni\",\"Misty\",\"Mae\",\"Shelly\",\"Daisy\",\"Ramona\",\"Sherri\",\"Erika\",\"Katrina\",\"Claire\",\"Lindsey\",\"Lindsay\",\"Geneva\",\"Guadalupe\",\"Belinda\",\"Margarita\",\"Sheryl\",\"Cora\",\"Faye\",\"Ada\",\"Natasha\",\"Sabrina\",\"Isabel\",\"Marguerite\",\"Hattie\",\"Harriet\",\"Molly\",\"Cecilia\",\"Kristi\",\"Brandi\",\"Blanche\",\"Sandy\",\"Rosie\",\"Joanna\",\"Iris\",\"Eunice\",\"Angie\",\"Inez\",\"Lynda\",\"Madeline\",\"Amelia\",\"Alberta\",\"Genevieve\",\"Monique\",\"Jodi\",\"Janie\",\"Maggie\",\"Kayla\",\"Sonya\",\"Jan\",\"Lee\",\"Kristine\",\"Candace\",\"Fannie\",\"Maryann\",\"Opal\",\"Alison\",\"Yvette\",\"Melody\",\"Luz\",\"Susie\",\"Olivia\",\"Flora\",\"Shelley\",\"Kristy\",\"Mamie\",\"Lula\",\"Lola\",\"Verna\",\"Beulah\",\"Antoinette\",\"Candice\",\"Juana\",\"Jeannette\",\"Pam\",\"Kelli\",\"Hannah\",\"Whitney\",\"Bridget\",\"Karla\",\"Celia\",\"Latoya\",\"Patty\",\"Shelia\",\"Gayle\",\"Della\",\"Vicky\",\"Lynne\",\"Sheri\",\"Marianne\",\"Kara\",\"Jacquelyn\",\"Erma\",\"Blanca\",\"Myra\",\"Leticia\",\"Pat\",\"Krista\",\"Roxanne\",\"Angelica\",\"Johnnie\",\"Robyn\",\"Francis\",\"Adrienne\",\"Rosalie\",\"Alexandra\",\"Brooke\",\"Bethany\",\"Sadie\",\"Bernadette\",\"Traci\",\"Jody\",\"Kendra\",\"Jasmine\",\"Nichole\",\"Rachael\",\"Chelsea\",\"Mable\",\"Ernestine\",\"Muriel\",\"Marcella\",\"Elena\",\"Krystal\",\"Angelina\",\"Nadine\",\"Kari\",\"Estelle\",\"Dianna\",\"Paulette\",\"Lora\",\"Mona\",\"Doreen\",\"Rosemarie\",\"Angel\",\"Desiree\",\"Antonia\",\"Hope\",\"Ginger\",\"Janis\",\"Betsy\",\"Christie\",\"Freda\",\"Mercedes\",\"Meredith\",\"Lynette\",\"Teri\",\"Cristina\",\"Eula\",\"Leigh\",\"Meghan\",\"Sophia\",\"Eloise\",\"Rochelle\",\"Gretchen\",\"Cecelia\",\"Raquel\",\"Henrietta\",\"Alyssa\",\"Jana\",\"Kelley\",\"Gwen\",\"Kerry\",\"Jenna\",\"Tricia\",\"Laverne\",\"Olive\",\"Alexis\",\"Tasha\",\"Silvia\",\"Elvira\",\"Casey\",\"Delia\",\"Sophie\",\"Kate\",\"Patti\",\"Lorena\",\"Kellie\",\"Sonja\",\"Lila\",\"Lana\",\"Darla\",\"May\",\"Mindy\",\"Essie\",\"Mandy\",\"Lorene\",\"Elsa\",\"Josefina\",\"Jeannie\",\"Miranda\",\"Dixie\",\"Lucia\",\"Marta\",\"Faith\",\"Lela\",\"Johanna\",\"Shari\",\"Camille\",\"Tami\",\"Shawna\",\"Elisa\",\"Ebony\",\"Melba\",\"Ora\",\"Nettie\",\"Tabitha\",\"Ollie\",\"Jaime\",\"Winifred\",\"Kristie\"],PUe=[\"Abigail\",\"Adele\",\"Alex\",\"Alice\",\"Alisha\",\"Amber\",\"Amelia\",\"Amora\",\"Anaïs\",\"Angelou\",\"Anika\",\"Anise\",\"Annabel\",\"Anne\",\"Aphrodite\",\"Aretha\",\"Arya\",\"Ashton\",\"Aster\",\"Audrey\",\"Avery\",\"Bailee\",\"Bay\",\"Belle\",\"Beth\",\"Billie\",\"Blair\",\"Blaise\",\"Blake\",\"Blanche\",\"Blue\",\"Bree\",\"Brielle\",\"Brienne\",\"Brooke\",\"Caleen\",\"Candice\",\"Caprice\",\"Carelyn\",\"Caylen\",\"Celine\",\"Cerise\",\"Cia\",\"Claire\",\"Claudia\",\"Clementine\",\"Coral\",\"Coraline\",\"Dahlia\",\"Dakota\",\"Dawn\",\"Della\",\"Demi\",\"Denise\",\"Denver\",\"Devine\",\"Devon\",\"Diana\",\"Dylan\",\"Ebony\",\"Eden\",\"Eleanor\",\"Elein\",\"Elizabeth\",\"Ellen\",\"Elodie\",\"Eloise\",\"Ember\",\"Emma\",\"Erin\",\"Eyre\",\"Faith\",\"Farrah\",\"Fawn\",\"Fayre\",\"Fern\",\"France\",\"Francis\",\"Frida\",\"Genisis\",\"Georgia\",\"Grace\",\"Gwen\",\"Harley\",\"Harper\",\"Hazel\",\"Helen\",\"Hippolyta\",\"Holly\",\"Hope\",\"Imani\",\"Iowa\",\"Ireland\",\"Irene\",\"Iris\",\"Isa\",\"Isla\",\"Ivy\",\"Jade\",\"Jane\",\"Jazz\",\"Jean\",\"Jess\",\"Jett\",\"Jo\",\"Joan\",\"Jolie\",\"Jordan\",\"Josie\",\"Journey\",\"Joy\",\"Jules\",\"Julien\",\"Juliet\",\"Juniper\",\"Justice\",\"Kali\",\"Karma\",\"Kat\",\"Kate\",\"Kennedy\",\"Keva\",\"Kylie\",\"Lake\",\"Lane\",\"Lark\",\"Layla\",\"Lee\",\"Leigh\",\"Leona\",\"Lexi\",\"London\",\"Lou\",\"Louise\",\"Love\",\"Luna\",\"Lux\",\"Lynn\",\"Lyric\",\"Maddie\",\"Mae\",\"Marie\",\"Matilda\",\"Maude\",\"Maybel\",\"Meadow\",\"Medusa\",\"Mercy\",\"Michelle\",\"Mirabel\",\"Monroe\",\"Morgan\",\"Nalia\",\"Naomi\",\"Nova\",\"Olive\",\"Paige\",\"Parker\",\"Pax\",\"Pearl\",\"Penelope\",\"Phoenix\",\"Quinn\",\"Rae\",\"Rain\",\"Raven\",\"Ray\",\"Raye\",\"Rebel\",\"Reese\",\"Reeve\",\"Regan\",\"Riley\",\"River\",\"Robin\",\"Rory\",\"Rose\",\"Royal\",\"Ruth\",\"Rylie\",\"Sage\",\"Sam\",\"Saturn\",\"Scout\",\"Serena\",\"Sky\",\"Skylar\",\"Sofia\",\"Sophia\",\"Storm\",\"Sue\",\"Suzanne\",\"Sydney\",\"Taylen\",\"Taylor\",\"Teagan\",\"Tempest\",\"Tenley\",\"Thea\",\"Trinity\",\"Valerie\",\"Venus\",\"Vera\",\"Violet\",\"Willow\",\"Winter\",\"Xena\",\"Zaylee\",\"Zion\",\"Zoe\"],Kue=[\"Mrs.\",\"Ms.\",\"Miss\",\"Dr.\"],OUe=[\"Aaliyah\",\"Aaron\",\"Abagail\",\"Abbey\",\"Abbie\",\"Abbigail\",\"Abby\",\"Abdiel\",\"Abdul\",\"Abdullah\",\"Abe\",\"Abel\",\"Abelardo\",\"Abigail\",\"Abigale\",\"Abigayle\",\"Abner\",\"Abraham\",\"Ada\",\"Adah\",\"Adalberto\",\"Adaline\",\"Adam\",\"Adan\",\"Addie\",\"Addison\",\"Adela\",\"Adelbert\",\"Adele\",\"Adelia\",\"Adeline\",\"Adell\",\"Adella\",\"Adelle\",\"Aditya\",\"Adolf\",\"Adolfo\",\"Adolph\",\"Adolphus\",\"Adonis\",\"Adrain\",\"Adrian\",\"Adriana\",\"Adrianna\",\"Adriel\",\"Adrien\",\"Adrienne\",\"Afton\",\"Aglae\",\"Agnes\",\"Agustin\",\"Agustina\",\"Ahmad\",\"Ahmed\",\"Aida\",\"Aidan\",\"Aiden\",\"Aileen\",\"Aimee\",\"Aisha\",\"Aiyana\",\"Akeem\",\"Al\",\"Alaina\",\"Alan\",\"Alana\",\"Alanis\",\"Alanna\",\"Alayna\",\"Alba\",\"Albert\",\"Alberta\",\"Albertha\",\"Alberto\",\"Albin\",\"Albina\",\"Alda\",\"Alden\",\"Alec\",\"Aleen\",\"Alejandra\",\"Alejandrin\",\"Alek\",\"Alena\",\"Alene\",\"Alessandra\",\"Alessandro\",\"Alessia\",\"Aletha\",\"Alex\",\"Alexa\",\"Alexander\",\"Alexandra\",\"Alexandre\",\"Alexandrea\",\"Alexandria\",\"Alexandrine\",\"Alexandro\",\"Alexane\",\"Alexanne\",\"Alexie\",\"Alexis\",\"Alexys\",\"Alexzander\",\"Alf\",\"Alfonso\",\"Alfonzo\",\"Alford\",\"Alfred\",\"Alfreda\",\"Alfredo\",\"Ali\",\"Alia\",\"Alice\",\"Alicia\",\"Alisa\",\"Alisha\",\"Alison\",\"Alivia\",\"Aliya\",\"Aliyah\",\"Aliza\",\"Alize\",\"Allan\",\"Allen\",\"Allene\",\"Allie\",\"Allison\",\"Ally\",\"Alphonso\",\"Alta\",\"Althea\",\"Alva\",\"Alvah\",\"Alvena\",\"Alvera\",\"Alverta\",\"Alvina\",\"Alvis\",\"Alyce\",\"Alycia\",\"Alysa\",\"Alysha\",\"Alyson\",\"Alysson\",\"Amalia\",\"Amanda\",\"Amani\",\"Amara\",\"Amari\",\"Amaya\",\"Amber\",\"Ambrose\",\"Amelia\",\"Amelie\",\"Amely\",\"America\",\"Americo\",\"Amie\",\"Amina\",\"Amir\",\"Amira\",\"Amiya\",\"Amos\",\"Amparo\",\"Amy\",\"Amya\",\"Ana\",\"Anabel\",\"Anabelle\",\"Anahi\",\"Anais\",\"Anastacio\",\"Anastasia\",\"Anderson\",\"Andre\",\"Andreane\",\"Andreanne\",\"Andres\",\"Andrew\",\"Andy\",\"Angel\",\"Angela\",\"Angelica\",\"Angelina\",\"Angeline\",\"Angelita\",\"Angelo\",\"Angie\",\"Angus\",\"Anibal\",\"Anika\",\"Anissa\",\"Anita\",\"Aniya\",\"Aniyah\",\"Anjali\",\"Anna\",\"Annabel\",\"Annabell\",\"Annabelle\",\"Annalise\",\"Annamae\",\"Annamarie\",\"Anne\",\"Annetta\",\"Annette\",\"Annie\",\"Ansel\",\"Ansley\",\"Anthony\",\"Antoinette\",\"Antone\",\"Antonetta\",\"Antonette\",\"Antonia\",\"Antonietta\",\"Antonina\",\"Antonio\",\"Antwan\",\"Antwon\",\"Anya\",\"April\",\"Ara\",\"Araceli\",\"Aracely\",\"Arch\",\"Archibald\",\"Ardella\",\"Arden\",\"Ardith\",\"Arely\",\"Ari\",\"Ariane\",\"Arianna\",\"Aric\",\"Ariel\",\"Arielle\",\"Arjun\",\"Arlene\",\"Arlie\",\"Arlo\",\"Armand\",\"Armando\",\"Armani\",\"Arnaldo\",\"Arne\",\"Arno\",\"Arnold\",\"Arnoldo\",\"Arnulfo\",\"Aron\",\"Art\",\"Arthur\",\"Arturo\",\"Arvel\",\"Arvid\",\"Arvilla\",\"Aryanna\",\"Asa\",\"Asha\",\"Ashlee\",\"Ashleigh\",\"Ashley\",\"Ashly\",\"Ashlynn\",\"Ashton\",\"Ashtyn\",\"Asia\",\"Assunta\",\"Astrid\",\"Athena\",\"Aubree\",\"Aubrey\",\"Audie\",\"Audra\",\"Audreanne\",\"Audrey\",\"August\",\"Augusta\",\"Augustine\",\"Augustus\",\"Aurelia\",\"Aurelie\",\"Aurelio\",\"Aurore\",\"Austen\",\"Austin\",\"Austyn\",\"Autumn\",\"Ava\",\"Avery\",\"Avis\",\"Axel\",\"Ayana\",\"Ayden\",\"Ayla\",\"Aylin\",\"Baby\",\"Bailee\",\"Bailey\",\"Barbara\",\"Barney\",\"Baron\",\"Barrett\",\"Barry\",\"Bart\",\"Bartholome\",\"Barton\",\"Baylee\",\"Beatrice\",\"Beau\",\"Beaulah\",\"Bell\",\"Bella\",\"Belle\",\"Ben\",\"Benedict\",\"Benjamin\",\"Bennett\",\"Bennie\",\"Benny\",\"Benton\",\"Berenice\",\"Bernadette\",\"Bernadine\",\"Bernard\",\"Bernardo\",\"Berneice\",\"Bernhard\",\"Bernice\",\"Bernie\",\"Berniece\",\"Bernita\",\"Berry\",\"Bert\",\"Berta\",\"Bertha\",\"Bertram\",\"Bertrand\",\"Beryl\",\"Bessie\",\"Beth\",\"Bethany\",\"Bethel\",\"Betsy\",\"Bette\",\"Bettie\",\"Betty\",\"Bettye\",\"Beulah\",\"Beverly\",\"Bianka\",\"Bill\",\"Billie\",\"Billy\",\"Birdie\",\"Blair\",\"Blaise\",\"Blake\",\"Blanca\",\"Blanche\",\"Blaze\",\"Bo\",\"Bobbie\",\"Bobby\",\"Bonita\",\"Bonnie\",\"Boris\",\"Boyd\",\"Brad\",\"Braden\",\"Bradford\",\"Bradley\",\"Bradly\",\"Brady\",\"Braeden\",\"Brain\",\"Brandi\",\"Brando\",\"Brandon\",\"Brandt\",\"Brandy\",\"Brandyn\",\"Brannon\",\"Branson\",\"Brant\",\"Braulio\",\"Braxton\",\"Brayan\",\"Breana\",\"Breanna\",\"Breanne\",\"Brenda\",\"Brendan\",\"Brenden\",\"Brendon\",\"Brenna\",\"Brennan\",\"Brennon\",\"Brent\",\"Bret\",\"Brett\",\"Bria\",\"Brian\",\"Briana\",\"Brianne\",\"Brice\",\"Bridget\",\"Bridgette\",\"Bridie\",\"Brielle\",\"Brigitte\",\"Brionna\",\"Brisa\",\"Britney\",\"Brittany\",\"Brock\",\"Broderick\",\"Brody\",\"Brook\",\"Brooke\",\"Brooklyn\",\"Brooks\",\"Brown\",\"Bruce\",\"Bryana\",\"Bryce\",\"Brycen\",\"Bryon\",\"Buck\",\"Bud\",\"Buddy\",\"Buford\",\"Bulah\",\"Burdette\",\"Burley\",\"Burnice\",\"Buster\",\"Cade\",\"Caden\",\"Caesar\",\"Caitlyn\",\"Cale\",\"Caleb\",\"Caleigh\",\"Cali\",\"Calista\",\"Callie\",\"Camden\",\"Cameron\",\"Camila\",\"Camilla\",\"Camille\",\"Camren\",\"Camron\",\"Camryn\",\"Camylle\",\"Candace\",\"Candelario\",\"Candice\",\"Candida\",\"Candido\",\"Cara\",\"Carey\",\"Carissa\",\"Carlee\",\"Carleton\",\"Carley\",\"Carli\",\"Carlie\",\"Carlo\",\"Carlos\",\"Carlotta\",\"Carmel\",\"Carmela\",\"Carmella\",\"Carmelo\",\"Carmen\",\"Carmine\",\"Carol\",\"Carolanne\",\"Carole\",\"Carolina\",\"Caroline\",\"Carolyn\",\"Carolyne\",\"Carrie\",\"Carroll\",\"Carson\",\"Carter\",\"Cary\",\"Casandra\",\"Casey\",\"Casimer\",\"Casimir\",\"Casper\",\"Cassandra\",\"Cassandre\",\"Cassidy\",\"Cassie\",\"Catalina\",\"Caterina\",\"Catharine\",\"Catherine\",\"Cathrine\",\"Cathryn\",\"Cathy\",\"Cayla\",\"Ceasar\",\"Cecelia\",\"Cecil\",\"Cecile\",\"Cecilia\",\"Cedrick\",\"Celestine\",\"Celestino\",\"Celia\",\"Celine\",\"Cesar\",\"Chad\",\"Chadd\",\"Chadrick\",\"Chaim\",\"Chance\",\"Chandler\",\"Chanel\",\"Chanelle\",\"Charity\",\"Charlene\",\"Charles\",\"Charley\",\"Charlie\",\"Charlotte\",\"Chase\",\"Chasity\",\"Chauncey\",\"Chaya\",\"Chaz\",\"Chelsea\",\"Chelsey\",\"Chelsie\",\"Chesley\",\"Chester\",\"Chet\",\"Cheyanne\",\"Cheyenne\",\"Chloe\",\"Chris\",\"Christ\",\"Christa\",\"Christelle\",\"Christian\",\"Christiana\",\"Christina\",\"Christine\",\"Christop\",\"Christophe\",\"Christopher\",\"Christy\",\"Chyna\",\"Ciara\",\"Cicero\",\"Cielo\",\"Cierra\",\"Cindy\",\"Citlalli\",\"Clair\",\"Claire\",\"Clara\",\"Clarabelle\",\"Clare\",\"Clarissa\",\"Clark\",\"Claud\",\"Claude\",\"Claudia\",\"Claudie\",\"Claudine\",\"Clay\",\"Clemens\",\"Clement\",\"Clementina\",\"Clementine\",\"Clemmie\",\"Cleo\",\"Cleora\",\"Cleta\",\"Cletus\",\"Cleve\",\"Cleveland\",\"Clifford\",\"Clifton\",\"Clint\",\"Clinton\",\"Clotilde\",\"Clovis\",\"Cloyd\",\"Clyde\",\"Coby\",\"Cody\",\"Colby\",\"Cole\",\"Coleman\",\"Colin\",\"Colleen\",\"Collin\",\"Colt\",\"Colten\",\"Colton\",\"Columbus\",\"Concepcion\",\"Conner\",\"Connie\",\"Connor\",\"Conor\",\"Conrad\",\"Constance\",\"Constantin\",\"Consuelo\",\"Cooper\",\"Cora\",\"Coralie\",\"Corbin\",\"Cordelia\",\"Cordell\",\"Cordia\",\"Cordie\",\"Corene\",\"Corine\",\"Cornelius\",\"Cornell\",\"Corrine\",\"Cortez\",\"Cortney\",\"Cory\",\"Coty\",\"Courtney\",\"Coy\",\"Craig\",\"Crawford\",\"Creola\",\"Cristal\",\"Cristian\",\"Cristina\",\"Cristobal\",\"Cristopher\",\"Cruz\",\"Crystal\",\"Crystel\",\"Cullen\",\"Curt\",\"Curtis\",\"Cydney\",\"Cynthia\",\"Cyril\",\"Cyrus\",\"Dagmar\",\"Dahlia\",\"Daija\",\"Daisha\",\"Daisy\",\"Dakota\",\"Dale\",\"Dallas\",\"Dallin\",\"Dalton\",\"Damaris\",\"Dameon\",\"Damian\",\"Damien\",\"Damion\",\"Damon\",\"Dan\",\"Dana\",\"Dandre\",\"Dane\",\"D'angelo\",\"Dangelo\",\"Danial\",\"Daniela\",\"Daniella\",\"Danielle\",\"Danika\",\"Dannie\",\"Danny\",\"Dante\",\"Danyka\",\"Daphne\",\"Daphnee\",\"Daphney\",\"Darby\",\"Daren\",\"Darian\",\"Dariana\",\"Darien\",\"Dario\",\"Darion\",\"Darius\",\"Darlene\",\"Daron\",\"Darrel\",\"Darrell\",\"Darren\",\"Darrick\",\"Darrin\",\"Darrion\",\"Darron\",\"Darryl\",\"Darwin\",\"Daryl\",\"Dashawn\",\"Dasia\",\"Dave\",\"David\",\"Davin\",\"Davion\",\"Davon\",\"Davonte\",\"Dawn\",\"Dawson\",\"Dax\",\"Dayana\",\"Dayna\",\"Dayne\",\"Dayton\",\"Dean\",\"Deangelo\",\"Deanna\",\"Deborah\",\"Declan\",\"Dedric\",\"Dedrick\",\"Dee\",\"Deion\",\"Deja\",\"Dejah\",\"Dejon\",\"Dejuan\",\"Delaney\",\"Delbert\",\"Delfina\",\"Delia\",\"Delilah\",\"Dell\",\"Della\",\"Delmer\",\"Delores\",\"Delpha\",\"Delphia\",\"Delphine\",\"Delta\",\"Demarco\",\"Demarcus\",\"Demario\",\"Demetris\",\"Demetrius\",\"Demond\",\"Dena\",\"Denis\",\"Dennis\",\"Deon\",\"Deondre\",\"Deontae\",\"Deonte\",\"Dereck\",\"Derek\",\"Derick\",\"Deron\",\"Derrick\",\"Deshaun\",\"Deshawn\",\"Desiree\",\"Desmond\",\"Dessie\",\"Destany\",\"Destin\",\"Destinee\",\"Destiney\",\"Destini\",\"Destiny\",\"Devan\",\"Devante\",\"Deven\",\"Devin\",\"Devon\",\"Devonte\",\"Devyn\",\"Dewayne\",\"Dewitt\",\"Dexter\",\"Diamond\",\"Diana\",\"Dianna\",\"Diego\",\"Dillan\",\"Dillon\",\"Dimitri\",\"Dina\",\"Dino\",\"Dion\",\"Dixie\",\"Dock\",\"Dolly\",\"Dolores\",\"Domenic\",\"Domenica\",\"Domenick\",\"Domenico\",\"Domingo\",\"Dominic\",\"Dominique\",\"Don\",\"Donald\",\"Donato\",\"Donavon\",\"Donna\",\"Donnell\",\"Donnie\",\"Donny\",\"Dora\",\"Dorcas\",\"Dorian\",\"Doris\",\"Dorothea\",\"Dorothy\",\"Dorris\",\"Dortha\",\"Dorthy\",\"Doug\",\"Douglas\",\"Dovie\",\"Doyle\",\"Drake\",\"Drew\",\"Duane\",\"Dudley\",\"Dulce\",\"Duncan\",\"Durward\",\"Dustin\",\"Dusty\",\"Dwight\",\"Dylan\",\"Earl\",\"Earlene\",\"Earline\",\"Earnest\",\"Earnestine\",\"Easter\",\"Easton\",\"Ebba\",\"Ebony\",\"Ed\",\"Eda\",\"Edd\",\"Eddie\",\"Eden\",\"Edgar\",\"Edgardo\",\"Edison\",\"Edmond\",\"Edmund\",\"Edna\",\"Eduardo\",\"Edward\",\"Edwardo\",\"Edwin\",\"Edwina\",\"Edyth\",\"Edythe\",\"Effie\",\"Efrain\",\"Efren\",\"Eileen\",\"Einar\",\"Eino\",\"Eladio\",\"Elaina\",\"Elbert\",\"Elda\",\"Eldon\",\"Eldora\",\"Eldred\",\"Eldridge\",\"Eleanora\",\"Eleanore\",\"Eleazar\",\"Electa\",\"Elena\",\"Elenor\",\"Elenora\",\"Eleonore\",\"Elfrieda\",\"Eli\",\"Elian\",\"Eliane\",\"Elias\",\"Eliezer\",\"Elijah\",\"Elinor\",\"Elinore\",\"Elisa\",\"Elisabeth\",\"Elise\",\"Eliseo\",\"Elisha\",\"Elissa\",\"Eliza\",\"Elizabeth\",\"Ella\",\"Ellen\",\"Ellie\",\"Elliot\",\"Elliott\",\"Ellis\",\"Ellsworth\",\"Elmer\",\"Elmira\",\"Elmo\",\"Elmore\",\"Elna\",\"Elnora\",\"Elody\",\"Eloisa\",\"Eloise\",\"Elouise\",\"Eloy\",\"Elroy\",\"Elsa\",\"Else\",\"Elsie\",\"Elta\",\"Elton\",\"Elva\",\"Elvera\",\"Elvie\",\"Elvis\",\"Elwin\",\"Elwyn\",\"Elyse\",\"Elyssa\",\"Elza\",\"Emanuel\",\"Emelia\",\"Emelie\",\"Emely\",\"Emerald\",\"Emerson\",\"Emery\",\"Emie\",\"Emil\",\"Emile\",\"Emilia\",\"Emiliano\",\"Emilie\",\"Emilio\",\"Emily\",\"Emma\",\"Emmalee\",\"Emmanuel\",\"Emmanuelle\",\"Emmet\",\"Emmett\",\"Emmie\",\"Emmitt\",\"Emmy\",\"Emory\",\"Ena\",\"Enid\",\"Enoch\",\"Enola\",\"Enos\",\"Enrico\",\"Enrique\",\"Ephraim\",\"Era\",\"Eriberto\",\"Eric\",\"Erica\",\"Erich\",\"Erick\",\"Ericka\",\"Erik\",\"Erika\",\"Erin\",\"Erling\",\"Erna\",\"Ernest\",\"Ernestina\",\"Ernestine\",\"Ernesto\",\"Ernie\",\"Ervin\",\"Erwin\",\"Eryn\",\"Esmeralda\",\"Esperanza\",\"Esta\",\"Esteban\",\"Estefania\",\"Estel\",\"Estell\",\"Estella\",\"Estelle\",\"Estevan\",\"Esther\",\"Estrella\",\"Etha\",\"Ethan\",\"Ethel\",\"Ethelyn\",\"Ethyl\",\"Ettie\",\"Eudora\",\"Eugene\",\"Eugenia\",\"Eula\",\"Eulah\",\"Eulalia\",\"Euna\",\"Eunice\",\"Eusebio\",\"Eva\",\"Evalyn\",\"Evan\",\"Evangeline\",\"Evans\",\"Eve\",\"Eveline\",\"Evelyn\",\"Everardo\",\"Everett\",\"Everette\",\"Evert\",\"Evie\",\"Ewald\",\"Ewell\",\"Ezekiel\",\"Ezequiel\",\"Ezra\",\"Fabian\",\"Fabiola\",\"Fae\",\"Fannie\",\"Fanny\",\"Fatima\",\"Faustino\",\"Fausto\",\"Favian\",\"Fay\",\"Faye\",\"Federico\",\"Felicia\",\"Felicita\",\"Felicity\",\"Felipa\",\"Felipe\",\"Felix\",\"Felton\",\"Fermin\",\"Fern\",\"Fernando\",\"Ferne\",\"Fidel\",\"Filiberto\",\"Filomena\",\"Finn\",\"Fiona\",\"Flavie\",\"Flavio\",\"Fleta\",\"Fletcher\",\"Flo\",\"Florence\",\"Florencio\",\"Florian\",\"Florida\",\"Florine\",\"Flossie\",\"Floy\",\"Floyd\",\"Ford\",\"Forest\",\"Forrest\",\"Foster\",\"Frances\",\"Francesca\",\"Francesco\",\"Francis\",\"Francisca\",\"Francisco\",\"Franco\",\"Frank\",\"Frankie\",\"Franz\",\"Fred\",\"Freda\",\"Freddie\",\"Freddy\",\"Frederic\",\"Frederick\",\"Frederik\",\"Frederique\",\"Fredrick\",\"Fredy\",\"Freeda\",\"Freeman\",\"Freida\",\"Frida\",\"Frieda\",\"Friedrich\",\"Fritz\",\"Furman\",\"Gabe\",\"Gabriel\",\"Gabriella\",\"Gabrielle\",\"Gaetano\",\"Gage\",\"Gail\",\"Gardner\",\"Garett\",\"Garfield\",\"Garland\",\"Garnet\",\"Garnett\",\"Garret\",\"Garrett\",\"Garrick\",\"Garrison\",\"Garry\",\"Garth\",\"Gaston\",\"Gavin\",\"Gayle\",\"Gene\",\"General\",\"Genesis\",\"Genevieve\",\"Gennaro\",\"Genoveva\",\"Geo\",\"Geoffrey\",\"George\",\"Georgette\",\"Georgiana\",\"Georgianna\",\"Geovanni\",\"Geovanny\",\"Geovany\",\"Gerald\",\"Geraldine\",\"Gerard\",\"Gerardo\",\"Gerda\",\"Gerhard\",\"Germaine\",\"German\",\"Gerry\",\"Gerson\",\"Gertrude\",\"Gia\",\"Gianni\",\"Gideon\",\"Gilbert\",\"Gilberto\",\"Gilda\",\"Giles\",\"Gillian\",\"Gina\",\"Gino\",\"Giovani\",\"Giovanna\",\"Giovanni\",\"Giovanny\",\"Gisselle\",\"Giuseppe\",\"Gladyce\",\"Gladys\",\"Glen\",\"Glenda\",\"Glenna\",\"Glennie\",\"Gloria\",\"Godfrey\",\"Golda\",\"Golden\",\"Gonzalo\",\"Gordon\",\"Grace\",\"Gracie\",\"Graciela\",\"Grady\",\"Graham\",\"Grant\",\"Granville\",\"Grayce\",\"Grayson\",\"Green\",\"Greg\",\"Gregg\",\"Gregoria\",\"Gregorio\",\"Gregory\",\"Greta\",\"Gretchen\",\"Greyson\",\"Griffin\",\"Grover\",\"Guadalupe\",\"Gudrun\",\"Guido\",\"Guillermo\",\"Guiseppe\",\"Gunnar\",\"Gunner\",\"Gus\",\"Gussie\",\"Gust\",\"Gustave\",\"Guy\",\"Gwen\",\"Gwendolyn\",\"Hadley\",\"Hailee\",\"Hailey\",\"Hailie\",\"Hal\",\"Haleigh\",\"Haley\",\"Halie\",\"Halle\",\"Hallie\",\"Hank\",\"Hanna\",\"Hannah\",\"Hans\",\"Hardy\",\"Harley\",\"Harmon\",\"Harmony\",\"Harold\",\"Harrison\",\"Harry\",\"Harvey\",\"Haskell\",\"Hassan\",\"Hassie\",\"Hattie\",\"Haven\",\"Hayden\",\"Haylee\",\"Hayley\",\"Haylie\",\"Hazel\",\"Hazle\",\"Heath\",\"Heather\",\"Heaven\",\"Heber\",\"Hector\",\"Heidi\",\"Helen\",\"Helena\",\"Helene\",\"Helga\",\"Hellen\",\"Helmer\",\"Heloise\",\"Henderson\",\"Henri\",\"Henriette\",\"Henry\",\"Herbert\",\"Herman\",\"Hermann\",\"Hermina\",\"Herminia\",\"Herminio\",\"Hershel\",\"Herta\",\"Hertha\",\"Hester\",\"Hettie\",\"Hilario\",\"Hilbert\",\"Hilda\",\"Hildegard\",\"Hillard\",\"Hillary\",\"Hilma\",\"Hilton\",\"Hipolito\",\"Hiram\",\"Hobart\",\"Holden\",\"Hollie\",\"Hollis\",\"Holly\",\"Hope\",\"Horace\",\"Horacio\",\"Hortense\",\"Hosea\",\"Houston\",\"Howard\",\"Howell\",\"Hoyt\",\"Hubert\",\"Hudson\",\"Hugh\",\"Hulda\",\"Humberto\",\"Hunter\",\"Hyman\",\"Ian\",\"Ibrahim\",\"Icie\",\"Ida\",\"Idell\",\"Idella\",\"Ignacio\",\"Ignatius\",\"Ike\",\"Ila\",\"Ilene\",\"Iliana\",\"Ima\",\"Imani\",\"Imelda\",\"Immanuel\",\"Imogene\",\"Ines\",\"Irma\",\"Irving\",\"Irwin\",\"Isaac\",\"Isabel\",\"Isabell\",\"Isabella\",\"Isabelle\",\"Isac\",\"Isadore\",\"Isai\",\"Isaiah\",\"Isaias\",\"Isidro\",\"Ismael\",\"Isobel\",\"Isom\",\"Israel\",\"Issac\",\"Itzel\",\"Iva\",\"Ivah\",\"Ivory\",\"Ivy\",\"Izabella\",\"Izaiah\",\"Jabari\",\"Jace\",\"Jacey\",\"Jacinthe\",\"Jacinto\",\"Jack\",\"Jackeline\",\"Jackie\",\"Jacklyn\",\"Jackson\",\"Jacky\",\"Jaclyn\",\"Jacquelyn\",\"Jacques\",\"Jacynthe\",\"Jada\",\"Jade\",\"Jaden\",\"Jadon\",\"Jadyn\",\"Jaeden\",\"Jaida\",\"Jaiden\",\"Jailyn\",\"Jaime\",\"Jairo\",\"Jakayla\",\"Jake\",\"Jakob\",\"Jaleel\",\"Jalen\",\"Jalon\",\"Jalyn\",\"Jamaal\",\"Jamal\",\"Jamar\",\"Jamarcus\",\"Jamel\",\"Jameson\",\"Jamey\",\"Jamie\",\"Jamil\",\"Jamir\",\"Jamison\",\"Jammie\",\"Jan\",\"Jana\",\"Janae\",\"Jane\",\"Janelle\",\"Janessa\",\"Janet\",\"Janice\",\"Janick\",\"Janie\",\"Janis\",\"Janiya\",\"Jannie\",\"Jany\",\"Jaquan\",\"Jaquelin\",\"Jaqueline\",\"Jared\",\"Jaren\",\"Jarod\",\"Jaron\",\"Jarred\",\"Jarrell\",\"Jarret\",\"Jarrett\",\"Jarrod\",\"Jarvis\",\"Jasen\",\"Jasmin\",\"Jason\",\"Jasper\",\"Jaunita\",\"Javier\",\"Javon\",\"Javonte\",\"Jay\",\"Jayce\",\"Jaycee\",\"Jayda\",\"Jayde\",\"Jayden\",\"Jaydon\",\"Jaylan\",\"Jaylen\",\"Jaylin\",\"Jaylon\",\"Jayme\",\"Jayne\",\"Jayson\",\"Jazlyn\",\"Jazmin\",\"Jazmyn\",\"Jazmyne\",\"Jean\",\"Jeanette\",\"Jeanie\",\"Jeanne\",\"Jed\",\"Jedediah\",\"Jedidiah\",\"Jeff\",\"Jefferey\",\"Jeffery\",\"Jeffrey\",\"Jeffry\",\"Jena\",\"Jenifer\",\"Jennie\",\"Jennifer\",\"Jennings\",\"Jennyfer\",\"Jensen\",\"Jerad\",\"Jerald\",\"Jeramie\",\"Jeramy\",\"Jerel\",\"Jeremie\",\"Jeremy\",\"Jermain\",\"Jermaine\",\"Jermey\",\"Jerod\",\"Jerome\",\"Jeromy\",\"Jerrell\",\"Jerrod\",\"Jerrold\",\"Jerry\",\"Jess\",\"Jesse\",\"Jessica\",\"Jessie\",\"Jessika\",\"Jessy\",\"Jessyca\",\"Jesus\",\"Jett\",\"Jettie\",\"Jevon\",\"Jewel\",\"Jewell\",\"Jillian\",\"Jimmie\",\"Jimmy\",\"Jo\",\"Joan\",\"Joana\",\"Joanie\",\"Joanne\",\"Joannie\",\"Joanny\",\"Joany\",\"Joaquin\",\"Jocelyn\",\"Jodie\",\"Jody\",\"Joe\",\"Joel\",\"Joelle\",\"Joesph\",\"Joey\",\"Johan\",\"Johann\",\"Johanna\",\"Johathan\",\"John\",\"Johnathan\",\"Johnathon\",\"Johnnie\",\"Johnny\",\"Johnpaul\",\"Johnson\",\"Jolie\",\"Jon\",\"Jonas\",\"Jonatan\",\"Jonathan\",\"Jonathon\",\"Jordan\",\"Jordane\",\"Jordi\",\"Jordon\",\"Jordy\",\"Jordyn\",\"Jorge\",\"Jose\",\"Josefa\",\"Josefina\",\"Joseph\",\"Josephine\",\"Josh\",\"Joshua\",\"Joshuah\",\"Josiah\",\"Josiane\",\"Josianne\",\"Josie\",\"Josue\",\"Jovan\",\"Jovani\",\"Jovanny\",\"Jovany\",\"Joy\",\"Joyce\",\"Juana\",\"Juanita\",\"Judah\",\"Judd\",\"Jude\",\"Judge\",\"Judson\",\"Judy\",\"Jules\",\"Julia\",\"Julian\",\"Juliana\",\"Julianne\",\"Julie\",\"Julien\",\"Juliet\",\"Julio\",\"Julius\",\"June\",\"Junior\",\"Junius\",\"Justen\",\"Justice\",\"Justina\",\"Justine\",\"Juston\",\"Justus\",\"Justyn\",\"Juvenal\",\"Juwan\",\"Kacey\",\"Kaci\",\"Kacie\",\"Kade\",\"Kaden\",\"Kadin\",\"Kaela\",\"Kaelyn\",\"Kaia\",\"Kailee\",\"Kailey\",\"Kailyn\",\"Kaitlin\",\"Kaitlyn\",\"Kale\",\"Kaleb\",\"Kaleigh\",\"Kaley\",\"Kali\",\"Kallie\",\"Kameron\",\"Kamille\",\"Kamren\",\"Kamron\",\"Kamryn\",\"Kane\",\"Kara\",\"Kareem\",\"Karelle\",\"Karen\",\"Kari\",\"Kariane\",\"Karianne\",\"Karina\",\"Karine\",\"Karl\",\"Karlee\",\"Karley\",\"Karli\",\"Karlie\",\"Karolann\",\"Karson\",\"Kasandra\",\"Kasey\",\"Kassandra\",\"Katarina\",\"Katelin\",\"Katelyn\",\"Katelynn\",\"Katharina\",\"Katherine\",\"Katheryn\",\"Kathleen\",\"Kathlyn\",\"Kathryn\",\"Kathryne\",\"Katlyn\",\"Katlynn\",\"Katrina\",\"Katrine\",\"Kattie\",\"Kavon\",\"Kay\",\"Kaya\",\"Kaycee\",\"Kayden\",\"Kayla\",\"Kaylah\",\"Kaylee\",\"Kayleigh\",\"Kayley\",\"Kayli\",\"Kaylie\",\"Kaylin\",\"Keagan\",\"Keanu\",\"Keara\",\"Keaton\",\"Keegan\",\"Keeley\",\"Keely\",\"Keenan\",\"Keira\",\"Keith\",\"Kellen\",\"Kelley\",\"Kelli\",\"Kellie\",\"Kelly\",\"Kelsi\",\"Kelsie\",\"Kelton\",\"Kelvin\",\"Ken\",\"Kendall\",\"Kendra\",\"Kendrick\",\"Kenna\",\"Kennedi\",\"Kennedy\",\"Kenneth\",\"Kennith\",\"Kenny\",\"Kenton\",\"Kenya\",\"Kenyatta\",\"Kenyon\",\"Keon\",\"Keshaun\",\"Keshawn\",\"Keven\",\"Kevin\",\"Kevon\",\"Keyon\",\"Keyshawn\",\"Khalid\",\"Khalil\",\"Kian\",\"Kiana\",\"Kianna\",\"Kiara\",\"Kiarra\",\"Kiel\",\"Kiera\",\"Kieran\",\"Kiley\",\"Kim\",\"Kimberly\",\"King\",\"Kip\",\"Kira\",\"Kirk\",\"Kirsten\",\"Kirstin\",\"Kitty\",\"Kobe\",\"Koby\",\"Kody\",\"Kolby\",\"Kole\",\"Korbin\",\"Korey\",\"Kory\",\"Kraig\",\"Kris\",\"Krista\",\"Kristian\",\"Kristin\",\"Kristina\",\"Kristofer\",\"Kristoffer\",\"Kristopher\",\"Kristy\",\"Krystal\",\"Krystel\",\"Krystina\",\"Kurt\",\"Kurtis\",\"Kyla\",\"Kyle\",\"Kylee\",\"Kyleigh\",\"Kyler\",\"Kylie\",\"Kyra\",\"Lacey\",\"Lacy\",\"Ladarius\",\"Lafayette\",\"Laila\",\"Laisha\",\"Lamar\",\"Lambert\",\"Lamont\",\"Lance\",\"Landen\",\"Lane\",\"Laney\",\"Larissa\",\"Laron\",\"Larry\",\"Larue\",\"Laura\",\"Laurel\",\"Lauren\",\"Laurence\",\"Lauretta\",\"Lauriane\",\"Laurianne\",\"Laurie\",\"Laurine\",\"Laury\",\"Lauryn\",\"Lavada\",\"Lavern\",\"Laverna\",\"Laverne\",\"Lavina\",\"Lavinia\",\"Lavon\",\"Lavonne\",\"Lawrence\",\"Lawson\",\"Layla\",\"Layne\",\"Lazaro\",\"Lea\",\"Leann\",\"Leanna\",\"Leanne\",\"Leatha\",\"Leda\",\"Lee\",\"Leif\",\"Leila\",\"Leilani\",\"Lela\",\"Lelah\",\"Leland\",\"Lelia\",\"Lempi\",\"Lemuel\",\"Lenna\",\"Lennie\",\"Lenny\",\"Lenora\",\"Lenore\",\"Leo\",\"Leola\",\"Leon\",\"Leonard\",\"Leonardo\",\"Leone\",\"Leonel\",\"Leonie\",\"Leonor\",\"Leonora\",\"Leopold\",\"Leopoldo\",\"Leora\",\"Lera\",\"Lesley\",\"Leslie\",\"Lesly\",\"Lessie\",\"Lester\",\"Leta\",\"Letha\",\"Letitia\",\"Levi\",\"Lew\",\"Lewis\",\"Lexi\",\"Lexie\",\"Lexus\",\"Lia\",\"Liam\",\"Liana\",\"Libbie\",\"Libby\",\"Lila\",\"Lilian\",\"Liliana\",\"Liliane\",\"Lilla\",\"Lillian\",\"Lilliana\",\"Lillie\",\"Lilly\",\"Lily\",\"Lilyan\",\"Lina\",\"Lincoln\",\"Linda\",\"Lindsay\",\"Lindsey\",\"Linnea\",\"Linnie\",\"Linwood\",\"Lionel\",\"Lisa\",\"Lisandro\",\"Lisette\",\"Litzy\",\"Liza\",\"Lizeth\",\"Lizzie\",\"Llewellyn\",\"Lloyd\",\"Logan\",\"Lois\",\"Lola\",\"Lolita\",\"Loma\",\"Lon\",\"London\",\"Lonie\",\"Lonnie\",\"Lonny\",\"Lonzo\",\"Lora\",\"Loraine\",\"Loren\",\"Lorena\",\"Lorenz\",\"Lorenza\",\"Lorenzo\",\"Lori\",\"Lorine\",\"Lorna\",\"Lottie\",\"Lou\",\"Louie\",\"Louisa\",\"Lourdes\",\"Louvenia\",\"Lowell\",\"Loy\",\"Loyal\",\"Loyce\",\"Lucas\",\"Luciano\",\"Lucie\",\"Lucienne\",\"Lucile\",\"Lucinda\",\"Lucio\",\"Lucious\",\"Lucius\",\"Lucy\",\"Ludie\",\"Ludwig\",\"Lue\",\"Luella\",\"Luigi\",\"Luis\",\"Luisa\",\"Lukas\",\"Lula\",\"Lulu\",\"Luna\",\"Lupe\",\"Lura\",\"Lurline\",\"Luther\",\"Luz\",\"Lyda\",\"Lydia\",\"Lyla\",\"Lynn\",\"Lyric\",\"Lysanne\",\"Mabel\",\"Mabelle\",\"Mable\",\"Mac\",\"Macey\",\"Maci\",\"Macie\",\"Mack\",\"Mackenzie\",\"Macy\",\"Madaline\",\"Madalyn\",\"Maddison\",\"Madeline\",\"Madelyn\",\"Madelynn\",\"Madge\",\"Madie\",\"Madilyn\",\"Madisen\",\"Madison\",\"Madisyn\",\"Madonna\",\"Madyson\",\"Mae\",\"Maegan\",\"Maeve\",\"Mafalda\",\"Magali\",\"Magdalen\",\"Magdalena\",\"Maggie\",\"Magnolia\",\"Magnus\",\"Maia\",\"Maida\",\"Maiya\",\"Major\",\"Makayla\",\"Makenna\",\"Makenzie\",\"Malachi\",\"Malcolm\",\"Malika\",\"Malinda\",\"Mallie\",\"Mallory\",\"Malvina\",\"Mandy\",\"Manley\",\"Manuel\",\"Manuela\",\"Mara\",\"Marc\",\"Marcel\",\"Marcelina\",\"Marcelino\",\"Marcella\",\"Marcelle\",\"Marcellus\",\"Marcelo\",\"Marcia\",\"Marco\",\"Marcos\",\"Marcus\",\"Margaret\",\"Margarete\",\"Margarett\",\"Margaretta\",\"Margarette\",\"Margarita\",\"Marge\",\"Margie\",\"Margot\",\"Margret\",\"Marguerite\",\"Maria\",\"Mariah\",\"Mariam\",\"Marian\",\"Mariana\",\"Mariane\",\"Marianna\",\"Marianne\",\"Mariano\",\"Maribel\",\"Marie\",\"Mariela\",\"Marielle\",\"Marietta\",\"Marilie\",\"Marilou\",\"Marilyne\",\"Marina\",\"Mario\",\"Marion\",\"Marisa\",\"Marisol\",\"Maritza\",\"Marjolaine\",\"Marjorie\",\"Marjory\",\"Mark\",\"Markus\",\"Marlee\",\"Marlen\",\"Marlene\",\"Marley\",\"Marlin\",\"Marlon\",\"Marques\",\"Marquis\",\"Marquise\",\"Marshall\",\"Marta\",\"Martin\",\"Martina\",\"Martine\",\"Marty\",\"Marvin\",\"Mary\",\"Maryam\",\"Maryjane\",\"Maryse\",\"Mason\",\"Mateo\",\"Mathew\",\"Mathias\",\"Mathilde\",\"Matilda\",\"Matilde\",\"Matt\",\"Matteo\",\"Mattie\",\"Maud\",\"Maude\",\"Maudie\",\"Maureen\",\"Maurice\",\"Mauricio\",\"Maurine\",\"Maverick\",\"Mavis\",\"Max\",\"Maxie\",\"Maxime\",\"Maximilian\",\"Maximillia\",\"Maximillian\",\"Maximo\",\"Maximus\",\"Maxine\",\"Maxwell\",\"May\",\"Maya\",\"Maybell\",\"Maybelle\",\"Maye\",\"Maymie\",\"Maynard\",\"Mayra\",\"Mazie\",\"Mckayla\",\"Mckenna\",\"Mckenzie\",\"Meagan\",\"Meaghan\",\"Meda\",\"Megane\",\"Meggie\",\"Meghan\",\"Mekhi\",\"Melany\",\"Melba\",\"Melisa\",\"Melissa\",\"Mellie\",\"Melody\",\"Melvin\",\"Melvina\",\"Melyna\",\"Melyssa\",\"Mercedes\",\"Meredith\",\"Merl\",\"Merle\",\"Merlin\",\"Merritt\",\"Mertie\",\"Mervin\",\"Meta\",\"Mia\",\"Micaela\",\"Micah\",\"Michael\",\"Michaela\",\"Michale\",\"Micheal\",\"Michel\",\"Michele\",\"Michelle\",\"Miguel\",\"Mikayla\",\"Mike\",\"Mikel\",\"Milan\",\"Miles\",\"Milford\",\"Miller\",\"Millie\",\"Milo\",\"Milton\",\"Mina\",\"Minerva\",\"Minnie\",\"Miracle\",\"Mireille\",\"Mireya\",\"Misael\",\"Missouri\",\"Misty\",\"Mitchel\",\"Mitchell\",\"Mittie\",\"Modesta\",\"Modesto\",\"Mohamed\",\"Mohammad\",\"Mohammed\",\"Moises\",\"Mollie\",\"Molly\",\"Mona\",\"Monica\",\"Monique\",\"Monroe\",\"Monserrat\",\"Monserrate\",\"Montana\",\"Monte\",\"Monty\",\"Morgan\",\"Moriah\",\"Morris\",\"Mortimer\",\"Morton\",\"Mose\",\"Moses\",\"Moshe\",\"Mossie\",\"Mozell\",\"Mozelle\",\"Muhammad\",\"Muriel\",\"Murl\",\"Murphy\",\"Murray\",\"Mustafa\",\"Mya\",\"Myah\",\"Mylene\",\"Myles\",\"Myra\",\"Myriam\",\"Myrl\",\"Myrna\",\"Myron\",\"Myrtice\",\"Myrtie\",\"Myrtis\",\"Myrtle\",\"Nadia\",\"Nakia\",\"Name\",\"Nannie\",\"Naomi\",\"Naomie\",\"Napoleon\",\"Narciso\",\"Nash\",\"Nasir\",\"Nat\",\"Natalia\",\"Natalie\",\"Natasha\",\"Nathan\",\"Nathanael\",\"Nathanial\",\"Nathaniel\",\"Nathen\",\"Nayeli\",\"Neal\",\"Ned\",\"Nedra\",\"Neha\",\"Neil\",\"Nelda\",\"Nella\",\"Nelle\",\"Nellie\",\"Nels\",\"Nelson\",\"Neoma\",\"Nestor\",\"Nettie\",\"Neva\",\"Newell\",\"Newton\",\"Nia\",\"Nicholas\",\"Nicholaus\",\"Nichole\",\"Nick\",\"Nicklaus\",\"Nickolas\",\"Nico\",\"Nicola\",\"Nicolas\",\"Nicole\",\"Nicolette\",\"Nigel\",\"Nikita\",\"Nikki\",\"Nikko\",\"Niko\",\"Nikolas\",\"Nils\",\"Nina\",\"Noah\",\"Noble\",\"Noe\",\"Noel\",\"Noelia\",\"Noemi\",\"Noemie\",\"Noemy\",\"Nola\",\"Nolan\",\"Nona\",\"Nora\",\"Norbert\",\"Norberto\",\"Norene\",\"Norma\",\"Norris\",\"Norval\",\"Norwood\",\"Nova\",\"Novella\",\"Nya\",\"Nyah\",\"Nyasia\",\"Obie\",\"Oceane\",\"Ocie\",\"Octavia\",\"Oda\",\"Odell\",\"Odessa\",\"Odie\",\"Ofelia\",\"Okey\",\"Ola\",\"Olaf\",\"Ole\",\"Olen\",\"Oleta\",\"Olga\",\"Olin\",\"Oliver\",\"Ollie\",\"Oma\",\"Omari\",\"Omer\",\"Ona\",\"Onie\",\"Opal\",\"Ophelia\",\"Ora\",\"Oral\",\"Oran\",\"Oren\",\"Orie\",\"Orin\",\"Orion\",\"Orland\",\"Orlando\",\"Orlo\",\"Orpha\",\"Orrin\",\"Orval\",\"Orville\",\"Osbaldo\",\"Osborne\",\"Oscar\",\"Osvaldo\",\"Oswald\",\"Oswaldo\",\"Otha\",\"Otho\",\"Otilia\",\"Otis\",\"Ottilie\",\"Ottis\",\"Otto\",\"Ova\",\"Owen\",\"Ozella\",\"Pablo\",\"Paige\",\"Palma\",\"Pamela\",\"Pansy\",\"Paolo\",\"Paris\",\"Parker\",\"Pascale\",\"Pasquale\",\"Pat\",\"Patience\",\"Patricia\",\"Patrick\",\"Patsy\",\"Pattie\",\"Paul\",\"Paula\",\"Pauline\",\"Paxton\",\"Payton\",\"Pearl\",\"Pearlie\",\"Pearline\",\"Pedro\",\"Peggie\",\"Penelope\",\"Percival\",\"Percy\",\"Perry\",\"Pete\",\"Peter\",\"Petra\",\"Peyton\",\"Philip\",\"Phoebe\",\"Phyllis\",\"Pierce\",\"Pierre\",\"Pietro\",\"Pink\",\"Pinkie\",\"Piper\",\"Polly\",\"Porter\",\"Precious\",\"Presley\",\"Preston\",\"Price\",\"Prince\",\"Princess\",\"Priscilla\",\"Providenci\",\"Prudence\",\"Queen\",\"Queenie\",\"Quentin\",\"Quincy\",\"Quinn\",\"Quinten\",\"Quinton\",\"Rachael\",\"Rachel\",\"Rachelle\",\"Rae\",\"Raegan\",\"Rafael\",\"Rafaela\",\"Raheem\",\"Rahsaan\",\"Rahul\",\"Raina\",\"Raleigh\",\"Ralph\",\"Ramiro\",\"Ramon\",\"Ramona\",\"Randal\",\"Randall\",\"Randi\",\"Randy\",\"Ransom\",\"Raoul\",\"Raphael\",\"Raphaelle\",\"Raquel\",\"Rashad\",\"Rashawn\",\"Rasheed\",\"Raul\",\"Raven\",\"Ray\",\"Raymond\",\"Raymundo\",\"Reagan\",\"Reanna\",\"Reba\",\"Rebeca\",\"Rebecca\",\"Rebeka\",\"Rebekah\",\"Reece\",\"Reed\",\"Reese\",\"Regan\",\"Reggie\",\"Reginald\",\"Reid\",\"Reilly\",\"Reina\",\"Reinhold\",\"Remington\",\"Rene\",\"Renee\",\"Ressie\",\"Reta\",\"Retha\",\"Retta\",\"Reuben\",\"Reva\",\"Rex\",\"Rey\",\"Reyes\",\"Reymundo\",\"Reyna\",\"Reynold\",\"Rhea\",\"Rhett\",\"Rhianna\",\"Rhiannon\",\"Rhoda\",\"Ricardo\",\"Richard\",\"Richie\",\"Richmond\",\"Rick\",\"Rickey\",\"Rickie\",\"Ricky\",\"Rico\",\"Rigoberto\",\"Riley\",\"Rita\",\"River\",\"Robb\",\"Robbie\",\"Robert\",\"Roberta\",\"Roberto\",\"Robin\",\"Robyn\",\"Rocio\",\"Rocky\",\"Rod\",\"Roderick\",\"Rodger\",\"Rodolfo\",\"Rodrick\",\"Rodrigo\",\"Roel\",\"Rogelio\",\"Roger\",\"Rogers\",\"Rolando\",\"Rollin\",\"Roma\",\"Romaine\",\"Roman\",\"Ron\",\"Ronaldo\",\"Ronny\",\"Roosevelt\",\"Rory\",\"Rosa\",\"Rosalee\",\"Rosalia\",\"Rosalind\",\"Rosalinda\",\"Rosalyn\",\"Rosamond\",\"Rosanna\",\"Rosario\",\"Roscoe\",\"Rose\",\"Rosella\",\"Roselyn\",\"Rosemarie\",\"Rosemary\",\"Rosendo\",\"Rosetta\",\"Rosie\",\"Rosina\",\"Roslyn\",\"Ross\",\"Rossie\",\"Rowan\",\"Rowena\",\"Rowland\",\"Roxane\",\"Roxanne\",\"Roy\",\"Royal\",\"Royce\",\"Rozella\",\"Ruben\",\"Rubie\",\"Ruby\",\"Rubye\",\"Rudolph\",\"Rudy\",\"Rupert\",\"Russ\",\"Russel\",\"Russell\",\"Rusty\",\"Ruth\",\"Ruthe\",\"Ruthie\",\"Ryan\",\"Ryann\",\"Ryder\",\"Rylan\",\"Rylee\",\"Ryleigh\",\"Ryley\",\"Sabina\",\"Sabrina\",\"Sabryna\",\"Sadie\",\"Sadye\",\"Sage\",\"Saige\",\"Sallie\",\"Sally\",\"Salma\",\"Salvador\",\"Salvatore\",\"Sam\",\"Samanta\",\"Samantha\",\"Samara\",\"Samir\",\"Sammie\",\"Sammy\",\"Samson\",\"Sandra\",\"Sandrine\",\"Sandy\",\"Sanford\",\"Santa\",\"Santiago\",\"Santina\",\"Santino\",\"Santos\",\"Sarah\",\"Sarai\",\"Sarina\",\"Sasha\",\"Saul\",\"Savanah\",\"Savanna\",\"Savannah\",\"Savion\",\"Scarlett\",\"Schuyler\",\"Scot\",\"Scottie\",\"Scotty\",\"Seamus\",\"Sean\",\"Sebastian\",\"Sedrick\",\"Selena\",\"Selina\",\"Selmer\",\"Serena\",\"Serenity\",\"Seth\",\"Shad\",\"Shaina\",\"Shakira\",\"Shana\",\"Shane\",\"Shanel\",\"Shanelle\",\"Shania\",\"Shanie\",\"Shaniya\",\"Shanna\",\"Shannon\",\"Shanny\",\"Shanon\",\"Shany\",\"Sharon\",\"Shaun\",\"Shawn\",\"Shawna\",\"Shaylee\",\"Shayna\",\"Shayne\",\"Shea\",\"Sheila\",\"Sheldon\",\"Shemar\",\"Sheridan\",\"Sherman\",\"Sherwood\",\"Shirley\",\"Shyann\",\"Shyanne\",\"Sibyl\",\"Sid\",\"Sidney\",\"Sienna\",\"Sierra\",\"Sigmund\",\"Sigrid\",\"Sigurd\",\"Silas\",\"Sim\",\"Simeon\",\"Simone\",\"Sincere\",\"Sister\",\"Skye\",\"Skyla\",\"Skylar\",\"Sofia\",\"Soledad\",\"Solon\",\"Sonia\",\"Sonny\",\"Sonya\",\"Sophia\",\"Sophie\",\"Spencer\",\"Stacey\",\"Stacy\",\"Stan\",\"Stanford\",\"Stanley\",\"Stanton\",\"Stefan\",\"Stefanie\",\"Stella\",\"Stephan\",\"Stephania\",\"Stephanie\",\"Stephany\",\"Stephen\",\"Stephon\",\"Sterling\",\"Steve\",\"Stevie\",\"Stewart\",\"Stone\",\"Stuart\",\"Summer\",\"Sunny\",\"Susan\",\"Susana\",\"Susanna\",\"Susie\",\"Suzanne\",\"Sven\",\"Syble\",\"Sydnee\",\"Sydney\",\"Sydni\",\"Sydnie\",\"Sylvan\",\"Sylvester\",\"Sylvia\",\"Tabitha\",\"Tad\",\"Talia\",\"Talon\",\"Tamara\",\"Tamia\",\"Tania\",\"Tanner\",\"Tanya\",\"Tara\",\"Taryn\",\"Tate\",\"Tatum\",\"Tatyana\",\"Taurean\",\"Tavares\",\"Taya\",\"Taylor\",\"Teagan\",\"Ted\",\"Telly\",\"Terence\",\"Teresa\",\"Terrance\",\"Terrell\",\"Terrence\",\"Terrill\",\"Terry\",\"Tess\",\"Tessie\",\"Tevin\",\"Thad\",\"Thaddeus\",\"Thalia\",\"Thea\",\"Thelma\",\"Theo\",\"Theodora\",\"Theodore\",\"Theresa\",\"Therese\",\"Theresia\",\"Theron\",\"Thomas\",\"Thora\",\"Thurman\",\"Tia\",\"Tiana\",\"Tianna\",\"Tiara\",\"Tierra\",\"Tiffany\",\"Tillman\",\"Timmothy\",\"Timmy\",\"Timothy\",\"Tina\",\"Tito\",\"Titus\",\"Tobin\",\"Toby\",\"Tod\",\"Tom\",\"Tomas\",\"Tomasa\",\"Tommie\",\"Toney\",\"Toni\",\"Tony\",\"Torey\",\"Torrance\",\"Torrey\",\"Toy\",\"Trace\",\"Tracey\",\"Tracy\",\"Travis\",\"Travon\",\"Tre\",\"Tremaine\",\"Tremayne\",\"Trent\",\"Trenton\",\"Tressa\",\"Tressie\",\"Treva\",\"Trever\",\"Trevion\",\"Trevor\",\"Trey\",\"Trinity\",\"Trisha\",\"Tristian\",\"Tristin\",\"Triston\",\"Troy\",\"Trudie\",\"Trycia\",\"Trystan\",\"Turner\",\"Twila\",\"Tyler\",\"Tyra\",\"Tyree\",\"Tyreek\",\"Tyrel\",\"Tyrell\",\"Tyrese\",\"Tyrique\",\"Tyshawn\",\"Tyson\",\"Ubaldo\",\"Ulices\",\"Ulises\",\"Una\",\"Unique\",\"Urban\",\"Uriah\",\"Uriel\",\"Ursula\",\"Vada\",\"Valentin\",\"Valentina\",\"Valentine\",\"Valerie\",\"Vallie\",\"Van\",\"Vance\",\"Vanessa\",\"Vaughn\",\"Veda\",\"Velda\",\"Vella\",\"Velma\",\"Velva\",\"Vena\",\"Verda\",\"Verdie\",\"Vergie\",\"Verla\",\"Verlie\",\"Vern\",\"Verna\",\"Verner\",\"Vernice\",\"Vernie\",\"Vernon\",\"Verona\",\"Veronica\",\"Vesta\",\"Vicenta\",\"Vicente\",\"Vickie\",\"Vicky\",\"Victor\",\"Victoria\",\"Vida\",\"Vidal\",\"Vilma\",\"Vince\",\"Vincent\",\"Vincenza\",\"Vincenzo\",\"Vinnie\",\"Viola\",\"Violet\",\"Violette\",\"Virgie\",\"Virgil\",\"Virginia\",\"Virginie\",\"Vita\",\"Vito\",\"Viva\",\"Vivian\",\"Viviane\",\"Vivianne\",\"Vivien\",\"Vivienne\",\"Vladimir\",\"Wade\",\"Waino\",\"Waldo\",\"Walker\",\"Wallace\",\"Walter\",\"Walton\",\"Wanda\",\"Ward\",\"Warren\",\"Watson\",\"Wava\",\"Waylon\",\"Wayne\",\"Webster\",\"Weldon\",\"Wellington\",\"Wendell\",\"Wendy\",\"Werner\",\"Westley\",\"Weston\",\"Whitney\",\"Wilber\",\"Wilbert\",\"Wilburn\",\"Wiley\",\"Wilford\",\"Wilfred\",\"Wilfredo\",\"Wilfrid\",\"Wilhelm\",\"Wilhelmine\",\"Will\",\"Willa\",\"Willard\",\"William\",\"Willie\",\"Willis\",\"Willow\",\"Willy\",\"Wilma\",\"Wilmer\",\"Wilson\",\"Wilton\",\"Winfield\",\"Winifred\",\"Winnifred\",\"Winona\",\"Winston\",\"Woodrow\",\"Wyatt\",\"Wyman\",\"Xander\",\"Xavier\",\"Xzavier\",\"Yadira\",\"Yasmeen\",\"Yasmin\",\"Yasmine\",\"Yazmin\",\"Yesenia\",\"Yessenia\",\"Yolanda\",\"Yoshiko\",\"Yvette\",\"Yvonne\",\"Zachariah\",\"Zachary\",\"Zachery\",\"Zack\",\"Zackary\",\"Zackery\",\"Zakary\",\"Zander\",\"Zane\",\"Zaria\",\"Zechariah\",\"Zelda\",\"Zella\",\"Zelma\",\"Zena\",\"Zetta\",\"Zion\",\"Zita\",\"Zoe\",\"Zoey\",\"Zoie\",\"Zoila\",\"Zola\",\"Zora\",\"Zula\"],BUe=[\"Agender\",\"Androgyne\",\"Androgynous\",\"Bigender\",\"Cis female\",\"Cis male\",\"Cis man\",\"Cis woman\",\"Cis\",\"Cisgender female\",\"Cisgender male\",\"Cisgender man\",\"Cisgender woman\",\"Cisgender\",\"Demi-boy\",\"Demi-girl\",\"Demi-man\",\"Demi-woman\",\"Demiflux\",\"Demigender\",\"F2M\",\"FTM\",\"Female to male trans man\",\"Female to male transgender man\",\"Female to male transsexual man\",\"Female to male\",\"Gender fluid\",\"Gender neutral\",\"Gender nonconforming\",\"Gender questioning\",\"Gender variant\",\"Genderflux\",\"Genderqueer\",\"Hermaphrodite\",\"Intersex man\",\"Intersex person\",\"Intersex woman\",\"Intersex\",\"M2F\",\"MTF\",\"Male to female trans woman\",\"Male to female transgender woman\",\"Male to female transsexual woman\",\"Male to female\",\"Man\",\"Multigender\",\"Neither\",\"Neutrois\",\"Non-binary\",\"Omnigender\",\"Other\",\"Pangender\",\"Polygender\",\"T* man\",\"T* woman\",\"Trans female\",\"Trans male\",\"Trans man\",\"Trans person\",\"Trans woman\",\"Trans\",\"Transexual female\",\"Transexual male\",\"Transexual man\",\"Transexual person\",\"Transexual woman\",\"Transexual\",\"Transgender female\",\"Transgender person\",\"Transmasculine\",\"Trigender\",\"Two* person\",\"Two-spirit person\",\"Two-spirit\",\"Woman\",\"Xenogender\"],NUe=[\"{{person.jobDescriptor}} {{person.jobArea}} {{person.jobType}}\"],$Ue=[\"Abbott\",\"Abernathy\",\"Abshire\",\"Adams\",\"Altenwerth\",\"Anderson\",\"Ankunding\",\"Armstrong\",\"Auer\",\"Aufderhar\",\"Bahringer\",\"Bailey\",\"Balistreri\",\"Barrows\",\"Bartell\",\"Bartoletti\",\"Barton\",\"Bashirian\",\"Batz\",\"Bauch\",\"Baumbach\",\"Bayer\",\"Beahan\",\"Beatty\",\"Bechtelar\",\"Becker\",\"Bednar\",\"Beer\",\"Beier\",\"Berge\",\"Bergnaum\",\"Bergstrom\",\"Bernhard\",\"Bernier\",\"Bins\",\"Blanda\",\"Blick\",\"Block\",\"Bode\",\"Boehm\",\"Bogan\",\"Bogisich\",\"Borer\",\"Bosco\",\"Botsford\",\"Boyer\",\"Boyle\",\"Bradtke\",\"Brakus\",\"Braun\",\"Breitenberg\",\"Brekke\",\"Brown\",\"Bruen\",\"Buckridge\",\"Carroll\",\"Carter\",\"Cartwright\",\"Casper\",\"Cassin\",\"Champlin\",\"Christiansen\",\"Cole\",\"Collier\",\"Collins\",\"Conn\",\"Connelly\",\"Conroy\",\"Considine\",\"Corkery\",\"Cormier\",\"Corwin\",\"Cremin\",\"Crist\",\"Crona\",\"Cronin\",\"Crooks\",\"Cruickshank\",\"Cummerata\",\"Cummings\",\"Dach\",\"D'Amore\",\"Daniel\",\"Dare\",\"Daugherty\",\"Davis\",\"Deckow\",\"Denesik\",\"Dibbert\",\"Dickens\",\"Dicki\",\"Dickinson\",\"Dietrich\",\"Donnelly\",\"Dooley\",\"Douglas\",\"Doyle\",\"DuBuque\",\"Durgan\",\"Ebert\",\"Effertz\",\"Emard\",\"Emmerich\",\"Erdman\",\"Ernser\",\"Fadel\",\"Fahey\",\"Farrell\",\"Fay\",\"Feeney\",\"Feest\",\"Feil\",\"Ferry\",\"Fisher\",\"Flatley\",\"Frami\",\"Franecki\",\"Franey\",\"Friesen\",\"Fritsch\",\"Funk\",\"Gerhold\",\"Gerlach\",\"Gibson\",\"Gislason\",\"Gleason\",\"Gleichner\",\"Glover\",\"Goldner\",\"Goodwin\",\"Gorczany\",\"Gottlieb\",\"Goyette\",\"Grady\",\"Graham\",\"Grant\",\"Green\",\"Greenfelder\",\"Greenholt\",\"Grimes\",\"Gulgowski\",\"Gusikowski\",\"Gutkowski\",\"Gutmann\",\"Haag\",\"Hackett\",\"Hagenes\",\"Hahn\",\"Haley\",\"Halvorson\",\"Hamill\",\"Hammes\",\"Hand\",\"Hane\",\"Hansen\",\"Harber\",\"Harris\",\"Hartmann\",\"Harvey\",\"Hauck\",\"Hayes\",\"Heaney\",\"Heathcote\",\"Hegmann\",\"Heidenreich\",\"Heller\",\"Herman\",\"Hermann\",\"Hermiston\",\"Herzog\",\"Hessel\",\"Hettinger\",\"Hickle\",\"Hilll\",\"Hills\",\"Hilpert\",\"Hintz\",\"Hirthe\",\"Hodkiewicz\",\"Hoeger\",\"Homenick\",\"Hoppe\",\"Howe\",\"Howell\",\"Hudson\",\"Huel\",\"Huels\",\"Hyatt\",\"Jacobi\",\"Jacobs\",\"Jacobson\",\"Jakubowski\",\"Jaskolski\",\"Jast\",\"Jenkins\",\"Jerde\",\"Johns\",\"Johnson\",\"Johnston\",\"Jones\",\"Kassulke\",\"Kautzer\",\"Keebler\",\"Keeling\",\"Kemmer\",\"Kerluke\",\"Kertzmann\",\"Kessler\",\"Kiehn\",\"Kihn\",\"Kilback\",\"King\",\"Kirlin\",\"Klein\",\"Kling\",\"Klocko\",\"Koch\",\"Koelpin\",\"Koepp\",\"Kohler\",\"Konopelski\",\"Koss\",\"Kovacek\",\"Kozey\",\"Krajcik\",\"Kreiger\",\"Kris\",\"Kshlerin\",\"Kub\",\"Kuhic\",\"Kuhlman\",\"Kuhn\",\"Kulas\",\"Kunde\",\"Kunze\",\"Kuphal\",\"Kutch\",\"Kuvalis\",\"Labadie\",\"Lakin\",\"Lang\",\"Langosh\",\"Langworth\",\"Larkin\",\"Larson\",\"Leannon\",\"Lebsack\",\"Ledner\",\"Leffler\",\"Legros\",\"Lehner\",\"Lemke\",\"Lesch\",\"Leuschke\",\"Lind\",\"Lindgren\",\"Littel\",\"Little\",\"Lockman\",\"Lowe\",\"Lubowitz\",\"Lueilwitz\",\"Luettgen\",\"Lynch\",\"Macejkovic\",\"MacGyver\",\"Maggio\",\"Mann\",\"Mante\",\"Marks\",\"Marquardt\",\"Marvin\",\"Mayer\",\"Mayert\",\"McClure\",\"McCullough\",\"McDermott\",\"McGlynn\",\"McKenzie\",\"McLaughlin\",\"Medhurst\",\"Mertz\",\"Metz\",\"Miller\",\"Mills\",\"Mitchell\",\"Moen\",\"Mohr\",\"Monahan\",\"Moore\",\"Morar\",\"Morissette\",\"Mosciski\",\"Mraz\",\"Mueller\",\"Muller\",\"Murazik\",\"Murphy\",\"Murray\",\"Nader\",\"Nicolas\",\"Nienow\",\"Nikolaus\",\"Nitzsche\",\"Nolan\",\"Oberbrunner\",\"O'Connell\",\"O'Conner\",\"O'Hara\",\"O'Keefe\",\"O'Kon\",\"Okuneva\",\"Olson\",\"Ondricka\",\"O'Reilly\",\"Orn\",\"Ortiz\",\"Osinski\",\"Pacocha\",\"Padberg\",\"Pagac\",\"Parisian\",\"Parker\",\"Paucek\",\"Pfannerstill\",\"Pfeffer\",\"Pollich\",\"Pouros\",\"Powlowski\",\"Predovic\",\"Price\",\"Prohaska\",\"Prosacco\",\"Purdy\",\"Quigley\",\"Quitzon\",\"Rath\",\"Ratke\",\"Rau\",\"Raynor\",\"Reichel\",\"Reichert\",\"Reilly\",\"Reinger\",\"Rempel\",\"Renner\",\"Reynolds\",\"Rice\",\"Rippin\",\"Ritchie\",\"Robel\",\"Roberts\",\"Rodriguez\",\"Rogahn\",\"Rohan\",\"Rolfson\",\"Romaguera\",\"Roob\",\"Rosenbaum\",\"Rowe\",\"Ruecker\",\"Runolfsdottir\",\"Runolfsson\",\"Runte\",\"Russel\",\"Rutherford\",\"Ryan\",\"Sanford\",\"Satterfield\",\"Sauer\",\"Sawayn\",\"Schaden\",\"Schaefer\",\"Schamberger\",\"Schiller\",\"Schimmel\",\"Schinner\",\"Schmeler\",\"Schmidt\",\"Schmitt\",\"Schneider\",\"Schoen\",\"Schowalter\",\"Schroeder\",\"Schulist\",\"Schultz\",\"Schumm\",\"Schuppe\",\"Schuster\",\"Senger\",\"Shanahan\",\"Shields\",\"Simonis\",\"Sipes\",\"Skiles\",\"Smith\",\"Smitham\",\"Spencer\",\"Spinka\",\"Sporer\",\"Stamm\",\"Stanton\",\"Stark\",\"Stehr\",\"Steuber\",\"Stiedemann\",\"Stokes\",\"Stoltenberg\",\"Stracke\",\"Streich\",\"Stroman\",\"Strosin\",\"Swaniawski\",\"Swift\",\"Terry\",\"Thiel\",\"Thompson\",\"Tillman\",\"Torp\",\"Torphy\",\"Towne\",\"Toy\",\"Trantow\",\"Tremblay\",\"Treutel\",\"Tromp\",\"Turcotte\",\"Turner\",\"Ullrich\",\"Upton\",\"Vandervort\",\"Veum\",\"Volkman\",\"Von\",\"VonRueden\",\"Waelchi\",\"Walker\",\"Walsh\",\"Walter\",\"Ward\",\"Waters\",\"Watsica\",\"Weber\",\"Wehner\",\"Weimann\",\"Weissnat\",\"Welch\",\"West\",\"White\",\"Wiegand\",\"Wilderman\",\"Wilkinson\",\"Will\",\"Williamson\",\"Willms\",\"Windler\",\"Wintheiser\",\"Wisoky\",\"Wisozk\",\"Witting\",\"Wiza\",\"Wolf\",\"Wolff\",\"Wuckert\",\"Wunsch\",\"Wyman\",\"Yost\",\"Yundt\",\"Zboncak\",\"Zemlak\",\"Ziemann\",\"Zieme\",\"Zulauf\"],LUe=[{value:\"{{person.last_name}}\",weight:95},{value:\"{{person.last_name}}-{{person.last_name}}\",weight:5}],jUe=[\"James\",\"John\",\"Robert\",\"Michael\",\"William\",\"David\",\"Richard\",\"Charles\",\"Joseph\",\"Thomas\",\"Christopher\",\"Daniel\",\"Paul\",\"Mark\",\"Donald\",\"George\",\"Kenneth\",\"Steven\",\"Edward\",\"Brian\",\"Ronald\",\"Anthony\",\"Kevin\",\"Jason\",\"Matthew\",\"Gary\",\"Timothy\",\"Jose\",\"Larry\",\"Jeffrey\",\"Frank\",\"Scott\",\"Eric\",\"Stephen\",\"Andrew\",\"Raymond\",\"Gregory\",\"Joshua\",\"Jerry\",\"Dennis\",\"Walter\",\"Patrick\",\"Peter\",\"Harold\",\"Douglas\",\"Henry\",\"Carl\",\"Arthur\",\"Ryan\",\"Roger\",\"Joe\",\"Juan\",\"Jack\",\"Albert\",\"Jonathan\",\"Justin\",\"Terry\",\"Gerald\",\"Keith\",\"Samuel\",\"Willie\",\"Ralph\",\"Lawrence\",\"Nicholas\",\"Roy\",\"Benjamin\",\"Bruce\",\"Brandon\",\"Adam\",\"Harry\",\"Fred\",\"Wayne\",\"Billy\",\"Steve\",\"Louis\",\"Jeremy\",\"Aaron\",\"Randy\",\"Howard\",\"Eugene\",\"Carlos\",\"Russell\",\"Bobby\",\"Victor\",\"Martin\",\"Ernest\",\"Phillip\",\"Todd\",\"Jesse\",\"Craig\",\"Alan\",\"Shawn\",\"Clarence\",\"Sean\",\"Philip\",\"Chris\",\"Johnny\",\"Earl\",\"Jimmy\",\"Antonio\",\"Danny\",\"Bryan\",\"Tony\",\"Luis\",\"Mike\",\"Stanley\",\"Leonard\",\"Nathan\",\"Dale\",\"Manuel\",\"Rodney\",\"Curtis\",\"Norman\",\"Allen\",\"Marvin\",\"Vincent\",\"Glenn\",\"Jeffery\",\"Travis\",\"Jeff\",\"Chad\",\"Jacob\",\"Lee\",\"Melvin\",\"Alfred\",\"Kyle\",\"Francis\",\"Bradley\",\"Jesus\",\"Herbert\",\"Frederick\",\"Ray\",\"Joel\",\"Edwin\",\"Don\",\"Eddie\",\"Ricky\",\"Troy\",\"Randall\",\"Barry\",\"Alexander\",\"Bernard\",\"Mario\",\"Leroy\",\"Francisco\",\"Marcus\",\"Micheal\",\"Theodore\",\"Clifford\",\"Miguel\",\"Oscar\",\"Jay\",\"Jim\",\"Tom\",\"Calvin\",\"Alex\",\"Jon\",\"Ronnie\",\"Bill\",\"Lloyd\",\"Tommy\",\"Leon\",\"Derek\",\"Warren\",\"Darrell\",\"Jerome\",\"Floyd\",\"Leo\",\"Alvin\",\"Tim\",\"Wesley\",\"Gordon\",\"Dean\",\"Greg\",\"Jorge\",\"Dustin\",\"Pedro\",\"Derrick\",\"Dan\",\"Lewis\",\"Zachary\",\"Corey\",\"Herman\",\"Maurice\",\"Vernon\",\"Roberto\",\"Clyde\",\"Glen\",\"Hector\",\"Shane\",\"Ricardo\",\"Sam\",\"Rick\",\"Lester\",\"Brent\",\"Ramon\",\"Charlie\",\"Tyler\",\"Gilbert\",\"Gene\",\"Marc\",\"Reginald\",\"Ruben\",\"Brett\",\"Angel\",\"Nathaniel\",\"Rafael\",\"Leslie\",\"Edgar\",\"Milton\",\"Raul\",\"Ben\",\"Chester\",\"Cecil\",\"Duane\",\"Franklin\",\"Andre\",\"Elmer\",\"Brad\",\"Gabriel\",\"Ron\",\"Mitchell\",\"Roland\",\"Arnold\",\"Harvey\",\"Jared\",\"Adrian\",\"Karl\",\"Cory\",\"Claude\",\"Erik\",\"Darryl\",\"Jamie\",\"Neil\",\"Jessie\",\"Christian\",\"Javier\",\"Fernando\",\"Clinton\",\"Ted\",\"Mathew\",\"Tyrone\",\"Darren\",\"Lonnie\",\"Lance\",\"Cody\",\"Julio\",\"Kelly\",\"Kurt\",\"Allan\",\"Nelson\",\"Guy\",\"Clayton\",\"Hugh\",\"Max\",\"Dwayne\",\"Dwight\",\"Armando\",\"Felix\",\"Jimmie\",\"Everett\",\"Jordan\",\"Ian\",\"Wallace\",\"Ken\",\"Bob\",\"Jaime\",\"Casey\",\"Alfredo\",\"Alberto\",\"Dave\",\"Ivan\",\"Johnnie\",\"Sidney\",\"Byron\",\"Julian\",\"Isaac\",\"Morris\",\"Clifton\",\"Willard\",\"Daryl\",\"Ross\",\"Virgil\",\"Andy\",\"Marshall\",\"Salvador\",\"Perry\",\"Kirk\",\"Sergio\",\"Marion\",\"Tracy\",\"Seth\",\"Kent\",\"Terrance\",\"Rene\",\"Eduardo\",\"Terrence\",\"Enrique\",\"Freddie\",\"Wade\",\"Austin\",\"Stuart\",\"Fredrick\",\"Arturo\",\"Alejandro\",\"Jackie\",\"Joey\",\"Nick\",\"Luther\",\"Wendell\",\"Jeremiah\",\"Evan\",\"Julius\",\"Dana\",\"Donnie\",\"Otis\",\"Shannon\",\"Trevor\",\"Oliver\",\"Luke\",\"Homer\",\"Gerard\",\"Doug\",\"Kenny\",\"Hubert\",\"Angelo\",\"Shaun\",\"Lyle\",\"Matt\",\"Lynn\",\"Alfonso\",\"Orlando\",\"Rex\",\"Carlton\",\"Ernesto\",\"Cameron\",\"Neal\",\"Pablo\",\"Lorenzo\",\"Omar\",\"Wilbur\",\"Blake\",\"Grant\",\"Horace\",\"Roderick\",\"Kerry\",\"Abraham\",\"Willis\",\"Rickey\",\"Jean\",\"Ira\",\"Andres\",\"Cesar\",\"Johnathan\",\"Malcolm\",\"Rudolph\",\"Damon\",\"Kelvin\",\"Rudy\",\"Preston\",\"Alton\",\"Archie\",\"Marco\",\"Wm\",\"Pete\",\"Randolph\",\"Garry\",\"Geoffrey\",\"Jonathon\",\"Felipe\",\"Bennie\",\"Gerardo\",\"Ed\",\"Dominic\",\"Robin\",\"Loren\",\"Delbert\",\"Colin\",\"Guillermo\",\"Earnest\",\"Lucas\",\"Benny\",\"Noel\",\"Spencer\",\"Rodolfo\",\"Myron\",\"Edmund\",\"Garrett\",\"Salvatore\",\"Cedric\",\"Lowell\",\"Gregg\",\"Sherman\",\"Wilson\",\"Devin\",\"Sylvester\",\"Kim\",\"Roosevelt\",\"Israel\",\"Jermaine\",\"Forrest\",\"Wilbert\",\"Leland\",\"Simon\",\"Guadalupe\",\"Clark\",\"Irving\",\"Carroll\",\"Bryant\",\"Owen\",\"Rufus\",\"Woodrow\",\"Sammy\",\"Kristopher\",\"Mack\",\"Levi\",\"Marcos\",\"Gustavo\",\"Jake\",\"Lionel\",\"Marty\",\"Taylor\",\"Ellis\",\"Dallas\",\"Gilberto\",\"Clint\",\"Nicolas\",\"Laurence\",\"Ismael\",\"Orville\",\"Drew\",\"Jody\",\"Ervin\",\"Dewey\",\"Al\",\"Wilfred\",\"Josh\",\"Hugo\",\"Ignacio\",\"Caleb\",\"Tomas\",\"Sheldon\",\"Erick\",\"Frankie\",\"Stewart\",\"Doyle\",\"Darrel\",\"Rogelio\",\"Terence\",\"Santiago\",\"Alonzo\",\"Elias\",\"Bert\",\"Elbert\",\"Ramiro\",\"Conrad\",\"Pat\",\"Noah\",\"Grady\",\"Phil\",\"Cornelius\",\"Lamar\",\"Rolando\",\"Clay\",\"Percy\",\"Dexter\",\"Bradford\",\"Merle\",\"Darin\",\"Amos\",\"Terrell\",\"Moses\",\"Irvin\",\"Saul\",\"Roman\",\"Darnell\",\"Randal\",\"Tommie\",\"Timmy\",\"Darrin\",\"Winston\",\"Brendan\",\"Toby\",\"Van\",\"Abel\",\"Dominick\",\"Boyd\",\"Courtney\",\"Jan\",\"Emilio\",\"Elijah\",\"Cary\",\"Domingo\",\"Santos\",\"Aubrey\",\"Emmett\",\"Marlon\",\"Emanuel\",\"Jerald\",\"Edmond\"],zUe=[\"Ace\",\"Aiden\",\"Alexander\",\"Ander\",\"Anthony\",\"Asher\",\"August\",\"Aziel\",\"Bear\",\"Beckham\",\"Benjamin\",\"Buddy\",\"Calvin\",\"Carter\",\"Charles\",\"Christopher\",\"Clyde\",\"Cooper\",\"Daniel\",\"David\",\"Dior\",\"Dylan\",\"Elijah\",\"Ellis\",\"Emerson\",\"Ethan\",\"Ezra\",\"Fletcher\",\"Flynn\",\"Gabriel\",\"Grayson\",\"Gus\",\"Hank\",\"Harrison\",\"Hendrix\",\"Henry\",\"Houston\",\"Hudson\",\"Hugh\",\"Isaac\",\"Jack\",\"Jackson\",\"Jacob\",\"Jakobe\",\"James\",\"Jaxon\",\"Jaxtyn\",\"Jayden\",\"John\",\"Joseph\",\"Josiah\",\"Jude\",\"Julian\",\"Karsyn\",\"Kenji\",\"Kobe\",\"Kylo\",\"Lennon\",\"Leo\",\"Levi\",\"Liam\",\"Lincoln\",\"Logan\",\"Louis\",\"Lucas\",\"Lucky\",\"Luke\",\"Mason\",\"Mateo\",\"Matthew\",\"Maverick\",\"Michael\",\"Monroe\",\"Nixon\",\"Ocean\",\"Oliver\",\"Otis\",\"Otto\",\"Owen\",\"Ozzy\",\"Parker\",\"Rocky\",\"Samuel\",\"Sebastian\",\"Sonny\",\"Teddy\",\"Theo\",\"Theodore\",\"Thomas\",\"Truett\",\"Walter\",\"Warren\",\"Watson\",\"William\",\"Wison\",\"Wyatt\",\"Ziggy\",\"Zyair\"],Yue=[\"Mr.\",\"Dr.\"],HUe=[\"Addison\",\"Alex\",\"Anderson\",\"Angel\",\"Arden\",\"August\",\"Austin\",\"Avery\",\"Bailey\",\"Billie\",\"Blake\",\"Bowie\",\"Brooklyn\",\"Cameron\",\"Charlie\",\"Corey\",\"Dakota\",\"Drew\",\"Elliott\",\"Ellis\",\"Emerson\",\"Finley\",\"Gray\",\"Greer\",\"Harper\",\"Hayden\",\"Jaden\",\"James\",\"Jamie\",\"Jordan\",\"Jules\",\"Kai\",\"Kendall\",\"Kennedy\",\"Kyle\",\"Leslie\",\"Logan\",\"London\",\"Marlowe\",\"Micah\",\"Nico\",\"Noah\",\"North\",\"Parker\",\"Phoenix\",\"Quinn\",\"Reagan\",\"Reese\",\"Reign\",\"Riley\",\"River\",\"Robin\",\"Rory\",\"Rowan\",\"Ryan\",\"Sage\",\"Sasha\",\"Sawyer\",\"Shawn\",\"Shiloh\",\"Skyler\",\"Taylor\"],VUe=[{value:\"{{person.firstName}} {{person.lastName}}\",weight:49},{value:\"{{person.prefix}} {{person.firstName}} {{person.lastName}}\",weight:7},{value:\"{{person.firstName}} {{person.lastName}} {{person.suffix}}\",weight:7},{value:\"{{person.prefix}} {{person.firstName}} {{person.lastName}} {{person.suffix}}\",weight:1}];function WUe(...e){return[...new Set(e.flat())].sort()}var GUe=WUe(Kue,Yue),UUe=[\"female\",\"male\"],KUe=[\"Jr.\",\"Sr.\",\"I\",\"II\",\"III\",\"IV\",\"V\",\"MD\",\"DDS\",\"PhD\",\"DVM\"],YUe={descriptor:[\"Lead\",\"Senior\",\"Direct\",\"Corporate\",\"Dynamic\",\"Future\",\"Product\",\"National\",\"Regional\",\"District\",\"Central\",\"Global\",\"Customer\",\"Investor\",\"International\",\"Legacy\",\"Forward\",\"Internal\",\"Human\",\"Chief\",\"Principal\"],level:[\"Solutions\",\"Program\",\"Brand\",\"Security\",\"Research\",\"Marketing\",\"Directives\",\"Implementation\",\"Integration\",\"Functionality\",\"Response\",\"Paradigm\",\"Tactics\",\"Identity\",\"Markets\",\"Group\",\"Division\",\"Applications\",\"Optimization\",\"Operations\",\"Infrastructure\",\"Intranet\",\"Communications\",\"Web\",\"Branding\",\"Quality\",\"Assurance\",\"Mobility\",\"Accounts\",\"Data\",\"Creative\",\"Configuration\",\"Accountability\",\"Interactions\",\"Factors\",\"Usability\",\"Metrics\"],job:[\"Supervisor\",\"Associate\",\"Executive\",\"Liaison\",\"Officer\",\"Manager\",\"Engineer\",\"Specialist\",\"Director\",\"Coordinator\",\"Administrator\",\"Architect\",\"Analyst\",\"Designer\",\"Planner\",\"Orchestrator\",\"Technician\",\"Developer\",\"Producer\",\"Consultant\",\"Assistant\",\"Facilitator\",\"Agent\",\"Representative\",\"Strategist\"]},qUe=[\"Aquarius\",\"Pisces\",\"Aries\",\"Taurus\",\"Gemini\",\"Cancer\",\"Leo\",\"Virgo\",\"Libra\",\"Scorpio\",\"Sagittarius\",\"Capricorn\"],XUe={bio_part:IUe,bio_pattern:kUe,bio_supporter:RUe,female_first_name:MUe,female_middle_name:PUe,female_prefix:Kue,first_name:OUe,gender:BUe,job_title_pattern:NUe,last_name:$Ue,last_name_pattern:LUe,male_first_name:jUe,male_middle_name:zUe,male_prefix:Yue,middle_name:HUe,name:VUe,prefix:GUe,sex:UUe,suffix:KUe,title:YUe,western_zodiac_sign:qUe},JUe=XUe,ZUe=[\"!##-!##-####\",\"(!##) !##-####\",\"1-!##-!##-####\",\"!##.!##.####\",\"!##-!##-#### x###\",\"(!##) !##-#### x###\",\"1-!##-!##-#### x###\",\"!##.!##.#### x###\",\"!##-!##-#### x####\",\"(!##) !##-#### x####\",\"1-!##-!##-#### x####\",\"!##.!##.#### x####\",\"!##-!##-#### x#####\",\"(!##) !##-#### x#####\",\"1-!##-!##-#### x#####\",\"!##.!##.#### x#####\"],QUe={formats:ZUe},eKe=QUe,tKe=Object.freeze([{symbol:\"H\",name:\"Hydrogen\",atomicNumber:1},{symbol:\"He\",name:\"Helium\",atomicNumber:2},{symbol:\"Li\",name:\"Lithium\",atomicNumber:3},{symbol:\"Be\",name:\"Beryllium\",atomicNumber:4},{symbol:\"B\",name:\"Boron\",atomicNumber:5},{symbol:\"C\",name:\"Carbon\",atomicNumber:6},{symbol:\"N\",name:\"Nitrogen\",atomicNumber:7},{symbol:\"O\",name:\"Oxygen\",atomicNumber:8},{symbol:\"F\",name:\"Fluorine\",atomicNumber:9},{symbol:\"Ne\",name:\"Neon\",atomicNumber:10},{symbol:\"Na\",name:\"Sodium\",atomicNumber:11},{symbol:\"Mg\",name:\"Magnesium\",atomicNumber:12},{symbol:\"Al\",name:\"Aluminium\",atomicNumber:13},{symbol:\"Si\",name:\"Silicon\",atomicNumber:14},{symbol:\"P\",name:\"Phosphorus\",atomicNumber:15},{symbol:\"S\",name:\"Sulfur\",atomicNumber:16},{symbol:\"Cl\",name:\"Chlorine\",atomicNumber:17},{symbol:\"Ar\",name:\"Argon\",atomicNumber:18},{symbol:\"K\",name:\"Potassium\",atomicNumber:19},{symbol:\"Ca\",name:\"Calcium\",atomicNumber:20},{symbol:\"Sc\",name:\"Scandium\",atomicNumber:21},{symbol:\"Ti\",name:\"Titanium\",atomicNumber:22},{symbol:\"V\",name:\"Vanadium\",atomicNumber:23},{symbol:\"Cr\",name:\"Chromium\",atomicNumber:24},{symbol:\"Mn\",name:\"Manganese\",atomicNumber:25},{symbol:\"Fe\",name:\"Iron\",atomicNumber:26},{symbol:\"Co\",name:\"Cobalt\",atomicNumber:27},{symbol:\"Ni\",name:\"Nickel\",atomicNumber:28},{symbol:\"Cu\",name:\"Copper\",atomicNumber:29},{symbol:\"Zn\",name:\"Zinc\",atomicNumber:30},{symbol:\"Ga\",name:\"Gallium\",atomicNumber:31},{symbol:\"Ge\",name:\"Germanium\",atomicNumber:32},{symbol:\"As\",name:\"Arsenic\",atomicNumber:33},{symbol:\"Se\",name:\"Selenium\",atomicNumber:34},{symbol:\"Br\",name:\"Bromine\",atomicNumber:35},{symbol:\"Kr\",name:\"Krypton\",atomicNumber:36},{symbol:\"Rb\",name:\"Rubidium\",atomicNumber:37},{symbol:\"Sr\",name:\"Strontium\",atomicNumber:38},{symbol:\"Y\",name:\"Yttrium\",atomicNumber:39},{symbol:\"Zr\",name:\"Zirconium\",atomicNumber:40},{symbol:\"Nb\",name:\"Niobium\",atomicNumber:41},{symbol:\"Mo\",name:\"Molybdenum\",atomicNumber:42},{symbol:\"Tc\",name:\"Technetium\",atomicNumber:43},{symbol:\"Ru\",name:\"Ruthenium\",atomicNumber:44},{symbol:\"Rh\",name:\"Rhodium\",atomicNumber:45},{symbol:\"Pd\",name:\"Palladium\",atomicNumber:46},{symbol:\"Ag\",name:\"Silver\",atomicNumber:47},{symbol:\"Cd\",name:\"Cadmium\",atomicNumber:48},{symbol:\"In\",name:\"Indium\",atomicNumber:49},{symbol:\"Sn\",name:\"Tin\",atomicNumber:50},{symbol:\"Sb\",name:\"Antimony\",atomicNumber:51},{symbol:\"Te\",name:\"Tellurium\",atomicNumber:52},{symbol:\"I\",name:\"Iodine\",atomicNumber:53},{symbol:\"Xe\",name:\"Xenon\",atomicNumber:54},{symbol:\"Cs\",name:\"Caesium\",atomicNumber:55},{symbol:\"Ba\",name:\"Barium\",atomicNumber:56},{symbol:\"La\",name:\"Lanthanum\",atomicNumber:57},{symbol:\"Ce\",name:\"Cerium\",atomicNumber:58},{symbol:\"Pr\",name:\"Praseodymium\",atomicNumber:59},{symbol:\"Nd\",name:\"Neodymium\",atomicNumber:60},{symbol:\"Pm\",name:\"Promethium\",atomicNumber:61},{symbol:\"Sm\",name:\"Samarium\",atomicNumber:62},{symbol:\"Eu\",name:\"Europium\",atomicNumber:63},{symbol:\"Gd\",name:\"Gadolinium\",atomicNumber:64},{symbol:\"Tb\",name:\"Terbium\",atomicNumber:65},{symbol:\"Dy\",name:\"Dysprosium\",atomicNumber:66},{symbol:\"Ho\",name:\"Holmium\",atomicNumber:67},{symbol:\"Er\",name:\"Erbium\",atomicNumber:68},{symbol:\"Tm\",name:\"Thulium\",atomicNumber:69},{symbol:\"Yb\",name:\"Ytterbium\",atomicNumber:70},{symbol:\"Lu\",name:\"Lutetium\",atomicNumber:71},{symbol:\"Hf\",name:\"Hafnium\",atomicNumber:72},{symbol:\"Ta\",name:\"Tantalum\",atomicNumber:73},{symbol:\"W\",name:\"Tungsten\",atomicNumber:74},{symbol:\"Re\",name:\"Rhenium\",atomicNumber:75},{symbol:\"Os\",name:\"Osmium\",atomicNumber:76},{symbol:\"Ir\",name:\"Iridium\",atomicNumber:77},{symbol:\"Pt\",name:\"Platinum\",atomicNumber:78},{symbol:\"Au\",name:\"Gold\",atomicNumber:79},{symbol:\"Hg\",name:\"Mercury\",atomicNumber:80},{symbol:\"Tl\",name:\"Thallium\",atomicNumber:81},{symbol:\"Pb\",name:\"Lead\",atomicNumber:82},{symbol:\"Bi\",name:\"Bismuth\",atomicNumber:83},{symbol:\"Po\",name:\"Polonium\",atomicNumber:84},{symbol:\"At\",name:\"Astatine\",atomicNumber:85},{symbol:\"Rn\",name:\"Radon\",atomicNumber:86},{symbol:\"Fr\",name:\"Francium\",atomicNumber:87},{symbol:\"Ra\",name:\"Radium\",atomicNumber:88},{symbol:\"Ac\",name:\"Actinium\",atomicNumber:89},{symbol:\"Th\",name:\"Thorium\",atomicNumber:90},{symbol:\"Pa\",name:\"Protactinium\",atomicNumber:91},{symbol:\"U\",name:\"Uranium\",atomicNumber:92},{symbol:\"Np\",name:\"Neptunium\",atomicNumber:93},{symbol:\"Pu\",name:\"Plutonium\",atomicNumber:94},{symbol:\"Am\",name:\"Americium\",atomicNumber:95},{symbol:\"Cm\",name:\"Curium\",atomicNumber:96},{symbol:\"Bk\",name:\"Berkelium\",atomicNumber:97},{symbol:\"Cf\",name:\"Californium\",atomicNumber:98},{symbol:\"Es\",name:\"Einsteinium\",atomicNumber:99},{symbol:\"Fm\",name:\"Fermium\",atomicNumber:100},{symbol:\"Md\",name:\"Mendelevium\",atomicNumber:101},{symbol:\"No\",name:\"Nobelium\",atomicNumber:102},{symbol:\"Lr\",name:\"Lawrencium\",atomicNumber:103},{symbol:\"Rf\",name:\"Rutherfordium\",atomicNumber:104},{symbol:\"Db\",name:\"Dubnium\",atomicNumber:105},{symbol:\"Sg\",name:\"Seaborgium\",atomicNumber:106},{symbol:\"Bh\",name:\"Bohrium\",atomicNumber:107},{symbol:\"Hs\",name:\"Hassium\",atomicNumber:108},{symbol:\"Mt\",name:\"Meitnerium\",atomicNumber:109},{symbol:\"Ds\",name:\"Darmstadtium\",atomicNumber:110},{symbol:\"Rg\",name:\"Roentgenium\",atomicNumber:111},{symbol:\"Cn\",name:\"Copernicium\",atomicNumber:112},{symbol:\"Nh\",name:\"Nihonium\",atomicNumber:113},{symbol:\"Fl\",name:\"Flerovium\",atomicNumber:114},{symbol:\"Mc\",name:\"Moscovium\",atomicNumber:115},{symbol:\"Lv\",name:\"Livermorium\",atomicNumber:116},{symbol:\"Ts\",name:\"Tennessine\",atomicNumber:117},{symbol:\"Og\",name:\"Oganesson\",atomicNumber:118}]),rKe=Object.freeze([{name:\"meter\",symbol:\"m\"},{name:\"second\",symbol:\"s\"},{name:\"mole\",symbol:\"mol\"},{name:\"ampere\",symbol:\"A\"},{name:\"kelvin\",symbol:\"K\"},{name:\"candela\",symbol:\"cd\"},{name:\"kilogram\",symbol:\"kg\"},{name:\"radian\",symbol:\"rad\"},{name:\"hertz\",symbol:\"Hz\"},{name:\"newton\",symbol:\"N\"},{name:\"pascal\",symbol:\"Pa\"},{name:\"joule\",symbol:\"J\"},{name:\"watt\",symbol:\"W\"},{name:\"coulomb\",symbol:\"C\"},{name:\"volt\",symbol:\"V\"},{name:\"ohm\",symbol:\"Ω\"},{name:\"tesla\",symbol:\"T\"},{name:\"degree Celsius\",symbol:\"°C\"},{name:\"lumen\",symbol:\"lm\"},{name:\"becquerel\",symbol:\"Bq\"},{name:\"gray\",symbol:\"Gy\"},{name:\"sievert\",symbol:\"Sv\"},{name:\"steradian\",symbol:\"sr\"},{name:\"farad\",symbol:\"F\"},{name:\"siemens\",symbol:\"S\"},{name:\"weber\",symbol:\"Wb\"},{name:\"henry\",symbol:\"H\"},{name:\"lux\",symbol:\"lx\"},{name:\"katal\",symbol:\"kat\"}]),nKe={chemicalElement:tKe,unit:rKe},aKe=nKe,iKe=[\"ants\",\"bats\",\"bears\",\"bees\",\"birds\",\"buffalo\",\"cats\",\"chickens\",\"cattle\",\"dogs\",\"dolphins\",\"ducks\",\"elephants\",\"fishes\",\"foxes\",\"frogs\",\"geese\",\"goats\",\"horses\",\"kangaroos\",\"lions\",\"monkeys\",\"owls\",\"oxen\",\"penguins\",\"people\",\"pigs\",\"rabbits\",\"sheep\",\"tigers\",\"whales\",\"wolves\",\"zebras\",\"banshees\",\"crows\",\"black cats\",\"chimeras\",\"ghosts\",\"conspirators\",\"dragons\",\"dwarves\",\"elves\",\"enchanters\",\"exorcists\",\"sons\",\"foes\",\"giants\",\"gnomes\",\"goblins\",\"gooses\",\"griffins\",\"lycanthropes\",\"nemesis\",\"ogres\",\"oracles\",\"prophets\",\"sorcerors\",\"spiders\",\"spirits\",\"vampires\",\"warlocks\",\"vixens\",\"werewolves\",\"witches\",\"worshipers\",\"zombies\",\"druids\"],oKe=[\"{{location.state}} {{team.creature}}\"],lKe={creature:iKe,name:oKe},sKe=lKe,uKe=[\"Adventure Road Bicycle\",\"BMX Bicycle\",\"City Bicycle\",\"Cruiser Bicycle\",\"Cyclocross Bicycle\",\"Dual-Sport Bicycle\",\"Fitness Bicycle\",\"Flat-Foot Comfort Bicycle\",\"Folding Bicycle\",\"Hybrid Bicycle\",\"Mountain Bicycle\",\"Recumbent Bicycle\",\"Road Bicycle\",\"Tandem Bicycle\",\"Touring Bicycle\",\"Track/Fixed-Gear Bicycle\",\"Triathlon/Time Trial Bicycle\",\"Tricycle\"],cKe=[\"Diesel\",\"Electric\",\"Gasoline\",\"Hybrid\"],dKe=[\"Aston Martin\",\"Audi\",\"Bentley\",\"BMW\",\"Bugatti\",\"Cadillac\",\"Chevrolet\",\"Chrysler\",\"Dodge\",\"Ferrari\",\"Fiat\",\"Ford\",\"Honda\",\"Hyundai\",\"Jaguar\",\"Jeep\",\"Kia\",\"Lamborghini\",\"Land Rover\",\"Maserati\",\"Mazda\",\"Mercedes Benz\",\"Mini\",\"Nissan\",\"Polestar\",\"Porsche\",\"Rolls Royce\",\"Smart\",\"Tesla\",\"Toyota\",\"Volkswagen\",\"Volvo\"],fKe=[\"Fiesta\",\"Focus\",\"Taurus\",\"Mustang\",\"Explorer\",\"Expedition\",\"F-150\",\"Model T\",\"Ranchero\",\"Volt\",\"Cruze\",\"Malibu\",\"Impala\",\"Camaro\",\"Corvette\",\"Colorado\",\"Silverado\",\"El Camino\",\"CTS\",\"XTS\",\"ATS\",\"Escalade\",\"Alpine\",\"Charger\",\"LeBaron\",\"PT Cruiser\",\"Challenger\",\"Durango\",\"Grand Caravan\",\"Wrangler\",\"Grand Cherokee\",\"Roadster\",\"Model S\",\"Model 3\",\"Model X\",\"Model Y\",\"Camry\",\"Prius\",\"Land Cruiser\",\"Accord\",\"Civic\",\"Element\",\"Sentra\",\"Altima\",\"A8\",\"A4\",\"Beetle\",\"Jetta\",\"Golf\",\"911\",\"Spyder\",\"Countach\",\"Mercielago\",\"Aventador\",\"1\",\"2\",\"Fortwo\",\"V90\",\"XC90\",\"CX-9\"],hKe=[\"Cargo Van\",\"Convertible\",\"Coupe\",\"Crew Cab Pickup\",\"Extended Cab Pickup\",\"Hatchback\",\"Minivan\",\"Passenger Van\",\"SUV\",\"Sedan\",\"Wagon\"],pKe={bicycle_type:uKe,fuel:cKe,manufacturer:dKe,model:fKe,type:hKe},mKe=pKe,vKe=[\"abandoned\",\"able\",\"absolute\",\"adorable\",\"adventurous\",\"academic\",\"acceptable\",\"acclaimed\",\"accomplished\",\"accurate\",\"aching\",\"acidic\",\"acrobatic\",\"active\",\"actual\",\"adept\",\"admirable\",\"admired\",\"adolescent\",\"adored\",\"advanced\",\"afraid\",\"affectionate\",\"aged\",\"aggravating\",\"aggressive\",\"agile\",\"agitated\",\"agonizing\",\"agreeable\",\"ajar\",\"alarmed\",\"alarming\",\"alert\",\"alienated\",\"alive\",\"all\",\"altruistic\",\"amazing\",\"ambitious\",\"ample\",\"amused\",\"amusing\",\"anchored\",\"ancient\",\"angelic\",\"angry\",\"anguished\",\"animated\",\"annual\",\"another\",\"antique\",\"anxious\",\"any\",\"apprehensive\",\"appropriate\",\"apt\",\"arctic\",\"arid\",\"aromatic\",\"artistic\",\"ashamed\",\"assured\",\"astonishing\",\"athletic\",\"attached\",\"attentive\",\"attractive\",\"austere\",\"authentic\",\"authorized\",\"automatic\",\"avaricious\",\"average\",\"aware\",\"awesome\",\"awful\",\"awkward\",\"babyish\",\"bad\",\"back\",\"baggy\",\"bare\",\"barren\",\"basic\",\"beautiful\",\"belated\",\"beloved\",\"beneficial\",\"better\",\"best\",\"bewitched\",\"big\",\"big-hearted\",\"biodegradable\",\"bite-sized\",\"bitter\",\"black\",\"black-and-white\",\"bland\",\"blank\",\"blaring\",\"bleak\",\"blind\",\"blissful\",\"blond\",\"blue\",\"blushing\",\"bogus\",\"boiling\",\"bold\",\"bony\",\"boring\",\"bossy\",\"both\",\"bouncy\",\"bountiful\",\"bowed\",\"brave\",\"breakable\",\"brief\",\"bright\",\"brilliant\",\"brisk\",\"broken\",\"bronze\",\"brown\",\"bruised\",\"bubbly\",\"bulky\",\"bumpy\",\"buoyant\",\"burdensome\",\"burly\",\"bustling\",\"busy\",\"buttery\",\"buzzing\",\"calculating\",\"calm\",\"candid\",\"canine\",\"capital\",\"carefree\",\"careful\",\"careless\",\"caring\",\"cautious\",\"cavernous\",\"celebrated\",\"charming\",\"cheap\",\"cheerful\",\"cheery\",\"chief\",\"chilly\",\"chubby\",\"circular\",\"classic\",\"clean\",\"clear\",\"clear-cut\",\"clever\",\"close\",\"closed\",\"cloudy\",\"clueless\",\"clumsy\",\"cluttered\",\"coarse\",\"cold\",\"colorful\",\"colorless\",\"colossal\",\"comfortable\",\"common\",\"compassionate\",\"competent\",\"complete\",\"complex\",\"complicated\",\"composed\",\"concerned\",\"concrete\",\"confused\",\"conscious\",\"considerate\",\"constant\",\"content\",\"conventional\",\"cooked\",\"cool\",\"cooperative\",\"coordinated\",\"corny\",\"corrupt\",\"costly\",\"courageous\",\"courteous\",\"crafty\",\"crazy\",\"creamy\",\"creative\",\"creepy\",\"criminal\",\"crisp\",\"critical\",\"crooked\",\"crowded\",\"cruel\",\"crushing\",\"cuddly\",\"cultivated\",\"cultured\",\"cumbersome\",\"curly\",\"curvy\",\"cute\",\"cylindrical\",\"damaged\",\"damp\",\"dangerous\",\"dapper\",\"daring\",\"darling\",\"dark\",\"dazzling\",\"dead\",\"deadly\",\"deafening\",\"dear\",\"dearest\",\"decent\",\"decimal\",\"decisive\",\"deep\",\"defenseless\",\"defensive\",\"defiant\",\"deficient\",\"definite\",\"definitive\",\"delayed\",\"delectable\",\"delicious\",\"delightful\",\"delirious\",\"demanding\",\"dense\",\"dental\",\"dependable\",\"dependent\",\"descriptive\",\"deserted\",\"detailed\",\"determined\",\"devoted\",\"different\",\"difficult\",\"digital\",\"diligent\",\"dim\",\"dimpled\",\"direct\",\"disastrous\",\"discrete\",\"disgusting\",\"disloyal\",\"dismal\",\"distant\",\"downright\",\"dreary\",\"dirty\",\"disguised\",\"dishonest\",\"distinct\",\"distorted\",\"dizzy\",\"doting\",\"double\",\"drab\",\"drafty\",\"dramatic\",\"droopy\",\"dry\",\"dual\",\"dull\",\"dutiful\",\"each\",\"eager\",\"earnest\",\"early\",\"easy\",\"easy-going\",\"ecstatic\",\"edible\",\"educated\",\"elaborate\",\"elastic\",\"elated\",\"elderly\",\"electric\",\"elegant\",\"elementary\",\"elliptical\",\"embarrassed\",\"embellished\",\"eminent\",\"emotional\",\"empty\",\"enchanted\",\"enchanting\",\"energetic\",\"enlightened\",\"enormous\",\"enraged\",\"entire\",\"envious\",\"equal\",\"equatorial\",\"essential\",\"esteemed\",\"ethical\",\"euphoric\",\"even\",\"evergreen\",\"everlasting\",\"every\",\"evil\",\"exalted\",\"excellent\",\"exemplary\",\"exhausted\",\"excitable\",\"excited\",\"exciting\",\"exotic\",\"expensive\",\"experienced\",\"expert\",\"extraneous\",\"extroverted\",\"extra-large\",\"extra-small\",\"fabulous\",\"failing\",\"faint\",\"fair\",\"faithful\",\"fake\",\"false\",\"familiar\",\"famous\",\"fancy\",\"fantastic\",\"far\",\"faraway\",\"far-flung\",\"far-off\",\"fast\",\"fat\",\"fatal\",\"fatherly\",\"favorable\",\"favorite\",\"fearful\",\"fearless\",\"feisty\",\"feline\",\"female\",\"feminine\",\"few\",\"fickle\",\"filthy\",\"fine\",\"finished\",\"firm\",\"first\",\"firsthand\",\"fitting\",\"fixed\",\"flaky\",\"flamboyant\",\"flashy\",\"flat\",\"flawed\",\"flawless\",\"flickering\",\"flimsy\",\"flippant\",\"flowery\",\"fluffy\",\"fluid\",\"flustered\",\"focused\",\"fond\",\"foolhardy\",\"foolish\",\"forceful\",\"forked\",\"formal\",\"forsaken\",\"forthright\",\"fortunate\",\"fragrant\",\"frail\",\"frank\",\"frayed\",\"free\",\"french\",\"fresh\",\"frequent\",\"friendly\",\"frightened\",\"frightening\",\"frigid\",\"frilly\",\"frizzy\",\"frivolous\",\"front\",\"frosty\",\"frozen\",\"frugal\",\"fruitful\",\"full\",\"fumbling\",\"functional\",\"funny\",\"fussy\",\"fuzzy\",\"gargantuan\",\"gaseous\",\"general\",\"generous\",\"gentle\",\"genuine\",\"giant\",\"giddy\",\"gigantic\",\"gifted\",\"giving\",\"glamorous\",\"glaring\",\"glass\",\"gleaming\",\"gleeful\",\"glistening\",\"glittering\",\"gloomy\",\"glorious\",\"glossy\",\"glum\",\"golden\",\"good\",\"good-natured\",\"gorgeous\",\"graceful\",\"gracious\",\"grand\",\"grandiose\",\"granular\",\"grateful\",\"grave\",\"gray\",\"great\",\"greedy\",\"green\",\"gregarious\",\"grim\",\"grimy\",\"gripping\",\"grizzled\",\"grotesque\",\"grouchy\",\"grounded\",\"growing\",\"growling\",\"grown\",\"grubby\",\"gruesome\",\"grumpy\",\"guilty\",\"gullible\",\"gummy\",\"hairy\",\"half\",\"handmade\",\"handsome\",\"handy\",\"happy\",\"happy-go-lucky\",\"hard\",\"hard-to-find\",\"harmful\",\"harmless\",\"harmonious\",\"harsh\",\"hasty\",\"hateful\",\"haunting\",\"healthy\",\"heartfelt\",\"hearty\",\"heavenly\",\"heavy\",\"hefty\",\"helpful\",\"helpless\",\"hidden\",\"hideous\",\"high\",\"high-level\",\"hilarious\",\"hoarse\",\"hollow\",\"homely\",\"honest\",\"honorable\",\"honored\",\"hopeful\",\"horrible\",\"hospitable\",\"hot\",\"huge\",\"humble\",\"humiliating\",\"humming\",\"humongous\",\"hungry\",\"hurtful\",\"husky\",\"icky\",\"icy\",\"ideal\",\"idealistic\",\"identical\",\"idle\",\"idolized\",\"ignorant\",\"ill\",\"ill-fated\",\"ill-informed\",\"illiterate\",\"illustrious\",\"imaginary\",\"imaginative\",\"immaculate\",\"immaterial\",\"immediate\",\"immense\",\"impassioned\",\"impeccable\",\"impartial\",\"imperfect\",\"imperturbable\",\"impish\",\"impolite\",\"important\",\"impossible\",\"impractical\",\"impressionable\",\"impressive\",\"improbable\",\"impure\",\"inborn\",\"incomparable\",\"incompatible\",\"incomplete\",\"inconsequential\",\"incredible\",\"indelible\",\"inexperienced\",\"indolent\",\"infamous\",\"infantile\",\"infatuated\",\"inferior\",\"infinite\",\"informal\",\"innocent\",\"insecure\",\"insidious\",\"insignificant\",\"insistent\",\"instructive\",\"insubstantial\",\"intelligent\",\"intent\",\"intentional\",\"interesting\",\"internal\",\"international\",\"intrepid\",\"ironclad\",\"irresponsible\",\"irritating\",\"itchy\",\"jaded\",\"jagged\",\"jam-packed\",\"jaunty\",\"jealous\",\"jittery\",\"joint\",\"jolly\",\"jovial\",\"joyful\",\"joyous\",\"jubilant\",\"judicious\",\"juicy\",\"jumbo\",\"junior\",\"jumpy\",\"juvenile\",\"kaleidoscopic\",\"keen\",\"key\",\"kind\",\"kindhearted\",\"kindly\",\"klutzy\",\"knobby\",\"knotty\",\"knowledgeable\",\"knowing\",\"known\",\"kooky\",\"kosher\",\"lanky\",\"large\",\"last\",\"lasting\",\"late\",\"lavish\",\"lawful\",\"lazy\",\"leading\",\"lean\",\"leafy\",\"left\",\"legal\",\"legitimate\",\"light\",\"lighthearted\",\"likable\",\"likely\",\"limited\",\"limp\",\"limping\",\"linear\",\"lined\",\"liquid\",\"little\",\"live\",\"lively\",\"livid\",\"loathsome\",\"lone\",\"lonely\",\"long\",\"long-term\",\"loose\",\"lopsided\",\"lost\",\"loud\",\"lovable\",\"lovely\",\"loving\",\"low\",\"loyal\",\"lucky\",\"lumbering\",\"luminous\",\"lumpy\",\"lustrous\",\"luxurious\",\"mad\",\"made-up\",\"magnificent\",\"majestic\",\"major\",\"male\",\"mammoth\",\"married\",\"marvelous\",\"masculine\",\"massive\",\"mature\",\"meager\",\"mealy\",\"mean\",\"measly\",\"meaty\",\"medical\",\"mediocre\",\"medium\",\"meek\",\"mellow\",\"melodic\",\"memorable\",\"menacing\",\"merry\",\"messy\",\"metallic\",\"mild\",\"milky\",\"mindless\",\"miniature\",\"minor\",\"minty\",\"miserable\",\"miserly\",\"misguided\",\"misty\",\"mixed\",\"modern\",\"modest\",\"moist\",\"monstrous\",\"monthly\",\"monumental\",\"moral\",\"mortified\",\"motherly\",\"motionless\",\"mountainous\",\"muddy\",\"muffled\",\"multicolored\",\"mundane\",\"murky\",\"mushy\",\"musty\",\"muted\",\"mysterious\",\"naive\",\"narrow\",\"natural\",\"naughty\",\"nautical\",\"near\",\"neat\",\"necessary\",\"needy\",\"negative\",\"neglected\",\"negligible\",\"neighboring\",\"nervous\",\"new\",\"next\",\"nice\",\"nifty\",\"nimble\",\"nippy\",\"nocturnal\",\"noisy\",\"nonstop\",\"normal\",\"notable\",\"noted\",\"noteworthy\",\"novel\",\"noxious\",\"numb\",\"nutritious\",\"nutty\",\"obedient\",\"oblong\",\"oily\",\"obvious\",\"occasional\",\"odd\",\"oddball\",\"offbeat\",\"offensive\",\"official\",\"old\",\"old-fashioned\",\"only\",\"open\",\"optimal\",\"optimistic\",\"opulent\",\"orange\",\"orderly\",\"organic\",\"ornate\",\"ornery\",\"ordinary\",\"original\",\"other\",\"our\",\"outlying\",\"outgoing\",\"outlandish\",\"outrageous\",\"outstanding\",\"oval\",\"overcooked\",\"overdue\",\"overjoyed\",\"overlooked\",\"palatable\",\"pale\",\"paltry\",\"parallel\",\"parched\",\"partial\",\"passionate\",\"past\",\"pastel\",\"peaceful\",\"peppery\",\"perfect\",\"perfumed\",\"periodic\",\"perky\",\"personal\",\"pertinent\",\"pesky\",\"pessimistic\",\"petty\",\"phony\",\"physical\",\"piercing\",\"pink\",\"pitiful\",\"plain\",\"plaintive\",\"plastic\",\"playful\",\"pleasant\",\"pleased\",\"pleasing\",\"plump\",\"plush\",\"polished\",\"polite\",\"political\",\"pointed\",\"pointless\",\"poised\",\"poor\",\"popular\",\"portly\",\"posh\",\"positive\",\"possible\",\"potable\",\"powerful\",\"powerless\",\"practical\",\"precious\",\"present\",\"prestigious\",\"pretty\",\"previous\",\"pricey\",\"prickly\",\"primary\",\"prime\",\"pristine\",\"private\",\"prize\",\"probable\",\"productive\",\"profitable\",\"profuse\",\"proper\",\"proud\",\"prudent\",\"punctual\",\"pungent\",\"puny\",\"pure\",\"purple\",\"pushy\",\"putrid\",\"puzzled\",\"puzzling\",\"quaint\",\"qualified\",\"quarrelsome\",\"quarterly\",\"queasy\",\"querulous\",\"questionable\",\"quick\",\"quick-witted\",\"quiet\",\"quintessential\",\"quirky\",\"quixotic\",\"quizzical\",\"radiant\",\"ragged\",\"rapid\",\"rare\",\"rash\",\"raw\",\"recent\",\"reckless\",\"rectangular\",\"ready\",\"real\",\"realistic\",\"reasonable\",\"red\",\"reflecting\",\"regal\",\"regular\",\"reliable\",\"relieved\",\"remarkable\",\"remorseful\",\"remote\",\"repentant\",\"required\",\"respectful\",\"responsible\",\"repulsive\",\"revolving\",\"rewarding\",\"rich\",\"rigid\",\"right\",\"ringed\",\"ripe\",\"roasted\",\"robust\",\"rosy\",\"rotating\",\"rotten\",\"rough\",\"round\",\"rowdy\",\"royal\",\"rubbery\",\"rundown\",\"ruddy\",\"rude\",\"runny\",\"rural\",\"rusty\",\"sad\",\"safe\",\"salty\",\"same\",\"sandy\",\"sane\",\"sarcastic\",\"sardonic\",\"satisfied\",\"scaly\",\"scarce\",\"scared\",\"scary\",\"scented\",\"scholarly\",\"scientific\",\"scornful\",\"scratchy\",\"scrawny\",\"second\",\"secondary\",\"second-hand\",\"secret\",\"self-assured\",\"self-reliant\",\"selfish\",\"sentimental\",\"separate\",\"serene\",\"serious\",\"serpentine\",\"several\",\"severe\",\"shabby\",\"shadowy\",\"shady\",\"shallow\",\"shameful\",\"shameless\",\"sharp\",\"shimmering\",\"shiny\",\"shocked\",\"shocking\",\"shoddy\",\"short\",\"short-term\",\"showy\",\"shrill\",\"shy\",\"sick\",\"silent\",\"silky\",\"silly\",\"silver\",\"similar\",\"simple\",\"simplistic\",\"sinful\",\"single\",\"sizzling\",\"skeletal\",\"skinny\",\"sleepy\",\"slight\",\"slim\",\"slimy\",\"slippery\",\"slow\",\"slushy\",\"small\",\"smart\",\"smoggy\",\"smooth\",\"smug\",\"snappy\",\"snarling\",\"sneaky\",\"sniveling\",\"snoopy\",\"sociable\",\"soft\",\"soggy\",\"solid\",\"somber\",\"some\",\"spherical\",\"sophisticated\",\"sore\",\"sorrowful\",\"soulful\",\"soupy\",\"sour\",\"spanish\",\"sparkling\",\"sparse\",\"specific\",\"spectacular\",\"speedy\",\"spicy\",\"spiffy\",\"spirited\",\"spiteful\",\"splendid\",\"spotless\",\"spotted\",\"spry\",\"square\",\"squeaky\",\"squiggly\",\"stable\",\"staid\",\"stained\",\"stale\",\"standard\",\"starchy\",\"stark\",\"starry\",\"steep\",\"sticky\",\"stiff\",\"stimulating\",\"stingy\",\"stormy\",\"straight\",\"strange\",\"steel\",\"strict\",\"strident\",\"striking\",\"striped\",\"strong\",\"studious\",\"stunning\",\"stupendous\",\"sturdy\",\"stylish\",\"subdued\",\"submissive\",\"substantial\",\"subtle\",\"suburban\",\"sudden\",\"sugary\",\"sunny\",\"super\",\"superb\",\"superficial\",\"superior\",\"supportive\",\"sure-footed\",\"surprised\",\"suspicious\",\"svelte\",\"sweaty\",\"sweet\",\"sweltering\",\"swift\",\"sympathetic\",\"tall\",\"talkative\",\"tame\",\"tan\",\"tangible\",\"tart\",\"tasty\",\"tattered\",\"taut\",\"tedious\",\"teeming\",\"tempting\",\"tender\",\"tense\",\"tepid\",\"terrible\",\"terrific\",\"testy\",\"thankful\",\"that\",\"these\",\"thick\",\"thin\",\"third\",\"thirsty\",\"this\",\"thorough\",\"thorny\",\"those\",\"thoughtful\",\"threadbare\",\"thrifty\",\"thunderous\",\"tidy\",\"tight\",\"timely\",\"tinted\",\"tiny\",\"tired\",\"torn\",\"total\",\"tough\",\"traumatic\",\"treasured\",\"tremendous\",\"tragic\",\"trained\",\"triangular\",\"tricky\",\"trifling\",\"trim\",\"trivial\",\"troubled\",\"true\",\"trusting\",\"trustworthy\",\"trusty\",\"truthful\",\"turbulent\",\"twin\",\"ugly\",\"ultimate\",\"unacceptable\",\"unaware\",\"uncomfortable\",\"uncommon\",\"unconscious\",\"understated\",\"unequaled\",\"uneven\",\"unfinished\",\"unfit\",\"unfolded\",\"unfortunate\",\"unhappy\",\"unhealthy\",\"uniform\",\"unimportant\",\"unique\",\"united\",\"unkempt\",\"unknown\",\"unlawful\",\"unlined\",\"unlucky\",\"unnatural\",\"unpleasant\",\"unrealistic\",\"unripe\",\"unruly\",\"unselfish\",\"unsightly\",\"unsteady\",\"unsung\",\"untidy\",\"untimely\",\"untried\",\"untrue\",\"unused\",\"unusual\",\"unwelcome\",\"unwieldy\",\"unwilling\",\"unwitting\",\"unwritten\",\"upbeat\",\"upright\",\"upset\",\"urban\",\"usable\",\"used\",\"useful\",\"useless\",\"utilized\",\"utter\",\"vacant\",\"vague\",\"vain\",\"valid\",\"valuable\",\"vapid\",\"variable\",\"vast\",\"velvety\",\"venerated\",\"vengeful\",\"verifiable\",\"vibrant\",\"vicious\",\"victorious\",\"vigilant\",\"vigorous\",\"villainous\",\"violet\",\"violent\",\"virtual\",\"virtuous\",\"visible\",\"vital\",\"vivacious\",\"vivid\",\"voluminous\",\"wan\",\"warlike\",\"warm\",\"warmhearted\",\"warped\",\"wary\",\"wasteful\",\"watchful\",\"waterlogged\",\"watery\",\"wavy\",\"wealthy\",\"weak\",\"weary\",\"webbed\",\"wee\",\"weekly\",\"weepy\",\"weighty\",\"weird\",\"welcome\",\"well-documented\",\"well-groomed\",\"well-informed\",\"well-lit\",\"well-made\",\"well-off\",\"well-to-do\",\"well-worn\",\"wet\",\"which\",\"whimsical\",\"whirlwind\",\"whispered\",\"white\",\"whole\",\"whopping\",\"wicked\",\"wide\",\"wide-eyed\",\"wiggly\",\"wild\",\"willing\",\"wilted\",\"winding\",\"windy\",\"winged\",\"wiry\",\"wise\",\"witty\",\"wobbly\",\"woeful\",\"wonderful\",\"wooden\",\"woozy\",\"wordy\",\"worldly\",\"worn\",\"worried\",\"worrisome\",\"worse\",\"worst\",\"worthless\",\"worthwhile\",\"worthy\",\"wrathful\",\"wretched\",\"writhing\",\"wrong\",\"wry\",\"yawning\",\"yearly\",\"yellow\",\"yellowish\",\"young\",\"youthful\",\"yummy\",\"zany\",\"zealous\",\"zesty\",\"zigzag\"],gKe=[\"abnormally\",\"absentmindedly\",\"accidentally\",\"acidly\",\"actually\",\"adventurously\",\"afterwards\",\"almost\",\"always\",\"angrily\",\"annually\",\"anxiously\",\"arrogantly\",\"awkwardly\",\"badly\",\"bashfully\",\"beautifully\",\"bitterly\",\"bleakly\",\"blindly\",\"blissfully\",\"boastfully\",\"boldly\",\"bravely\",\"briefly\",\"brightly\",\"briskly\",\"broadly\",\"busily\",\"calmly\",\"carefully\",\"carelessly\",\"cautiously\",\"certainly\",\"cheerfully\",\"clearly\",\"cleverly\",\"closely\",\"coaxingly\",\"colorfully\",\"commonly\",\"continually\",\"coolly\",\"correctly\",\"courageously\",\"crossly\",\"cruelly\",\"curiously\",\"daily\",\"daintily\",\"dearly\",\"deceivingly\",\"deeply\",\"defiantly\",\"deliberately\",\"delightfully\",\"diligently\",\"dimly\",\"doubtfully\",\"dreamily\",\"easily\",\"elegantly\",\"energetically\",\"enormously\",\"enthusiastically\",\"equally\",\"especially\",\"even\",\"evenly\",\"eventually\",\"exactly\",\"excitedly\",\"extremely\",\"fairly\",\"faithfully\",\"famously\",\"far\",\"fast\",\"fatally\",\"ferociously\",\"fervently\",\"fiercely\",\"fondly\",\"foolishly\",\"fortunately\",\"frankly\",\"frantically\",\"freely\",\"frenetically\",\"frightfully\",\"fully\",\"furiously\",\"generally\",\"generously\",\"gently\",\"gladly\",\"gleefully\",\"gracefully\",\"gratefully\",\"greatly\",\"greedily\",\"happily\",\"hastily\",\"healthily\",\"heavily\",\"helpfully\",\"helplessly\",\"highly\",\"honestly\",\"hopelessly\",\"hourly\",\"hungrily\",\"immediately\",\"innocently\",\"inquisitively\",\"instantly\",\"intensely\",\"intently\",\"interestingly\",\"inwardly\",\"irritably\",\"jaggedly\",\"jealously\",\"joshingly\",\"jovially\",\"joyfully\",\"joyously\",\"jubilantly\",\"judgementally\",\"justly\",\"keenly\",\"kiddingly\",\"kindheartedly\",\"kindly\",\"kissingly\",\"knavishly\",\"knottily\",\"knowingly\",\"knowledgeably\",\"kookily\",\"lazily\",\"less\",\"lightly\",\"likely\",\"limply\",\"lively\",\"loftily\",\"longingly\",\"loosely\",\"loudly\",\"lovingly\",\"loyally\",\"madly\",\"majestically\",\"meaningfully\",\"mechanically\",\"merrily\",\"miserably\",\"mockingly\",\"monthly\",\"more\",\"mortally\",\"mostly\",\"mysteriously\",\"naturally\",\"nearly\",\"neatly\",\"needily\",\"nervously\",\"never\",\"nicely\",\"noisily\",\"not\",\"obediently\",\"obnoxiously\",\"oddly\",\"offensively\",\"officially\",\"often\",\"only\",\"openly\",\"optimistically\",\"overconfidently\",\"owlishly\",\"painfully\",\"partially\",\"patiently\",\"perfectly\",\"physically\",\"playfully\",\"politely\",\"poorly\",\"positively\",\"potentially\",\"powerfully\",\"promptly\",\"properly\",\"punctually\",\"quaintly\",\"quarrelsomely\",\"queasily\",\"questionably\",\"questioningly\",\"quicker\",\"quickly\",\"quietly\",\"quirkily\",\"quizzically\",\"rapidly\",\"rarely\",\"readily\",\"really\",\"reassuringly\",\"recklessly\",\"regularly\",\"reluctantly\",\"repeatedly\",\"reproachfully\",\"restfully\",\"righteously\",\"rightfully\",\"rigidly\",\"roughly\",\"rudely\",\"sadly\",\"safely\",\"scarcely\",\"scarily\",\"searchingly\",\"sedately\",\"seemingly\",\"seldom\",\"selfishly\",\"separately\",\"seriously\",\"shakily\",\"sharply\",\"sheepishly\",\"shrilly\",\"shyly\",\"silently\",\"sleepily\",\"slowly\",\"smoothly\",\"softly\",\"solemnly\",\"solidly\",\"sometimes\",\"soon\",\"speedily\",\"stealthily\",\"sternly\",\"strictly\",\"successfully\",\"suddenly\",\"surprisingly\",\"suspiciously\",\"sweetly\",\"swiftly\",\"sympathetically\",\"tenderly\",\"tensely\",\"terribly\",\"thankfully\",\"thoroughly\",\"thoughtfully\",\"tightly\",\"tomorrow\",\"too\",\"tremendously\",\"triumphantly\",\"truly\",\"truthfully\",\"ultimately\",\"unabashedly\",\"unaccountably\",\"unbearably\",\"unethically\",\"unexpectedly\",\"unfortunately\",\"unimpressively\",\"unnaturally\",\"unnecessarily\",\"upbeat\",\"upliftingly\",\"upright\",\"upside-down\",\"upward\",\"upwardly\",\"urgently\",\"usefully\",\"uselessly\",\"usually\",\"utterly\",\"vacantly\",\"vaguely\",\"vainly\",\"valiantly\",\"vastly\",\"verbally\",\"very\",\"viciously\",\"victoriously\",\"violently\",\"vivaciously\",\"voluntarily\",\"warmly\",\"weakly\",\"wearily\",\"well\",\"wetly\",\"wholly\",\"wildly\",\"willfully\",\"wisely\",\"woefully\",\"wonderfully\",\"worriedly\",\"wrongly\",\"yawningly\",\"yearly\",\"yearningly\",\"yesterday\",\"yieldingly\",\"youthfully\"],yKe=[\"after\",\"although\",\"and\",\"as\",\"because\",\"before\",\"but\",\"consequently\",\"even\",\"finally\",\"for\",\"furthermore\",\"hence\",\"how\",\"however\",\"if\",\"inasmuch\",\"incidentally\",\"indeed\",\"instead\",\"lest\",\"likewise\",\"meanwhile\",\"nor\",\"now\",\"once\",\"or\",\"provided\",\"since\",\"so\",\"supposing\",\"than\",\"that\",\"though\",\"till\",\"unless\",\"until\",\"what\",\"when\",\"whenever\",\"where\",\"whereas\",\"wherever\",\"whether\",\"which\",\"while\",\"who\",\"whoever\",\"whose\",\"why\",\"yet\"],bKe=[\"yuck\",\"oh\",\"phooey\",\"blah\",\"boo\",\"whoa\",\"yowza\",\"huzzah\",\"boohoo\",\"fooey\",\"geez\",\"pfft\",\"ew\",\"ah\",\"yum\",\"brr\",\"hm\",\"yahoo\",\"aha\",\"woot\",\"drat\",\"gah\",\"meh\",\"psst\",\"aw\",\"ugh\",\"yippee\",\"eek\",\"gee\",\"bah\",\"gadzooks\",\"duh\",\"ha\",\"mmm\",\"ouch\",\"phew\",\"ack\",\"uh-huh\",\"gosh\",\"hmph\",\"pish\",\"zowie\",\"er\",\"ick\",\"oof\",\"um\"],xKe=[\"ATM\",\"CD\",\"SUV\",\"TV\",\"aardvark\",\"abacus\",\"abbey\",\"abbreviation\",\"abdomen\",\"ability\",\"abnormality\",\"abolishment\",\"abrogation\",\"absence\",\"abundance\",\"academics\",\"academy\",\"accelerant\",\"accelerator\",\"accent\",\"acceptance\",\"access\",\"accessory\",\"accident\",\"accommodation\",\"accompanist\",\"accomplishment\",\"accord\",\"accordance\",\"accordion\",\"account\",\"accountability\",\"accountant\",\"accounting\",\"accuracy\",\"accusation\",\"acetate\",\"achievement\",\"achiever\",\"acid\",\"acknowledgment\",\"acorn\",\"acoustics\",\"acquaintance\",\"acquisition\",\"acre\",\"acrylic\",\"act\",\"action\",\"activation\",\"activist\",\"activity\",\"actor\",\"actress\",\"acupuncture\",\"ad\",\"adaptation\",\"adapter\",\"addiction\",\"addition\",\"address\",\"adjective\",\"adjustment\",\"admin\",\"administration\",\"administrator\",\"admire\",\"admission\",\"adobe\",\"adoption\",\"adrenalin\",\"adrenaline\",\"adult\",\"adulthood\",\"advance\",\"advancement\",\"advantage\",\"advent\",\"adverb\",\"advertisement\",\"advertising\",\"advice\",\"adviser\",\"advocacy\",\"advocate\",\"affair\",\"affect\",\"affidavit\",\"affiliate\",\"affinity\",\"afoul\",\"afterlife\",\"aftermath\",\"afternoon\",\"aftershave\",\"aftershock\",\"afterthought\",\"age\",\"agency\",\"agenda\",\"agent\",\"aggradation\",\"aggression\",\"aglet\",\"agony\",\"agreement\",\"agriculture\",\"aid\",\"aide\",\"aim\",\"air\",\"airbag\",\"airbus\",\"aircraft\",\"airfare\",\"airfield\",\"airforce\",\"airline\",\"airmail\",\"airman\",\"airplane\",\"airport\",\"airship\",\"airspace\",\"alarm\",\"alb\",\"albatross\",\"album\",\"alcohol\",\"alcove\",\"alder\",\"ale\",\"alert\",\"alfalfa\",\"algebra\",\"algorithm\",\"alias\",\"alibi\",\"alien\",\"allegation\",\"allergist\",\"alley\",\"alliance\",\"alligator\",\"allocation\",\"allowance\",\"alloy\",\"alluvium\",\"almanac\",\"almighty\",\"almond\",\"alpaca\",\"alpenglow\",\"alpenhorn\",\"alpha\",\"alphabet\",\"altar\",\"alteration\",\"alternative\",\"altitude\",\"alto\",\"aluminium\",\"aluminum\",\"amazement\",\"amazon\",\"ambassador\",\"amber\",\"ambience\",\"ambiguity\",\"ambition\",\"ambulance\",\"amendment\",\"amenity\",\"ammunition\",\"amnesty\",\"amount\",\"amusement\",\"anagram\",\"analgesia\",\"analog\",\"analogue\",\"analogy\",\"analysis\",\"analyst\",\"analytics\",\"anarchist\",\"anarchy\",\"anatomy\",\"ancestor\",\"anchovy\",\"android\",\"anesthesiologist\",\"anesthesiology\",\"angel\",\"anger\",\"angina\",\"angle\",\"angora\",\"angstrom\",\"anguish\",\"animal\",\"anime\",\"anise\",\"ankle\",\"anklet\",\"anniversary\",\"announcement\",\"annual\",\"anorak\",\"answer\",\"ant\",\"anteater\",\"antecedent\",\"antechamber\",\"antelope\",\"antennae\",\"anterior\",\"anthropology\",\"antibody\",\"anticipation\",\"anticodon\",\"antigen\",\"antique\",\"antiquity\",\"antler\",\"antling\",\"anxiety\",\"anybody\",\"anyone\",\"anything\",\"anywhere\",\"apartment\",\"ape\",\"aperitif\",\"apology\",\"app\",\"apparatus\",\"apparel\",\"appeal\",\"appearance\",\"appellation\",\"appendix\",\"appetiser\",\"appetite\",\"appetizer\",\"applause\",\"apple\",\"applewood\",\"appliance\",\"application\",\"appointment\",\"appreciation\",\"apprehension\",\"approach\",\"appropriation\",\"approval\",\"apricot\",\"apron\",\"apse\",\"aquarium\",\"aquifer\",\"arcade\",\"arch\",\"arch-rival\",\"archaeologist\",\"archaeology\",\"archeology\",\"archer\",\"architect\",\"architecture\",\"archives\",\"area\",\"arena\",\"argument\",\"arithmetic\",\"ark\",\"arm\",\"arm-rest\",\"armadillo\",\"armament\",\"armchair\",\"armoire\",\"armor\",\"armour\",\"armpit\",\"armrest\",\"army\",\"arrangement\",\"array\",\"arrest\",\"arrival\",\"arrogance\",\"arrow\",\"art\",\"artery\",\"arthur\",\"artichoke\",\"article\",\"artifact\",\"artificer\",\"artist\",\"ascend\",\"ascent\",\"ascot\",\"ash\",\"ashram\",\"ashtray\",\"aside\",\"asparagus\",\"aspect\",\"asphalt\",\"aspic\",\"assassination\",\"assault\",\"assembly\",\"assertion\",\"assessment\",\"asset\",\"assignment\",\"assist\",\"assistance\",\"assistant\",\"associate\",\"association\",\"assumption\",\"assurance\",\"asterisk\",\"astrakhan\",\"astrolabe\",\"astrologer\",\"astrology\",\"astronomy\",\"asymmetry\",\"atelier\",\"atheist\",\"athlete\",\"athletics\",\"atmosphere\",\"atom\",\"atrium\",\"attachment\",\"attack\",\"attacker\",\"attainment\",\"attempt\",\"attendance\",\"attendant\",\"attention\",\"attenuation\",\"attic\",\"attitude\",\"attorney\",\"attraction\",\"attribute\",\"auction\",\"audience\",\"audit\",\"auditorium\",\"aunt\",\"authentication\",\"authenticity\",\"author\",\"authorisation\",\"authority\",\"authorization\",\"auto\",\"autoimmunity\",\"automation\",\"automaton\",\"autumn\",\"availability\",\"avalanche\",\"avenue\",\"average\",\"avocado\",\"award\",\"awareness\",\"awe\",\"axis\",\"azimuth\",\"baboon\",\"babushka\",\"baby\",\"bachelor\",\"back\",\"back-up\",\"backbone\",\"backburn\",\"backdrop\",\"background\",\"backpack\",\"backup\",\"backyard\",\"bacon\",\"bacterium\",\"badge\",\"badger\",\"bafflement\",\"bag\",\"bagel\",\"baggage\",\"baggie\",\"baggy\",\"bagpipe\",\"bail\",\"bait\",\"bake\",\"baker\",\"bakery\",\"bakeware\",\"balaclava\",\"balalaika\",\"balance\",\"balcony\",\"ball\",\"ballet\",\"balloon\",\"balloonist\",\"ballot\",\"ballpark\",\"bamboo\",\"ban\",\"banana\",\"band\",\"bandana\",\"bandanna\",\"bandolier\",\"bandwidth\",\"bangle\",\"banjo\",\"bank\",\"bankbook\",\"banker\",\"banking\",\"bankruptcy\",\"banner\",\"banquette\",\"banyan\",\"baobab\",\"bar\",\"barbecue\",\"barbeque\",\"barber\",\"bargain\",\"barge\",\"baritone\",\"barium\",\"bark\",\"barley\",\"barn\",\"barometer\",\"barracks\",\"barrage\",\"barrel\",\"barrier\",\"barstool\",\"bartender\",\"base\",\"baseball\",\"baseboard\",\"baseline\",\"basement\",\"basics\",\"basil\",\"basin\",\"basis\",\"basket\",\"basketball\",\"bass\",\"bassinet\",\"bassoon\",\"bat\",\"bath\",\"bather\",\"bathhouse\",\"bathrobe\",\"bathroom\",\"bathtub\",\"battalion\",\"batter\",\"battery\",\"batting\",\"battle\",\"battleship\",\"bay\",\"bayou\",\"beach\",\"bead\",\"beak\",\"beam\",\"bean\",\"beancurd\",\"beanie\",\"beanstalk\",\"bear\",\"beard\",\"beast\",\"beastie\",\"beat\",\"beating\",\"beauty\",\"beck\",\"bed\",\"bedrock\",\"bedroom\",\"bee\",\"beech\",\"beef\",\"beet\",\"beetle\",\"beggar\",\"beginner\",\"beginning\",\"begonia\",\"behalf\",\"behavior\",\"behaviour\",\"behest\",\"behold\",\"being\",\"belfry\",\"belief\",\"believer\",\"bell\",\"belligerency\",\"bellows\",\"belly\",\"belt\",\"bench\",\"bend\",\"beneficiary\",\"benefit\",\"beret\",\"berry\",\"best-seller\",\"bestseller\",\"bet\",\"beverage\",\"beyond\",\"bias\",\"bibliography\",\"bicycle\",\"bid\",\"bidder\",\"bidding\",\"bidet\",\"bifocals\",\"bijou\",\"bike\",\"bikini\",\"bill\",\"billboard\",\"billing\",\"billion\",\"bin\",\"binoculars\",\"biology\",\"biopsy\",\"biosphere\",\"biplane\",\"birch\",\"bird\",\"bird-watcher\",\"birdbath\",\"birdcage\",\"birdhouse\",\"birth\",\"birthday\",\"biscuit\",\"bit\",\"bite\",\"bitten\",\"bitter\",\"blackberry\",\"blackbird\",\"blackboard\",\"blackfish\",\"blackness\",\"bladder\",\"blade\",\"blame\",\"blank\",\"blanket\",\"blast\",\"blazer\",\"blend\",\"blessing\",\"blight\",\"blind\",\"blinker\",\"blister\",\"blizzard\",\"block\",\"blocker\",\"blog\",\"blogger\",\"blood\",\"bloodflow\",\"bloom\",\"bloomer\",\"blossom\",\"blouse\",\"blow\",\"blowgun\",\"blowhole\",\"blueberry\",\"blush\",\"boar\",\"board\",\"boat\",\"boatload\",\"boatyard\",\"bob\",\"bobcat\",\"body\",\"bog\",\"bolero\",\"bolt\",\"bond\",\"bonding\",\"bondsman\",\"bone\",\"bonfire\",\"bongo\",\"bonnet\",\"bonsai\",\"bonus\",\"boogeyman\",\"book\",\"bookcase\",\"bookend\",\"booking\",\"booklet\",\"bookmark\",\"boolean\",\"boom\",\"boon\",\"boost\",\"booster\",\"boot\",\"bootie\",\"border\",\"bore\",\"borrower\",\"borrowing\",\"boss\",\"botany\",\"bother\",\"bottle\",\"bottling\",\"bottom\",\"bottom-line\",\"boudoir\",\"bough\",\"boulder\",\"boulevard\",\"boundary\",\"bouquet\",\"bourgeoisie\",\"bout\",\"boutique\",\"bow\",\"bower\",\"bowl\",\"bowler\",\"bowling\",\"bowtie\",\"box\",\"boxer\",\"boxspring\",\"boy\",\"boycott\",\"boyfriend\",\"boyhood\",\"boysenberry\",\"brace\",\"bracelet\",\"bracket\",\"brain\",\"brake\",\"bran\",\"branch\",\"brand\",\"brass\",\"bratwurst\",\"bread\",\"breadcrumb\",\"breadfruit\",\"break\",\"breakdown\",\"breakfast\",\"breakpoint\",\"breakthrough\",\"breastplate\",\"breath\",\"breeze\",\"brewer\",\"bribery\",\"brick\",\"bricklaying\",\"bride\",\"bridge\",\"brief\",\"briefing\",\"briefly\",\"brilliant\",\"brink\",\"brisket\",\"broad\",\"broadcast\",\"broccoli\",\"brochure\",\"brocolli\",\"broiler\",\"broker\",\"bronchitis\",\"bronco\",\"bronze\",\"brooch\",\"brood\",\"brook\",\"broom\",\"brother\",\"brother-in-law\",\"brow\",\"brownie\",\"browser\",\"browsing\",\"brunch\",\"brush\",\"brushfire\",\"brushing\",\"bubble\",\"buck\",\"bucket\",\"buckle\",\"buckwheat\",\"bud\",\"buddy\",\"budget\",\"buffalo\",\"buffer\",\"buffet\",\"bug\",\"buggy\",\"bugle\",\"builder\",\"building\",\"bulb\",\"bulk\",\"bull\",\"bull-fighter\",\"bulldozer\",\"bullet\",\"bump\",\"bumper\",\"bun\",\"bunch\",\"bungalow\",\"bunkhouse\",\"burden\",\"bureau\",\"burglar\",\"burial\",\"burn\",\"burn-out\",\"burning\",\"burrito\",\"burro\",\"burrow\",\"burst\",\"bus\",\"bush\",\"business\",\"businessman\",\"bust\",\"bustle\",\"butane\",\"butcher\",\"butler\",\"butter\",\"butterfly\",\"button\",\"buy\",\"buyer\",\"buying\",\"buzz\",\"buzzard\",\"c-clamp\",\"cabana\",\"cabbage\",\"cabin\",\"cabinet\",\"cable\",\"caboose\",\"cacao\",\"cactus\",\"caddy\",\"cadet\",\"cafe\",\"caffeine\",\"caftan\",\"cage\",\"cake\",\"calcification\",\"calculation\",\"calculator\",\"calculus\",\"calendar\",\"calf\",\"caliber\",\"calibre\",\"calico\",\"call\",\"calm\",\"calorie\",\"camel\",\"cameo\",\"camera\",\"camp\",\"campaign\",\"campaigning\",\"campanile\",\"camper\",\"campus\",\"can\",\"canal\",\"candelabra\",\"candidacy\",\"candidate\",\"candle\",\"candy\",\"cane\",\"cannibal\",\"cannon\",\"canoe\",\"canon\",\"canopy\",\"cantaloupe\",\"canteen\",\"canvas\",\"cap\",\"capability\",\"capacity\",\"cape\",\"caper\",\"capital\",\"capitalism\",\"capitulation\",\"capon\",\"cappelletti\",\"cappuccino\",\"captain\",\"caption\",\"captor\",\"car\",\"carabao\",\"caramel\",\"caravan\",\"carbohydrate\",\"carbon\",\"carboxyl\",\"card\",\"cardboard\",\"cardigan\",\"care\",\"career\",\"cargo\",\"caribou\",\"carload\",\"carnation\",\"carnival\",\"carol\",\"carotene\",\"carp\",\"carpenter\",\"carpet\",\"carpeting\",\"carport\",\"carriage\",\"carrier\",\"carrot\",\"carry\",\"cart\",\"cartel\",\"carter\",\"cartilage\",\"cartload\",\"cartoon\",\"cartridge\",\"carving\",\"cascade\",\"case\",\"casement\",\"cash\",\"cashew\",\"cashier\",\"casino\",\"casket\",\"cassava\",\"casserole\",\"cassock\",\"cast\",\"castanet\",\"castle\",\"casualty\",\"cat\",\"catacomb\",\"catalogue\",\"catalysis\",\"catalyst\",\"catamaran\",\"catastrophe\",\"catch\",\"catcher\",\"category\",\"caterpillar\",\"cathedral\",\"cation\",\"catsup\",\"cattle\",\"cauliflower\",\"causal\",\"cause\",\"causeway\",\"caution\",\"cave\",\"caviar\",\"cayenne\",\"ceiling\",\"celebration\",\"celebrity\",\"celeriac\",\"celery\",\"cell\",\"cellar\",\"cello\",\"celsius\",\"cement\",\"cemetery\",\"cenotaph\",\"census\",\"cent\",\"center\",\"centimeter\",\"centre\",\"centurion\",\"century\",\"cephalopod\",\"ceramic\",\"ceramics\",\"cereal\",\"ceremony\",\"certainty\",\"certificate\",\"certification\",\"cesspool\",\"chafe\",\"chain\",\"chainstay\",\"chair\",\"chairlift\",\"chairman\",\"chairperson\",\"chaise\",\"chalet\",\"chalice\",\"chalk\",\"challenge\",\"chamber\",\"champagne\",\"champion\",\"championship\",\"chance\",\"chandelier\",\"change\",\"channel\",\"chaos\",\"chap\",\"chapel\",\"chaplain\",\"chapter\",\"character\",\"characteristic\",\"characterization\",\"chard\",\"charge\",\"charger\",\"charity\",\"charlatan\",\"charm\",\"charset\",\"chart\",\"charter\",\"chasm\",\"chassis\",\"chastity\",\"chasuble\",\"chateau\",\"chatter\",\"chauffeur\",\"chauvinist\",\"check\",\"checkbook\",\"checking\",\"checkout\",\"checkroom\",\"cheddar\",\"cheek\",\"cheer\",\"cheese\",\"cheesecake\",\"cheetah\",\"chef\",\"chem\",\"chemical\",\"chemistry\",\"chemotaxis\",\"cheque\",\"cherry\",\"chess\",\"chest\",\"chestnut\",\"chick\",\"chicken\",\"chicory\",\"chief\",\"chiffonier\",\"child\",\"childbirth\",\"childhood\",\"chili\",\"chill\",\"chime\",\"chimpanzee\",\"chin\",\"chinchilla\",\"chino\",\"chip\",\"chipmunk\",\"chit-chat\",\"chivalry\",\"chive\",\"chives\",\"chocolate\",\"choice\",\"choir\",\"choker\",\"cholesterol\",\"choosing\",\"chop\",\"chops\",\"chopstick\",\"chopsticks\",\"chord\",\"chorus\",\"chow\",\"chowder\",\"chrome\",\"chromolithograph\",\"chronicle\",\"chronograph\",\"chronometer\",\"chrysalis\",\"chub\",\"chuck\",\"church\",\"churn\",\"chutney\",\"cicada\",\"cigarette\",\"cilantro\",\"cinder\",\"cinema\",\"cinnamon\",\"circadian\",\"circle\",\"circuit\",\"circulation\",\"circumference\",\"circumstance\",\"cirrus\",\"citizen\",\"citizenship\",\"citron\",\"citrus\",\"city\",\"civilian\",\"civilisation\",\"civilization\",\"claim\",\"clam\",\"clamp\",\"clan\",\"clank\",\"clapboard\",\"clarification\",\"clarinet\",\"clarity\",\"clasp\",\"class\",\"classic\",\"classification\",\"classmate\",\"classroom\",\"clause\",\"clave\",\"clavicle\",\"clavier\",\"claw\",\"clay\",\"cleaner\",\"clearance\",\"clearing\",\"cleat\",\"clef\",\"cleft\",\"clergyman\",\"cleric\",\"clerk\",\"click\",\"client\",\"cliff\",\"climate\",\"climb\",\"clinic\",\"clip\",\"clipboard\",\"clipper\",\"cloak\",\"cloakroom\",\"clock\",\"clockwork\",\"clogs\",\"cloister\",\"clone\",\"close\",\"closet\",\"closing\",\"closure\",\"cloth\",\"clothes\",\"clothing\",\"cloud\",\"cloudburst\",\"clove\",\"clover\",\"cloves\",\"club\",\"clue\",\"cluster\",\"clutch\",\"co-producer\",\"coach\",\"coal\",\"coalition\",\"coast\",\"coaster\",\"coat\",\"cob\",\"cobbler\",\"cobweb\",\"cockpit\",\"cockroach\",\"cocktail\",\"cocoa\",\"coconut\",\"cod\",\"code\",\"codepage\",\"codling\",\"codon\",\"coevolution\",\"cofactor\",\"coffee\",\"coffin\",\"cohesion\",\"cohort\",\"coil\",\"coin\",\"coincidence\",\"coinsurance\",\"coke\",\"cold\",\"coleslaw\",\"coliseum\",\"collaboration\",\"collagen\",\"collapse\",\"collar\",\"collard\",\"collateral\",\"colleague\",\"collection\",\"collectivisation\",\"collectivization\",\"collector\",\"college\",\"collision\",\"colloquy\",\"colon\",\"colonial\",\"colonialism\",\"colonisation\",\"colonization\",\"colony\",\"color\",\"colorlessness\",\"colt\",\"column\",\"columnist\",\"comb\",\"combat\",\"combination\",\"combine\",\"comeback\",\"comedy\",\"comestible\",\"comfort\",\"comfortable\",\"comic\",\"comics\",\"comma\",\"command\",\"commander\",\"commandment\",\"comment\",\"commerce\",\"commercial\",\"commission\",\"commitment\",\"committee\",\"commodity\",\"common\",\"commonsense\",\"commotion\",\"communicant\",\"communication\",\"communion\",\"communist\",\"community\",\"commuter\",\"company\",\"comparison\",\"compass\",\"compassion\",\"compassionate\",\"compensation\",\"competence\",\"competition\",\"competitor\",\"complaint\",\"complement\",\"completion\",\"complex\",\"complexity\",\"compliance\",\"complication\",\"complicity\",\"compliment\",\"component\",\"comportment\",\"composer\",\"composite\",\"composition\",\"compost\",\"comprehension\",\"compress\",\"compromise\",\"comptroller\",\"compulsion\",\"computer\",\"comradeship\",\"con\",\"concentrate\",\"concentration\",\"concept\",\"conception\",\"concern\",\"concert\",\"conclusion\",\"concrete\",\"condition\",\"conditioner\",\"condominium\",\"condor\",\"conduct\",\"conductor\",\"cone\",\"confectionery\",\"conference\",\"confidence\",\"confidentiality\",\"configuration\",\"confirmation\",\"conflict\",\"conformation\",\"confusion\",\"conga\",\"congo\",\"congregation\",\"congress\",\"congressman\",\"congressperson\",\"conifer\",\"connection\",\"connotation\",\"conscience\",\"consciousness\",\"consensus\",\"consent\",\"consequence\",\"conservation\",\"conservative\",\"consideration\",\"consignment\",\"consist\",\"consistency\",\"console\",\"consonant\",\"conspiracy\",\"conspirator\",\"constant\",\"constellation\",\"constitution\",\"constraint\",\"construction\",\"consul\",\"consulate\",\"consulting\",\"consumer\",\"consumption\",\"contact\",\"contagion\",\"container\",\"content\",\"contention\",\"contest\",\"context\",\"continent\",\"contingency\",\"continuity\",\"contour\",\"contract\",\"contractor\",\"contrail\",\"contrary\",\"contrast\",\"contribution\",\"contributor\",\"control\",\"controller\",\"controversy\",\"convection\",\"convenience\",\"convention\",\"conversation\",\"conversion\",\"convert\",\"convertible\",\"conviction\",\"cook\",\"cookbook\",\"cookie\",\"cooking\",\"cooperation\",\"coordination\",\"coordinator\",\"cop\",\"cop-out\",\"cope\",\"copper\",\"copy\",\"copying\",\"copyright\",\"copywriter\",\"coral\",\"cord\",\"corduroy\",\"core\",\"cork\",\"cormorant\",\"corn\",\"corner\",\"cornerstone\",\"cornet\",\"cornflakes\",\"cornmeal\",\"corporal\",\"corporation\",\"corporatism\",\"corps\",\"corral\",\"correspondence\",\"correspondent\",\"corridor\",\"corruption\",\"corsage\",\"cosset\",\"cost\",\"costume\",\"cot\",\"cottage\",\"cotton\",\"couch\",\"cougar\",\"cough\",\"council\",\"councilman\",\"councilor\",\"councilperson\",\"counsel\",\"counseling\",\"counselling\",\"counsellor\",\"counselor\",\"count\",\"counter\",\"counter-force\",\"counterpart\",\"countess\",\"country\",\"countryside\",\"county\",\"couple\",\"coupon\",\"courage\",\"course\",\"court\",\"courthouse\",\"courtroom\",\"cousin\",\"covariate\",\"cover\",\"coverage\",\"coverall\",\"cow\",\"cowbell\",\"cowboy\",\"coyote\",\"crab\",\"cradle\",\"craft\",\"craftsman\",\"cranberry\",\"crane\",\"cranky\",\"crate\",\"cravat\",\"craw\",\"crawdad\",\"crayfish\",\"crayon\",\"crazy\",\"cream\",\"creation\",\"creative\",\"creativity\",\"creator\",\"creature\",\"creche\",\"credential\",\"credenza\",\"credibility\",\"credit\",\"creditor\",\"creek\",\"crepe\",\"crest\",\"crew\",\"crewman\",\"crewmate\",\"crewmember\",\"crewmen\",\"cria\",\"crib\",\"cribbage\",\"cricket\",\"cricketer\",\"crime\",\"criminal\",\"crinoline\",\"crisis\",\"crisp\",\"criteria\",\"criterion\",\"critic\",\"criticism\",\"crocodile\",\"crocus\",\"croissant\",\"crook\",\"crop\",\"cross\",\"cross-contamination\",\"cross-stitch\",\"croup\",\"crow\",\"crowd\",\"crown\",\"crude\",\"cruelty\",\"cruise\",\"crumb\",\"crunch\",\"crusader\",\"crush\",\"crust\",\"cry\",\"crystal\",\"crystallography\",\"cub\",\"cube\",\"cuckoo\",\"cucumber\",\"cue\",\"cuff-link\",\"cuisine\",\"cultivar\",\"cultivator\",\"culture\",\"culvert\",\"cummerbund\",\"cup\",\"cupboard\",\"cupcake\",\"cupola\",\"curd\",\"cure\",\"curio\",\"curiosity\",\"curl\",\"curler\",\"currant\",\"currency\",\"current\",\"curriculum\",\"curry\",\"curse\",\"cursor\",\"curtailment\",\"curtain\",\"curve\",\"cushion\",\"custard\",\"custody\",\"custom\",\"customer\",\"cut\",\"cuticle\",\"cutlet\",\"cutover\",\"cutting\",\"cyclamen\",\"cycle\",\"cyclone\",\"cyclooxygenase\",\"cygnet\",\"cylinder\",\"cymbal\",\"cynic\",\"cyst\",\"cytokine\",\"cytoplasm\",\"dad\",\"daddy\",\"daffodil\",\"dagger\",\"dahlia\",\"daikon\",\"daily\",\"dairy\",\"daisy\",\"dam\",\"damage\",\"dame\",\"dance\",\"dancer\",\"dancing\",\"dandelion\",\"danger\",\"dare\",\"dark\",\"darkness\",\"darn\",\"dart\",\"dash\",\"dashboard\",\"data\",\"database\",\"date\",\"daughter\",\"dawn\",\"day\",\"daybed\",\"daylight\",\"dead\",\"deadline\",\"deal\",\"dealer\",\"dealing\",\"dearest\",\"death\",\"deathwatch\",\"debate\",\"debris\",\"debt\",\"debtor\",\"decade\",\"decadence\",\"decency\",\"decimal\",\"decision\",\"decision-making\",\"deck\",\"declaration\",\"declination\",\"decline\",\"decoder\",\"decongestant\",\"decoration\",\"decrease\",\"decryption\",\"dedication\",\"deduce\",\"deduction\",\"deed\",\"deep\",\"deer\",\"default\",\"defeat\",\"defendant\",\"defender\",\"defense\",\"deficit\",\"definition\",\"deformation\",\"degradation\",\"degree\",\"delay\",\"deliberation\",\"delight\",\"delivery\",\"demand\",\"democracy\",\"democrat\",\"demur\",\"den\",\"denim\",\"denominator\",\"density\",\"dentist\",\"deodorant\",\"department\",\"departure\",\"dependency\",\"dependent\",\"deployment\",\"deposit\",\"deposition\",\"depot\",\"depression\",\"depressive\",\"depth\",\"deputy\",\"derby\",\"derivation\",\"derivative\",\"derrick\",\"descendant\",\"descent\",\"description\",\"desert\",\"design\",\"designation\",\"designer\",\"desire\",\"desk\",\"desktop\",\"dessert\",\"destination\",\"destiny\",\"destroyer\",\"destruction\",\"detail\",\"detainee\",\"detainment\",\"detection\",\"detective\",\"detector\",\"detention\",\"determination\",\"detour\",\"devastation\",\"developer\",\"developing\",\"development\",\"developmental\",\"deviance\",\"deviation\",\"device\",\"devil\",\"dew\",\"dhow\",\"diabetes\",\"diadem\",\"diagnosis\",\"diagram\",\"dial\",\"dialect\",\"dialogue\",\"diam\",\"diamond\",\"diaper\",\"diaphragm\",\"diarist\",\"diary\",\"dibble\",\"dickey\",\"dictaphone\",\"dictator\",\"diction\",\"dictionary\",\"die\",\"diesel\",\"diet\",\"difference\",\"differential\",\"difficulty\",\"diffuse\",\"dig\",\"digestion\",\"digestive\",\"digger\",\"digging\",\"digit\",\"dignity\",\"dilapidation\",\"dill\",\"dilution\",\"dime\",\"dimension\",\"dimple\",\"diner\",\"dinghy\",\"dining\",\"dinner\",\"dinosaur\",\"dioxide\",\"dip\",\"diploma\",\"diplomacy\",\"direction\",\"directive\",\"director\",\"directory\",\"dirndl\",\"dirt\",\"disability\",\"disadvantage\",\"disagreement\",\"disappointment\",\"disarmament\",\"disaster\",\"discharge\",\"discipline\",\"disclaimer\",\"disclosure\",\"disco\",\"disconnection\",\"discount\",\"discourse\",\"discovery\",\"discrepancy\",\"discretion\",\"discrimination\",\"discussion\",\"disdain\",\"disease\",\"disembodiment\",\"disengagement\",\"disguise\",\"disgust\",\"dish\",\"dishwasher\",\"disk\",\"disparity\",\"dispatch\",\"displacement\",\"display\",\"disposal\",\"disposer\",\"disposition\",\"dispute\",\"disregard\",\"disruption\",\"dissemination\",\"dissonance\",\"distance\",\"distinction\",\"distortion\",\"distribution\",\"distributor\",\"district\",\"divalent\",\"divan\",\"diver\",\"diversity\",\"divide\",\"dividend\",\"divider\",\"divine\",\"diving\",\"division\",\"divorce\",\"doc\",\"dock\",\"doctor\",\"doctorate\",\"doctrine\",\"document\",\"documentary\",\"documentation\",\"doe\",\"dog\",\"dogsled\",\"dogwood\",\"doing\",\"doll\",\"dollar\",\"dollop\",\"dolman\",\"dolor\",\"dolphin\",\"domain\",\"dome\",\"donation\",\"donkey\",\"donor\",\"donut\",\"door\",\"doorbell\",\"doorknob\",\"doorpost\",\"doorway\",\"dory\",\"dose\",\"dot\",\"double\",\"doubling\",\"doubt\",\"doubter\",\"dough\",\"doughnut\",\"down\",\"downfall\",\"downforce\",\"downgrade\",\"download\",\"downstairs\",\"downtown\",\"downturn\",\"dozen\",\"draft\",\"drag\",\"dragon\",\"dragonfly\",\"dragonfruit\",\"dragster\",\"drain\",\"drainage\",\"drake\",\"drama\",\"dramaturge\",\"drapes\",\"draw\",\"drawbridge\",\"drawer\",\"drawing\",\"dream\",\"dreamer\",\"dredger\",\"dress\",\"dresser\",\"dressing\",\"drill\",\"drink\",\"drinking\",\"drive\",\"driver\",\"driveway\",\"driving\",\"drizzle\",\"dromedary\",\"drop\",\"drudgery\",\"drug\",\"drum\",\"drummer\",\"dryer\",\"duck\",\"duckling\",\"dud\",\"dude\",\"due\",\"duel\",\"dueling\",\"duffel\",\"dugout\",\"dulcimer\",\"dumbwaiter\",\"dump\",\"dune\",\"dungarees\",\"dungeon\",\"duplexer\",\"duration\",\"durian\",\"dusk\",\"dust\",\"duster\",\"duty\",\"dwell\",\"dwelling\",\"dynamics\",\"dynamite\",\"dynamo\",\"dynasty\",\"dysfunction\",\"e-book\",\"e-mail\",\"e-reader\",\"eagle\",\"eaglet\",\"ear\",\"eardrum\",\"earmuffs\",\"earnings\",\"earplug\",\"earring\",\"earrings\",\"earth\",\"earthquake\",\"earthworm\",\"ease\",\"easel\",\"east\",\"eating\",\"eaves\",\"eavesdropper\",\"ecclesia\",\"echidna\",\"eclipse\",\"ecliptic\",\"ecology\",\"economics\",\"economy\",\"ecosystem\",\"ectoderm\",\"ectodermal\",\"ecumenist\",\"eddy\",\"edge\",\"edger\",\"edible\",\"editing\",\"edition\",\"editor\",\"editorial\",\"education\",\"eel\",\"effacement\",\"effect\",\"effective\",\"effectiveness\",\"effector\",\"efficacy\",\"efficiency\",\"effort\",\"egg\",\"egghead\",\"eggnog\",\"eggplant\",\"ego\",\"eicosanoid\",\"ejector\",\"elbow\",\"elderberry\",\"election\",\"electricity\",\"electrocardiogram\",\"electronics\",\"element\",\"elephant\",\"elevation\",\"elevator\",\"eleventh\",\"elf\",\"elicit\",\"eligibility\",\"elimination\",\"elite\",\"elixir\",\"elk\",\"ellipse\",\"elm\",\"elongation\",\"elver\",\"email\",\"emanate\",\"embarrassment\",\"embassy\",\"embellishment\",\"embossing\",\"embryo\",\"emerald\",\"emergence\",\"emergency\",\"emergent\",\"emery\",\"emission\",\"emitter\",\"emotion\",\"emphasis\",\"empire\",\"employ\",\"employee\",\"employer\",\"employment\",\"empowerment\",\"emu\",\"enactment\",\"encirclement\",\"enclave\",\"enclosure\",\"encounter\",\"encouragement\",\"encyclopedia\",\"end\",\"endive\",\"endoderm\",\"endorsement\",\"endothelium\",\"endpoint\",\"enemy\",\"energy\",\"enforcement\",\"engagement\",\"engine\",\"engineer\",\"engineering\",\"enigma\",\"enjoyment\",\"enquiry\",\"enrollment\",\"enterprise\",\"entertainment\",\"enthusiasm\",\"entirety\",\"entity\",\"entrance\",\"entree\",\"entrepreneur\",\"entry\",\"envelope\",\"environment\",\"envy\",\"enzyme\",\"epauliere\",\"epee\",\"ephemera\",\"ephemeris\",\"ephyra\",\"epic\",\"episode\",\"epithelium\",\"epoch\",\"eponym\",\"epoxy\",\"equal\",\"equality\",\"equation\",\"equinox\",\"equipment\",\"equity\",\"equivalent\",\"era\",\"eraser\",\"erosion\",\"error\",\"escalator\",\"escape\",\"espadrille\",\"espalier\",\"essay\",\"essence\",\"essential\",\"establishment\",\"estate\",\"estimate\",\"estrogen\",\"estuary\",\"eternity\",\"ethernet\",\"ethics\",\"ethnicity\",\"ethyl\",\"euphonium\",\"eurocentrism\",\"evaluation\",\"evaluator\",\"evaporation\",\"eve\",\"evening\",\"evening-wear\",\"event\",\"everybody\",\"everyone\",\"everything\",\"eviction\",\"evidence\",\"evil\",\"evocation\",\"evolution\",\"ex-husband\",\"ex-wife\",\"exaggeration\",\"exam\",\"examination\",\"examiner\",\"example\",\"exasperation\",\"excellence\",\"exception\",\"excerpt\",\"excess\",\"exchange\",\"excitement\",\"exclamation\",\"excursion\",\"excuse\",\"execution\",\"executive\",\"executor\",\"exercise\",\"exhaust\",\"exhaustion\",\"exhibit\",\"exhibition\",\"exile\",\"existence\",\"exit\",\"exocrine\",\"expansion\",\"expansionism\",\"expectancy\",\"expectation\",\"expedition\",\"expense\",\"experience\",\"experiment\",\"experimentation\",\"expert\",\"expertise\",\"explanation\",\"exploration\",\"explorer\",\"export\",\"expose\",\"exposition\",\"exposure\",\"expression\",\"extension\",\"extent\",\"exterior\",\"external\",\"extinction\",\"extreme\",\"extremist\",\"eye\",\"eyeball\",\"eyebrow\",\"eyebrows\",\"eyeglasses\",\"eyelash\",\"eyelashes\",\"eyelid\",\"eyelids\",\"eyeliner\",\"eyestrain\",\"eyrie\",\"fabric\",\"face\",\"facelift\",\"facet\",\"facility\",\"facsimile\",\"fact\",\"factor\",\"factory\",\"faculty\",\"fahrenheit\",\"fail\",\"failure\",\"fairness\",\"fairy\",\"faith\",\"faithful\",\"fall\",\"fallacy\",\"falling-out\",\"fame\",\"familiar\",\"familiarity\",\"family\",\"fan\",\"fang\",\"fanlight\",\"fanny-pack\",\"fantasy\",\"farm\",\"farmer\",\"farming\",\"farmland\",\"farrow\",\"fascia\",\"fashion\",\"fat\",\"fate\",\"father\",\"father-in-law\",\"fatigue\",\"fatigues\",\"faucet\",\"fault\",\"fav\",\"fava\",\"favor\",\"favorite\",\"fawn\",\"fax\",\"fear\",\"feast\",\"feather\",\"feature\",\"fedelini\",\"federation\",\"fedora\",\"fee\",\"feed\",\"feedback\",\"feeding\",\"feel\",\"feeling\",\"fellow\",\"felony\",\"female\",\"fen\",\"fence\",\"fencing\",\"fender\",\"feng\",\"fennel\",\"ferret\",\"ferry\",\"ferryboat\",\"fertilizer\",\"festival\",\"fetus\",\"few\",\"fiber\",\"fiberglass\",\"fibre\",\"fibroblast\",\"fibrosis\",\"ficlet\",\"fiction\",\"fiddle\",\"field\",\"fiery\",\"fiesta\",\"fifth\",\"fig\",\"fight\",\"fighter\",\"figure\",\"figurine\",\"file\",\"filing\",\"fill\",\"fillet\",\"filly\",\"film\",\"filter\",\"filth\",\"final\",\"finance\",\"financing\",\"finding\",\"fine\",\"finer\",\"finger\",\"fingerling\",\"fingernail\",\"finish\",\"finisher\",\"fir\",\"fire\",\"fireman\",\"fireplace\",\"firewall\",\"firm\",\"first\",\"fish\",\"fishbone\",\"fisherman\",\"fishery\",\"fishing\",\"fishmonger\",\"fishnet\",\"fit\",\"fitness\",\"fix\",\"fixture\",\"flag\",\"flair\",\"flame\",\"flan\",\"flanker\",\"flare\",\"flash\",\"flat\",\"flatboat\",\"flavor\",\"flax\",\"fleck\",\"fledgling\",\"fleece\",\"flesh\",\"flexibility\",\"flick\",\"flicker\",\"flight\",\"flint\",\"flintlock\",\"flip-flops\",\"flock\",\"flood\",\"floodplain\",\"floor\",\"floozie\",\"flour\",\"flow\",\"flower\",\"flu\",\"flugelhorn\",\"fluke\",\"flume\",\"flung\",\"flute\",\"fly\",\"flytrap\",\"foal\",\"foam\",\"fob\",\"focus\",\"fog\",\"fold\",\"folder\",\"folk\",\"folklore\",\"follower\",\"following\",\"fondue\",\"font\",\"food\",\"foodstuffs\",\"fool\",\"foot\",\"footage\",\"football\",\"footnote\",\"footprint\",\"footrest\",\"footstep\",\"footstool\",\"footwear\",\"forage\",\"forager\",\"foray\",\"force\",\"ford\",\"forearm\",\"forebear\",\"forecast\",\"forehead\",\"foreigner\",\"forelimb\",\"forest\",\"forestry\",\"forever\",\"forgery\",\"fork\",\"form\",\"formal\",\"formamide\",\"format\",\"formation\",\"former\",\"formicarium\",\"formula\",\"fort\",\"forte\",\"fortnight\",\"fortress\",\"fortune\",\"forum\",\"foundation\",\"founder\",\"founding\",\"fountain\",\"fourths\",\"fowl\",\"fox\",\"foxglove\",\"fraction\",\"fragrance\",\"frame\",\"framework\",\"fratricide\",\"fraud\",\"fraudster\",\"freak\",\"freckle\",\"freedom\",\"freelance\",\"freezer\",\"freezing\",\"freight\",\"freighter\",\"frenzy\",\"freon\",\"frequency\",\"fresco\",\"friction\",\"fridge\",\"friend\",\"friendship\",\"fries\",\"frigate\",\"fright\",\"fringe\",\"fritter\",\"frock\",\"frog\",\"front\",\"frontier\",\"frost\",\"frosting\",\"frown\",\"fruit\",\"frustration\",\"fry\",\"fuel\",\"fugato\",\"fulfillment\",\"full\",\"fun\",\"function\",\"functionality\",\"fund\",\"funding\",\"fundraising\",\"fur\",\"furnace\",\"furniture\",\"fusarium\",\"futon\",\"future\",\"gadget\",\"gaffe\",\"gaffer\",\"gain\",\"gaiters\",\"gale\",\"gall-bladder\",\"gallery\",\"galley\",\"gallon\",\"galoshes\",\"gambling\",\"game\",\"gamebird\",\"gaming\",\"gamma-ray\",\"gander\",\"gang\",\"gap\",\"garage\",\"garb\",\"garbage\",\"garden\",\"garlic\",\"garment\",\"garter\",\"gas\",\"gasket\",\"gasoline\",\"gasp\",\"gastronomy\",\"gastropod\",\"gate\",\"gateway\",\"gather\",\"gathering\",\"gator\",\"gauge\",\"gauntlet\",\"gavel\",\"gazebo\",\"gazelle\",\"gear\",\"gearshift\",\"geek\",\"gel\",\"gelatin\",\"gelding\",\"gem\",\"gemsbok\",\"gender\",\"gene\",\"general\",\"generation\",\"generator\",\"generosity\",\"genetics\",\"genie\",\"genius\",\"genre\",\"gentleman\",\"geography\",\"geology\",\"geometry\",\"geranium\",\"gerbil\",\"gesture\",\"geyser\",\"gherkin\",\"ghost\",\"giant\",\"gift\",\"gig\",\"gigantism\",\"giggle\",\"ginger\",\"gingerbread\",\"ginseng\",\"giraffe\",\"girdle\",\"girl\",\"girlfriend\",\"glacier\",\"gladiolus\",\"glance\",\"gland\",\"glass\",\"glasses\",\"glee\",\"glen\",\"glider\",\"gliding\",\"glimpse\",\"globe\",\"glockenspiel\",\"gloom\",\"glory\",\"glove\",\"glow\",\"glucose\",\"glue\",\"glut\",\"glutamate\",\"gnat\",\"gnu\",\"go-kart\",\"goal\",\"goat\",\"gobbler\",\"god\",\"goddess\",\"godfather\",\"godmother\",\"godparent\",\"goggles\",\"going\",\"gold\",\"goldfish\",\"golf\",\"gondola\",\"gong\",\"good\",\"good-bye\",\"goodbye\",\"goodie\",\"goodness\",\"goodnight\",\"goodwill\",\"goose\",\"gopher\",\"gorilla\",\"gosling\",\"gossip\",\"governance\",\"government\",\"governor\",\"gown\",\"grab-bag\",\"grace\",\"grade\",\"gradient\",\"graduate\",\"graduation\",\"graffiti\",\"graft\",\"grain\",\"gram\",\"grammar\",\"gran\",\"grand\",\"grandchild\",\"granddaughter\",\"grandfather\",\"grandma\",\"grandmom\",\"grandmother\",\"grandpa\",\"grandparent\",\"grandson\",\"granny\",\"granola\",\"grant\",\"grape\",\"grapefruit\",\"graph\",\"graphic\",\"grasp\",\"grass\",\"grasshopper\",\"grassland\",\"gratitude\",\"gravel\",\"gravitas\",\"gravity\",\"gravy\",\"gray\",\"grease\",\"great-grandfather\",\"great-grandmother\",\"greatness\",\"greed\",\"green\",\"greenhouse\",\"greens\",\"grenade\",\"grey\",\"grid\",\"grief\",\"grill\",\"grin\",\"grip\",\"gripper\",\"grit\",\"grocery\",\"ground\",\"group\",\"grouper\",\"grouse\",\"grove\",\"growth\",\"grub\",\"guacamole\",\"guarantee\",\"guard\",\"guava\",\"guerrilla\",\"guess\",\"guest\",\"guestbook\",\"guidance\",\"guide\",\"guideline\",\"guilder\",\"guilt\",\"guilty\",\"guinea\",\"guitar\",\"guitarist\",\"gum\",\"gumshoe\",\"gun\",\"gunpowder\",\"gutter\",\"guy\",\"gym\",\"gymnast\",\"gymnastics\",\"gynaecology\",\"gyro\",\"habit\",\"habitat\",\"hacienda\",\"hacksaw\",\"hackwork\",\"hail\",\"hair\",\"haircut\",\"hake\",\"half\",\"half-brother\",\"half-sister\",\"halibut\",\"hall\",\"halloween\",\"hallway\",\"halt\",\"ham\",\"hamburger\",\"hammer\",\"hammock\",\"hamster\",\"hand\",\"hand-holding\",\"handball\",\"handful\",\"handgun\",\"handicap\",\"handle\",\"handlebar\",\"handmaiden\",\"handover\",\"handrail\",\"handsaw\",\"hanger\",\"happening\",\"happiness\",\"harald\",\"harbor\",\"harbour\",\"hard-hat\",\"hardboard\",\"hardcover\",\"hardening\",\"hardhat\",\"hardship\",\"hardware\",\"hare\",\"harm\",\"harmonica\",\"harmonise\",\"harmonize\",\"harmony\",\"harp\",\"harpooner\",\"harpsichord\",\"harvest\",\"harvester\",\"hash\",\"hashtag\",\"hassock\",\"haste\",\"hat\",\"hatbox\",\"hatchet\",\"hatchling\",\"hate\",\"hatred\",\"haunt\",\"haven\",\"haversack\",\"havoc\",\"hawk\",\"hay\",\"haze\",\"hazel\",\"hazelnut\",\"head\",\"headache\",\"headlight\",\"headline\",\"headphones\",\"headquarters\",\"headrest\",\"health\",\"health-care\",\"hearing\",\"hearsay\",\"heart\",\"heart-throb\",\"heartache\",\"heartbeat\",\"hearth\",\"hearthside\",\"heartwood\",\"heat\",\"heater\",\"heating\",\"heaven\",\"heavy\",\"hectare\",\"hedge\",\"hedgehog\",\"heel\",\"heifer\",\"height\",\"heir\",\"heirloom\",\"helicopter\",\"helium\",\"hellcat\",\"hello\",\"helmet\",\"helo\",\"help\",\"hemisphere\",\"hemp\",\"hen\",\"hepatitis\",\"herb\",\"herbs\",\"heritage\",\"hermit\",\"hero\",\"heroine\",\"heron\",\"herring\",\"hesitation\",\"hexagon\",\"heyday\",\"hiccups\",\"hide\",\"hierarchy\",\"high\",\"high-rise\",\"highland\",\"highlight\",\"highway\",\"hike\",\"hiking\",\"hill\",\"hint\",\"hip\",\"hippodrome\",\"hippopotamus\",\"hire\",\"hiring\",\"historian\",\"history\",\"hit\",\"hive\",\"hobbit\",\"hobby\",\"hockey\",\"hog\",\"hold\",\"holder\",\"hole\",\"holiday\",\"home\",\"homeland\",\"homeownership\",\"hometown\",\"homework\",\"homogenate\",\"homonym\",\"honesty\",\"honey\",\"honeybee\",\"honeydew\",\"honor\",\"honoree\",\"hood\",\"hoof\",\"hook\",\"hop\",\"hope\",\"hops\",\"horde\",\"horizon\",\"hormone\",\"horn\",\"hornet\",\"horror\",\"horse\",\"horseradish\",\"horst\",\"hose\",\"hosiery\",\"hospice\",\"hospital\",\"hospitalisation\",\"hospitality\",\"hospitalization\",\"host\",\"hostel\",\"hostess\",\"hotdog\",\"hotel\",\"hound\",\"hour\",\"hourglass\",\"house\",\"houseboat\",\"household\",\"housewife\",\"housework\",\"housing\",\"hovel\",\"hovercraft\",\"howard\",\"howitzer\",\"hub\",\"hubcap\",\"hubris\",\"hug\",\"hugger\",\"hull\",\"human\",\"humanity\",\"humidity\",\"hummus\",\"humor\",\"humour\",\"hundred\",\"hunger\",\"hunt\",\"hunter\",\"hunting\",\"hurdle\",\"hurdler\",\"hurricane\",\"hurry\",\"hurt\",\"husband\",\"hut\",\"hutch\",\"hyacinth\",\"hybridisation\",\"hybridization\",\"hydrant\",\"hydraulics\",\"hydrocarb\",\"hydrocarbon\",\"hydrofoil\",\"hydrogen\",\"hydrolyse\",\"hydrolysis\",\"hydrolyze\",\"hydroxyl\",\"hyena\",\"hygienic\",\"hype\",\"hyphenation\",\"hypochondria\",\"hypothermia\",\"hypothesis\",\"ice\",\"ice-cream\",\"iceberg\",\"icebreaker\",\"icecream\",\"icicle\",\"icing\",\"icon\",\"icy\",\"id\",\"idea\",\"ideal\",\"identification\",\"identity\",\"ideology\",\"idiom\",\"igloo\",\"ignorance\",\"ignorant\",\"ikebana\",\"illiteracy\",\"illness\",\"illusion\",\"illustration\",\"image\",\"imagination\",\"imbalance\",\"imitation\",\"immigrant\",\"immigration\",\"immortal\",\"impact\",\"impairment\",\"impala\",\"impediment\",\"implement\",\"implementation\",\"implication\",\"import\",\"importance\",\"impostor\",\"impress\",\"impression\",\"imprisonment\",\"impropriety\",\"improvement\",\"impudence\",\"impulse\",\"in-joke\",\"in-laws\",\"inability\",\"inauguration\",\"inbox\",\"incandescence\",\"incarnation\",\"incense\",\"incentive\",\"inch\",\"incidence\",\"incident\",\"incision\",\"inclusion\",\"income\",\"incompetence\",\"inconvenience\",\"increase\",\"incubation\",\"independence\",\"independent\",\"index\",\"indication\",\"indicator\",\"indigence\",\"individual\",\"industrialisation\",\"industrialization\",\"industry\",\"inequality\",\"inevitable\",\"infancy\",\"infant\",\"infarction\",\"infection\",\"infiltration\",\"infinite\",\"infix\",\"inflammation\",\"inflation\",\"influence\",\"influx\",\"info\",\"information\",\"infrastructure\",\"infusion\",\"inglenook\",\"ingrate\",\"ingredient\",\"inhabitant\",\"inheritance\",\"inhibition\",\"inhibitor\",\"initial\",\"initialise\",\"initialize\",\"initiative\",\"injunction\",\"injury\",\"injustice\",\"ink\",\"inlay\",\"inn\",\"innervation\",\"innocence\",\"innocent\",\"innovation\",\"input\",\"inquiry\",\"inscription\",\"insect\",\"insectarium\",\"insert\",\"inside\",\"insight\",\"insolence\",\"insomnia\",\"inspection\",\"inspector\",\"inspiration\",\"installation\",\"instance\",\"instant\",\"instinct\",\"institute\",\"institution\",\"instruction\",\"instructor\",\"instrument\",\"instrumentalist\",\"instrumentation\",\"insulation\",\"insurance\",\"insurgence\",\"insurrection\",\"integer\",\"integral\",\"integration\",\"integrity\",\"intellect\",\"intelligence\",\"intensity\",\"intent\",\"intention\",\"intentionality\",\"interaction\",\"interchange\",\"interconnection\",\"interest\",\"interface\",\"interferometer\",\"interior\",\"interject\",\"interloper\",\"internet\",\"interpretation\",\"interpreter\",\"interval\",\"intervenor\",\"intervention\",\"interview\",\"interviewer\",\"intestine\",\"introduction\",\"intuition\",\"invader\",\"invasion\",\"invention\",\"inventor\",\"inventory\",\"inverse\",\"inversion\",\"investigation\",\"investigator\",\"investment\",\"investor\",\"invitation\",\"invite\",\"invoice\",\"involvement\",\"iridescence\",\"iris\",\"iron\",\"ironclad\",\"irony\",\"irrigation\",\"ischemia\",\"island\",\"isogloss\",\"isolation\",\"issue\",\"item\",\"itinerary\",\"ivory\",\"jack\",\"jackal\",\"jacket\",\"jackfruit\",\"jade\",\"jaguar\",\"jail\",\"jailhouse\",\"jalapeño\",\"jam\",\"jar\",\"jasmine\",\"jaw\",\"jazz\",\"jealousy\",\"jeans\",\"jeep\",\"jelly\",\"jellybeans\",\"jellyfish\",\"jet\",\"jewel\",\"jeweller\",\"jewellery\",\"jewelry\",\"jicama\",\"jiffy\",\"job\",\"jockey\",\"jodhpurs\",\"joey\",\"jogging\",\"joint\",\"joke\",\"jot\",\"journal\",\"journalism\",\"journalist\",\"journey\",\"joy\",\"judge\",\"judgment\",\"judo\",\"jug\",\"juggernaut\",\"juice\",\"julienne\",\"jumbo\",\"jump\",\"jumper\",\"jumpsuit\",\"jungle\",\"junior\",\"junk\",\"junker\",\"junket\",\"jury\",\"justice\",\"justification\",\"jute\",\"kale\",\"kangaroo\",\"karate\",\"kayak\",\"kazoo\",\"kebab\",\"keep\",\"keeper\",\"kendo\",\"kennel\",\"ketch\",\"ketchup\",\"kettle\",\"kettledrum\",\"key\",\"keyboard\",\"keyboarding\",\"keystone\",\"kick\",\"kick-off\",\"kid\",\"kidney\",\"kielbasa\",\"kill\",\"killer\",\"killing\",\"kilogram\",\"kilometer\",\"kilt\",\"kimono\",\"kinase\",\"kind\",\"kindness\",\"king\",\"kingdom\",\"kingfish\",\"kiosk\",\"kiss\",\"kit\",\"kitchen\",\"kite\",\"kitsch\",\"kitten\",\"kitty\",\"kiwi\",\"knee\",\"kneejerk\",\"knickers\",\"knife\",\"knife-edge\",\"knight\",\"knitting\",\"knock\",\"knot\",\"know-how\",\"knowledge\",\"knuckle\",\"koala\",\"kohlrabi\",\"lab\",\"label\",\"labor\",\"laboratory\",\"laborer\",\"labour\",\"labourer\",\"lace\",\"lack\",\"lacquerware\",\"lad\",\"ladder\",\"ladle\",\"lady\",\"ladybug\",\"lag\",\"lake\",\"lamb\",\"lambkin\",\"lament\",\"lamp\",\"lanai\",\"land\",\"landform\",\"landing\",\"landmine\",\"landscape\",\"lane\",\"language\",\"lantern\",\"lap\",\"laparoscope\",\"lapdog\",\"laptop\",\"larch\",\"lard\",\"larder\",\"lark\",\"larva\",\"laryngitis\",\"lasagna\",\"lashes\",\"last\",\"latency\",\"latex\",\"lathe\",\"latitude\",\"latte\",\"latter\",\"laugh\",\"laughter\",\"laundry\",\"lava\",\"law\",\"lawmaker\",\"lawn\",\"lawsuit\",\"lawyer\",\"lay\",\"layer\",\"layout\",\"lead\",\"leader\",\"leadership\",\"leading\",\"leaf\",\"league\",\"leaker\",\"leap\",\"learning\",\"leash\",\"leather\",\"leave\",\"leaver\",\"lecture\",\"leek\",\"leeway\",\"left\",\"leg\",\"legacy\",\"legal\",\"legend\",\"legging\",\"legislation\",\"legislator\",\"legislature\",\"legitimacy\",\"legume\",\"leisure\",\"lemon\",\"lemonade\",\"lemur\",\"lender\",\"lending\",\"length\",\"lens\",\"lentil\",\"leopard\",\"leprosy\",\"leptocephalus\",\"lesson\",\"letter\",\"lettuce\",\"level\",\"lever\",\"leverage\",\"leveret\",\"liability\",\"liar\",\"liberty\",\"library\",\"licence\",\"license\",\"licensing\",\"licorice\",\"lid\",\"lie\",\"lieu\",\"lieutenant\",\"life\",\"lifestyle\",\"lifetime\",\"lift\",\"ligand\",\"light\",\"lighting\",\"lightning\",\"lightscreen\",\"ligula\",\"likelihood\",\"likeness\",\"lilac\",\"lily\",\"limb\",\"lime\",\"limestone\",\"limit\",\"limitation\",\"limo\",\"line\",\"linen\",\"liner\",\"linguist\",\"linguistics\",\"lining\",\"link\",\"linkage\",\"linseed\",\"lion\",\"lip\",\"lipid\",\"lipoprotein\",\"lipstick\",\"liquid\",\"liquidity\",\"liquor\",\"list\",\"listening\",\"listing\",\"literate\",\"literature\",\"litigation\",\"litmus\",\"litter\",\"littleneck\",\"liver\",\"livestock\",\"living\",\"lizard\",\"llama\",\"load\",\"loading\",\"loaf\",\"loafer\",\"loan\",\"lobby\",\"lobotomy\",\"lobster\",\"local\",\"locality\",\"location\",\"lock\",\"locker\",\"locket\",\"locomotive\",\"locust\",\"lode\",\"loft\",\"log\",\"loggia\",\"logic\",\"login\",\"logistics\",\"logo\",\"loincloth\",\"lollipop\",\"loneliness\",\"longboat\",\"longitude\",\"look\",\"lookout\",\"loop\",\"loophole\",\"loquat\",\"lord\",\"loss\",\"lot\",\"lotion\",\"lottery\",\"lounge\",\"louse\",\"lout\",\"love\",\"lover\",\"lox\",\"loyalty\",\"luck\",\"luggage\",\"lumber\",\"lumberman\",\"lunch\",\"luncheonette\",\"lunchmeat\",\"lunchroom\",\"lung\",\"lunge\",\"lute\",\"luxury\",\"lychee\",\"lycra\",\"lye\",\"lymphocyte\",\"lynx\",\"lyocell\",\"lyre\",\"lyrics\",\"lysine\",\"mRNA\",\"macadamia\",\"macaroni\",\"macaroon\",\"macaw\",\"machine\",\"machinery\",\"macrame\",\"macro\",\"macrofauna\",\"madam\",\"maelstrom\",\"maestro\",\"magazine\",\"maggot\",\"magic\",\"magnet\",\"magnitude\",\"maid\",\"maiden\",\"mail\",\"mailbox\",\"mailer\",\"mailing\",\"mailman\",\"main\",\"mainland\",\"mainstream\",\"maintainer\",\"maintenance\",\"maize\",\"major\",\"major-league\",\"majority\",\"makeover\",\"maker\",\"makeup\",\"making\",\"male\",\"malice\",\"mall\",\"mallard\",\"mallet\",\"malnutrition\",\"mama\",\"mambo\",\"mammoth\",\"man\",\"manacle\",\"management\",\"manager\",\"manatee\",\"mandarin\",\"mandate\",\"mandolin\",\"mangle\",\"mango\",\"mangrove\",\"manhunt\",\"maniac\",\"manicure\",\"manifestation\",\"manipulation\",\"mankind\",\"manner\",\"manor\",\"mansard\",\"manservant\",\"mansion\",\"mantel\",\"mantle\",\"mantua\",\"manufacturer\",\"manufacturing\",\"many\",\"map\",\"maple\",\"mapping\",\"maracas\",\"marathon\",\"marble\",\"march\",\"mare\",\"margarine\",\"margin\",\"mariachi\",\"marimba\",\"marines\",\"marionberry\",\"mark\",\"marker\",\"market\",\"marketer\",\"marketing\",\"marketplace\",\"marksman\",\"markup\",\"marmalade\",\"marriage\",\"marsh\",\"marshland\",\"marshmallow\",\"marten\",\"marxism\",\"mascara\",\"mask\",\"masonry\",\"mass\",\"massage\",\"mast\",\"masterpiece\",\"mastication\",\"mastoid\",\"mat\",\"match\",\"matchmaker\",\"mate\",\"material\",\"maternity\",\"math\",\"mathematics\",\"matrix\",\"matter\",\"mattock\",\"mattress\",\"max\",\"maximum\",\"maybe\",\"mayonnaise\",\"mayor\",\"meadow\",\"meal\",\"mean\",\"meander\",\"meaning\",\"means\",\"meantime\",\"measles\",\"measure\",\"measurement\",\"meat\",\"meatball\",\"meatloaf\",\"mecca\",\"mechanic\",\"mechanism\",\"med\",\"medal\",\"media\",\"median\",\"medication\",\"medicine\",\"medium\",\"meet\",\"meeting\",\"melatonin\",\"melody\",\"melon\",\"member\",\"membership\",\"membrane\",\"meme\",\"memo\",\"memorial\",\"memory\",\"men\",\"menopause\",\"menorah\",\"mention\",\"mentor\",\"menu\",\"merchandise\",\"merchant\",\"mercury\",\"meridian\",\"meringue\",\"merit\",\"mesenchyme\",\"mess\",\"message\",\"messenger\",\"messy\",\"metabolite\",\"metal\",\"metallurgist\",\"metaphor\",\"meteor\",\"meteorology\",\"meter\",\"methane\",\"method\",\"methodology\",\"metric\",\"metro\",\"metronome\",\"mezzanine\",\"microlending\",\"micronutrient\",\"microphone\",\"microwave\",\"mid-course\",\"midden\",\"middle\",\"middleman\",\"midline\",\"midnight\",\"midwife\",\"might\",\"migrant\",\"migration\",\"mile\",\"mileage\",\"milepost\",\"milestone\",\"military\",\"milk\",\"milkshake\",\"mill\",\"millennium\",\"millet\",\"millimeter\",\"million\",\"millisecond\",\"millstone\",\"mime\",\"mimosa\",\"min\",\"mincemeat\",\"mind\",\"mine\",\"mineral\",\"mineshaft\",\"mini\",\"mini-skirt\",\"minibus\",\"minimalism\",\"minimum\",\"mining\",\"minion\",\"minister\",\"mink\",\"minnow\",\"minor\",\"minor-league\",\"minority\",\"mint\",\"minute\",\"miracle\",\"mirror\",\"miscommunication\",\"misfit\",\"misnomer\",\"misplacement\",\"misreading\",\"misrepresentation\",\"miss\",\"missile\",\"mission\",\"mist\",\"mistake\",\"mister\",\"misunderstand\",\"miter\",\"mitten\",\"mix\",\"mixer\",\"mixture\",\"moai\",\"moat\",\"mob\",\"mobile\",\"mobility\",\"mobster\",\"moccasins\",\"mocha\",\"mochi\",\"mode\",\"model\",\"modeling\",\"modem\",\"modernist\",\"modernity\",\"modification\",\"molar\",\"molasses\",\"molding\",\"mole\",\"molecule\",\"mom\",\"moment\",\"monastery\",\"monasticism\",\"money\",\"monger\",\"monitor\",\"monitoring\",\"monk\",\"monkey\",\"monocle\",\"monopoly\",\"monotheism\",\"monsoon\",\"monster\",\"month\",\"monument\",\"mood\",\"moody\",\"moon\",\"moonlight\",\"moonscape\",\"moose\",\"mop\",\"morale\",\"morbid\",\"morbidity\",\"morning\",\"morphology\",\"morsel\",\"mortal\",\"mortality\",\"mortgage\",\"mortise\",\"mosque\",\"mosquito\",\"most\",\"motel\",\"moth\",\"mother\",\"mother-in-law\",\"motion\",\"motivation\",\"motive\",\"motor\",\"motorboat\",\"motorcar\",\"motorcycle\",\"mound\",\"mountain\",\"mouse\",\"mouser\",\"mousse\",\"moustache\",\"mouth\",\"mouton\",\"movement\",\"mover\",\"movie\",\"mower\",\"mozzarella\",\"mud\",\"muffin\",\"mug\",\"mukluk\",\"mule\",\"multimedia\",\"muscat\",\"muscatel\",\"muscle\",\"musculature\",\"museum\",\"mushroom\",\"music\",\"music-box\",\"music-making\",\"musician\",\"muskrat\",\"mussel\",\"mustache\",\"mustard\",\"mutation\",\"mutt\",\"mutton\",\"mycoplasma\",\"mystery\",\"myth\",\"mythology\",\"nail\",\"name\",\"naming\",\"nanoparticle\",\"napkin\",\"narrative\",\"nasal\",\"nation\",\"nationality\",\"native\",\"naturalisation\",\"nature\",\"navigation\",\"necessity\",\"neck\",\"necklace\",\"necktie\",\"nectar\",\"nectarine\",\"need\",\"needle\",\"neglect\",\"negligee\",\"negotiation\",\"neighbor\",\"neighborhood\",\"neighbour\",\"neighbourhood\",\"neologism\",\"neon\",\"neonate\",\"nephew\",\"nerve\",\"nest\",\"nestling\",\"nestmate\",\"net\",\"netball\",\"netbook\",\"netsuke\",\"network\",\"networking\",\"neurobiologist\",\"neuron\",\"neuropathologist\",\"neuropsychiatry\",\"news\",\"newsletter\",\"newspaper\",\"newsprint\",\"newsstand\",\"nexus\",\"nibble\",\"nicety\",\"niche\",\"nick\",\"nickel\",\"nickname\",\"niece\",\"night\",\"nightclub\",\"nightgown\",\"nightingale\",\"nightlife\",\"nightlight\",\"nightmare\",\"ninja\",\"nit\",\"nitrogen\",\"nobody\",\"nod\",\"node\",\"noir\",\"noise\",\"nonbeliever\",\"nonconformist\",\"nondisclosure\",\"nonsense\",\"noodle\",\"noodles\",\"noon\",\"norm\",\"normal\",\"normalisation\",\"normalization\",\"north\",\"nose\",\"notation\",\"note\",\"notebook\",\"notepad\",\"nothing\",\"notice\",\"notion\",\"notoriety\",\"nougat\",\"noun\",\"nourishment\",\"novel\",\"nucleotidase\",\"nucleotide\",\"nudge\",\"nuke\",\"number\",\"numeracy\",\"numeric\",\"numismatist\",\"nun\",\"nurse\",\"nursery\",\"nursing\",\"nurture\",\"nut\",\"nutmeg\",\"nutrient\",\"nutrition\",\"nylon\",\"oak\",\"oar\",\"oasis\",\"oat\",\"oatmeal\",\"oats\",\"obedience\",\"obesity\",\"obi\",\"object\",\"objection\",\"objective\",\"obligation\",\"oboe\",\"observation\",\"observatory\",\"obsession\",\"obsidian\",\"obstacle\",\"occasion\",\"occupation\",\"occurrence\",\"ocean\",\"ocelot\",\"octagon\",\"octave\",\"octavo\",\"octet\",\"octopus\",\"odometer\",\"odyssey\",\"oeuvre\",\"off-ramp\",\"offence\",\"offense\",\"offer\",\"offering\",\"office\",\"officer\",\"official\",\"offset\",\"oil\",\"okra\",\"oldie\",\"oleo\",\"olive\",\"omega\",\"omelet\",\"omission\",\"omnivore\",\"oncology\",\"onion\",\"online\",\"onset\",\"opening\",\"opera\",\"operating\",\"operation\",\"operator\",\"ophthalmologist\",\"opinion\",\"opossum\",\"opponent\",\"opportunist\",\"opportunity\",\"opposite\",\"opposition\",\"optimal\",\"optimisation\",\"optimist\",\"optimization\",\"option\",\"orange\",\"orangutan\",\"orator\",\"orchard\",\"orchestra\",\"orchid\",\"order\",\"ordinary\",\"ordination\",\"ore\",\"oregano\",\"organ\",\"organisation\",\"organising\",\"organization\",\"organizing\",\"orient\",\"orientation\",\"origin\",\"original\",\"originality\",\"ornament\",\"osmosis\",\"osprey\",\"ostrich\",\"other\",\"otter\",\"ottoman\",\"ounce\",\"outback\",\"outcome\",\"outfielder\",\"outfit\",\"outhouse\",\"outlaw\",\"outlay\",\"outlet\",\"outline\",\"outlook\",\"output\",\"outrage\",\"outrigger\",\"outrun\",\"outset\",\"outside\",\"oval\",\"ovary\",\"oven\",\"overcharge\",\"overclocking\",\"overcoat\",\"overexertion\",\"overflight\",\"overhead\",\"overheard\",\"overload\",\"overnighter\",\"overshoot\",\"oversight\",\"overview\",\"overweight\",\"owl\",\"owner\",\"ownership\",\"ox\",\"oxford\",\"oxygen\",\"oyster\",\"ozone\",\"pace\",\"pacemaker\",\"pack\",\"package\",\"packaging\",\"packet\",\"pad\",\"paddle\",\"paddock\",\"pagan\",\"page\",\"pagoda\",\"pail\",\"pain\",\"paint\",\"painter\",\"painting\",\"paintwork\",\"pair\",\"pajamas\",\"palace\",\"palate\",\"palm\",\"pamphlet\",\"pan\",\"pancake\",\"pancreas\",\"panda\",\"panel\",\"panic\",\"pannier\",\"panpipe\",\"panther\",\"pantologist\",\"pantology\",\"pantry\",\"pants\",\"pantsuit\",\"pantyhose\",\"papa\",\"papaya\",\"paper\",\"paperback\",\"paperwork\",\"parable\",\"parachute\",\"parade\",\"paradise\",\"paragraph\",\"parallelogram\",\"paramecium\",\"paramedic\",\"parameter\",\"paranoia\",\"parcel\",\"parchment\",\"pard\",\"pardon\",\"parent\",\"parenthesis\",\"parenting\",\"park\",\"parka\",\"parking\",\"parliament\",\"parole\",\"parrot\",\"parser\",\"parsley\",\"parsnip\",\"part\",\"participant\",\"participation\",\"particle\",\"particular\",\"partner\",\"partnership\",\"partridge\",\"party\",\"pass\",\"passage\",\"passbook\",\"passenger\",\"passing\",\"passion\",\"passive\",\"passport\",\"password\",\"past\",\"pasta\",\"paste\",\"pastor\",\"pastoralist\",\"pastry\",\"pasture\",\"pat\",\"patch\",\"pate\",\"patent\",\"patentee\",\"path\",\"pathogenesis\",\"pathology\",\"pathway\",\"patience\",\"patient\",\"patina\",\"patio\",\"patriarch\",\"patrimony\",\"patriot\",\"patrol\",\"patroller\",\"patrolling\",\"patron\",\"pattern\",\"patty\",\"pattypan\",\"pause\",\"pavement\",\"pavilion\",\"paw\",\"pawnshop\",\"pay\",\"payee\",\"payment\",\"payoff\",\"pea\",\"peace\",\"peach\",\"peacoat\",\"peacock\",\"peak\",\"peanut\",\"pear\",\"pearl\",\"peasant\",\"pecan\",\"pedal\",\"peek\",\"peen\",\"peer\",\"peer-to-peer\",\"pegboard\",\"pelican\",\"pelt\",\"pen\",\"penalty\",\"pence\",\"pencil\",\"pendant\",\"pendulum\",\"penguin\",\"penicillin\",\"peninsula\",\"pennant\",\"penny\",\"pension\",\"pentagon\",\"peony\",\"people\",\"pepper\",\"pepperoni\",\"percent\",\"percentage\",\"perception\",\"perch\",\"perennial\",\"perfection\",\"performance\",\"perfume\",\"period\",\"periodical\",\"peripheral\",\"permafrost\",\"permission\",\"permit\",\"perp\",\"perpendicular\",\"persimmon\",\"person\",\"personal\",\"personality\",\"personnel\",\"perspective\",\"pest\",\"pet\",\"petal\",\"petition\",\"petitioner\",\"petticoat\",\"pew\",\"pharmacist\",\"pharmacopoeia\",\"phase\",\"pheasant\",\"phenomenon\",\"phenotype\",\"pheromone\",\"philanthropy\",\"philosopher\",\"philosophy\",\"phone\",\"phosphate\",\"photo\",\"photodiode\",\"photograph\",\"photographer\",\"photography\",\"photoreceptor\",\"phrase\",\"phrasing\",\"physical\",\"physics\",\"physiology\",\"pianist\",\"piano\",\"piccolo\",\"pick\",\"pickax\",\"pickaxe\",\"picket\",\"pickle\",\"pickup\",\"picnic\",\"picture\",\"picturesque\",\"pie\",\"piece\",\"pier\",\"piety\",\"pig\",\"pigeon\",\"piglet\",\"pigpen\",\"pigsty\",\"pike\",\"pilaf\",\"pile\",\"pilgrim\",\"pilgrimage\",\"pill\",\"pillar\",\"pillbox\",\"pillow\",\"pilot\",\"pimple\",\"pin\",\"pinafore\",\"pince-nez\",\"pine\",\"pineapple\",\"pinecone\",\"ping\",\"pinkie\",\"pinot\",\"pinstripe\",\"pint\",\"pinto\",\"pinworm\",\"pioneer\",\"pipe\",\"pipeline\",\"piracy\",\"pirate\",\"pit\",\"pita\",\"pitch\",\"pitcher\",\"pitching\",\"pith\",\"pizza\",\"place\",\"placebo\",\"placement\",\"placode\",\"plagiarism\",\"plain\",\"plaintiff\",\"plan\",\"plane\",\"planet\",\"planning\",\"plant\",\"plantation\",\"planter\",\"planula\",\"plaster\",\"plasterboard\",\"plastic\",\"plate\",\"platelet\",\"platform\",\"platinum\",\"platter\",\"platypus\",\"play\",\"player\",\"playground\",\"playroom\",\"playwright\",\"plea\",\"pleasure\",\"pleat\",\"pledge\",\"plenty\",\"plier\",\"pliers\",\"plight\",\"plot\",\"plough\",\"plover\",\"plow\",\"plowman\",\"plug\",\"plugin\",\"plum\",\"plumber\",\"plume\",\"plunger\",\"plywood\",\"pneumonia\",\"pocket\",\"pocket-watch\",\"pocketbook\",\"pod\",\"podcast\",\"poem\",\"poet\",\"poetry\",\"poignance\",\"point\",\"poison\",\"poisoning\",\"poker\",\"polarisation\",\"polarization\",\"pole\",\"polenta\",\"police\",\"policeman\",\"policy\",\"polish\",\"politician\",\"politics\",\"poll\",\"polliwog\",\"pollutant\",\"pollution\",\"polo\",\"polyester\",\"polyp\",\"pomegranate\",\"pomelo\",\"pompom\",\"poncho\",\"pond\",\"pony\",\"pool\",\"poor\",\"pop\",\"popcorn\",\"poppy\",\"popsicle\",\"popularity\",\"population\",\"populist\",\"porcelain\",\"porch\",\"porcupine\",\"pork\",\"porpoise\",\"port\",\"porter\",\"portfolio\",\"porthole\",\"portion\",\"portrait\",\"position\",\"possession\",\"possibility\",\"possible\",\"post\",\"postage\",\"postbox\",\"poster\",\"posterior\",\"postfix\",\"pot\",\"potato\",\"potential\",\"pottery\",\"potty\",\"pouch\",\"poultry\",\"pound\",\"pounding\",\"poverty\",\"powder\",\"power\",\"practice\",\"practitioner\",\"prairie\",\"praise\",\"pray\",\"prayer\",\"precedence\",\"precedent\",\"precipitation\",\"precision\",\"predecessor\",\"preface\",\"preference\",\"prefix\",\"pregnancy\",\"prejudice\",\"prelude\",\"premeditation\",\"premier\",\"premise\",\"premium\",\"preoccupation\",\"preparation\",\"prescription\",\"presence\",\"present\",\"presentation\",\"preservation\",\"preserves\",\"presidency\",\"president\",\"press\",\"pressroom\",\"pressure\",\"pressurisation\",\"pressurization\",\"prestige\",\"presume\",\"pretzel\",\"prevalence\",\"prevention\",\"prey\",\"price\",\"pricing\",\"pride\",\"priest\",\"priesthood\",\"primary\",\"primate\",\"prince\",\"princess\",\"principal\",\"principle\",\"print\",\"printer\",\"printing\",\"prior\",\"priority\",\"prison\",\"prisoner\",\"privacy\",\"private\",\"privilege\",\"prize\",\"prizefight\",\"probability\",\"probation\",\"probe\",\"problem\",\"procedure\",\"proceedings\",\"process\",\"processing\",\"processor\",\"proctor\",\"procurement\",\"produce\",\"producer\",\"product\",\"production\",\"productivity\",\"profession\",\"professional\",\"professor\",\"profile\",\"profit\",\"progenitor\",\"program\",\"programme\",\"programming\",\"progress\",\"progression\",\"prohibition\",\"project\",\"proliferation\",\"promenade\",\"promise\",\"promotion\",\"prompt\",\"pronoun\",\"pronunciation\",\"proof\",\"proof-reader\",\"propane\",\"property\",\"prophet\",\"proponent\",\"proportion\",\"proposal\",\"proposition\",\"proprietor\",\"prose\",\"prosecution\",\"prosecutor\",\"prospect\",\"prosperity\",\"prostacyclin\",\"prostanoid\",\"prostrate\",\"protection\",\"protein\",\"protest\",\"protocol\",\"providence\",\"provider\",\"province\",\"provision\",\"prow\",\"proximal\",\"proximity\",\"prune\",\"pruner\",\"pseudocode\",\"pseudoscience\",\"psychiatrist\",\"psychoanalyst\",\"psychologist\",\"psychology\",\"ptarmigan\",\"pub\",\"public\",\"publication\",\"publicity\",\"publisher\",\"publishing\",\"pudding\",\"puddle\",\"puffin\",\"pug\",\"puggle\",\"pulley\",\"pulse\",\"puma\",\"pump\",\"pumpernickel\",\"pumpkin\",\"pumpkinseed\",\"pun\",\"punch\",\"punctuation\",\"punishment\",\"pup\",\"pupa\",\"pupil\",\"puppet\",\"puppy\",\"purchase\",\"puritan\",\"purity\",\"purpose\",\"purr\",\"purse\",\"pursuit\",\"push\",\"pusher\",\"put\",\"puzzle\",\"pyramid\",\"pyridine\",\"quadrant\",\"quail\",\"qualification\",\"quality\",\"quantity\",\"quart\",\"quarter\",\"quartet\",\"quartz\",\"queen\",\"query\",\"quest\",\"question\",\"questioner\",\"questionnaire\",\"quiche\",\"quicksand\",\"quiet\",\"quill\",\"quilt\",\"quince\",\"quinoa\",\"quit\",\"quiver\",\"quota\",\"quotation\",\"quote\",\"rabbi\",\"rabbit\",\"raccoon\",\"race\",\"racer\",\"racing\",\"rack\",\"radar\",\"radiator\",\"radio\",\"radiosonde\",\"radish\",\"raffle\",\"raft\",\"rag\",\"rage\",\"raid\",\"rail\",\"railing\",\"railroad\",\"railway\",\"raiment\",\"rain\",\"rainbow\",\"raincoat\",\"rainmaker\",\"rainstorm\",\"rainy\",\"raise\",\"raisin\",\"rake\",\"rally\",\"ram\",\"rambler\",\"ramen\",\"ramie\",\"ranch\",\"rancher\",\"randomisation\",\"randomization\",\"range\",\"ranger\",\"rank\",\"rap\",\"raspberry\",\"rat\",\"rate\",\"ratepayer\",\"rating\",\"ratio\",\"rationale\",\"rations\",\"raven\",\"ravioli\",\"rawhide\",\"ray\",\"rayon\",\"razor\",\"reach\",\"reactant\",\"reaction\",\"read\",\"reader\",\"readiness\",\"reading\",\"real\",\"reality\",\"realization\",\"realm\",\"reamer\",\"rear\",\"reason\",\"reasoning\",\"rebel\",\"rebellion\",\"reboot\",\"recall\",\"recapitulation\",\"receipt\",\"receiver\",\"reception\",\"receptor\",\"recess\",\"recession\",\"recipe\",\"recipient\",\"reciprocity\",\"reclamation\",\"recliner\",\"recognition\",\"recollection\",\"recommendation\",\"reconsideration\",\"record\",\"recorder\",\"recording\",\"recovery\",\"recreation\",\"recruit\",\"rectangle\",\"redesign\",\"redhead\",\"redirect\",\"rediscovery\",\"reduction\",\"reef\",\"refectory\",\"reference\",\"referendum\",\"reflection\",\"reform\",\"refreshments\",\"refrigerator\",\"refuge\",\"refund\",\"refusal\",\"refuse\",\"regard\",\"regime\",\"region\",\"regionalism\",\"register\",\"registration\",\"registry\",\"regret\",\"regulation\",\"regulator\",\"rehospitalisation\",\"rehospitalization\",\"reindeer\",\"reinscription\",\"reject\",\"relation\",\"relationship\",\"relative\",\"relaxation\",\"relay\",\"release\",\"reliability\",\"relief\",\"religion\",\"relish\",\"reluctance\",\"remains\",\"remark\",\"reminder\",\"remnant\",\"remote\",\"removal\",\"renaissance\",\"rent\",\"reorganisation\",\"reorganization\",\"repair\",\"reparation\",\"repayment\",\"repeat\",\"replacement\",\"replica\",\"replication\",\"reply\",\"report\",\"reporter\",\"reporting\",\"repository\",\"representation\",\"representative\",\"reprocessing\",\"republic\",\"republican\",\"reputation\",\"request\",\"requirement\",\"resale\",\"rescue\",\"research\",\"researcher\",\"resemblance\",\"reservation\",\"reserve\",\"reservoir\",\"reset\",\"residence\",\"resident\",\"residue\",\"resist\",\"resistance\",\"resolution\",\"resolve\",\"resort\",\"resource\",\"respect\",\"respite\",\"response\",\"responsibility\",\"rest\",\"restaurant\",\"restoration\",\"restriction\",\"restroom\",\"restructuring\",\"result\",\"resume\",\"retailer\",\"retention\",\"rethinking\",\"retina\",\"retirement\",\"retouching\",\"retreat\",\"retrospect\",\"retrospective\",\"retrospectivity\",\"return\",\"reunion\",\"revascularisation\",\"revascularization\",\"reveal\",\"revelation\",\"revenant\",\"revenge\",\"revenue\",\"reversal\",\"reverse\",\"review\",\"revitalisation\",\"revitalization\",\"revival\",\"revolution\",\"revolver\",\"reward\",\"rhetoric\",\"rheumatism\",\"rhinoceros\",\"rhubarb\",\"rhyme\",\"rhythm\",\"rib\",\"ribbon\",\"rice\",\"riddle\",\"ride\",\"rider\",\"ridge\",\"riding\",\"rifle\",\"right\",\"rim\",\"ring\",\"ringworm\",\"riot\",\"rip\",\"ripple\",\"rise\",\"riser\",\"risk\",\"rite\",\"ritual\",\"river\",\"riverbed\",\"rivulet\",\"road\",\"roadway\",\"roar\",\"roast\",\"robe\",\"robin\",\"robot\",\"robotics\",\"rock\",\"rocker\",\"rocket\",\"rocket-ship\",\"rod\",\"role\",\"roll\",\"roller\",\"romaine\",\"romance\",\"roof\",\"room\",\"roommate\",\"rooster\",\"root\",\"rope\",\"rose\",\"rosemary\",\"roster\",\"rostrum\",\"rotation\",\"round\",\"roundabout\",\"route\",\"router\",\"routine\",\"row\",\"rowboat\",\"rowing\",\"rubber\",\"rubbish\",\"rubric\",\"ruby\",\"ruckus\",\"rudiment\",\"ruffle\",\"rug\",\"rugby\",\"ruin\",\"rule\",\"ruler\",\"ruling\",\"rumor\",\"run\",\"runaway\",\"runner\",\"running\",\"runway\",\"rush\",\"rust\",\"rutabaga\",\"rye\",\"sabre\",\"sack\",\"saddle\",\"sadness\",\"safari\",\"safe\",\"safeguard\",\"safety\",\"saffron\",\"sage\",\"sail\",\"sailboat\",\"sailing\",\"sailor\",\"saint\",\"sake\",\"salad\",\"salami\",\"salary\",\"sale\",\"salesman\",\"salmon\",\"salon\",\"saloon\",\"salsa\",\"salt\",\"salute\",\"samovar\",\"sampan\",\"sample\",\"samurai\",\"sanction\",\"sanctity\",\"sanctuary\",\"sand\",\"sandal\",\"sandbar\",\"sandpaper\",\"sandwich\",\"sanity\",\"sardine\",\"sari\",\"sarong\",\"sash\",\"satellite\",\"satin\",\"satire\",\"satisfaction\",\"sauce\",\"saucer\",\"sauerkraut\",\"sausage\",\"savage\",\"savannah\",\"saving\",\"savings\",\"savior\",\"saviour\",\"savory\",\"saw\",\"saxophone\",\"scaffold\",\"scale\",\"scallion\",\"scallops\",\"scalp\",\"scam\",\"scanner\",\"scarecrow\",\"scarf\",\"scarification\",\"scenario\",\"scene\",\"scenery\",\"scent\",\"schedule\",\"scheduling\",\"schema\",\"scheme\",\"schnitzel\",\"scholar\",\"scholarship\",\"school\",\"schoolhouse\",\"schooner\",\"science\",\"scientist\",\"scimitar\",\"scissors\",\"scooter\",\"scope\",\"score\",\"scorn\",\"scorpion\",\"scotch\",\"scout\",\"scow\",\"scrambled\",\"scrap\",\"scraper\",\"scratch\",\"screamer\",\"screen\",\"screening\",\"screenwriting\",\"screw\",\"screw-up\",\"screwdriver\",\"scrim\",\"scrip\",\"script\",\"scripture\",\"scrutiny\",\"sculpting\",\"sculptural\",\"sculpture\",\"sea\",\"seabass\",\"seafood\",\"seagull\",\"seal\",\"seaplane\",\"search\",\"seashore\",\"seaside\",\"season\",\"seat\",\"seaweed\",\"second\",\"secrecy\",\"secret\",\"secretariat\",\"secretary\",\"secretion\",\"section\",\"sectional\",\"sector\",\"security\",\"sediment\",\"seed\",\"seeder\",\"seeker\",\"seep\",\"segment\",\"seizure\",\"selection\",\"self\",\"self-confidence\",\"self-control\",\"self-esteem\",\"seller\",\"selling\",\"semantics\",\"semester\",\"semicircle\",\"semicolon\",\"semiconductor\",\"seminar\",\"senate\",\"senator\",\"sender\",\"senior\",\"sense\",\"sensibility\",\"sensitive\",\"sensitivity\",\"sensor\",\"sentence\",\"sentencing\",\"sentiment\",\"sepal\",\"separation\",\"septicaemia\",\"sequel\",\"sequence\",\"serial\",\"series\",\"sermon\",\"serum\",\"serval\",\"servant\",\"server\",\"service\",\"servitude\",\"sesame\",\"session\",\"set\",\"setback\",\"setting\",\"settlement\",\"settler\",\"severity\",\"sewer\",\"shack\",\"shackle\",\"shade\",\"shadow\",\"shadowbox\",\"shakedown\",\"shaker\",\"shallot\",\"shallows\",\"shame\",\"shampoo\",\"shanty\",\"shape\",\"share\",\"shareholder\",\"shark\",\"shaw\",\"shawl\",\"shear\",\"shearling\",\"sheath\",\"shed\",\"sheep\",\"sheet\",\"shelf\",\"shell\",\"shelter\",\"sherbet\",\"sherry\",\"shield\",\"shift\",\"shin\",\"shine\",\"shingle\",\"ship\",\"shipper\",\"shipping\",\"shipyard\",\"shirt\",\"shirtdress\",\"shoat\",\"shock\",\"shoe\",\"shoe-horn\",\"shoehorn\",\"shoelace\",\"shoemaker\",\"shoes\",\"shoestring\",\"shofar\",\"shoot\",\"shootdown\",\"shop\",\"shopper\",\"shopping\",\"shore\",\"shoreline\",\"short\",\"shortage\",\"shorts\",\"shortwave\",\"shot\",\"shoulder\",\"shout\",\"shovel\",\"show\",\"show-stopper\",\"shower\",\"shred\",\"shrimp\",\"shrine\",\"shutdown\",\"sibling\",\"sick\",\"sickness\",\"side\",\"sideboard\",\"sideburns\",\"sidecar\",\"sidestream\",\"sidewalk\",\"siding\",\"siege\",\"sigh\",\"sight\",\"sightseeing\",\"sign\",\"signal\",\"signature\",\"signet\",\"significance\",\"signify\",\"signup\",\"silence\",\"silica\",\"silicon\",\"silk\",\"silkworm\",\"sill\",\"silly\",\"silo\",\"silver\",\"similarity\",\"simple\",\"simplicity\",\"simplification\",\"simvastatin\",\"sin\",\"singer\",\"singing\",\"singular\",\"sink\",\"sinuosity\",\"sip\",\"sir\",\"sister\",\"sister-in-law\",\"sitar\",\"site\",\"situation\",\"size\",\"skate\",\"skating\",\"skean\",\"skeleton\",\"ski\",\"skiing\",\"skill\",\"skin\",\"skirt\",\"skull\",\"skullcap\",\"skullduggery\",\"skunk\",\"sky\",\"skylight\",\"skyline\",\"skyscraper\",\"skywalk\",\"slang\",\"slapstick\",\"slash\",\"slate\",\"slaw\",\"sled\",\"sledge\",\"sleep\",\"sleepiness\",\"sleeping\",\"sleet\",\"sleuth\",\"slice\",\"slide\",\"slider\",\"slime\",\"slip\",\"slipper\",\"slippers\",\"slope\",\"slot\",\"sloth\",\"slump\",\"smell\",\"smelting\",\"smile\",\"smith\",\"smock\",\"smog\",\"smoke\",\"smoking\",\"smolt\",\"smuggling\",\"snack\",\"snail\",\"snake\",\"snakebite\",\"snap\",\"snarl\",\"sneaker\",\"sneakers\",\"sneeze\",\"sniffle\",\"snob\",\"snorer\",\"snow\",\"snowboarding\",\"snowflake\",\"snowman\",\"snowmobiling\",\"snowplow\",\"snowstorm\",\"snowsuit\",\"snuck\",\"snug\",\"snuggle\",\"soap\",\"soccer\",\"socialism\",\"socialist\",\"society\",\"sociology\",\"sock\",\"socks\",\"soda\",\"sofa\",\"softball\",\"softdrink\",\"softening\",\"software\",\"soil\",\"soldier\",\"sole\",\"solicitation\",\"solicitor\",\"solidarity\",\"solidity\",\"soliloquy\",\"solitaire\",\"solution\",\"solvency\",\"sombrero\",\"somebody\",\"someone\",\"someplace\",\"somersault\",\"something\",\"somewhere\",\"son\",\"sonar\",\"sonata\",\"song\",\"songbird\",\"sonnet\",\"soot\",\"sophomore\",\"soprano\",\"sorbet\",\"sorghum\",\"sorrel\",\"sorrow\",\"sort\",\"soul\",\"soulmate\",\"sound\",\"soundness\",\"soup\",\"source\",\"sourwood\",\"sousaphone\",\"south\",\"southeast\",\"souvenir\",\"sovereignty\",\"sow\",\"soy\",\"soybean\",\"space\",\"spacing\",\"spaghetti\",\"span\",\"spandex\",\"sparerib\",\"spark\",\"sparrow\",\"spasm\",\"spat\",\"spatula\",\"spawn\",\"speaker\",\"speakerphone\",\"speaking\",\"spear\",\"spec\",\"special\",\"specialist\",\"specialty\",\"species\",\"specification\",\"spectacle\",\"spectacles\",\"spectrograph\",\"spectrum\",\"speculation\",\"speech\",\"speed\",\"speedboat\",\"spell\",\"spelling\",\"spelt\",\"spending\",\"sphere\",\"sphynx\",\"spice\",\"spider\",\"spiderling\",\"spike\",\"spill\",\"spinach\",\"spine\",\"spiral\",\"spirit\",\"spiritual\",\"spirituality\",\"spit\",\"spite\",\"spleen\",\"splendor\",\"split\",\"spokesman\",\"spokeswoman\",\"sponge\",\"sponsor\",\"sponsorship\",\"spool\",\"spoon\",\"spork\",\"sport\",\"sportsman\",\"spot\",\"spotlight\",\"spouse\",\"sprag\",\"sprat\",\"spray\",\"spread\",\"spreadsheet\",\"spree\",\"spring\",\"sprinkles\",\"sprinter\",\"sprout\",\"spruce\",\"spud\",\"spume\",\"spur\",\"spy\",\"spyglass\",\"square\",\"squash\",\"squatter\",\"squeegee\",\"squid\",\"squirrel\",\"stab\",\"stability\",\"stable\",\"stack\",\"stacking\",\"stadium\",\"staff\",\"stag\",\"stage\",\"stain\",\"stair\",\"staircase\",\"stake\",\"stalk\",\"stall\",\"stallion\",\"stamen\",\"stamina\",\"stamp\",\"stance\",\"stand\",\"standard\",\"standardisation\",\"standardization\",\"standing\",\"standoff\",\"standpoint\",\"star\",\"starboard\",\"start\",\"starter\",\"state\",\"statement\",\"statin\",\"station\",\"station-wagon\",\"statistic\",\"statistics\",\"statue\",\"status\",\"statute\",\"stay\",\"steak\",\"stealth\",\"steam\",\"steamroller\",\"steel\",\"steeple\",\"stem\",\"stench\",\"stencil\",\"step\",\"step-aunt\",\"step-brother\",\"step-daughter\",\"step-father\",\"step-grandfather\",\"step-grandmother\",\"step-mother\",\"step-sister\",\"step-son\",\"step-uncle\",\"stepdaughter\",\"stepmother\",\"stepping-stone\",\"stepson\",\"stereo\",\"stew\",\"steward\",\"stick\",\"sticker\",\"stiletto\",\"still\",\"stimulation\",\"stimulus\",\"sting\",\"stinger\",\"stir-fry\",\"stitch\",\"stitcher\",\"stock\",\"stock-in-trade\",\"stockings\",\"stole\",\"stomach\",\"stone\",\"stonework\",\"stool\",\"stop\",\"stopsign\",\"stopwatch\",\"storage\",\"store\",\"storey\",\"storm\",\"story\",\"story-telling\",\"storyboard\",\"stot\",\"stove\",\"strait\",\"strand\",\"stranger\",\"strap\",\"strategy\",\"straw\",\"strawberry\",\"strawman\",\"stream\",\"street\",\"streetcar\",\"strength\",\"stress\",\"stretch\",\"strife\",\"strike\",\"string\",\"strip\",\"stripe\",\"strobe\",\"structure\",\"strudel\",\"struggle\",\"stucco\",\"stud\",\"student\",\"studio\",\"study\",\"stuff\",\"stumbling\",\"stump\",\"stupidity\",\"sturgeon\",\"sty\",\"style\",\"styling\",\"stylus\",\"sub\",\"subcomponent\",\"subconscious\",\"subcontractor\",\"subexpression\",\"subgroup\",\"subject\",\"submarine\",\"submitter\",\"subprime\",\"subroutine\",\"subscription\",\"subsection\",\"subset\",\"subsidence\",\"subsidiary\",\"subsidy\",\"substance\",\"substitution\",\"subtitle\",\"suburb\",\"subway\",\"success\",\"succotash\",\"suede\",\"suet\",\"suffocation\",\"sugar\",\"suggestion\",\"suit\",\"suitcase\",\"suite\",\"sulfur\",\"sultan\",\"sum\",\"summary\",\"summer\",\"summit\",\"sun\",\"sunbeam\",\"sunbonnet\",\"sundae\",\"sunday\",\"sundial\",\"sunflower\",\"sunglasses\",\"sunlamp\",\"sunlight\",\"sunrise\",\"sunroom\",\"sunset\",\"sunshine\",\"superiority\",\"supermarket\",\"supernatural\",\"supervision\",\"supervisor\",\"supper\",\"supplement\",\"supplier\",\"supply\",\"support\",\"supporter\",\"suppression\",\"supreme\",\"surface\",\"surfboard\",\"surge\",\"surgeon\",\"surgery\",\"surname\",\"surplus\",\"surprise\",\"surround\",\"surroundings\",\"surrounds\",\"survey\",\"survival\",\"survivor\",\"sushi\",\"suspect\",\"suspenders\",\"suspension\",\"sustainment\",\"sustenance\",\"swamp\",\"swan\",\"swanling\",\"swath\",\"sweat\",\"sweater\",\"sweatshirt\",\"sweatshop\",\"sweatsuit\",\"sweets\",\"swell\",\"swim\",\"swimming\",\"swimsuit\",\"swine\",\"swing\",\"switch\",\"switchboard\",\"switching\",\"swivel\",\"sword\",\"swordfight\",\"swordfish\",\"sycamore\",\"symbol\",\"symmetry\",\"sympathy\",\"symptom\",\"syndicate\",\"syndrome\",\"synergy\",\"synod\",\"synonym\",\"synthesis\",\"syrup\",\"system\",\"t-shirt\",\"tab\",\"tabby\",\"tabernacle\",\"table\",\"tablecloth\",\"tablet\",\"tabletop\",\"tachometer\",\"tackle\",\"taco\",\"tactics\",\"tactile\",\"tadpole\",\"tag\",\"tail\",\"tailbud\",\"tailor\",\"tailspin\",\"take-out\",\"takeover\",\"tale\",\"talent\",\"talk\",\"talking\",\"tam-o'-shanter\",\"tamale\",\"tambour\",\"tambourine\",\"tan\",\"tandem\",\"tangerine\",\"tank\",\"tank-top\",\"tanker\",\"tankful\",\"tap\",\"tape\",\"tapioca\",\"target\",\"taro\",\"tarragon\",\"tart\",\"task\",\"tassel\",\"taste\",\"tatami\",\"tattler\",\"tattoo\",\"tavern\",\"tax\",\"taxi\",\"taxicab\",\"taxpayer\",\"tea\",\"teacher\",\"teaching\",\"team\",\"teammate\",\"teapot\",\"tear\",\"tech\",\"technician\",\"technique\",\"technologist\",\"technology\",\"tectonics\",\"teen\",\"teenager\",\"teepee\",\"telephone\",\"telescreen\",\"teletype\",\"television\",\"tell\",\"teller\",\"temp\",\"temper\",\"temperature\",\"temple\",\"tempo\",\"temporariness\",\"temporary\",\"temptation\",\"temptress\",\"tenant\",\"tendency\",\"tender\",\"tenement\",\"tenet\",\"tennis\",\"tenor\",\"tension\",\"tensor\",\"tent\",\"tentacle\",\"tenth\",\"tepee\",\"teriyaki\",\"term\",\"terminal\",\"termination\",\"terminology\",\"termite\",\"terrace\",\"terracotta\",\"terrapin\",\"terrarium\",\"territory\",\"test\",\"testament\",\"testimonial\",\"testimony\",\"testing\",\"text\",\"textbook\",\"textual\",\"texture\",\"thanks\",\"thaw\",\"theater\",\"theft\",\"theism\",\"theme\",\"theology\",\"theory\",\"therapist\",\"therapy\",\"thermals\",\"thermometer\",\"thermostat\",\"thesis\",\"thickness\",\"thief\",\"thigh\",\"thing\",\"thinking\",\"thirst\",\"thistle\",\"thong\",\"thongs\",\"thorn\",\"thought\",\"thousand\",\"thread\",\"threat\",\"threshold\",\"thrift\",\"thrill\",\"throne\",\"thrush\",\"thumb\",\"thump\",\"thunder\",\"thunderbolt\",\"thunderhead\",\"thunderstorm\",\"thyme\",\"tiara\",\"tic\",\"tick\",\"ticket\",\"tide\",\"tie\",\"tiger\",\"tights\",\"tile\",\"till\",\"tilt\",\"timbale\",\"timber\",\"time\",\"timeline\",\"timeout\",\"timer\",\"timetable\",\"timing\",\"timpani\",\"tin\",\"tinderbox\",\"tintype\",\"tip\",\"tire\",\"tissue\",\"titanium\",\"title\",\"toad\",\"toast\",\"toaster\",\"tobacco\",\"today\",\"toe\",\"toenail\",\"toffee\",\"tofu\",\"tog\",\"toga\",\"toilet\",\"tolerance\",\"tolerant\",\"toll\",\"tom-tom\",\"tomatillo\",\"tomato\",\"tomb\",\"tomography\",\"tomorrow\",\"ton\",\"tonality\",\"tone\",\"tongue\",\"tonic\",\"tonight\",\"tool\",\"toot\",\"tooth\",\"toothbrush\",\"toothpaste\",\"toothpick\",\"top\",\"top-hat\",\"topic\",\"topsail\",\"toque\",\"toreador\",\"tornado\",\"torso\",\"torte\",\"tortellini\",\"tortilla\",\"tortoise\",\"total\",\"tote\",\"touch\",\"tough-guy\",\"tour\",\"tourism\",\"tourist\",\"tournament\",\"tow-truck\",\"towel\",\"tower\",\"town\",\"townhouse\",\"township\",\"toy\",\"trace\",\"trachoma\",\"track\",\"tracking\",\"tracksuit\",\"tract\",\"tractor\",\"trade\",\"trader\",\"trading\",\"tradition\",\"traditionalism\",\"traffic\",\"trafficker\",\"tragedy\",\"trail\",\"trailer\",\"trailpatrol\",\"train\",\"trainer\",\"training\",\"trait\",\"tram\",\"trance\",\"transaction\",\"transcript\",\"transfer\",\"transformation\",\"transit\",\"transition\",\"translation\",\"transmission\",\"transom\",\"transparency\",\"transplantation\",\"transport\",\"transportation\",\"trap\",\"trapdoor\",\"trapezium\",\"trapezoid\",\"trash\",\"travel\",\"traveler\",\"tray\",\"treasure\",\"treasury\",\"treat\",\"treatment\",\"treaty\",\"tree\",\"trek\",\"trellis\",\"tremor\",\"trench\",\"trend\",\"triad\",\"trial\",\"triangle\",\"tribe\",\"tributary\",\"trick\",\"trigger\",\"trigonometry\",\"trillion\",\"trim\",\"trinket\",\"trip\",\"tripod\",\"tritone\",\"triumph\",\"trolley\",\"troop\",\"trooper\",\"trophy\",\"trouble\",\"trousers\",\"trout\",\"trove\",\"trowel\",\"truck\",\"trumpet\",\"trunk\",\"trust\",\"trustee\",\"truth\",\"try\",\"tsunami\",\"tub\",\"tuba\",\"tube\",\"tuber\",\"tug\",\"tugboat\",\"tuition\",\"tulip\",\"tumbler\",\"tummy\",\"tuna\",\"tune\",\"tune-up\",\"tunic\",\"tunnel\",\"turban\",\"turf\",\"turkey\",\"turmeric\",\"turn\",\"turning\",\"turnip\",\"turnover\",\"turnstile\",\"turret\",\"turtle\",\"tusk\",\"tussle\",\"tutu\",\"tuxedo\",\"tweet\",\"tweezers\",\"twig\",\"twilight\",\"twine\",\"twins\",\"twist\",\"twister\",\"twitter\",\"type\",\"typeface\",\"typewriter\",\"typhoon\",\"ukulele\",\"ultimatum\",\"umbrella\",\"unblinking\",\"uncertainty\",\"uncle\",\"underclothes\",\"underestimate\",\"underground\",\"underneath\",\"underpants\",\"underpass\",\"undershirt\",\"understanding\",\"understatement\",\"undertaker\",\"underwear\",\"underweight\",\"underwire\",\"underwriting\",\"unemployment\",\"unibody\",\"uniform\",\"uniformity\",\"union\",\"unique\",\"unit\",\"unity\",\"universe\",\"university\",\"update\",\"upgrade\",\"uplift\",\"upper\",\"upstairs\",\"upward\",\"urge\",\"urgency\",\"urn\",\"usage\",\"use\",\"user\",\"usher\",\"usual\",\"utensil\",\"utilisation\",\"utility\",\"utilization\",\"vacation\",\"vaccine\",\"vacuum\",\"vagrant\",\"valance\",\"valentine\",\"validate\",\"validity\",\"valley\",\"valuable\",\"value\",\"vampire\",\"van\",\"vanadyl\",\"vane\",\"vanilla\",\"vanity\",\"variability\",\"variable\",\"variant\",\"variation\",\"variety\",\"vascular\",\"vase\",\"vault\",\"vaulting\",\"veal\",\"vector\",\"vegetable\",\"vegetarian\",\"vegetarianism\",\"vegetation\",\"vehicle\",\"veil\",\"vein\",\"veldt\",\"vellum\",\"velocity\",\"velodrome\",\"velvet\",\"vendor\",\"veneer\",\"vengeance\",\"venison\",\"venom\",\"venti\",\"venture\",\"venue\",\"veranda\",\"verb\",\"verdict\",\"verification\",\"vermicelli\",\"vernacular\",\"verse\",\"version\",\"vertigo\",\"verve\",\"vessel\",\"vest\",\"vestment\",\"vet\",\"veteran\",\"veterinarian\",\"veto\",\"viability\",\"vibraphone\",\"vibration\",\"vibrissae\",\"vice\",\"vicinity\",\"victim\",\"victory\",\"video\",\"view\",\"viewer\",\"vignette\",\"villa\",\"village\",\"vine\",\"vinegar\",\"vineyard\",\"vintage\",\"vintner\",\"vinyl\",\"viola\",\"violation\",\"violence\",\"violet\",\"violin\",\"virtue\",\"virus\",\"visa\",\"viscose\",\"vise\",\"vision\",\"visit\",\"visitor\",\"visor\",\"vista\",\"visual\",\"vitality\",\"vitamin\",\"vitro\",\"vivo\",\"vogue\",\"voice\",\"void\",\"vol\",\"volatility\",\"volcano\",\"volleyball\",\"volume\",\"volunteer\",\"volunteering\",\"vote\",\"voter\",\"voting\",\"voyage\",\"vulture\",\"wafer\",\"waffle\",\"wage\",\"wagon\",\"waist\",\"waistband\",\"wait\",\"waiter\",\"waiting\",\"waitress\",\"waiver\",\"wake\",\"walk\",\"walker\",\"walking\",\"walkway\",\"wall\",\"wallaby\",\"wallet\",\"walnut\",\"walrus\",\"wampum\",\"wannabe\",\"want\",\"war\",\"warden\",\"wardrobe\",\"warfare\",\"warlock\",\"warlord\",\"warm-up\",\"warming\",\"warmth\",\"warning\",\"warrant\",\"warren\",\"warrior\",\"wasabi\",\"wash\",\"washbasin\",\"washcloth\",\"washer\",\"washtub\",\"wasp\",\"waste\",\"wastebasket\",\"wasting\",\"watch\",\"watcher\",\"watchmaker\",\"water\",\"waterbed\",\"watercress\",\"waterfall\",\"waterfront\",\"watermelon\",\"waterskiing\",\"waterspout\",\"waterwheel\",\"wave\",\"waveform\",\"wax\",\"way\",\"weakness\",\"wealth\",\"weapon\",\"wear\",\"weasel\",\"weather\",\"web\",\"webinar\",\"webmail\",\"webpage\",\"website\",\"wedding\",\"wedge\",\"weeder\",\"weedkiller\",\"week\",\"weekend\",\"weekender\",\"weight\",\"weird\",\"welcome\",\"welfare\",\"well\",\"well-being\",\"west\",\"western\",\"wet-bar\",\"wetland\",\"wetsuit\",\"whack\",\"whale\",\"wharf\",\"wheat\",\"wheel\",\"whelp\",\"whey\",\"whip\",\"whirlpool\",\"whirlwind\",\"whisker\",\"whisper\",\"whistle\",\"whole\",\"wholesale\",\"wholesaler\",\"whorl\",\"wick\",\"widget\",\"widow\",\"width\",\"wife\",\"wifi\",\"wild\",\"wildebeest\",\"wilderness\",\"wildlife\",\"will\",\"willingness\",\"willow\",\"win\",\"wind\",\"wind-chime\",\"windage\",\"window\",\"windscreen\",\"windshield\",\"winery\",\"wing\",\"wingman\",\"wingtip\",\"wink\",\"winner\",\"winter\",\"wire\",\"wiretap\",\"wiring\",\"wisdom\",\"wiseguy\",\"wish\",\"wisteria\",\"wit\",\"witch\",\"witch-hunt\",\"withdrawal\",\"witness\",\"wok\",\"wolf\",\"woman\",\"wombat\",\"wonder\",\"wont\",\"wood\",\"woodchuck\",\"woodland\",\"woodshed\",\"woodwind\",\"wool\",\"woolens\",\"word\",\"wording\",\"work\",\"workbench\",\"worker\",\"workforce\",\"workhorse\",\"working\",\"workout\",\"workplace\",\"workshop\",\"world\",\"worm\",\"worry\",\"worship\",\"worshiper\",\"worth\",\"wound\",\"wrap\",\"wraparound\",\"wrapper\",\"wrapping\",\"wreck\",\"wrecker\",\"wren\",\"wrench\",\"wrestler\",\"wriggler\",\"wrinkle\",\"wrist\",\"writer\",\"writing\",\"wrong\",\"xylophone\",\"yacht\",\"yahoo\",\"yak\",\"yam\",\"yang\",\"yard\",\"yarmulke\",\"yarn\",\"yawl\",\"year\",\"yeast\",\"yellowjacket\",\"yesterday\",\"yew\",\"yin\",\"yoga\",\"yogurt\",\"yoke\",\"yolk\",\"young\",\"youngster\",\"yourself\",\"youth\",\"yoyo\",\"yurt\",\"zampone\",\"zebra\",\"zebrafish\",\"zen\",\"zephyr\",\"zero\",\"ziggurat\",\"zinc\",\"zipper\",\"zither\",\"zombie\",\"zone\",\"zoo\",\"zoologist\",\"zoology\",\"zoot-suit\",\"zucchini\"],CKe=[\"a\",\"abaft\",\"aboard\",\"about\",\"above\",\"absent\",\"across\",\"afore\",\"after\",\"against\",\"along\",\"alongside\",\"amid\",\"amidst\",\"among\",\"amongst\",\"an\",\"anenst\",\"anti\",\"apropos\",\"apud\",\"around\",\"as\",\"aside\",\"astride\",\"at\",\"athwart\",\"atop\",\"barring\",\"before\",\"behind\",\"below\",\"beneath\",\"beside\",\"besides\",\"between\",\"beyond\",\"but\",\"by\",\"circa\",\"concerning\",\"considering\",\"despite\",\"down\",\"during\",\"except\",\"excepting\",\"excluding\",\"failing\",\"following\",\"for\",\"forenenst\",\"from\",\"given\",\"in\",\"including\",\"inside\",\"into\",\"lest\",\"like\",\"mid\",\"midst\",\"minus\",\"modulo\",\"near\",\"next\",\"notwithstanding\",\"of\",\"off\",\"on\",\"onto\",\"opposite\",\"out\",\"outside\",\"over\",\"pace\",\"past\",\"per\",\"plus\",\"pro\",\"qua\",\"regarding\",\"round\",\"sans\",\"save\",\"since\",\"than\",\"the\",\"through\",\"throughout\",\"till\",\"times\",\"to\",\"toward\",\"towards\",\"under\",\"underneath\",\"unlike\",\"until\",\"unto\",\"up\",\"upon\",\"versus\",\"via\",\"vice\",\"with\",\"within\",\"without\",\"worth\"],FKe=[\"abandon\",\"abase\",\"abate\",\"abbreviate\",\"abdicate\",\"abduct\",\"abet\",\"abhor\",\"abide\",\"abjure\",\"abnegate\",\"abolish\",\"abominate\",\"abort\",\"abound\",\"abrade\",\"abridge\",\"abrogate\",\"abscond\",\"abseil\",\"absent\",\"absolve\",\"absorb\",\"abstain\",\"abstract\",\"abut\",\"accede\",\"accelerate\",\"accent\",\"accentuate\",\"accept\",\"access\",\"accessorise\",\"accessorize\",\"acclaim\",\"acclimate\",\"acclimatise\",\"acclimatize\",\"accommodate\",\"accompany\",\"accomplish\",\"accord\",\"accost\",\"account\",\"accouter\",\"accoutre\",\"accredit\",\"accrue\",\"acculturate\",\"accumulate\",\"accuse\",\"accustom\",\"ace\",\"ache\",\"achieve\",\"acidify\",\"acknowledge\",\"acquaint\",\"acquiesce\",\"acquire\",\"acquit\",\"act\",\"action\",\"activate\",\"actualise\",\"actualize\",\"actuate\",\"adapt\",\"add\",\"addle\",\"address\",\"adduce\",\"adhere\",\"adjoin\",\"adjourn\",\"adjudge\",\"adjudicate\",\"adjure\",\"adjust\",\"administer\",\"admire\",\"admit\",\"admonish\",\"adopt\",\"adore\",\"adorn\",\"adsorb\",\"adulterate\",\"adumbrate\",\"advance\",\"advantage\",\"advertise\",\"advise\",\"advocate\",\"aerate\",\"affect\",\"affiliate\",\"affirm\",\"affix\",\"afflict\",\"afford\",\"afforest\",\"affront\",\"age\",\"agglomerate\",\"aggravate\",\"aggregate\",\"agitate\",\"agonise\",\"agonize\",\"agree\",\"aid\",\"ail\",\"aim\",\"air\",\"airbrush\",\"airdrop\",\"airfreight\",\"airlift\",\"alarm\",\"alert\",\"alienate\",\"alight\",\"align\",\"allay\",\"allege\",\"alleviate\",\"allocate\",\"allot\",\"allow\",\"alloy\",\"allude\",\"ally\",\"alphabetise\",\"alphabetize\",\"alter\",\"alternate\",\"amalgamate\",\"amass\",\"amaze\",\"amble\",\"ambush\",\"ameliorate\",\"amend\",\"amortise\",\"amortize\",\"amount\",\"amplify\",\"amputate\",\"amuse\",\"anaesthetise\",\"anaesthetize\",\"analyse\",\"anchor\",\"anesthetize\",\"anger\",\"angle\",\"anglicise\",\"anglicize\",\"animate\",\"anneal\",\"annex\",\"annihilate\",\"annotate\",\"announce\",\"annoy\",\"annul\",\"anodise\",\"anodize\",\"anoint\",\"anonymise\",\"anonymize\",\"answer\",\"antagonise\",\"antagonize\",\"antedate\",\"anthologise\",\"anthologize\",\"anticipate\",\"ape\",\"apologise\",\"apologize\",\"apostrophise\",\"apostrophize\",\"appal\",\"appall\",\"appeal\",\"appear\",\"appease\",\"append\",\"appertain\",\"applaud\",\"apply\",\"appoint\",\"apportion\",\"appraise\",\"appreciate\",\"apprehend\",\"apprentice\",\"apprise\",\"approach\",\"appropriate\",\"approve\",\"approximate\",\"aquaplane\",\"arbitrate\",\"arc\",\"arch\",\"archive\",\"argue\",\"arise\",\"arm\",\"arraign\",\"arrange\",\"array\",\"arrest\",\"arrive\",\"arrogate\",\"art\",\"articulate\",\"ascend\",\"ascertain\",\"ascribe\",\"ask\",\"asphyxiate\",\"aspirate\",\"aspire\",\"assail\",\"assassinate\",\"assault\",\"assay\",\"assemble\",\"assent\",\"assert\",\"assess\",\"assign\",\"assimilate\",\"assist\",\"associate\",\"assuage\",\"assume\",\"assure\",\"asterisk\",\"astonish\",\"astound\",\"atomise\",\"atomize\",\"atone\",\"atrophy\",\"attach\",\"attack\",\"attain\",\"attempt\",\"attend\",\"attenuate\",\"attest\",\"attract\",\"attribute\",\"auction\",\"audit\",\"audition\",\"augment\",\"augur\",\"authenticate\",\"author\",\"authorise\",\"authorize\",\"autograph\",\"automate\",\"autosave\",\"autowind\",\"avail\",\"avenge\",\"aver\",\"average\",\"avert\",\"avoid\",\"avow\",\"await\",\"awake\",\"awaken\",\"award\",\"awe\",\"ax\",\"axe\",\"baa\",\"babble\",\"baby\",\"babysit\",\"back\",\"backcomb\",\"backdate\",\"backfill\",\"backfire\",\"backlight\",\"backpack\",\"backspace\",\"backtrack\",\"badger\",\"baffle\",\"bag\",\"bail\",\"bait\",\"bake\",\"balance\",\"bale\",\"ball\",\"balloon\",\"ballot\",\"balls\",\"bamboozle\",\"ban\",\"band\",\"bandage\",\"bandy\",\"banish\",\"bank\",\"bankroll\",\"bankrupt\",\"banter\",\"baptise\",\"baptize\",\"bar\",\"barbecue\",\"bare\",\"bargain\",\"barge\",\"bark\",\"barnstorm\",\"barrack\",\"barrel\",\"barricade\",\"barter\",\"base\",\"bash\",\"bask\",\"baste\",\"bat\",\"batch\",\"bath\",\"bathe\",\"batten\",\"batter\",\"battle\",\"baulk\",\"bawl\",\"bay\",\"bayonet\",\"be\",\"beach\",\"beam\",\"bean\",\"bear\",\"beard\",\"beat\",\"beatbox\",\"beatboxer\",\"beatify\",\"beautify\",\"beckon\",\"become\",\"bedazzle\",\"bedeck\",\"bedevil\",\"beef\",\"beep\",\"beetle\",\"befall\",\"befit\",\"befog\",\"befriend\",\"beg\",\"beget\",\"beggar\",\"begin\",\"begrudge\",\"beguile\",\"behave\",\"behold\",\"behoove\",\"behove\",\"belabor\",\"belabour\",\"belay\",\"belch\",\"belie\",\"believe\",\"belittle\",\"bellow\",\"belly\",\"bellyache\",\"belong\",\"belt\",\"bemoan\",\"bemuse\",\"benchmark\",\"bend\",\"benefit\",\"bequeath\",\"berate\",\"bereave\",\"berth\",\"beseech\",\"beset\",\"besiege\",\"besmirch\",\"bespatter\",\"bespeak\",\"best\",\"bestir\",\"bestow\",\"bestride\",\"bet\",\"betake\",\"betide\",\"betoken\",\"betray\",\"better\",\"bewail\",\"beware\",\"bewilder\",\"bewitch\",\"bias\",\"bicker\",\"bicycle\",\"bid\",\"bide\",\"biff\",\"bifurcate\",\"big\",\"bike\",\"bilk\",\"bill\",\"billet\",\"billow\",\"bin\",\"bind\",\"binge\",\"biodegrade\",\"bird\",\"bisect\",\"bite\",\"bitmap\",\"bivouac\",\"bivvy\",\"blab\",\"blabber\",\"blacken\",\"blackmail\",\"blag\",\"blame\",\"blanch\",\"blank\",\"blanket\",\"blare\",\"blaspheme\",\"blast\",\"blather\",\"blaze\",\"blazon\",\"bleach\",\"bleat\",\"bleed\",\"bleep\",\"blemish\",\"blench\",\"blend\",\"bless\",\"blight\",\"blind\",\"blindfold\",\"blindfolded\",\"blindside\",\"blink\",\"bliss\",\"blister\",\"blitz\",\"bloat\",\"block\",\"blockade\",\"blog\",\"blood\",\"bloom\",\"bloop\",\"blossom\",\"blot\",\"blow\",\"blub\",\"blubber\",\"bludge\",\"bludgeon\",\"bluff\",\"blunder\",\"blunt\",\"blur\",\"blurt\",\"blush\",\"bluster\",\"board\",\"boast\",\"bob\",\"bobble\",\"bode\",\"bodge\",\"bog\",\"boggle\",\"boil\",\"bolster\",\"bolt\",\"bomb\",\"bombard\",\"bond\",\"bonk\",\"boo\",\"boogie\",\"book\",\"bookmark\",\"boom\",\"boomerang\",\"boost\",\"boot\",\"bootleg\",\"bop\",\"border\",\"bore\",\"born\",\"borrow\",\"boss\",\"botch\",\"bother\",\"bottle\",\"bottleful\",\"bottom\",\"bounce\",\"bound\",\"bow\",\"bowdlerise\",\"bowdlerize\",\"bowl\",\"bowlful\",\"box\",\"boycott\",\"braai\",\"brace\",\"braces\",\"bracket\",\"brag\",\"braid\",\"brain\",\"brainstorm\",\"brainwash\",\"braise\",\"brake\",\"branch\",\"brand\",\"brandish\",\"brave\",\"brawl\",\"bray\",\"brazen\",\"breach\",\"break\",\"breakfast\",\"breathalyse\",\"breathalyze\",\"breathe\",\"breed\",\"breeze\",\"brew\",\"bribe\",\"brick\",\"bridge\",\"bridle\",\"brief\",\"brighten\",\"brim\",\"bring\",\"bristle\",\"broach\",\"broadcast\",\"broaden\",\"broadside\",\"broil\",\"broker\",\"brood\",\"brook\",\"browbeat\",\"browse\",\"bruise\",\"bruit\",\"brush\",\"brutalise\",\"brutalize\",\"bubble\",\"buck\",\"bucket\",\"bucketful\",\"buckle\",\"bud\",\"buddy\",\"budge\",\"budget\",\"buff\",\"buffer\",\"buffet\",\"bug\",\"build\",\"bulge\",\"bulk\",\"bulldoze\",\"bully\",\"bum\",\"bumble\",\"bump\",\"bunch\",\"bundle\",\"bungle\",\"bunk\",\"bunker\",\"bunt\",\"buoy\",\"burble\",\"burden\",\"burgeon\",\"burglarize\",\"burgle\",\"burn\",\"burnish\",\"burp\",\"burrow\",\"burst\",\"bury\",\"bus\",\"bushwhack\",\"busk\",\"bust\",\"bustle\",\"busy\",\"butcher\",\"butt\",\"butter\",\"button\",\"buttonhole\",\"buttress\",\"buy\",\"buzz\",\"buzzing\",\"bypass\",\"cable\",\"cache\",\"cackle\",\"caddie\",\"cadge\",\"cage\",\"cajole\",\"cake\",\"calcify\",\"calculate\",\"calibrate\",\"call\",\"calm\",\"calve\",\"camouflage\",\"camp\",\"campaign\",\"can\",\"canalise\",\"canalize\",\"cancel\",\"cane\",\"cannibalise\",\"cannibalize\",\"cannon\",\"cannulate\",\"canoe\",\"canonise\",\"canonize\",\"canst\",\"cant\",\"canter\",\"canvass\",\"cap\",\"caper\",\"capitalise\",\"capitalize\",\"capitulate\",\"capsize\",\"captain\",\"caption\",\"captivate\",\"capture\",\"caramelise\",\"caramelize\",\"carbonise\",\"carbonize\",\"carburise\",\"carburize\",\"card\",\"care\",\"careen\",\"career\",\"caress\",\"caricature\",\"carjack\",\"carol\",\"carom\",\"carouse\",\"carp\",\"carpet\",\"carpool\",\"carry\",\"cart\",\"cartwheel\",\"carve\",\"cascade\",\"case\",\"cash\",\"cashier\",\"casserole\",\"cast\",\"castigate\",\"catalog\",\"catalogue\",\"catalyse\",\"catalyze\",\"catapult\",\"catch\",\"categorise\",\"categorize\",\"cater\",\"caterwaul\",\"catnap\",\"caucus\",\"caulk\",\"cause\",\"cauterise\",\"cauterize\",\"caution\",\"cave\",\"cavil\",\"cavort\",\"caw\",\"cc\",\"cease\",\"cede\",\"celebrate\",\"cement\",\"censor\",\"censure\",\"centralise\",\"centralize\",\"centre\",\"certificate\",\"certify\",\"chafe\",\"chaff\",\"chain\",\"chair\",\"chalk\",\"challenge\",\"champ\",\"champion\",\"chance\",\"change\",\"channel\",\"chant\",\"chaperon\",\"chaperone\",\"char\",\"characterise\",\"characterize\",\"charbroil\",\"charge\",\"chargesheet\",\"chargrill\",\"charm\",\"chart\",\"charter\",\"chase\",\"chasten\",\"chastise\",\"chat\",\"chatter\",\"chauffeur\",\"cheapen\",\"cheat\",\"cheater\",\"check\",\"checkmate\",\"cheek\",\"cheep\",\"cheer\",\"cherish\",\"chew\",\"chicken\",\"chide\",\"chill\",\"chillax\",\"chime\",\"chip\",\"chirp\",\"chisel\",\"chivvy\",\"chlorinate\",\"choke\",\"chomp\",\"choose\",\"chop\",\"choreograph\",\"chortle\",\"chorus\",\"christen\",\"chromakey\",\"chronicle\",\"chuck\",\"chuckle\",\"chunder\",\"chunter\",\"churn\",\"cinch\",\"circle\",\"circulate\",\"circumnavigate\",\"circumscribe\",\"circumvent\",\"cite\",\"civilise\",\"civilize\",\"clack\",\"claim\",\"clam\",\"clamber\",\"clamor\",\"clamour\",\"clamp\",\"clang\",\"clank\",\"clap\",\"clarify\",\"clash\",\"clasp\",\"class\",\"classify\",\"clatter\",\"claw\",\"clean\",\"cleanse\",\"clear\",\"cleave\",\"clench\",\"clerk\",\"click\",\"climb\",\"clinch\",\"cling\",\"clink\",\"clinking\",\"clip\",\"cloak\",\"clobber\",\"clock\",\"clog\",\"clone\",\"clonk\",\"close\",\"closet\",\"clot\",\"clothe\",\"cloud\",\"clout\",\"clown\",\"club\",\"cluck\",\"clue\",\"clump\",\"clunk\",\"cluster\",\"clutch\",\"clutter\",\"coach\",\"coagulate\",\"coalesce\",\"coarsen\",\"coast\",\"coat\",\"coax\",\"cobble\",\"cocoon\",\"coddle\",\"code\",\"codify\",\"coerce\",\"coexist\",\"cogitate\",\"cohabit\",\"cohere\",\"coil\",\"coin\",\"coincide\",\"collaborate\",\"collapse\",\"collar\",\"collate\",\"collect\",\"collectivise\",\"collectivize\",\"collide\",\"colligate\",\"collocate\",\"collude\",\"colonise\",\"colonize\",\"colorize\",\"colour\",\"comb\",\"combat\",\"combine\",\"combust\",\"come\",\"comfort\",\"command\",\"commandeer\",\"commemorate\",\"commence\",\"commend\",\"comment\",\"commentate\",\"commercialise\",\"commercialize\",\"commingle\",\"commiserate\",\"commission\",\"commit\",\"commune\",\"communicate\",\"commute\",\"compact\",\"compare\",\"compartmentalise\",\"compartmentalize\",\"compel\",\"compensate\",\"compete\",\"compile\",\"complain\",\"complement\",\"complete\",\"complicate\",\"compliment\",\"comply\",\"comport\",\"compose\",\"compost\",\"compound\",\"comprehend\",\"compress\",\"comprise\",\"compromise\",\"compute\",\"computerise\",\"computerize\",\"con\",\"conceal\",\"concede\",\"conceive\",\"concentrate\",\"conceptualise\",\"conceptualize\",\"concern\",\"concertina\",\"conciliate\",\"conclude\",\"concoct\",\"concrete\",\"concur\",\"concuss\",\"condemn\",\"condense\",\"condescend\",\"condition\",\"condone\",\"conduct\",\"cone\",\"confer\",\"confess\",\"confide\",\"configure\",\"confine\",\"confirm\",\"confiscate\",\"conflate\",\"conflict\",\"conform\",\"confound\",\"confront\",\"confuse\",\"confute\",\"congeal\",\"congratulate\",\"congregate\",\"conjecture\",\"conjoin\",\"conjugate\",\"conjure\",\"conk\",\"connect\",\"connive\",\"connote\",\"conquer\",\"conscientise\",\"conscientize\",\"conscript\",\"consecrate\",\"consent\",\"conserve\",\"consider\",\"consign\",\"consist\",\"console\",\"consolidate\",\"consort\",\"conspire\",\"constitute\",\"constrain\",\"constrict\",\"construct\",\"construe\",\"consult\",\"consume\",\"consummate\",\"contact\",\"contain\",\"contaminate\",\"contemplate\",\"contend\",\"content\",\"contest\",\"contextualise\",\"contextualize\",\"continue\",\"contort\",\"contract\",\"contradict\",\"contraindicate\",\"contrast\",\"contravene\",\"contribute\",\"contrive\",\"control\",\"controvert\",\"convalesce\",\"convene\",\"converge\",\"converse\",\"convert\",\"convey\",\"convict\",\"convince\",\"convoke\",\"convulse\",\"coo\",\"cook\",\"cool\",\"coop\",\"cooperate\",\"coordinate\",\"cop\",\"cope\",\"coppice\",\"copy\",\"copyright\",\"cordon\",\"core\",\"cork\",\"corkscrew\",\"corner\",\"corral\",\"correct\",\"correlate\",\"correspond\",\"corrode\",\"corrupt\",\"coruscate\",\"cosh\",\"cosset\",\"cost\",\"cosy\",\"cotton\",\"couch\",\"cough\",\"counsel\",\"count\",\"countenance\",\"counter\",\"counteract\",\"counterbalance\",\"counterfeit\",\"countermand\",\"counterpoint\",\"countersign\",\"couple\",\"courier\",\"course\",\"court\",\"covenant\",\"cover\",\"covet\",\"cow\",\"cower\",\"cozy\",\"crackle\",\"cradle\",\"craft\",\"cram\",\"cramp\",\"crane\",\"crank\",\"crate\",\"crave\",\"crawl\",\"crayon\",\"creak\",\"creaking\",\"cream\",\"crease\",\"create\",\"credential\",\"credit\",\"creep\",\"cremate\",\"creolise\",\"creolize\",\"creosote\",\"crest\",\"crew\",\"crib\",\"crick\",\"criminalise\",\"criminalize\",\"crimp\",\"cringe\",\"crinkle\",\"cripple\",\"crisp\",\"criticise\",\"criticize\",\"critique\",\"croak\",\"crochet\",\"crook\",\"croon\",\"crop\",\"cross\",\"crouch\",\"crow\",\"crowd\",\"crown\",\"cruise\",\"crumble\",\"crumple\",\"crunch\",\"crusade\",\"crush\",\"cry\",\"crystallise\",\"crystallize\",\"cube\",\"cuddle\",\"cudgel\",\"cue\",\"cuff\",\"cull\",\"culminate\",\"cultivate\",\"culture\",\"cup\",\"curate\",\"curb\",\"curdle\",\"cure\",\"curl\",\"curry\",\"curse\",\"curtail\",\"curtain\",\"curtsy\",\"curve\",\"cushion\",\"cuss\",\"customise\",\"customize\",\"cut\",\"cwtch\",\"cycle\",\"dab\",\"dabble\",\"dally\",\"dam\",\"damage\",\"damp\",\"dampen\",\"dance\",\"dandle\",\"dangle\",\"dare\",\"darken\",\"darn\",\"dart\",\"dash\",\"date\",\"daub\",\"daunt\",\"dawdle\",\"dawn\",\"daydream\",\"dazzle\",\"deactivate\",\"deaden\",\"deadhead\",\"deafen\",\"deal\",\"debar\",\"debase\",\"debate\",\"debilitate\",\"debit\",\"debrief\",\"debug\",\"debunk\",\"debut\",\"decamp\",\"decant\",\"decay\",\"deceive\",\"decelerate\",\"decentralise\",\"decentralize\",\"decide\",\"decimalise\",\"decimalize\",\"decimate\",\"decipher\",\"deck\",\"declaim\",\"declare\",\"declassify\",\"decline\",\"declutter\",\"decode\",\"decommission\",\"decompose\",\"decompress\",\"deconsecrate\",\"deconstruct\",\"decontaminate\",\"decontrol\",\"decorate\",\"decouple\",\"decoy\",\"decrease\",\"decree\",\"decriminalise\",\"decriminalize\",\"decry\",\"decrypt\",\"dedicate\",\"deduce\",\"deduct\",\"deejay\",\"deem\",\"deepen\",\"deface\",\"defame\",\"default\",\"defeat\",\"defect\",\"defend\",\"defer\",\"defile\",\"define\",\"deflate\",\"deflect\",\"defog\",\"defoliate\",\"deforest\",\"deform\",\"defrag\",\"defragment\",\"defraud\",\"defray\",\"defrock\",\"defrost\",\"defuse\",\"defy\",\"degenerate\",\"deglaze\",\"degrade\",\"degrease\",\"dehumanise\",\"dehumanize\",\"dehydrate\",\"deify\",\"deign\",\"delay\",\"delegate\",\"delete\",\"deliberate\",\"delight\",\"delimit\",\"delineate\",\"deliquesce\",\"deliver\",\"delouse\",\"delude\",\"deluge\",\"delve\",\"demand\",\"demarcate\",\"demean\",\"demerge\",\"demilitarise\",\"demilitarize\",\"demineralise\",\"demineralize\",\"demist\",\"demo\",\"demob\",\"demobilise\",\"demobilize\",\"democratise\",\"democratize\",\"demolish\",\"demonise\",\"demonize\",\"demonstrate\",\"demoralise\",\"demoralize\",\"demote\",\"demotivate\",\"demur\",\"demystify\",\"denationalise\",\"denationalize\",\"denigrate\",\"denitrify\",\"denominate\",\"denote\",\"denounce\",\"dent\",\"denude\",\"deny\",\"depart\",\"depend\",\"depersonalise\",\"depersonalize\",\"depict\",\"deplane\",\"deplete\",\"deplore\",\"deploy\",\"depopulate\",\"deport\",\"depose\",\"deposit\",\"deprave\",\"deprecate\",\"depreciate\",\"depress\",\"depressurise\",\"depressurize\",\"deprive\",\"depute\",\"deputise\",\"deputize\",\"deracinate\",\"derail\",\"dereference\",\"deregulate\",\"deride\",\"derive\",\"derogate\",\"descale\",\"descend\",\"describe\",\"descry\",\"desecrate\",\"desegregate\",\"deselect\",\"desensitise\",\"desensitize\",\"desert\",\"deserve\",\"design\",\"designate\",\"desire\",\"desist\",\"deskill\",\"desolate\",\"despair\",\"despise\",\"despoil\",\"destabilise\",\"destabilize\",\"destock\",\"destroy\",\"detach\",\"detail\",\"detain\",\"detect\",\"deter\",\"deteriorate\",\"determine\",\"detest\",\"dethrone\",\"detonate\",\"detour\",\"detoxify\",\"detract\",\"detrain\",\"devalue\",\"devastate\",\"develop\",\"deviate\",\"devise\",\"devoice\",\"devolve\",\"devote\",\"devour\",\"diagnose\",\"dial\",\"dice\",\"dicker\",\"dictate\",\"die\",\"diet\",\"differ\",\"differentiate\",\"diffract\",\"diffuse\",\"dig\",\"digest\",\"digitalise\",\"digitalize\",\"digitise\",\"digitize\",\"dignify\",\"digress\",\"dilate\",\"dilute\",\"diluted\",\"dim\",\"diminish\",\"dimple\",\"dine\",\"ding\",\"dip\",\"diphthongise\",\"diphthongize\",\"direct\",\"dirty\",\"dis\",\"disable\",\"disabuse\",\"disadvantage\",\"disaffiliate\",\"disafforest\",\"disagree\",\"disallow\",\"disambiguate\",\"disappear\",\"disappoint\",\"disapprove\",\"disarm\",\"disarrange\",\"disassemble\",\"disassociate\",\"disavow\",\"disband\",\"disbar\",\"disbelieve\",\"disburse\",\"discard\",\"discern\",\"discharge\",\"discipline\",\"disclaim\",\"disclose\",\"discolor\",\"discolour\",\"discomfit\",\"discomfort\",\"discompose\",\"disconcert\",\"disconnect\",\"discontinue\",\"discount\",\"discourage\",\"discourse\",\"discover\",\"discredit\",\"discriminate\",\"discuss\",\"disdain\",\"disembark\",\"disembowel\",\"disenfranchise\",\"disengage\",\"disentangle\",\"disestablish\",\"disgorge\",\"disgrace\",\"disguise\",\"disgust\",\"dish\",\"dishearten\",\"dishonor\",\"dishonour\",\"disillusion\",\"disincentivise\",\"disincentivize\",\"disinfect\",\"disinherit\",\"disinhibit\",\"disintegrate\",\"disinter\",\"disinvest\",\"dislike\",\"dislocate\",\"dislodge\",\"dismantle\",\"dismay\",\"dismember\",\"dismiss\",\"dismount\",\"disobey\",\"disorient\",\"disorientate\",\"disown\",\"disparage\",\"dispatch\",\"dispel\",\"dispense\",\"disperse\",\"displace\",\"display\",\"displease\",\"disport\",\"dispose\",\"dispossess\",\"disprove\",\"dispute\",\"disqualify\",\"disregard\",\"disrespect\",\"disrobe\",\"disrupt\",\"dissect\",\"dissemble\",\"disseminate\",\"dissent\",\"dissimulate\",\"dissipate\",\"dissociate\",\"dissolve\",\"dissuade\",\"distance\",\"distend\",\"distil\",\"distill\",\"distinguish\",\"distort\",\"distract\",\"distress\",\"distribute\",\"distrust\",\"disturb\",\"disunite\",\"ditch\",\"dither\",\"dive\",\"diverge\",\"diversify\",\"divert\",\"divest\",\"divide\",\"divine\",\"divorce\",\"divulge\",\"divvy\",\"do\",\"dob\",\"dock\",\"doctor\",\"document\",\"dodge\",\"doff\",\"dog\",\"dole\",\"doll\",\"dollarise\",\"dollarize\",\"domesticate\",\"dominate\",\"don\",\"donate\",\"doodle\",\"doom\",\"doorstep\",\"dop\",\"dope\",\"dose\",\"doss\",\"dot\",\"dote\",\"double\",\"doubt\",\"douse\",\"dovetail\",\"down\",\"downchange\",\"downgrade\",\"downlink\",\"download\",\"downplay\",\"downshift\",\"downsize\",\"dowse\",\"doze\",\"draft\",\"drag\",\"dragoon\",\"drain\",\"dramatise\",\"dramatize\",\"drape\",\"draught\",\"draw\",\"drawl\",\"dread\",\"dream\",\"dredge\",\"drench\",\"dress\",\"dribble\",\"drift\",\"drill\",\"drink\",\"drip\",\"drive\",\"drivel\",\"drizzle\",\"drone\",\"drool\",\"droop\",\"drop\",\"drown\",\"drowse\",\"drug\",\"drum\",\"dry\",\"dub\",\"duck\",\"duckie\",\"ducks\",\"duel\",\"duff\",\"dull\",\"dumb\",\"dumbfound\",\"dump\",\"dunk\",\"dunt\",\"dupe\",\"duplicate\",\"dust\",\"dwarf\",\"dwell\",\"dwindle\",\"dye\",\"dynamite\",\"earmark\",\"earn\",\"earth\",\"ease\",\"eat\",\"eavesdrop\",\"ebb\",\"echo\",\"eclipse\",\"economise\",\"economize\",\"eddy\",\"edge\",\"edify\",\"edit\",\"editorialise\",\"editorialize\",\"educate\",\"efface\",\"effect\",\"effectuate\",\"egg\",\"eject\",\"eke\",\"elaborate\",\"elapse\",\"elbow\",\"elect\",\"electrify\",\"electrocute\",\"electroplate\",\"elevate\",\"elicit\",\"elide\",\"eliminate\",\"elongate\",\"elope\",\"elucidate\",\"elude\",\"email\",\"emanate\",\"emancipate\",\"embalm\",\"embargo\",\"embark\",\"embarrass\",\"embed\",\"embellish\",\"embezzle\",\"embitter\",\"emblazon\",\"embody\",\"embolden\",\"emboss\",\"embrace\",\"embroider\",\"embroil\",\"emcee\",\"emend\",\"emerge\",\"emigrate\",\"emit\",\"emote\",\"empathise\",\"empathize\",\"emphasise\",\"emphasize\",\"employ\",\"empower\",\"empty\",\"emulate\",\"emulsify\",\"enable\",\"enact\",\"encamp\",\"encapsulate\",\"encase\",\"encash\",\"enchant\",\"encircle\",\"enclose\",\"encode\",\"encompass\",\"encounter\",\"encourage\",\"encroach\",\"encrypt\",\"encumber\",\"end\",\"endanger\",\"endear\",\"endeavor\",\"endeavour\",\"endorse\",\"endow\",\"endure\",\"energise\",\"energize\",\"enervate\",\"enfeeble\",\"enfold\",\"enforce\",\"enfranchise\",\"engage\",\"engender\",\"engineer\",\"engorge\",\"engrave\",\"engross\",\"engulf\",\"enhance\",\"enjoin\",\"enjoy\",\"enlarge\",\"enlighten\",\"enlist\",\"enliven\",\"enmesh\",\"ennoble\",\"enquire\",\"enrage\",\"enrapture\",\"enrich\",\"enrol\",\"enroll\",\"ensconce\",\"enshrine\",\"enshroud\",\"ensnare\",\"ensue\",\"ensure\",\"entail\",\"entangle\",\"enter\",\"entertain\",\"enthral\",\"enthrall\",\"enthrone\",\"enthuse\",\"entice\",\"entitle\",\"entomb\",\"entrance\",\"entrap\",\"entreat\",\"entrench\",\"entrust\",\"entwine\",\"enumerate\",\"enunciate\",\"envelop\",\"envisage\",\"envision\",\"envy\",\"epitomise\",\"epitomize\",\"equal\",\"equalise\",\"equalize\",\"equate\",\"equip\",\"equivocate\",\"eradicate\",\"erase\",\"erode\",\"err\",\"erupt\",\"escalate\",\"escape\",\"eschew\",\"espouse\",\"espy\",\"essay\",\"establish\",\"esteem\",\"estimate\",\"etch\",\"eulogise\",\"eulogize\",\"euthanise\",\"euthanize\",\"evacuate\",\"evade\",\"evaluate\",\"evangelise\",\"evangelize\",\"evaporate\",\"even\",\"eventuate\",\"evict\",\"evidence\",\"evince\",\"eviscerate\",\"evoke\",\"evolve\",\"exacerbate\",\"exact\",\"exaggerate\",\"exalt\",\"examine\",\"exasperate\",\"excavate\",\"exceed\",\"excel\",\"except\",\"excerpt\",\"exchange\",\"excise\",\"excite\",\"exclaim\",\"exclude\",\"excommunicate\",\"excoriate\",\"excrete\",\"exculpate\",\"excuse\",\"execute\",\"exemplify\",\"exempt\",\"exercise\",\"exert\",\"exeunt\",\"exfoliate\",\"exhale\",\"exhaust\",\"exhibit\",\"exhilarate\",\"exhort\",\"exhume\",\"exile\",\"exist\",\"exit\",\"exonerate\",\"exorcise\",\"exorcize\",\"expand\",\"expatiate\",\"expect\",\"expectorate\",\"expedite\",\"expel\",\"expend\",\"experience\",\"experiment\",\"expiate\",\"expire\",\"explain\",\"explicate\",\"explode\",\"exploit\",\"explore\",\"export\",\"expose\",\"expostulate\",\"expound\",\"express\",\"expropriate\",\"expunge\",\"expurgate\",\"extemporise\",\"extemporize\",\"extend\",\"exterminate\",\"externalise\",\"externalize\",\"extinguish\",\"extirpate\",\"extol\",\"extort\",\"extract\",\"extradite\",\"extrapolate\",\"extricate\",\"extrude\",\"exude\",\"exult\",\"eye\",\"eyeball\",\"eyeglasses\",\"fabricate\",\"face\",\"facilitate\",\"factor\",\"factorise\",\"factorize\",\"fade\",\"faff\",\"fail\",\"faint\",\"fake\",\"fall\",\"falsify\",\"falter\",\"familiarise\",\"familiarize\",\"fan\",\"fancy\",\"fantasise\",\"fantasize\",\"fare\",\"farewell\",\"farm\",\"farrow\",\"fascinate\",\"fashion\",\"fast\",\"fasten\",\"father\",\"fathom\",\"fatten\",\"fault\",\"favor\",\"favour\",\"fawn\",\"fax\",\"faze\",\"fear\",\"feast\",\"feather\",\"feature\",\"federate\",\"feed\",\"feel\",\"feign\",\"feint\",\"fell\",\"feminise\",\"feminize\",\"fence\",\"fend\",\"ferment\",\"ferret\",\"ferry\",\"fertilise\",\"fertilize\",\"fess\",\"fester\",\"festoon\",\"fetch\",\"fete\",\"fetter\",\"feud\",\"fib\",\"fictionalise\",\"fictionalize\",\"fiddle\",\"fidget\",\"field\",\"fight\",\"figure\",\"filch\",\"file\",\"filibuster\",\"fill\",\"fillet\",\"film\",\"filter\",\"finagle\",\"finalise\",\"finalize\",\"finance\",\"find\",\"fine\",\"finesse\",\"fingerprint\",\"finish\",\"fire\",\"firebomb\",\"firm\",\"fish\",\"fishtail\",\"fit\",\"fix\",\"fizz\",\"fizzle\",\"flag\",\"flagellate\",\"flail\",\"flake\",\"flame\",\"flank\",\"flap\",\"flare\",\"flash\",\"flat\",\"flatline\",\"flatten\",\"flatter\",\"flaunt\",\"flavour\",\"flay\",\"fleck\",\"flee\",\"fleece\",\"flesh\",\"flex\",\"flick\",\"flicker\",\"flight\",\"flinch\",\"fling\",\"flip\",\"flirt\",\"flit\",\"float\",\"flock\",\"flog\",\"flood\",\"floodlight\",\"floor\",\"flop\",\"floss\",\"flounce\",\"flounder\",\"flour\",\"flourish\",\"flout\",\"flow\",\"flower\",\"flub\",\"fluctuate\",\"fluff\",\"flummox\",\"flunk\",\"flush\",\"fluster\",\"flutter\",\"fly\",\"foal\",\"foam\",\"fob\",\"focalise\",\"focalize\",\"focus\",\"fog\",\"foil\",\"foist\",\"fold\",\"follow\",\"foment\",\"fool\",\"foot\",\"forage\",\"forbear\",\"forbid\",\"force\",\"ford\",\"forearm\",\"forecast\",\"foreclose\",\"foregather\",\"foreground\",\"foresee\",\"foreshadow\",\"foreshorten\",\"forestall\",\"foretell\",\"forewarn\",\"forfeit\",\"forfend\",\"forgather\",\"forge\",\"forget\",\"forgive\",\"forgo\",\"fork\",\"form\",\"formalise\",\"formalize\",\"format\",\"formulate\",\"forsake\",\"forswear\",\"fortify\",\"forward\",\"forwards\",\"fossick\",\"fossilise\",\"fossilize\",\"foster\",\"foul\",\"found\",\"founder\",\"fox\",\"fracture\",\"fragment\",\"frame\",\"franchise\",\"frank\",\"fraternise\",\"fraternize\",\"fray\",\"freak\",\"free\",\"freelance\",\"freeload\",\"freestyle\",\"freewheel\",\"freeze\",\"freight\",\"frequent\",\"freshen\",\"fret\",\"frighten\",\"fringe\",\"frisk\",\"fritter\",\"frizz\",\"frizzle\",\"frogmarch\",\"frolic\",\"front\",\"frost\",\"froth\",\"frown\",\"fruit\",\"frustrate\",\"fry\",\"fudge\",\"fuel\",\"fulfil\",\"fulfill\",\"fulminate\",\"fumble\",\"fume\",\"fumigate\",\"function\",\"fund\",\"funk\",\"funnel\",\"furl\",\"furlough\",\"furnish\",\"furrow\",\"further\",\"fuse\",\"fuss\",\"gab\",\"gabble\",\"gad\",\"gag\",\"gain\",\"gainsay\",\"gall\",\"gallivant\",\"gallop\",\"galumph\",\"galvanise\",\"galvanize\",\"gamble\",\"gambol\",\"gang\",\"gape\",\"garage\",\"garden\",\"gargle\",\"garland\",\"garner\",\"garnish\",\"garrison\",\"garrote\",\"garrotte\",\"gas\",\"gash\",\"gasp\",\"gatecrash\",\"gather\",\"gauge\",\"gawk\",\"gawp\",\"gaze\",\"gazump\",\"gazunder\",\"gear\",\"gee\",\"gel\",\"geld\",\"gen\",\"generalise\",\"generalize\",\"generate\",\"gentrify\",\"genuflect\",\"germinate\",\"gerrymander\",\"gestate\",\"gesticulate\",\"gesture\",\"get\",\"ghost\",\"ghostwrite\",\"gibber\",\"gift\",\"giggle\",\"gild\",\"ginger\",\"gird\",\"girdle\",\"give\",\"gladden\",\"glamorise\",\"glamorize\",\"glance\",\"glare\",\"glass\",\"glaze\",\"gleam\",\"glean\",\"glide\",\"glimmer\",\"glimmering\",\"glimpse\",\"glint\",\"glisten\",\"glister\",\"glitter\",\"gloat\",\"globalise\",\"globalize\",\"glom\",\"glorify\",\"glory\",\"gloss\",\"glow\",\"glower\",\"glue\",\"glug\",\"glut\",\"gnash\",\"gnaw\",\"go\",\"goad\",\"gobble\",\"goggle\",\"goldbrick\",\"goof\",\"google\",\"goose\",\"gore\",\"gorge\",\"gossip\",\"gouge\",\"govern\",\"grab\",\"grace\",\"grade\",\"graduate\",\"graft\",\"grant\",\"grapple\",\"grasp\",\"grass\",\"grate\",\"gratify\",\"gravitate\",\"graze\",\"grease\",\"green\",\"greet\",\"grey\",\"grieve\",\"grill\",\"grimace\",\"grin\",\"grind\",\"grip\",\"gripe\",\"grit\",\"grizzle\",\"groan\",\"grok\",\"groom\",\"grouch\",\"ground\",\"group\",\"grouse\",\"grout\",\"grovel\",\"grow\",\"growl\",\"grub\",\"grudge\",\"grumble\",\"grunt\",\"guarantee\",\"guard\",\"guess\",\"guest\",\"guffaw\",\"guide\",\"guillotine\",\"guilt\",\"gulp\",\"gum\",\"gun\",\"gurgle\",\"gurn\",\"gush\",\"gussy\",\"gust\",\"gut\",\"gutter\",\"guzzle\",\"gybe\",\"gyrate\",\"hack\",\"haemorrhage\",\"haggle\",\"hail\",\"hallmark\",\"halloo\",\"hallucinate\",\"halt\",\"halve\",\"ham\",\"hammer\",\"hamper\",\"hamstring\",\"hand\",\"handcuff\",\"handicap\",\"handle\",\"hang\",\"hanker\",\"happen\",\"harangue\",\"harass\",\"harbor\",\"harbour\",\"harden\",\"hare\",\"hark\",\"harm\",\"harmonise\",\"harmonize\",\"harness\",\"harp\",\"harpoon\",\"harrow\",\"harrumph\",\"harry\",\"harvest\",\"hash\",\"hassle\",\"hasten\",\"hatch\",\"hate\",\"haul\",\"haunt\",\"have\",\"haw\",\"hawk\",\"hazard\",\"haze\",\"head\",\"headbutt\",\"headhunt\",\"headline\",\"heal\",\"heap\",\"hear\",\"hearken\",\"hearten\",\"heat\",\"heave\",\"heckle\",\"hector\",\"hedge\",\"heed\",\"heel\",\"heft\",\"heighten\",\"heist\",\"help\",\"hem\",\"hemorrhage\",\"herald\",\"herd\",\"hesitate\",\"hew\",\"hex\",\"hibernate\",\"hiccough\",\"hiccup\",\"hide\",\"hie\",\"highball\",\"highlight\",\"hightail\",\"hijack\",\"hike\",\"hinder\",\"hinge\",\"hint\",\"hire\",\"hiss\",\"hit\",\"hitch\",\"hitchhike\",\"hive\",\"hoard\",\"hoax\",\"hobble\",\"hobnob\",\"hock\",\"hog\",\"hoick\",\"hoist\",\"hold\",\"hole\",\"holiday\",\"holler\",\"hollow\",\"holster\",\"home\",\"homeschool\",\"homestead\",\"hone\",\"honeymoon\",\"honk\",\"honour\",\"hoodwink\",\"hoof\",\"hook\",\"hoon\",\"hoot\",\"hoover\",\"hop\",\"hope\",\"horn\",\"horrify\",\"horse\",\"horsewhip\",\"hose\",\"hosepipe\",\"hospitalise\",\"hospitalize\",\"host\",\"hot\",\"hotfoot\",\"hound\",\"house\",\"hover\",\"howl\",\"huddle\",\"huff\",\"hug\",\"hull\",\"hum\",\"humanise\",\"humanize\",\"humble\",\"humiliate\",\"humour\",\"hunch\",\"hunger\",\"hunker\",\"hunt\",\"hurdle\",\"hurl\",\"hurry\",\"hurt\",\"hurtle\",\"husband\",\"hush\",\"husk\",\"hustle\",\"hybridise\",\"hybridize\",\"hydrate\",\"hydroplane\",\"hype\",\"hyperventilate\",\"hyphenate\",\"hypnotise\",\"hypnotize\",\"hypothesise\",\"hypothesize\",\"ice\",\"iconify\",\"idealise\",\"idealize\",\"ideate\",\"identify\",\"idle\",\"idolise\",\"idolize\",\"ignite\",\"ignore\",\"illuminate\",\"illumine\",\"illustrate\",\"imagine\",\"imagineer\",\"imbibe\",\"imbue\",\"imitate\",\"immerse\",\"immigrate\",\"immobilise\",\"immobilize\",\"immolate\",\"immortalise\",\"immortalize\",\"immunise\",\"immunize\",\"immure\",\"impact\",\"impair\",\"impale\",\"impanel\",\"impart\",\"impeach\",\"impede\",\"impel\",\"imperil\",\"impersonate\",\"impinge\",\"implant\",\"implement\",\"implicate\",\"implode\",\"implore\",\"imply\",\"import\",\"importune\",\"impose\",\"impound\",\"impoverish\",\"impress\",\"imprint\",\"imprison\",\"improve\",\"improvise\",\"impugn\",\"inactivate\",\"inaugurate\",\"incapacitate\",\"incarcerate\",\"incarnate\",\"incense\",\"incentivise\",\"incentivize\",\"inch\",\"incinerate\",\"incise\",\"incite\",\"incline\",\"include\",\"incommode\",\"inconvenience\",\"incorporate\",\"increase\",\"incriminate\",\"incubate\",\"inculcate\",\"incur\",\"indemnify\",\"indent\",\"index\",\"indicate\",\"indict\",\"individualise\",\"individualize\",\"individuate\",\"indoctrinate\",\"induce\",\"induct\",\"indulge\",\"industrialise\",\"industrialize\",\"infantilise\",\"infantilize\",\"infect\",\"infer\",\"infest\",\"infill\",\"infiltrate\",\"inflame\",\"inflate\",\"inflect\",\"inflict\",\"influence\",\"inform\",\"infringe\",\"infuriate\",\"infuse\",\"ingest\",\"ingratiate\",\"inhabit\",\"inhale\",\"inhere\",\"inherit\",\"inhibit\",\"initial\",\"initialise\",\"initialize\",\"initiate\",\"inject\",\"injure\",\"ink\",\"inlay\",\"innovate\",\"inoculate\",\"input\",\"inscribe\",\"insert\",\"inset\",\"insinuate\",\"insist\",\"inspect\",\"inspire\",\"install\",\"instance\",\"instigate\",\"instil\",\"instill\",\"institute\",\"institutionalise\",\"institutionalize\",\"instruct\",\"insulate\",\"insult\",\"insure\",\"integrate\",\"intend\",\"intensify\",\"inter\",\"interact\",\"intercede\",\"intercept\",\"interchange\",\"interconnect\",\"intercut\",\"interest\",\"interface\",\"interfere\",\"interject\",\"interlace\",\"interleave\",\"interlink\",\"interlock\",\"intermarry\",\"intermesh\",\"intermingle\",\"intermix\",\"intern\",\"internalise\",\"internalize\",\"internationalise\",\"internationalize\",\"interpenetrate\",\"interpolate\",\"interpose\",\"interpret\",\"interrelate\",\"interrogate\",\"interrupt\",\"intersect\",\"intersperse\",\"intertwine\",\"intervene\",\"interview\",\"interweave\",\"interwork\",\"intimate\",\"intimidate\",\"intone\",\"intoxicate\",\"intrigue\",\"introduce\",\"intrude\",\"intubate\",\"intuit\",\"inundate\",\"inure\",\"invade\",\"invalid\",\"invalidate\",\"inveigh\",\"inveigle\",\"invent\",\"inventory\",\"invert\",\"invest\",\"investigate\",\"invigilate\",\"invigorate\",\"invite\",\"invoice\",\"invoke\",\"involve\",\"ionise\",\"ionize\",\"irk\",\"iron\",\"irradiate\",\"irrigate\",\"irritate\",\"irrupt\",\"isolate\",\"issue\",\"italicise\",\"italicize\",\"itch\",\"itemise\",\"itemize\",\"iterate\",\"jab\",\"jabber\",\"jack\",\"jackknife\",\"jail\",\"jam\",\"jangle\",\"jar\",\"jaw\",\"jaywalk\",\"jazz\",\"jeer\",\"jell\",\"jeopardise\",\"jeopardize\",\"jest\",\"jet\",\"jettison\",\"jib\",\"jibe\",\"jiggle\",\"jilt\",\"jingle\",\"jink\",\"jinx\",\"jive\",\"jockey\",\"jog\",\"joggle\",\"join\",\"joint\",\"joke\",\"jol\",\"jolly\",\"jolt\",\"josh\",\"jostle\",\"jot\",\"journey\",\"joust\",\"judder\",\"judge\",\"juggle\",\"juice\",\"jumble\",\"jump\",\"junk\",\"justify\",\"jut\",\"juxtapose\",\"keel\",\"keelhaul\",\"keen\",\"keep\",\"ken\",\"key\",\"keyboard\",\"kibitz\",\"kick\",\"kid\",\"kindle\",\"kip\",\"kiss\",\"kit\",\"kite\",\"klap\",\"kludge\",\"knacker\",\"knead\",\"knee\",\"kneecap\",\"kneel\",\"knife\",\"knight\",\"knit\",\"knock\",\"knot\",\"know\",\"knuckle\",\"kowtow\",\"kvetch\",\"label\",\"labour\",\"lace\",\"lacerate\",\"lack\",\"lacquer\",\"ladder\",\"ladle\",\"lag\",\"lam\",\"lamb\",\"lambast\",\"lambaste\",\"lament\",\"lamp\",\"lampoon\",\"lance\",\"land\",\"lands\",\"landscape\",\"languish\",\"lap\",\"lapse\",\"lard\",\"large\",\"lark\",\"lash\",\"lasso\",\"last\",\"latch\",\"lather\",\"laud\",\"laugh\",\"launch\",\"launder\",\"lavish\",\"lay\",\"layer\",\"laze\",\"leach\",\"lead\",\"leaf\",\"leaflet\",\"leak\",\"lean\",\"leap\",\"leapfrog\",\"learn\",\"lease\",\"leash\",\"leave\",\"leaven\",\"lecture\",\"leer\",\"leg\",\"legalise\",\"legalize\",\"legislate\",\"legitimise\",\"legitimize\",\"lend\",\"lengthen\",\"lessen\",\"let\",\"letter\",\"letterbox\",\"level\",\"lever\",\"leverage\",\"levitate\",\"levy\",\"liaise\",\"libel\",\"liberalise\",\"liberalize\",\"liberate\",\"license\",\"lick\",\"lie\",\"lift\",\"ligate\",\"light\",\"lighten\",\"like\",\"liken\",\"limber\",\"lime\",\"limit\",\"limp\",\"line\",\"linger\",\"link\",\"lionise\",\"lionize\",\"liquefy\",\"liquidate\",\"liquidise\",\"liquidize\",\"lisp\",\"list\",\"listen\",\"litigate\",\"litter\",\"live\",\"liven\",\"load\",\"loads\",\"loaf\",\"loan\",\"loathe\",\"lob\",\"lobby\",\"lobotomise\",\"lobotomize\",\"localise\",\"localize\",\"locate\",\"lock\",\"lodge\",\"loft\",\"log\",\"loiter\",\"loll\",\"lollop\",\"long\",\"look\",\"looks\",\"loom\",\"loop\",\"loose\",\"loosen\",\"loot\",\"lop\",\"lope\",\"lord\",\"lose\",\"lounge\",\"lour\",\"louse\",\"love\",\"low\",\"lowball\",\"lower\",\"lubricate\",\"luck\",\"lug\",\"lull\",\"lumber\",\"lump\",\"lunch\",\"lunge\",\"lurch\",\"lure\",\"lurk\",\"luxuriate\",\"macerate\",\"machine\",\"madden\",\"magic\",\"magnetise\",\"magnetize\",\"magnify\",\"mail\",\"maim\",\"mainline\",\"mainstream\",\"maintain\",\"major\",\"make\",\"malfunction\",\"malign\",\"malinger\",\"maltreat\",\"man\",\"manacle\",\"manage\",\"mandate\",\"mangle\",\"manhandle\",\"manicure\",\"manifest\",\"manipulate\",\"manoeuvre\",\"mantle\",\"manufacture\",\"manure\",\"map\",\"mar\",\"march\",\"marginalise\",\"marginalize\",\"marinate\",\"mark\",\"market\",\"maroon\",\"marry\",\"marshal\",\"martyr\",\"marvel\",\"masculinise\",\"masculinize\",\"mash\",\"mask\",\"masquerade\",\"mass\",\"massacre\",\"massage\",\"master\",\"mastermind\",\"masticate\",\"match\",\"materialise\",\"materialize\",\"matriculate\",\"matter\",\"mature\",\"maul\",\"maunder\",\"max\",\"maximise\",\"maximize\",\"mean\",\"meander\",\"measure\",\"mechanise\",\"mechanize\",\"medal\",\"meddle\",\"mediate\",\"medicate\",\"meditate\",\"meet\",\"meld\",\"mellow\",\"melt\",\"memorialise\",\"memorialize\",\"memorise\",\"memorize\",\"menace\",\"mend\",\"mention\",\"meow\",\"mercerise\",\"mercerize\",\"merchandise\",\"merge\",\"merit\",\"mesh\",\"mesmerise\",\"mesmerize\",\"mess\",\"message\",\"metabolise\",\"metabolize\",\"metamorphose\",\"mete\",\"meter\",\"methinks\",\"mew\",\"mewl\",\"miaow\",\"microblog\",\"microchip\",\"micromanage\",\"microwave\",\"micturate\",\"migrate\",\"militarise\",\"militarize\",\"militate\",\"milk\",\"mill\",\"mime\",\"mimic\",\"mince\",\"mind\",\"mine\",\"mingle\",\"miniaturise\",\"miniaturize\",\"minimise\",\"minimize\",\"minister\",\"minor\",\"mint\",\"minute\",\"mirror\",\"misapply\",\"misappropriate\",\"misbehave\",\"miscalculate\",\"miscast\",\"misconceive\",\"misconstrue\",\"miscount\",\"misdiagnose\",\"misdial\",\"misdirect\",\"misfile\",\"misfire\",\"misgovern\",\"mishandle\",\"mishear\",\"mishit\",\"misinform\",\"misinterpret\",\"misjudge\",\"miskey\",\"mislay\",\"mislead\",\"mismanage\",\"mismatch\",\"misname\",\"misplace\",\"misplay\",\"mispronounce\",\"misquote\",\"misread\",\"misreport\",\"misrepresent\",\"miss\",\"mission\",\"misspell\",\"misspend\",\"mist\",\"mistake\",\"mistime\",\"mistreat\",\"mistrust\",\"misunderstand\",\"misuse\",\"mitigate\",\"mitre\",\"mix\",\"moan\",\"mob\",\"mobilise\",\"mobilize\",\"mock\",\"mod\",\"model\",\"moderate\",\"modernise\",\"modernize\",\"modify\",\"modulate\",\"moisten\",\"moisturise\",\"moisturize\",\"mold\",\"molder\",\"mollify\",\"mollycoddle\",\"molt\",\"monitor\",\"monopolise\",\"monopolize\",\"moo\",\"mooch\",\"moon\",\"moonlight\",\"moonwalk\",\"moor\",\"moot\",\"mop\",\"mope\",\"moralise\",\"moralize\",\"morph\",\"mortar\",\"mortgage\",\"mortify\",\"mosey\",\"mosh\",\"mothball\",\"mother\",\"motion\",\"motivate\",\"motor\",\"mould\",\"moulder\",\"moult\",\"mount\",\"mourn\",\"mouse\",\"mouth\",\"move\",\"movies\",\"mow\",\"muck\",\"muddle\",\"muddy\",\"muffle\",\"mug\",\"mulch\",\"mull\",\"multicast\",\"multiply\",\"multitask\",\"mumble\",\"mumbling\",\"mummify\",\"munch\",\"murmur\",\"murmuring\",\"murmurings\",\"muscle\",\"muse\",\"mushroom\",\"muss\",\"muster\",\"mutate\",\"mute\",\"mutilate\",\"mutiny\",\"mutter\",\"muzzle\",\"mystify\",\"nab\",\"nag\",\"nail\",\"name\",\"namecheck\",\"nap\",\"narrate\",\"narrow\",\"narrowcast\",\"nasalise\",\"nasalize\",\"nationalise\",\"nationalize\",\"natter\",\"naturalise\",\"naturalize\",\"nauseate\",\"navigate\",\"near\",\"nearer\",\"nearest\",\"neaten\",\"necessitate\",\"neck\",\"necklace\",\"need\",\"needle\",\"negate\",\"negative\",\"neglect\",\"negotiate\",\"neigh\",\"nerve\",\"nest\",\"nestle\",\"net\",\"nettle\",\"network\",\"neuter\",\"neutralise\",\"neutralize\",\"nibble\",\"nick\",\"nickname\",\"nitrify\",\"nix\",\"nobble\",\"nod\",\"nominalize\",\"nominate\",\"norm\",\"normalise\",\"normalize\",\"nose\",\"nosedive\",\"nosh\",\"notarise\",\"notarize\",\"notch\",\"note\",\"notice\",\"notify\",\"nourish\",\"nudge\",\"nuke\",\"nullify\",\"numb\",\"number\",\"nurse\",\"nurture\",\"nut\",\"nuzzle\",\"obey\",\"obfuscate\",\"object\",\"objectify\",\"oblige\",\"obliterate\",\"obscure\",\"observe\",\"obsess\",\"obstruct\",\"obtain\",\"obtrude\",\"obviate\",\"occasion\",\"occlude\",\"occupy\",\"occur\",\"off\",\"offend\",\"offer\",\"officiate\",\"offload\",\"offset\",\"offshore\",\"ogle\",\"oil\",\"okay\",\"omit\",\"ooze\",\"open\",\"operate\",\"opine\",\"oppose\",\"oppress\",\"opt\",\"optimise\",\"optimize\",\"option\",\"orbit\",\"orchestrate\",\"ordain\",\"order\",\"organise\",\"organize\",\"orient\",\"orientate\",\"originate\",\"ornament\",\"orphan\",\"oscillate\",\"ossify\",\"ostracise\",\"ostracize\",\"oust\",\"out\",\"outbid\",\"outclass\",\"outdistance\",\"outdo\",\"outface\",\"outfit\",\"outflank\",\"outfox\",\"outgrow\",\"outgun\",\"outlast\",\"outlaw\",\"outline\",\"outlive\",\"outmaneuver\",\"outmanoeuvre\",\"outnumber\",\"outpace\",\"outperform\",\"outplay\",\"outpoint\",\"output\",\"outrage\",\"outrank\",\"outrun\",\"outsell\",\"outshine\",\"outsmart\",\"outsource\",\"outstay\",\"outstrip\",\"outvote\",\"outweigh\",\"outwit\",\"overachieve\",\"overact\",\"overawe\",\"overbalance\",\"overbook\",\"overburden\",\"overcharge\",\"overcome\",\"overcompensate\",\"overcook\",\"overdevelop\",\"overdo\",\"overdose\",\"overdraw\",\"overdub\",\"overeat\",\"overemphasize\",\"overestimate\",\"overexpose\",\"overextend\",\"overfeed\",\"overflow\",\"overfly\",\"overgeneralise\",\"overgeneralize\",\"overgraze\",\"overhang\",\"overhaul\",\"overhear\",\"overheat\",\"overindulge\",\"overlap\",\"overlay\",\"overlie\",\"overload\",\"overlook\",\"overpay\",\"overplay\",\"overpower\",\"overprint\",\"overproduce\",\"overrate\",\"overreach\",\"overreact\",\"override\",\"overrule\",\"overrun\",\"oversee\",\"oversell\",\"overshadow\",\"overshoot\",\"oversimplify\",\"oversleep\",\"overspend\",\"overstate\",\"overstay\",\"overstep\",\"overstock\",\"overstretch\",\"overtake\",\"overtax\",\"overthrow\",\"overtrain\",\"overturn\",\"overuse\",\"overvalue\",\"overwhelm\",\"overwinter\",\"overwork\",\"overwrite\",\"owe\",\"own\",\"oxidise\",\"oxidize\",\"oxygenate\",\"pace\",\"pacify\",\"pack\",\"package\",\"packetise\",\"packetize\",\"pad\",\"paddle\",\"padlock\",\"page\",\"paginate\",\"pailful\",\"pain\",\"paint\",\"pair\",\"pal\",\"palatalise\",\"palatalize\",\"pale\",\"pall\",\"palliate\",\"palm\",\"palpate\",\"palpitate\",\"pamper\",\"pan\",\"pander\",\"panel\",\"panhandle\",\"panic\",\"pant\",\"paper\",\"parachute\",\"parade\",\"parallel\",\"paralyse\",\"paralyze\",\"paraphrase\",\"parboil\",\"parcel\",\"parch\",\"pardon\",\"pare\",\"park\",\"parlay\",\"parley\",\"parody\",\"parole\",\"parrot\",\"parry\",\"parse\",\"part\",\"partake\",\"participate\",\"particularise\",\"particularize\",\"partition\",\"partner\",\"party\",\"pass\",\"passivise\",\"passivize\",\"paste\",\"pasteurise\",\"pasteurize\",\"pasture\",\"pat\",\"patch\",\"patent\",\"patrol\",\"patronise\",\"patronize\",\"patter\",\"pattern\",\"pause\",\"pave\",\"paw\",\"pawn\",\"pay\",\"peak\",\"peal\",\"pedal\",\"peddle\",\"pedestrianise\",\"pedestrianize\",\"peek\",\"peel\",\"peep\",\"peer\",\"peg\",\"pelt\",\"pen\",\"penalise\",\"penalize\",\"pencil\",\"pension\",\"people\",\"pep\",\"pepper\",\"perambulate\",\"perceive\",\"perch\",\"percolate\",\"perfect\",\"perforate\",\"perform\",\"perfume\",\"perish\",\"perjure\",\"perk\",\"perm\",\"permeate\",\"permit\",\"perpetrate\",\"perpetuate\",\"perplex\",\"persecute\",\"persevere\",\"persist\",\"personalise\",\"personalize\",\"personify\",\"perspire\",\"persuade\",\"pertain\",\"perturb\",\"peruse\",\"pervade\",\"pervert\",\"pester\",\"pet\",\"peter\",\"petition\",\"petrify\",\"phase\",\"philosophise\",\"philosophize\",\"phone\",\"photocopy\",\"photograph\",\"photoshop\",\"photosynthesise\",\"photosynthesize\",\"phrase\",\"pick\",\"picket\",\"pickle\",\"picnic\",\"picture\",\"picturise\",\"picturize\",\"piddle\",\"piece\",\"pierce\",\"pig\",\"pigeonhole\",\"piggyback\",\"pike\",\"pile\",\"pilfer\",\"pill\",\"pillage\",\"pillory\",\"pillow\",\"pilot\",\"pin\",\"pinch\",\"pine\",\"ping\",\"pinion\",\"pink\",\"pinpoint\",\"pioneer\",\"pip\",\"pipe\",\"pique\",\"pirate\",\"pirouette\",\"pit\",\"pitch\",\"pity\",\"pivot\",\"pixelate\",\"pixellate\",\"placate\",\"place\",\"plagiarise\",\"plagiarize\",\"plague\",\"plait\",\"plan\",\"plane\",\"plant\",\"plaster\",\"plasticise\",\"plasticize\",\"plate\",\"plateau\",\"play\",\"plead\",\"please\",\"pledge\",\"plight\",\"plod\",\"plonk\",\"plop\",\"plot\",\"plough\",\"pluck\",\"plug\",\"plumb\",\"plummet\",\"plump\",\"plunder\",\"plunge\",\"plunk\",\"pluralise\",\"pluralize\",\"ply\",\"poach\",\"pocket\",\"point\",\"poise\",\"poison\",\"poke\",\"polarise\",\"polarize\",\"pole\",\"poleax\",\"poleaxe\",\"police\",\"polish\",\"politicise\",\"politicize\",\"poll\",\"pollard\",\"pollinate\",\"pollute\",\"polymerise\",\"polymerize\",\"ponce\",\"ponder\",\"pong\",\"pontificate\",\"pony\",\"pooh\",\"pool\",\"pootle\",\"pop\",\"popularise\",\"popularize\",\"populate\",\"pore\",\"port\",\"portend\",\"portion\",\"portray\",\"pose\",\"posit\",\"position\",\"possess\",\"posset\",\"post\",\"postmark\",\"postpone\",\"postulate\",\"posture\",\"pot\",\"potter\",\"pounce\",\"pound\",\"pour\",\"pout\",\"powder\",\"power\",\"practice\",\"practise\",\"praise\",\"praises\",\"prance\",\"prang\",\"prate\",\"prattle\",\"pray\",\"preach\",\"precede\",\"precipitate\",\"precis\",\"preclude\",\"predate\",\"predecease\",\"predetermine\",\"predicate\",\"predict\",\"predispose\",\"predominate\",\"preen\",\"preface\",\"prefer\",\"prefigure\",\"prefix\",\"preheat\",\"prejudge\",\"prejudice\",\"preload\",\"premaster\",\"premiere\",\"preoccupy\",\"prep\",\"prepare\",\"prepone\",\"preregister\",\"presage\",\"prescind\",\"prescribe\",\"preselect\",\"presell\",\"present\",\"preserve\",\"preset\",\"preside\",\"press\",\"pressure\",\"pressurise\",\"pressurize\",\"presume\",\"presuppose\",\"pretend\",\"pretest\",\"prettify\",\"prevail\",\"prevaricate\",\"prevent\",\"preview\",\"prey\",\"price\",\"prickle\",\"pride\",\"prime\",\"primp\",\"print\",\"prioritise\",\"prioritize\",\"prise\",\"privatise\",\"privatize\",\"privilege\",\"prize\",\"probate\",\"probe\",\"proceed\",\"process\",\"proclaim\",\"procrastinate\",\"procreate\",\"proctor\",\"procure\",\"prod\",\"produce\",\"profane\",\"profess\",\"professionalise\",\"professionalize\",\"proffer\",\"profile\",\"profit\",\"program\",\"programme\",\"progress\",\"prohibit\",\"project\",\"proliferate\",\"prolong\",\"promenade\",\"promise\",\"promote\",\"prompt\",\"promulgate\",\"pronounce\",\"proof\",\"proofread\",\"prop\",\"propagandise\",\"propagandize\",\"propagate\",\"propel\",\"prophesy\",\"propitiate\",\"propose\",\"proposition\",\"propound\",\"proscribe\",\"prosecute\",\"proselytise\",\"proselytize\",\"prospect\",\"prosper\",\"prostrate\",\"protect\",\"protest\",\"protrude\",\"prove\",\"provide\",\"provision\",\"provoke\",\"prowl\",\"prune\",\"pry\",\"psych\",\"psychoanalyse\",\"publicise\",\"publicize\",\"publish\",\"pucker\",\"puff\",\"pull\",\"pullulate\",\"pulp\",\"pulsate\",\"pulse\",\"pulverise\",\"pulverize\",\"pummel\",\"pump\",\"pun\",\"punch\",\"punctuate\",\"puncture\",\"punish\",\"punt\",\"pupate\",\"purchase\",\"purge\",\"purify\",\"purl\",\"purloin\",\"purport\",\"purr\",\"purse\",\"pursue\",\"purvey\",\"push\",\"pussyfoot\",\"put\",\"putrefy\",\"putt\",\"putter\",\"puzzle\",\"quack\",\"quadruple\",\"quaff\",\"quail\",\"quake\",\"qualify\",\"quantify\",\"quarantine\",\"quarrel\",\"quarry\",\"quarter\",\"quarterback\",\"quash\",\"quaver\",\"quell\",\"quench\",\"query\",\"quest\",\"question\",\"queue\",\"quibble\",\"quicken\",\"quiet\",\"quieten\",\"quintuple\",\"quip\",\"quirk\",\"quit\",\"quiver\",\"quiz\",\"quote\",\"quoth\",\"rabbit\",\"race\",\"rack\",\"radiate\",\"radicalise\",\"radicalize\",\"radio\",\"raffle\",\"rag\",\"rage\",\"raid\",\"rail\",\"railroad\",\"rain\",\"raise\",\"rake\",\"rally\",\"ram\",\"ramble\",\"ramp\",\"rampage\",\"randomise\",\"randomize\",\"range\",\"rank\",\"rankle\",\"ransack\",\"ransom\",\"rant\",\"rap\",\"rappel\",\"rasp\",\"rasterise\",\"rasterize\",\"rat\",\"ratchet\",\"rate\",\"ratify\",\"ration\",\"rationalise\",\"rationalize\",\"rattle\",\"ravage\",\"rave\",\"ravel\",\"ravish\",\"raze\",\"razz\",\"reach\",\"reacquaint\",\"react\",\"reactivate\",\"read\",\"readdress\",\"readies\",\"readjust\",\"readmit\",\"ready\",\"reaffirm\",\"realign\",\"realise\",\"realize\",\"reallocate\",\"ream\",\"reanimate\",\"reap\",\"reappear\",\"reapply\",\"reappoint\",\"reappraise\",\"rear\",\"rearm\",\"rearrange\",\"reason\",\"reassemble\",\"reassert\",\"reassess\",\"reassign\",\"reassure\",\"reawaken\",\"rebel\",\"reboot\",\"reborn\",\"rebound\",\"rebrand\",\"rebuff\",\"rebuild\",\"rebuke\",\"rebut\",\"recall\",\"recant\",\"recap\",\"recapitulate\",\"recapture\",\"recast\",\"recede\",\"receive\",\"recess\",\"recharge\",\"reciprocate\",\"recite\",\"reckon\",\"reclaim\",\"reclassify\",\"recline\",\"recognise\",\"recognize\",\"recoil\",\"recollect\",\"recommence\",\"recommend\",\"recompense\",\"reconcile\",\"recondition\",\"reconfigure\",\"reconfirm\",\"reconnect\",\"reconnoitre\",\"reconquer\",\"reconsider\",\"reconstitute\",\"reconstruct\",\"reconvene\",\"record\",\"recount\",\"recoup\",\"recover\",\"recreate\",\"recrudesce\",\"recruit\",\"rectify\",\"recuperate\",\"recur\",\"recycle\",\"redact\",\"redden\",\"redecorate\",\"redeem\",\"redefine\",\"redeploy\",\"redesign\",\"redevelop\",\"redial\",\"redirect\",\"rediscover\",\"redistribute\",\"redistrict\",\"redo\",\"redouble\",\"redound\",\"redraft\",\"redraw\",\"redress\",\"reduce\",\"reduplicate\",\"reef\",\"reek\",\"reel\",\"ref\",\"refer\",\"referee\",\"reference\",\"refill\",\"refinance\",\"refine\",\"refit\",\"reflate\",\"reflect\",\"refloat\",\"refocus\",\"reform\",\"reformat\",\"reformulate\",\"refract\",\"refrain\",\"refresh\",\"refrigerate\",\"refuel\",\"refund\",\"refurbish\",\"refuse\",\"refute\",\"regain\",\"regale\",\"regard\",\"regenerate\",\"register\",\"regress\",\"regret\",\"regroup\",\"regularise\",\"regularize\",\"regulate\",\"regurgitate\",\"rehabilitate\",\"rehash\",\"rehear\",\"rehearse\",\"reheat\",\"rehome\",\"rehouse\",\"reign\",\"reignite\",\"reimburse\",\"rein\",\"reincarnate\",\"reinforce\",\"reinstate\",\"reinterpret\",\"reintroduce\",\"reinvent\",\"reinvest\",\"reinvigorate\",\"reissue\",\"reiterate\",\"reject\",\"rejig\",\"rejigger\",\"rejoice\",\"rejoin\",\"rejuvenate\",\"rekindle\",\"relapse\",\"relate\",\"relaunch\",\"relax\",\"relay\",\"release\",\"relegate\",\"relent\",\"relieve\",\"relinquish\",\"relish\",\"relive\",\"reload\",\"relocate\",\"rely\",\"remain\",\"remainder\",\"remake\",\"remand\",\"remap\",\"remark\",\"remarry\",\"remaster\",\"remediate\",\"remedy\",\"remember\",\"remind\",\"reminisce\",\"remit\",\"remix\",\"remodel\",\"remonstrate\",\"remortgage\",\"remould\",\"remount\",\"remove\",\"remunerate\",\"rename\",\"rend\",\"render\",\"rendezvous\",\"renege\",\"renew\",\"renounce\",\"renovate\",\"rent\",\"reoccur\",\"reoffend\",\"reopen\",\"reorder\",\"reorganise\",\"reorganize\",\"reorient\",\"repackage\",\"repair\",\"repatriate\",\"repay\",\"repeal\",\"repeat\",\"repel\",\"repent\",\"rephrase\",\"replace\",\"replay\",\"replenish\",\"replicate\",\"reply\",\"report\",\"repose\",\"repossess\",\"represent\",\"repress\",\"reprieve\",\"reprimand\",\"reprint\",\"reproach\",\"reprocess\",\"reproduce\",\"reprove\",\"repudiate\",\"repulse\",\"repurpose\",\"request\",\"require\",\"requisition\",\"requite\",\"rerun\",\"reschedule\",\"rescind\",\"rescue\",\"research\",\"researches\",\"resect\",\"resell\",\"resemble\",\"resent\",\"reserve\",\"reset\",\"resettle\",\"reshape\",\"reshuffle\",\"reside\",\"resign\",\"resist\",\"resit\",\"resize\",\"reskill\",\"resolve\",\"resonate\",\"resort\",\"resound\",\"resource\",\"respect\",\"respire\",\"respond\",\"respray\",\"rest\",\"restart\",\"restate\",\"restock\",\"restore\",\"restrain\",\"restrict\",\"restring\",\"restructure\",\"result\",\"resume\",\"resupply\",\"resurface\",\"resurrect\",\"resuscitate\",\"retail\",\"retain\",\"retake\",\"retaliate\",\"retch\",\"retell\",\"retest\",\"rethink\",\"retire\",\"retool\",\"retort\",\"retouch\",\"retrace\",\"retract\",\"retrain\",\"retreat\",\"retrench\",\"retrieve\",\"retrofit\",\"retry\",\"return\",\"reunify\",\"reunite\",\"reuse\",\"rev\",\"revalue\",\"revamp\",\"reveal\",\"revel\",\"revenge\",\"reverberate\",\"revere\",\"reverse\",\"revert\",\"review\",\"revile\",\"revise\",\"revisit\",\"revitalise\",\"revitalize\",\"revive\",\"revivify\",\"revoke\",\"revolt\",\"revolutionise\",\"revolutionize\",\"revolve\",\"reward\",\"rewind\",\"rewire\",\"reword\",\"rework\",\"rewrite\",\"rhapsodise\",\"rhapsodize\",\"rhyme\",\"rib\",\"rick\",\"ricochet\",\"rid\",\"riddle\",\"ride\",\"ridge\",\"ridicule\",\"riffle\",\"rifle\",\"rig\",\"right\",\"rightsize\",\"rile\",\"rim\",\"ring\",\"rinse\",\"riot\",\"rip\",\"ripen\",\"riposte\",\"ripple\",\"rise\",\"risk\",\"ritualise\",\"ritualize\",\"rival\",\"rivet\",\"roam\",\"roar\",\"roast\",\"rob\",\"robe\",\"rock\",\"rocket\",\"roger\",\"roll\",\"romance\",\"romanticise\",\"romanticize\",\"romp\",\"roof\",\"room\",\"roost\",\"root\",\"rope\",\"rosin\",\"roster\",\"rot\",\"rotate\",\"rouge\",\"rough\",\"roughen\",\"roughhouse\",\"round\",\"rouse\",\"roust\",\"rout\",\"route\",\"rove\",\"row\",\"rub\",\"rubberneck\",\"rubbish\",\"ruck\",\"rue\",\"ruffle\",\"ruin\",\"ruins\",\"rule\",\"rumble\",\"ruminate\",\"rummage\",\"rumor\",\"rumour\",\"rumple\",\"run\",\"rupture\",\"rush\",\"rust\",\"rustle\",\"sabotage\",\"sack\",\"sacrifice\",\"sadden\",\"saddle\",\"safeguard\",\"sag\",\"sail\",\"salaam\",\"salivate\",\"sally\",\"salt\",\"salute\",\"salvage\",\"salve\",\"sample\",\"sanctify\",\"sanction\",\"sand\",\"sandbag\",\"sandblast\",\"sandpaper\",\"sandwich\",\"sanitise\",\"sanitize\",\"sap\",\"sashay\",\"sass\",\"sate\",\"satiate\",\"satirise\",\"satirize\",\"satisfy\",\"saturate\",\"saunter\",\"savage\",\"save\",\"savor\",\"savour\",\"saw\",\"say\",\"scald\",\"scale\",\"scallop\",\"scalp\",\"scamper\",\"scan\",\"scandalise\",\"scandalize\",\"scapegoat\",\"scar\",\"scare\",\"scarf\",\"scarify\",\"scarper\",\"scatter\",\"scattering\",\"scavenge\",\"scent\",\"schedule\",\"schematise\",\"schematize\",\"scheme\",\"schlep\",\"schlepp\",\"schmooze\",\"school\",\"schtup\",\"schuss\",\"scoff\",\"scold\",\"scoop\",\"scoot\",\"scope\",\"scorch\",\"score\",\"scorn\",\"scotch\",\"scour\",\"scourge\",\"scout\",\"scowl\",\"scrabble\",\"scram\",\"scramble\",\"scrap\",\"scrape\",\"scratch\",\"scrawl\",\"scream\",\"screech\",\"screen\",\"screw\",\"scribble\",\"scrimp\",\"script\",\"scroll\",\"scrounge\",\"scrub\",\"scrummage\",\"scrunch\",\"scruple\",\"scrutinise\",\"scrutinize\",\"scud\",\"scuff\",\"scuffle\",\"scull\",\"sculpt\",\"scupper\",\"scurry\",\"scuttle\",\"scythe\",\"seal\",\"sealift\",\"sear\",\"search\",\"season\",\"seat\",\"secede\",\"seclude\",\"second\",\"secrete\",\"section\",\"secularise\",\"secularize\",\"secure\",\"sedate\",\"see\",\"seed\",\"seek\",\"seep\",\"seethe\",\"segment\",\"segregate\",\"segue\",\"seize\",\"select\",\"sell\",\"sellotape\",\"semaphore\",\"send\",\"sensationalise\",\"sensationalize\",\"sense\",\"sensitise\",\"sensitize\",\"sentence\",\"sentimentalise\",\"sentimentalize\",\"separate\",\"sequence\",\"sequester\",\"sequestrate\",\"serenade\",\"serialise\",\"serialize\",\"sermonise\",\"sermonize\",\"serve\",\"service\",\"set\",\"settle\",\"sever\",\"sew\",\"shack\",\"shackle\",\"shade\",\"shadow\",\"shaft\",\"shake\",\"shalt\",\"sham\",\"shamble\",\"shame\",\"shampoo\",\"shanghai\",\"shape\",\"share\",\"sharpen\",\"shatter\",\"shave\",\"shear\",\"sheathe\",\"shed\",\"sheer\",\"shell\",\"shellac\",\"shelter\",\"shelve\",\"shepherd\",\"shield\",\"shift\",\"shimmer\",\"shimmy\",\"shin\",\"shine\",\"shinny\",\"ship\",\"shipwreck\",\"shirk\",\"shiver\",\"shock\",\"shoe\",\"shoehorn\",\"shoo\",\"shoot\",\"shop\",\"shoplift\",\"shore\",\"short\",\"shorten\",\"shortlist\",\"shoulder\",\"shout\",\"shove\",\"shovel\",\"show\",\"showboat\",\"showcase\",\"shower\",\"shred\",\"shriek\",\"shrill\",\"shrink\",\"shrivel\",\"shroom\",\"shroud\",\"shrug\",\"shuck\",\"shudder\",\"shuffle\",\"shun\",\"shunt\",\"shush\",\"shut\",\"shuttle\",\"shy\",\"sic\",\"sick\",\"sicken\",\"side\",\"sideline\",\"sidestep\",\"sideswipe\",\"sidetrack\",\"sidle\",\"sieve\",\"sift\",\"sigh\",\"sight\",\"sightsee\",\"sign\",\"signal\",\"signify\",\"signpost\",\"silence\",\"silhouette\",\"silt\",\"silver\",\"simmer\",\"simper\",\"simplify\",\"simulate\",\"simulcast\",\"sin\",\"sing\",\"singe\",\"single\",\"sink\",\"sip\",\"siphon\",\"sire\",\"sit\",\"site\",\"situate\",\"size\",\"sizzle\",\"skate\",\"skateboard\",\"skedaddle\",\"sketch\",\"skew\",\"skewer\",\"ski\",\"skid\",\"skim\",\"skimp\",\"skin\",\"skip\",\"skipper\",\"skirmish\",\"skirt\",\"skitter\",\"skive\",\"skivvy\",\"skulk\",\"sky\",\"skyjack\",\"skyrocket\",\"slack\",\"slacken\",\"slake\",\"slam\",\"slander\",\"slap\",\"slash\",\"slate\",\"slather\",\"sledge\",\"sleek\",\"sleep\",\"sleepwalk\",\"sleet\",\"slew\",\"slice\",\"slick\",\"slide\",\"slight\",\"slim\",\"sling\",\"slink\",\"slip\",\"slit\",\"slither\",\"slob\",\"slobber\",\"slog\",\"slop\",\"slope\",\"slosh\",\"slot\",\"slouch\",\"slough\",\"slow\",\"slug\",\"sluice\",\"slum\",\"slumber\",\"slump\",\"slur\",\"slurp\",\"smart\",\"smarten\",\"smash\",\"smear\",\"smell\",\"smelt\",\"smile\",\"smirk\",\"smite\",\"smoke\",\"smooch\",\"smoodge\",\"smooth\",\"smother\",\"smoulder\",\"smudge\",\"smuggle\",\"snack\",\"snaffle\",\"snag\",\"snaggle\",\"snake\",\"snap\",\"snare\",\"snarf\",\"snarl\",\"sneak\",\"sneer\",\"sneeze\",\"snicker\",\"sniff\",\"sniffle\",\"snip\",\"snipe\",\"snitch\",\"snivel\",\"snooker\",\"snoop\",\"snooper\",\"snooze\",\"snore\",\"snorkel\",\"snort\",\"snow\",\"snowball\",\"snowplough\",\"snowplow\",\"snub\",\"snuffle\",\"snuffling\",\"snuggle\",\"soak\",\"soap\",\"soar\",\"sober\",\"socialise\",\"socialize\",\"sock\",\"sod\",\"soften\",\"soil\",\"sojourn\",\"solace\",\"solder\",\"soldier\",\"sole\",\"solemnise\",\"solemnize\",\"solicit\",\"solidify\",\"soliloquize\",\"solve\",\"somersault\",\"soothe\",\"sorrow\",\"sort\",\"sough\",\"sound\",\"soundproof\",\"soup\",\"sour\",\"source\",\"sow\",\"space\",\"span\",\"spangle\",\"spar\",\"spare\",\"spark\",\"sparkle\",\"spatter\",\"spattering\",\"spawn\",\"spay\",\"speak\",\"spear\",\"spearhead\",\"spec\",\"specialise\",\"specialize\",\"specify\",\"spectacles\",\"spectate\",\"speculate\",\"speed\",\"spell\",\"spellcheck\",\"spend\",\"spew\",\"spice\",\"spiff\",\"spike\",\"spill\",\"spin\",\"spiral\",\"spirit\",\"spit\",\"spite\",\"splash\",\"splatter\",\"splay\",\"splice\",\"splinter\",\"split\",\"splosh\",\"splurge\",\"splutter\",\"spoil\",\"sponge\",\"sponsor\",\"spoof\",\"spook\",\"spool\",\"spoon\",\"sport\",\"sports\",\"spot\",\"spotlight\",\"spout\",\"sprain\",\"sprawl\",\"spray\",\"spread\",\"spring\",\"springboard\",\"sprinkle\",\"sprint\",\"spritz\",\"sprout\",\"spruce\",\"spur\",\"spurn\",\"spurt\",\"sputter\",\"spy\",\"squabble\",\"squall\",\"squander\",\"square\",\"squash\",\"squat\",\"squawk\",\"squeak\",\"squeal\",\"squeeze\",\"squelch\",\"squint\",\"squirm\",\"squirrel\",\"squirt\",\"squish\",\"stab\",\"stabilise\",\"stabilize\",\"stable\",\"stables\",\"stack\",\"staff\",\"stage\",\"stagger\",\"stagnate\",\"stain\",\"stake\",\"stalk\",\"stall\",\"stammer\",\"stamp\",\"stampede\",\"stanch\",\"stand\",\"standardise\",\"standardize\",\"staple\",\"star\",\"starch\",\"stare\",\"start\",\"startle\",\"starve\",\"stash\",\"state\",\"statement\",\"station\",\"staunch\",\"stave\",\"stay\",\"steady\",\"steal\",\"steam\",\"steamroller\",\"steel\",\"steep\",\"steepen\",\"steer\",\"stem\",\"stencil\",\"step\",\"stereotype\",\"sterilise\",\"sterilize\",\"stew\",\"stick\",\"stickybeak\",\"stiff\",\"stiffen\",\"stifle\",\"stigmatise\",\"stigmatize\",\"still\",\"stimulate\",\"sting\",\"stinger\",\"stink\",\"stint\",\"stipple\",\"stipulate\",\"stir\",\"stitch\",\"stock\",\"stockpile\",\"stoke\",\"stomach\",\"stomp\",\"stone\",\"stonewall\",\"stoop\",\"stop\",\"stopper\",\"store\",\"storm\",\"storyboard\",\"stow\",\"straddle\",\"strafe\",\"straggle\",\"straighten\",\"strain\",\"strand\",\"strangle\",\"strap\",\"stratify\",\"stravage\",\"stravaig\",\"stray\",\"streak\",\"stream\",\"streamline\",\"strengthen\",\"stress\",\"stretch\",\"stretcher\",\"strew\",\"stride\",\"strike\",\"string\",\"strip\",\"strive\",\"stroll\",\"structure\",\"struggle\",\"strum\",\"strut\",\"stub\",\"stud\",\"study\",\"stuff\",\"stultify\",\"stumble\",\"stump\",\"stun\",\"stunt\",\"stupefy\",\"stutter\",\"style\",\"stymie\",\"sub\",\"subcontract\",\"subdivide\",\"subdue\",\"subedit\",\"subject\",\"sublet\",\"sublimate\",\"submerge\",\"submit\",\"subordinate\",\"suborn\",\"subpoena\",\"subscribe\",\"subside\",\"subsidise\",\"subsidize\",\"subsist\",\"substantiate\",\"substitute\",\"subsume\",\"subtend\",\"subtitle\",\"subtract\",\"subvert\",\"succeed\",\"succor\",\"succour\",\"succumb\",\"suckle\",\"suction\",\"sue\",\"suffer\",\"suffice\",\"suffocate\",\"suffuse\",\"sugar\",\"suggest\",\"suit\",\"sulk\",\"sulks\",\"sully\",\"sum\",\"summarise\",\"summarize\",\"summon\",\"summons\",\"sun\",\"sunbathe\",\"sunder\",\"sunset\",\"sup\",\"superimpose\",\"superintend\",\"superpose\",\"supersede\",\"supersize\",\"supersized\",\"supervene\",\"supervise\",\"supplant\",\"supplement\",\"supply\",\"support\",\"suppose\",\"suppress\",\"suppurate\",\"surcharge\",\"surf\",\"surface\",\"surge\",\"surmise\",\"surmount\",\"surpass\",\"surprise\",\"surrender\",\"surround\",\"survey\",\"survive\",\"suspect\",\"suspend\",\"suspenders\",\"suss\",\"sustain\",\"suture\",\"swab\",\"swaddle\",\"swagger\",\"swamp\",\"swan\",\"swank\",\"swap\",\"swarm\",\"swat\",\"swath\",\"swathe\",\"sway\",\"swear\",\"sweat\",\"sweep\",\"sweeps\",\"sweeten\",\"swell\",\"swelter\",\"swerve\",\"swig\",\"swill\",\"swim\",\"swindle\",\"swing\",\"swipe\",\"swirl\",\"swish\",\"switch\",\"swivel\",\"swoon\",\"swoop\",\"swoosh\",\"swot\",\"symbolise\",\"symbolize\",\"sympathise\",\"sympathize\",\"symptomize\",\"synchronise\",\"synchronize\",\"syndicate\",\"synthesise\",\"synthesize\",\"syringe\",\"systematise\",\"systematize\",\"tab\",\"table\",\"tabulate\",\"tack\",\"tackle\",\"tag\",\"tail\",\"tailgate\",\"tailor\",\"taint\",\"take\",\"talk\",\"tally\",\"tame\",\"tamp\",\"tamper\",\"tan\",\"tangle\",\"tango\",\"tank\",\"tankful\",\"tantalise\",\"tantalize\",\"tap\",\"tape\",\"taper\",\"tar\",\"target\",\"tarmac\",\"tarnish\",\"tarry\",\"tart\",\"task\",\"taste\",\"tattle\",\"tattoo\",\"taunt\",\"tauten\",\"tax\",\"taxi\",\"taxicab\",\"teach\",\"team\",\"tear\",\"tease\",\"tee\",\"teem\",\"teeter\",\"teethe\",\"telecast\",\"telecommute\",\"teleconference\",\"telegraph\",\"telemeter\",\"teleoperate\",\"telephone\",\"teleport\",\"telescope\",\"televise\",\"telex\",\"tell\",\"telnet\",\"temp\",\"temper\",\"temporise\",\"temporize\",\"tempt\",\"tenant\",\"tend\",\"tender\",\"tenderise\",\"tenderize\",\"tense\",\"tension\",\"tergiversate\",\"term\",\"terminate\",\"terraform\",\"terrify\",\"terrorise\",\"terrorize\",\"test\",\"testify\",\"tether\",\"text\",\"thank\",\"thatch\",\"thaw\",\"theorise\",\"theorize\",\"thicken\",\"thin\",\"think\",\"thirst\",\"thrash\",\"thread\",\"threaten\",\"thresh\",\"thrill\",\"thrive\",\"throb\",\"throbbing\",\"throng\",\"throttle\",\"throw\",\"thud\",\"thumb\",\"thump\",\"thunder\",\"thwack\",\"thwart\",\"tick\",\"ticket\",\"tickle\",\"tide\",\"tidy\",\"tie\",\"tighten\",\"tile\",\"till\",\"tilt\",\"time\",\"timetable\",\"tinge\",\"tingle\",\"tingling\",\"tinker\",\"tinkling\",\"tint\",\"tip\",\"tippex\",\"tipple\",\"tiptoe\",\"tire\",\"titillate\",\"titivate\",\"title\",\"titrate\",\"titter\",\"toady\",\"toast\",\"toboggan\",\"toddle\",\"toe\",\"tog\",\"toggle\",\"toil\",\"tolerate\",\"toll\",\"tone\",\"tongue\",\"tonify\",\"tool\",\"toot\",\"tootle\",\"top\",\"topple\",\"torch\",\"torment\",\"torpedo\",\"toss\",\"tot\",\"total\",\"tote\",\"totter\",\"touch\",\"tough\",\"toughen\",\"tour\",\"tousle\",\"tout\",\"tow\",\"towel\",\"tower\",\"toy\",\"trace\",\"track\",\"trade\",\"traduce\",\"traffic\",\"trail\",\"train\",\"traipse\",\"trammel\",\"trample\",\"trampoline\",\"tranquilize\",\"tranquillize\",\"transact\",\"transcend\",\"transcribe\",\"transfer\",\"transfigure\",\"transfix\",\"transform\",\"transfuse\",\"transgress\",\"transit\",\"translate\",\"transliterate\",\"transmit\",\"transmogrify\",\"transmute\",\"transpire\",\"transplant\",\"transport\",\"transpose\",\"trap\",\"trash\",\"traumatise\",\"traumatize\",\"travel\",\"traverse\",\"trawl\",\"tread\",\"treasure\",\"treat\",\"treble\",\"trek\",\"tremble\",\"trembling\",\"trepan\",\"trespass\",\"trial\",\"trick\",\"trickle\",\"trifle\",\"trigger\",\"trill\",\"trim\",\"trip\",\"triple\",\"triumph\",\"trivialise\",\"trivialize\",\"troll\",\"tromp\",\"troop\",\"trot\",\"trouble\",\"troubleshoot\",\"trounce\",\"trouser\",\"truant\",\"truck\",\"trudge\",\"trump\",\"trumpet\",\"truncate\",\"trundle\",\"truss\",\"trust\",\"try\",\"tuck\",\"tug\",\"tugboat\",\"tumble\",\"tune\",\"tunnel\",\"turbocharge\",\"turf\",\"turn\",\"tussle\",\"tut\",\"tutor\",\"twang\",\"tweak\",\"tweet\",\"twiddle\",\"twig\",\"twin\",\"twine\",\"twinkle\",\"twirl\",\"twist\",\"twitch\",\"twitter\",\"twittering\",\"type\",\"typecast\",\"typeset\",\"typify\",\"tyrannise\",\"tyrannize\",\"ulcerate\",\"ululate\",\"ump\",\"umpire\",\"unbalance\",\"unban\",\"unbend\",\"unblock\",\"unbuckle\",\"unburden\",\"unbutton\",\"uncoil\",\"uncork\",\"uncouple\",\"uncover\",\"uncurl\",\"undelete\",\"underachieve\",\"underbid\",\"undercharge\",\"undercook\",\"undercut\",\"underestimate\",\"underestimation\",\"underexpose\",\"undergo\",\"underlie\",\"underline\",\"undermine\",\"underpay\",\"underperform\",\"underpin\",\"underplay\",\"underrate\",\"underscore\",\"undersell\",\"undershoot\",\"underspend\",\"understand\",\"understate\",\"understudy\",\"undertake\",\"undervalue\",\"underwrite\",\"undo\",\"undock\",\"undress\",\"undulate\",\"unearth\",\"unfasten\",\"unfold\",\"unfreeze\",\"unfurl\",\"unhand\",\"unhinge\",\"unhitch\",\"unhook\",\"unify\",\"uninstall\",\"unionise\",\"unionize\",\"unite\",\"unlace\",\"unlearn\",\"unleash\",\"unload\",\"unlock\",\"unloose\",\"unloosen\",\"unmask\",\"unnerve\",\"unpack\",\"unpick\",\"unplug\",\"unravel\",\"unroll\",\"unsaddle\",\"unscramble\",\"unscrew\",\"unseat\",\"unsettle\",\"unsubscribe\",\"untangle\",\"untie\",\"unveil\",\"unwind\",\"unwrap\",\"unzip\",\"up\",\"upbraid\",\"upchange\",\"upchuck\",\"update\",\"upend\",\"upgrade\",\"uphold\",\"upholster\",\"uplift\",\"upload\",\"uproot\",\"upsell\",\"upset\",\"upshift\",\"upskill\",\"upstage\",\"urge\",\"use\",\"usher\",\"usurp\",\"utilise\",\"utilize\",\"utter\",\"vacate\",\"vacation\",\"vaccinate\",\"vacillate\",\"vacuum\",\"valet\",\"validate\",\"value\",\"vamoose\",\"vandalise\",\"vandalize\",\"vanish\",\"vanquish\",\"vaporise\",\"vaporize\",\"varnish\",\"vary\",\"vault\",\"veer\",\"veg\",\"vegetate\",\"veil\",\"vend\",\"veneer\",\"venerate\",\"vent\",\"ventilate\",\"venture\",\"verbalise\",\"verbalize\",\"verge\",\"verify\",\"versify\",\"vest\",\"vet\",\"veto\",\"vex\",\"vibrate\",\"victimise\",\"victimize\",\"vide\",\"video\",\"videotape\",\"vie\",\"view\",\"viewing\",\"vilify\",\"vindicate\",\"violate\",\"visit\",\"visualise\",\"visualize\",\"vitiate\",\"vitrify\",\"vocalize\",\"voice\",\"void\",\"volley\",\"volumise\",\"volumize\",\"volunteer\",\"vote\",\"vouch\",\"vouchsafe\",\"vow\",\"voyage\",\"vulgarise\",\"vulgarize\",\"waddle\",\"wade\",\"waffle\",\"waft\",\"wag\",\"wage\",\"wager\",\"waggle\",\"wail\",\"wait\",\"waive\",\"wake\",\"wakeboard\",\"waken\",\"walk\",\"wall\",\"wallop\",\"wallow\",\"wallpaper\",\"waltz\",\"wander\",\"wane\",\"wangle\",\"want\",\"warble\",\"ward\",\"warm\",\"warn\",\"warp\",\"warrant\",\"wash\",\"wassail\",\"waste\",\"watch\",\"water\",\"waterproof\",\"waterski\",\"wave\",\"waver\",\"wax\",\"waylay\",\"weaken\",\"wean\",\"weaponise\",\"weaponize\",\"wear\",\"weary\",\"weasel\",\"weather\",\"weatherise\",\"weatherize\",\"weave\",\"wed\",\"wedge\",\"weekend\",\"weep\",\"weigh\",\"weight\",\"weird\",\"welch\",\"welcome\",\"weld\",\"well\",\"welly\",\"wend\",\"westernise\",\"westernize\",\"wet\",\"whack\",\"wheedle\",\"wheel\",\"wheeze\",\"whelp\",\"whet\",\"whiff\",\"while\",\"whilst\",\"whimper\",\"whine\",\"whinge\",\"whinny\",\"whip\",\"whirl\",\"whirr\",\"whirring\",\"whisk\",\"whisper\",\"whispering\",\"whistle\",\"whiten\",\"whitewash\",\"whittle\",\"whoop\",\"whoosh\",\"whup\",\"wick\",\"widen\",\"widow\",\"wield\",\"wig\",\"wiggle\",\"wildcat\",\"will\",\"wilt\",\"wimp\",\"win\",\"wince\",\"winch\",\"wind\",\"winds\",\"windsurf\",\"wine\",\"wing\",\"wink\",\"winkle\",\"winnow\",\"winter\",\"wipe\",\"wire\",\"wiretap\",\"wise\",\"wisecrack\",\"wish\",\"withdraw\",\"wither\",\"withhold\",\"withstand\",\"witness\",\"witter\",\"wobble\",\"wolf\",\"wonder\",\"woo\",\"woof\",\"word\",\"work\",\"worm\",\"worry\",\"worsen\",\"worship\",\"worst\",\"wound\",\"wow\",\"wowee\",\"wrangle\",\"wrap\",\"wreak\",\"wreathe\",\"wreck\",\"wrench\",\"wrest\",\"wrestle\",\"wriggle\",\"wring\",\"wrinkle\",\"writ\",\"write\",\"writhe\",\"wrong\",\"wrought\",\"xerox\",\"yack\",\"yak\",\"yap\",\"yaw\",\"yawn\",\"yearn\",\"yell\",\"yellow\",\"yelp\",\"yield\",\"yodel\",\"yoke\",\"yomp\",\"yowl\",\"yuppify\",\"zap\",\"zero\",\"zigzag\",\"zing\",\"zip\",\"zone\",\"zoom\"],SKe={adjective:vKe,adverb:gKe,conjunction:yKe,interjection:bKe,noun:xKe,preposition:CKe,verb:FKe},wKe=SKe,EKe={airline:RWe,animal:qWe,app:eGe,cell_phone:nGe,color:oGe,commerce:dGe,company:CGe,database:wGe,date:_Ge,finance:HGe,hacker:qGe,internet:eUe,location:xUe,lorem:SUe,metadata:EUe,music:TUe,person:JUe,phone_number:eKe,science:aKe,team:sKe,vehicle:mKe,word:wKe},DKe=EKe,AKe=Object.defineProperty,_Ke=(e,t,r)=>t in e?AKe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qr=(e,t,r)=>(_Ke(e,typeof t!=\"symbol\"?t+\"\":t,r),r),Rr=class extends Error{};function TKe(e){let t=Object.getPrototypeOf(e);do{for(let r of Object.getOwnPropertyNames(t))typeof e[r]==\"function\"&&r!==\"constructor\"&&(e[r]=e[r].bind(e));t=Object.getPrototypeOf(t)}while(t!==Object.prototype)}var Bg=class{constructor(t){this.faker=t,TKe(this)}},$a=class extends Bg{constructor(t){super(t),this.faker=t}},que=(e=>(e.Narrowbody=\"narrowbody\",e.Regional=\"regional\",e.Widebody=\"widebody\",e))(que||{}),IKe=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],kKe=[\"0\",\"O\",\"1\",\"I\",\"L\"],RKe={regional:20,narrowbody:35,widebody:60},MKe={regional:[\"A\",\"B\",\"C\",\"D\"],narrowbody:[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\"],widebody:[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"J\",\"K\"]},PKe=class extends $a{airport(){return this.faker.helpers.arrayElement(this.faker.definitions.airline.airport)}airline(){return this.faker.helpers.arrayElement(this.faker.definitions.airline.airline)}airplane(){return this.faker.helpers.arrayElement(this.faker.definitions.airline.airplane)}recordLocator(t={}){let{allowNumerics:r=!1,allowVisuallySimilarCharacters:n=!1}=t,a=[];return r||a.push(...IKe),n||a.push(...kKe),this.faker.string.alphanumeric({length:6,casing:\"upper\",exclude:a})}seat(t={}){let{aircraftType:r=\"narrowbody\"}=t,n=RKe[r],a=MKe[r],i=this.faker.number.int({min:1,max:n}),o=this.faker.helpers.arrayElement(a);return`${i}${o}`}aircraftType(){return this.faker.helpers.enumValue(que)}flightNumber(t={}){let{length:r={min:1,max:4},addLeadingZeros:n=!1}=t,a=this.faker.string.numeric({length:r,allowLeadingZeros:!1});return n?a.padStart(4,\"0\"):a}},Xue=(e=>(e.SRGB=\"sRGB\",e.DisplayP3=\"display-p3\",e.REC2020=\"rec2020\",e.A98RGB=\"a98-rgb\",e.ProphotoRGB=\"prophoto-rgb\",e))(Xue||{}),Jue=(e=>(e.RGB=\"rgb\",e.RGBA=\"rgba\",e.HSL=\"hsl\",e.HSLA=\"hsla\",e.HWB=\"hwb\",e.CMYK=\"cmyk\",e.LAB=\"lab\",e.LCH=\"lch\",e.COLOR=\"color\",e))(Jue||{});function OKe(e,t){let{prefix:r,casing:n}=t;switch(n){case\"upper\":e=e.toUpperCase();break;case\"lower\":e=e.toLowerCase();break}return r&&(e=r+e),e}function Zue(e){return e.map(t=>{if(t%1!==0){let r=new ArrayBuffer(4);new DataView(r).setFloat32(0,t);let n=new Uint8Array(r);return Zue([...n]).replace(/ /g,\"\")}return(t>>>0).toString(2).padStart(8,\"0\")}).join(\" \")}function BKe(e,t=\"rgb\",r=\"sRGB\"){let n=a=>Math.round(a*100);switch(t){case\"rgba\":return`rgba(${e[0]}, ${e[1]}, ${e[2]}, ${e[3]})`;case\"color\":return`color(${r} ${e[0]} ${e[1]} ${e[2]})`;case\"cmyk\":return`cmyk(${n(e[0])}%, ${n(e[1])}%, ${n(e[2])}%, ${n(e[3])}%)`;case\"hsl\":return`hsl(${e[0]}deg ${n(e[1])}% ${n(e[2])}%)`;case\"hsla\":return`hsl(${e[0]}deg ${n(e[1])}% ${n(e[2])}% / ${n(e[3])})`;case\"hwb\":return`hwb(${e[0]} ${n(e[1])}% ${n(e[2])}%)`;case\"lab\":return`lab(${n(e[0])}% ${e[1]} ${e[2]})`;case\"lch\":return`lch(${n(e[0])}% ${e[1]} ${e[2]})`;case\"rgb\":default:return`rgb(${e[0]}, ${e[1]}, ${e[2]})`}}function ph(e,t,r=\"rgb\",n=\"sRGB\"){switch(t){case\"css\":return BKe(e,r,n);case\"binary\":return Zue(e);case\"decimal\":default:return e}}var NKe=class extends $a{human(){return this.faker.helpers.arrayElement(this.faker.definitions.color.human)}space(){return this.faker.helpers.arrayElement(this.faker.definitions.color.space)}cssSupportedFunction(){return this.faker.helpers.enumValue(Jue)}cssSupportedSpace(){return this.faker.helpers.enumValue(Xue)}rgb(t={}){let{format:r=\"hex\",includeAlpha:n=!1,prefix:a=\"#\",casing:i=\"lower\"}=t,o,l=\"rgb\";return r===\"hex\"?(o=this.faker.string.hexadecimal({length:n?8:6,prefix:\"\"}),o=OKe(o,{prefix:a,casing:i}),o):(o=Array.from({length:3},()=>this.faker.number.int(255)),n&&(o.push(this.faker.number.float({multipleOf:.01})),l=\"rgba\"),ph(o,r,l))}cmyk(t){let r=Array.from({length:4},()=>this.faker.number.float({multipleOf:.01}));return ph(r,(t==null?void 0:t.format)||\"decimal\",\"cmyk\")}hsl(t){let r=[this.faker.number.int(360)];for(let n=0;n<(t!=null&&t.includeAlpha?3:2);n++)r.push(this.faker.number.float({multipleOf:.01}));return ph(r,(t==null?void 0:t.format)||\"decimal\",t!=null&&t.includeAlpha?\"hsla\":\"hsl\")}hwb(t){let r=[this.faker.number.int(360)];for(let n=0;n<2;n++)r.push(this.faker.number.float({multipleOf:.01}));return ph(r,(t==null?void 0:t.format)||\"decimal\",\"hwb\")}lab(t){let r=[this.faker.number.float({multipleOf:1e-6})];for(let n=0;n<2;n++)r.push(this.faker.number.float({min:-100,max:100,multipleOf:1e-4}));return ph(r,(t==null?void 0:t.format)||\"decimal\",\"lab\")}lch(t){let r=[this.faker.number.float({multipleOf:1e-6})];for(let n=0;n<2;n++)r.push(this.faker.number.float({max:230,multipleOf:.1}));return ph(r,(t==null?void 0:t.format)||\"decimal\",\"lch\")}colorByCSSColorSpace(t){(t==null?void 0:t.format)===\"css\"&&!(t!=null&&t.space)&&(t={...t,space:\"sRGB\"});let r=Array.from({length:3},()=>this.faker.number.float({multipleOf:1e-4}));return ph(r,(t==null?void 0:t.format)||\"decimal\",\"color\",t==null?void 0:t.space)}},YE=()=>{throw new Rr(\"You cannot edit the locale data on the faker instance\")};function $Ke(e){let t={};return new Proxy(e,{has(){return!0},get(r,n){return typeof n==\"symbol\"||n===\"nodeType\"?r[n]:n in t?t[n]:t[n]=LKe(n,r[n])},set:YE,deleteProperty:YE})}function qE(e,...t){if(e===null)throw new Rr(`The locale data for '${t.join(\".\")}' aren't applicable to this locale.\n If you think this is a bug, please report it at: https://github.com/faker-js/faker`);if(e===void 0)throw new Rr(`The locale data for '${t.join(\".\")}' are missing in this locale.\n Please contribute the missing data to the project or use a locale/Faker instance that has these data.\n For more information see https://fakerjs.dev/guide/localization.html`)}function LKe(e,t={}){return new Proxy(t,{has(r,n){return r[n]!=null},get(r,n){let a=r[n];return typeof n==\"symbol\"||n===\"nodeType\"||qE(a,e,n.toString()),a},set:YE,deleteProperty:YE})}var Que=(e=>(e.Female=\"female\",e.Male=\"male\",e))(Que||{});function D1(e,t,r,{generic:n,female:a,male:i},o){let l;switch(r){case\"female\":l=a;break;case\"male\":l=i;break;default:l=n;break}return l==null&&(a!=null&&i!=null?l=e.helpers.arrayElement([a,i]):l=n,qE(l,`person.{${o}, female_${o}, male_${o}}`)),t(l)}var jKe=class extends $a{firstName(t){var r;let{first_name:n,female_first_name:a,male_first_name:i}=(r=this.faker.rawDefinitions.person)!=null?r:{};return D1(this.faker,this.faker.helpers.arrayElement,t,{generic:n,female:a,male:i},\"first_name\")}lastName(t){var r;let{last_name:n,female_last_name:a,male_last_name:i,last_name_pattern:o,male_last_name_pattern:l,female_last_name_pattern:s}=(r=this.faker.rawDefinitions.person)!=null?r:{};if(o!=null||l!=null||s!=null){let u=D1(this.faker,this.faker.helpers.weightedArrayElement,t,{generic:o,female:s,male:l},\"last_name_pattern\");return this.faker.helpers.fake(u)}return D1(this.faker,this.faker.helpers.arrayElement,t,{generic:n,female:a,male:i},\"last_name\")}middleName(t){var r;let{middle_name:n,female_middle_name:a,male_middle_name:i}=(r=this.faker.rawDefinitions.person)!=null?r:{};return D1(this.faker,this.faker.helpers.arrayElement,t,{generic:n,female:a,male:i},\"middle_name\")}fullName(t={}){let{sex:r=this.faker.helpers.arrayElement([\"female\",\"male\"]),firstName:n=this.firstName(r),lastName:a=this.lastName(r)}=t,i=this.faker.helpers.weightedArrayElement(this.faker.definitions.person.name);return this.faker.helpers.mustache(i,{\"person.prefix\":()=>this.prefix(r),\"person.firstName\":()=>n,\"person.middleName\":()=>this.middleName(r),\"person.lastName\":()=>a,\"person.suffix\":()=>this.suffix()})}gender(){return this.faker.helpers.arrayElement(this.faker.definitions.person.gender)}sex(){return this.faker.helpers.arrayElement(this.faker.definitions.person.sex)}sexType(){return this.faker.helpers.enumValue(Que)}bio(){let{bio_pattern:t}=this.faker.definitions.person;return this.faker.helpers.fake(t)}prefix(t){var r;let{prefix:n,female_prefix:a,male_prefix:i}=(r=this.faker.rawDefinitions.person)!=null?r:{};return D1(this.faker,this.faker.helpers.arrayElement,t,{generic:n,female:a,male:i},\"prefix\")}suffix(){return this.faker.helpers.arrayElement(this.faker.definitions.person.suffix)}jobTitle(){return this.faker.helpers.fake(this.faker.definitions.person.job_title_pattern)}jobDescriptor(){let t=this.faker.definitions.person.title.descriptor;if(t==null)throw new Rr(\"No person.title.descriptor definitions available.\");return this.faker.helpers.arrayElement(t)}jobArea(){let t=this.faker.definitions.person.title.level;if(t==null)throw new Rr(\"No person.title.area definitions available.\");return this.faker.helpers.arrayElement(t)}jobType(){let t=this.faker.definitions.person.title.job;if(t==null)throw new Rr(\"No person.title.job definitions available.\");return this.faker.helpers.arrayElement(t)}zodiacSign(){return this.faker.helpers.arrayElement(this.faker.definitions.person.western_zodiac_sign)}},zKe=class{constructor(){qr(this,\"N\",624),qr(this,\"M\",397),qr(this,\"MATRIX_A\",2567483615),qr(this,\"UPPER_MASK\",2147483648),qr(this,\"LOWER_MASK\",2147483647),qr(this,\"mt\",Array.from({length:this.N})),qr(this,\"mti\",this.N+1),qr(this,\"mag01\",[0,this.MATRIX_A])}unsigned32(t){return t<0?(t^this.UPPER_MASK)+this.UPPER_MASK:t}subtraction32(t,r){return t<r?this.unsigned32(4294967296-(r-t)&4294967295):t-r}addition32(t,r){return this.unsigned32(t+r&4294967295)}multiplication32(t,r){let n=0;for(let a=0;a<32;++a)t>>>a&1&&(n=this.addition32(n,this.unsigned32(r<<a)));return n}initGenrand(t){for(this.mt[0]=this.unsigned32(t&4294967295),this.mti=1;this.mti<this.N;this.mti++)this.mt[this.mti]=this.addition32(this.multiplication32(1812433253,this.unsigned32(this.mt[this.mti-1]^this.mt[this.mti-1]>>>30)),this.mti),this.mt[this.mti]=this.unsigned32(this.mt[this.mti]&4294967295)}initByArray(t,r){this.initGenrand(19650218);let n=1,a=0,i=this.N>r?this.N:r;for(;i;i--)this.mt[n]=this.addition32(this.addition32(this.unsigned32(this.mt[n]^this.multiplication32(this.unsigned32(this.mt[n-1]^this.mt[n-1]>>>30),1664525)),t[a]),a),this.mt[n]=this.unsigned32(this.mt[n]&4294967295),n++,a++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),a>=r&&(a=0);for(i=this.N-1;i;i--)this.mt[n]=this.subtraction32(this.unsigned32(this.mt[n]^this.multiplication32(this.unsigned32(this.mt[n-1]^this.mt[n-1]>>>30),1566083941)),n),this.mt[n]=this.unsigned32(this.mt[n]&4294967295),n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1);this.mt[0]=2147483648}genrandInt32(){let t;if(this.mti>=this.N){let r;for(this.mti===this.N+1&&this.initGenrand(5489),r=0;r<this.N-this.M;r++)t=this.unsigned32(this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK),this.mt[r]=this.unsigned32(this.mt[r+this.M]^t>>>1^this.mag01[t&1]);for(;r<this.N-1;r++)t=this.unsigned32(this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK),this.mt[r]=this.unsigned32(this.mt[r+(this.M-this.N)]^t>>>1^this.mag01[t&1]);t=this.unsigned32(this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK),this.mt[this.N-1]=this.unsigned32(this.mt[this.M-1]^t>>>1^this.mag01[t&1]),this.mti=0}return t=this.mt[this.mti++],t=this.unsigned32(t^t>>>11),t=this.unsigned32(t^t<<7&2636928640),t=this.unsigned32(t^t<<15&4022730752),t=this.unsigned32(t^t>>>18),t}genrandInt31(){return this.genrandInt32()>>>1}genrandReal1(){return this.genrandInt32()*(1/4294967295)}genrandReal2(){return this.genrandInt32()*(1/4294967296)}genrandReal3(){return(this.genrandInt32()+.5)*(1/4294967296)}genrandRes53(){let t=this.genrandInt32()>>>5,r=this.genrandInt32()>>>6;return(t*67108864+r)*(1/9007199254740992)}};function HKe(){let e=new zKe;return e.initGenrand(Math.ceil(Math.random()*Number.MAX_SAFE_INTEGER)),{next(){return e.genrandReal2()},seed(t){typeof t==\"number\"?e.initGenrand(t):Array.isArray(t)&&e.initByArray(t,t.length)}}}function Bt(e){let t=`[@faker-js/faker]: ${e.deprecated} is deprecated`;e.since&&(t+=` since v${e.since}`),e.until&&(t+=` and will be removed in v${e.until}`),e.proposed&&(t+=`. Please use ${e.proposed} instead`),console.warn(`${t}.`)}var VKe=class extends Bg{number(t=99999){Bt({deprecated:\"faker.datatype.number()\",proposed:\"faker.number.int()\",since:\"8.0\",until:\"9.0\"}),typeof t==\"number\"&&(t={max:t});let{min:r=0,max:n=r+99999,precision:a=1}=t;return this.faker.number.float({min:r,max:n,multipleOf:a})}float(t={}){Bt({deprecated:\"faker.datatype.float()\",proposed:\"faker.number.float()\",since:\"8.0\",until:\"9.0\"}),typeof t==\"number\"&&(t={precision:t});let{min:r=0,max:n=r+99999,precision:a=.01}=t;return this.faker.number.float({min:r,max:n,multipleOf:a})}datetime(t={}){Bt({deprecated:\"faker.datatype.datetime({ min, max })\",proposed:\"faker.date.between({ from, to }) or faker.date.anytime()\",since:\"8.0\",until:\"9.0\"});let r=864e13,n=typeof t==\"number\"?void 0:t.min,a=typeof t==\"number\"?t:t.max;return(n==null||n<r*-1)&&(n=Date.UTC(1990,0)),(a==null||a>r)&&(a=Date.UTC(2100,0)),this.faker.date.between({from:n,to:a})}string(t={}){Bt({deprecated:\"faker.datatype.string()\",proposed:\"faker.string.sample()\",since:\"8.0\",until:\"9.0\"}),typeof t==\"number\"&&(t={length:t});let{length:r=10}=t;return this.faker.string.sample(r)}uuid(){return Bt({deprecated:\"faker.datatype.uuid()\",proposed:\"faker.string.uuid()\",since:\"8.0\",until:\"9.0\"}),this.faker.string.uuid()}boolean(t={}){typeof t==\"number\"&&(t={probability:t});let{probability:r=.5}=t;return r<=0?!1:r>=1?!0:this.faker.number.float()<r}hexadecimal(t={}){return Bt({deprecated:\"faker.datatype.hexadecimal()\",proposed:\"faker.string.hexadecimal() or faker.number.hex()\",since:\"8.0\",until:\"9.0\"}),this.faker.string.hexadecimal({...t,casing:t.case})}json(){Bt({deprecated:\"faker.datatype.json()\",proposed:\"your own function to generate complex objects\",since:\"8.0\",until:\"9.0\"});let t=[\"foo\",\"bar\",\"bike\",\"a\",\"b\",\"name\",\"prop\"],r={};for(let n of t)r[n]=this.boolean()?this.faker.string.sample():this.faker.number.int();return JSON.stringify(r)}array(t=10){return Bt({deprecated:\"faker.datatype.array()\",proposed:\"your own function to build complex arrays\",since:\"8.0\",until:\"9.0\"}),this.faker.helpers.multiple(()=>this.boolean()?this.faker.string.sample():this.faker.number.int(),{count:t})}bigInt(t){return Bt({deprecated:\"faker.datatype.bigInt()\",proposed:\"faker.number.bigInt()\",since:\"8.0\",until:\"9.0\"}),this.faker.number.bigInt(t)}};function kd(e,t){return e==null?t():(e=new Date(e),Number.isNaN(e.valueOf())&&(e=t()),e)}var ece=class extends Bg{anytime(t={}){let{refDate:r}=t,n=kd(r,this.faker.defaultRefDate);return this.between({from:new Date(n.getTime()-1e3*60*60*24*365),to:new Date(n.getTime()+1e3*60*60*24*365)})}past(t={},r){typeof t==\"number\"&&(Bt({deprecated:\"faker.date.past(years, refDate)\",proposed:\"faker.date.past({ years, refDate })\",since:\"8.0\",until:\"9.0\"}),t={years:t});let{years:n=1,refDate:a=r}=t;if(n<=0)throw new Rr(\"Years must be greater than 0.\");let i=kd(a,this.faker.defaultRefDate),o={min:1e3,max:n*365*24*3600*1e3},l=i.getTime();return l-=this.faker.number.int(o),i.setTime(l),i}future(t={},r){typeof t==\"number\"&&(Bt({deprecated:\"faker.date.future(years, refDate)\",proposed:\"faker.date.future({ years, refDate })\",since:\"8.0\",until:\"9.0\"}),t={years:t});let{years:n=1,refDate:a=r}=t;if(n<=0)throw new Rr(\"Years must be greater than 0.\");let i=kd(a,this.faker.defaultRefDate),o={min:1e3,max:n*365*24*3600*1e3},l=i.getTime();return l+=this.faker.number.int(o),i.setTime(l),i}between(t,r){(t instanceof Date||typeof t!=\"object\")&&(Bt({deprecated:\"faker.date.between(from, to)\",proposed:\"faker.date.between({ from, to })\",since:\"8.0\",until:\"9.0\"}),t={from:t,to:r??t});let{from:n,to:a}=t,i=kd(n,this.faker.defaultRefDate).getTime(),o=kd(a,this.faker.defaultRefDate).getTime(),l=this.faker.number.int(o-i);return new Date(i+l)}betweens(t,r,n=3){(t instanceof Date||typeof t!=\"object\")&&(Bt({deprecated:\"faker.date.betweens(from, to, count)\",proposed:\"faker.date.betweens({ from, to, count })\",since:\"8.0\",until:\"9.0\"}),t={from:t,to:r??t,count:n});let{from:a,to:i,count:o=3}=t;return this.faker.helpers.multiple(()=>this.between({from:a,to:i}),{count:o}).sort((l,s)=>l.getTime()-s.getTime())}recent(t={},r){typeof t==\"number\"&&(Bt({deprecated:\"faker.date.recent(days, refDate)\",proposed:\"faker.date.recent({ days, refDate })\",since:\"8.0\",until:\"9.0\"}),t={days:t});let{days:n=1,refDate:a=r}=t;if(n<=0)throw new Rr(\"Days must be greater than 0.\");let i=kd(a,this.faker.defaultRefDate),o={min:1e3,max:n*24*3600*1e3},l=i.getTime();return l-=this.faker.number.int(o),i.setTime(l),i}soon(t={},r){typeof t==\"number\"&&(Bt({deprecated:\"faker.date.soon(days, refDate)\",proposed:\"faker.date.soon({ days, refDate })\",since:\"8.0\",until:\"9.0\"}),t={days:t});let{days:n=1,refDate:a=r}=t;if(n<=0)throw new Rr(\"Days must be greater than 0.\");let i=kd(a,this.faker.defaultRefDate),o={min:1e3,max:n*24*3600*1e3},l=i.getTime();return l+=this.faker.number.int(o),i.setTime(l),i}birthdate(t={}){var r,n,a,i;let o=t.mode===\"age\"?\"age\":\"year\",l=kd(t.refDate,this.faker.defaultRefDate),s=l.getUTCFullYear(),u,c;if(o===\"age\"?(u=new Date(l).setUTCFullYear(s-((r=t.max)!=null?r:80)-1),c=new Date(l).setUTCFullYear(s-((n=t.min)!=null?n:18))):(u=new Date(Date.UTC(0,0,2)).setUTCFullYear((a=t.min)!=null?a:s-80),c=new Date(Date.UTC(0,11,30)).setUTCFullYear((i=t.max)!=null?i:s-19)),c<u)throw new Rr(`Max ${t.max} should be larger than or equal to min ${t.min}.`);return new Date(this.faker.number.int({min:u,max:c}))}},WKe=class extends ece{constructor(t){super(t),this.faker=t}month(t={}){let{abbr:r,abbreviated:n=r??!1,context:a=!1}=t;r!=null&&Bt({deprecated:\"faker.date.month({ abbr })\",proposed:\"faker.date.month({ abbreviated })\",since:\"8.0\",until:\"9.0\"});let i=this.faker.definitions.date.month,o;n?o=a&&i.abbr_context!=null?\"abbr_context\":\"abbr\":o=a&&i.wide_context!=null?\"wide_context\":\"wide\";let l=i[o];return qE(l,\"date.month\",o),this.faker.helpers.arrayElement(l)}weekday(t={}){let{abbr:r,abbreviated:n=r??!1,context:a=!1}=t;r!=null&&Bt({deprecated:\"faker.date.weekday({ abbr })\",proposed:\"faker.date.weekday({ abbreviated })\",since:\"8.0\",until:\"9.0\"});let i=this.faker.definitions.date.weekday,o;n?o=a&&i.abbr_context!=null?\"abbr_context\":\"abbr\":o=a&&i.wide_context!=null?\"wide_context\":\"wide\";let l=i[o];return qE(l,\"date.weekday\",o),this.faker.helpers.arrayElement(l)}},GKe=/\\.|\\(/;function UKe(e,t,r=[t,t.rawDefinitions]){if(e.length===0)throw new Rr(\"Eval expression cannot be empty.\");if(r.length===0)throw new Rr(\"Eval entrypoints cannot be empty.\");let n=r,a=e;do{let o;a.startsWith(\"(\")?[o,n]=KKe(a,n):[o,n]=qKe(a,n),a=a.substring(o),n=n.filter(l=>l!=null).map(l=>Array.isArray(l)?t.helpers.arrayElement(l):l)}while(a.length>0&&n.length>0);if(n.length===0)throw new Rr(`Cannot resolve expression '${e}'`);let i=n[0];return typeof i==\"function\"?i():i}function KKe(e,t){let[r,n]=YKe(e),a=e[r+1];switch(a){case\".\":case\"(\":case void 0:break;default:throw new Rr(`Expected dot ('.'), open parenthesis ('('), or nothing after function call but got '${a}'`)}return[r+(a===\".\"?2:1),t.map(i=>typeof i==\"function\"?i(...n):i)]}function YKe(e){let t=e.indexOf(\")\",1);if(t===-1)throw new Rr(`Missing closing parenthesis in '${e}'`);for(;t!==-1;){let n=e.substring(1,t);try{return[t,JSON.parse(`[${n}]`)]}catch{if(!n.includes(\"'\")&&!n.includes('\"'))try{return[t,JSON.parse(`[\"${n}\"]`)]}catch{}}t=e.indexOf(\")\",t+1)}t=e.lastIndexOf(\")\");let r=e.substring(1,t);return[t,[r]]}function qKe(e,t){var r,n;let a=GKe.exec(e),i=((r=a==null?void 0:a[0])!=null?r:\"\")===\".\",o=(n=a==null?void 0:a.index)!=null?n:e.length,l=e.substring(0,o);if(l.length===0)throw new Rr(`Expression parts cannot be empty in '${e}'`);let s=e[o+1];if(i&&(s==null||s===\".\"||s===\"(\"))throw new Rr(`Found dot without property name in '${e}'`);return[o+(i?1:0),t.map(u=>XKe(u,l))]}function XKe(e,t){switch(typeof e){case\"function\":{try{e=e()}catch{return}return e==null?void 0:e[t]}case\"object\":return e==null?void 0:e[t];default:return}}function JKe(e){let t=ZKe(e.replace(/L?$/,\"0\"));return t===0?0:10-t}function ZKe(e){e=e.replace(/[\\s-]/g,\"\");let t=0,r=!1;for(let n=e.length-1;n>=0;n--){let a=Number.parseInt(e[n]);r&&(a*=2,a>9&&(a=a%10+1)),t+=a,r=!r}return t%10}function QKe(e,t){return e[t]===void 0?-1:0}function rG(e,t,r,n,a){throw console.error(\"Error\",r),console.log(`Found ${Object.keys(n).length} unique entries before throwing error.\nretried: ${a}\ntotal time: ${t-e}ms`),new Rr(`${r} for uniqueness check.\n\nMay not be able to generate any more unique values with current settings.\nTry adjusting maxTime or maxRetries parameters for faker.helpers.unique().`)}function tce(e,t,r={}){let n=Date.now(),{startTime:a=Date.now(),maxTime:i=50,maxRetries:o=50,currentIterations:l=0,compare:s=QKe,store:u={}}=r,{exclude:c=[]}=r;if(r.currentIterations=l,Array.isArray(c)||(c=[c]),n-a>=i)return rG(a,n,`Exceeded maxTime: ${i}`,u,l);if(l>=o)return rG(a,n,`Exceeded maxRetries: ${o}`,u,l);let d=e(...t);return s(u,d)===-1&&!c.includes(d)?(u[d]=d,r.currentIterations=0,d):(r.currentIterations++,tce(e,t,{...r,startTime:a,maxTime:i,maxRetries:o,compare:s,exclude:c}))}function nG(e,t,r,n){let a=1;if(t)switch(t){case\"?\":{a=e.datatype.boolean()?0:1;break}case\"*\":{let i=1;for(;e.datatype.boolean();)i*=2;a=e.number.int({min:0,max:i});break}case\"+\":{let i=1;for(;e.datatype.boolean();)i*=2;a=e.number.int({min:1,max:i});break}default:throw new Rr(\"Unknown quantifier symbol provided.\")}else r!=null&&n!=null?a=e.number.int({min:Number.parseInt(r),max:Number.parseInt(n)}):r!=null&&n==null&&(a=Number.parseInt(r));return a}function aG(e,t=\"\"){let r=/(.)\\{(\\d+),(\\d+)\\}/,n=/(.)\\{(\\d+)\\}/,a=/\\[(\\d+)-(\\d+)\\]/,i,o,l,s,u=r.exec(t);for(;u!=null;)i=Number.parseInt(u[2]),o=Number.parseInt(u[3]),i>o&&(l=o,o=i,i=l),s=e.number.int({min:i,max:o}),t=t.slice(0,u.index)+u[1].repeat(s)+t.slice(u.index+u[0].length),u=r.exec(t);for(u=n.exec(t);u!=null;)s=Number.parseInt(u[2]),t=t.slice(0,u.index)+u[1].repeat(s)+t.slice(u.index+u[0].length),u=n.exec(t);for(u=a.exec(t);u!=null;)i=Number.parseInt(u[1]),o=Number.parseInt(u[2]),i>o&&(l=o,o=i,i=l),t=t.slice(0,u.index)+e.number.int({min:i,max:o}).toString()+t.slice(u.index+u[0].length),u=a.exec(t);return t}function fM(e,t=\"\",r=\"#\"){let n=\"\";for(let a=0;a<t.length;a++)t.charAt(a)===r?n+=e.number.int(9):t.charAt(a)===\"!\"?n+=e.number.int({min:2,max:9}):n+=t.charAt(a);return n}var rce=class extends Bg{constructor(){super(...arguments),qr(this,\"uniqueStore\",{})}slugify(t=\"\"){return t.normalize(\"NFKD\").replace(/[\\u0300-\\u036F]/g,\"\").replace(/ /g,\"-\").replace(/[^\\w.-]+/g,\"\")}replaceSymbolWithNumber(t=\"\",r=\"#\"){return Bt({deprecated:\"faker.helpers.replaceSymbolWithNumber\",proposed:\"string.replace(/#+/g, (m) => faker.string.numeric(m.length))\",since:\"8.4\",until:\"9.0\"}),fM(this.faker,t,r)}replaceSymbols(t=\"\"){let r=[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"],n=\"\";for(let a=0;a<t.length;a++)t.charAt(a)===\"#\"?n+=this.faker.number.int(9):t.charAt(a)===\"?\"?n+=this.arrayElement(r):t.charAt(a)===\"*\"?n+=this.faker.datatype.boolean()?this.arrayElement(r):this.faker.number.int(9):n+=t.charAt(a);return n}replaceCreditCardSymbols(t=\"6453-####-####-####-###L\",r=\"#\"){t=aG(this.faker,t),t=fM(this.faker,t,r);let n=JKe(t);return t.replace(\"L\",String(n))}regexpStyleStringParse(t=\"\"){return Bt({deprecated:\"faker.helpers.regexpStyleStringParse\",proposed:\"faker.helpers.fromRegExp\",since:\"8.1\",until:\"9.0\"}),aG(this.faker,t)}fromRegExp(t){var r,n,a,i,o,l,s;let u=!1;t instanceof RegExp&&(u=t.flags.includes(\"i\"),t=t.toString(),t=(n=(r=/\\/(.+?)\\//.exec(t))==null?void 0:r[1])!=null?n:\"\");let c,d,f,h=/([.A-Za-z0-9])(?:\\{(\\d+)(?:,(\\d+)|)\\}|(\\?|\\*|\\+))(?![^[]*]|[^{]*})/,p=h.exec(t);for(;p!=null;){let x=p[2],F=p[3],S=p[4];f=nG(this.faker,S,x,F),t=t.slice(0,p.index)+p[1].repeat(f)+t.slice(p.index+p[0].length),p=h.exec(t)}let v=/(\\d-\\d|\\w-\\w|\\d|\\w|[-!@#$&()`.+,/\"])/,g=/\\[(\\^|)(-|)(.+?)\\](?:\\{(\\d+)(?:,(\\d+)|)\\}|(\\?|\\*|\\+)|)/;for(p=g.exec(t);p!=null;){let x=p[1]===\"^\",F=p[2]===\"-\",S=p[4],E=p[5],w=p[6],D=[],A=p[3],_=v.exec(A);for(F&&D.push(45);_!=null;){if(_[0].includes(\"-\")){let M=_[0].split(\"-\").map(T=>{var k;return(k=T.codePointAt(0))!=null?k:Number.NaN});if(c=M[0],d=M[1],c>d)throw new Rr(\"Character range provided is out of order.\");for(let T=c;T<=d;T++)if(u&&Number.isNaN(Number(String.fromCodePoint(T)))){let k=String.fromCodePoint(T);D.push((a=k.toUpperCase().codePointAt(0))!=null?a:Number.NaN,(i=k.toLowerCase().codePointAt(0))!=null?i:Number.NaN)}else D.push(T)}else u&&Number.isNaN(Number(_[0]))?D.push((o=_[0].toUpperCase().codePointAt(0))!=null?o:Number.NaN,(l=_[0].toLowerCase().codePointAt(0))!=null?l:Number.NaN):D.push((s=_[0].codePointAt(0))!=null?s:Number.NaN);A=A.substring(_[0].length),_=v.exec(A)}if(f=nG(this.faker,w,S,E),x){let M=-1;for(let T=48;T<=57;T++){if(M=D.indexOf(T),M>-1){D.splice(M,1);continue}D.push(T)}for(let T=65;T<=90;T++){if(M=D.indexOf(T),M>-1){D.splice(M,1);continue}D.push(T)}for(let T=97;T<=122;T++){if(M=D.indexOf(T),M>-1){D.splice(M,1);continue}D.push(T)}}let I=this.multiple(()=>String.fromCodePoint(this.arrayElement(D)),{count:f}).join(\"\");t=t.slice(0,p.index)+I+t.slice(p.index+p[0].length),p=g.exec(t)}let y=/(.)\\{(\\d+),(\\d+)\\}/;for(p=y.exec(t);p!=null;){if(c=Number.parseInt(p[2]),d=Number.parseInt(p[3]),c>d)throw new Rr(\"Numbers out of order in {} quantifier.\");f=this.faker.number.int({min:c,max:d}),t=t.slice(0,p.index)+p[1].repeat(f)+t.slice(p.index+p[0].length),p=y.exec(t)}let b=/(.)\\{(\\d+)\\}/;for(p=b.exec(t);p!=null;)f=Number.parseInt(p[2]),t=t.slice(0,p.index)+p[1].repeat(f)+t.slice(p.index+p[0].length),p=b.exec(t);return t}shuffle(t,r={}){let{inplace:n=!1}=r;n||(t=[...t]);for(let a=t.length-1;a>0;--a){let i=this.faker.number.int(a);[t[a],t[i]]=[t[i],t[a]]}return t}uniqueArray(t,r){if(Array.isArray(t)){let a=[...new Set(t)];return this.shuffle(a).splice(0,r)}let n=new Set;try{if(typeof t==\"function\"){let a=1e3*r,i=0;for(;n.size<r&&i<a;)n.add(t()),i++}}catch{}return[...n]}mustache(t,r){if(t==null)return\"\";for(let n in r){let a=new RegExp(`{{${n}}}`,\"g\"),i=r[n];typeof i==\"string\"&&(i=i.replace(/\\$/g,\"$$$$\")),t=t.replace(a,i)}return t}maybe(t,r={}){if(this.faker.datatype.boolean(r))return t()}objectKey(t){let r=Object.keys(t);return this.arrayElement(r)}objectValue(t){let r=this.faker.helpers.objectKey(t);return t[r]}objectEntry(t){let r=this.faker.helpers.objectKey(t);return[r,t[r]]}arrayElement(t){if(t==null)throw new Rr(\"Calling `faker.helpers.arrayElement()` without arguments is no longer supported.\");if(t.length===0)throw new Rr(\"Cannot get value from empty dataset.\");let r=t.length>1?this.faker.number.int({max:t.length-1}):0;return t[r]}weightedArrayElement(t){if(t.length===0)throw new Rr(\"weightedArrayElement expects an array with at least one element\");if(!t.every(i=>i.weight>0))throw new Rr(\"weightedArrayElement expects an array of { weight, value } objects where weight is a positive number\");let r=t.reduce((i,{weight:o})=>i+o,0),n=this.faker.number.float({min:0,max:r}),a=0;for(let{weight:i,value:o}of t)if(a+=i,n<a)return o;return t[t.length-1].value}arrayElements(t,r){if(t==null)throw new Rr(\"Calling `faker.helpers.arrayElements()` without arguments is no longer supported.\");if(t.length===0)return[];let n=this.rangeToNumber(r??{min:1,max:t.length});if(n>=t.length)return this.shuffle(t);if(n<=0)return[];let a=[...t],i=t.length,o=i-n,l,s;for(;i-- >o;)s=this.faker.number.int(i),l=a[s],a[s]=a[i],a[i]=l;return a.slice(o)}enumValue(t){let r=Object.keys(t).filter(a=>Number.isNaN(Number(a))),n=this.arrayElement(r);return t[n]}rangeToNumber(t){return typeof t==\"number\"?t:this.faker.number.int(t)}unique(t,r=[],n={}){Bt({deprecated:\"faker.helpers.unique\",proposed:\"https://github.com/faker-js/faker/issues/1785#issuecomment-1407773744\",since:\"8.0\",until:\"9.0\"});let{maxTime:a=50,maxRetries:i=50,exclude:o=[],store:l=this.uniqueStore}=n;return tce(t,r,{...n,startTime:Date.now(),maxTime:a,maxRetries:i,currentIterations:0,exclude:o,store:l})}multiple(t,r={}){var n;let a=this.rangeToNumber((n=r.count)!=null?n:3);return a<=0?[]:Array.from({length:a},t)}},eYe=class extends rce{constructor(t){super(t),this.faker=t}fake(t){t=typeof t==\"string\"?t:this.arrayElement(t);let r=t.search(/{{[a-z]/),n=t.indexOf(\"}}\",r);if(r===-1||n===-1)return t;let a=t.substring(r+2,n+2).replace(\"}}\",\"\").replace(\"{{\",\"\"),i=UKe(a,this.faker),o=String(i),l=t.substring(0,r)+o+t.substring(n+2);return this.fake(l)}},tYe=class extends Bg{int(t={}){typeof t==\"number\"&&(t={max:t});let{min:r=0,max:n=Number.MAX_SAFE_INTEGER}=t,a=Math.ceil(r),i=Math.floor(n);if(a===i)return a;if(i<a)throw n>=r?new Rr(`No integer value between ${r} and ${n} found.`):new Rr(`Max ${n} should be greater than min ${r}.`);let o=this.faker._randomizer.next();return Math.floor(o*(i+1-a)+a)}float(t={}){typeof t==\"number\"&&(t={max:t});let{min:r=0,max:n=1,fractionDigits:a,precision:i,multipleOf:o=i,multipleOf:l=i??(a==null?void 0:10**-a)}=t;if(i!=null&&Bt({deprecated:\"faker.number.float({ precision })\",proposed:\"faker.number.float({ multipleOf })\",since:\"8.4\",until:\"9.0\"}),n===r)return r;if(n<r)throw new Rr(`Max ${n} should be greater than min ${r}.`);if(a!=null){if(o!=null)throw new Rr(\"multipleOf and fractionDigits cannot be set at the same time.\");if(!Number.isInteger(a))throw new Rr(\"fractionDigits should be an integer.\");if(a<0)throw new Rr(\"fractionDigits should be greater than or equal to 0.\")}if(l!=null){if(l<=0)throw new Rr(\"multipleOf/precision should be greater than 0.\");let s=Math.log10(l),u=l<1&&Number.isInteger(s)?10**-s:1/l;return this.int({min:r*u,max:n*u})/u}return this.faker._randomizer.next()*(n-r)+r}binary(t={}){typeof t==\"number\"&&(t={max:t});let{min:r=0,max:n=1}=t;return this.int({max:n,min:r}).toString(2)}octal(t={}){typeof t==\"number\"&&(t={max:t});let{min:r=0,max:n=7}=t;return this.int({max:n,min:r}).toString(8)}hex(t={}){typeof t==\"number\"&&(t={max:t});let{min:r=0,max:n=15}=t;return this.int({max:n,min:r}).toString(16)}bigInt(t={}){var r,n;(typeof t==\"bigint\"||typeof t==\"number\"||typeof t==\"string\"||typeof t==\"boolean\")&&(t={max:t});let a=BigInt((r=t.min)!=null?r:0),i=BigInt((n=t.max)!=null?n:a+BigInt(999999999999999));if(i===a)return a;if(i<a)throw new Rr(`Max ${i} should be larger then min ${a}.`);let o=i-a,l=BigInt(this.faker.string.numeric({length:o.toString(10).length,allowLeadingZeros:!0}))%(o+BigInt(1));return a+l}},mF=[...\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"],vF=[...\"abcdefghijklmnopqrstuvwxyz\"],iG=[...\"0123456789\"],rYe=class extends Bg{fromCharacters(t,r=1){if(r=this.faker.helpers.rangeToNumber(r),r<=0)return\"\";if(typeof t==\"string\"&&(t=[...t]),t.length===0)throw new Rr(\"Unable to generate string: No characters to select from.\");return this.faker.helpers.multiple(()=>this.faker.helpers.arrayElement(t),{count:r}).join(\"\")}alpha(t={}){var r;typeof t==\"number\"&&(t={length:t});let n=this.faker.helpers.rangeToNumber((r=t.length)!=null?r:1);if(n<=0)return\"\";let{casing:a=\"mixed\"}=t,{exclude:i=[]}=t;typeof i==\"string\"&&(i=[...i]);let o;switch(a){case\"upper\":o=[...mF];break;case\"lower\":o=[...vF];break;case\"mixed\":default:o=[...vF,...mF];break}return o=o.filter(l=>!i.includes(l)),this.fromCharacters(o,n)}alphanumeric(t={}){var r;typeof t==\"number\"&&(t={length:t});let n=this.faker.helpers.rangeToNumber((r=t.length)!=null?r:1);if(n<=0)return\"\";let{casing:a=\"mixed\"}=t,{exclude:i=[]}=t;typeof i==\"string\"&&(i=[...i]);let o=[...iG];switch(a){case\"upper\":o.push(...mF);break;case\"lower\":o.push(...vF);break;case\"mixed\":default:o.push(...vF,...mF);break}return o=o.filter(l=>!i.includes(l)),this.fromCharacters(o,n)}binary(t={}){var r;let{prefix:n=\"0b\"}=t,a=n;return a+=this.fromCharacters([\"0\",\"1\"],(r=t.length)!=null?r:1),a}octal(t={}){var r;let{prefix:n=\"0o\"}=t,a=n;return a+=this.fromCharacters([\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\"],(r=t.length)!=null?r:1),a}hexadecimal(t={}){var r;let{casing:n=\"mixed\",prefix:a=\"0x\"}=t,i=this.faker.helpers.rangeToNumber((r=t.length)!=null?r:1);if(i<=0)return a;let o=this.fromCharacters([\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\"],i);return n===\"upper\"?o=o.toUpperCase():n===\"lower\"&&(o=o.toLowerCase()),`${a}${o}`}numeric(t={}){var r;typeof t==\"number\"&&(t={length:t});let n=this.faker.helpers.rangeToNumber((r=t.length)!=null?r:1);if(n<=0)return\"\";let{allowLeadingZeros:a=!0}=t,{exclude:i=[]}=t;typeof i==\"string\"&&(i=[...i]);let o=iG.filter(s=>!i.includes(s));if(o.length===0||o.length===1&&!a&&o[0]===\"0\")throw new Rr(\"Unable to generate numeric string, because all possible digits are excluded.\");let l=\"\";return!a&&!i.includes(\"0\")&&(l+=this.faker.helpers.arrayElement(o.filter(s=>s!==\"0\"))),l+=this.fromCharacters(o,n-l.length),l}sample(t=10){t=this.faker.helpers.rangeToNumber(t);let r={min:33,max:125},n=\"\";for(;n.length<t;)n+=String.fromCodePoint(this.faker.number.int(r));return n}uuid(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/x/g,()=>this.faker.number.hex({min:0,max:15})).replace(/y/g,()=>this.faker.number.hex({min:8,max:11}))}nanoid(t=21){if(t=this.faker.helpers.rangeToNumber(t),t<=0)return\"\";let r=[{value:()=>this.alphanumeric(1),weight:62},{value:()=>this.faker.helpers.arrayElement([\"_\",\"-\"]),weight:2}],n=\"\";for(;n.length<t;){let a=this.faker.helpers.weightedArrayElement(r);n+=a()}return n}symbol(t=1){return this.fromCharacters([\"!\",'\"',\"#\",\"$\",\"%\",\"&\",\"'\",\"(\",\")\",\"*\",\"+\",\",\",\"-\",\".\",\"/\",\":\",\";\",\"<\",\"=\",\">\",\"?\",\"@\",\"[\",\"\\\\\",\"]\",\"^\",\"_\",\"`\",\"{\",\"|\",\"}\",\"~\"],t)}},nce=class{constructor(t={}){qr(this,\"_defaultRefDate\",()=>new Date),qr(this,\"_randomizer\"),qr(this,\"datatype\",new VKe(this)),qr(this,\"date\",new ece(this)),qr(this,\"helpers\",new rce(this)),qr(this,\"number\",new tYe(this)),qr(this,\"string\",new rYe(this));let{randomizer:r=HKe()}=t;this._randomizer=r}get defaultRefDate(){return this._defaultRefDate}setDefaultRefDate(t=()=>new Date){typeof t==\"function\"?this._defaultRefDate=t:this._defaultRefDate=()=>new Date(t)}seed(t=Math.ceil(Math.random()*Number.MAX_SAFE_INTEGER)){return this._randomizer.seed(t),t}};new nce;function nYe(e){let t={};for(let r of e)for(let n in r){let a=r[n];t[n]===void 0?t[n]={...a}:t[n]={...a,...t[n]}}return t}var aYe=class extends $a{dog(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.dog)}cat(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.cat)}snake(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.snake)}bear(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.bear)}lion(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.lion)}cetacean(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.cetacean)}horse(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.horse)}bird(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.bird)}cow(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.cow)}fish(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.fish)}crocodilia(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.crocodilia)}insect(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.insect)}rabbit(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.rabbit)}rodent(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.rodent)}type(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.type)}},iYe={0:[[1999999,2],[2279999,3],[2289999,4],[3689999,3],[3699999,4],[6389999,3],[6397999,4],[6399999,7],[6449999,3],[6459999,7],[6479999,3],[6489999,7],[6549999,3],[6559999,4],[6999999,3],[8499999,4],[8999999,5],[9499999,6],[9999999,7]],1:[[99999,3],[299999,2],[349999,3],[399999,4],[499999,3],[699999,2],[999999,4],[3979999,3],[5499999,4],[6499999,5],[6799999,4],[6859999,5],[7139999,4],[7169999,3],[7319999,4],[7399999,7],[7749999,5],[7753999,7],[7763999,5],[7764999,7],[7769999,5],[7782999,7],[7899999,5],[7999999,4],[8004999,5],[8049999,5],[8379999,5],[8384999,7],[8671999,5],[8675999,4],[8697999,5],[9159999,6],[9165059,7],[9168699,6],[9169079,7],[9195999,6],[9196549,7],[9729999,6],[9877999,4],[9911499,6],[9911999,7],[9989899,6],[9999999,7]]},oYe=class extends $a{department(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.department)}productName(){return`${this.productAdjective()} ${this.productMaterial()} ${this.product()}`}price(t={},r=1e3,n=2,a=\"\"){typeof t==\"number\"&&(Bt({deprecated:\"faker.commerce.price(min, max, dec, symbol)\",proposed:\"faker.commerce.price({ min, max, dec, symbol })\",since:\"8.0\",until:\"9.0\"}),t={min:t,dec:n,max:r,symbol:a});let{dec:i=2,max:o=1e3,min:l=1,symbol:s=\"\"}=t;if(l<0||o<0)return`${s}0`;let u=this.faker.number.int({min:l,max:o});return s+u.toFixed(i)}productAdjective(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.adjective)}productMaterial(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.material)}product(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.product)}productDescription(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_description)}isbn(t={}){var r;typeof t==\"number\"&&(t={variant:t});let{variant:n=13,separator:a=\"-\"}=t,i=\"978\",[o,l]=this.faker.helpers.objectEntry(iYe),s=this.faker.string.numeric(8),u=Number.parseInt(s.slice(0,-1)),c=(r=l.find(([g])=>u<=g))==null?void 0:r[1];if(!c)throw new Rr(`Unable to find a registrant length for the group ${o}`);let d=s.slice(0,c),f=s.slice(c),h=[i,o,d,f];n===10&&h.shift();let p=h.join(\"\"),v=0;for(let g=0;g<n-1;g++){let y=n===10?g+1:g%2?3:1;v+=y*Number.parseInt(p[g])}return v=n===10?v%11:(10-v%10)%10,h.push(v===10?\"X\":v.toString()),h.join(a)}},lYe=class extends $a{suffixes(){return Bt({deprecated:\"faker.company.suffixes\",proposed:\"faker.company.name\",since:\"8.0\",until:\"9.0\"}),[...this.faker.definitions.company.suffix]}name(){return this.faker.helpers.fake(this.faker.definitions.company.name_pattern)}companySuffix(){return Bt({deprecated:\"faker.company.companySuffix\",proposed:\"faker.company.name\",since:\"8.0\",until:\"9.0\"}),this.faker.helpers.arrayElement(this.suffixes())}catchPhrase(){return[this.catchPhraseAdjective(),this.catchPhraseDescriptor(),this.catchPhraseNoun()].join(\" \")}bs(){return Bt({deprecated:\"faker.company.bs\",proposed:\"faker.company.buzzPhrase\",since:\"8.0\",until:\"9.0\"}),this.buzzPhrase()}buzzPhrase(){return[this.buzzVerb(),this.buzzAdjective(),this.buzzNoun()].join(\" \")}catchPhraseAdjective(){return this.faker.helpers.arrayElement(this.faker.definitions.company.adjective)}catchPhraseDescriptor(){return this.faker.helpers.arrayElement(this.faker.definitions.company.descriptor)}catchPhraseNoun(){return this.faker.helpers.arrayElement(this.faker.definitions.company.noun)}bsAdjective(){return Bt({deprecated:\"faker.company.bsAdjective\",proposed:\"faker.company.buzzAdjective\",since:\"8.0\",until:\"9.0\"}),this.buzzAdjective()}buzzAdjective(){return this.faker.helpers.arrayElement(this.faker.definitions.company.buzz_adjective)}bsBuzz(){return Bt({deprecated:\"faker.company.bsBuzz\",proposed:\"faker.company.buzzVerb\",since:\"8.0\",until:\"9.0\"}),this.buzzVerb()}buzzVerb(){return this.faker.helpers.arrayElement(this.faker.definitions.company.buzz_verb)}bsNoun(){return Bt({deprecated:\"faker.company.bsNoun\",proposed:\"faker.company.buzzNoun\",since:\"8.0\",until:\"9.0\"}),this.buzzNoun()}buzzNoun(){return this.faker.helpers.arrayElement(this.faker.definitions.company.buzz_noun)}},sYe=class extends $a{column(){return this.faker.helpers.arrayElement(this.faker.definitions.database.column)}type(){return this.faker.helpers.arrayElement(this.faker.definitions.database.type)}collation(){return this.faker.helpers.arrayElement(this.faker.definitions.database.collation)}engine(){return this.faker.helpers.arrayElement(this.faker.definitions.database.engine)}mongodbObjectId(){return this.faker.string.hexadecimal({length:24,casing:\"lower\",prefix:\"\"})}},uYe={alpha:[\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"],formats:[{country:\"AL\",total:28,bban:[{type:\"n\",count:8},{type:\"c\",count:16}],format:\"ALkk bbbs sssx cccc cccc cccc cccc\"},{country:\"AD\",total:24,bban:[{type:\"n\",count:8},{type:\"c\",count:12}],format:\"ADkk bbbb ssss cccc cccc cccc\"},{country:\"AT\",total:20,bban:[{type:\"n\",count:5},{type:\"n\",count:11}],format:\"ATkk bbbb bccc cccc cccc\"},{country:\"AZ\",total:28,bban:[{type:\"a\",count:4},{type:\"n\",count:20}],format:\"AZkk bbbb cccc cccc cccc cccc cccc\"},{country:\"BH\",total:22,bban:[{type:\"a\",count:4},{type:\"c\",count:14}],format:\"BHkk bbbb cccc cccc cccc cc\"},{country:\"BE\",total:16,bban:[{type:\"n\",count:3},{type:\"n\",count:9}],format:\"BEkk bbbc cccc ccxx\"},{country:\"BA\",total:20,bban:[{type:\"n\",count:6},{type:\"n\",count:10}],format:\"BAkk bbbs sscc cccc ccxx\"},{country:\"BR\",total:29,bban:[{type:\"n\",count:13},{type:\"n\",count:10},{type:\"a\",count:1},{type:\"c\",count:1}],format:\"BRkk bbbb bbbb ssss sccc cccc ccct n\"},{country:\"BG\",total:22,bban:[{type:\"a\",count:4},{type:\"n\",count:6},{type:\"c\",count:8}],format:\"BGkk bbbb ssss ddcc cccc cc\"},{country:\"CR\",total:22,bban:[{type:\"n\",count:1},{type:\"n\",count:3},{type:\"n\",count:14}],format:\"CRkk xbbb cccc cccc cccc cc\"},{country:\"HR\",total:21,bban:[{type:\"n\",count:7},{type:\"n\",count:10}],format:\"HRkk bbbb bbbc cccc cccc c\"},{country:\"CY\",total:28,bban:[{type:\"n\",count:8},{type:\"c\",count:16}],format:\"CYkk bbbs ssss cccc cccc cccc cccc\"},{country:\"CZ\",total:24,bban:[{type:\"n\",count:10},{type:\"n\",count:10}],format:\"CZkk bbbb ssss sscc cccc cccc\"},{country:\"DK\",total:18,bban:[{type:\"n\",count:4},{type:\"n\",count:10}],format:\"DKkk bbbb cccc cccc cc\"},{country:\"DO\",total:28,bban:[{type:\"a\",count:4},{type:\"n\",count:20}],format:\"DOkk bbbb cccc cccc cccc cccc cccc\"},{country:\"TL\",total:23,bban:[{type:\"n\",count:3},{type:\"n\",count:16}],format:\"TLkk bbbc cccc cccc cccc cxx\"},{country:\"EE\",total:20,bban:[{type:\"n\",count:4},{type:\"n\",count:12}],format:\"EEkk bbss cccc cccc cccx\"},{country:\"FO\",total:18,bban:[{type:\"n\",count:4},{type:\"n\",count:10}],format:\"FOkk bbbb cccc cccc cx\"},{country:\"FI\",total:18,bban:[{type:\"n\",count:6},{type:\"n\",count:8}],format:\"FIkk bbbb bbcc cccc cx\"},{country:\"FR\",total:27,bban:[{type:\"n\",count:10},{type:\"c\",count:11},{type:\"n\",count:2}],format:\"FRkk bbbb bggg ggcc cccc cccc cxx\"},{country:\"GE\",total:22,bban:[{type:\"a\",count:2},{type:\"n\",count:16}],format:\"GEkk bbcc cccc cccc cccc cc\"},{country:\"DE\",total:22,bban:[{type:\"n\",count:8},{type:\"n\",count:10}],format:\"DEkk bbbb bbbb cccc cccc cc\"},{country:\"GI\",total:23,bban:[{type:\"a\",count:4},{type:\"c\",count:15}],format:\"GIkk bbbb cccc cccc cccc ccc\"},{country:\"GR\",total:27,bban:[{type:\"n\",count:7},{type:\"c\",count:16}],format:\"GRkk bbbs sssc cccc cccc cccc ccc\"},{country:\"GL\",total:18,bban:[{type:\"n\",count:4},{type:\"n\",count:10}],format:\"GLkk bbbb cccc cccc cc\"},{country:\"GT\",total:28,bban:[{type:\"c\",count:4},{type:\"c\",count:4},{type:\"c\",count:16}],format:\"GTkk bbbb mmtt cccc cccc cccc cccc\"},{country:\"HU\",total:28,bban:[{type:\"n\",count:8},{type:\"n\",count:16}],format:\"HUkk bbbs sssk cccc cccc cccc cccx\"},{country:\"IS\",total:26,bban:[{type:\"n\",count:6},{type:\"n\",count:16}],format:\"ISkk bbbb sscc cccc iiii iiii ii\"},{country:\"IE\",total:22,bban:[{type:\"c\",count:4},{type:\"n\",count:6},{type:\"n\",count:8}],format:\"IEkk aaaa bbbb bbcc cccc cc\"},{country:\"IL\",total:23,bban:[{type:\"n\",count:6},{type:\"n\",count:13}],format:\"ILkk bbbn nncc cccc cccc ccc\"},{country:\"IT\",total:27,bban:[{type:\"a\",count:1},{type:\"n\",count:10},{type:\"c\",count:12}],format:\"ITkk xaaa aabb bbbc cccc cccc ccc\"},{country:\"JO\",total:30,bban:[{type:\"a\",count:4},{type:\"n\",count:4},{type:\"n\",count:18}],format:\"JOkk bbbb nnnn cccc cccc cccc cccc cc\"},{country:\"KZ\",total:20,bban:[{type:\"n\",count:3},{type:\"c\",count:13}],format:\"KZkk bbbc cccc cccc cccc\"},{country:\"XK\",total:20,bban:[{type:\"n\",count:4},{type:\"n\",count:12}],format:\"XKkk bbbb cccc cccc cccc\"},{country:\"KW\",total:30,bban:[{type:\"a\",count:4},{type:\"c\",count:22}],format:\"KWkk bbbb cccc cccc cccc cccc cccc cc\"},{country:\"LV\",total:21,bban:[{type:\"a\",count:4},{type:\"c\",count:13}],format:\"LVkk bbbb cccc cccc cccc c\"},{country:\"LB\",total:28,bban:[{type:\"n\",count:4},{type:\"c\",count:20}],format:\"LBkk bbbb cccc cccc cccc cccc cccc\"},{country:\"LI\",total:21,bban:[{type:\"n\",count:5},{type:\"c\",count:12}],format:\"LIkk bbbb bccc cccc cccc c\"},{country:\"LT\",total:20,bban:[{type:\"n\",count:5},{type:\"n\",count:11}],format:\"LTkk bbbb bccc cccc cccc\"},{country:\"LU\",total:20,bban:[{type:\"n\",count:3},{type:\"c\",count:13}],format:\"LUkk bbbc cccc cccc cccc\"},{country:\"MK\",total:19,bban:[{type:\"n\",count:3},{type:\"c\",count:10},{type:\"n\",count:2}],format:\"MKkk bbbc cccc cccc cxx\"},{country:\"MT\",total:31,bban:[{type:\"a\",count:4},{type:\"n\",count:5},{type:\"c\",count:18}],format:\"MTkk bbbb ssss sccc cccc cccc cccc ccc\"},{country:\"MR\",total:27,bban:[{type:\"n\",count:10},{type:\"n\",count:13}],format:\"MRkk bbbb bsss sscc cccc cccc cxx\"},{country:\"MU\",total:30,bban:[{type:\"a\",count:4},{type:\"n\",count:4},{type:\"n\",count:15},{type:\"a\",count:3}],format:\"MUkk bbbb bbss cccc cccc cccc 000d dd\"},{country:\"MC\",total:27,bban:[{type:\"n\",count:10},{type:\"c\",count:11},{type:\"n\",count:2}],format:\"MCkk bbbb bsss sscc cccc cccc cxx\"},{country:\"MD\",total:24,bban:[{type:\"c\",count:2},{type:\"c\",count:18}],format:\"MDkk bbcc cccc cccc cccc cccc\"},{country:\"ME\",total:22,bban:[{type:\"n\",count:3},{type:\"n\",count:15}],format:\"MEkk bbbc cccc cccc cccc xx\"},{country:\"NL\",total:18,bban:[{type:\"a\",count:4},{type:\"n\",count:10}],format:\"NLkk bbbb cccc cccc cc\"},{country:\"NO\",total:15,bban:[{type:\"n\",count:4},{type:\"n\",count:7}],format:\"NOkk bbbb cccc ccx\"},{country:\"PK\",total:24,bban:[{type:\"a\",count:4},{type:\"n\",count:16}],format:\"PKkk bbbb cccc cccc cccc cccc\"},{country:\"PS\",total:29,bban:[{type:\"c\",count:4},{type:\"n\",count:9},{type:\"n\",count:12}],format:\"PSkk bbbb xxxx xxxx xccc cccc cccc c\"},{country:\"PL\",total:28,bban:[{type:\"n\",count:8},{type:\"n\",count:16}],format:\"PLkk bbbs sssx cccc cccc cccc cccc\"},{country:\"PT\",total:25,bban:[{type:\"n\",count:8},{type:\"n\",count:13}],format:\"PTkk bbbb ssss cccc cccc cccx x\"},{country:\"QA\",total:29,bban:[{type:\"a\",count:4},{type:\"c\",count:21}],format:\"QAkk bbbb cccc cccc cccc cccc cccc c\"},{country:\"RO\",total:24,bban:[{type:\"a\",count:4},{type:\"c\",count:16}],format:\"ROkk bbbb cccc cccc cccc cccc\"},{country:\"SM\",total:27,bban:[{type:\"a\",count:1},{type:\"n\",count:10},{type:\"c\",count:12}],format:\"SMkk xaaa aabb bbbc cccc cccc ccc\"},{country:\"SA\",total:24,bban:[{type:\"n\",count:2},{type:\"c\",count:18}],format:\"SAkk bbcc cccc cccc cccc cccc\"},{country:\"RS\",total:22,bban:[{type:\"n\",count:3},{type:\"n\",count:15}],format:\"RSkk bbbc cccc cccc cccc xx\"},{country:\"SK\",total:24,bban:[{type:\"n\",count:10},{type:\"n\",count:10}],format:\"SKkk bbbb ssss sscc cccc cccc\"},{country:\"SI\",total:19,bban:[{type:\"n\",count:5},{type:\"n\",count:10}],format:\"SIkk bbss sccc cccc cxx\"},{country:\"ES\",total:24,bban:[{type:\"n\",count:10},{type:\"n\",count:10}],format:\"ESkk bbbb gggg xxcc cccc cccc\"},{country:\"SE\",total:24,bban:[{type:\"n\",count:3},{type:\"n\",count:17}],format:\"SEkk bbbc cccc cccc cccc cccc\"},{country:\"CH\",total:21,bban:[{type:\"n\",count:5},{type:\"c\",count:12}],format:\"CHkk bbbb bccc cccc cccc c\"},{country:\"TN\",total:24,bban:[{type:\"n\",count:5},{type:\"n\",count:15}],format:\"TNkk bbss sccc cccc cccc cccc\"},{country:\"TR\",total:26,bban:[{type:\"n\",count:5},{type:\"n\",count:1},{type:\"n\",count:16}],format:\"TRkk bbbb bxcc cccc cccc cccc cc\"},{country:\"AE\",total:23,bban:[{type:\"n\",count:3},{type:\"n\",count:16}],format:\"AEkk bbbc cccc cccc cccc ccc\"},{country:\"GB\",total:22,bban:[{type:\"a\",count:4},{type:\"n\",count:6},{type:\"n\",count:8}],format:\"GBkk bbbb ssss sscc cccc cc\"},{country:\"VG\",total:24,bban:[{type:\"a\",count:4},{type:\"n\",count:16}],format:\"VGkk bbbb cccc cccc cccc cccc\"}],iso3166:[\"AD\",\"AE\",\"AF\",\"AG\",\"AI\",\"AL\",\"AM\",\"AO\",\"AQ\",\"AR\",\"AS\",\"AT\",\"AU\",\"AW\",\"AX\",\"AZ\",\"BA\",\"BB\",\"BD\",\"BE\",\"BF\",\"BG\",\"BH\",\"BI\",\"BJ\",\"BL\",\"BM\",\"BN\",\"BO\",\"BQ\",\"BR\",\"BS\",\"BT\",\"BV\",\"BW\",\"BY\",\"BZ\",\"CA\",\"CC\",\"CD\",\"CF\",\"CG\",\"CH\",\"CI\",\"CK\",\"CL\",\"CM\",\"CN\",\"CO\",\"CR\",\"CU\",\"CV\",\"CW\",\"CX\",\"CY\",\"CZ\",\"DE\",\"DJ\",\"DK\",\"DM\",\"DO\",\"DZ\",\"EC\",\"EE\",\"EG\",\"EH\",\"ER\",\"ES\",\"ET\",\"FI\",\"FJ\",\"FK\",\"FM\",\"FO\",\"FR\",\"GA\",\"GB\",\"GD\",\"GE\",\"GF\",\"GG\",\"GH\",\"GI\",\"GL\",\"GM\",\"GN\",\"GP\",\"GQ\",\"GR\",\"GS\",\"GT\",\"GU\",\"GW\",\"GY\",\"HK\",\"HM\",\"HN\",\"HR\",\"HT\",\"HU\",\"ID\",\"IE\",\"IL\",\"IM\",\"IN\",\"IO\",\"IQ\",\"IR\",\"IS\",\"IT\",\"JE\",\"JM\",\"JO\",\"JP\",\"KE\",\"KG\",\"KH\",\"KI\",\"KM\",\"KN\",\"KP\",\"KR\",\"KW\",\"KY\",\"KZ\",\"LA\",\"LB\",\"LC\",\"LI\",\"LK\",\"LR\",\"LS\",\"LT\",\"LU\",\"LV\",\"LY\",\"MA\",\"MC\",\"MD\",\"ME\",\"MF\",\"MG\",\"MH\",\"MK\",\"ML\",\"MM\",\"MN\",\"MO\",\"MP\",\"MQ\",\"MR\",\"MS\",\"MT\",\"MU\",\"MV\",\"MW\",\"MX\",\"MY\",\"MZ\",\"NA\",\"NC\",\"NE\",\"NF\",\"NG\",\"NI\",\"NL\",\"NO\",\"NP\",\"NR\",\"NU\",\"NZ\",\"OM\",\"PA\",\"PE\",\"PF\",\"PG\",\"PH\",\"PK\",\"PL\",\"PM\",\"PN\",\"PR\",\"PS\",\"PT\",\"PW\",\"PY\",\"QA\",\"RE\",\"RO\",\"RS\",\"RU\",\"RW\",\"SA\",\"SB\",\"SC\",\"SD\",\"SE\",\"SG\",\"SH\",\"SI\",\"SJ\",\"SK\",\"SL\",\"SM\",\"SN\",\"SO\",\"SR\",\"SS\",\"ST\",\"SV\",\"SX\",\"SY\",\"SZ\",\"TC\",\"TD\",\"TF\",\"TG\",\"TH\",\"TJ\",\"TK\",\"TL\",\"TM\",\"TN\",\"TO\",\"TR\",\"TT\",\"TV\",\"TW\",\"TZ\",\"UA\",\"UG\",\"UM\",\"US\",\"UY\",\"UZ\",\"VA\",\"VC\",\"VE\",\"VG\",\"VI\",\"VN\",\"VU\",\"WF\",\"WS\",\"XK\",\"YE\",\"YT\",\"ZA\",\"ZM\",\"ZW\"],mod97:e=>{let t=0;for(let r of e)t=(t*10+ +r)%97;return t},pattern10:[\"01\",\"02\",\"03\",\"04\",\"05\",\"06\",\"07\",\"08\",\"09\"],pattern100:[\"001\",\"002\",\"003\",\"004\",\"005\",\"006\",\"007\",\"008\",\"009\"],toDigitString:e=>e.replace(/[A-Z]/gi,t=>{var r;return String(((r=t.toUpperCase().codePointAt(0))!=null?r:Number.NaN)-55)})},Dc=uYe;function cYe(e){let t=\"\";for(let r=0;r<e.length;r+=4)t+=`${e.substring(r,r+4)} `;return t.trimEnd()}var dYe=class extends $a{account(t){return Bt({deprecated:\"faker.finance.account\",proposed:\"faker.finance.accountNumber\",since:\"8.0\",until:\"9.0\"}),this.accountNumber(t)}accountNumber(t={}){typeof t==\"number\"&&(t={length:t});let{length:r=8}=t;return this.faker.string.numeric({length:r,allowLeadingZeros:!0})}accountName(){return[this.faker.helpers.arrayElement(this.faker.definitions.finance.account_type),\"Account\"].join(\" \")}routingNumber(){let t=this.faker.string.numeric({length:8,allowLeadingZeros:!0}),r=0;for(let n=0;n<t.length;n+=3)r+=Number(t[n])*3,r+=Number(t[n+1])*7,r+=Number(t[n+2])||0;return`${t}${Math.ceil(r/10)*10-r}`}mask(t,r,n){return Bt({deprecated:\"faker.finance.mask\",proposed:\"faker.finance.maskedNumber\",since:\"8.0\",until:\"9.0\"}),this.maskedNumber({length:t,parens:r,ellipsis:n})}maskedNumber(t={}){typeof t==\"number\"&&(t={length:t});let{ellipsis:r=!0,length:n=4,parens:a=!0}=t,i=this.faker.string.numeric({length:n});return r&&(i=`...${i}`),a&&(i=`(${i})`),i}amount(t={},r=1e3,n=2,a=\"\",i=!1){typeof t==\"number\"&&(Bt({deprecated:\"faker.finance.amount(min, max, dec, symbol, autoFormat)\",proposed:\"faker.finance.amount({ min, max, dec, symbol, autoFormat })\",since:\"8.0\",until:\"9.0\"}),t={min:t});let{autoFormat:o=i,dec:l=n,max:s=r,min:u=0,symbol:c=a}=t,d=this.faker.number.float({max:s,min:u,fractionDigits:l}),f=o?d.toLocaleString(void 0,{minimumFractionDigits:l}):d.toFixed(l);return c+f}transactionType(){return this.faker.helpers.arrayElement(this.faker.definitions.finance.transaction_type)}currency(){return this.faker.helpers.arrayElement(this.faker.definitions.finance.currency)}currencyCode(){return this.currency().code}currencyName(){return this.currency().name}currencySymbol(){let t;do t=this.currency().symbol;while(t.length===0);return t}bitcoinAddress(){let t=this.faker.number.int({min:25,max:39}),r=this.faker.helpers.arrayElement([\"1\",\"3\"]);return r+=this.faker.string.alphanumeric({length:t,casing:\"mixed\",exclude:\"0OIl\"}),r}litecoinAddress(){let t=this.faker.number.int({min:26,max:33});return this.faker.string.fromCharacters(\"LM3\")+this.faker.string.fromCharacters(\"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\",t-1)}creditCardNumber(t={}){typeof t==\"string\"&&(t={issuer:t});let{issuer:r=\"\"}=t,n,a=this.faker.definitions.finance.credit_card,i=r.toLowerCase();if(i in a)n=this.faker.helpers.arrayElement(a[i]);else if(r.includes(\"#\"))n=r;else{let o=this.faker.helpers.objectValue(a);n=this.faker.helpers.arrayElement(o)}return n=n.replace(/\\//g,\"\"),this.faker.helpers.replaceCreditCardSymbols(n)}creditCardCVV(){return this.faker.string.numeric({length:3,allowLeadingZeros:!0})}creditCardIssuer(){return this.faker.helpers.objectKey(this.faker.definitions.finance.credit_card)}pin(t={}){typeof t==\"number\"&&(t={length:t});let{length:r=4}=t;if(r<1)throw new Rr(\"minimum length is 1\");return this.faker.string.numeric({length:r,allowLeadingZeros:!0})}ethereumAddress(){return this.faker.string.hexadecimal({length:40,casing:\"lower\"})}iban(t={},r){typeof t==\"boolean\"&&(Bt({deprecated:\"faker.finance.iban(formatted, countryCode)\",proposed:\"faker.finance.iban({ formatted, countryCode })\",since:\"8.0\",until:\"9.0\"}),t={formatted:t});let{countryCode:n=r,formatted:a=!1}=t,i=n?Dc.formats.find(c=>c.country===n):this.faker.helpers.arrayElement(Dc.formats);if(!i)throw new Rr(`Country code ${n} not supported.`);let o=\"\",l=0;for(let c of i.bban){let d=c.count;for(l+=c.count;d>0;)c.type===\"a\"?o+=this.faker.helpers.arrayElement(Dc.alpha):c.type===\"c\"?this.faker.datatype.boolean(.8)?o+=this.faker.number.int(9):o+=this.faker.helpers.arrayElement(Dc.alpha):d>=3&&this.faker.datatype.boolean(.3)?this.faker.datatype.boolean()?(o+=this.faker.helpers.arrayElement(Dc.pattern100),d-=2):(o+=this.faker.helpers.arrayElement(Dc.pattern10),d--):o+=this.faker.number.int(9),d--;o=o.substring(0,l)}let s=98-Dc.mod97(Dc.toDigitString(`${o}${i.country}00`));s<10&&(s=`0${s}`);let u=`${i.country}${s}${o}`;return a?cYe(u):u}bic(t={}){let{includeBranchCode:r=this.faker.datatype.boolean()}=t,n=this.faker.string.alpha({length:4,casing:\"upper\"}),a=this.faker.helpers.arrayElement(Dc.iso3166),i=this.faker.string.alphanumeric({length:2,casing:\"upper\"}),o=r?this.faker.datatype.boolean()?this.faker.string.alphanumeric({length:3,casing:\"upper\"}):\"XXX\":\"\";return`${n}${a}${i}${o}`}transactionDescription(){let t=this.amount(),r=this.faker.company.name(),n=this.transactionType(),a=this.accountNumber(),i=this.maskedNumber(),o=this.currencyCode();return`${n} transaction at ${r} using card ending with ***${i} for ${o} ${t} in account ***${a}`}},fYe=\" \",hYe=class extends $a{branch(){let t=this.faker.hacker.noun().replace(\" \",\"-\"),r=this.faker.hacker.verb().replace(\" \",\"-\");return`${t}-${r}`}commitEntry(t={}){let{merge:r=this.faker.datatype.boolean({probability:.2}),eol:n=\"CRLF\",refDate:a}=t,i=[`commit ${this.faker.git.commitSha()}`];r&&i.push(`Merge: ${this.commitSha({length:7})} ${this.commitSha({length:7})}`);let o=this.faker.person.firstName(),l=this.faker.person.lastName(),s=this.faker.person.fullName({firstName:o,lastName:l}),u=this.faker.internet.userName({firstName:o,lastName:l}),c=this.faker.helpers.arrayElement([s,u]),d=this.faker.internet.email({firstName:o,lastName:l});c=c.replace(/^[.,:;\"\\\\']|[<>\\n]|[.,:;\"\\\\']$/g,\"\"),i.push(`Author: ${c} <${d}>`,`Date: ${this.commitDate({refDate:a})}`,\"\",`${fYe.repeat(4)}${this.commitMessage()}`,\"\");let f=n===\"CRLF\"?`\\r\n`:`\n`;return i.join(f)}commitMessage(){return`${this.faker.hacker.verb()} ${this.faker.hacker.adjective()} ${this.faker.hacker.noun()}`}commitDate(t={}){let{refDate:r=this.faker.defaultRefDate()}=t,n=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],a=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],i=this.faker.date.recent({days:1,refDate:r}),o=n[i.getUTCDay()],l=a[i.getUTCMonth()],s=i.getUTCDate(),u=i.getUTCHours().toString().padStart(2,\"0\"),c=i.getUTCMinutes().toString().padStart(2,\"0\"),d=i.getUTCSeconds().toString().padStart(2,\"0\"),f=i.getUTCFullYear(),h=this.faker.number.int({min:-11,max:12}),p=Math.abs(h).toString().padStart(2,\"0\"),v=\"00\",g=h>=0?\"+\":\"-\";return`${o} ${l} ${s} ${u}:${c}:${d} ${f} ${g}${p}${v}`}commitSha(t={}){let{length:r=40}=t;return this.faker.string.hexadecimal({length:r,casing:\"lower\",prefix:\"\"})}shortSha(){return Bt({deprecated:\"faker.git.shortSha()\",proposed:\"faker.git.commitSha({ length: 7 })\",since:\"8.0\",until:\"9.0\"}),this.commitSha({length:7})}},pYe=class extends $a{abbreviation(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.abbreviation)}adjective(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.adjective)}noun(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.noun)}verb(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.verb)}ingverb(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.ingverb)}phrase(){let t={abbreviation:this.abbreviation,adjective:this.adjective,ingverb:this.ingverb,noun:this.noun,verb:this.verb},r=this.faker.helpers.arrayElement(this.faker.definitions.hacker.phrase);return this.faker.helpers.mustache(r,t)}},mYe=class{constructor(t){this.faker=t}image(t,r,n,a){return Bt({deprecated:\"faker.lorempicsum.image\",proposed:\"faker.image.urlPicsumPhotos\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,n,a)}imageGrayscale(t,r,n){return Bt({deprecated:\"faker.lorempicsum.imageGrayscale\",proposed:\"faker.image.urlPicsumPhotos\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,n)}imageBlurred(t,r,n){return Bt({deprecated:\"faker.lorempicsum.imageBlurred\",proposed:\"faker.image.urlPicsumPhotos\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,void 0,n)}imageRandomSeeded(t,r,n,a,i){return Bt({deprecated:\"faker.lorempicsum.imageRandomSeeded\",proposed:\"faker.image.urlPicsumPhotos\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,n,a,i)}imageUrl(t,r,n,a,i){Bt({deprecated:\"faker.lorempicsum.imageUrl\",proposed:\"faker.image.urlPicsumPhotos\",since:\"8.0\",until:\"9.0\"}),t=t||640,r=r||480;let o=\"https://picsum.photos\";return i&&(o+=`/seed/${i}`),o+=`/${t}/${r}`,n&&a?`${o}?grayscale&blur=${a}`:n?`${o}?grayscale`:a?`${o}?blur=${a}`:o}},vYe=class ace{constructor(t){this.faker=t;for(let r of Object.getOwnPropertyNames(ace.prototype))r===\"constructor\"||typeof this[r]!=\"function\"||(this[r]=this[r].bind(this))}imageUrl(t,r,n,a,i,o){Bt({deprecated:\"faker.placeholder.imageUrl\",proposed:\"faker.image.urlPlaceholder\",since:\"8.0\",until:\"9.0\"}),t=t||640,r=r||t;let l=\"https://via.placeholder.com\";if(l+=`/${t}x${r}`,i!=null&&(l+=`/${i.replace(\"#\",\"\").toUpperCase()}`,o!=null&&(l+=`/${o.replace(\"#\",\"\").toUpperCase()}`)),a!=null&&(l+=`.${a}`),n!=null){let s=new URLSearchParams({text:n});l+=`?${s.toString()}`}return l}randomUrl(t,r,n){return Bt({deprecated:\"faker.placeholder.randomUrl\",proposed:\"faker.image.urlPlaceholder\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,this.faker.lorem.word(),n,this.faker.color.rgb({casing:\"upper\",prefix:\"\"}),this.faker.color.rgb({casing:\"upper\",prefix:\"\"}))}},gYe=class{constructor(t){this.faker=t}image(t,r,n){return Bt({deprecated:\"faker.unsplash.image\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,void 0,n)}imageUrl(t,r,n,a){Bt({deprecated:\"faker.unsplash.imageUrl\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),t=t||640,r=r||480;let i=\"https://source.unsplash.com\";return n!=null&&(i+=`/category/${n}`),i+=`/${t}x${r}`,a!=null&&/^([A-Za-z0-9].+,[A-Za-z0-9]+)$|^([A-Za-z0-9]+)$/.test(a)&&(i+=`?${a}`),i}food(t,r,n){return Bt({deprecated:\"faker.unsplash.food\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.faker.image.unsplash.imageUrl(t,r,\"food\",n)}people(t,r,n){return Bt({deprecated:\"faker.unsplash.people\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.faker.image.unsplash.imageUrl(t,r,\"people\",n)}nature(t,r,n){return Bt({deprecated:\"faker.unsplash.nature\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.faker.image.unsplash.imageUrl(t,r,\"nature\",n)}technology(t,r,n){return Bt({deprecated:\"faker.unsplash.technology\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.faker.image.unsplash.imageUrl(t,r,\"technology\",n)}objects(t,r,n){return Bt({deprecated:\"faker.unsplash.objects\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.faker.image.unsplash.imageUrl(t,r,\"objects\",n)}buildings(t,r,n){return Bt({deprecated:\"faker.unsplash.buildings\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.faker.image.unsplash.imageUrl(t,r,\"buildings\",n)}},yYe=class extends $a{constructor(t){super(t),qr(this,\"unsplash\"),qr(this,\"lorempicsum\"),qr(this,\"placeholder\"),this.unsplash=new gYe(this.faker),this.lorempicsum=new mYe(this.faker),this.placeholder=new vYe(this.faker)}avatar(){return this.faker.helpers.arrayElement([this.avatarLegacy,this.avatarGitHub])()}avatarGitHub(){return`https://avatars.githubusercontent.com/u/${this.faker.number.int(1e8)}`}avatarLegacy(){return`https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/${this.faker.number.int(1249)}.jpg`}url(t={}){let{width:r=640,height:n=480}=t;return this.faker.helpers.arrayElement([this.urlLoremFlickr,this.urlPicsumPhotos])({width:r,height:n})}urlLoremFlickr(t={}){let{width:r=640,height:n=480,category:a}=t;return`https://loremflickr.com/${r}/${n}${a==null?\"\":`/${a}`}?lock=${this.faker.number.int()}`}urlPicsumPhotos(t={}){let{width:r=640,height:n=480,grayscale:a=!1,blur:i}=t,o=`https://picsum.photos/seed/${this.faker.string.alphanumeric({length:{min:5,max:10}})}/${r}/${n}`,l=typeof i==\"number\"&&i>=1&&i<=10;return(a||l)&&(o+=\"?\",a&&(o+=\"grayscale\"),a&&l&&(o+=\"&\"),l&&(o+=`blur=${i}`)),o}urlPlaceholder(t={}){let{width:r=this.faker.number.int({min:1,max:3999}),height:n=this.faker.number.int({min:1,max:3999}),backgroundColor:a=this.faker.color.rgb({format:\"hex\",prefix:\"\"}),textColor:i=this.faker.color.rgb({format:\"hex\",prefix:\"\"}),format:o=this.faker.helpers.arrayElement([\"gif\",\"jpeg\",\"jpg\",\"png\",\"webp\"]),text:l=this.faker.lorem.words()}=t,s=\"https://via.placeholder.com\";return s+=`/${r}`,s+=`x${n}`,s+=`/${a}`,s+=`/${i}`,s+=`.${o}`,s+=`?text=${encodeURIComponent(l)}`,s}dataUri(t={}){let{width:r=640,height:n=480,color:a=this.faker.color.rgb(),type:i=\"svg-uri\"}=t,o=`<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" baseProfile=\"full\" width=\"${r}\" height=\"${n}\"><rect width=\"100%\" height=\"100%\" fill=\"${a}\"/><text x=\"${r/2}\" y=\"${n/2}\" font-size=\"20\" alignment-baseline=\"middle\" text-anchor=\"middle\" fill=\"white\">${r}x${n}</text></svg>`;return i===\"svg-uri\"?`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(o)}`:`data:image/svg+xml;base64,${Buffer.from(o).toString(\"base64\")}`}image(t,r,n){Bt({deprecated:\"faker.image.image\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"});let a=[\"abstract\",\"animals\",\"business\",\"cats\",\"city\",\"food\",\"nightlife\",\"fashion\",\"people\",\"nature\",\"sports\",\"technics\",\"transport\"];return this[this.faker.helpers.arrayElement(a)](t,r,n)}imageUrl(t,r,n,a){Bt({deprecated:\"faker.image.imageUrl\",proposed:\"faker.image.url\",since:\"8.0\",until:\"9.0\"}),t=t||640,r=r||480;let i=`https://loremflickr.com/${t}/${r}`;return n!=null&&(i+=`/${n}`),a&&(i+=`?lock=${this.faker.number.int()}`),i}abstract(t,r,n){return Bt({deprecated:\"faker.image.abstract\",proposed:\"faker.image.urlLoremFlickr({ category: 'abstract' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"abstract\",n)}animals(t,r,n){return Bt({deprecated:\"faker.image.animals\",proposed:\"faker.image.urlLoremFlickr({ category: 'animals' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"animals\",n)}business(t,r,n){return Bt({deprecated:\"faker.image.business\",proposed:\"faker.image.urlLoremFlickr({ category: 'business' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"business\",n)}cats(t,r,n){return Bt({deprecated:\"faker.image.cats\",proposed:\"faker.image.urlLoremFlickr({ category: 'cats' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"cats\",n)}city(t,r,n){return Bt({deprecated:\"faker.image.city\",proposed:\"faker.image.urlLoremFlickr({ category: 'city' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"city\",n)}food(t,r,n){return Bt({deprecated:\"faker.image.food\",proposed:\"faker.image.urlLoremFlickr({ category: 'food' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"food\",n)}nightlife(t,r,n){return Bt({deprecated:\"faker.image.nightlife\",proposed:\"faker.image.urlLoremFlickr({ category: 'nightlife' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"nightlife\",n)}fashion(t,r,n){return Bt({deprecated:\"faker.image.fashion\",proposed:\"faker.image.urlLoremFlickr({ category: 'fashion' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"fashion\",n)}people(t,r,n){return Bt({deprecated:\"faker.image.people\",proposed:\"faker.image.urlLoremFlickr({ category: 'people' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"people\",n)}nature(t,r,n){return Bt({deprecated:\"faker.image.nature\",proposed:\"faker.image.urlLoremFlickr({ category: 'nature' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"nature\",n)}sports(t,r,n){return Bt({deprecated:\"faker.image.sports\",proposed:\"faker.image.urlLoremFlickr({ category: 'sports' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"sports\",n)}technics(t,r,n){return Bt({deprecated:\"faker.image.technics\",proposed:\"faker.image.urlLoremFlickr({ category: 'technics' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"technics\",n)}transport(t,r,n){return Bt({deprecated:\"faker.image.transport\",proposed:\"faker.image.urlLoremFlickr({ category: 'transport' }) or faker.image.url\",since:\"8.0\",until:\"9.0\"}),this.imageUrl(t,r,\"transport\",n)}},bYe=Object.fromEntries([[\"А\",\"A\"],[\"а\",\"a\"],[\"Б\",\"B\"],[\"б\",\"b\"],[\"В\",\"V\"],[\"в\",\"v\"],[\"Г\",\"G\"],[\"г\",\"g\"],[\"Д\",\"D\"],[\"д\",\"d\"],[\"ъе\",\"ye\"],[\"Ъе\",\"Ye\"],[\"ъЕ\",\"yE\"],[\"ЪЕ\",\"YE\"],[\"Е\",\"E\"],[\"е\",\"e\"],[\"Ё\",\"Yo\"],[\"ё\",\"yo\"],[\"Ж\",\"Zh\"],[\"ж\",\"zh\"],[\"З\",\"Z\"],[\"з\",\"z\"],[\"И\",\"I\"],[\"и\",\"i\"],[\"ый\",\"iy\"],[\"Ый\",\"Iy\"],[\"ЫЙ\",\"IY\"],[\"ыЙ\",\"iY\"],[\"Й\",\"Y\"],[\"й\",\"y\"],[\"К\",\"K\"],[\"к\",\"k\"],[\"Л\",\"L\"],[\"л\",\"l\"],[\"М\",\"M\"],[\"м\",\"m\"],[\"Н\",\"N\"],[\"н\",\"n\"],[\"О\",\"O\"],[\"о\",\"o\"],[\"П\",\"P\"],[\"п\",\"p\"],[\"Р\",\"R\"],[\"р\",\"r\"],[\"С\",\"S\"],[\"с\",\"s\"],[\"Т\",\"T\"],[\"т\",\"t\"],[\"У\",\"U\"],[\"у\",\"u\"],[\"Ф\",\"F\"],[\"ф\",\"f\"],[\"Х\",\"Kh\"],[\"х\",\"kh\"],[\"Ц\",\"Ts\"],[\"ц\",\"ts\"],[\"Ч\",\"Ch\"],[\"ч\",\"ch\"],[\"Ш\",\"Sh\"],[\"ш\",\"sh\"],[\"Щ\",\"Sch\"],[\"щ\",\"sch\"],[\"Ъ\",\"\"],[\"ъ\",\"\"],[\"Ы\",\"Y\"],[\"ы\",\"y\"],[\"Ь\",\"\"],[\"ь\",\"\"],[\"Э\",\"E\"],[\"э\",\"e\"],[\"Ю\",\"Yu\"],[\"ю\",\"yu\"],[\"Я\",\"Ya\"],[\"я\",\"ya\"]]),xYe=Object.fromEntries([[\"α\",\"a\"],[\"β\",\"v\"],[\"γ\",\"g\"],[\"δ\",\"d\"],[\"ε\",\"e\"],[\"ζ\",\"z\"],[\"η\",\"i\"],[\"θ\",\"th\"],[\"ι\",\"i\"],[\"κ\",\"k\"],[\"λ\",\"l\"],[\"μ\",\"m\"],[\"ν\",\"n\"],[\"ξ\",\"ks\"],[\"ο\",\"o\"],[\"π\",\"p\"],[\"ρ\",\"r\"],[\"σ\",\"s\"],[\"τ\",\"t\"],[\"υ\",\"y\"],[\"φ\",\"f\"],[\"χ\",\"x\"],[\"ψ\",\"ps\"],[\"ω\",\"o\"],[\"ά\",\"a\"],[\"έ\",\"e\"],[\"ί\",\"i\"],[\"ό\",\"o\"],[\"ύ\",\"y\"],[\"ή\",\"i\"],[\"ώ\",\"o\"],[\"ς\",\"s\"],[\"ϊ\",\"i\"],[\"ΰ\",\"y\"],[\"ϋ\",\"y\"],[\"ΐ\",\"i\"],[\"Α\",\"A\"],[\"Β\",\"B\"],[\"Γ\",\"G\"],[\"Δ\",\"D\"],[\"Ε\",\"E\"],[\"Ζ\",\"Z\"],[\"Η\",\"I\"],[\"Θ\",\"TH\"],[\"Ι\",\"I\"],[\"Κ\",\"K\"],[\"Λ\",\"L\"],[\"Μ\",\"M\"],[\"Ν\",\"N\"],[\"Ξ\",\"KS\"],[\"Ο\",\"O\"],[\"Π\",\"P\"],[\"Ρ\",\"R\"],[\"Σ\",\"S\"],[\"Τ\",\"T\"],[\"Υ\",\"Y\"],[\"Φ\",\"F\"],[\"Χ\",\"X\"],[\"Ψ\",\"PS\"],[\"Ω\",\"O\"],[\"Ά\",\"A\"],[\"Έ\",\"E\"],[\"Ί\",\"I\"],[\"Ό\",\"O\"],[\"Ύ\",\"Y\"],[\"Ή\",\"I\"],[\"Ώ\",\"O\"],[\"Ϊ\",\"I\"],[\"Ϋ\",\"Y\"]]),CYe=Object.fromEntries([[\"ء\",\"e\"],[\"آ\",\"a\"],[\"أ\",\"a\"],[\"ؤ\",\"w\"],[\"إ\",\"i\"],[\"ئ\",\"y\"],[\"ا\",\"a\"],[\"ب\",\"b\"],[\"ة\",\"t\"],[\"ت\",\"t\"],[\"ث\",\"th\"],[\"ج\",\"j\"],[\"ح\",\"h\"],[\"خ\",\"kh\"],[\"د\",\"d\"],[\"ذ\",\"dh\"],[\"ر\",\"r\"],[\"ز\",\"z\"],[\"س\",\"s\"],[\"ش\",\"sh\"],[\"ص\",\"s\"],[\"ض\",\"d\"],[\"ط\",\"t\"],[\"ظ\",\"z\"],[\"ع\",\"e\"],[\"غ\",\"gh\"],[\"ـ\",\"_\"],[\"ف\",\"f\"],[\"ق\",\"q\"],[\"ك\",\"k\"],[\"ل\",\"l\"],[\"م\",\"m\"],[\"ن\",\"n\"],[\"ه\",\"h\"],[\"و\",\"w\"],[\"ى\",\"a\"],[\"ي\",\"y\"],[\"َ‎\",\"a\"],[\"ُ\",\"u\"],[\"ِ‎\",\"i\"]]),FYe=Object.fromEntries([[\"ա\",\"a\"],[\"Ա\",\"A\"],[\"բ\",\"b\"],[\"Բ\",\"B\"],[\"գ\",\"g\"],[\"Գ\",\"G\"],[\"դ\",\"d\"],[\"Դ\",\"D\"],[\"ե\",\"ye\"],[\"Ե\",\"Ye\"],[\"զ\",\"z\"],[\"Զ\",\"Z\"],[\"է\",\"e\"],[\"Է\",\"E\"],[\"ը\",\"y\"],[\"Ը\",\"Y\"],[\"թ\",\"t\"],[\"Թ\",\"T\"],[\"ժ\",\"zh\"],[\"Ժ\",\"Zh\"],[\"ի\",\"i\"],[\"Ի\",\"I\"],[\"լ\",\"l\"],[\"Լ\",\"L\"],[\"խ\",\"kh\"],[\"Խ\",\"Kh\"],[\"ծ\",\"ts\"],[\"Ծ\",\"Ts\"],[\"կ\",\"k\"],[\"Կ\",\"K\"],[\"հ\",\"h\"],[\"Հ\",\"H\"],[\"ձ\",\"dz\"],[\"Ձ\",\"Dz\"],[\"ղ\",\"gh\"],[\"Ղ\",\"Gh\"],[\"ճ\",\"tch\"],[\"Ճ\",\"Tch\"],[\"մ\",\"m\"],[\"Մ\",\"M\"],[\"յ\",\"y\"],[\"Յ\",\"Y\"],[\"ն\",\"n\"],[\"Ն\",\"N\"],[\"շ\",\"sh\"],[\"Շ\",\"Sh\"],[\"ո\",\"vo\"],[\"Ո\",\"Vo\"],[\"չ\",\"ch\"],[\"Չ\",\"Ch\"],[\"պ\",\"p\"],[\"Պ\",\"P\"],[\"ջ\",\"j\"],[\"Ջ\",\"J\"],[\"ռ\",\"r\"],[\"Ռ\",\"R\"],[\"ս\",\"s\"],[\"Ս\",\"S\"],[\"վ\",\"v\"],[\"Վ\",\"V\"],[\"տ\",\"t\"],[\"Տ\",\"T\"],[\"ր\",\"r\"],[\"Ր\",\"R\"],[\"ց\",\"c\"],[\"Ց\",\"C\"],[\"ու\",\"u\"],[\"ՈՒ\",\"U\"],[\"Ու\",\"U\"],[\"փ\",\"p\"],[\"Փ\",\"P\"],[\"ք\",\"q\"],[\"Ք\",\"Q\"],[\"օ\",\"o\"],[\"Օ\",\"O\"],[\"ֆ\",\"f\"],[\"Ֆ\",\"F\"],[\"և\",\"yev\"]]),SYe=Object.fromEntries([[\"چ\",\"ch\"],[\"ک\",\"k\"],[\"گ\",\"g\"],[\"پ\",\"p\"],[\"ژ\",\"zh\"],[\"ی\",\"y\"]]),oG={...bYe,...xYe,...CYe,...SYe,...FYe};function wYe(e){let t=()=>e.helpers.arrayElement([\"AB\",\"AF\",\"AN\",\"AR\",\"AS\",\"AZ\",\"BE\",\"BG\",\"BN\",\"BO\",\"BR\",\"BS\",\"CA\",\"CE\",\"CO\",\"CS\",\"CU\",\"CY\",\"DA\",\"DE\",\"EL\",\"EN\",\"EO\",\"ES\",\"ET\",\"EU\",\"FA\",\"FI\",\"FJ\",\"FO\",\"FR\",\"FY\",\"GA\",\"GD\",\"GL\",\"GV\",\"HE\",\"HI\",\"HR\",\"HT\",\"HU\",\"HY\",\"ID\",\"IS\",\"IT\",\"JA\",\"JV\",\"KA\",\"KG\",\"KO\",\"KU\",\"KW\",\"KY\",\"LA\",\"LB\",\"LI\",\"LN\",\"LT\",\"LV\",\"MG\",\"MK\",\"MN\",\"MO\",\"MS\",\"MT\",\"MY\",\"NB\",\"NE\",\"NL\",\"NN\",\"NO\",\"OC\",\"PL\",\"PT\",\"RM\",\"RO\",\"RU\",\"SC\",\"SE\",\"SK\",\"SL\",\"SO\",\"SQ\",\"SR\",\"SV\",\"SW\",\"TK\",\"TR\",\"TY\",\"UK\",\"UR\",\"UZ\",\"VI\",\"VO\",\"YI\",\"ZH\"]),r=()=>{let u={chrome:[\"win\",\"mac\",\"lin\"],firefox:[\"win\",\"mac\",\"lin\"],opera:[\"win\",\"mac\",\"lin\"],safari:[\"win\",\"mac\"],iexplorer:[\"win\"]},c=e.helpers.objectKey(u),d=e.helpers.arrayElement(u[c]);return[c,d]},n=u=>e.helpers.arrayElement({lin:[\"i686\",\"x86_64\"],mac:[\"Intel\",\"PPC\",\"U; Intel\",\"U; PPC\"],win:[\"\",\"WOW64\",\"Win64; x64\"]}[u]),a=u=>{let c=\"\";for(let d=0;d<u;d++)c+=`.${e.string.numeric({allowLeadingZeros:!0})}`;return c},i={net(){return[e.number.int({min:1,max:4}),e.number.int(9),e.number.int({min:1e4,max:99999}),e.number.int(9)].join(\".\")},nt(){return[e.number.int({min:5,max:6}),e.number.int(3)].join(\".\")},ie(){return e.number.int({min:7,max:11})},trident(){return[e.number.int({min:3,max:7}),e.number.int(1)].join(\".\")},osx(u){return[10,e.number.int({min:5,max:10}),e.number.int(9)].join(u||\".\")},chrome(){return[e.number.int({min:13,max:39}),0,e.number.int({min:800,max:899}),0].join(\".\")},presto(){return`2.9.${e.number.int({min:160,max:190})}`},presto2(){return`${e.number.int({min:10,max:12})}.00`},safari(){return[e.number.int({min:531,max:538}),e.number.int(2),e.number.int(2)].join(\".\")}},o={firefox(u){let c=`${e.number.int({min:5,max:15})}${a(2)}`,d=`Gecko/20100101 Firefox/${c}`,f=n(u);return`Mozilla/5.0 ${u===\"win\"?`(Windows NT ${i.nt()}${f?`; ${f}`:\"\"}`:u===\"mac\"?`(Macintosh; ${f} Mac OS X ${i.osx()}`:`(X11; Linux ${f}`}; rv:${c.slice(0,-2)}) ${d}`},iexplorer(){let u=i.ie();return u>=11?`Mozilla/5.0 (Windows NT 6.${e.number.int({min:1,max:3})}; Trident/7.0; ${e.datatype.boolean()?\"Touch; \":\"\"}rv:11.0) like Gecko`:`Mozilla/5.0 (compatible; MSIE ${u}.0; Windows NT ${i.nt()}; Trident/${i.trident()}${e.datatype.boolean()?`; .NET CLR ${i.net()}`:\"\"})`},opera(u){let c=` Presto/${i.presto()} Version/${i.presto2()})`,d=u===\"win\"?`(Windows NT ${i.nt()}; U; ${t()}${c}`:u===\"lin\"?`(X11; Linux ${n(u)}; U; ${t()}${c}`:`(Macintosh; Intel Mac OS X ${i.osx()} U; ${t()} Presto/${i.presto()} Version/${i.presto2()})`;return`Opera/${e.number.int({min:9,max:14})}.${e.number.int(99)} ${d}`},safari(u){let c=i.safari(),d=`${e.number.int({min:4,max:7})}.${e.number.int(1)}.${e.number.int(10)}`;return`Mozilla/5.0 ${u===\"mac\"?`(Macintosh; ${n(\"mac\")} Mac OS X ${i.osx(\"_\")} rv:${e.number.int({min:2,max:6})}.0; ${t()}) `:`(Windows; U; Windows NT ${i.nt()})`}AppleWebKit/${c} (KHTML, like Gecko) Version/${d} Safari/${c}`},chrome(u){let c=i.safari();return`Mozilla/5.0 ${u===\"mac\"?`(Macintosh; ${n(\"mac\")} Mac OS X ${i.osx(\"_\")}) `:u===\"win\"?`(Windows; U; Windows NT ${i.nt()})`:`(X11; Linux ${n(u)}`} AppleWebKit/${c} (KHTML, like Gecko) Chrome/${i.chrome()} Safari/${c}`}},[l,s]=r();return o[l](s)}var EYe=class extends $a{avatar(){return Bt({deprecated:\"faker.internet.avatar()\",proposed:\"faker.image.avatarLegacy() or faker.image.avatar()\",since:\"8.4\",until:\"9.0\"}),this.faker.image.avatarLegacy()}email(t={},r,n,a){var i;(typeof t==\"string\"||r!=null||n!=null||a!=null)&&Bt({deprecated:\"faker.internet.email(firstName, lastName, provider, options)\",proposed:\"faker.internet.email({ firstName, lastName, provider, ... })\",since:\"8.0\",until:\"9.0\"}),typeof t==\"string\"&&(t={firstName:t});let{firstName:o,lastName:l=r,provider:s=n??this.faker.helpers.arrayElement(this.faker.definitions.internet.free_email),allowSpecialCharacters:u=(i=a==null?void 0:a.allowSpecialCharacters)!=null?i:!1}=t,c=this.userName({firstName:o,lastName:l});if(c=c.replace(/[^A-Za-z0-9._+-]+/g,\"\"),c=c.substring(0,50),u){let d=[...\"._-\"],f=[...\".!#$%&'*+-/=?^_`{|}~\"];c=c.replace(this.faker.helpers.arrayElement(d),this.faker.helpers.arrayElement(f))}return c=c.replace(/\\.{2,}/g,\".\"),c=c.replace(/^\\./,\"\"),c=c.replace(/\\.$/,\"\"),`${c}@${s}`}exampleEmail(t={},r,n){var a;(typeof t==\"string\"||r!=null||n!=null)&&Bt({deprecated:\"faker.internet.exampleEmail(firstName, lastName, options)\",proposed:\"faker.internet.exampleEmail({ firstName, lastName, ... })\",since:\"8.0\",until:\"9.0\"}),typeof t==\"string\"&&(t={firstName:t});let{firstName:i,lastName:o=r,allowSpecialCharacters:l=(a=n==null?void 0:n.allowSpecialCharacters)!=null?a:!1}=t,s=this.faker.helpers.arrayElement(this.faker.definitions.internet.example_email);return this.email({firstName:i,lastName:o,provider:s,allowSpecialCharacters:l})}userName(t={},r){(typeof t==\"string\"||r!=null)&&Bt({deprecated:\"faker.internet.userName(firstName, lastName)\",proposed:\"faker.internet.userName({ firstName, lastName })\",since:\"8.0\",until:\"9.0\"}),typeof t==\"string\"&&(t={firstName:t});let{firstName:n=this.faker.person.firstName(),lastName:a=r??this.faker.person.lastName(),lastName:i=r}=t,o,l=this.faker.number.int(i?1:2),s=this.faker.helpers.arrayElement([\".\",\"_\"]);switch(l){case 0:o=`${n}${s}${a}${this.faker.number.int(99)}`;break;case 1:o=`${n}${s}${a}`;break;case 2:default:o=`${n}${this.faker.number.int(99)}`;break}return o=o.normalize(\"NFKD\").replace(/[\\u0300-\\u036F]/g,\"\"),o=[...o].map(u=>{var c;if(oG[u])return oG[u];let d=(c=u.codePointAt(0))!=null?c:Number.NaN;return d<128?u:d.toString(36)}).join(\"\"),o=o.toString().replace(/'/g,\"\"),o=o.replace(/ /g,\"\"),o}displayName(t={},r){(typeof t==\"string\"||r!=null)&&Bt({deprecated:\"faker.internet.displayName(firstName, lastName)\",proposed:\"faker.internet.displayName({ firstName, lastName })\",since:\"8.0\",until:\"9.0\"}),typeof t==\"string\"&&(t={firstName:t});let{firstName:n=this.faker.person.firstName(),lastName:a=r??this.faker.person.lastName()}=t,i;switch(this.faker.number.int(2)){case 0:i=`${n}${this.faker.number.int(99)}`;break;case 1:i=n+this.faker.helpers.arrayElement([\".\",\"_\"])+a;break;case 2:default:i=`${n}${this.faker.helpers.arrayElement([\".\",\"_\"])}${a}${this.faker.number.int(99)}`;break}return i=i.toString().replace(/'/g,\"\"),i=i.replace(/ /g,\"\"),i}protocol(){let t=[\"http\",\"https\"];return this.faker.helpers.arrayElement(t)}httpMethod(){let t=[\"GET\",\"POST\",\"PUT\",\"DELETE\",\"PATCH\"];return this.faker.helpers.arrayElement(t)}httpStatusCode(t={}){let{types:r=Object.keys(this.faker.definitions.internet.http_status_code)}=t,n=this.faker.helpers.arrayElement(r);return this.faker.helpers.arrayElement(this.faker.definitions.internet.http_status_code[n])}url(t={}){let{appendSlash:r=this.faker.datatype.boolean(),protocol:n=\"https\"}=t;return`${n}://${this.domainName()}${r?\"/\":\"\"}`}domainName(){return`${this.domainWord()}.${this.domainSuffix()}`}domainSuffix(){return this.faker.helpers.arrayElement(this.faker.definitions.internet.domain_suffix)}domainWord(){return this.faker.helpers.slugify(`${this.faker.word.adjective()}-${this.faker.word.noun()}`).toLowerCase()}ip(){return this.faker.datatype.boolean()?this.ipv4():this.ipv6()}ipv4(){return Array.from({length:4},()=>this.faker.number.int(255)).join(\".\")}ipv6(){return Array.from({length:8},()=>this.faker.string.hexadecimal({length:4,casing:\"lower\",prefix:\"\"})).join(\":\")}port(){return this.faker.number.int(65535)}userAgent(){return wYe(this.faker)}color(t={},r,n){(typeof t==\"number\"||n!=null||r!=null)&&Bt({deprecated:\"faker.internet.color(redBase, greenBase, blueBase)\",proposed:\"faker.internet.color({ redBase, greenBase, blueBase })\",since:\"8.0\",until:\"9.0\"}),typeof t==\"number\"&&(t={redBase:t});let{redBase:a=0,greenBase:i=r??0,blueBase:o=n??0}=t,l=d=>Math.floor((this.faker.number.int(256)+d)/2).toString(16).padStart(2,\"0\"),s=l(a),u=l(i),c=l(o);return`#${s}${u}${c}`}mac(t={}){typeof t==\"string\"&&(t={separator:t});let{separator:r=\":\"}=t,n,a=\"\";for([\":\",\"-\",\"\"].includes(r)||(r=\":\"),n=0;n<12;n++)a+=this.faker.number.hex(15),n%2===1&&n!==11&&(a+=r);return a}password(t={},r,n,a){let i=/[aeiouAEIOU]$/,o=/[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/,l=(f,h,p,v)=>{if(v.length>=f)return v;h&&(p=o.test(v)?i:o);let g=this.faker.number.int(94)+33,y=String.fromCodePoint(g);return h&&(y=y.toLowerCase()),p.test(y)?l(f,h,p,v+y):l(f,h,p,v)};(typeof t==\"string\"||r!=null||n!=null||a!=null)&&Bt({deprecated:\"faker.internet.password(length, memorable, pattern, prefix)\",proposed:\"faker.internet.password({ length, memorable, pattern, prefix })\",since:\"8.0\",until:\"9.0\"}),typeof t==\"number\"&&(t={length:t});let{length:s=15,memorable:u=r??!1,pattern:c=n??/\\w/,prefix:d=a??\"\"}=t;return l(s,u,c,d)}emoji(t={}){let{types:r=Object.keys(this.faker.definitions.internet.emoji)}=t,n=this.faker.helpers.arrayElement(r);return this.faker.helpers.arrayElement(this.faker.definitions.internet.emoji[n])}},DYe=class extends $a{zipCode(t={}){typeof t==\"string\"&&(t={format:t});let{state:r}=t;if(r){let a=this.faker.definitions.location.postcode_by_state[r];if(a)return this.faker.helpers.fake(a);throw new Rr(`No zip code definition found for state \"${r}\"`)}let{format:n=this.faker.definitions.location.postcode}=t;return typeof n==\"string\"&&(n=[n]),n=this.faker.helpers.arrayElement(n),this.faker.helpers.replaceSymbols(n)}zipCodeByState(t={}){Bt({deprecated:\"faker.location.zipCodeByState\",proposed:\"faker.location.zipCode({ state })\",since:\"8.0\",until:\"9.0\"}),typeof t==\"string\"&&(t={state:t});let{state:r}=t;return this.zipCode({state:r})}city(){return this.faker.helpers.fake(this.faker.definitions.location.city_pattern)}cityName(){return Bt({deprecated:\"faker.location.cityName\",proposed:\"faker.location.city\",since:\"8.0\",until:\"9.0\"}),this.faker.helpers.arrayElement(this.faker.definitions.location.city_name)}buildingNumber(){return this.faker.helpers.arrayElement(this.faker.definitions.location.building_number).replace(/#+/g,t=>this.faker.string.numeric({length:t.length,allowLeadingZeros:!1}))}street(){return this.faker.helpers.fake(this.faker.definitions.location.street_pattern)}streetName(){return Bt({deprecated:\"faker.location.streetName\",proposed:\"faker.location.street\",since:\"8.0\",until:\"9.0\"}),this.faker.helpers.arrayElement(this.faker.definitions.location.street_name)}streetAddress(t={}){typeof t==\"boolean\"&&(t={useFullAddress:t});let{useFullAddress:r}=t,n=this.faker.definitions.location.street_address[r?\"full\":\"normal\"];return this.faker.helpers.fake(n)}secondaryAddress(){return this.faker.helpers.arrayElement(this.faker.definitions.location.secondary_address).replace(/#+/g,t=>this.faker.string.numeric({length:t.length,allowLeadingZeros:!1}))}county(){return this.faker.helpers.arrayElement(this.faker.definitions.location.county)}country(){return this.faker.helpers.arrayElement(this.faker.definitions.location.country)}countryCode(t={}){typeof t==\"string\"&&(t={variant:t});let{variant:r=\"alpha-2\"}=t,n=(()=>{switch(r){case\"numeric\":return\"numeric\";case\"alpha-3\":return\"alpha3\";case\"alpha-2\":default:return\"alpha2\"}})();return this.faker.helpers.arrayElement(this.faker.definitions.location.country_code)[n]}state(t={}){let{abbreviated:r=!1}=t,n=r?this.faker.definitions.location.state_abbr:this.faker.definitions.location.state;return this.faker.helpers.arrayElement(n)}stateAbbr(){return Bt({deprecated:\"faker.location.stateAbbr()\",proposed:\"faker.location.state({ abbreviated: true })\",since:\"8.0\",until:\"9.0\"}),this.state({abbreviated:!0})}latitude(t={},r=-90,n=4){typeof t==\"number\"&&(Bt({deprecated:\"faker.location.latitude(max, min, precision)\",proposed:\"faker.location.latitude({ max, min, precision })\",since:\"8.0\",until:\"9.0\"}),t={max:t});let{max:a=90,min:i=r,precision:o=n}=t;return this.faker.number.float({min:i,max:a,fractionDigits:o})}longitude(t={},r=-180,n=4){typeof t==\"number\"&&(Bt({deprecated:\"faker.location.longitude(max, min, precision)\",proposed:\"faker.location.longitude({ max, min, precision })\",since:\"8.0\",until:\"9.0\"}),t={max:t});let{max:a=180,min:i=r,precision:o=n}=t;return this.faker.number.float({max:a,min:i,fractionDigits:o})}direction(t={}){typeof t==\"boolean\"&&(Bt({deprecated:\"faker.location.direction(abbreviated)\",proposed:\"faker.location.direction({ abbreviated })\",since:\"8.0\",until:\"9.0\"}),t={abbreviated:t});let{abbreviated:r=!1}=t;return r?this.faker.helpers.arrayElement(this.faker.definitions.location.direction_abbr):this.faker.helpers.arrayElement(this.faker.definitions.location.direction)}cardinalDirection(t={}){typeof t==\"boolean\"&&(Bt({deprecated:\"faker.location.cardinalDirection(abbreviated)\",proposed:\"faker.location.cardinalDirection({ abbreviated })\",since:\"8.0\",until:\"9.0\"}),t={abbreviated:t});let{abbreviated:r=!1}=t;return r?this.faker.helpers.arrayElement(this.faker.definitions.location.direction_abbr.slice(0,4)):this.faker.helpers.arrayElement(this.faker.definitions.location.direction.slice(0,4))}ordinalDirection(t={}){typeof t==\"boolean\"&&(Bt({deprecated:\"faker.location.ordinalDirection(abbreviated)\",proposed:\"faker.location.ordinalDirection({ abbreviated })\",since:\"8.0\",until:\"9.0\"}),t={abbreviated:t});let{abbreviated:r=!1}=t;return r?this.faker.helpers.arrayElement(this.faker.definitions.location.direction_abbr.slice(4,8)):this.faker.helpers.arrayElement(this.faker.definitions.location.direction.slice(4,8))}nearbyGPSCoordinate(t={},r=10,n=!1){Array.isArray(t)&&(Bt({deprecated:\"faker.location.nearbyGPSCoordinate(coordinate, radius, isMetric)\",proposed:\"faker.location.nearbyGPSCoordinate({ origin, radius, isMetric })\",since:\"8.0\",until:\"9.0\"}),t={origin:t});let{origin:a,radius:i=r,isMetric:o=n}=t;if(a==null)return[this.latitude(),this.longitude()];let l=this.faker.number.float({max:2*Math.PI,fractionDigits:5}),s=o?i:i*1.60934,u=this.faker.number.float({max:s,fractionDigits:3})*.995,c=4e4/360,d=u/c,f=[a[0]+Math.sin(l)*d,a[1]+Math.cos(l)*d];return f[0]=f[0]%180,(f[0]<-90||f[0]>90)&&(f[0]=Math.sign(f[0])*180-f[0],f[1]+=180),f[1]=(f[1]%360+540)%360-180,[f[0],f[1]]}timeZone(){return this.faker.helpers.arrayElement(this.faker.definitions.location.time_zone)}};function AYe(e,t,r=n=>n){let n={};for(let a of e){let i=t(a);n[i]===void 0&&(n[i]=[]),n[i].push(r(a))}return n}var F5={fail:()=>{throw new Rr(\"No words found that match the given length.\")},closest:(e,t)=>{let r=AYe(e,l=>l.length),n=Object.keys(r).map(Number),a=Math.min(...n),i=Math.max(...n),o=Math.min(t.min-a,i-t.max);return e.filter(l=>l.length===t.min-o||l.length===t.max+o)},shortest:e=>{let t=Math.min(...e.map(r=>r.length));return e.filter(r=>r.length===t)},longest:e=>{let t=Math.max(...e.map(r=>r.length));return e.filter(r=>r.length===t)},\"any-length\":e=>[...e]};function Wd(e){let{wordList:t,length:r,strategy:n=\"any-length\"}=e;if(r){let a=typeof r==\"number\"?o=>o.length===r:o=>o.length>=r.min&&o.length<=r.max,i=t.filter(a);return i.length>0?i:typeof r==\"number\"?F5[n](t,{min:r,max:r}):F5[n](t,r)}else if(n===\"shortest\"||n===\"longest\")return F5[n](t);return[...t]}var _Ye=class extends $a{word(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.lorem.words}))}words(t=3){return this.faker.helpers.multiple(()=>this.word(),{count:t}).join(\" \")}sentence(t={min:3,max:10}){let r=this.words(t);return`${r.charAt(0).toUpperCase()+r.substring(1)}.`}slug(t=3){let r=this.words(t);return this.faker.helpers.slugify(r)}sentences(t={min:2,max:6},r=\" \"){return this.faker.helpers.multiple(()=>this.sentence(),{count:t}).join(r)}paragraph(t=3){return this.sentences(t)}paragraphs(t=3,r=`\n`){return this.faker.helpers.multiple(()=>this.paragraph(),{count:t}).join(r)}text(){let t=[\"sentence\",\"sentences\",\"paragraph\",\"paragraphs\",\"lines\"],r=this.faker.helpers.arrayElement(t);return this[r]()}lines(t={min:1,max:5}){return this.sentences(t,`\n`)}},TYe=class extends $a{genre(){return this.faker.helpers.arrayElement(this.faker.definitions.music.genre)}songName(){return this.faker.helpers.arrayElement(this.faker.definitions.music.song_name)}},IYe=class extends $a{number(t){return t!=null&&Bt({deprecated:\"faker.phone.number(format)\",proposed:\"faker.phone.number(), faker.string.numeric() or faker.helpers.fromRegExp()\",since:\"8.1\",until:\"9.0\"}),t=t??this.faker.helpers.arrayElement(this.faker.definitions.phone_number.formats),fM(this.faker,t)}imei(){return this.faker.helpers.replaceCreditCardSymbols(\"##-######-######-L\",\"#\")}},kYe=class extends $a{word(){Bt({deprecated:\"faker.random.word()\",proposed:\"faker.lorem.word() or faker.word.sample()\",since:\"8.0\",until:\"9.0\"});let t=[()=>this.faker.location.cardinalDirection(),this.faker.location.country,this.faker.location.county,()=>this.faker.location.direction(),()=>this.faker.location.ordinalDirection(),this.faker.location.state,this.faker.location.street,this.faker.color.human,this.faker.commerce.department,this.faker.commerce.product,this.faker.commerce.productAdjective,this.faker.commerce.productMaterial,this.faker.commerce.productName,this.faker.company.buzzAdjective,this.faker.company.buzzNoun,this.faker.company.buzzVerb,this.faker.company.catchPhraseAdjective,this.faker.company.catchPhraseDescriptor,this.faker.company.catchPhraseNoun,this.faker.finance.accountName,this.faker.finance.currencyName,this.faker.finance.transactionType,this.faker.hacker.abbreviation,this.faker.hacker.adjective,this.faker.hacker.ingverb,this.faker.hacker.noun,this.faker.hacker.verb,this.faker.lorem.word,this.faker.music.genre,this.faker.person.gender,this.faker.person.jobArea,this.faker.person.jobDescriptor,this.faker.person.jobTitle,this.faker.person.jobType,this.faker.person.sex,()=>this.faker.science.chemicalElement().name,()=>this.faker.science.unit().name,this.faker.vehicle.bicycle,this.faker.vehicle.color,this.faker.vehicle.fuel,this.faker.vehicle.manufacturer,this.faker.vehicle.type,this.faker.word.adjective,this.faker.word.adverb,this.faker.word.conjunction,this.faker.word.interjection,this.faker.word.noun,this.faker.word.preposition,this.faker.word.verb],r=[\"!\",\"#\",\"%\",\"&\",\"*\",\")\",\"(\",\"+\",\"=\",\".\",\"<\",\">\",\"{\",\"}\",\"[\",\"]\",\":\",\";\",\"'\",'\"',\"_\",\"-\"],n=\"\",a=0;do{let i=this.faker.helpers.arrayElement(t);try{n=i()}catch{if(a++,a>100)throw new Rr(\"No matching word data available for the current locale\");continue}}while(!n||r.some(i=>n.includes(i)));return this.faker.helpers.arrayElement(n.split(\" \"))}words(t={min:1,max:3}){return Bt({deprecated:\"faker.random.words()\",proposed:\"faker.lorem.words() or faker.word.words()\",since:\"8.0\",until:\"9.0\"}),this.faker.helpers.multiple(this.word,{count:t}).join(\" \")}locale(){throw new Rr(\"This method has been removed. Please use `faker.helpers.objectKey(allLocales/allFakers)` instead.\")}alpha(t={}){return Bt({deprecated:\"faker.random.alpha()\",proposed:\"faker.string.alpha()\",since:\"8.0\",until:\"9.0\"}),typeof t==\"number\"?this.faker.string.alpha(t):this.faker.string.alpha({length:t.count,casing:t.casing,exclude:t.bannedChars})}alphaNumeric(t=1,r={}){return Bt({deprecated:\"faker.random.alphaNumeric()\",proposed:\"faker.string.alphanumeric()\",since:\"8.0\",until:\"9.0\"}),this.faker.string.alphanumeric({length:t,exclude:r.bannedChars,casing:r.casing})}numeric(t=1,r={}){return Bt({deprecated:\"faker.random.numeric()\",proposed:\"faker.string.numeric()\",since:\"8.0\",until:\"9.0\"}),this.faker.string.numeric({length:t,allowLeadingZeros:r.allowLeadingZeros,exclude:r.bannedDigits})}},RYe=class extends $a{chemicalElement(){return this.faker.helpers.arrayElement(this.faker.definitions.science.chemicalElement)}unit(){return this.faker.helpers.arrayElement(this.faker.definitions.science.unit)}},MYe=[\"video\",\"audio\",\"image\",\"text\",\"application\"],PYe=[\"application/pdf\",\"audio/mpeg\",\"audio/wav\",\"image/png\",\"image/jpeg\",\"image/gif\",\"video/mp4\",\"video/mpeg\",\"text/html\"],OYe=[\"en\",\"wl\",\"ww\"],lG={index:\"o\",slot:\"s\",mac:\"x\",pci:\"p\"},BYe=[\"SUN\",\"MON\",\"TUE\",\"WED\",\"THU\",\"FRI\",\"SAT\"],NYe=class extends $a{fileName(t={}){let{extensionCount:r=1}=t,n=this.faker.word.words().toLowerCase().replace(/\\W/g,\"_\"),a=this.faker.helpers.multiple(()=>this.fileExt(),{count:r}).join(\".\");return a.length===0?n:`${n}.${a}`}commonFileName(t){return`${this.fileName({extensionCount:0})}.${t||this.commonFileExt()}`}mimeType(){let t=Object.keys(this.faker.definitions.system.mimeTypes);return this.faker.helpers.arrayElement(t)}commonFileType(){return this.faker.helpers.arrayElement(MYe)}commonFileExt(){return this.fileExt(this.faker.helpers.arrayElement(PYe))}fileType(){let t=this.faker.definitions.system.mimeTypes,r=new Set(Object.keys(t).map(n=>n.split(\"/\")[0]));return this.faker.helpers.arrayElement([...r])}fileExt(t){let r=this.faker.definitions.system.mimeTypes;if(typeof t==\"string\")return this.faker.helpers.arrayElement(r[t].extensions);let n=new Set(Object.values(r).flatMap(({extensions:a})=>a));return this.faker.helpers.arrayElement([...n])}directoryPath(){let t=this.faker.definitions.system.directoryPaths;return this.faker.helpers.arrayElement(t)}filePath(){return`${this.directoryPath()}/${this.fileName()}`}semver(){return[this.faker.number.int(9),this.faker.number.int(9),this.faker.number.int(9)].join(\".\")}networkInterface(t={}){var r,n,a,i,o;let{interfaceType:l=this.faker.helpers.arrayElement(OYe),interfaceSchema:s=this.faker.helpers.objectKey(lG)}=t,u,c=\"\",d=()=>this.faker.string.numeric({allowLeadingZeros:!0});switch(s){case\"index\":u=d();break;case\"slot\":u=`${d()}${(r=this.faker.helpers.maybe(()=>`f${d()}`))!=null?r:\"\"}${(n=this.faker.helpers.maybe(()=>`d${d()}`))!=null?n:\"\"}`;break;case\"mac\":u=this.faker.internet.mac(\"\");break;case\"pci\":c=(a=this.faker.helpers.maybe(()=>`P${d()}`))!=null?a:\"\",u=`${d()}s${d()}${(i=this.faker.helpers.maybe(()=>`f${d()}`))!=null?i:\"\"}${(o=this.faker.helpers.maybe(()=>`d${d()}`))!=null?o:\"\"}`;break}return`${c}${l}${lG[s]}${u}`}cron(t={}){let{includeYear:r=!1,includeNonStandard:n=!1}=t,a=[this.faker.number.int(59),\"*\"],i=[this.faker.number.int(23),\"*\"],o=[this.faker.number.int({min:1,max:31}),\"*\",\"?\"],l=[this.faker.number.int({min:1,max:12}),\"*\"],s=[this.faker.number.int(6),this.faker.helpers.arrayElement(BYe),\"*\",\"?\"],u=[this.faker.number.int({min:1970,max:2099}),\"*\"],c=this.faker.helpers.arrayElement(a),d=this.faker.helpers.arrayElement(i),f=this.faker.helpers.arrayElement(o),h=this.faker.helpers.arrayElement(l),p=this.faker.helpers.arrayElement(s),v=this.faker.helpers.arrayElement(u),g=`${c} ${d} ${f} ${h} ${p}`;r&&(g+=` ${v}`);let y=[\"@annually\",\"@daily\",\"@hourly\",\"@monthly\",\"@reboot\",\"@weekly\",\"@yearly\"];return!n||this.faker.datatype.boolean()?g:this.faker.helpers.arrayElement(y)}},$Ye=class extends $a{vehicle(){return`${this.manufacturer()} ${this.model()}`}manufacturer(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.manufacturer)}model(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.model)}type(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.type)}fuel(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.fuel)}vin(){let t=[\"o\",\"i\",\"q\",\"O\",\"I\",\"Q\"];return`${this.faker.string.alphanumeric({length:10,casing:\"upper\",exclude:t})}${this.faker.string.alpha({length:1,casing:\"upper\",exclude:t})}${this.faker.string.alphanumeric({length:1,casing:\"upper\",exclude:t})}${this.faker.number.int({min:1e4,max:99999})}`}color(){return this.faker.color.human()}vrm(){return`${this.faker.string.alpha({length:2,casing:\"upper\"})}${this.faker.string.numeric({length:2,allowLeadingZeros:!0})}${this.faker.string.alpha({length:3,casing:\"upper\"})}`}bicycle(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.bicycle_type)}},LYe=class extends $a{adjective(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.word.adjective}))}adverb(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.word.adverb}))}conjunction(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.word.conjunction}))}interjection(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.word.interjection}))}noun(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.word.noun}))}preposition(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.word.preposition}))}verb(t={}){let r=typeof t==\"number\"?{length:t}:t;return this.faker.helpers.arrayElement(Wd({...r,wordList:this.faker.definitions.word.verb}))}sample(t={}){let r=this.faker.helpers.shuffle([this.adjective,this.adverb,this.conjunction,this.interjection,this.noun,this.preposition,this.verb]);for(let n of r)try{return n(t)}catch{continue}throw new Rr(\"No matching word data available for the current locale\")}words(t={}){typeof t==\"number\"&&(t={count:t});let{count:r={min:1,max:3}}=t;return this.faker.helpers.multiple(()=>this.sample(),{count:r}).join(\" \")}},jYe=class extends nce{constructor(t){super({randomizer:t.randomizer}),qr(this,\"rawDefinitions\"),qr(this,\"definitions\"),qr(this,\"random\",new kYe(this)),qr(this,\"airline\",new PKe(this)),qr(this,\"animal\",new aYe(this)),qr(this,\"color\",new NKe(this)),qr(this,\"commerce\",new oYe(this)),qr(this,\"company\",new lYe(this)),qr(this,\"database\",new sYe(this)),qr(this,\"date\",new WKe(this)),qr(this,\"finance\",new dYe(this)),qr(this,\"git\",new hYe(this)),qr(this,\"hacker\",new pYe(this)),qr(this,\"helpers\",new eYe(this)),qr(this,\"image\",new yYe(this)),qr(this,\"internet\",new EYe(this)),qr(this,\"location\",new DYe(this)),qr(this,\"lorem\",new _Ye(this)),qr(this,\"music\",new TYe(this)),qr(this,\"person\",new jKe(this)),qr(this,\"phone\",new IYe(this)),qr(this,\"science\",new RYe(this)),qr(this,\"system\",new NYe(this)),qr(this,\"vehicle\",new $Ye(this)),qr(this,\"word\",new LYe(this));let{locales:r}=t;if(r!=null){Bt({deprecated:\"new Faker({ locales: {a, b}, locale: 'a', localeFallback: 'b' })\",proposed:\"new Faker({ locale: [a, b, ...] }) or new Faker({ locale: a })\",since:\"8.0\",until:\"9.0\"});let{locale:a=\"en\",localeFallback:i=\"en\"}=t;t={locale:[r[a],r[i]]}}let{locale:n}=t;if(Array.isArray(n)){if(n.length===0)throw new Rr(\"The locale option must contain at least one locale definition.\");n=nYe(n)}this.rawDefinitions=n,this.definitions=$Ke(this.rawDefinitions)}get address(){return Bt({deprecated:\"faker.address\",proposed:\"faker.location\",since:\"8.0\",until:\"10.0\"}),this.location}get name(){return Bt({deprecated:\"faker.name\",proposed:\"faker.person\",since:\"8.0\",until:\"10.0\"}),this.person}getMetadata(){var t;return(t=this.rawDefinitions.metadata)!=null?t:{}}get locales(){throw new Rr(\"The locales property has been removed. Please use the constructor instead.\")}set locales(t){throw new Rr(\"The locales property has been removed. Please use the constructor instead.\")}get locale(){throw new Rr(\"The locale property has been removed. Please use the constructor instead.\")}set locale(t){throw new Rr(\"The locale property has been removed. Please use the constructor instead.\")}get localeFallback(){throw new Rr(\"The localeFallback property has been removed. Please use the constructor instead.\")}set localeFallback(t){throw new Rr(\"The localeFallback property has been removed. Please use the constructor instead.\")}setLocale(){throw new Rr(\"This method has been removed. Please use the constructor instead.\")}},zYe=[\"CIE 1931 XYZ\",\"CIEUVW\",\"Uniform Color Spaces (UCSs)\",\"CIELUV\",\"CIELAB\",\"HSLuv\",\"sRGB\",\"Adobe RGB\",\"Adobe Wide Gamut RGB\",\"Rec. 2100\",\"ProPhoto RGB Color Space\",\"scRGB\",\"DCI-P3\",\"Display-P3\",\"Rec. 601\",\"Rec. 709\",\"Academy Color Encoding System (ACES)\",\"Rec. 2020\",\"YPbPr\",\"YDbDr\",\"YIQ\",\"xvYCC\",\"sYCC\",\"HSV\",\"HSL\",\"HWB\",\"RGBA\",\"HSLA\",\"LCh\",\"CMY\",\"CMYK\",\"Munsell Color System\",\"Natural Color System (NSC)\",\"Pantone Matching System (PMS)\",\"RAL\",\"Federal Standard 595C\",\"British Standard Colour (BS)\",\"HKS\",\"LMS\",\"RG\",\"RGK\"],HYe={space:zYe},VYe=HYe,WYe=[\"utf8_unicode_ci\",\"utf8_general_ci\",\"utf8_bin\",\"ascii_bin\",\"ascii_general_ci\",\"cp1250_bin\",\"cp1250_general_ci\"],GYe=[\"InnoDB\",\"MyISAM\",\"MEMORY\",\"CSV\",\"BLACKHOLE\",\"ARCHIVE\"],UYe=[\"int\",\"varchar\",\"text\",\"date\",\"datetime\",\"tinyint\",\"time\",\"timestamp\",\"smallint\",\"mediumint\",\"bigint\",\"decimal\",\"float\",\"double\",\"real\",\"bit\",\"boolean\",\"serial\",\"blob\",\"binary\",\"enum\",\"set\",\"geometry\",\"point\"],KYe={collation:WYe,engine:GYe,type:UYe},YYe=KYe,qYe=[\"ADP\",\"AGP\",\"AI\",\"API\",\"ASCII\",\"CLI\",\"COM\",\"CSS\",\"DNS\",\"DRAM\",\"EXE\",\"FTP\",\"GB\",\"HDD\",\"HEX\",\"HTTP\",\"IB\",\"IP\",\"JBOD\",\"JSON\",\"OCR\",\"PCI\",\"PNG\",\"RAM\",\"RSS\",\"SAS\",\"SCSI\",\"SDD\",\"SMS\",\"SMTP\",\"SQL\",\"SSD\",\"SSL\",\"TCP\",\"THX\",\"TLS\",\"UDP\",\"USB\",\"UTF8\",\"VGA\",\"XML\",\"XSS\"],XYe={abbreviation:qYe},JYe=XYe,ZYe={smiley:[\"😀\",\"😃\",\"😄\",\"😁\",\"😆\",\"😅\",\"🤣\",\"😂\",\"🙂\",\"🙃\",\"😉\",\"😊\",\"😇\",\"🥰\",\"😍\",\"🤩\",\"😘\",\"😗\",\"☺️\",\"😚\",\"😙\",\"🥲\",\"😋\",\"😛\",\"😜\",\"🤪\",\"😝\",\"🤑\",\"🤗\",\"🤭\",\"🤫\",\"🤔\",\"🤐\",\"🤨\",\"😐\",\"😑\",\"😶\",\"😶‍🌫️\",\"😏\",\"😒\",\"🙄\",\"😬\",\"😮‍💨\",\"🤥\",\"😌\",\"😔\",\"😪\",\"🤤\",\"😴\",\"😷\",\"🤒\",\"🤕\",\"🤢\",\"🤮\",\"🤧\",\"🥵\",\"🥶\",\"🥴\",\"😵\",\"😵‍💫\",\"🤯\",\"🤠\",\"🥳\",\"🥸\",\"😎\",\"🤓\",\"🧐\",\"😕\",\"😟\",\"🙁\",\"☹️\",\"😮\",\"😯\",\"😲\",\"😳\",\"🥺\",\"😦\",\"😧\",\"😨\",\"😰\",\"😥\",\"😢\",\"😭\",\"😱\",\"😖\",\"😣\",\"😞\",\"😓\",\"😩\",\"😫\",\"🥱\",\"😤\",\"😡\",\"😠\",\"🤬\",\"😈\",\"👿\",\"💀\",\"☠️\",\"💩\",\"🤡\",\"👹\",\"👺\",\"👻\",\"👽\",\"👾\",\"🤖\",\"😺\",\"😸\",\"😹\",\"😻\",\"😼\",\"😽\",\"🙀\",\"😿\",\"😾\",\"🙈\",\"🙉\",\"🙊\",\"💋\",\"💌\",\"💘\",\"💝\",\"💖\",\"💗\",\"💓\",\"💞\",\"💕\",\"💟\",\"❣️\",\"💔\",\"❤️‍🔥\",\"❤️‍🩹\",\"❤️\",\"🧡\",\"💛\",\"💚\",\"💙\",\"💜\",\"🤎\",\"🖤\",\"🤍\",\"💯\",\"💢\",\"💥\",\"💫\",\"💦\",\"💨\",\"🕳️\",\"💣\",\"💬\",\"👁️‍🗨️\",\"🗨️\",\"🗯️\",\"💭\",\"💤\"],body:[\"👋\",\"👋🏻\",\"👋🏼\",\"👋🏽\",\"👋🏾\",\"👋🏿\",\"🤚\",\"🤚🏻\",\"🤚🏼\",\"🤚🏽\",\"🤚🏾\",\"🤚🏿\",\"🖐️\",\"🖐🏻\",\"🖐🏼\",\"🖐🏽\",\"🖐🏾\",\"🖐🏿\",\"✋\",\"✋🏻\",\"✋🏼\",\"✋🏽\",\"✋🏾\",\"✋🏿\",\"🖖\",\"🖖🏻\",\"🖖🏼\",\"🖖🏽\",\"🖖🏾\",\"🖖🏿\",\"👌\",\"👌🏻\",\"👌🏼\",\"👌🏽\",\"👌🏾\",\"👌🏿\",\"🤌\",\"🤌🏻\",\"🤌🏼\",\"🤌🏽\",\"🤌🏾\",\"🤌🏿\",\"🤏\",\"🤏🏻\",\"🤏🏼\",\"🤏🏽\",\"🤏🏾\",\"🤏🏿\",\"✌️\",\"✌🏻\",\"✌🏼\",\"✌🏽\",\"✌🏾\",\"✌🏿\",\"🤞\",\"🤞🏻\",\"🤞🏼\",\"🤞🏽\",\"🤞🏾\",\"🤞🏿\",\"🤟\",\"🤟🏻\",\"🤟🏼\",\"🤟🏽\",\"🤟🏾\",\"🤟🏿\",\"🤘\",\"🤘🏻\",\"🤘🏼\",\"🤘🏽\",\"🤘🏾\",\"🤘🏿\",\"🤙\",\"🤙🏻\",\"🤙🏼\",\"🤙🏽\",\"🤙🏾\",\"🤙🏿\",\"👈\",\"👈🏻\",\"👈🏼\",\"👈🏽\",\"👈🏾\",\"👈🏿\",\"👉\",\"👉🏻\",\"👉🏼\",\"👉🏽\",\"👉🏾\",\"👉🏿\",\"👆\",\"👆🏻\",\"👆🏼\",\"👆🏽\",\"👆🏾\",\"👆🏿\",\"🖕\",\"🖕🏻\",\"🖕🏼\",\"🖕🏽\",\"🖕🏾\",\"🖕🏿\",\"👇\",\"👇🏻\",\"👇🏼\",\"👇🏽\",\"👇🏾\",\"👇🏿\",\"☝️\",\"☝🏻\",\"☝🏼\",\"☝🏽\",\"☝🏾\",\"☝🏿\",\"👍\",\"👍🏻\",\"👍🏼\",\"👍🏽\",\"👍🏾\",\"👍🏿\",\"👎\",\"👎🏻\",\"👎🏼\",\"👎🏽\",\"👎🏾\",\"👎🏿\",\"✊\",\"✊🏻\",\"✊🏼\",\"✊🏽\",\"✊🏾\",\"✊🏿\",\"👊\",\"👊🏻\",\"👊🏼\",\"👊🏽\",\"👊🏾\",\"👊🏿\",\"🤛\",\"🤛🏻\",\"🤛🏼\",\"🤛🏽\",\"🤛🏾\",\"🤛🏿\",\"🤜\",\"🤜🏻\",\"🤜🏼\",\"🤜🏽\",\"🤜🏾\",\"🤜🏿\",\"👏\",\"👏🏻\",\"👏🏼\",\"👏🏽\",\"👏🏾\",\"👏🏿\",\"🙌\",\"🙌🏻\",\"🙌🏼\",\"🙌🏽\",\"🙌🏾\",\"🙌🏿\",\"👐\",\"👐🏻\",\"👐🏼\",\"👐🏽\",\"👐🏾\",\"👐🏿\",\"🤲\",\"🤲🏻\",\"🤲🏼\",\"🤲🏽\",\"🤲🏾\",\"🤲🏿\",\"🤝\",\"🙏\",\"🙏🏻\",\"🙏🏼\",\"🙏🏽\",\"🙏🏾\",\"🙏🏿\",\"✍️\",\"✍🏻\",\"✍🏼\",\"✍🏽\",\"✍🏾\",\"✍🏿\",\"💅\",\"💅🏻\",\"💅🏼\",\"💅🏽\",\"💅🏾\",\"💅🏿\",\"🤳\",\"🤳🏻\",\"🤳🏼\",\"🤳🏽\",\"🤳🏾\",\"🤳🏿\",\"💪\",\"💪🏻\",\"💪🏼\",\"💪🏽\",\"💪🏾\",\"💪🏿\",\"🦾\",\"🦿\",\"🦵\",\"🦵🏻\",\"🦵🏼\",\"🦵🏽\",\"🦵🏾\",\"🦵🏿\",\"🦶\",\"🦶🏻\",\"🦶🏼\",\"🦶🏽\",\"🦶🏾\",\"🦶🏿\",\"👂\",\"👂🏻\",\"👂🏼\",\"👂🏽\",\"👂🏾\",\"👂🏿\",\"🦻\",\"🦻🏻\",\"🦻🏼\",\"🦻🏽\",\"🦻🏾\",\"🦻🏿\",\"👃\",\"👃🏻\",\"👃🏼\",\"👃🏽\",\"👃🏾\",\"👃🏿\",\"🧠\",\"🫀\",\"🫁\",\"🦷\",\"🦴\",\"👀\",\"👁️\",\"👅\",\"👄\"],person:[\"👶\",\"👶🏻\",\"👶🏼\",\"👶🏽\",\"👶🏾\",\"👶🏿\",\"🧒\",\"🧒🏻\",\"🧒🏼\",\"🧒🏽\",\"🧒🏾\",\"🧒🏿\",\"👦\",\"👦🏻\",\"👦🏼\",\"👦🏽\",\"👦🏾\",\"👦🏿\",\"👧\",\"👧🏻\",\"👧🏼\",\"👧🏽\",\"👧🏾\",\"👧🏿\",\"🧑\",\"🧑🏻\",\"🧑🏼\",\"🧑🏽\",\"🧑🏾\",\"🧑🏿\",\"👱\",\"👱🏻\",\"👱🏼\",\"👱🏽\",\"👱🏾\",\"👱🏿\",\"👨\",\"👨🏻\",\"👨🏼\",\"👨🏽\",\"👨🏾\",\"👨🏿\",\"🧔\",\"🧔🏻\",\"🧔🏼\",\"🧔🏽\",\"🧔🏾\",\"🧔🏿\",\"🧔‍♂️\",\"🧔🏻‍♂️\",\"🧔🏼‍♂️\",\"🧔🏽‍♂️\",\"🧔🏾‍♂️\",\"🧔🏿‍♂️\",\"🧔‍♀️\",\"🧔🏻‍♀️\",\"🧔🏼‍♀️\",\"🧔🏽‍♀️\",\"🧔🏾‍♀️\",\"🧔🏿‍♀️\",\"👨‍🦰\",\"👨🏻‍🦰\",\"👨🏼‍🦰\",\"👨🏽‍🦰\",\"👨🏾‍🦰\",\"👨🏿‍🦰\",\"👨‍🦱\",\"👨🏻‍🦱\",\"👨🏼‍🦱\",\"👨🏽‍🦱\",\"👨🏾‍🦱\",\"👨🏿‍🦱\",\"👨‍🦳\",\"👨🏻‍🦳\",\"👨🏼‍🦳\",\"👨🏽‍🦳\",\"👨🏾‍🦳\",\"👨🏿‍🦳\",\"👨‍🦲\",\"👨🏻‍🦲\",\"👨🏼‍🦲\",\"👨🏽‍🦲\",\"👨🏾‍🦲\",\"👨🏿‍🦲\",\"👩\",\"👩🏻\",\"👩🏼\",\"👩🏽\",\"👩🏾\",\"👩🏿\",\"👩‍🦰\",\"👩🏻‍🦰\",\"👩🏼‍🦰\",\"👩🏽‍🦰\",\"👩🏾‍🦰\",\"👩🏿‍🦰\",\"🧑‍🦰\",\"🧑🏻‍🦰\",\"🧑🏼‍🦰\",\"🧑🏽‍🦰\",\"🧑🏾‍🦰\",\"🧑🏿‍🦰\",\"👩‍🦱\",\"👩🏻‍🦱\",\"👩🏼‍🦱\",\"👩🏽‍🦱\",\"👩🏾‍🦱\",\"👩🏿‍🦱\",\"🧑‍🦱\",\"🧑🏻‍🦱\",\"🧑🏼‍🦱\",\"🧑🏽‍🦱\",\"🧑🏾‍🦱\",\"🧑🏿‍🦱\",\"👩‍🦳\",\"👩🏻‍🦳\",\"👩🏼‍🦳\",\"👩🏽‍🦳\",\"👩🏾‍🦳\",\"👩🏿‍🦳\",\"🧑‍🦳\",\"🧑🏻‍🦳\",\"🧑🏼‍🦳\",\"🧑🏽‍🦳\",\"🧑🏾‍🦳\",\"🧑🏿‍🦳\",\"👩‍🦲\",\"👩🏻‍🦲\",\"👩🏼‍🦲\",\"👩🏽‍🦲\",\"👩🏾‍🦲\",\"👩🏿‍🦲\",\"🧑‍🦲\",\"🧑🏻‍🦲\",\"🧑🏼‍🦲\",\"🧑🏽‍🦲\",\"🧑🏾‍🦲\",\"🧑🏿‍🦲\",\"👱‍♀️\",\"👱🏻‍♀️\",\"👱🏼‍♀️\",\"👱🏽‍♀️\",\"👱🏾‍♀️\",\"👱🏿‍♀️\",\"👱‍♂️\",\"👱🏻‍♂️\",\"👱🏼‍♂️\",\"👱🏽‍♂️\",\"👱🏾‍♂️\",\"👱🏿‍♂️\",\"🧓\",\"🧓🏻\",\"🧓🏼\",\"🧓🏽\",\"🧓🏾\",\"🧓🏿\",\"👴\",\"👴🏻\",\"👴🏼\",\"👴🏽\",\"👴🏾\",\"👴🏿\",\"👵\",\"👵🏻\",\"👵🏼\",\"👵🏽\",\"👵🏾\",\"👵🏿\",\"🙍\",\"🙍🏻\",\"🙍🏼\",\"🙍🏽\",\"🙍🏾\",\"🙍🏿\",\"🙍‍♂️\",\"🙍🏻‍♂️\",\"🙍🏼‍♂️\",\"🙍🏽‍♂️\",\"🙍🏾‍♂️\",\"🙍🏿‍♂️\",\"🙍‍♀️\",\"🙍🏻‍♀️\",\"🙍🏼‍♀️\",\"🙍🏽‍♀️\",\"🙍🏾‍♀️\",\"🙍🏿‍♀️\",\"🙎\",\"🙎🏻\",\"🙎🏼\",\"🙎🏽\",\"🙎🏾\",\"🙎🏿\",\"🙎‍♂️\",\"🙎🏻‍♂️\",\"🙎🏼‍♂️\",\"🙎🏽‍♂️\",\"🙎🏾‍♂️\",\"🙎🏿‍♂️\",\"🙎‍♀️\",\"🙎🏻‍♀️\",\"🙎🏼‍♀️\",\"🙎🏽‍♀️\",\"🙎🏾‍♀️\",\"🙎🏿‍♀️\",\"🙅\",\"🙅🏻\",\"🙅🏼\",\"🙅🏽\",\"🙅🏾\",\"🙅🏿\",\"🙅‍♂️\",\"🙅🏻‍♂️\",\"🙅🏼‍♂️\",\"🙅🏽‍♂️\",\"🙅🏾‍♂️\",\"🙅🏿‍♂️\",\"🙅‍♀️\",\"🙅🏻‍♀️\",\"🙅🏼‍♀️\",\"🙅🏽‍♀️\",\"🙅🏾‍♀️\",\"🙅🏿‍♀️\",\"🙆\",\"🙆🏻\",\"🙆🏼\",\"🙆🏽\",\"🙆🏾\",\"🙆🏿\",\"🙆‍♂️\",\"🙆🏻‍♂️\",\"🙆🏼‍♂️\",\"🙆🏽‍♂️\",\"🙆🏾‍♂️\",\"🙆🏿‍♂️\",\"🙆‍♀️\",\"🙆🏻‍♀️\",\"🙆🏼‍♀️\",\"🙆🏽‍♀️\",\"🙆🏾‍♀️\",\"🙆🏿‍♀️\",\"💁\",\"💁🏻\",\"💁🏼\",\"💁🏽\",\"💁🏾\",\"💁🏿\",\"💁‍♂️\",\"💁🏻‍♂️\",\"💁🏼‍♂️\",\"💁🏽‍♂️\",\"💁🏾‍♂️\",\"💁🏿‍♂️\",\"💁‍♀️\",\"💁🏻‍♀️\",\"💁🏼‍♀️\",\"💁🏽‍♀️\",\"💁🏾‍♀️\",\"💁🏿‍♀️\",\"🙋\",\"🙋🏻\",\"🙋🏼\",\"🙋🏽\",\"🙋🏾\",\"🙋🏿\",\"🙋‍♂️\",\"🙋🏻‍♂️\",\"🙋🏼‍♂️\",\"🙋🏽‍♂️\",\"🙋🏾‍♂️\",\"🙋🏿‍♂️\",\"🙋‍♀️\",\"🙋🏻‍♀️\",\"🙋🏼‍♀️\",\"🙋🏽‍♀️\",\"🙋🏾‍♀️\",\"🙋🏿‍♀️\",\"🧏\",\"🧏🏻\",\"🧏🏼\",\"🧏🏽\",\"🧏🏾\",\"🧏🏿\",\"🧏‍♂️\",\"🧏🏻‍♂️\",\"🧏🏼‍♂️\",\"🧏🏽‍♂️\",\"🧏🏾‍♂️\",\"🧏🏿‍♂️\",\"🧏‍♀️\",\"🧏🏻‍♀️\",\"🧏🏼‍♀️\",\"🧏🏽‍♀️\",\"🧏🏾‍♀️\",\"🧏🏿‍♀️\",\"🙇\",\"🙇🏻\",\"🙇🏼\",\"🙇🏽\",\"🙇🏾\",\"🙇🏿\",\"🙇‍♂️\",\"🙇🏻‍♂️\",\"🙇🏼‍♂️\",\"🙇🏽‍♂️\",\"🙇🏾‍♂️\",\"🙇🏿‍♂️\",\"🙇‍♀️\",\"🙇🏻‍♀️\",\"🙇🏼‍♀️\",\"🙇🏽‍♀️\",\"🙇🏾‍♀️\",\"🙇🏿‍♀️\",\"🤦\",\"🤦🏻\",\"🤦🏼\",\"🤦🏽\",\"🤦🏾\",\"🤦🏿\",\"🤦‍♂️\",\"🤦🏻‍♂️\",\"🤦🏼‍♂️\",\"🤦🏽‍♂️\",\"🤦🏾‍♂️\",\"🤦🏿‍♂️\",\"🤦‍♀️\",\"🤦🏻‍♀️\",\"🤦🏼‍♀️\",\"🤦🏽‍♀️\",\"🤦🏾‍♀️\",\"🤦🏿‍♀️\",\"🤷\",\"🤷🏻\",\"🤷🏼\",\"🤷🏽\",\"🤷🏾\",\"🤷🏿\",\"🤷‍♂️\",\"🤷🏻‍♂️\",\"🤷🏼‍♂️\",\"🤷🏽‍♂️\",\"🤷🏾‍♂️\",\"🤷🏿‍♂️\",\"🤷‍♀️\",\"🤷🏻‍♀️\",\"🤷🏼‍♀️\",\"🤷🏽‍♀️\",\"🤷🏾‍♀️\",\"🤷🏿‍♀️\",\"🧑‍⚕️\",\"🧑🏻‍⚕️\",\"🧑🏼‍⚕️\",\"🧑🏽‍⚕️\",\"🧑🏾‍⚕️\",\"🧑🏿‍⚕️\",\"👨‍⚕️\",\"👨🏻‍⚕️\",\"👨🏼‍⚕️\",\"👨🏽‍⚕️\",\"👨🏾‍⚕️\",\"👨🏿‍⚕️\",\"👩‍⚕️\",\"👩🏻‍⚕️\",\"👩🏼‍⚕️\",\"👩🏽‍⚕️\",\"👩🏾‍⚕️\",\"👩🏿‍⚕️\",\"🧑‍🎓\",\"🧑🏻‍🎓\",\"🧑🏼‍🎓\",\"🧑🏽‍🎓\",\"🧑🏾‍🎓\",\"🧑🏿‍🎓\",\"👨‍🎓\",\"👨🏻‍🎓\",\"👨🏼‍🎓\",\"👨🏽‍🎓\",\"👨🏾‍🎓\",\"👨🏿‍🎓\",\"👩‍🎓\",\"👩🏻‍🎓\",\"👩🏼‍🎓\",\"👩🏽‍🎓\",\"👩🏾‍🎓\",\"👩🏿‍🎓\",\"🧑‍🏫\",\"🧑🏻‍🏫\",\"🧑🏼‍🏫\",\"🧑🏽‍🏫\",\"🧑🏾‍🏫\",\"🧑🏿‍🏫\",\"👨‍🏫\",\"👨🏻‍🏫\",\"👨🏼‍🏫\",\"👨🏽‍🏫\",\"👨🏾‍🏫\",\"👨🏿‍🏫\",\"👩‍🏫\",\"👩🏻‍🏫\",\"👩🏼‍🏫\",\"👩🏽‍🏫\",\"👩🏾‍🏫\",\"👩🏿‍🏫\",\"🧑‍⚖️\",\"🧑🏻‍⚖️\",\"🧑🏼‍⚖️\",\"🧑🏽‍⚖️\",\"🧑🏾‍⚖️\",\"🧑🏿‍⚖️\",\"👨‍⚖️\",\"👨🏻‍⚖️\",\"👨🏼‍⚖️\",\"👨🏽‍⚖️\",\"👨🏾‍⚖️\",\"👨🏿‍⚖️\",\"👩‍⚖️\",\"👩🏻‍⚖️\",\"👩🏼‍⚖️\",\"👩🏽‍⚖️\",\"👩🏾‍⚖️\",\"👩🏿‍⚖️\",\"🧑‍🌾\",\"🧑🏻‍🌾\",\"🧑🏼‍🌾\",\"🧑🏽‍🌾\",\"🧑🏾‍🌾\",\"🧑🏿‍🌾\",\"👨‍🌾\",\"👨🏻‍🌾\",\"👨🏼‍🌾\",\"👨🏽‍🌾\",\"👨🏾‍🌾\",\"👨🏿‍🌾\",\"👩‍🌾\",\"👩🏻‍🌾\",\"👩🏼‍🌾\",\"👩🏽‍🌾\",\"👩🏾‍🌾\",\"👩🏿‍🌾\",\"🧑‍🍳\",\"🧑🏻‍🍳\",\"🧑🏼‍🍳\",\"🧑🏽‍🍳\",\"🧑🏾‍🍳\",\"🧑🏿‍🍳\",\"👨‍🍳\",\"👨🏻‍🍳\",\"👨🏼‍🍳\",\"👨🏽‍🍳\",\"👨🏾‍🍳\",\"👨🏿‍🍳\",\"👩‍🍳\",\"👩🏻‍🍳\",\"👩🏼‍🍳\",\"👩🏽‍🍳\",\"👩🏾‍🍳\",\"👩🏿‍🍳\",\"🧑‍🔧\",\"🧑🏻‍🔧\",\"🧑🏼‍🔧\",\"🧑🏽‍🔧\",\"🧑🏾‍🔧\",\"🧑🏿‍🔧\",\"👨‍🔧\",\"👨🏻‍🔧\",\"👨🏼‍🔧\",\"👨🏽‍🔧\",\"👨🏾‍🔧\",\"👨🏿‍🔧\",\"👩‍🔧\",\"👩🏻‍🔧\",\"👩🏼‍🔧\",\"👩🏽‍🔧\",\"👩🏾‍🔧\",\"👩🏿‍🔧\",\"🧑‍🏭\",\"🧑🏻‍🏭\",\"🧑🏼‍🏭\",\"🧑🏽‍🏭\",\"🧑🏾‍🏭\",\"🧑🏿‍🏭\",\"👨‍🏭\",\"👨🏻‍🏭\",\"👨🏼‍🏭\",\"👨🏽‍🏭\",\"👨🏾‍🏭\",\"👨🏿‍🏭\",\"👩‍🏭\",\"👩🏻‍🏭\",\"👩🏼‍🏭\",\"👩🏽‍🏭\",\"👩🏾‍🏭\",\"👩🏿‍🏭\",\"🧑‍💼\",\"🧑🏻‍💼\",\"🧑🏼‍💼\",\"🧑🏽‍💼\",\"🧑🏾‍💼\",\"🧑🏿‍💼\",\"👨‍💼\",\"👨🏻‍💼\",\"👨🏼‍💼\",\"👨🏽‍💼\",\"👨🏾‍💼\",\"👨🏿‍💼\",\"👩‍💼\",\"👩🏻‍💼\",\"👩🏼‍💼\",\"👩🏽‍💼\",\"👩🏾‍💼\",\"👩🏿‍💼\",\"🧑‍🔬\",\"🧑🏻‍🔬\",\"🧑🏼‍🔬\",\"🧑🏽‍🔬\",\"🧑🏾‍🔬\",\"🧑🏿‍🔬\",\"👨‍🔬\",\"👨🏻‍🔬\",\"👨🏼‍🔬\",\"👨🏽‍🔬\",\"👨🏾‍🔬\",\"👨🏿‍🔬\",\"👩‍🔬\",\"👩🏻‍🔬\",\"👩🏼‍🔬\",\"👩🏽‍🔬\",\"👩🏾‍🔬\",\"👩🏿‍🔬\",\"🧑‍💻\",\"🧑🏻‍💻\",\"🧑🏼‍💻\",\"🧑🏽‍💻\",\"🧑🏾‍💻\",\"🧑🏿‍💻\",\"👨‍💻\",\"👨🏻‍💻\",\"👨🏼‍💻\",\"👨🏽‍💻\",\"👨🏾‍💻\",\"👨🏿‍💻\",\"👩‍💻\",\"👩🏻‍💻\",\"👩🏼‍💻\",\"👩🏽‍💻\",\"👩🏾‍💻\",\"👩🏿‍💻\",\"🧑‍🎤\",\"🧑🏻‍🎤\",\"🧑🏼‍🎤\",\"🧑🏽‍🎤\",\"🧑🏾‍🎤\",\"🧑🏿‍🎤\",\"👨‍🎤\",\"👨🏻‍🎤\",\"👨🏼‍🎤\",\"👨🏽‍🎤\",\"👨🏾‍🎤\",\"👨🏿‍🎤\",\"👩‍🎤\",\"👩🏻‍🎤\",\"👩🏼‍🎤\",\"👩🏽‍🎤\",\"👩🏾‍🎤\",\"👩🏿‍🎤\",\"🧑‍🎨\",\"🧑🏻‍🎨\",\"🧑🏼‍🎨\",\"🧑🏽‍🎨\",\"🧑🏾‍🎨\",\"🧑🏿‍🎨\",\"👨‍🎨\",\"👨🏻‍🎨\",\"👨🏼‍🎨\",\"👨🏽‍🎨\",\"👨🏾‍🎨\",\"👨🏿‍🎨\",\"👩‍🎨\",\"👩🏻‍🎨\",\"👩🏼‍🎨\",\"👩🏽‍🎨\",\"👩🏾‍🎨\",\"👩🏿‍🎨\",\"🧑‍✈️\",\"🧑🏻‍✈️\",\"🧑🏼‍✈️\",\"🧑🏽‍✈️\",\"🧑🏾‍✈️\",\"🧑🏿‍✈️\",\"👨‍✈️\",\"👨🏻‍✈️\",\"👨🏼‍✈️\",\"👨🏽‍✈️\",\"👨🏾‍✈️\",\"👨🏿‍✈️\",\"👩‍✈️\",\"👩🏻‍✈️\",\"👩🏼‍✈️\",\"👩🏽‍✈️\",\"👩🏾‍✈️\",\"👩🏿‍✈️\",\"🧑‍🚀\",\"🧑🏻‍🚀\",\"🧑🏼‍🚀\",\"🧑🏽‍🚀\",\"🧑🏾‍🚀\",\"🧑🏿‍🚀\",\"👨‍🚀\",\"👨🏻‍🚀\",\"👨🏼‍🚀\",\"👨🏽‍🚀\",\"👨🏾‍🚀\",\"👨🏿‍🚀\",\"👩‍🚀\",\"👩🏻‍🚀\",\"👩🏼‍🚀\",\"👩🏽‍🚀\",\"👩🏾‍🚀\",\"👩🏿‍🚀\",\"🧑‍🚒\",\"🧑🏻‍🚒\",\"🧑🏼‍🚒\",\"🧑🏽‍🚒\",\"🧑🏾‍🚒\",\"🧑🏿‍🚒\",\"👨‍🚒\",\"👨🏻‍🚒\",\"👨🏼‍🚒\",\"👨🏽‍🚒\",\"👨🏾‍🚒\",\"👨🏿‍🚒\",\"👩‍🚒\",\"👩🏻‍🚒\",\"👩🏼‍🚒\",\"👩🏽‍🚒\",\"👩🏾‍🚒\",\"👩🏿‍🚒\",\"👮\",\"👮🏻\",\"👮🏼\",\"👮🏽\",\"👮🏾\",\"👮🏿\",\"👮‍♂️\",\"👮🏻‍♂️\",\"👮🏼‍♂️\",\"👮🏽‍♂️\",\"👮🏾‍♂️\",\"👮🏿‍♂️\",\"👮‍♀️\",\"👮🏻‍♀️\",\"👮🏼‍♀️\",\"👮🏽‍♀️\",\"👮🏾‍♀️\",\"👮🏿‍♀️\",\"🕵️\",\"🕵🏻\",\"🕵🏼\",\"🕵🏽\",\"🕵🏾\",\"🕵🏿\",\"🕵️‍♂️\",\"🕵🏻‍♂️\",\"🕵🏼‍♂️\",\"🕵🏽‍♂️\",\"🕵🏾‍♂️\",\"🕵🏿‍♂️\",\"🕵️‍♀️\",\"🕵🏻‍♀️\",\"🕵🏼‍♀️\",\"🕵🏽‍♀️\",\"🕵🏾‍♀️\",\"🕵🏿‍♀️\",\"💂\",\"💂🏻\",\"💂🏼\",\"💂🏽\",\"💂🏾\",\"💂🏿\",\"💂‍♂️\",\"💂🏻‍♂️\",\"💂🏼‍♂️\",\"💂🏽‍♂️\",\"💂🏾‍♂️\",\"💂🏿‍♂️\",\"💂‍♀️\",\"💂🏻‍♀️\",\"💂🏼‍♀️\",\"💂🏽‍♀️\",\"💂🏾‍♀️\",\"💂🏿‍♀️\",\"🥷\",\"🥷🏻\",\"🥷🏼\",\"🥷🏽\",\"🥷🏾\",\"🥷🏿\",\"👷\",\"👷🏻\",\"👷🏼\",\"👷🏽\",\"👷🏾\",\"👷🏿\",\"👷‍♂️\",\"👷🏻‍♂️\",\"👷🏼‍♂️\",\"👷🏽‍♂️\",\"👷🏾‍♂️\",\"👷🏿‍♂️\",\"👷‍♀️\",\"👷🏻‍♀️\",\"👷🏼‍♀️\",\"👷🏽‍♀️\",\"👷🏾‍♀️\",\"👷🏿‍♀️\",\"🤴\",\"🤴🏻\",\"🤴🏼\",\"🤴🏽\",\"🤴🏾\",\"🤴🏿\",\"👸\",\"👸🏻\",\"👸🏼\",\"👸🏽\",\"👸🏾\",\"👸🏿\",\"👳\",\"👳🏻\",\"👳🏼\",\"👳🏽\",\"👳🏾\",\"👳🏿\",\"👳‍♂️\",\"👳🏻‍♂️\",\"👳🏼‍♂️\",\"👳🏽‍♂️\",\"👳🏾‍♂️\",\"👳🏿‍♂️\",\"👳‍♀️\",\"👳🏻‍♀️\",\"👳🏼‍♀️\",\"👳🏽‍♀️\",\"👳🏾‍♀️\",\"👳🏿‍♀️\",\"👲\",\"👲🏻\",\"👲🏼\",\"👲🏽\",\"👲🏾\",\"👲🏿\",\"🧕\",\"🧕🏻\",\"🧕🏼\",\"🧕🏽\",\"🧕🏾\",\"🧕🏿\",\"🤵\",\"🤵🏻\",\"🤵🏼\",\"🤵🏽\",\"🤵🏾\",\"🤵🏿\",\"🤵‍♂️\",\"🤵🏻‍♂️\",\"🤵🏼‍♂️\",\"🤵🏽‍♂️\",\"🤵🏾‍♂️\",\"🤵🏿‍♂️\",\"🤵‍♀️\",\"🤵🏻‍♀️\",\"🤵🏼‍♀️\",\"🤵🏽‍♀️\",\"🤵🏾‍♀️\",\"🤵🏿‍♀️\",\"👰\",\"👰🏻\",\"👰🏼\",\"👰🏽\",\"👰🏾\",\"👰🏿\",\"👰‍♂️\",\"👰🏻‍♂️\",\"👰🏼‍♂️\",\"👰🏽‍♂️\",\"👰🏾‍♂️\",\"👰🏿‍♂️\",\"👰‍♀️\",\"👰🏻‍♀️\",\"👰🏼‍♀️\",\"👰🏽‍♀️\",\"👰🏾‍♀️\",\"👰🏿‍♀️\",\"🤰\",\"🤰🏻\",\"🤰🏼\",\"🤰🏽\",\"🤰🏾\",\"🤰🏿\",\"🤱\",\"🤱🏻\",\"🤱🏼\",\"🤱🏽\",\"🤱🏾\",\"🤱🏿\",\"👩‍🍼\",\"👩🏻‍🍼\",\"👩🏼‍🍼\",\"👩🏽‍🍼\",\"👩🏾‍🍼\",\"👩🏿‍🍼\",\"👨‍🍼\",\"👨🏻‍🍼\",\"👨🏼‍🍼\",\"👨🏽‍🍼\",\"👨🏾‍🍼\",\"👨🏿‍🍼\",\"🧑‍🍼\",\"🧑🏻‍🍼\",\"🧑🏼‍🍼\",\"🧑🏽‍🍼\",\"🧑🏾‍🍼\",\"🧑🏿‍🍼\",\"👼\",\"👼🏻\",\"👼🏼\",\"👼🏽\",\"👼🏾\",\"👼🏿\",\"🎅\",\"🎅🏻\",\"🎅🏼\",\"🎅🏽\",\"🎅🏾\",\"🎅🏿\",\"🤶\",\"🤶🏻\",\"🤶🏼\",\"🤶🏽\",\"🤶🏾\",\"🤶🏿\",\"🧑‍🎄\",\"🧑🏻‍🎄\",\"🧑🏼‍🎄\",\"🧑🏽‍🎄\",\"🧑🏾‍🎄\",\"🧑🏿‍🎄\",\"🦸\",\"🦸🏻\",\"🦸🏼\",\"🦸🏽\",\"🦸🏾\",\"🦸🏿\",\"🦸‍♂️\",\"🦸🏻‍♂️\",\"🦸🏼‍♂️\",\"🦸🏽‍♂️\",\"🦸🏾‍♂️\",\"🦸🏿‍♂️\",\"🦸‍♀️\",\"🦸🏻‍♀️\",\"🦸🏼‍♀️\",\"🦸🏽‍♀️\",\"🦸🏾‍♀️\",\"🦸🏿‍♀️\",\"🦹\",\"🦹🏻\",\"🦹🏼\",\"🦹🏽\",\"🦹🏾\",\"🦹🏿\",\"🦹‍♂️\",\"🦹🏻‍♂️\",\"🦹🏼‍♂️\",\"🦹🏽‍♂️\",\"🦹🏾‍♂️\",\"🦹🏿‍♂️\",\"🦹‍♀️\",\"🦹🏻‍♀️\",\"🦹🏼‍♀️\",\"🦹🏽‍♀️\",\"🦹🏾‍♀️\",\"🦹🏿‍♀️\",\"🧙\",\"🧙🏻\",\"🧙🏼\",\"🧙🏽\",\"🧙🏾\",\"🧙🏿\",\"🧙‍♂️\",\"🧙🏻‍♂️\",\"🧙🏼‍♂️\",\"🧙🏽‍♂️\",\"🧙🏾‍♂️\",\"🧙🏿‍♂️\",\"🧙‍♀️\",\"🧙🏻‍♀️\",\"🧙🏼‍♀️\",\"🧙🏽‍♀️\",\"🧙🏾‍♀️\",\"🧙🏿‍♀️\",\"🧚\",\"🧚🏻\",\"🧚🏼\",\"🧚🏽\",\"🧚🏾\",\"🧚🏿\",\"🧚‍♂️\",\"🧚🏻‍♂️\",\"🧚🏼‍♂️\",\"🧚🏽‍♂️\",\"🧚🏾‍♂️\",\"🧚🏿‍♂️\",\"🧚‍♀️\",\"🧚🏻‍♀️\",\"🧚🏼‍♀️\",\"🧚🏽‍♀️\",\"🧚🏾‍♀️\",\"🧚🏿‍♀️\",\"🧛\",\"🧛🏻\",\"🧛🏼\",\"🧛🏽\",\"🧛🏾\",\"🧛🏿\",\"🧛‍♂️\",\"🧛🏻‍♂️\",\"🧛🏼‍♂️\",\"🧛🏽‍♂️\",\"🧛🏾‍♂️\",\"🧛🏿‍♂️\",\"🧛‍♀️\",\"🧛🏻‍♀️\",\"🧛🏼‍♀️\",\"🧛🏽‍♀️\",\"🧛🏾‍♀️\",\"🧛🏿‍♀️\",\"🧜\",\"🧜🏻\",\"🧜🏼\",\"🧜🏽\",\"🧜🏾\",\"🧜🏿\",\"🧜‍♂️\",\"🧜🏻‍♂️\",\"🧜🏼‍♂️\",\"🧜🏽‍♂️\",\"🧜🏾‍♂️\",\"🧜🏿‍♂️\",\"🧜‍♀️\",\"🧜🏻‍♀️\",\"🧜🏼‍♀️\",\"🧜🏽‍♀️\",\"🧜🏾‍♀️\",\"🧜🏿‍♀️\",\"🧝\",\"🧝🏻\",\"🧝🏼\",\"🧝🏽\",\"🧝🏾\",\"🧝🏿\",\"🧝‍♂️\",\"🧝🏻‍♂️\",\"🧝🏼‍♂️\",\"🧝🏽‍♂️\",\"🧝🏾‍♂️\",\"🧝🏿‍♂️\",\"🧝‍♀️\",\"🧝🏻‍♀️\",\"🧝🏼‍♀️\",\"🧝🏽‍♀️\",\"🧝🏾‍♀️\",\"🧝🏿‍♀️\",\"🧞\",\"🧞‍♂️\",\"🧞‍♀️\",\"🧟\",\"🧟‍♂️\",\"🧟‍♀️\",\"💆\",\"💆🏻\",\"💆🏼\",\"💆🏽\",\"💆🏾\",\"💆🏿\",\"💆‍♂️\",\"💆🏻‍♂️\",\"💆🏼‍♂️\",\"💆🏽‍♂️\",\"💆🏾‍♂️\",\"💆🏿‍♂️\",\"💆‍♀️\",\"💆🏻‍♀️\",\"💆🏼‍♀️\",\"💆🏽‍♀️\",\"💆🏾‍♀️\",\"💆🏿‍♀️\",\"💇\",\"💇🏻\",\"💇🏼\",\"💇🏽\",\"💇🏾\",\"💇🏿\",\"💇‍♂️\",\"💇🏻‍♂️\",\"💇🏼‍♂️\",\"💇🏽‍♂️\",\"💇🏾‍♂️\",\"💇🏿‍♂️\",\"💇‍♀️\",\"💇🏻‍♀️\",\"💇🏼‍♀️\",\"💇🏽‍♀️\",\"💇🏾‍♀️\",\"💇🏿‍♀️\",\"🚶\",\"🚶🏻\",\"🚶🏼\",\"🚶🏽\",\"🚶🏾\",\"🚶🏿\",\"🚶‍♂️\",\"🚶🏻‍♂️\",\"🚶🏼‍♂️\",\"🚶🏽‍♂️\",\"🚶🏾‍♂️\",\"🚶🏿‍♂️\",\"🚶‍♀️\",\"🚶🏻‍♀️\",\"🚶🏼‍♀️\",\"🚶🏽‍♀️\",\"🚶🏾‍♀️\",\"🚶🏿‍♀️\",\"🧍\",\"🧍🏻\",\"🧍🏼\",\"🧍🏽\",\"🧍🏾\",\"🧍🏿\",\"🧍‍♂️\",\"🧍🏻‍♂️\",\"🧍🏼‍♂️\",\"🧍🏽‍♂️\",\"🧍🏾‍♂️\",\"🧍🏿‍♂️\",\"🧍‍♀️\",\"🧍🏻‍♀️\",\"🧍🏼‍♀️\",\"🧍🏽‍♀️\",\"🧍🏾‍♀️\",\"🧍🏿‍♀️\",\"🧎\",\"🧎🏻\",\"🧎🏼\",\"🧎🏽\",\"🧎🏾\",\"🧎🏿\",\"🧎‍♂️\",\"🧎🏻‍♂️\",\"🧎🏼‍♂️\",\"🧎🏽‍♂️\",\"🧎🏾‍♂️\",\"🧎🏿‍♂️\",\"🧎‍♀️\",\"🧎🏻‍♀️\",\"🧎🏼‍♀️\",\"🧎🏽‍♀️\",\"🧎🏾‍♀️\",\"🧎🏿‍♀️\",\"🧑‍🦯\",\"🧑🏻‍🦯\",\"🧑🏼‍🦯\",\"🧑🏽‍🦯\",\"🧑🏾‍🦯\",\"🧑🏿‍🦯\",\"👨‍🦯\",\"👨🏻‍🦯\",\"👨🏼‍🦯\",\"👨🏽‍🦯\",\"👨🏾‍🦯\",\"👨🏿‍🦯\",\"👩‍🦯\",\"👩🏻‍🦯\",\"👩🏼‍🦯\",\"👩🏽‍🦯\",\"👩🏾‍🦯\",\"👩🏿‍🦯\",\"🧑‍🦼\",\"🧑🏻‍🦼\",\"🧑🏼‍🦼\",\"🧑🏽‍🦼\",\"🧑🏾‍🦼\",\"🧑🏿‍🦼\",\"👨‍🦼\",\"👨🏻‍🦼\",\"👨🏼‍🦼\",\"👨🏽‍🦼\",\"👨🏾‍🦼\",\"👨🏿‍🦼\",\"👩‍🦼\",\"👩🏻‍🦼\",\"👩🏼‍🦼\",\"👩🏽‍🦼\",\"👩🏾‍🦼\",\"👩🏿‍🦼\",\"🧑‍🦽\",\"🧑🏻‍🦽\",\"🧑🏼‍🦽\",\"🧑🏽‍🦽\",\"🧑🏾‍🦽\",\"🧑🏿‍🦽\",\"👨‍🦽\",\"👨🏻‍🦽\",\"👨🏼‍🦽\",\"👨🏽‍🦽\",\"👨🏾‍🦽\",\"👨🏿‍🦽\",\"👩‍🦽\",\"👩🏻‍🦽\",\"👩🏼‍🦽\",\"👩🏽‍🦽\",\"👩🏾‍🦽\",\"👩🏿‍🦽\",\"🏃\",\"🏃🏻\",\"🏃🏼\",\"🏃🏽\",\"🏃🏾\",\"🏃🏿\",\"🏃‍♂️\",\"🏃🏻‍♂️\",\"🏃🏼‍♂️\",\"🏃🏽‍♂️\",\"🏃🏾‍♂️\",\"🏃🏿‍♂️\",\"🏃‍♀️\",\"🏃🏻‍♀️\",\"🏃🏼‍♀️\",\"🏃🏽‍♀️\",\"🏃🏾‍♀️\",\"🏃🏿‍♀️\",\"💃\",\"💃🏻\",\"💃🏼\",\"💃🏽\",\"💃🏾\",\"💃🏿\",\"🕺\",\"🕺🏻\",\"🕺🏼\",\"🕺🏽\",\"🕺🏾\",\"🕺🏿\",\"🕴️\",\"🕴🏻\",\"🕴🏼\",\"🕴🏽\",\"🕴🏾\",\"🕴🏿\",\"👯\",\"👯‍♂️\",\"👯‍♀️\",\"🧖\",\"🧖🏻\",\"🧖🏼\",\"🧖🏽\",\"🧖🏾\",\"🧖🏿\",\"🧖‍♂️\",\"🧖🏻‍♂️\",\"🧖🏼‍♂️\",\"🧖🏽‍♂️\",\"🧖🏾‍♂️\",\"🧖🏿‍♂️\",\"🧖‍♀️\",\"🧖🏻‍♀️\",\"🧖🏼‍♀️\",\"🧖🏽‍♀️\",\"🧖🏾‍♀️\",\"🧖🏿‍♀️\",\"🧗\",\"🧗🏻\",\"🧗🏼\",\"🧗🏽\",\"🧗🏾\",\"🧗🏿\",\"🧗‍♂️\",\"🧗🏻‍♂️\",\"🧗🏼‍♂️\",\"🧗🏽‍♂️\",\"🧗🏾‍♂️\",\"🧗🏿‍♂️\",\"🧗‍♀️\",\"🧗🏻‍♀️\",\"🧗🏼‍♀️\",\"🧗🏽‍♀️\",\"🧗🏾‍♀️\",\"🧗🏿‍♀️\",\"🤺\",\"🏇\",\"🏇🏻\",\"🏇🏼\",\"🏇🏽\",\"🏇🏾\",\"🏇🏿\",\"⛷️\",\"🏂\",\"🏂🏻\",\"🏂🏼\",\"🏂🏽\",\"🏂🏾\",\"🏂🏿\",\"🏌️\",\"🏌🏻\",\"🏌🏼\",\"🏌🏽\",\"🏌🏾\",\"🏌🏿\",\"🏌️‍♂️\",\"🏌🏻‍♂️\",\"🏌🏼‍♂️\",\"🏌🏽‍♂️\",\"🏌🏾‍♂️\",\"🏌🏿‍♂️\",\"🏌️‍♀️\",\"🏌🏻‍♀️\",\"🏌🏼‍♀️\",\"🏌🏽‍♀️\",\"🏌🏾‍♀️\",\"🏌🏿‍♀️\",\"🏄\",\"🏄🏻\",\"🏄🏼\",\"🏄🏽\",\"🏄🏾\",\"🏄🏿\",\"🏄‍♂️\",\"🏄🏻‍♂️\",\"🏄🏼‍♂️\",\"🏄🏽‍♂️\",\"🏄🏾‍♂️\",\"🏄🏿‍♂️\",\"🏄‍♀️\",\"🏄🏻‍♀️\",\"🏄🏼‍♀️\",\"🏄🏽‍♀️\",\"🏄🏾‍♀️\",\"🏄🏿‍♀️\",\"🚣\",\"🚣🏻\",\"🚣🏼\",\"🚣🏽\",\"🚣🏾\",\"🚣🏿\",\"🚣‍♂️\",\"🚣🏻‍♂️\",\"🚣🏼‍♂️\",\"🚣🏽‍♂️\",\"🚣🏾‍♂️\",\"🚣🏿‍♂️\",\"🚣‍♀️\",\"🚣🏻‍♀️\",\"🚣🏼‍♀️\",\"🚣🏽‍♀️\",\"🚣🏾‍♀️\",\"🚣🏿‍♀️\",\"🏊\",\"🏊🏻\",\"🏊🏼\",\"🏊🏽\",\"🏊🏾\",\"🏊🏿\",\"🏊‍♂️\",\"🏊🏻‍♂️\",\"🏊🏼‍♂️\",\"🏊🏽‍♂️\",\"🏊🏾‍♂️\",\"🏊🏿‍♂️\",\"🏊‍♀️\",\"🏊🏻‍♀️\",\"🏊🏼‍♀️\",\"🏊🏽‍♀️\",\"🏊🏾‍♀️\",\"🏊🏿‍♀️\",\"⛹️\",\"⛹🏻\",\"⛹🏼\",\"⛹🏽\",\"⛹🏾\",\"⛹🏿\",\"⛹️‍♂️\",\"⛹🏻‍♂️\",\"⛹🏼‍♂️\",\"⛹🏽‍♂️\",\"⛹🏾‍♂️\",\"⛹🏿‍♂️\",\"⛹️‍♀️\",\"⛹🏻‍♀️\",\"⛹🏼‍♀️\",\"⛹🏽‍♀️\",\"⛹🏾‍♀️\",\"⛹🏿‍♀️\",\"🏋️\",\"🏋🏻\",\"🏋🏼\",\"🏋🏽\",\"🏋🏾\",\"🏋🏿\",\"🏋️‍♂️\",\"🏋🏻‍♂️\",\"🏋🏼‍♂️\",\"🏋🏽‍♂️\",\"🏋🏾‍♂️\",\"🏋🏿‍♂️\",\"🏋️‍♀️\",\"🏋🏻‍♀️\",\"🏋🏼‍♀️\",\"🏋🏽‍♀️\",\"🏋🏾‍♀️\",\"🏋🏿‍♀️\",\"🚴\",\"🚴🏻\",\"🚴🏼\",\"🚴🏽\",\"🚴🏾\",\"🚴🏿\",\"🚴‍♂️\",\"🚴🏻‍♂️\",\"🚴🏼‍♂️\",\"🚴🏽‍♂️\",\"🚴🏾‍♂️\",\"🚴🏿‍♂️\",\"🚴‍♀️\",\"🚴🏻‍♀️\",\"🚴🏼‍♀️\",\"🚴🏽‍♀️\",\"🚴🏾‍♀️\",\"🚴🏿‍♀️\",\"🚵\",\"🚵🏻\",\"🚵🏼\",\"🚵🏽\",\"🚵🏾\",\"🚵🏿\",\"🚵‍♂️\",\"🚵🏻‍♂️\",\"🚵🏼‍♂️\",\"🚵🏽‍♂️\",\"🚵🏾‍♂️\",\"🚵🏿‍♂️\",\"🚵‍♀️\",\"🚵🏻‍♀️\",\"🚵🏼‍♀️\",\"🚵🏽‍♀️\",\"🚵🏾‍♀️\",\"🚵🏿‍♀️\",\"🤸\",\"🤸🏻\",\"🤸🏼\",\"🤸🏽\",\"🤸🏾\",\"🤸🏿\",\"🤸‍♂️\",\"🤸🏻‍♂️\",\"🤸🏼‍♂️\",\"🤸🏽‍♂️\",\"🤸🏾‍♂️\",\"🤸🏿‍♂️\",\"🤸‍♀️\",\"🤸🏻‍♀️\",\"🤸🏼‍♀️\",\"🤸🏽‍♀️\",\"🤸🏾‍♀️\",\"🤸🏿‍♀️\",\"🤼\",\"🤼‍♂️\",\"🤼‍♀️\",\"🤽\",\"🤽🏻\",\"🤽🏼\",\"🤽🏽\",\"🤽🏾\",\"🤽🏿\",\"🤽‍♂️\",\"🤽🏻‍♂️\",\"🤽🏼‍♂️\",\"🤽🏽‍♂️\",\"🤽🏾‍♂️\",\"🤽🏿‍♂️\",\"🤽‍♀️\",\"🤽🏻‍♀️\",\"🤽🏼‍♀️\",\"🤽🏽‍♀️\",\"🤽🏾‍♀️\",\"🤽🏿‍♀️\",\"🤾\",\"🤾🏻\",\"🤾🏼\",\"🤾🏽\",\"🤾🏾\",\"🤾🏿\",\"🤾‍♂️\",\"🤾🏻‍♂️\",\"🤾🏼‍♂️\",\"🤾🏽‍♂️\",\"🤾🏾‍♂️\",\"🤾🏿‍♂️\",\"🤾‍♀️\",\"🤾🏻‍♀️\",\"🤾🏼‍♀️\",\"🤾🏽‍♀️\",\"🤾🏾‍♀️\",\"🤾🏿‍♀️\",\"🤹\",\"🤹🏻\",\"🤹🏼\",\"🤹🏽\",\"🤹🏾\",\"🤹🏿\",\"🤹‍♂️\",\"🤹🏻‍♂️\",\"🤹🏼‍♂️\",\"🤹🏽‍♂️\",\"🤹🏾‍♂️\",\"🤹🏿‍♂️\",\"🤹‍♀️\",\"🤹🏻‍♀️\",\"🤹🏼‍♀️\",\"🤹🏽‍♀️\",\"🤹🏾‍♀️\",\"🤹🏿‍♀️\",\"🧘\",\"🧘🏻\",\"🧘🏼\",\"🧘🏽\",\"🧘🏾\",\"🧘🏿\",\"🧘‍♂️\",\"🧘🏻‍♂️\",\"🧘🏼‍♂️\",\"🧘🏽‍♂️\",\"🧘🏾‍♂️\",\"🧘🏿‍♂️\",\"🧘‍♀️\",\"🧘🏻‍♀️\",\"🧘🏼‍♀️\",\"🧘🏽‍♀️\",\"🧘🏾‍♀️\",\"🧘🏿‍♀️\",\"🛀\",\"🛀🏻\",\"🛀🏼\",\"🛀🏽\",\"🛀🏾\",\"🛀🏿\",\"🛌\",\"🛌🏻\",\"🛌🏼\",\"🛌🏽\",\"🛌🏾\",\"🛌🏿\",\"🧑‍🤝‍🧑\",\"🧑🏻‍🤝‍🧑🏻\",\"🧑🏻‍🤝‍🧑🏼\",\"🧑🏻‍🤝‍🧑🏽\",\"🧑🏻‍🤝‍🧑🏾\",\"🧑🏻‍🤝‍🧑🏿\",\"🧑🏼‍🤝‍🧑🏻\",\"🧑🏼‍🤝‍🧑🏼\",\"🧑🏼‍🤝‍🧑🏽\",\"🧑🏼‍🤝‍🧑🏾\",\"🧑🏼‍🤝‍🧑🏿\",\"🧑🏽‍🤝‍🧑🏻\",\"🧑🏽‍🤝‍🧑🏼\",\"🧑🏽‍🤝‍🧑🏽\",\"🧑🏽‍🤝‍🧑🏾\",\"🧑🏽‍🤝‍🧑🏿\",\"🧑🏾‍🤝‍🧑🏻\",\"🧑🏾‍🤝‍🧑🏼\",\"🧑🏾‍🤝‍🧑🏽\",\"🧑🏾‍🤝‍🧑🏾\",\"🧑🏾‍🤝‍🧑🏿\",\"🧑🏿‍🤝‍🧑🏻\",\"🧑🏿‍🤝‍🧑🏼\",\"🧑🏿‍🤝‍🧑🏽\",\"🧑🏿‍🤝‍🧑🏾\",\"🧑🏿‍🤝‍🧑🏿\",\"👭\",\"👭🏻\",\"👩🏻‍🤝‍👩🏼\",\"👩🏻‍🤝‍👩🏽\",\"👩🏻‍🤝‍👩🏾\",\"👩🏻‍🤝‍👩🏿\",\"👩🏼‍🤝‍👩🏻\",\"👭🏼\",\"👩🏼‍🤝‍👩🏽\",\"👩🏼‍🤝‍👩🏾\",\"👩🏼‍🤝‍👩🏿\",\"👩🏽‍🤝‍👩🏻\",\"👩🏽‍🤝‍👩🏼\",\"👭🏽\",\"👩🏽‍🤝‍👩🏾\",\"👩🏽‍🤝‍👩🏿\",\"👩🏾‍🤝‍👩🏻\",\"👩🏾‍🤝‍👩🏼\",\"👩🏾‍🤝‍👩🏽\",\"👭🏾\",\"👩🏾‍🤝‍👩🏿\",\"👩🏿‍🤝‍👩🏻\",\"👩🏿‍🤝‍👩🏼\",\"👩🏿‍🤝‍👩🏽\",\"👩🏿‍🤝‍👩🏾\",\"👭🏿\",\"👫\",\"👫🏻\",\"👩🏻‍🤝‍👨🏼\",\"👩🏻‍🤝‍👨🏽\",\"👩🏻‍🤝‍👨🏾\",\"👩🏻‍🤝‍👨🏿\",\"👩🏼‍🤝‍👨🏻\",\"👫🏼\",\"👩🏼‍🤝‍👨🏽\",\"👩🏼‍🤝‍👨🏾\",\"👩🏼‍🤝‍👨🏿\",\"👩🏽‍🤝‍👨🏻\",\"👩🏽‍🤝‍👨🏼\",\"👫🏽\",\"👩🏽‍🤝‍👨🏾\",\"👩🏽‍🤝‍👨🏿\",\"👩🏾‍🤝‍👨🏻\",\"👩🏾‍🤝‍👨🏼\",\"👩🏾‍🤝‍👨🏽\",\"👫🏾\",\"👩🏾‍🤝‍👨🏿\",\"👩🏿‍🤝‍👨🏻\",\"👩🏿‍🤝‍👨🏼\",\"👩🏿‍🤝‍👨🏽\",\"👩🏿‍🤝‍👨🏾\",\"👫🏿\",\"👬\",\"👬🏻\",\"👨🏻‍🤝‍👨🏼\",\"👨🏻‍🤝‍👨🏽\",\"👨🏻‍🤝‍👨🏾\",\"👨🏻‍🤝‍👨🏿\",\"👨🏼‍🤝‍👨🏻\",\"👬🏼\",\"👨🏼‍🤝‍👨🏽\",\"👨🏼‍🤝‍👨🏾\",\"👨🏼‍🤝‍👨🏿\",\"👨🏽‍🤝‍👨🏻\",\"👨🏽‍🤝‍👨🏼\",\"👬🏽\",\"👨🏽‍🤝‍👨🏾\",\"👨🏽‍🤝‍👨🏿\",\"👨🏾‍🤝‍👨🏻\",\"👨🏾‍🤝‍👨🏼\",\"👨🏾‍🤝‍👨🏽\",\"👬🏾\",\"👨🏾‍🤝‍👨🏿\",\"👨🏿‍🤝‍👨🏻\",\"👨🏿‍🤝‍👨🏼\",\"👨🏿‍🤝‍👨🏽\",\"👨🏿‍🤝‍👨🏾\",\"👬🏿\",\"💏\",\"💏🏻\",\"💏🏼\",\"💏🏽\",\"💏🏾\",\"💏🏿\",\"🧑🏻‍❤️‍💋‍🧑🏼\",\"🧑🏻‍❤️‍💋‍🧑🏽\",\"🧑🏻‍❤️‍💋‍🧑🏾\",\"🧑🏻‍❤️‍💋‍🧑🏿\",\"🧑🏼‍❤️‍💋‍🧑🏻\",\"🧑🏼‍❤️‍💋‍🧑🏽\",\"🧑🏼‍❤️‍💋‍🧑🏾\",\"🧑🏼‍❤️‍💋‍🧑🏿\",\"🧑🏽‍❤️‍💋‍🧑🏻\",\"🧑🏽‍❤️‍💋‍🧑🏼\",\"🧑🏽‍❤️‍💋‍🧑🏾\",\"🧑🏽‍❤️‍💋‍🧑🏿\",\"🧑🏾‍❤️‍💋‍🧑🏻\",\"🧑🏾‍❤️‍💋‍🧑🏼\",\"🧑🏾‍❤️‍💋‍🧑🏽\",\"🧑🏾‍❤️‍💋‍🧑🏿\",\"🧑🏿‍❤️‍💋‍🧑🏻\",\"🧑🏿‍❤️‍💋‍🧑🏼\",\"🧑🏿‍❤️‍💋‍🧑🏽\",\"🧑🏿‍❤️‍💋‍🧑🏾\",\"👩‍❤️‍💋‍👨\",\"👩🏻‍❤️‍💋‍👨🏻\",\"👩🏻‍❤️‍💋‍👨🏼\",\"👩🏻‍❤️‍💋‍👨🏽\",\"👩🏻‍❤️‍💋‍👨🏾\",\"👩🏻‍❤️‍💋‍👨🏿\",\"👩🏼‍❤️‍💋‍👨🏻\",\"👩🏼‍❤️‍💋‍👨🏼\",\"👩🏼‍❤️‍💋‍👨🏽\",\"👩🏼‍❤️‍💋‍👨🏾\",\"👩🏼‍❤️‍💋‍👨🏿\",\"👩🏽‍❤️‍💋‍👨🏻\",\"👩🏽‍❤️‍💋‍👨🏼\",\"👩🏽‍❤️‍💋‍👨🏽\",\"👩🏽‍❤️‍💋‍👨🏾\",\"👩🏽‍❤️‍💋‍👨🏿\",\"👩🏾‍❤️‍💋‍👨🏻\",\"👩🏾‍❤️‍💋‍👨🏼\",\"👩🏾‍❤️‍💋‍👨🏽\",\"👩🏾‍❤️‍💋‍👨🏾\",\"👩🏾‍❤️‍💋‍👨🏿\",\"👩🏿‍❤️‍💋‍👨🏻\",\"👩🏿‍❤️‍💋‍👨🏼\",\"👩🏿‍❤️‍💋‍👨🏽\",\"👩🏿‍❤️‍💋‍👨🏾\",\"👩🏿‍❤️‍💋‍👨🏿\",\"👨‍❤️‍💋‍👨\",\"👨🏻‍❤️‍💋‍👨🏻\",\"👨🏻‍❤️‍💋‍👨🏼\",\"👨🏻‍❤️‍💋‍👨🏽\",\"👨🏻‍❤️‍💋‍👨🏾\",\"👨🏻‍❤️‍💋‍👨🏿\",\"👨🏼‍❤️‍💋‍👨🏻\",\"👨🏼‍❤️‍💋‍👨🏼\",\"👨🏼‍❤️‍💋‍👨🏽\",\"👨🏼‍❤️‍💋‍👨🏾\",\"👨🏼‍❤️‍💋‍👨🏿\",\"👨🏽‍❤️‍💋‍👨🏻\",\"👨🏽‍❤️‍💋‍👨🏼\",\"👨🏽‍❤️‍💋‍👨🏽\",\"👨🏽‍❤️‍💋‍👨🏾\",\"👨🏽‍❤️‍💋‍👨🏿\",\"👨🏾‍❤️‍💋‍👨🏻\",\"👨🏾‍❤️‍💋‍👨🏼\",\"👨🏾‍❤️‍💋‍👨🏽\",\"👨🏾‍❤️‍💋‍👨🏾\",\"👨🏾‍❤️‍💋‍👨🏿\",\"👨🏿‍❤️‍💋‍👨🏻\",\"👨🏿‍❤️‍💋‍👨🏼\",\"👨🏿‍❤️‍💋‍👨🏽\",\"👨🏿‍❤️‍💋‍👨🏾\",\"👨🏿‍❤️‍💋‍👨🏿\",\"👩‍❤️‍💋‍👩\",\"👩🏻‍❤️‍💋‍👩🏻\",\"👩🏻‍❤️‍💋‍👩🏼\",\"👩🏻‍❤️‍💋‍👩🏽\",\"👩🏻‍❤️‍💋‍👩🏾\",\"👩🏻‍❤️‍💋‍👩🏿\",\"👩🏼‍❤️‍💋‍👩🏻\",\"👩🏼‍❤️‍💋‍👩🏼\",\"👩🏼‍❤️‍💋‍👩🏽\",\"👩🏼‍❤️‍💋‍👩🏾\",\"👩🏼‍❤️‍💋‍👩🏿\",\"👩🏽‍❤️‍💋‍👩🏻\",\"👩🏽‍❤️‍💋‍👩🏼\",\"👩🏽‍❤️‍💋‍👩🏽\",\"👩🏽‍❤️‍💋‍👩🏾\",\"👩🏽‍❤️‍💋‍👩🏿\",\"👩🏾‍❤️‍💋‍👩🏻\",\"👩🏾‍❤️‍💋‍👩🏼\",\"👩🏾‍❤️‍💋‍👩🏽\",\"👩🏾‍❤️‍💋‍👩🏾\",\"👩🏾‍❤️‍💋‍👩🏿\",\"👩🏿‍❤️‍💋‍👩🏻\",\"👩🏿‍❤️‍💋‍👩🏼\",\"👩🏿‍❤️‍💋‍👩🏽\",\"👩🏿‍❤️‍💋‍👩🏾\",\"👩🏿‍❤️‍💋‍👩🏿\",\"💑\",\"💑🏻\",\"💑🏼\",\"💑🏽\",\"💑🏾\",\"💑🏿\",\"🧑🏻‍❤️‍🧑🏼\",\"🧑🏻‍❤️‍🧑🏽\",\"🧑🏻‍❤️‍🧑🏾\",\"🧑🏻‍❤️‍🧑🏿\",\"🧑🏼‍❤️‍🧑🏻\",\"🧑🏼‍❤️‍🧑🏽\",\"🧑🏼‍❤️‍🧑🏾\",\"🧑🏼‍❤️‍🧑🏿\",\"🧑🏽‍❤️‍🧑🏻\",\"🧑🏽‍❤️‍🧑🏼\",\"🧑🏽‍❤️‍🧑🏾\",\"🧑🏽‍❤️‍🧑🏿\",\"🧑🏾‍❤️‍🧑🏻\",\"🧑🏾‍❤️‍🧑🏼\",\"🧑🏾‍❤️‍🧑🏽\",\"🧑🏾‍❤️‍🧑🏿\",\"🧑🏿‍❤️‍🧑🏻\",\"🧑🏿‍❤️‍🧑🏼\",\"🧑🏿‍❤️‍🧑🏽\",\"🧑🏿‍❤️‍🧑🏾\",\"👩‍❤️‍👨\",\"👩🏻‍❤️‍👨🏻\",\"👩🏻‍❤️‍👨🏼\",\"👩🏻‍❤️‍👨🏽\",\"👩🏻‍❤️‍👨🏾\",\"👩🏻‍❤️‍👨🏿\",\"👩🏼‍❤️‍👨🏻\",\"👩🏼‍❤️‍👨🏼\",\"👩🏼‍❤️‍👨🏽\",\"👩🏼‍❤️‍👨🏾\",\"👩🏼‍❤️‍👨🏿\",\"👩🏽‍❤️‍👨🏻\",\"👩🏽‍❤️‍👨🏼\",\"👩🏽‍❤️‍👨🏽\",\"👩🏽‍❤️‍👨🏾\",\"👩🏽‍❤️‍👨🏿\",\"👩🏾‍❤️‍👨🏻\",\"👩🏾‍❤️‍👨🏼\",\"👩🏾‍❤️‍👨🏽\",\"👩🏾‍❤️‍👨🏾\",\"👩🏾‍❤️‍👨🏿\",\"👩🏿‍❤️‍👨🏻\",\"👩🏿‍❤️‍👨🏼\",\"👩🏿‍❤️‍👨🏽\",\"👩🏿‍❤️‍👨🏾\",\"👩🏿‍❤️‍👨🏿\",\"👨‍❤️‍👨\",\"👨🏻‍❤️‍👨🏻\",\"👨🏻‍❤️‍👨🏼\",\"👨🏻‍❤️‍👨🏽\",\"👨🏻‍❤️‍👨🏾\",\"👨🏻‍❤️‍👨🏿\",\"👨🏼‍❤️‍👨🏻\",\"👨🏼‍❤️‍👨🏼\",\"👨🏼‍❤️‍👨🏽\",\"👨🏼‍❤️‍👨🏾\",\"👨🏼‍❤️‍👨🏿\",\"👨🏽‍❤️‍👨🏻\",\"👨🏽‍❤️‍👨🏼\",\"👨🏽‍❤️‍👨🏽\",\"👨🏽‍❤️‍👨🏾\",\"👨🏽‍❤️‍👨🏿\",\"👨🏾‍❤️‍👨🏻\",\"👨🏾‍❤️‍👨🏼\",\"👨🏾‍❤️‍👨🏽\",\"👨🏾‍❤️‍👨🏾\",\"👨🏾‍❤️‍👨🏿\",\"👨🏿‍❤️‍👨🏻\",\"👨🏿‍❤️‍👨🏼\",\"👨🏿‍❤️‍👨🏽\",\"👨🏿‍❤️‍👨🏾\",\"👨🏿‍❤️‍👨🏿\",\"👩‍❤️‍👩\",\"👩🏻‍❤️‍👩🏻\",\"👩🏻‍❤️‍👩🏼\",\"👩🏻‍❤️‍👩🏽\",\"👩🏻‍❤️‍👩🏾\",\"👩🏻‍❤️‍👩🏿\",\"👩🏼‍❤️‍👩🏻\",\"👩🏼‍❤️‍👩🏼\",\"👩🏼‍❤️‍👩🏽\",\"👩🏼‍❤️‍👩🏾\",\"👩🏼‍❤️‍👩🏿\",\"👩🏽‍❤️‍👩🏻\",\"👩🏽‍❤️‍👩🏼\",\"👩🏽‍❤️‍👩🏽\",\"👩🏽‍❤️‍👩🏾\",\"👩🏽‍❤️‍👩🏿\",\"👩🏾‍❤️‍👩🏻\",\"👩🏾‍❤️‍👩🏼\",\"👩🏾‍❤️‍👩🏽\",\"👩🏾‍❤️‍👩🏾\",\"👩🏾‍❤️‍👩🏿\",\"👩🏿‍❤️‍👩🏻\",\"👩🏿‍❤️‍👩🏼\",\"👩🏿‍❤️‍👩🏽\",\"👩🏿‍❤️‍👩🏾\",\"👩🏿‍❤️‍👩🏿\",\"👪\",\"👨‍👩‍👦\",\"👨‍👩‍👧\",\"👨‍👩‍👧‍👦\",\"👨‍👩‍👦‍👦\",\"👨‍👩‍👧‍👧\",\"👨‍👨‍👦\",\"👨‍👨‍👧\",\"👨‍👨‍👧‍👦\",\"👨‍👨‍👦‍👦\",\"👨‍👨‍👧‍👧\",\"👩‍👩‍👦\",\"👩‍👩‍👧\",\"👩‍👩‍👧‍👦\",\"👩‍👩‍👦‍👦\",\"👩‍👩‍👧‍👧\",\"👨‍👦\",\"👨‍👦‍👦\",\"👨‍👧\",\"👨‍👧‍👦\",\"👨‍👧‍👧\",\"👩‍👦\",\"👩‍👦‍👦\",\"👩‍👧\",\"👩‍👧‍👦\",\"👩‍👧‍👧\",\"🗣️\",\"👤\",\"👥\",\"🫂\",\"👣\"],nature:[\"🐵\",\"🐒\",\"🦍\",\"🦧\",\"🐶\",\"🐕\",\"🦮\",\"🐕‍🦺\",\"🐩\",\"🐺\",\"🦊\",\"🦝\",\"🐱\",\"🐈\",\"🐈‍⬛\",\"🦁\",\"🐯\",\"🐅\",\"🐆\",\"🐴\",\"🐎\",\"🦄\",\"🦓\",\"🦌\",\"🦬\",\"🐮\",\"🐂\",\"🐃\",\"🐄\",\"🐷\",\"🐖\",\"🐗\",\"🐽\",\"🐏\",\"🐑\",\"🐐\",\"🐪\",\"🐫\",\"🦙\",\"🦒\",\"🐘\",\"🦣\",\"🦏\",\"🦛\",\"🐭\",\"🐁\",\"🐀\",\"🐹\",\"🐰\",\"🐇\",\"🐿️\",\"🦫\",\"🦔\",\"🦇\",\"🐻\",\"🐻‍❄️\",\"🐨\",\"🐼\",\"🦥\",\"🦦\",\"🦨\",\"🦘\",\"🦡\",\"🐾\",\"🦃\",\"🐔\",\"🐓\",\"🐣\",\"🐤\",\"🐥\",\"🐦\",\"🐧\",\"🕊️\",\"🦅\",\"🦆\",\"🦢\",\"🦉\",\"🦤\",\"🪶\",\"🦩\",\"🦚\",\"🦜\",\"🐸\",\"🐊\",\"🐢\",\"🦎\",\"🐍\",\"🐲\",\"🐉\",\"🦕\",\"🦖\",\"🐳\",\"🐋\",\"🐬\",\"🦭\",\"🐟\",\"🐠\",\"🐡\",\"🦈\",\"🐙\",\"🐚\",\"🐌\",\"🦋\",\"🐛\",\"🐜\",\"🐝\",\"🪲\",\"🐞\",\"🦗\",\"🪳\",\"🕷️\",\"🕸️\",\"🦂\",\"🦟\",\"🪰\",\"🪱\",\"🦠\",\"💐\",\"🌸\",\"💮\",\"🏵️\",\"🌹\",\"🥀\",\"🌺\",\"🌻\",\"🌼\",\"🌷\",\"🌱\",\"🪴\",\"🌲\",\"🌳\",\"🌴\",\"🌵\",\"🌾\",\"🌿\",\"☘️\",\"🍀\",\"🍁\",\"🍂\",\"🍃\"],food:[\"🍇\",\"🍈\",\"🍉\",\"🍊\",\"🍋\",\"🍌\",\"🍍\",\"🥭\",\"🍎\",\"🍏\",\"🍐\",\"🍑\",\"🍒\",\"🍓\",\"🫐\",\"🥝\",\"🍅\",\"🫒\",\"🥥\",\"🥑\",\"🍆\",\"🥔\",\"🥕\",\"🌽\",\"🌶️\",\"🫑\",\"🥒\",\"🥬\",\"🥦\",\"🧄\",\"🧅\",\"🍄\",\"🥜\",\"🌰\",\"🍞\",\"🥐\",\"🥖\",\"🫓\",\"🥨\",\"🥯\",\"🥞\",\"🧇\",\"🧀\",\"🍖\",\"🍗\",\"🥩\",\"🥓\",\"🍔\",\"🍟\",\"🍕\",\"🌭\",\"🥪\",\"🌮\",\"🌯\",\"🫔\",\"🥙\",\"🧆\",\"🥚\",\"🍳\",\"🥘\",\"🍲\",\"🫕\",\"🥣\",\"🥗\",\"🍿\",\"🧈\",\"🧂\",\"🥫\",\"🍱\",\"🍘\",\"🍙\",\"🍚\",\"🍛\",\"🍜\",\"🍝\",\"🍠\",\"🍢\",\"🍣\",\"🍤\",\"🍥\",\"🥮\",\"🍡\",\"🥟\",\"🥠\",\"🥡\",\"🦀\",\"🦞\",\"🦐\",\"🦑\",\"🦪\",\"🍦\",\"🍧\",\"🍨\",\"🍩\",\"🍪\",\"🎂\",\"🍰\",\"🧁\",\"🥧\",\"🍫\",\"🍬\",\"🍭\",\"🍮\",\"🍯\",\"🍼\",\"🥛\",\"☕\",\"🫖\",\"🍵\",\"🍶\",\"🍾\",\"🍷\",\"🍸\",\"🍹\",\"🍺\",\"🍻\",\"🥂\",\"🥃\",\"🥤\",\"🧋\",\"🧃\",\"🧉\",\"🧊\",\"🥢\",\"🍽️\",\"🍴\",\"🥄\",\"🔪\",\"🏺\"],travel:[\"🌍\",\"🌎\",\"🌏\",\"🌐\",\"🗺️\",\"🗾\",\"🧭\",\"🏔️\",\"⛰️\",\"🌋\",\"🗻\",\"🏕️\",\"🏖️\",\"🏜️\",\"🏝️\",\"🏞️\",\"🏟️\",\"🏛️\",\"🏗️\",\"🧱\",\"🪨\",\"🪵\",\"🛖\",\"🏘️\",\"🏚️\",\"🏠\",\"🏡\",\"🏢\",\"🏣\",\"🏤\",\"🏥\",\"🏦\",\"🏨\",\"🏩\",\"🏪\",\"🏫\",\"🏬\",\"🏭\",\"🏯\",\"🏰\",\"💒\",\"🗼\",\"🗽\",\"⛪\",\"🕌\",\"🛕\",\"🕍\",\"⛩️\",\"🕋\",\"⛲\",\"⛺\",\"🌁\",\"🌃\",\"🏙️\",\"🌄\",\"🌅\",\"🌆\",\"🌇\",\"🌉\",\"♨️\",\"🎠\",\"🎡\",\"🎢\",\"💈\",\"🎪\",\"🚂\",\"🚃\",\"🚄\",\"🚅\",\"🚆\",\"🚇\",\"🚈\",\"🚉\",\"🚊\",\"🚝\",\"🚞\",\"🚋\",\"🚌\",\"🚍\",\"🚎\",\"🚐\",\"🚑\",\"🚒\",\"🚓\",\"🚔\",\"🚕\",\"🚖\",\"🚗\",\"🚘\",\"🚙\",\"🛻\",\"🚚\",\"🚛\",\"🚜\",\"🏎️\",\"🏍️\",\"🛵\",\"🦽\",\"🦼\",\"🛺\",\"🚲\",\"🛴\",\"🛹\",\"🛼\",\"🚏\",\"🛣️\",\"🛤️\",\"🛢️\",\"⛽\",\"🚨\",\"🚥\",\"🚦\",\"🛑\",\"🚧\",\"⚓\",\"⛵\",\"🛶\",\"🚤\",\"🛳️\",\"⛴️\",\"🛥️\",\"🚢\",\"✈️\",\"🛩️\",\"🛫\",\"🛬\",\"🪂\",\"💺\",\"🚁\",\"🚟\",\"🚠\",\"🚡\",\"🛰️\",\"🚀\",\"🛸\",\"🛎️\",\"🧳\",\"⌛\",\"⏳\",\"⌚\",\"⏰\",\"⏱️\",\"⏲️\",\"🕰️\",\"🕛\",\"🕧\",\"🕐\",\"🕜\",\"🕑\",\"🕝\",\"🕒\",\"🕞\",\"🕓\",\"🕟\",\"🕔\",\"🕠\",\"🕕\",\"🕡\",\"🕖\",\"🕢\",\"🕗\",\"🕣\",\"🕘\",\"🕤\",\"🕙\",\"🕥\",\"🕚\",\"🕦\",\"🌑\",\"🌒\",\"🌓\",\"🌔\",\"🌕\",\"🌖\",\"🌗\",\"🌘\",\"🌙\",\"🌚\",\"🌛\",\"🌜\",\"🌡️\",\"☀️\",\"🌝\",\"🌞\",\"🪐\",\"⭐\",\"🌟\",\"🌠\",\"🌌\",\"☁️\",\"⛅\",\"⛈️\",\"🌤️\",\"🌥️\",\"🌦️\",\"🌧️\",\"🌨️\",\"🌩️\",\"🌪️\",\"🌫️\",\"🌬️\",\"🌀\",\"🌈\",\"🌂\",\"☂️\",\"☔\",\"⛱️\",\"⚡\",\"❄️\",\"☃️\",\"⛄\",\"☄️\",\"🔥\",\"💧\",\"🌊\"],activity:[\"🎃\",\"🎄\",\"🎆\",\"🎇\",\"🧨\",\"✨\",\"🎈\",\"🎉\",\"🎊\",\"🎋\",\"🎍\",\"🎎\",\"🎏\",\"🎐\",\"🎑\",\"🧧\",\"🎀\",\"🎁\",\"🎗️\",\"🎟️\",\"🎫\",\"🎖️\",\"🏆\",\"🏅\",\"🥇\",\"🥈\",\"🥉\",\"⚽\",\"⚾\",\"🥎\",\"🏀\",\"🏐\",\"🏈\",\"🏉\",\"🎾\",\"🥏\",\"🎳\",\"🏏\",\"🏑\",\"🏒\",\"🥍\",\"🏓\",\"🏸\",\"🥊\",\"🥋\",\"🥅\",\"⛳\",\"⛸️\",\"🎣\",\"🤿\",\"🎽\",\"🎿\",\"🛷\",\"🥌\",\"🎯\",\"🪀\",\"🪁\",\"🎱\",\"🔮\",\"🪄\",\"🧿\",\"🎮\",\"🕹️\",\"🎰\",\"🎲\",\"🧩\",\"🧸\",\"🪅\",\"🪆\",\"♠️\",\"♥️\",\"♦️\",\"♣️\",\"♟️\",\"🃏\",\"🀄\",\"🎴\",\"🎭\",\"🖼️\",\"🎨\",\"🧵\",\"🪡\",\"🧶\",\"🪢\"],object:[\"👓\",\"🕶️\",\"🥽\",\"🥼\",\"🦺\",\"👔\",\"👕\",\"👖\",\"🧣\",\"🧤\",\"🧥\",\"🧦\",\"👗\",\"👘\",\"🥻\",\"🩱\",\"🩲\",\"🩳\",\"👙\",\"👚\",\"👛\",\"👜\",\"👝\",\"🛍️\",\"🎒\",\"🩴\",\"👞\",\"👟\",\"🥾\",\"🥿\",\"👠\",\"👡\",\"🩰\",\"👢\",\"👑\",\"👒\",\"🎩\",\"🎓\",\"🧢\",\"🪖\",\"⛑️\",\"📿\",\"💄\",\"💍\",\"💎\",\"🔇\",\"🔈\",\"🔉\",\"🔊\",\"📢\",\"📣\",\"📯\",\"🔔\",\"🔕\",\"🎼\",\"🎵\",\"🎶\",\"🎙️\",\"🎚️\",\"🎛️\",\"🎤\",\"🎧\",\"📻\",\"🎷\",\"🪗\",\"🎸\",\"🎹\",\"🎺\",\"🎻\",\"🪕\",\"🥁\",\"🪘\",\"📱\",\"📲\",\"☎️\",\"📞\",\"📟\",\"📠\",\"🔋\",\"🔌\",\"💻\",\"🖥️\",\"🖨️\",\"⌨️\",\"🖱️\",\"🖲️\",\"💽\",\"💾\",\"💿\",\"📀\",\"🧮\",\"🎥\",\"🎞️\",\"📽️\",\"🎬\",\"📺\",\"📷\",\"📸\",\"📹\",\"📼\",\"🔍\",\"🔎\",\"🕯️\",\"💡\",\"🔦\",\"🏮\",\"🪔\",\"📔\",\"📕\",\"📖\",\"📗\",\"📘\",\"📙\",\"📚\",\"📓\",\"📒\",\"📃\",\"📜\",\"📄\",\"📰\",\"🗞️\",\"📑\",\"🔖\",\"🏷️\",\"💰\",\"🪙\",\"💴\",\"💵\",\"💶\",\"💷\",\"💸\",\"💳\",\"🧾\",\"💹\",\"✉️\",\"📧\",\"📨\",\"📩\",\"📤\",\"📥\",\"📦\",\"📫\",\"📪\",\"📬\",\"📭\",\"📮\",\"🗳️\",\"✏️\",\"✒️\",\"🖋️\",\"🖊️\",\"🖌️\",\"🖍️\",\"📝\",\"💼\",\"📁\",\"📂\",\"🗂️\",\"📅\",\"📆\",\"🗒️\",\"🗓️\",\"📇\",\"📈\",\"📉\",\"📊\",\"📋\",\"📌\",\"📍\",\"📎\",\"🖇️\",\"📏\",\"📐\",\"✂️\",\"🗃️\",\"🗄️\",\"🗑️\",\"🔒\",\"🔓\",\"🔏\",\"🔐\",\"🔑\",\"🗝️\",\"🔨\",\"🪓\",\"⛏️\",\"⚒️\",\"🛠️\",\"🗡️\",\"⚔️\",\"🔫\",\"🪃\",\"🏹\",\"🛡️\",\"🪚\",\"🔧\",\"🪛\",\"🔩\",\"⚙️\",\"🗜️\",\"⚖️\",\"🦯\",\"🔗\",\"⛓️\",\"🪝\",\"🧰\",\"🧲\",\"🪜\",\"⚗️\",\"🧪\",\"🧫\",\"🧬\",\"🔬\",\"🔭\",\"📡\",\"💉\",\"🩸\",\"💊\",\"🩹\",\"🩺\",\"🚪\",\"🛗\",\"🪞\",\"🪟\",\"🛏️\",\"🛋️\",\"🪑\",\"🚽\",\"🪠\",\"🚿\",\"🛁\",\"🪤\",\"🪒\",\"🧴\",\"🧷\",\"🧹\",\"🧺\",\"🧻\",\"🪣\",\"🧼\",\"🪥\",\"🧽\",\"🧯\",\"🛒\",\"🚬\",\"⚰️\",\"🪦\",\"⚱️\",\"🗿\",\"🪧\"],symbol:[\"🏧\",\"🚮\",\"🚰\",\"♿\",\"🚹\",\"🚺\",\"🚻\",\"🚼\",\"🚾\",\"🛂\",\"🛃\",\"🛄\",\"🛅\",\"⚠️\",\"🚸\",\"⛔\",\"🚫\",\"🚳\",\"🚭\",\"🚯\",\"🚱\",\"🚷\",\"📵\",\"🔞\",\"☢️\",\"☣️\",\"⬆️\",\"↗️\",\"➡️\",\"↘️\",\"⬇️\",\"↙️\",\"⬅️\",\"↖️\",\"↕️\",\"↔️\",\"↩️\",\"↪️\",\"⤴️\",\"⤵️\",\"🔃\",\"🔄\",\"🔙\",\"🔚\",\"🔛\",\"🔜\",\"🔝\",\"🛐\",\"⚛️\",\"🕉️\",\"✡️\",\"☸️\",\"☯️\",\"✝️\",\"☦️\",\"☪️\",\"☮️\",\"🕎\",\"🔯\",\"♈\",\"♉\",\"♊\",\"♋\",\"♌\",\"♍\",\"♎\",\"♏\",\"♐\",\"♑\",\"♒\",\"♓\",\"⛎\",\"🔀\",\"🔁\",\"🔂\",\"▶️\",\"⏩\",\"⏭️\",\"⏯️\",\"◀️\",\"⏪\",\"⏮️\",\"🔼\",\"⏫\",\"🔽\",\"⏬\",\"⏸️\",\"⏹️\",\"⏺️\",\"⏏️\",\"🎦\",\"🔅\",\"🔆\",\"📶\",\"📳\",\"📴\",\"♀️\",\"♂️\",\"⚧️\",\"✖️\",\"\",\"\",\"➗\",\"♾️\",\"‼️\",\"⁉️\",\"❓\",\"❔\",\"❕\",\"❗\",\"〰️\",\"💱\",\"💲\",\"⚕️\",\"♻️\",\"⚜️\",\"🔱\",\"📛\",\"🔰\",\"⭕\",\"✅\",\"☑️\",\"✔️\",\"❌\",\"❎\",\"➰\",\"➿\",\"〽️\",\"✳️\",\"✴️\",\"❇️\",\"©️\",\"®️\",\"™️\",\"#️⃣\",\"*️⃣\",\"0⃣\",\"1⃣\",\"2⃣\",\"3⃣\",\"4⃣\",\"5⃣\",\"6⃣\",\"7⃣\",\"8⃣\",\"9⃣\",\"🔟\",\"🔠\",\"🔡\",\"🔢\",\"🔣\",\"🔤\",\"🅰️\",\"🆎\",\"🅱️\",\"🆑\",\"🆒\",\"🆓\",\"\",\"🆔\",\"Ⓜ️\",\"🆕\",\"🆖\",\"🅾️\",\"🆗\",\"🅿️\",\"🆘\",\"🆙\",\"🆚\",\"🈁\",\"🈂️\",\"🈷️\",\"🈶\",\"🈯\",\"🉐\",\"🈹\",\"🈚\",\"🈲\",\"🉑\",\"🈸\",\"🈴\",\"🈳\",\"㊗️\",\"㊙️\",\"🈺\",\"🈵\",\"🔴\",\"🟠\",\"🟡\",\"🟢\",\"🔵\",\"🟣\",\"🟤\",\"⚫\",\"⚪\",\"🟥\",\"🟧\",\"🟨\",\"🟩\",\"🟦\",\"🟪\",\"🟫\",\"⬛\",\"⬜\",\"◼️\",\"◻️\",\"◾\",\"◽\",\"▪️\",\"▫️\",\"🔶\",\"🔷\",\"🔸\",\"🔹\",\"🔺\",\"🔻\",\"💠\",\"🔘\",\"🔳\",\"🔲\"],flag:[\"🏁\",\"🚩\",\"🎌\",\"🏴\",\"🏳️\",\"🏳️‍🌈\",\"🏳️‍⚧️\",\"🏴‍☠️\",\"🇦🇨\",\"🇦🇩\",\"🇦🇪\",\"🇦🇫\",\"🇦🇬\",\"🇦🇮\",\"🇦🇱\",\"🇦🇲\",\"🇦🇴\",\"🇦🇶\",\"🇦🇷\",\"🇦🇸\",\"🇦🇹\",\"🇦🇺\",\"🇦🇼\",\"🇦🇽\",\"🇦🇿\",\"🇧🇦\",\"🇧🇧\",\"🇧🇩\",\"🇧🇪\",\"🇧🇫\",\"🇧🇬\",\"🇧🇭\",\"🇧🇮\",\"🇧🇯\",\"🇧🇱\",\"🇧🇲\",\"🇧🇳\",\"🇧🇴\",\"🇧🇶\",\"🇧🇷\",\"🇧🇸\",\"🇧🇹\",\"🇧🇻\",\"🇧🇼\",\"🇧🇾\",\"🇧🇿\",\"🇨🇦\",\"🇨🇨\",\"🇨🇩\",\"🇨🇫\",\"🇨🇬\",\"🇨🇭\",\"🇨🇮\",\"🇨🇰\",\"🇨🇱\",\"🇨🇲\",\"🇨🇳\",\"🇨🇴\",\"🇨🇵\",\"🇨🇷\",\"🇨🇺\",\"🇨🇻\",\"🇨🇼\",\"🇨🇽\",\"🇨🇾\",\"🇨🇿\",\"🇩🇪\",\"🇩🇬\",\"🇩🇯\",\"🇩🇰\",\"🇩🇲\",\"🇩🇴\",\"🇩🇿\",\"🇪🇦\",\"🇪🇨\",\"🇪🇪\",\"🇪🇬\",\"🇪🇭\",\"🇪🇷\",\"🇪🇸\",\"🇪🇹\",\"🇪🇺\",\"🇫🇮\",\"🇫🇯\",\"🇫🇰\",\"🇫🇲\",\"🇫🇴\",\"🇫🇷\",\"🇬🇦\",\"🇬🇧\",\"🇬🇩\",\"🇬🇪\",\"🇬🇫\",\"🇬🇬\",\"🇬🇭\",\"🇬🇮\",\"🇬🇱\",\"🇬🇲\",\"🇬🇳\",\"🇬🇵\",\"🇬🇶\",\"🇬🇷\",\"🇬🇸\",\"🇬🇹\",\"🇬🇺\",\"🇬🇼\",\"🇬🇾\",\"🇭🇰\",\"🇭🇲\",\"🇭🇳\",\"🇭🇷\",\"🇭🇹\",\"🇭🇺\",\"🇮🇨\",\"🇮🇩\",\"🇮🇪\",\"🇮🇱\",\"🇮🇲\",\"🇮🇳\",\"🇮🇴\",\"🇮🇶\",\"🇮🇷\",\"🇮🇸\",\"🇮🇹\",\"🇯🇪\",\"🇯🇲\",\"🇯🇴\",\"🇯🇵\",\"🇰🇪\",\"🇰🇬\",\"🇰🇭\",\"🇰🇮\",\"🇰🇲\",\"🇰🇳\",\"🇰🇵\",\"🇰🇷\",\"🇰🇼\",\"🇰🇾\",\"🇰🇿\",\"🇱🇦\",\"🇱🇧\",\"🇱🇨\",\"🇱🇮\",\"🇱🇰\",\"🇱🇷\",\"🇱🇸\",\"🇱🇹\",\"🇱🇺\",\"🇱🇻\",\"🇱🇾\",\"🇲🇦\",\"🇲🇨\",\"🇲🇩\",\"🇲🇪\",\"🇲🇫\",\"🇲🇬\",\"🇲🇭\",\"🇲🇰\",\"🇲🇱\",\"🇲🇲\",\"🇲🇳\",\"🇲🇴\",\"🇲🇵\",\"🇲🇶\",\"🇲🇷\",\"🇲🇸\",\"🇲🇹\",\"🇲🇺\",\"🇲🇻\",\"🇲🇼\",\"🇲🇽\",\"🇲🇾\",\"🇲🇿\",\"🇳🇦\",\"🇳🇨\",\"🇳🇪\",\"🇳🇫\",\"🇳🇬\",\"🇳🇮\",\"🇳🇱\",\"🇳🇴\",\"🇳🇵\",\"🇳🇷\",\"🇳🇺\",\"🇳🇿\",\"🇴🇲\",\"🇵🇦\",\"🇵🇪\",\"🇵🇫\",\"🇵🇬\",\"🇵🇭\",\"🇵🇰\",\"🇵🇱\",\"🇵🇲\",\"🇵🇳\",\"🇵🇷\",\"🇵🇸\",\"🇵🇹\",\"🇵🇼\",\"🇵🇾\",\"🇶🇦\",\"🇷🇪\",\"🇷🇴\",\"🇷🇸\",\"🇷🇺\",\"🇷🇼\",\"🇸🇦\",\"🇸🇧\",\"🇸🇨\",\"🇸🇩\",\"🇸🇪\",\"🇸🇬\",\"🇸🇭\",\"🇸🇮\",\"🇸🇯\",\"🇸🇰\",\"🇸🇱\",\"🇸🇲\",\"🇸🇳\",\"🇸🇴\",\"🇸🇷\",\"🇸🇸\",\"🇸🇹\",\"🇸🇻\",\"🇸🇽\",\"🇸🇾\",\"🇸🇿\",\"🇹🇦\",\"🇹🇨\",\"🇹🇩\",\"🇹🇫\",\"🇹🇬\",\"🇹🇭\",\"🇹🇯\",\"🇹🇰\",\"🇹🇱\",\"🇹🇲\",\"🇹🇳\",\"🇹🇴\",\"🇹🇷\",\"🇹🇹\",\"🇹🇻\",\"🇹🇼\",\"🇹🇿\",\"🇺🇦\",\"🇺🇬\",\"🇺🇲\",\"🇺🇳\",\"🇺🇸\",\"🇺🇾\",\"🇺🇿\",\"🇻🇦\",\"🇻🇨\",\"🇻🇪\",\"🇻🇬\",\"🇻🇮\",\"🇻🇳\",\"🇻🇺\",\"🇼🇫\",\"🇼🇸\",\"🇽🇰\",\"🇾🇪\",\"🇾🇹\",\"🇿🇦\",\"🇿🇲\",\"🇿🇼\"]},QYe={informational:[100,101,102,103],success:[200,201,202,203,204,205,206,207,208,226],redirection:[300,301,302,303,304,305,306,307,308],clientError:[400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,425,426,428,429,431,451],serverError:[500,501,502,503,504,505,506,507,508,510,511]},eqe={emoji:ZYe,http_status_code:QYe},tqe=eqe,rqe=[{alpha2:\"AD\",alpha3:\"AND\",numeric:\"020\"},{alpha2:\"AE\",alpha3:\"ARE\",numeric:\"784\"},{alpha2:\"AF\",alpha3:\"AFG\",numeric:\"004\"},{alpha2:\"AG\",alpha3:\"ATG\",numeric:\"028\"},{alpha2:\"AI\",alpha3:\"AIA\",numeric:\"660\"},{alpha2:\"AL\",alpha3:\"ALB\",numeric:\"008\"},{alpha2:\"AM\",alpha3:\"ARM\",numeric:\"051\"},{alpha2:\"AO\",alpha3:\"AGO\",numeric:\"024\"},{alpha2:\"AQ\",alpha3:\"ATA\",numeric:\"010\"},{alpha2:\"AR\",alpha3:\"ARG\",numeric:\"032\"},{alpha2:\"AS\",alpha3:\"ASM\",numeric:\"016\"},{alpha2:\"AT\",alpha3:\"AUT\",numeric:\"040\"},{alpha2:\"AU\",alpha3:\"AUS\",numeric:\"036\"},{alpha2:\"AW\",alpha3:\"ABW\",numeric:\"533\"},{alpha2:\"AX\",alpha3:\"ALA\",numeric:\"248\"},{alpha2:\"AZ\",alpha3:\"AZE\",numeric:\"031\"},{alpha2:\"BA\",alpha3:\"BIH\",numeric:\"070\"},{alpha2:\"BB\",alpha3:\"BRB\",numeric:\"052\"},{alpha2:\"BD\",alpha3:\"BGD\",numeric:\"050\"},{alpha2:\"BE\",alpha3:\"BEL\",numeric:\"056\"},{alpha2:\"BF\",alpha3:\"BFA\",numeric:\"854\"},{alpha2:\"BG\",alpha3:\"BGR\",numeric:\"100\"},{alpha2:\"BH\",alpha3:\"BHR\",numeric:\"048\"},{alpha2:\"BI\",alpha3:\"BDI\",numeric:\"108\"},{alpha2:\"BJ\",alpha3:\"BEN\",numeric:\"204\"},{alpha2:\"BL\",alpha3:\"BLM\",numeric:\"652\"},{alpha2:\"BM\",alpha3:\"BMU\",numeric:\"060\"},{alpha2:\"BN\",alpha3:\"BRN\",numeric:\"096\"},{alpha2:\"BO\",alpha3:\"BOL\",numeric:\"068\"},{alpha2:\"BQ\",alpha3:\"BES\",numeric:\"535\"},{alpha2:\"BR\",alpha3:\"BRA\",numeric:\"076\"},{alpha2:\"BS\",alpha3:\"BHS\",numeric:\"044\"},{alpha2:\"BT\",alpha3:\"BTN\",numeric:\"064\"},{alpha2:\"BV\",alpha3:\"BVT\",numeric:\"074\"},{alpha2:\"BW\",alpha3:\"BWA\",numeric:\"072\"},{alpha2:\"BY\",alpha3:\"BLR\",numeric:\"112\"},{alpha2:\"BZ\",alpha3:\"BLZ\",numeric:\"084\"},{alpha2:\"CA\",alpha3:\"CAN\",numeric:\"124\"},{alpha2:\"CC\",alpha3:\"CCK\",numeric:\"166\"},{alpha2:\"CD\",alpha3:\"COD\",numeric:\"180\"},{alpha2:\"CF\",alpha3:\"CAF\",numeric:\"140\"},{alpha2:\"CG\",alpha3:\"COG\",numeric:\"178\"},{alpha2:\"CH\",alpha3:\"CHE\",numeric:\"756\"},{alpha2:\"CI\",alpha3:\"CIV\",numeric:\"384\"},{alpha2:\"CK\",alpha3:\"COK\",numeric:\"184\"},{alpha2:\"CL\",alpha3:\"CHL\",numeric:\"152\"},{alpha2:\"CM\",alpha3:\"CMR\",numeric:\"120\"},{alpha2:\"CN\",alpha3:\"CHN\",numeric:\"156\"},{alpha2:\"CO\",alpha3:\"COL\",numeric:\"170\"},{alpha2:\"CR\",alpha3:\"CRI\",numeric:\"188\"},{alpha2:\"CU\",alpha3:\"CUB\",numeric:\"192\"},{alpha2:\"CV\",alpha3:\"CPV\",numeric:\"132\"},{alpha2:\"CW\",alpha3:\"CUW\",numeric:\"531\"},{alpha2:\"CX\",alpha3:\"CXR\",numeric:\"162\"},{alpha2:\"CY\",alpha3:\"CYP\",numeric:\"196\"},{alpha2:\"CZ\",alpha3:\"CZE\",numeric:\"203\"},{alpha2:\"DE\",alpha3:\"DEU\",numeric:\"276\"},{alpha2:\"DJ\",alpha3:\"DJI\",numeric:\"262\"},{alpha2:\"DK\",alpha3:\"DNK\",numeric:\"208\"},{alpha2:\"DM\",alpha3:\"DMA\",numeric:\"212\"},{alpha2:\"DO\",alpha3:\"DOM\",numeric:\"214\"},{alpha2:\"DZ\",alpha3:\"DZA\",numeric:\"012\"},{alpha2:\"EC\",alpha3:\"ECU\",numeric:\"218\"},{alpha2:\"EE\",alpha3:\"EST\",numeric:\"233\"},{alpha2:\"EG\",alpha3:\"EGY\",numeric:\"818\"},{alpha2:\"EH\",alpha3:\"ESH\",numeric:\"732\"},{alpha2:\"ER\",alpha3:\"ERI\",numeric:\"232\"},{alpha2:\"ES\",alpha3:\"ESP\",numeric:\"724\"},{alpha2:\"ET\",alpha3:\"ETH\",numeric:\"231\"},{alpha2:\"FI\",alpha3:\"FIN\",numeric:\"246\"},{alpha2:\"FJ\",alpha3:\"FJI\",numeric:\"242\"},{alpha2:\"FK\",alpha3:\"FLK\",numeric:\"238\"},{alpha2:\"FM\",alpha3:\"FSM\",numeric:\"583\"},{alpha2:\"FO\",alpha3:\"FRO\",numeric:\"234\"},{alpha2:\"FR\",alpha3:\"FRA\",numeric:\"250\"},{alpha2:\"GA\",alpha3:\"GAB\",numeric:\"266\"},{alpha2:\"GB\",alpha3:\"GBR\",numeric:\"826\"},{alpha2:\"GD\",alpha3:\"GRD\",numeric:\"308\"},{alpha2:\"GE\",alpha3:\"GEO\",numeric:\"268\"},{alpha2:\"GF\",alpha3:\"GUF\",numeric:\"254\"},{alpha2:\"GG\",alpha3:\"GGY\",numeric:\"831\"},{alpha2:\"GH\",alpha3:\"GHA\",numeric:\"288\"},{alpha2:\"GI\",alpha3:\"GIB\",numeric:\"292\"},{alpha2:\"GL\",alpha3:\"GRL\",numeric:\"304\"},{alpha2:\"GM\",alpha3:\"GMB\",numeric:\"270\"},{alpha2:\"GN\",alpha3:\"GIN\",numeric:\"324\"},{alpha2:\"GP\",alpha3:\"GLP\",numeric:\"312\"},{alpha2:\"GQ\",alpha3:\"GNQ\",numeric:\"226\"},{alpha2:\"GR\",alpha3:\"GRC\",numeric:\"300\"},{alpha2:\"GS\",alpha3:\"SGS\",numeric:\"239\"},{alpha2:\"GT\",alpha3:\"GTM\",numeric:\"320\"},{alpha2:\"GU\",alpha3:\"GUM\",numeric:\"316\"},{alpha2:\"GW\",alpha3:\"GNB\",numeric:\"624\"},{alpha2:\"GY\",alpha3:\"GUY\",numeric:\"328\"},{alpha2:\"HK\",alpha3:\"HKG\",numeric:\"344\"},{alpha2:\"HM\",alpha3:\"HMD\",numeric:\"334\"},{alpha2:\"HN\",alpha3:\"HND\",numeric:\"340\"},{alpha2:\"HR\",alpha3:\"HRV\",numeric:\"191\"},{alpha2:\"HT\",alpha3:\"HTI\",numeric:\"332\"},{alpha2:\"HU\",alpha3:\"HUN\",numeric:\"348\"},{alpha2:\"ID\",alpha3:\"IDN\",numeric:\"360\"},{alpha2:\"IE\",alpha3:\"IRL\",numeric:\"372\"},{alpha2:\"IL\",alpha3:\"ISR\",numeric:\"376\"},{alpha2:\"IM\",alpha3:\"IMN\",numeric:\"833\"},{alpha2:\"IN\",alpha3:\"IND\",numeric:\"356\"},{alpha2:\"IO\",alpha3:\"IOT\",numeric:\"086\"},{alpha2:\"IQ\",alpha3:\"IRQ\",numeric:\"368\"},{alpha2:\"IR\",alpha3:\"IRN\",numeric:\"364\"},{alpha2:\"IS\",alpha3:\"ISL\",numeric:\"352\"},{alpha2:\"IT\",alpha3:\"ITA\",numeric:\"380\"},{alpha2:\"JE\",alpha3:\"JEY\",numeric:\"832\"},{alpha2:\"JM\",alpha3:\"JAM\",numeric:\"388\"},{alpha2:\"JO\",alpha3:\"JOR\",numeric:\"400\"},{alpha2:\"JP\",alpha3:\"JPN\",numeric:\"392\"},{alpha2:\"KE\",alpha3:\"KEN\",numeric:\"404\"},{alpha2:\"KG\",alpha3:\"KGZ\",numeric:\"417\"},{alpha2:\"KH\",alpha3:\"KHM\",numeric:\"116\"},{alpha2:\"KI\",alpha3:\"KIR\",numeric:\"296\"},{alpha2:\"KM\",alpha3:\"COM\",numeric:\"174\"},{alpha2:\"KN\",alpha3:\"KNA\",numeric:\"659\"},{alpha2:\"KP\",alpha3:\"PRK\",numeric:\"408\"},{alpha2:\"KR\",alpha3:\"KOR\",numeric:\"410\"},{alpha2:\"KW\",alpha3:\"KWT\",numeric:\"414\"},{alpha2:\"KY\",alpha3:\"CYM\",numeric:\"136\"},{alpha2:\"KZ\",alpha3:\"KAZ\",numeric:\"398\"},{alpha2:\"LA\",alpha3:\"LAO\",numeric:\"418\"},{alpha2:\"LB\",alpha3:\"LBN\",numeric:\"422\"},{alpha2:\"LC\",alpha3:\"LCA\",numeric:\"662\"},{alpha2:\"LI\",alpha3:\"LIE\",numeric:\"438\"},{alpha2:\"LK\",alpha3:\"LKA\",numeric:\"144\"},{alpha2:\"LR\",alpha3:\"LBR\",numeric:\"430\"},{alpha2:\"LS\",alpha3:\"LSO\",numeric:\"426\"},{alpha2:\"LT\",alpha3:\"LTU\",numeric:\"440\"},{alpha2:\"LU\",alpha3:\"LUX\",numeric:\"442\"},{alpha2:\"LV\",alpha3:\"LVA\",numeric:\"428\"},{alpha2:\"LY\",alpha3:\"LBY\",numeric:\"434\"},{alpha2:\"MA\",alpha3:\"MAR\",numeric:\"504\"},{alpha2:\"MC\",alpha3:\"MCO\",numeric:\"492\"},{alpha2:\"MD\",alpha3:\"MDA\",numeric:\"498\"},{alpha2:\"ME\",alpha3:\"MNE\",numeric:\"499\"},{alpha2:\"MF\",alpha3:\"MAF\",numeric:\"663\"},{alpha2:\"MG\",alpha3:\"MDG\",numeric:\"450\"},{alpha2:\"MH\",alpha3:\"MHL\",numeric:\"584\"},{alpha2:\"MK\",alpha3:\"MKD\",numeric:\"807\"},{alpha2:\"ML\",alpha3:\"MLI\",numeric:\"466\"},{alpha2:\"MM\",alpha3:\"MMR\",numeric:\"104\"},{alpha2:\"MN\",alpha3:\"MNG\",numeric:\"496\"},{alpha2:\"MO\",alpha3:\"MAC\",numeric:\"446\"},{alpha2:\"MP\",alpha3:\"MNP\",numeric:\"580\"},{alpha2:\"MQ\",alpha3:\"MTQ\",numeric:\"474\"},{alpha2:\"MR\",alpha3:\"MRT\",numeric:\"478\"},{alpha2:\"MS\",alpha3:\"MSR\",numeric:\"500\"},{alpha2:\"MT\",alpha3:\"MLT\",numeric:\"470\"},{alpha2:\"MU\",alpha3:\"MUS\",numeric:\"480\"},{alpha2:\"MV\",alpha3:\"MDV\",numeric:\"462\"},{alpha2:\"MW\",alpha3:\"MWI\",numeric:\"454\"},{alpha2:\"MX\",alpha3:\"MEX\",numeric:\"484\"},{alpha2:\"MY\",alpha3:\"MYS\",numeric:\"458\"},{alpha2:\"MZ\",alpha3:\"MOZ\",numeric:\"508\"},{alpha2:\"NA\",alpha3:\"NAM\",numeric:\"516\"},{alpha2:\"NC\",alpha3:\"NCL\",numeric:\"540\"},{alpha2:\"NE\",alpha3:\"NER\",numeric:\"562\"},{alpha2:\"NF\",alpha3:\"NFK\",numeric:\"574\"},{alpha2:\"NG\",alpha3:\"NGA\",numeric:\"566\"},{alpha2:\"NI\",alpha3:\"NIC\",numeric:\"558\"},{alpha2:\"NL\",alpha3:\"NLD\",numeric:\"528\"},{alpha2:\"NO\",alpha3:\"NOR\",numeric:\"578\"},{alpha2:\"NP\",alpha3:\"NPL\",numeric:\"524\"},{alpha2:\"NR\",alpha3:\"NRU\",numeric:\"520\"},{alpha2:\"NU\",alpha3:\"NIU\",numeric:\"570\"},{alpha2:\"NZ\",alpha3:\"NZL\",numeric:\"554\"},{alpha2:\"OM\",alpha3:\"OMN\",numeric:\"512\"},{alpha2:\"PA\",alpha3:\"PAN\",numeric:\"591\"},{alpha2:\"PE\",alpha3:\"PER\",numeric:\"604\"},{alpha2:\"PF\",alpha3:\"PYF\",numeric:\"258\"},{alpha2:\"PG\",alpha3:\"PNG\",numeric:\"598\"},{alpha2:\"PH\",alpha3:\"PHL\",numeric:\"608\"},{alpha2:\"PK\",alpha3:\"PAK\",numeric:\"586\"},{alpha2:\"PL\",alpha3:\"POL\",numeric:\"616\"},{alpha2:\"PM\",alpha3:\"SPM\",numeric:\"666\"},{alpha2:\"PN\",alpha3:\"PCN\",numeric:\"612\"},{alpha2:\"PR\",alpha3:\"PRI\",numeric:\"630\"},{alpha2:\"PS\",alpha3:\"PSE\",numeric:\"275\"},{alpha2:\"PT\",alpha3:\"PRT\",numeric:\"620\"},{alpha2:\"PW\",alpha3:\"PLW\",numeric:\"585\"},{alpha2:\"PY\",alpha3:\"PRY\",numeric:\"600\"},{alpha2:\"QA\",alpha3:\"QAT\",numeric:\"634\"},{alpha2:\"RE\",alpha3:\"REU\",numeric:\"638\"},{alpha2:\"RO\",alpha3:\"ROU\",numeric:\"642\"},{alpha2:\"RS\",alpha3:\"SRB\",numeric:\"688\"},{alpha2:\"RU\",alpha3:\"RUS\",numeric:\"643\"},{alpha2:\"RW\",alpha3:\"RWA\",numeric:\"646\"},{alpha2:\"SA\",alpha3:\"SAU\",numeric:\"682\"},{alpha2:\"SB\",alpha3:\"SLB\",numeric:\"090\"},{alpha2:\"SC\",alpha3:\"SYC\",numeric:\"690\"},{alpha2:\"SD\",alpha3:\"SDN\",numeric:\"729\"},{alpha2:\"SE\",alpha3:\"SWE\",numeric:\"752\"},{alpha2:\"SG\",alpha3:\"SGP\",numeric:\"702\"},{alpha2:\"SH\",alpha3:\"SHN\",numeric:\"654\"},{alpha2:\"SI\",alpha3:\"SVN\",numeric:\"705\"},{alpha2:\"SJ\",alpha3:\"SJM\",numeric:\"744\"},{alpha2:\"SK\",alpha3:\"SVK\",numeric:\"703\"},{alpha2:\"SL\",alpha3:\"SLE\",numeric:\"694\"},{alpha2:\"SM\",alpha3:\"SMR\",numeric:\"674\"},{alpha2:\"SN\",alpha3:\"SEN\",numeric:\"686\"},{alpha2:\"SO\",alpha3:\"SOM\",numeric:\"706\"},{alpha2:\"SR\",alpha3:\"SUR\",numeric:\"740\"},{alpha2:\"SS\",alpha3:\"SSD\",numeric:\"728\"},{alpha2:\"ST\",alpha3:\"STP\",numeric:\"678\"},{alpha2:\"SV\",alpha3:\"SLV\",numeric:\"222\"},{alpha2:\"SX\",alpha3:\"SXM\",numeric:\"534\"},{alpha2:\"SY\",alpha3:\"SYR\",numeric:\"760\"},{alpha2:\"SZ\",alpha3:\"SWZ\",numeric:\"748\"},{alpha2:\"TC\",alpha3:\"TCA\",numeric:\"796\"},{alpha2:\"TD\",alpha3:\"TCD\",numeric:\"148\"},{alpha2:\"TF\",alpha3:\"ATF\",numeric:\"260\"},{alpha2:\"TG\",alpha3:\"TGO\",numeric:\"768\"},{alpha2:\"TH\",alpha3:\"THA\",numeric:\"764\"},{alpha2:\"TJ\",alpha3:\"TJK\",numeric:\"762\"},{alpha2:\"TK\",alpha3:\"TKL\",numeric:\"772\"},{alpha2:\"TL\",alpha3:\"TLS\",numeric:\"626\"},{alpha2:\"TM\",alpha3:\"TKM\",numeric:\"795\"},{alpha2:\"TN\",alpha3:\"TUN\",numeric:\"788\"},{alpha2:\"TO\",alpha3:\"TON\",numeric:\"776\"},{alpha2:\"TR\",alpha3:\"TUR\",numeric:\"792\"},{alpha2:\"TT\",alpha3:\"TTO\",numeric:\"780\"},{alpha2:\"TV\",alpha3:\"TUV\",numeric:\"798\"},{alpha2:\"TW\",alpha3:\"TWN\",numeric:\"158\"},{alpha2:\"TZ\",alpha3:\"TZA\",numeric:\"834\"},{alpha2:\"UA\",alpha3:\"UKR\",numeric:\"804\"},{alpha2:\"UG\",alpha3:\"UGA\",numeric:\"800\"},{alpha2:\"UM\",alpha3:\"UMI\",numeric:\"581\"},{alpha2:\"US\",alpha3:\"USA\",numeric:\"840\"},{alpha2:\"UY\",alpha3:\"URY\",numeric:\"858\"},{alpha2:\"UZ\",alpha3:\"UZB\",numeric:\"860\"},{alpha2:\"VA\",alpha3:\"VAT\",numeric:\"336\"},{alpha2:\"VC\",alpha3:\"VCT\",numeric:\"670\"},{alpha2:\"VE\",alpha3:\"VEN\",numeric:\"862\"},{alpha2:\"VG\",alpha3:\"VGB\",numeric:\"092\"},{alpha2:\"VI\",alpha3:\"VIR\",numeric:\"850\"},{alpha2:\"VN\",alpha3:\"VNM\",numeric:\"704\"},{alpha2:\"VU\",alpha3:\"VUT\",numeric:\"548\"},{alpha2:\"WF\",alpha3:\"WLF\",numeric:\"876\"},{alpha2:\"WS\",alpha3:\"WSM\",numeric:\"882\"},{alpha2:\"YE\",alpha3:\"YEM\",numeric:\"887\"},{alpha2:\"YT\",alpha3:\"MYT\",numeric:\"175\"},{alpha2:\"ZA\",alpha3:\"ZAF\",numeric:\"710\"},{alpha2:\"ZM\",alpha3:\"ZMB\",numeric:\"894\"},{alpha2:\"ZW\",alpha3:\"ZWE\",numeric:\"716\"}],nqe=[\"Africa/Abidjan\",\"Africa/Accra\",\"Africa/Addis_Ababa\",\"Africa/Algiers\",\"Africa/Asmara\",\"Africa/Bamako\",\"Africa/Bangui\",\"Africa/Banjul\",\"Africa/Bissau\",\"Africa/Blantyre\",\"Africa/Brazzaville\",\"Africa/Bujumbura\",\"Africa/Cairo\",\"Africa/Casablanca\",\"Africa/Ceuta\",\"Africa/Conakry\",\"Africa/Dakar\",\"Africa/Dar_es_Salaam\",\"Africa/Djibouti\",\"Africa/Douala\",\"Africa/El_Aaiun\",\"Africa/Freetown\",\"Africa/Gaborone\",\"Africa/Harare\",\"Africa/Johannesburg\",\"Africa/Juba\",\"Africa/Kampala\",\"Africa/Khartoum\",\"Africa/Kigali\",\"Africa/Kinshasa\",\"Africa/Lagos\",\"Africa/Libreville\",\"Africa/Lome\",\"Africa/Luanda\",\"Africa/Lubumbashi\",\"Africa/Lusaka\",\"Africa/Malabo\",\"Africa/Maputo\",\"Africa/Maseru\",\"Africa/Mbabane\",\"Africa/Mogadishu\",\"Africa/Monrovia\",\"Africa/Nairobi\",\"Africa/Ndjamena\",\"Africa/Niamey\",\"Africa/Nouakchott\",\"Africa/Ouagadougou\",\"Africa/Porto-Novo\",\"Africa/Sao_Tome\",\"Africa/Tripoli\",\"Africa/Tunis\",\"Africa/Windhoek\",\"America/Adak\",\"America/Anchorage\",\"America/Anguilla\",\"America/Antigua\",\"America/Araguaina\",\"America/Argentina/Buenos_Aires\",\"America/Argentina/Catamarca\",\"America/Argentina/Cordoba\",\"America/Argentina/Jujuy\",\"America/Argentina/La_Rioja\",\"America/Argentina/Mendoza\",\"America/Argentina/Rio_Gallegos\",\"America/Argentina/Salta\",\"America/Argentina/San_Juan\",\"America/Argentina/San_Luis\",\"America/Argentina/Tucuman\",\"America/Argentina/Ushuaia\",\"America/Aruba\",\"America/Asuncion\",\"America/Atikokan\",\"America/Bahia\",\"America/Bahia_Banderas\",\"America/Barbados\",\"America/Belem\",\"America/Belize\",\"America/Blanc-Sablon\",\"America/Boa_Vista\",\"America/Bogota\",\"America/Boise\",\"America/Cambridge_Bay\",\"America/Campo_Grande\",\"America/Cancun\",\"America/Caracas\",\"America/Cayenne\",\"America/Cayman\",\"America/Chicago\",\"America/Chihuahua\",\"America/Costa_Rica\",\"America/Creston\",\"America/Cuiaba\",\"America/Curacao\",\"America/Danmarkshavn\",\"America/Dawson\",\"America/Dawson_Creek\",\"America/Denver\",\"America/Detroit\",\"America/Dominica\",\"America/Edmonton\",\"America/Eirunepe\",\"America/El_Salvador\",\"America/Fort_Nelson\",\"America/Fortaleza\",\"America/Glace_Bay\",\"America/Goose_Bay\",\"America/Grand_Turk\",\"America/Grenada\",\"America/Guadeloupe\",\"America/Guatemala\",\"America/Guayaquil\",\"America/Guyana\",\"America/Halifax\",\"America/Havana\",\"America/Hermosillo\",\"America/Indiana/Indianapolis\",\"America/Indiana/Knox\",\"America/Indiana/Marengo\",\"America/Indiana/Petersburg\",\"America/Indiana/Tell_City\",\"America/Indiana/Vevay\",\"America/Indiana/Vincennes\",\"America/Indiana/Winamac\",\"America/Inuvik\",\"America/Iqaluit\",\"America/Jamaica\",\"America/Juneau\",\"America/Kentucky/Louisville\",\"America/Kentucky/Monticello\",\"America/Kralendijk\",\"America/La_Paz\",\"America/Lima\",\"America/Los_Angeles\",\"America/Lower_Princes\",\"America/Maceio\",\"America/Managua\",\"America/Manaus\",\"America/Marigot\",\"America/Martinique\",\"America/Matamoros\",\"America/Mazatlan\",\"America/Menominee\",\"America/Merida\",\"America/Metlakatla\",\"America/Mexico_City\",\"America/Miquelon\",\"America/Moncton\",\"America/Monterrey\",\"America/Montevideo\",\"America/Montserrat\",\"America/Nassau\",\"America/New_York\",\"America/Nome\",\"America/Noronha\",\"America/North_Dakota/Beulah\",\"America/North_Dakota/Center\",\"America/North_Dakota/New_Salem\",\"America/Nuuk\",\"America/Ojinaga\",\"America/Panama\",\"America/Paramaribo\",\"America/Phoenix\",\"America/Port-au-Prince\",\"America/Port_of_Spain\",\"America/Porto_Velho\",\"America/Puerto_Rico\",\"America/Punta_Arenas\",\"America/Rankin_Inlet\",\"America/Recife\",\"America/Regina\",\"America/Resolute\",\"America/Rio_Branco\",\"America/Santarem\",\"America/Santiago\",\"America/Santo_Domingo\",\"America/Sao_Paulo\",\"America/Scoresbysund\",\"America/Sitka\",\"America/St_Barthelemy\",\"America/St_Johns\",\"America/St_Kitts\",\"America/St_Lucia\",\"America/St_Thomas\",\"America/St_Vincent\",\"America/Swift_Current\",\"America/Tegucigalpa\",\"America/Thule\",\"America/Tijuana\",\"America/Toronto\",\"America/Tortola\",\"America/Vancouver\",\"America/Whitehorse\",\"America/Winnipeg\",\"America/Yakutat\",\"America/Yellowknife\",\"Antarctica/Casey\",\"Antarctica/Davis\",\"Antarctica/DumontDUrville\",\"Antarctica/Macquarie\",\"Antarctica/Mawson\",\"Antarctica/McMurdo\",\"Antarctica/Palmer\",\"Antarctica/Rothera\",\"Antarctica/Syowa\",\"Antarctica/Troll\",\"Antarctica/Vostok\",\"Arctic/Longyearbyen\",\"Asia/Aden\",\"Asia/Almaty\",\"Asia/Amman\",\"Asia/Anadyr\",\"Asia/Aqtau\",\"Asia/Aqtobe\",\"Asia/Ashgabat\",\"Asia/Atyrau\",\"Asia/Baghdad\",\"Asia/Bahrain\",\"Asia/Baku\",\"Asia/Bangkok\",\"Asia/Barnaul\",\"Asia/Beirut\",\"Asia/Bishkek\",\"Asia/Brunei\",\"Asia/Chita\",\"Asia/Choibalsan\",\"Asia/Colombo\",\"Asia/Damascus\",\"Asia/Dhaka\",\"Asia/Dili\",\"Asia/Dubai\",\"Asia/Dushanbe\",\"Asia/Famagusta\",\"Asia/Gaza\",\"Asia/Hebron\",\"Asia/Ho_Chi_Minh\",\"Asia/Hong_Kong\",\"Asia/Hovd\",\"Asia/Irkutsk\",\"Asia/Jakarta\",\"Asia/Jayapura\",\"Asia/Jerusalem\",\"Asia/Kabul\",\"Asia/Kamchatka\",\"Asia/Karachi\",\"Asia/Kathmandu\",\"Asia/Khandyga\",\"Asia/Kolkata\",\"Asia/Krasnoyarsk\",\"Asia/Kuala_Lumpur\",\"Asia/Kuching\",\"Asia/Kuwait\",\"Asia/Macau\",\"Asia/Magadan\",\"Asia/Makassar\",\"Asia/Manila\",\"Asia/Muscat\",\"Asia/Nicosia\",\"Asia/Novokuznetsk\",\"Asia/Novosibirsk\",\"Asia/Omsk\",\"Asia/Oral\",\"Asia/Phnom_Penh\",\"Asia/Pontianak\",\"Asia/Pyongyang\",\"Asia/Qatar\",\"Asia/Qostanay\",\"Asia/Qyzylorda\",\"Asia/Riyadh\",\"Asia/Sakhalin\",\"Asia/Samarkand\",\"Asia/Seoul\",\"Asia/Shanghai\",\"Asia/Singapore\",\"Asia/Srednekolymsk\",\"Asia/Taipei\",\"Asia/Tashkent\",\"Asia/Tbilisi\",\"Asia/Tehran\",\"Asia/Thimphu\",\"Asia/Tokyo\",\"Asia/Tomsk\",\"Asia/Ulaanbaatar\",\"Asia/Urumqi\",\"Asia/Ust-Nera\",\"Asia/Vientiane\",\"Asia/Vladivostok\",\"Asia/Yakutsk\",\"Asia/Yangon\",\"Asia/Yekaterinburg\",\"Asia/Yerevan\",\"Atlantic/Azores\",\"Atlantic/Bermuda\",\"Atlantic/Canary\",\"Atlantic/Cape_Verde\",\"Atlantic/Faroe\",\"Atlantic/Madeira\",\"Atlantic/Reykjavik\",\"Atlantic/South_Georgia\",\"Atlantic/St_Helena\",\"Atlantic/Stanley\",\"Australia/Adelaide\",\"Australia/Brisbane\",\"Australia/Broken_Hill\",\"Australia/Darwin\",\"Australia/Eucla\",\"Australia/Hobart\",\"Australia/Lindeman\",\"Australia/Lord_Howe\",\"Australia/Melbourne\",\"Australia/Perth\",\"Australia/Sydney\",\"Europe/Amsterdam\",\"Europe/Andorra\",\"Europe/Astrakhan\",\"Europe/Athens\",\"Europe/Belgrade\",\"Europe/Berlin\",\"Europe/Bratislava\",\"Europe/Brussels\",\"Europe/Bucharest\",\"Europe/Budapest\",\"Europe/Busingen\",\"Europe/Chisinau\",\"Europe/Copenhagen\",\"Europe/Dublin\",\"Europe/Gibraltar\",\"Europe/Guernsey\",\"Europe/Helsinki\",\"Europe/Isle_of_Man\",\"Europe/Istanbul\",\"Europe/Jersey\",\"Europe/Kaliningrad\",\"Europe/Kirov\",\"Europe/Kyiv\",\"Europe/Lisbon\",\"Europe/Ljubljana\",\"Europe/London\",\"Europe/Luxembourg\",\"Europe/Madrid\",\"Europe/Malta\",\"Europe/Mariehamn\",\"Europe/Minsk\",\"Europe/Monaco\",\"Europe/Moscow\",\"Europe/Oslo\",\"Europe/Paris\",\"Europe/Podgorica\",\"Europe/Prague\",\"Europe/Riga\",\"Europe/Rome\",\"Europe/Samara\",\"Europe/San_Marino\",\"Europe/Sarajevo\",\"Europe/Saratov\",\"Europe/Simferopol\",\"Europe/Skopje\",\"Europe/Sofia\",\"Europe/Stockholm\",\"Europe/Tallinn\",\"Europe/Tirane\",\"Europe/Ulyanovsk\",\"Europe/Vaduz\",\"Europe/Vatican\",\"Europe/Vienna\",\"Europe/Vilnius\",\"Europe/Volgograd\",\"Europe/Warsaw\",\"Europe/Zagreb\",\"Europe/Zurich\",\"Indian/Antananarivo\",\"Indian/Chagos\",\"Indian/Christmas\",\"Indian/Cocos\",\"Indian/Comoro\",\"Indian/Kerguelen\",\"Indian/Mahe\",\"Indian/Maldives\",\"Indian/Mauritius\",\"Indian/Mayotte\",\"Indian/Reunion\",\"Pacific/Apia\",\"Pacific/Auckland\",\"Pacific/Bougainville\",\"Pacific/Chatham\",\"Pacific/Chuuk\",\"Pacific/Easter\",\"Pacific/Efate\",\"Pacific/Fakaofo\",\"Pacific/Fiji\",\"Pacific/Funafuti\",\"Pacific/Galapagos\",\"Pacific/Gambier\",\"Pacific/Guadalcanal\",\"Pacific/Guam\",\"Pacific/Honolulu\",\"Pacific/Kanton\",\"Pacific/Kiritimati\",\"Pacific/Kosrae\",\"Pacific/Kwajalein\",\"Pacific/Majuro\",\"Pacific/Marquesas\",\"Pacific/Midway\",\"Pacific/Nauru\",\"Pacific/Niue\",\"Pacific/Norfolk\",\"Pacific/Noumea\",\"Pacific/Pago_Pago\",\"Pacific/Palau\",\"Pacific/Pitcairn\",\"Pacific/Pohnpei\",\"Pacific/Port_Moresby\",\"Pacific/Rarotonga\",\"Pacific/Saipan\",\"Pacific/Tahiti\",\"Pacific/Tarawa\",\"Pacific/Tongatapu\",\"Pacific/Wake\",\"Pacific/Wallis\"],aqe={country_code:rqe,time_zone:nqe},iqe=aqe,oqe={title:\"Base\",code:\"base\"},lqe=oqe,sqe=[\"/Applications\",\"/bin\",\"/boot\",\"/boot/defaults\",\"/dev\",\"/etc\",\"/etc/defaults\",\"/etc/mail\",\"/etc/namedb\",\"/etc/periodic\",\"/etc/ppp\",\"/home\",\"/home/user\",\"/home/user/dir\",\"/lib\",\"/Library\",\"/lost+found\",\"/media\",\"/mnt\",\"/net\",\"/Network\",\"/opt\",\"/opt/bin\",\"/opt/include\",\"/opt/lib\",\"/opt/sbin\",\"/opt/share\",\"/private\",\"/private/tmp\",\"/private/var\",\"/proc\",\"/rescue\",\"/root\",\"/sbin\",\"/selinux\",\"/srv\",\"/sys\",\"/System\",\"/tmp\",\"/Users\",\"/usr\",\"/usr/X11R6\",\"/usr/bin\",\"/usr/include\",\"/usr/lib\",\"/usr/libdata\",\"/usr/libexec\",\"/usr/local/bin\",\"/usr/local/src\",\"/usr/obj\",\"/usr/ports\",\"/usr/sbin\",\"/usr/share\",\"/usr/src\",\"/var\",\"/var/log\",\"/var/mail\",\"/var/spool\",\"/var/tmp\",\"/var/yp\"],uqe={\"application/epub+zip\":{extensions:[\"epub\"]},\"application/gzip\":{extensions:[\"gz\"]},\"application/java-archive\":{extensions:[\"jar\",\"war\",\"ear\"]},\"application/json\":{extensions:[\"json\",\"map\"]},\"application/ld+json\":{extensions:[\"jsonld\"]},\"application/msword\":{extensions:[\"doc\",\"dot\"]},\"application/octet-stream\":{extensions:[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]},\"application/ogg\":{extensions:[\"ogx\"]},\"application/pdf\":{extensions:[\"pdf\"]},\"application/rtf\":{extensions:[\"rtf\"]},\"application/vnd.amazon.ebook\":{extensions:[\"azw\"]},\"application/vnd.apple.installer+xml\":{extensions:[\"mpkg\"]},\"application/vnd.mozilla.xul+xml\":{extensions:[\"xul\"]},\"application/vnd.ms-excel\":{extensions:[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]},\"application/vnd.ms-fontobject\":{extensions:[\"eot\"]},\"application/vnd.ms-powerpoint\":{extensions:[\"ppt\",\"pps\",\"pot\"]},\"application/vnd.oasis.opendocument.presentation\":{extensions:[\"odp\"]},\"application/vnd.oasis.opendocument.spreadsheet\":{extensions:[\"ods\"]},\"application/vnd.oasis.opendocument.text\":{extensions:[\"odt\"]},\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":{extensions:[\"pptx\"]},\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":{extensions:[\"xlsx\"]},\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":{extensions:[\"docx\"]},\"application/vnd.rar\":{extensions:[\"rar\"]},\"application/vnd.visio\":{extensions:[\"vsd\",\"vst\",\"vss\",\"vsw\"]},\"application/x-7z-compressed\":{extensions:[\"7z\"]},\"application/x-abiword\":{extensions:[\"abw\"]},\"application/x-bzip\":{extensions:[\"bz\"]},\"application/x-bzip2\":{extensions:[\"bz2\",\"boz\"]},\"application/x-csh\":{extensions:[\"csh\"]},\"application/x-freearc\":{extensions:[\"arc\"]},\"application/x-httpd-php\":{extensions:[\"php\"]},\"application/x-sh\":{extensions:[\"sh\"]},\"application/x-tar\":{extensions:[\"tar\"]},\"application/xhtml+xml\":{extensions:[\"xhtml\",\"xht\"]},\"application/xml\":{extensions:[\"xml\",\"xsl\",\"xsd\",\"rng\"]},\"application/zip\":{extensions:[\"zip\"]},\"audio/3gpp\":{extensions:[\"3gpp\"]},\"audio/3gpp2\":{extensions:[\"3g2\"]},\"audio/aac\":{extensions:[\"aac\"]},\"audio/midi\":{extensions:[\"mid\",\"midi\",\"kar\",\"rmi\"]},\"audio/mpeg\":{extensions:[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]},\"audio/ogg\":{extensions:[\"oga\",\"ogg\",\"spx\",\"opus\"]},\"audio/opus\":{extensions:[\"opus\"]},\"audio/wav\":{extensions:[\"wav\"]},\"audio/webm\":{extensions:[\"weba\"]},\"font/otf\":{extensions:[\"otf\"]},\"font/ttf\":{extensions:[\"ttf\"]},\"font/woff\":{extensions:[\"woff\"]},\"font/woff2\":{extensions:[\"woff2\"]},\"image/avif\":{extensions:[\"avif\"]},\"image/bmp\":{extensions:[\"bmp\"]},\"image/gif\":{extensions:[\"gif\"]},\"image/jpeg\":{extensions:[\"jpeg\",\"jpg\",\"jpe\"]},\"image/png\":{extensions:[\"png\"]},\"image/svg+xml\":{extensions:[\"svg\",\"svgz\"]},\"image/tiff\":{extensions:[\"tif\",\"tiff\"]},\"image/vnd.microsoft.icon\":{extensions:[\"ico\"]},\"image/webp\":{extensions:[\"webp\"]},\"text/calendar\":{extensions:[\"ics\",\"ifb\"]},\"text/css\":{extensions:[\"css\"]},\"text/csv\":{extensions:[\"csv\"]},\"text/html\":{extensions:[\"html\",\"htm\",\"shtml\"]},\"text/javascript\":{extensions:[\"js\",\"mjs\"]},\"text/plain\":{extensions:[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]},\"video/3gpp\":{extensions:[\"3gp\",\"3gpp\"]},\"video/3gpp2\":{extensions:[\"3g2\"]},\"video/mp2t\":{extensions:[\"ts\"]},\"video/mp4\":{extensions:[\"mp4\",\"mp4v\",\"mpg4\"]},\"video/mpeg\":{extensions:[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]},\"video/ogg\":{extensions:[\"ogv\"]},\"video/webm\":{extensions:[\"webm\"]},\"video/x-msvideo\":{extensions:[\"avi\"]}},cqe={directoryPaths:sqe,mimeTypes:uqe},dqe=cqe,fqe={color:VYe,database:YYe,hacker:JYe,internet:tqe,location:iqe,metadata:lqe,system:dqe},hqe=fqe,pqe=[{name:\"爱琴海航空公司\",iataCode:\"A3\"},{name:\"俄罗斯航空公司\",iataCode:\"SU\"},{name:\"阿根廷航空公司\",iataCode:\"AR\"},{name:\"墨西哥国际航空公司\",iataCode:\"AM\"},{name:\"阿尔及利亚航空公司\",iataCode:\"AH\"},{name:\"阿拉伯航空公司\",iataCode:\"G9\"},{name:\"加拿大航空公司\",iataCode:\"AC\"},{name:\"中国国际航空公司\",iataCode:\"CA\"},{name:\"西班牙欧洲航空公司\",iataCode:\"UX\"},{name:\"法航荷航集团\",iataCode:\"AF\"},{name:\"印度国际航空公司\",iataCode:\"AI\"},{name:\"毛里求斯航空公司\",iataCode:\"MK\"},{name:\"新西兰航空公司\",iataCode:\"NZ\"},{name:\"新几内亚航空公司\",iataCode:\"PX\"},{name:\"塔希提航空公司\",iataCode:\"VT\"},{name:\"大溪地航空公司\",iataCode:\"TN\"},{name:\"越洋航空公司\",iataCode:\"TS\"},{name:\"亚洲航空X公司\",iataCode:\"D7\"},{name:\"亚洲航空公司\",iataCode:\"AK\"},{name:\"喀里多尼亚国际航空公司\",iataCode:\"SB\"},{name:\"阿拉斯加航空公司\",iataCode:\"AS\"},{name:\"意大利航空公司\",iataCode:\"AZ\"},{name:\"全日空公司\",iataCode:\"NH\"},{name:\"忠实航空公司\",iataCode:\"G4\"},{name:\"美国航空公司\",iataCode:\"AA\"},{name:\"韩亚航空公司\",iataCode:\"OZ\"},{name:\"哥伦比亚航空公司\",iataCode:\"AV\"},{name:\"巴西蔚蓝航空公司\",iataCode:\"AD\"},{name:\"蓝色航空公司\",iataCode:\"ZF\"},{name:\"北京首都航空公司\",iataCode:\"JD\"},{name:\"玻利维亚航空公司\",iataCode:\"OB\"},{name:\"英国航空公司\",iataCode:\"BA\"},{name:\"国泰航空公司\",iataCode:\"CX\"},{name:\"宿雾太平洋航空公司\",iataCode:\"5J\"},{name:\"中华航空公司\",iataCode:\"CI\"},{name:\"中国东方航空公司\",iataCode:\"MU\"},{name:\"中国南方航空公司\",iataCode:\"CZ\"},{name:\"神鹰航空公司\",iataCode:\"DE\"},{name:\"巴拿马航空公司\",iataCode:\"CM\"},{name:\"达美航空公司\",iataCode:\"DL\"},{name:\"易飞航空公司\",iataCode:\"VE\"},{name:\"易捷航空公司\",iataCode:\"U2\"},{name:\"埃及航空公司\",iataCode:\"MS\"},{name:\"以色列艾拉航空公司\",iataCode:\"LY\"},{name:\"阿联酋航空公司\",iataCode:\"EK\"},{name:\"埃塞俄比亚航空公司\",iataCode:\"ET\"},{name:\"阿提哈德航空公司\",iataCode:\"EY\"},{name:\"长荣航空公司\",iataCode:\"BR\"},{name:\"斐济航空公司\",iataCode:\"FJ\"},{name:\"芬兰航空公司\",iataCode:\"AY\"},{name:\"迪拜航空公司公司\",iataCode:\"FZ\"},{name:\"边疆航空公司\",iataCode:\"F9\"},{name:\"印度尼西亚鹰航空公司\",iataCode:\"GA\"},{name:\"高尔航空公司\",iataCode:\"G3\"},{name:\"海南航空公司\",iataCode:\"HU\"},{name:\"夏威夷航空公司\",iataCode:\"HA\"},{name:\"靛蓝航空公司\",iataCode:\"6E\"},{name:\"日本航空公司\",iataCode:\"JL\"},{name:\"济州航空公司\",iataCode:\"7C\"},{name:\"捷特二航空公司\",iataCode:\"LS\"},{name:\"捷蓝航空公司\",iataCode:\"B6\"},{name:\"上海吉祥航空公司\",iataCode:\"HO\"},{name:\"肯尼亚航空公司\",iataCode:\"KQ\"},{name:\"大韩航空公司\",iataCode:\"KE\"},{name:\"酷路拉航空航空公司\",iataCode:\"MN\"},{name:\"南美航空公司\",iataCode:\"LA\"},{name:\"狮子航空公司\",iataCode:\"JT\"},{name:\"波兰航空公司\",iataCode:\"LO\"},{name:\"德国汉莎航空公司\",iataCode:\"LH\"},{name:\"利比亚阿拉伯航空公司\",iataCode:\"LN\"},{name:\"玻利维亚亚马孙航空公司\",iataCode:\"Z8\"},{name:\"马来西亚航空公司\",iataCode:\"MH\"},{name:\"北风航空公司\",iataCode:\"N4\"},{name:\"挪威穿梭航空公司\",iataCode:\"DY\"},{name:\"阿曼航空公司\",iataCode:\"WY\"},{name:\"巴基斯坦国际航空公司\",iataCode:\"PK\"},{name:\"飞马航空公司\",iataCode:\"PC\"},{name:\"菲律宾航空公司\",iataCode:\"PR\"},{name:\"澳洲航空公司\",iataCode:\"QF\"},{name:\"卡塔尔航空公司\",iataCode:\"QR\"},{name:\"共和航空公司\",iataCode:\"YX\"},{name:\"摩洛哥皇家航空公司\",iataCode:\"AT\"},{name:\"瑞安航空公司\",iataCode:\"FR\"},{name:\"西伯利亚航空公司\",iataCode:\"S7\"},{name:\"北欧航空公司\",iataCode:\"SK\"},{name:\"沙特阿拉伯航空公司\",iataCode:\"SV\"},{name:\"山东航空公司\",iataCode:\"SC\"},{name:\"四川航空公司\",iataCode:\"3U\"},{name:\"新加坡航空公司\",iataCode:\"SQ\"},{name:\"天空航空公司\",iataCode:\"H2\"},{name:\"天西航空公司\",iataCode:\"OO\"},{name:\"南非航空公司\",iataCode:\"SA\"},{name:\"西南航空公司\",iataCode:\"WN\"},{name:\"香料航空公司\",iataCode:\"SG\"},{name:\"精神航空公司\",iataCode:\"NK\"},{name:\"春秋航空公司\",iataCode:\"9S\"},{name:\"斯里兰卡航空公司\",iataCode:\"UL\"},{name:\"秘鲁星航空公司\",iataCode:\"2I\"},{name:\"太阳城航空公司\",iataCode:\"SY\"},{name:\"阳光快运航空\",iataCode:\"XQ\"},{name:\"葡萄牙航空公司\",iataCode:\"TP\"},{name:\"泰国亚洲航空\",iataCode:\"FD\"},{name:\"泰国航空公司\",iataCode:\"TG\"},{name:\"途易飞航空\",iataCode:\"BY\"},{name:\"突尼斯航空公司\",iataCode:\"TU\"},{name:\"土耳其航空公司\",iataCode:\"TK\"},{name:\"乌克兰国际航空公司\",iataCode:\"PS\"},{name:\"美国联合航空公司\",iataCode:\"UA\"},{name:\"乌拉航空公司\",iataCode:\"U6\"},{name:\"越南越捷航空公司\",iataCode:\"VJ\"},{name:\"越南航空公司\",iataCode:\"VN\"},{name:\"维珍航空公司\",iataCode:\"VS\"},{name:\"维珍蓝航空公司\",iataCode:\"VA\"},{name:\"万岁空中巴士航空公司\",iataCode:\"VB\"},{name:\"巴西航空公司\",iataCode:\"2Z\"},{name:\"沃拉里斯航空公司\",iataCode:\"Y4\"},{name:\"西捷航空公司\",iataCode:\"WS\"},{name:\"温戈航空公司\",iataCode:\"P5\"},{name:\"维兹航空公司\",iataCode:\"W6\"}],mqe=[{name:\"航天/BAC协和式飞机\",iataTypeCode:\"SSC\"},{name:\"空客A300\",iataTypeCode:\"AB3\"},{name:\"空客A310\",iataTypeCode:\"310\"},{name:\"空客A310-200\",iataTypeCode:\"312\"},{name:\"空客A310-300\",iataTypeCode:\"313\"},{name:\"空客A318\",iataTypeCode:\"318\"},{name:\"空客A319\",iataTypeCode:\"319\"},{name:\"空客A319neo\",iataTypeCode:\"31N\"},{name:\"空客A320\",iataTypeCode:\"320\"},{name:\"空客A320neo\",iataTypeCode:\"32N\"},{name:\"空客A321\",iataTypeCode:\"321\"},{name:\"空客A321neo\",iataTypeCode:\"32Q\"},{name:\"空客A330\",iataTypeCode:\"330\"},{name:\"空客A330-200\",iataTypeCode:\"332\"},{name:\"空客A330-300\",iataTypeCode:\"333\"},{name:\"空客A330-800neo\",iataTypeCode:\"338\"},{name:\"空客A330-900neo\",iataTypeCode:\"339\"},{name:\"空客A340\",iataTypeCode:\"340\"},{name:\"空客A340-200\",iataTypeCode:\"342\"},{name:\"空客A340-300\",iataTypeCode:\"343\"},{name:\"空客A340-500\",iataTypeCode:\"345\"},{name:\"空客A340-600\",iataTypeCode:\"346\"},{name:\"空客A350\",iataTypeCode:\"350\"},{name:\"空客A350-900\",iataTypeCode:\"359\"},{name:\"空客A350-1000\",iataTypeCode:\"351\"},{name:\"空客A380\",iataTypeCode:\"380\"},{name:\"空客A380-800\",iataTypeCode:\"388\"},{name:\"安东诺夫 安-12\",iataTypeCode:\"ANF\"},{name:\"安东诺夫 安-24\",iataTypeCode:\"AN4\"},{name:\"安东诺夫 安-26\",iataTypeCode:\"A26\"},{name:\"安东诺夫 安-28\",iataTypeCode:\"A28\"},{name:\"安东诺夫 安-30\",iataTypeCode:\"A30\"},{name:\"安东诺夫 安-32\",iataTypeCode:\"A32\"},{name:\"安东诺夫 安-72\",iataTypeCode:\"AN7\"},{name:\"安东诺夫 安-124 Ruslan\",iataTypeCode:\"A4F\"},{name:\"安东诺夫 安-140\",iataTypeCode:\"A40\"},{name:\"安东诺夫 安-148\",iataTypeCode:\"A81\"},{name:\"安东诺夫 安-158\",iataTypeCode:\"A58\"},{name:\"安东诺夫 安-225 Mriya\",iataTypeCode:\"A5F\"},{name:\"波音707\",iataTypeCode:\"703\"},{name:\"波音717\",iataTypeCode:\"717\"},{name:\"波音720B\",iataTypeCode:\"B72\"},{name:\"波音727\",iataTypeCode:\"727\"},{name:\"波音727-100\",iataTypeCode:\"721\"},{name:\"波音727-200\",iataTypeCode:\"722\"},{name:\"波音737 MAX 7\",iataTypeCode:\"7M7\"},{name:\"波音737 MAX 8\",iataTypeCode:\"7M8\"},{name:\"波音737 MAX 9\",iataTypeCode:\"7M9\"},{name:\"波音737 MAX 10\",iataTypeCode:\"7MJ\"},{name:\"波音737\",iataTypeCode:\"737\"},{name:\"波音737-100\",iataTypeCode:\"731\"},{name:\"波音737-200\",iataTypeCode:\"732\"},{name:\"波音737-300\",iataTypeCode:\"733\"},{name:\"波音737-400\",iataTypeCode:\"734\"},{name:\"波音737-500\",iataTypeCode:\"735\"},{name:\"波音737-600\",iataTypeCode:\"736\"},{name:\"波音737-700\",iataTypeCode:\"73G\"},{name:\"波音737-800\",iataTypeCode:\"738\"},{name:\"波音737-900\",iataTypeCode:\"739\"},{name:\"波音747\",iataTypeCode:\"747\"},{name:\"波音747-100\",iataTypeCode:\"741\"},{name:\"波音747-200\",iataTypeCode:\"742\"},{name:\"波音747-300\",iataTypeCode:\"743\"},{name:\"波音747-400\",iataTypeCode:\"744\"},{name:\"波音747-400D\",iataTypeCode:\"74J\"},{name:\"波音747-8\",iataTypeCode:\"748\"},{name:\"波音747SP\",iataTypeCode:\"74L\"},{name:\"波音747SR\",iataTypeCode:\"74R\"},{name:\"波音757\",iataTypeCode:\"757\"},{name:\"波音757-200\",iataTypeCode:\"752\"},{name:\"波音757-300\",iataTypeCode:\"753\"},{name:\"波音767\",iataTypeCode:\"767\"},{name:\"波音767-200\",iataTypeCode:\"762\"},{name:\"波音767-300\",iataTypeCode:\"763\"},{name:\"波音767-400\",iataTypeCode:\"764\"},{name:\"波音777\",iataTypeCode:\"777\"},{name:\"波音777-200\",iataTypeCode:\"772\"},{name:\"波音777-200LR\",iataTypeCode:\"77L\"},{name:\"波音777-300\",iataTypeCode:\"773\"},{name:\"波音777-300ER\",iataTypeCode:\"77W\"},{name:\"波音787\",iataTypeCode:\"787\"},{name:\"波音787-8\",iataTypeCode:\"788\"},{name:\"波音787-9\",iataTypeCode:\"789\"},{name:\"波音787-10\",iataTypeCode:\"781\"},{name:\"加拿大挑战者飞机\",iataTypeCode:\"CCJ\"},{name:\"加拿大CL-44\",iataTypeCode:\"CL4\"},{name:\"加拿大支线喷气机100\",iataTypeCode:\"CR1\"},{name:\"加拿大支线喷气机200\",iataTypeCode:\"CR2\"},{name:\"加拿大支线喷气机700\",iataTypeCode:\"CR7\"},{name:\"加拿大支线喷气机705\",iataTypeCode:\"CRA\"},{name:\"加拿大支线喷气机900\",iataTypeCode:\"CR9\"},{name:\"加拿大支线喷气机1000\",iataTypeCode:\"CRK\"},{name:\"加拿大德哈维兰DHC-2 Beaver\",iataTypeCode:\"DHP\"},{name:\"加拿大德哈维兰DHC-2 Turbo-Beaver\",iataTypeCode:\"DHR\"},{name:\"加拿大德哈维兰DHC-3 Otter\",iataTypeCode:\"DHL\"},{name:\"加拿大德哈维兰DHC-4 Caribou\",iataTypeCode:\"DHC\"},{name:\"加拿大德哈维兰DHC-6 Twin Otter\",iataTypeCode:\"DHT\"},{name:\"加拿大德哈维兰DHC-7 Dash 7\",iataTypeCode:\"DH7\"},{name:\"加拿大德哈维兰DHC-8-100 Dash 8 / 8Q\",iataTypeCode:\"DH1\"},{name:\"加拿大德哈维兰DHC-8-200 Dash 8 / 8Q\",iataTypeCode:\"DH2\"},{name:\"加拿大德哈维兰DHC-8-300 Dash 8 / 8Q\",iataTypeCode:\"DH3\"},{name:\"加拿大德哈维兰DHC-8-400 Dash 8Q\",iataTypeCode:\"DH4\"},{name:\"德哈维兰DH.104 Dove\",iataTypeCode:\"DHD\"},{name:\"德哈维兰DH.114 Heron\",iataTypeCode:\"DHH\"},{name:\"道格拉斯DC-3\",iataTypeCode:\"D3F\"},{name:\"道格拉斯DC-6\",iataTypeCode:\"D6F\"},{name:\"道格拉斯DC-8-50\",iataTypeCode:\"D8T\"},{name:\"道格拉斯DC-8-62\",iataTypeCode:\"D8L\"},{name:\"道格拉斯DC-8-72\",iataTypeCode:\"D8Q\"},{name:\"道格拉斯DC-9-10\",iataTypeCode:\"D91\"},{name:\"道格拉斯DC-9-20\",iataTypeCode:\"D92\"},{name:\"道格拉斯DC-9-30\",iataTypeCode:\"D93\"},{name:\"道格拉斯DC-9-40\",iataTypeCode:\"D94\"},{name:\"道格拉斯DC-9-50\",iataTypeCode:\"D95\"},{name:\"道格拉斯DC-10\",iataTypeCode:\"D10\"},{name:\"道格拉斯DC-10-10\",iataTypeCode:\"D1X\"},{name:\"道格拉斯DC-10-30\",iataTypeCode:\"D1Y\"},{name:\"巴西工业航空公司170\",iataTypeCode:\"E70\"},{name:\"巴西工业航空公司175\",iataTypeCode:\"E75\"},{name:\"巴西工业航空公司190\",iataTypeCode:\"E90\"},{name:\"巴西工业航空公司195\",iataTypeCode:\"E95\"},{name:\"巴西工业航空公司E190-E2\",iataTypeCode:\"290\"},{name:\"巴西工业航空公司E195-E2\",iataTypeCode:\"295\"},{name:\"巴西工业航空公司EMB.110 Bandeirante\",iataTypeCode:\"EMB\"},{name:\"巴西工业航空公司EMB.120 Brasilia\",iataTypeCode:\"EM2\"},{name:\"巴西工业航空公司Legacy 600\",iataTypeCode:\"ER3\"},{name:\"巴西工业航空公司Phenom 100\",iataTypeCode:\"EP1\"},{name:\"巴西工业航空公司Phenom 300\",iataTypeCode:\"EP3\"},{name:\"巴西工业航空公司RJ135\",iataTypeCode:\"ER3\"},{name:\"巴西工业航空公司RJ140\",iataTypeCode:\"ERD\"},{name:\"巴西工业航空公司RJ145 Amazon\",iataTypeCode:\"ER4\"},{name:\"伊留申IL18\",iataTypeCode:\"IL8\"},{name:\"伊留申IL62\",iataTypeCode:\"IL6\"},{name:\"伊留申IL76\",iataTypeCode:\"IL7\"},{name:\"伊留申IL86\",iataTypeCode:\"ILW\"},{name:\"伊留申IL96-300\",iataTypeCode:\"I93\"},{name:\"伊留申IL114\",iataTypeCode:\"I14\"},{name:\"洛克希德L-182 / 282 / 382 (L-100) Hercules\",iataTypeCode:\"LOH\"},{name:\"洛克希德L-188 Electra\",iataTypeCode:\"LOE\"},{name:\"洛克希德L-1011 Tristar\",iataTypeCode:\"L10\"},{name:\"洛克希德L-1049 Super Constellation\",iataTypeCode:\"L49\"},{name:\"麦克唐纳道格拉斯MD11\",iataTypeCode:\"M11\"},{name:\"麦克唐纳道格拉斯MD80\",iataTypeCode:\"M80\"},{name:\"麦克唐纳道格拉斯MD81\",iataTypeCode:\"M81\"},{name:\"麦克唐纳道格拉斯MD82\",iataTypeCode:\"M82\"},{name:\"麦克唐纳道格拉斯MD83\",iataTypeCode:\"M83\"},{name:\"麦克唐纳道格拉斯MD87\",iataTypeCode:\"M87\"},{name:\"麦克唐纳道格拉斯MD88\",iataTypeCode:\"M88\"},{name:\"麦克唐纳道格拉斯MD90\",iataTypeCode:\"M90\"},{name:\"苏霍伊超级喷气机100-95\",iataTypeCode:\"SU9\"},{name:\"图波列夫Tu-134\",iataTypeCode:\"TU3\"},{name:\"图波列夫Tu-154\",iataTypeCode:\"TU5\"},{name:\"图波列夫Tu-204\",iataTypeCode:\"T20\"},{name:\"雅科夫列夫Yak-40\",iataTypeCode:\"YK4\"},{name:\"雅科夫列夫Yak-42\",iataTypeCode:\"YK2\"}],vqe=[{name:\"阿德莱德国际机场\",iataCode:\"ADL\"},{name:\"阿道弗·苏亚雷斯马德里-巴拉哈斯机场\",iataCode:\"MAD\"},{name:\"豪尔赫纽伯里机场机场\",iataCode:\"AEP\"},{name:\"阿方索·佩纳国际机场\",iataCode:\"CWB\"},{name:\"阿方索·博尼利亚·阿拉贡国际机场\",iataCode:\"CLO\"},{name:\"阿姆斯特丹史基浦机场\",iataCode:\"AMS\"},{name:\"阿图罗·梅里诺·贝尼特斯国际机场\",iataCode:\"SCL\"},{name:\"奥克兰国际机场\",iataCode:\"AKL\"},{name:\"北京首都国际机场\",iataCode:\"PEK\"},{name:\"贝伦瓦德坎斯国际机场\",iataCode:\"BEL\"},{name:\"贝洛奥里藏特坦克雷多·内维斯国际机场\",iataCode:\"CNF\"},{name:\"柏林泰格尔机场\",iataCode:\"TXL\"},{name:\"博乐国际机场\",iataCode:\"ADD\"},{name:\"巴西利亚儒塞利诺·库比契克总统国际机场\",iataCode:\"BSB\"},{name:\"布里斯班国际机场\",iataCode:\"BNE\"},{name:\"布里斯班机场\",iataCode:\"BRU\"},{name:\"凯恩斯机场\",iataCode:\"CNS\"},{name:\"开罗国际机场\",iataCode:\"CAI\"},{name:\"堪培拉机场\",iataCode:\"CBR\"},{name:\"开普敦国际机场\",iataCode:\"CPT\"},{name:\"戴高乐国际机场\",iataCode:\"CDG\"},{name:\"夏洛特道格拉斯国际机场\",iataCode:\"CLT\"},{name:\"成都双流国际机场\",iataCode:\"CTU\"},{name:\"贾特拉帕蒂·希瓦吉国际机场\",iataCode:\"BOM\"},{name:\"芝加哥奥黑尔国际机场\",iataCode:\"ORD\"},{name:\"重庆江北国际机场\",iataCode:\"CKG\"},{name:\"基督城国际机场\",iataCode:\"CHC\"},{name:\"哥本哈根卡斯特鲁普机场\",iataCode:\"CPH\"},{name:\"达拉斯沃思堡国际机场\",iataCode:\"DFW\"},{name:\"丹尼尔·井上国际机场\",iataCode:\"HNL\"},{name:\"丹佛国际机场\",iataCode:\"DEN\"},{name:\"廊曼国际机场\",iataCode:\"DMK\"},{name:\"迪拜国际机场\",iataCode:\"DXB\"},{name:\"都柏林机场\",iataCode:\"DUB\"},{name:\"杜塞尔多夫机场\",iataCode:\"DUS\"},{name:\"埃尔多拉多国际机场\",iataCode:\"BOG\"},{name:\"埃莱夫塞里奥斯·韦尼泽洛斯国际机场\",iataCode:\"ATH\"},{name:\"法阿国际机场\",iataCode:\"PPT\"},{name:\"劳德代尔堡好莱坞国际机场\",iataCode:\"FLL\"},{name:\"福塔莱萨平托马丁斯国际机场\",iataCode:\"FOR\"},{name:\"美因河畔法兰克福机场\",iataCode:\"FRA\"},{name:\"休斯顿机场乔治·布什洲际酒店\",iataCode:\"IAH\"},{name:\"黄金海岸机场\",iataCode:\"OOL\"},{name:\"瓜鲁柳斯 - 安德烈·佛朗哥·蒙托罗州长国际机场\",iataCode:\"GRU\"},{name:\"哈兹菲尔德-杰克逊亚特兰大国际机场\",iataCode:\"ATL\"},{name:\"赫尔辛基万塔机场\",iataCode:\"HEL\"},{name:\"霍巴特国际机场\",iataCode:\"HBA\"},{name:\"香港国际机场\",iataCode:\"HKG\"},{name:\"胡阿里·布迈丁机场\",iataCode:\"ALG\"},{name:\"赫尔格达国际机场\",iataCode:\"HRG\"},{name:\"仁川国际机场\",iataCode:\"ICN\"},{name:\"英迪拉·甘地国际机场\",iataCode:\"DEL\"},{name:\"伊斯坦布尔机场\",iataCode:\"IST\"},{name:\"杰克逊国际机场\",iataCode:\"POM\"},{name:\"济州国际机场\",iataCode:\"CJU\"},{name:\"约翰肯尼迪国际机场\",iataCode:\"JFK\"},{name:\"豪尔赫·查韦斯国际机场\",iataCode:\"LIM\"},{name:\"何塞·玛丽亚·科尔多瓦国际机场\",iataCode:\"MDE\"},{name:\"何塞普·塔拉德拉斯巴塞罗那埃尔普拉特机场\",iataCode:\"BCN\"},{name:\"卡胡卢伊机场\",iataCode:\"OGG\"},{name:\"阿卜杜勒阿齐兹国王国际机场\",iataCode:\"JED\"},{name:\"吉隆坡国际机场\",iataCode:\"KUL\"},{name:\"昆明长水国际机场\",iataCode:\"KMG\"},{name:\"拉通图塔国际机场\",iataCode:\"NOU\"},{name:\"莱昂纳多达芬奇-菲乌米奇诺机场\",iataCode:\"FCO\"},{name:\"伦敦希思罗机场\",iataCode:\"LHR\"},{name:\"洛杉矶国际机场\",iataCode:\"LAX\"},{name:\"麦卡伦国际机场\",iataCode:\"LAS\"},{name:\"墨尔本国际机场\",iataCode:\"MEL\"},{name:\"墨西哥城国际机场\",iataCode:\"MEX\"},{name:\"迈阿密国际机场\",iataCode:\"MIA\"},{name:\"皮斯塔里尼部长国际机场\",iataCode:\"EZE\"},{name:\"明尼阿波利斯-圣保罗国际机场/沃尔德-张伯伦机场\",iataCode:\"MSP\"},{name:\"穆罕默德五世国际机场\",iataCode:\"CMN\"},{name:\"莫斯科多莫杰多沃机场\",iataCode:\"DME\"},{name:\"慕尼黑机场\",iataCode:\"MUC\"},{name:\"穆尔塔拉穆罕默德国际机场\",iataCode:\"LOS\"},{name:\"楠迪国际机场\",iataCode:\"NAN\"},{name:\"内罗毕乔莫肯雅塔国际机场\",iataCode:\"NBO\"},{name:\"成田国际机场\",iataCode:\"NRT\"},{name:\"纽瓦克自由国际机场\",iataCode:\"EWR\"},{name:\"尼诺·阿基诺国际机场\",iataCode:\"MNL\"},{name:\"努美阿洋红色机场\",iataCode:\"GEA\"},{name:\"奥利弗·R·坦博国际机场\",iataCode:\"JNB\"},{name:\"奥兰多国际机场\",iataCode:\"MCO\"},{name:\"奥斯陆卢夫塔文机场\",iataCode:\"OSL\"},{name:\"珀斯机场\",iataCode:\"PER\"},{name:\"凤凰城天港国际机场\",iataCode:\"PHX\"},{name:\"累西腓瓜拉拉佩斯-吉尔伯托弗雷尔国际机场\",iataCode:\"REC\"},{name:\"里约热内卢加利昂国际机场\",iataCode:\"GIG\"},{name:\"萨尔加多菲略国际机场\",iataCode:\"POA\"},{name:\"萨尔瓦多·德普塔多·路易斯·爱德华多·马加良斯国际机场\",iataCode:\"SSA\"},{name:\"旧金山国际机场\",iataCode:\"SFO\"},{name:\"桑托斯·杜蒙特机场\",iataCode:\"SDU\"},{name:\"圣保罗孔戈尼亚斯机场\",iataCode:\"CGH\"},{name:\"西雅图塔科马国际机场\",iataCode:\"SEA\"},{name:\"上海虹桥国际机场\",iataCode:\"SHA\"},{name:\"上海浦东国际机场\",iataCode:\"PVG\"},{name:\"深圳宝安国际机场\",iataCode:\"SZX\"},{name:\"谢列梅捷沃国际机场\",iataCode:\"SVO\"},{name:\"新加坡樟宜机场\",iataCode:\"SIN\"},{name:\"苏加诺-哈达国际机场\",iataCode:\"CGK\"},{name:\"斯德哥尔摩-阿兰达机场\",iataCode:\"ARN\"},{name:\"素万那普机场\",iataCode:\"BKK\"},{name:\"悉尼金斯福德史密斯国际机场\",iataCode:\"SYD\"},{name:\"台湾桃园国际机场\",iataCode:\"TPE\"},{name:\"新山一国际机场\",iataCode:\"SGN\"},{name:\"东京羽田国际机场\",iataCode:\"HND\"},{name:\"多伦多皮尔逊国际机场\",iataCode:\"YYZ\"},{name:\"突尼斯迦太基国际机场\",iataCode:\"TUN\"},{name:\"温哥华国际机场\",iataCode:\"YVR\"},{name:\"维也纳国际机场\",iataCode:\"VIE\"},{name:\"维拉科波斯国际机场\",iataCode:\"VCP\"},{name:\"伏努科沃国际机场\",iataCode:\"VKO\"},{name:\"惠灵顿国际机场\",iataCode:\"WLG\"},{name:\"西安咸阳国际机场\",iataCode:\"XIY\"},{name:\"茹科夫斯基国际机场\",iataCode:\"ZIA\"},{name:\"苏黎世机场\",iataCode:\"ZRH\"}],gqe={airline:pqe,airplane:mqe,airport:vqe},yqe=gqe,bqe=[\"大熊猫\",\"眼镜熊\",\"太阳熊\",\"懒熊\",\"美洲黑熊\",\"亚洲黑熊\",\"棕熊\",\"北极熊\"],xqe=[\"中华田园猫\",\"中国狸花猫\",\"山东狮子猫\",\"玄猫\",\"黑白花猫\",\"三花猫\",\"玳瑁猫\",\"橘猫\",\"四川简州猫\",\"中国大白猫\",\"美国短毛猫\",\"英国短毛猫\",\"加菲猫\",\"波斯猫\",\"布偶猫\",\"苏格兰折耳猫\",\"暹罗猫\",\"斯芬克斯猫\",\"德文卷毛猫\",\"阿比西尼亚猫\"],Cqe=[\"藏獒\",\"袖狗\",\"拉萨狮子犬\",\"西藏狮子犬\",\"松狮犬\",\"中国冠毛犬\",\"西施犬\",\"沙皮犬\",\"八哥犬\",\"西藏獚\",\"中华田园犬\",\"下司犬\",\"北京犬\",\"西藏梗\",\"柴犬\",\"哈士奇\",\"德国牧羊犬\",\"边境牧羊犬\",\"贵兵犬\",\"秋田犬\",\"罗威纳犬\",\"蝴蝶犬\",\"英国斗牛犬\",\"阿富汗猎犬\",\"萨摩耶犬\",\"大白熊犬\",\"比利时牧羊犬\",\"美国爱斯基摩犬\",\"彭布罗克威尔士柯基犬\",\"墨西哥无毛犬\"],Fqe=[\"草鱼\",\"鲶鱼\",\"鳙鱼\",\"鲤鱼\",\"金鱼\",\"胭脂鱼\",\"中华鲟\",\"长江白鲟\",\"新疆大头鱼\",\"青鱼\",\"鲫鱼\"],Sqe=[\"蒙古马\",\"伊利马\",\"三河马\",\"河曲马\"],wqe=[\"熊\",\"猫\",\"狗\",\"鱼\",\"马\"],Eqe={bear:bqe,cat:xqe,dog:Cqe,fish:Fqe,horse:Sqe,type:wqe},Dqe=Eqe,Aqe=[\"红色\",\"绿色\",\"蓝色\",\"黄色\",\"紫色\",\"薄荷绿色\",\"蓝绿色\",\"白色\",\"黑色\",\"橙色\",\"粉红色\",\"灰色\",\"红褐色\",\"蓝紫色\",\"青绿色\",\"棕褐色\",\"天蓝色\",\"浅橙色\",\"紫红色\",\"淡紫色\",\"淡褐色\",\"青柠色\",\"乳白色\",\"靛蓝色\",\"金色\",\"银色\"],_qe={human:Aqe},Tqe=_qe,Iqe=[\"书籍\",\"电影\",\"音乐\",\"游戏\",\"电子\",\"电脑\",\"主页\",\"花园\",\"工具\",\"杂货\",\"健康\",\"美丽\",\"玩具\",\"孩子\",\"宝宝\",\"服装\",\"鞋子\",\"珠宝\",\"运动\",\"户外\",\"汽车\",\"工业\"],kqe=[\"人体工学椅电脑椅家用宿舍学生学习椅舒适久坐办公座椅转椅书桌椅\",\"鼠标有线USB静音无声家用办公台式笔记本电脑家用商务电竞男\",\"台式电脑机械硬盘SATA串口320G 500G 1TB 2T 3TB 4TB支持游戏监控\",\"【2023新品官方旗舰正品】DERE戴睿笔记本电脑二合一新Surface Pro13平板商务办公学生教育超轻薄便携电脑本\",\"华为笔记本电脑MateBook X Pro 2023 13代酷睿版锐炬显卡14.2英寸3.1K原色触控屏超轻薄旗舰微绒典藏1943\",\"可选16G【M2芯片】Apple/苹果 MacBook Pro 13英寸笔记本电脑剪辑设计大学生办公专用正品分期24G\",\"Sony/索尼 XR-55A80EK 55英寸4K超清认知智能OLED安卓摄像头电视\",\"小米电视 Redmi A43 高清智能电视 43英寸液晶平板电视L43RA-RA\",\"【新品享壕礼】vivo iQOO Z8x手机官方旗舰店新品上市官网正品学生大电池大内存手机iqoo z7 z7x\",\"【至高立省300元 赠数据线】vivo Y78新品全面屏游戏拍照学生5G智能手机大电池官方旗舰店老人机Y78+ Y77\"],Rqe={adjective:[\"小的\",\"人体工程学的\",\"电子的\",\"质朴的\",\"智能的\",\"华丽的\",\"不可思议的\",\"优雅的\",\"精彩绝伦的\",\"实用的\",\"现代的\",\"回收的\",\"圆滑的\",\"定制的\",\"贼好用的\",\"通用的\",\"手工的\",\"手工制作的\",\"东方的\",\"已许可的\",\"豪华的\",\"精致的\",\"无品牌的\",\"好吃\"],material:[\"钢\",\"青铜\",\"木制\",\"混凝土\",\"塑料\",\"棉花\",\"花岗岩\",\"橡胶\",\"金属\",\"软\",\"新鲜\",\"冷冻\"],product:[\"椅子\",\"汽车\",\"电脑\",\"键盘\",\"鼠标\",\"自行车\",\"球\",\"手套\",\"裤子\",\"衬衫\",\"桌子\",\"鞋子\",\"帽子\",\"毛巾\",\"肥皂\",\"金枪鱼\",\"鸡肉\",\"鱼肉\",\"奶酪\",\"培根\",\"披萨\",\"沙拉\",\"香肠\",\"薯条\"]},Mqe={department:Iqe,product_description:kqe,product_name:Rqe},Pqe=Mqe,Oqe=[\"水产\",\"林业\",\"矿业\",\"建设\",\"食品\",\"印刷\",\"电力\",\"燃气\",\"网络科技\",\"物流\",\"保险\",\"旅游发展\",\"传媒\",\"运输\"],Bqe=[\"{{location.state}}{{person.first_name}}{{company.category}}{{company.type}}\",\"{{location.city}}{{person.first_name}}{{company.category}}{{company.type}}\"],Nqe=[\"有限责任公司\",\"股份有限公司\",\"有限公司\",\"(集团)有限公司\",\"集团有限公司\",\"无限公司\",\"无限责任公司\"],$qe={category:Oqe,name_pattern:Bqe,type:Nqe},Lqe=$qe,jqe=[\"标识\",\"标题\",\"名称\",\"邮箱\",\"手机\",\"令牌\",\"组别\",\"类别\",\"密码\",\"注释\",\"头像\",\"状态\",\"创建于\",\"更新于\"],zqe={column:jqe},Hqe=zqe,Vqe={wide:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],abbr:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"]},Wqe={wide:[\"星期天\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],abbr:[\"周日\",\"周一\",\"周二\",\"周三\",\"周四\",\"周五\",\"周六\"]},Gqe={month:Vqe,weekday:Wqe},Uqe=Gqe,Kqe=[\"支票\",\"储蓄\",\"货币市场\",\"投资\",\"房屋贷款\",\"信用卡\",\"汽车贷款\",\"个人贷款\"],Yqe=[\"5[1-5]##-####-####-###L\",\"2[221-720]-####-####-###L\"],qqe=[\"62#############L\",\"67#############L\",\"81#############L\",\"81##############L\",\"81###############L\",\"81################L\"],Xqe=[\"4###########L\",\"4###-####-####-###L\"],Jqe={mastercard:Yqe,unionpay:qqe,visa:Xqe},Zqe=Jqe,Qqe=[{name:\"阿联酋迪拉姆\",code:\"AED\",symbol:\"\"},{name:\"阿富汗尼\",code:\"AFN\",symbol:\"؋\"},{name:\"列克\",code:\"ALL\",symbol:\"Lek\"},{name:\"亚美尼亚德拉姆\",code:\"AMD\",symbol:\"\"},{name:\"荷属安的列斯盾\",code:\"ANG\",symbol:\"ƒ\"},{name:\"宽扎\",code:\"AOA\",symbol:\"\"},{name:\"阿根廷比索\",code:\"ARS\",symbol:\"$\"},{name:\"澳大利亚元\",code:\"AUD\",symbol:\"$\"},{name:\"阿鲁巴弗罗林\",code:\"AWG\",symbol:\"ƒ\"},{name:\"阿塞拜疆马纳特\",code:\"AZN\",symbol:\"ман\"},{name:\"可兑换马克\",code:\"BAM\",symbol:\"KM\"},{name:\"巴巴多斯元\",code:\"BBD\",symbol:\"$\"},{name:\"孟加拉塔卡\",code:\"BDT\",symbol:\"\"},{name:\"保加利亚列弗\",code:\"BGN\",symbol:\"лв\"},{name:\"巴林第纳尔\",code:\"BHD\",symbol:\"\"},{name:\"布隆迪法郎\",code:\"BIF\",symbol:\"\"},{name:\"百慕大元(通常称为百慕大元)\",code:\"BMD\",symbol:\"$\"},{name:\"文莱元\",code:\"BND\",symbol:\"$\"},{name:\"玻利维亚诺\",code:\"BOB\",symbol:\"Bs\"},{name:\"巴西雷亚尔\",code:\"BRL\",symbol:\"R$\"},{name:\"巴哈马元\",code:\"BSD\",symbol:\"$\"},{name:\"普拉\",code:\"BWP\",symbol:\"P\"},{name:\"白俄罗斯卢布\",code:\"BYN\",symbol:\"Rbl\"},{name:\"伯利兹元\",code:\"BZD\",symbol:\"BZ$\"},{name:\"加拿大元\",code:\"CAD\",symbol:\"$\"},{name:\"刚果法郎\",code:\"CDF\",symbol:\"\"},{name:\"瑞士法郎\",code:\"CHF\",symbol:\"CHF\"},{name:\"智利比索\",code:\"CLP\",symbol:\"$\"},{name:\"人民币\",code:\"CNY\",symbol:\"¥\"},{name:\"哥伦比亚比索\",code:\"COP\",symbol:\"$\"},{name:\"哥斯达黎加科朗\",code:\"CRC\",symbol:\"₡\"},{name:\"古巴比索\",code:\"CUP\",symbol:\"₱\"},{name:\"佛得角埃斯库多\",code:\"CVE\",symbol:\"\"},{name:\"捷克克朗\",code:\"CZK\",symbol:\"Kč\"},{name:\"吉布提法郎\",code:\"DJF\",symbol:\"\"},{name:\"丹麦克朗\",code:\"DKK\",symbol:\"kr\"},{name:\"多米尼加比索\",code:\"DOP\",symbol:\"RD$\"},{name:\"阿尔及利亚第纳尔\",code:\"DZD\",symbol:\"\"},{name:\"埃及镑\",code:\"EGP\",symbol:\"£\"},{name:\"纳克法\",code:\"ERN\",symbol:\"\"},{name:\"埃塞俄比亚比尔\",code:\"ETB\",symbol:\"\"},{name:\"欧元\",code:\"EUR\",symbol:\"€\"},{name:\"斐济元\",code:\"FJD\",symbol:\"$\"},{name:\"福克兰群岛镑\",code:\"FKP\",symbol:\"£\"},{name:\"英镑\",code:\"GBP\",symbol:\"£\"},{name:\"格鲁吉亚拉里\",code:\"GEL\",symbol:\"\"},{name:\"塞地\",code:\"GHS\",symbol:\"\"},{name:\"直布罗陀镑\",code:\"GIP\",symbol:\"£\"},{name:\"达尔西\",code:\"GMD\",symbol:\"\"},{name:\"几内亚法郎\",code:\"GNF\",symbol:\"\"},{name:\"格查尔\",code:\"GTQ\",symbol:\"Q\"},{name:\"圭亚那元\",code:\"GYD\",symbol:\"$\"},{name:\"港元\",code:\"HKD\",symbol:\"$\"},{name:\"伦皮拉\",code:\"HNL\",symbol:\"L\"},{name:\"古德\",code:\"HTG\",symbol:\"\"},{name:\"福林特\",code:\"HUF\",symbol:\"Ft\"},{name:\"印度尼西亚卢比\",code:\"IDR\",symbol:\"Rp\"},{name:\"新以色列谢克尔\",code:\"ILS\",symbol:\"₪\"},{name:\"不丹努扎姆\",code:\"BTN\",symbol:\"Nu\"},{name:\"印度卢比\",code:\"INR\",symbol:\"₹\"},{name:\"伊拉克第纳尔\",code:\"IQD\",symbol:\"\"},{name:\"伊朗里亚尔\",code:\"IRR\",symbol:\"﷼\"},{name:\"冰岛克朗\",code:\"ISK\",symbol:\"kr\"},{name:\"牙买加元\",code:\"JMD\",symbol:\"J$\"},{name:\"约旦第纳尔\",code:\"JOD\",symbol:\"\"},{name:\"日元\",code:\"JPY\",symbol:\"¥\"},{name:\"肯尼亚先令\",code:\"KES\",symbol:\"\"},{name:\"吉尔吉斯斯坦索姆\",code:\"KGS\",symbol:\"лв\"},{name:\"瑞尔\",code:\"KHR\",symbol:\"៛\"},{name:\"科摩罗法郎\",code:\"KMF\",symbol:\"\"},{name:\"朝鲜圆\",code:\"KPW\",symbol:\"₩\"},{name:\"韩元\",code:\"KRW\",symbol:\"₩\"},{name:\"科威特第纳尔\",code:\"KWD\",symbol:\"\"},{name:\"开曼群岛元\",code:\"KYD\",symbol:\"$\"},{name:\"坚戈\",code:\"KZT\",symbol:\"лв\"},{name:\"基普\",code:\"LAK\",symbol:\"₭\"},{name:\"黎巴嫩镑\",code:\"LBP\",symbol:\"£\"},{name:\"斯里兰卡卢比\",code:\"LKR\",symbol:\"₨\"},{name:\"利比里亚元\",code:\"LRD\",symbol:\"$\"},{name:\"利比亚第纳尔\",code:\"LYD\",symbol:\"\"},{name:\"摩洛哥迪拉姆\",code:\"MAD\",symbol:\"\"},{name:\"摩尔多瓦列伊\",code:\"MDL\",symbol:\"\"},{name:\"马达加斯加阿里亚里\",code:\"MGA\",symbol:\"\"},{name:\"马其顿代纳尔\",code:\"MKD\",symbol:\"ден\"},{name:\"缅甸元\",code:\"MMK\",symbol:\"\"},{name:\"图格里克\",code:\"MNT\",symbol:\"₮\"},{name:\"澳门元\",code:\"MOP\",symbol:\"\"},{name:\"乌吉亚\",code:\"MRU\",symbol:\"\"},{name:\"毛里求斯卢比\",code:\"MUR\",symbol:\"₨\"},{name:\"拉菲亚\",code:\"MVR\",symbol:\"\"},{name:\"克瓦查\",code:\"MWK\",symbol:\"\"},{name:\"墨西哥比索\",code:\"MXN\",symbol:\"$\"},{name:\"马来西亚林吉特\",code:\"MYR\",symbol:\"RM\"},{name:\"莫桑比克梅蒂卡尔\",code:\"MZN\",symbol:\"MT\"},{name:\"奈拉\",code:\"NGN\",symbol:\"₦\"},{name:\"科多巴金科多巴\",code:\"NIO\",symbol:\"C$\"},{name:\"挪威克朗\",code:\"NOK\",symbol:\"kr\"},{name:\"尼泊尔卢比\",code:\"NPR\",symbol:\"₨\"},{name:\"新西兰元\",code:\"NZD\",symbol:\"$\"},{name:\"阿曼里亚尔\",code:\"OMR\",symbol:\"﷼\"},{name:\"巴尔博亚\",code:\"PAB\",symbol:\"B/.\"},{name:\"秘鲁新索尔\",code:\"PEN\",symbol:\"S/.\"},{name:\"基纳\",code:\"PGK\",symbol:\"\"},{name:\"菲律宾比索\",code:\"PHP\",symbol:\"Php\"},{name:\"巴基斯坦卢比\",code:\"PKR\",symbol:\"₨\"},{name:\"兹罗提\",code:\"PLN\",symbol:\"zł\"},{name:\"巴拉圭瓜拉尼\",code:\"PYG\",symbol:\"Gs\"},{name:\"卡塔尔里亚尔\",code:\"QAR\",symbol:\"﷼\"},{name:\"新卢\",code:\"RON\",symbol:\"lei\"},{name:\"塞尔维亚第纳尔\",code:\"RSD\",symbol:\"Дин.\"},{name:\"俄罗斯卢布\",code:\"RUB\",symbol:\"руб\"},{name:\"卢旺达法郎\",code:\"RWF\",symbol:\"\"},{name:\"沙特里亚尔\",code:\"SAR\",symbol:\"﷼\"},{name:\"所罗门群岛元\",code:\"SBD\",symbol:\"$\"},{name:\"塞舌尔卢比\",code:\"SCR\",symbol:\"₨\"},{name:\"苏丹镑\",code:\"SDG\",symbol:\"\"},{name:\"瑞典克朗\",code:\"SEK\",symbol:\"kr\"},{name:\"新加坡元\",code:\"SGD\",symbol:\"$\"},{name:\"圣赫勒拿镑\",code:\"SHP\",symbol:\"£\"},{name:\"利昂\",code:\"SLE\",symbol:\"\"},{name:\"索马里先令\",code:\"SOS\",symbol:\"S\"},{name:\"苏里南元\",code:\"SRD\",symbol:\"$\"},{name:\"南苏丹镑\",code:\"SSP\",symbol:\"\"},{name:\"多布拉\",code:\"STN\",symbol:\"Db\"},{name:\"叙利亚镑\",code:\"SYP\",symbol:\"£\"},{name:\"利兰吉尼\",code:\"SZL\",symbol:\"\"},{name:\"泰铢\",code:\"THB\",symbol:\"฿\"},{name:\"索莫尼\",code:\"TJS\",symbol:\"\"},{name:\"马纳特\",code:\"TMT\",symbol:\"\"},{name:\"突尼斯第纳尔\",code:\"TND\",symbol:\"\"},{name:\"帕安加\",code:\"TOP\",symbol:\"\"},{name:\"土耳其里拉\",code:\"TRY\",symbol:\"₺\"},{name:\"特立尼达和多巴哥元\",code:\"TTD\",symbol:\"TT$\"},{name:\"新台币\",code:\"TWD\",symbol:\"NT$\"},{name:\"坦桑尼亚先令\",code:\"TZS\",symbol:\"\"},{name:\"格里夫尼亚\",code:\"UAH\",symbol:\"₴\"},{name:\"乌干达先令\",code:\"UGX\",symbol:\"\"},{name:\"美元\",code:\"USD\",symbol:\"$\"},{name:\"乌拉圭比索\",code:\"UYU\",symbol:\"$U\"},{name:\"乌兹别克索姆\",code:\"UZS\",symbol:\"лв\"},{name:\"委内瑞拉玻利瓦尔\",code:\"VES\",symbol:\"Bs\"},{name:\"越南盾\",code:\"VND\",symbol:\"₫\"},{name:\"瓦图\",code:\"VUV\",symbol:\"\"},{name:\"塔拉\",code:\"WST\",symbol:\"\"},{name:\"科姆罗尔法郎\",code:\"XAF\",symbol:\"\"},{name:\"银\",code:\"XAG\",symbol:\"XAG\"},{name:\"金\",code:\"XAU\",symbol:\"XAU\"},{name:\"东加勒比元\",code:\"XCD\",symbol:\"$\"},{name:\"特别提款权\",code:\"XDR\",symbol:\"XDR\"},{name:\"中非金融合作法郎\",code:\"XOF\",symbol:\"\"},{name:\"波利尼西亚法郎\",code:\"XPF\",symbol:\"\"},{name:\"也门里亚尔\",code:\"YER\",symbol:\"﷼\"},{name:\"南非兰特\",code:\"ZAR\",symbol:\"R\"},{name:\"赞比亚克瓦查\",code:\"ZMW\",symbol:\"ZK\"},{name:\"津巴布韦元\",code:\"ZWL\",symbol:\"$\"}],eXe=[\"存款\",\"取款\",\"支付\",\"开票\"],tXe={account_type:Kqe,credit_card:Zqe,currency:Qqe,transaction_type:eXe},rXe=tXe,nXe=[\"辅助\",\"主要\",\"后端\",\"开源\",\"虚拟\",\"跨平台\",\"冗余\",\"在线\",\"触控\",\"多字节\",\"蓝牙\",\"无线\",\"全高清\",\"神经元\",\"光学\",\"固态\",\"移动\"],aXe=[\"驱动\",\"协议\",\"带宽\",\"面板\",\"芯片\",\"程序\",\"端口\",\"卡片\",\"数组\",\"接口\",\"系统\",\"传感器\",\"防火墙\",\"硬盘\",\"像素\",\"警报\",\"提要\",\"监视器\",\"应用\",\"发送端\",\"总线\",\"电路\",\"电容器\",\"矩阵\"],iXe=[\"倘若我们{{verb}}{{noun}},我们就可以通过{{adjective}}{{abbreviation}}{{noun}}获得{{abbreviation}}{{noun}}\",\"我们需要{{verb}}{{adjective}}{{abbreviation}}{{noun}}\",\"尝试{{verb}}{{abbreviation}}{{noun}},也许会{{verb}}{{adjective}}{{noun}}\",\"在没有{{verb}}{{adjective}}{{abbreviation}}{{noun}}的情况下,你不能{{verb}}{{noun}}\",\"使用{{adjective}}{{abbreviation}}{{noun}},然后你就能{{verb}}{{adjective}}{{noun}}\",\"{{abbreviation}}{{noun}}已关闭,因为{{adjective}}{{noun}}所以我们能{{verb}}{{abbreviation}}{{noun}}\",\"{{verb}}{{noun}}是无济于事的,我们需要{{verb}}{{adjective}}{{abbreviation}}{{noun}}\",\"我将{{verb}}{{adjective}}{{abbreviation}}{{noun}},那是应该{{noun}}{{abbreviation}}{{noun}}\"],oXe=[\"备份\",\"绕过\",\"入侵\",\"覆盖\",\"压缩\",\"复制\",\"导航\",\"索引\",\"链接\",\"生成\",\"量化\",\"计算\",\"合成\",\"输入\",\"传输\",\"编程\",\"重启\",\"解析\"],lXe={adjective:nXe,noun:aXe,phrase:iXe,verb:oXe},sXe=lXe,uXe=[\"126.com\",\"139.com\",\"163.com\",\"21cn.com\",\"gmail.com\",\"hotmail.com\",\"qq.com\",\"sina.com\",\"sohu.com\",\"tom.com\",\"vip.qq.com\",\"yahoo.cn\",\"yahoo.com.cn\",\"yeah.net\",\"foxmail.com\",\"outlook.com\"],cXe={free_email:uXe},dXe=cXe,fXe=[\"#####\",\"####\",\"###\",\"##\",\"#\"],hXe=[\"{{location.city_prefix}}{{location.city_suffix}}\"],pXe=[\"上\",\"包\",\"北\",\"南\",\"厦\",\"吉\",\"太\",\"宁\",\"安\",\"成\",\"武\",\"济\",\"海\",\"珠\",\"福\",\"衡\",\"西\",\"诸\",\"贵\",\"长\"],mXe=[\"乡县\",\"京市\",\"南市\",\"原市\",\"口市\",\"头市\",\"宁市\",\"安市\",\"州市\",\"徽市\",\"林市\",\"汉市\",\"沙市\",\"海市\",\"码市\",\"都市\",\"门市\",\"阳市\"],vXe=[\"中国\"],gXe=[\"######\"],yXe=[\"北京市\",\"上海市\",\"天津市\",\"重庆市\",\"黑龙江省\",\"吉林省\",\"辽宁省\",\"内蒙古自治区\",\"河北省\",\"新疆维吾尔自治区\",\"甘肃省\",\"青海省\",\"陕西省\",\"宁夏回族自治区\",\"河南省\",\"山东省\",\"山西省\",\"安徽省\",\"湖北省\",\"湖南省\",\"江苏省\",\"四川省\",\"贵州省\",\"云南省\",\"广西壮族自治区\",\"西藏自治区\",\"浙江省\",\"江西省\",\"广东省\",\"福建省\",\"海南省\"],bXe=[\"北京\",\"上海\",\"天津\",\"重庆\",\"黑龙江\",\"吉林\",\"辽阳\",\"内蒙古\",\"河北\",\"新疆\",\"甘肃\",\"青海\",\"陕西\",\"宁夏\",\"河南\",\"山东\",\"山西\",\"合肥\",\"湖北\",\"湖南\",\"苏州\",\"四川\",\"贵州\",\"云南\",\"广西\",\"西藏\",\"浙江\",\"江西\",\"广东\",\"福建\",\"海南\"],xXe={normal:\"{{location.street}}{{location.buildingNumber}}号\",full:\"{{location.street}}{{location.buildingNumber}}号 {{location.secondaryAddress}}\"},CXe=[\"{{person.last_name}}{{location.street_suffix}}\"],FXe=[\"巷\",\"街\",\"路\",\"桥\",\"侬\",\"旁\",\"中心\",\"栋\"],SXe={building_number:fXe,city_pattern:hXe,city_prefix:pXe,city_suffix:mXe,default_country:vXe,postcode:gXe,state:yXe,state_abbr:bXe,street_address:xXe,street_pattern:CXe,street_suffix:FXe},wXe=SXe,EXe={title:\"Chinese (China)\",code:\"zh_CN\",country:\"CN\",language:\"zh\",endonym:\"中文 (中国)\",dir:\"ltr\",script:\"Hans\"},DXe=EXe,AXe=[\"摇滚\",\"流行\",\"重金属\",\"电子\",\"民谣\",\"世界\",\"乡村\",\"爵士\",\"放克\",\"灵魂\",\"嘻哈\",\"经典\",\"拉丁\",\"牙买加\",\"蓝调\",\"非音乐\",\"说唱\",\"舞台与银幕\"],_Xe=[\"白月光与朱砂痣\",\"孤勇者\",\"稻香\",\"起风了\",\"纪念\",\"晴天\",\"兰亭序\",\"我流泪情绪零碎\",\"七里香\",\"花海\",\"反方向的钟\",\"一路向北\",\"蒲公英的约定\",\"夜曲\",\"搁浅\",\"海底\",\"105度的你\",\"明明就\",\"爱在西元前\",\"我如此相信\",\"枫\",\"青花瓷\",\"半岛铁盒\",\"说了再见\",\"暗号\",\"退后\",\"最长的电影\",\"等你下课\",\"烟花易冷\",\"不该\",\"告白气球\",\"说好不哭\",\"轨迹\",\"红尘客栈\",\"不能说的秘密\",\"珊瑚海\",\"给我一首歌的时间\",\"你听得到\",\"简单的爱\",\"龙卷风\",\"发如雪\",\"园游会\",\"听妈妈的话\",\"夜的第七章\",\"接口\",\"手写从前\",\"安静\",\"爱情废材\",\"以父之名\",\"我不配\",\"最伟大的作品\",\"可爱女人\",\"彩虹\",\"回到过去\",\"听悲伤的情话\",\"把回忆拼好给你\",\"东风破\",\"黑色毛衣\",\"本草纲目\",\"开不了口\",\"霍元甲\",\"爱的飞行日记\",\"大本钟\",\"断了的弦\",\"爷爷泡的茶\",\"星晴\",\"甜甜的\",\"红颜如霜\",\"粉色海洋\",\"她的睫毛\",\"雨下一整晚\",\"白色风车\",\"还在流浪\",\"阳光宅男\",\"算什么男人\",\"菊花台\",\"千里之外\",\"错过的烟火\",\"倒影\",\"听见下雨的声音\",\"黑色幽默\",\"默\",\"不爱我拉倒\",\"之战之殇\",\"布拉格广场\",\"美人鱼\",\"分裂\",\"心雨\",\"米兰的小铁匠\",\"世界末日\",\"一点点\",\"外婆\",\"画沙\",\"哪里都是你\",\"刀马旦\",\"超人不会飞\",\"牛仔很忙\",\"周大侠\",\"飘移\",\"忍者\",\"夏日妄想\",\"铃芽之旅\",\"玫瑰少年\",\"大鱼\",\"灯火里的中国\",\"义勇军进行曲\",\"调查中\",\"少年\",\"堕\",\"在你身边\",\"悬溺\",\"奢香夫人\",\"最好的安排\",\"夏至未至\",\"小城夏天\",\"暖暖\"],TXe={genre:AXe,song_name:_Xe},IXe=TXe,kXe=[\"活动家\",\"艺术家\",\"作家\",\"博主\",\"企业家\",\"教练\",\"发明家\",\"设计师\",\"开发者\",\"教育家\",\"工程师\",\"企业主\",\"环保主义者\",\"电影爱好者\",\"电影制片人\",\"美食家\",\"创始人\",\"朋友\",\"玩家\",\"极客\",\"毕业生\",\"创造者\",\"领导者\",\"模特\",\"脑力爱好者\",\"父母\",\"爱国者\",\"个人\",\"哲学家\",\"摄影爱好者\",\"公众演说家\",\"科学家\",\"梦想家\",\"学生\",\"老师\",\"旅行家\",\"退伍军人\",\"作者\"],RXe=[\"{{person.bio_part}}\",\"{{person.bio_part}}{{person.bio_part}}\",\"{{person.bio_part}}{{person.bio_part}}{{person.bio_part}}\",\"{{person.bio_part}}{{person.bio_part}}{{person.bio_part}}{{internet.emoji}}\",\"{{word.noun}}{{person.bio_supporter}}\",\"{{word.noun}}{{person.bio_supporter}}{{internet.emoji}}\",\"{{word.noun}}{{person.bio_supporter}}{{person.bio_part}}\",\"{{word.noun}}{{person.bio_supporter}}{{person.bio_part}}{{internet.emoji}}\"],MXe=[\"倡导者\",\"贡献者\",\"发烧友\",\"粉丝\",\"狂热者\",\"爱好者\",\"支持者\"],PXe=[\"秀英\",\"秀兰\",\"秀珍\",\"桂英\",\"桂兰\",\"玉兰\",\"玉珍\",\"玉英\",\"玉梅\",\"凤英\",\"兰英\",\"婷婷\",\"国英\",\"国珍\",\"国华\",\"国芳\",\"国兰\",\"国秀\",\"国琴\",\"国荣\",\"国香\",\"英\",\"萍\",\"蒙\",\"红\",\"丽\",\"敏\",\"芳\",\"静\",\"霞\",\"燕\",\"娟\",\"艳\",\"娜\",\"丹\",\"玲\",\"婷\",\"珈\",\"雪\",\"倩\",\"悦\",\"颖\",\"洁\",\"慧\",\"开慧\",\"丽芬\",\"丽芳\",\"丽萍\",\"若汐\",\"一诺\",\"艺涵\",\"依诺\",\"梓涵\",\"梓晨\",\"梓馨\",\"梓萱\",\"梓妍\",\"梓玥\",\"苡沫\",\"雨桐\",\"欣怡\",\"语桐\",\"语汐\",\"雨涵\",\"雨欣\",\"诗雨\",\"婷方\",\"美方\",\"雅婷\",\"紫林\",\"天娇\",\"万佳\",\"子欣\",\"海燕\",\"乙萍\",\"安琪\",\"馨羽\",\"馥君\",\"思佳\",\"雅鑫\",\"静怡\",\"晨阳\",\"佳琪\",\"雯静\",\"榕融\"],OXe=null,BXe=[\"乐驹\",\"伟宸\",\"伟泽\",\"伟祺\",\"伟诚\",\"俊驰\",\"修杰\",\"修洁\",\"健柏\",\"健雄\",\"凯瑞\",\"博文\",\"博涛\",\"博超\",\"君浩\",\"哲瀚\",\"嘉懿\",\"嘉熙\",\"天宇\",\"天磊\",\"天翊\",\"子涵\",\"子轩\",\"子骞\",\"子默\",\"展鹏\",\"峻熙\",\"建辉\",\"弘文\",\"彬\",\"志强\",\"志泽\",\"思\",\"思淼\",\"思源\",\"思聪\",\"思远\",\"懿轩\",\"振家\",\"擎宇\",\"擎苍\",\"文\",\"文博\",\"文昊\",\"文轩\",\"旭尧\",\"昊天\",\"昊强\",\"昊焱\",\"昊然\",\"明\",\"明哲\",\"明杰\",\"明轩\",\"明辉\",\"晋鹏\",\"晓博\",\"晓啸\",\"晟睿\",\"智宸\",\"智渊\",\"智辉\",\"果\",\"梓晨\",\"楷瑞\",\"正豪\",\"泽洋\",\"浩\",\"浩宇\",\"浩然\",\"浩轩\",\"涛\",\"潇然\",\"炎彬\",\"炫明\",\"烨伟\",\"烨华\",\"烨磊\",\"烨霖\",\"煜城\",\"煜祺\",\"熠彤\",\"琪\",\"瑞霖\",\"瑾瑜\",\"皓轩\",\"睿渊\",\"立果\",\"立诚\",\"立轩\",\"立辉\",\"笑愚\",\"绍辉\",\"绍齐\",\"耀杰\",\"聪健\",\"胤祥\",\"致远\",\"航\",\"苑博\",\"荣轩\",\"语堂\",\"越彬\",\"越泽\",\"远航\",\"金鑫\",\"鑫磊\",\"鑫鹏\",\"钰轩\",\"锦程\",\"雨泽\",\"雪松\",\"靖琪\",\"风华\",\"驰\",\"鸿涛\",\"鸿煊\",\"鹏\",\"鹏涛\",\"鹏煊\",\"鹏飞\",\"鹤轩\",\"鹭洋\",\"黎昕\",\"诗雨\",\"婷方\",\"美方\",\"雅婷\",\"紫林\",\"天娇\",\"万佳\",\"子欣\",\"海燕\",\"乙萍\",\"安琪\",\"馨羽\",\"馥君\",\"思佳\",\"雅鑫\",\"静怡\",\"晨阳\",\"佳琪\",\"雯静\",\"榕融\",\"浩辰\",\"癸霖\",\"一全\",\"三锋\",\"义轩\",\"俊凯\",\"子豪\",\"振东\",\"智杰\",\"哲新\",\"中海\",\"超栋\",\"治涛\",\"治文\",\"文韬\",\"敬彪\",\"敬阳\",\"政君\",\"立伟\",\"呈轩\"],NXe=[\"赵\",\"钱\",\"孙\",\"李\",\"周\",\"吴\",\"郑\",\"王\",\"冯\",\"陈\",\"褚\",\"卫\",\"蒋\",\"沈\",\"韩\",\"杨\",\"朱\",\"秦\",\"尤\",\"许\",\"何\",\"吕\",\"施\",\"张\",\"孔\",\"曹\",\"严\",\"华\",\"金\",\"魏\",\"陶\",\"姜\",\"戚\",\"谢\",\"邹\",\"喻\",\"柏\",\"水\",\"窦\",\"章\",\"云\",\"苏\",\"潘\",\"葛\",\"奚\",\"范\",\"彭\",\"郎\",\"鲁\",\"韦\",\"昌\",\"马\",\"苗\",\"凤\",\"花\",\"方\",\"俞\",\"任\",\"袁\",\"柳\",\"酆\",\"鲍\",\"史\",\"唐\",\"费\",\"廉\",\"岑\",\"薛\",\"雷\",\"贺\",\"倪\",\"汤\",\"滕\",\"殷\",\"罗\",\"毕\",\"郝\",\"邬\",\"安\",\"常\",\"乐\",\"于\",\"时\",\"傅\",\"皮\",\"卞\",\"齐\",\"康\",\"伍\",\"余\",\"元\",\"卜\",\"顾\",\"孟\",\"平\",\"黄\",\"和\",\"穆\",\"萧\",\"尹\",\"姚\",\"邵\",\"湛\",\"汪\",\"祁\",\"毛\",\"禹\",\"狄\",\"米\",\"贝\",\"明\",\"臧\",\"计\",\"伏\",\"成\",\"戴\",\"谈\",\"宋\",\"茅\",\"庞\",\"熊\",\"纪\",\"舒\",\"屈\",\"项\",\"祝\",\"董\",\"梁\",\"杜\",\"阮\",\"蓝\",\"闵\",\"席\",\"季\",\"麻\",\"强\",\"贾\",\"路\",\"娄\",\"危\",\"江\",\"童\",\"颜\",\"郭\",\"梅\",\"盛\",\"林\",\"刁\",\"锺\",\"徐\",\"邱\",\"骆\",\"高\",\"夏\",\"蔡\",\"田\",\"樊\",\"胡\",\"凌\",\"蹇\",\"称\",\"诺\",\"来\",\"多\",\"繁\",\"戊\",\"朴\",\"回\",\"毓\",\"税\",\"荤\",\"靖\",\"绪\",\"愈\",\"硕\",\"牢\",\"买\",\"但\",\"巧\",\"枚\",\"撒\",\"泰\",\"秘\",\"亥\",\"绍\",\"以\",\"壬\",\"森\",\"斋\",\"释\",\"奕\",\"姒\",\"朋\",\"求\",\"羽\",\"用\",\"占\",\"真\",\"穰\",\"翦\",\"闾\",\"漆\",\"贵\",\"代\",\"贯\",\"旁\",\"崇\",\"栋\",\"告\",\"休\",\"褒\",\"谏\",\"锐\",\"皋\",\"闳\",\"在\",\"歧\",\"禾\",\"示\",\"是\",\"委\",\"钊\",\"频\",\"嬴\",\"呼\",\"大\",\"威\",\"昂\",\"律\",\"冒\",\"保\",\"系\",\"抄\",\"定\",\"化\",\"莱\",\"校\",\"么\",\"抗\",\"祢\",\"綦\",\"悟\",\"宏\",\"功\",\"庚\",\"务\",\"敏\",\"捷\",\"拱\",\"兆\",\"丑\",\"丙\",\"畅\",\"苟\",\"随\",\"类\",\"卯\",\"俟\",\"友\",\"答\",\"乙\",\"允\",\"甲\",\"留\",\"尾\",\"佼\",\"玄\",\"乘\",\"裔\",\"延\",\"植\",\"环\",\"矫\",\"赛\",\"昔\",\"侍\",\"度\",\"旷\",\"遇\",\"偶\",\"前\",\"由\",\"咎\",\"塞\",\"敛\",\"受\",\"泷\",\"袭\",\"衅\",\"叔\",\"圣\",\"御\",\"夫\",\"仆\",\"镇\",\"藩\",\"邸\",\"府\",\"掌\",\"首\",\"员\",\"焉\",\"戏\",\"可\",\"智\",\"尔\",\"凭\",\"悉\",\"进\",\"笃\",\"厚\",\"仁\",\"业\",\"肇\",\"资\",\"合\",\"仍\",\"九\",\"衷\",\"哀\",\"刑\",\"俎\",\"仵\",\"圭\",\"夷\",\"徭\",\"蛮\",\"汗\",\"孛\",\"乾\",\"帖\",\"罕\",\"洛\",\"淦\",\"洋\",\"邶\",\"郸\",\"郯\",\"邗\",\"邛\",\"剑\",\"虢\",\"隋\",\"蒿\",\"茆\",\"菅\",\"苌\",\"树\",\"桐\",\"锁\",\"钟\",\"机\",\"盘\",\"铎\",\"斛\",\"玉\",\"线\",\"针\",\"箕\",\"庹\",\"绳\",\"磨\",\"蒉\",\"瓮\",\"弭\",\"刀\",\"疏\",\"牵\",\"浑\",\"恽\",\"势\",\"世\",\"仝\",\"同\",\"蚁\",\"止\",\"戢\",\"睢\",\"冼\",\"种\",\"涂\",\"肖\",\"己\",\"泣\",\"潜\",\"卷\",\"脱\",\"谬\",\"蹉\",\"赧\",\"浮\",\"顿\",\"说\",\"次\",\"错\",\"念\",\"夙\",\"斯\",\"完\",\"丹\",\"表\",\"聊\",\"源\",\"姓\",\"吾\",\"寻\",\"展\",\"出\",\"不\",\"户\",\"闭\",\"才\",\"无\",\"书\",\"学\",\"愚\",\"本\",\"性\",\"雪\",\"霜\",\"烟\",\"寒\",\"少\",\"字\",\"桥\",\"板\",\"斐\",\"独\",\"千\",\"诗\",\"嘉\",\"扬\",\"善\",\"揭\",\"祈\",\"析\",\"赤\",\"紫\",\"青\",\"柔\",\"刚\",\"奇\",\"拜\",\"佛\",\"陀\",\"弥\",\"阿\",\"素\",\"长\",\"僧\",\"隐\",\"仙\",\"隽\",\"宇\",\"祭\",\"酒\",\"淡\",\"塔\",\"琦\",\"闪\",\"始\",\"星\",\"南\",\"天\",\"接\",\"波\",\"碧\",\"速\",\"禚\",\"腾\",\"潮\",\"镜\",\"似\",\"澄\",\"潭\",\"謇\",\"纵\",\"渠\",\"奈\",\"风\",\"春\",\"濯\",\"沐\",\"茂\",\"英\",\"兰\",\"檀\",\"藤\",\"枝\",\"检\",\"生\",\"折\",\"登\",\"驹\",\"骑\",\"貊\",\"虎\",\"肥\",\"鹿\",\"雀\",\"野\",\"禽\",\"飞\",\"节\",\"宜\",\"鲜\",\"粟\",\"栗\",\"豆\",\"帛\",\"官\",\"布\",\"衣\",\"藏\",\"宝\",\"钞\",\"银\",\"门\",\"盈\",\"庆\",\"喜\",\"及\",\"普\",\"建\",\"营\",\"巨\",\"望\",\"希\",\"道\",\"载\",\"声\",\"漫\",\"犁\",\"力\",\"贸\",\"勤\",\"革\",\"改\",\"兴\",\"亓\",\"睦\",\"修\",\"信\",\"闽\",\"北\",\"守\",\"坚\",\"勇\",\"汉\",\"练\",\"尉\",\"士\",\"旅\",\"五\",\"令\",\"将\",\"旗\",\"军\",\"行\",\"奉\",\"敬\",\"恭\",\"仪\",\"母\",\"堂\",\"丘\",\"义\",\"礼\",\"慈\",\"孝\",\"理\",\"伦\",\"卿\",\"问\",\"永\",\"辉\",\"位\",\"让\",\"尧\",\"依\",\"犹\",\"介\",\"承\",\"市\",\"所\",\"苑\",\"杞\",\"剧\",\"第\",\"零\",\"谌\",\"招\",\"续\",\"达\",\"忻\",\"六\",\"鄞\",\"战\",\"迟\",\"候\",\"宛\",\"励\",\"粘\",\"萨\",\"邝\",\"覃\",\"辜\",\"初\",\"楼\",\"城\",\"区\",\"局\",\"台\",\"原\",\"考\",\"妫\",\"纳\",\"泉\",\"老\",\"清\",\"德\",\"卑\",\"过\",\"麦\",\"曲\",\"竹\",\"百\",\"福\",\"言\",\"霍\",\"虞\",\"万\",\"支\",\"柯\",\"昝\",\"管\",\"卢\",\"莫\",\"经\",\"房\",\"裘\",\"缪\",\"干\",\"解\",\"应\",\"宗\",\"丁\",\"宣\",\"贲\",\"邓\",\"单\",\"杭\",\"洪\",\"包\",\"诸\",\"左\",\"石\",\"崔\",\"吉\",\"钮\",\"龚\",\"程\",\"嵇\",\"邢\",\"滑\",\"裴\",\"陆\",\"荣\",\"翁\",\"荀\",\"羊\",\"於\",\"惠\",\"甄\",\"麴\",\"家\",\"封\",\"芮\",\"羿\",\"储\",\"靳\",\"汲\",\"邴\",\"糜\",\"松\",\"井\",\"段\",\"富\",\"巫\",\"乌\",\"焦\",\"巴\",\"弓\",\"牧\",\"隗\",\"山\",\"谷\",\"车\",\"侯\",\"宓\",\"蓬\",\"全\",\"郗\",\"班\",\"仰\",\"秋\",\"仲\",\"伊\",\"宫\",\"宁\",\"仇\",\"栾\",\"暴\",\"甘\",\"钭\",\"历\",\"戎\",\"祖\",\"武\",\"符\",\"刘\",\"景\",\"詹\",\"束\",\"龙\",\"叶\",\"幸\",\"司\",\"韶\",\"郜\",\"黎\",\"蓟\",\"溥\",\"印\",\"宿\",\"白\",\"怀\",\"蒲\",\"邰\",\"召\",\"有\",\"舜\",\"拉\",\"丛\",\"岳\",\"寸\",\"贰\",\"皇\",\"侨\",\"彤\",\"竭\",\"端\",\"赫\",\"实\",\"甫\",\"集\",\"象\",\"翠\",\"狂\",\"辟\",\"典\",\"良\",\"函\",\"芒\",\"苦\",\"其\",\"京\",\"中\",\"夕\",\"之\",\"从\",\"鄂\",\"索\",\"咸\",\"籍\",\"赖\",\"卓\",\"蔺\",\"屠\",\"蒙\",\"池\",\"乔\",\"阳\",\"郁\",\"胥\",\"能\",\"苍\",\"双\",\"闻\",\"莘\",\"党\",\"翟\",\"谭\",\"贡\",\"劳\",\"逄\",\"姬\",\"申\",\"扶\",\"堵\",\"冉\",\"宰\",\"郦\",\"雍\",\"却\",\"璩\",\"桑\",\"桂\",\"濮\",\"牛\",\"寿\",\"通\",\"边\",\"扈\",\"燕\",\"冀\",\"僪\",\"浦\",\"尚\",\"农\",\"温\",\"别\",\"庄\",\"晏\",\"柴\",\"瞿\",\"阎\",\"充\",\"慕\",\"连\",\"茹\",\"习\",\"宦\",\"艾\",\"鱼\",\"容\",\"向\",\"古\",\"易\",\"慎\",\"戈\",\"廖\",\"庾\",\"终\",\"暨\",\"居\",\"衡\",\"步\",\"都\",\"耿\",\"满\",\"弘\",\"匡\",\"国\",\"文\",\"琴\",\"况\",\"亢\",\"缑\",\"帅\",\"寇\",\"广\",\"禄\",\"阙\",\"东\",\"欧\",\"殳\",\"沃\",\"利\",\"蔚\",\"越\",\"夔\",\"隆\",\"师\",\"巩\",\"厍\",\"聂\",\"晁\",\"勾\",\"敖\",\"融\",\"冷\",\"訾\",\"辛\",\"阚\",\"那\",\"简\",\"饶\",\"空\",\"曾\",\"毋\",\"沙\",\"乜\",\"养\",\"鞠\",\"须\",\"丰\",\"巢\",\"关\",\"蒯\",\"相\",\"查\",\"后\",\"荆\",\"红\",\"游\",\"特\",\"察\",\"竺\",\"冠\",\"宾\",\"香\",\"赏\",\"伯\",\"佴\",\"佘\",\"佟\",\"爱\",\"年\",\"笪\",\"谯\",\"哈\",\"墨\",\"牟\",\"商\",\"海\",\"归\",\"钦\",\"鄢\",\"汝\",\"法\",\"闫\",\"楚\",\"晋\",\"督\",\"仉\",\"盖\",\"逯\",\"库\",\"郏\",\"逢\",\"阴\",\"薄\",\"厉\",\"稽\",\"开\",\"光\",\"操\",\"瑞\",\"眭\",\"泥\",\"运\",\"摩\",\"伟\",\"铁\",\"迮\",\"果\",\"权\",\"逮\",\"盍\",\"益\",\"桓\",\"公\",\"万俟\",\"司马\",\"上官\",\"欧阳\",\"夏侯\",\"诸葛\",\"闻人\",\"东方\",\"赫连\",\"皇甫\",\"尉迟\",\"公羊\",\"澹台\",\"公冶\",\"宗政\",\"濮阳\",\"淳于\",\"单于\",\"太叔\",\"申屠\",\"公孙\",\"仲孙\",\"轩辕\",\"令狐\",\"钟离\",\"宇文\",\"长孙\",\"慕容\",\"司徒\",\"司空\",\"章佳\",\"那拉\",\"觉罗\",\"纳喇\",\"乌雅\",\"范姜\",\"碧鲁\"],$Xe=[{value:\"{{person.last_name}}\",weight:1}],LXe=[\"建华\",\"建国\",\"建军\",\"国强\",\"国平\",\"国良\",\"国栋\",\"国辉\",\"志国\",\"志明\",\"勇\",\"军\",\"伟\",\"强\",\"刚\",\"涛\",\"斌\",\"波\",\"辉\",\"磊\",\"超\",\"鹏\",\"杰\",\"浩\",\"鑫\",\"帅\",\"宇\",\"晨\",\"诚\",\"成\",\"民\",\"明\",\"阳\",\"瑜\",\"熙成\",\"熙瑶\",\"家豪\",\"家明\",\"俊杰\",\"俊熙\",\"沐宸\",\"浩宇\",\"浩然\",\"浩轩\",\"浩晨\",\"沐辰\",\"茗泽\",\"奕辰\",\"奕泽\",\"宇泽\",\"宇轩\",\"宇航\",\"沐阳\",\"梓诚\",\"梓豪\",\"梓睿\",\"梓浩\",\"浩辰\",\"癸霖\",\"一全\",\"三锋\",\"义轩\",\"俊凯\",\"子豪\",\"振东\",\"智杰\",\"哲新\",\"文昊\",\"中海\",\"超栋\",\"治涛\",\"治文\",\"文韬\",\"敬彪\",\"敬阳\",\"政君\",\"立伟\",\"呈轩\"],jXe=null,zXe=[{value:\"{{person.lastName}}{{person.firstName}}\",weight:1}],HXe=null,VXe={bio_part:kXe,bio_pattern:RXe,bio_supporter:MXe,female_first_name:PXe,female_prefix:OXe,first_name:BXe,last_name:NXe,last_name_pattern:$Xe,male_first_name:LXe,male_prefix:jXe,name:zXe,prefix:HXe},WXe=VXe,GXe=[\"0##-########\",\"0###-########\",\"1##########\"],UXe={formats:GXe},KXe=UXe,YXe=Object.freeze([{symbol:\"H\",name:\"氢\",atomicNumber:1},{symbol:\"He\",name:\"氦\",atomicNumber:2},{symbol:\"Li\",name:\"锂\",atomicNumber:3},{symbol:\"Be\",name:\"铍\",atomicNumber:4},{symbol:\"B\",name:\"硼\",atomicNumber:5},{symbol:\"C\",name:\"碳\",atomicNumber:6},{symbol:\"N\",name:\"氮\",atomicNumber:7},{symbol:\"O\",name:\"氧\",atomicNumber:8},{symbol:\"F\",name:\"氟\",atomicNumber:9},{symbol:\"Ne\",name:\"氖\",atomicNumber:10},{symbol:\"Na\",name:\"钠\",atomicNumber:11},{symbol:\"Mg\",name:\"镁\",atomicNumber:12},{symbol:\"Al\",name:\"铝\",atomicNumber:13},{symbol:\"Si\",name:\"硅\",atomicNumber:14},{symbol:\"P\",name:\"磷\",atomicNumber:15},{symbol:\"S\",name:\"硫\",atomicNumber:16},{symbol:\"Cl\",name:\"氯\",atomicNumber:17},{symbol:\"Ar\",name:\"氩\",atomicNumber:18},{symbol:\"K\",name:\"钾\",atomicNumber:19},{symbol:\"Ca\",name:\"钙\",atomicNumber:20},{symbol:\"Sc\",name:\"钪\",atomicNumber:21},{symbol:\"Ti\",name:\"钛\",atomicNumber:22},{symbol:\"V\",name:\"钒\",atomicNumber:23},{symbol:\"Cr\",name:\"铬\",atomicNumber:24},{symbol:\"Mn\",name:\"锰\",atomicNumber:25},{symbol:\"Fe\",name:\"铁\",atomicNumber:26},{symbol:\"Co\",name:\"钴\",atomicNumber:27},{symbol:\"Ni\",name:\"镍\",atomicNumber:28},{symbol:\"Cu\",name:\"铜\",atomicNumber:29},{symbol:\"Zn\",name:\"锌\",atomicNumber:30},{symbol:\"Ga\",name:\"镓\",atomicNumber:31},{symbol:\"Ge\",name:\"锗\",atomicNumber:32},{symbol:\"As\",name:\"砷\",atomicNumber:33},{symbol:\"Se\",name:\"硒\",atomicNumber:34},{symbol:\"Br\",name:\"溴\",atomicNumber:35},{symbol:\"Kr\",name:\"氪\",atomicNumber:36},{symbol:\"Rb\",name:\"铷\",atomicNumber:37},{symbol:\"Sr\",name:\"锶\",atomicNumber:38},{symbol:\"Y\",name:\"钇\",atomicNumber:39},{symbol:\"Zr\",name:\"锆\",atomicNumber:40},{symbol:\"Nb\",name:\"铌\",atomicNumber:41},{symbol:\"Mo\",name:\"钼\",atomicNumber:42},{symbol:\"Tc\",name:\"Technetium\",atomicNumber:43},{symbol:\"Ru\",name:\"锝\",atomicNumber:44},{symbol:\"Rh\",name:\"锝\",atomicNumber:45},{symbol:\"Pd\",name:\"钯\",atomicNumber:46},{symbol:\"Ag\",name:\"银\",atomicNumber:47},{symbol:\"Cd\",name:\"镉\",atomicNumber:48},{symbol:\"In\",name:\"铟\",atomicNumber:49},{symbol:\"Sn\",name:\"锡\",atomicNumber:50},{symbol:\"Sb\",name:\"锑\",atomicNumber:51},{symbol:\"Te\",name:\"碲\",atomicNumber:52},{symbol:\"I\",name:\"碘\",atomicNumber:53},{symbol:\"Xe\",name:\"氙\",atomicNumber:54},{symbol:\"Cs\",name:\"铯\",atomicNumber:55},{symbol:\"Ba\",name:\"钡\",atomicNumber:56},{symbol:\"La\",name:\"镧\",atomicNumber:57},{symbol:\"Ce\",name:\"铈\",atomicNumber:58},{symbol:\"Pr\",name:\"镨\",atomicNumber:59},{symbol:\"Nd\",name:\"钕\",atomicNumber:60},{symbol:\"Pm\",name:\"钷\",atomicNumber:61},{symbol:\"Sm\",name:\"钐\",atomicNumber:62},{symbol:\"Eu\",name:\"铕\",atomicNumber:63},{symbol:\"Gd\",name:\"钆\",atomicNumber:64},{symbol:\"Tb\",name:\"铽\",atomicNumber:65},{symbol:\"Dy\",name:\"钬\",atomicNumber:66},{symbol:\"Ho\",name:\"钬\",atomicNumber:67},{symbol:\"Er\",name:\"铥\",atomicNumber:68},{symbol:\"Tm\",name:\"铥\",atomicNumber:69},{symbol:\"Yb\",name:\"镱\",atomicNumber:70},{symbol:\"Lu\",name:\"镥\",atomicNumber:71},{symbol:\"Hf\",name:\"铪\",atomicNumber:72},{symbol:\"Ta\",name:\"钽\",atomicNumber:73},{symbol:\"W\",name:\"钨\",atomicNumber:74},{symbol:\"Re\",name:\"铼\",atomicNumber:75},{symbol:\"Os\",name:\"锇\",atomicNumber:76},{symbol:\"Ir\",name:\"铱\",atomicNumber:77},{symbol:\"Pt\",name:\"铂\",atomicNumber:78},{symbol:\"Au\",name:\"金\",atomicNumber:79},{symbol:\"Hg\",name:\"汞\",atomicNumber:80},{symbol:\"Tl\",name:\"铊\",atomicNumber:81},{symbol:\"Pb\",name:\"铅\",atomicNumber:82},{symbol:\"Bi\",name:\"铋\",atomicNumber:83},{symbol:\"Po\",name:\"钋\",atomicNumber:84},{symbol:\"At\",name:\"砹\",atomicNumber:85},{symbol:\"Rn\",name:\"氡\",atomicNumber:86},{symbol:\"Fr\",name:\"钫\",atomicNumber:87},{symbol:\"Ra\",name:\"镭\",atomicNumber:88},{symbol:\"Ac\",name:\"锕\",atomicNumber:89},{symbol:\"Th\",name:\"钍\",atomicNumber:90},{symbol:\"Pa\",name:\"镎\",atomicNumber:91},{symbol:\"U\",name:\"镎\",atomicNumber:92},{symbol:\"Np\",name:\"镎\",atomicNumber:93},{symbol:\"Pu\",name:\"钚\",atomicNumber:94},{symbol:\"Am\",name:\"镅\",atomicNumber:95},{symbol:\"Cm\",name:\"锔\",atomicNumber:96},{symbol:\"Bk\",name:\"锫\",atomicNumber:97},{symbol:\"Cf\",name:\"锎\",atomicNumber:98},{symbol:\"Es\",name:\"锿\",atomicNumber:99},{symbol:\"Fm\",name:\"镄\",atomicNumber:100},{symbol:\"Md\",name:\"钔\",atomicNumber:101},{symbol:\"No\",name:\"锘\",atomicNumber:102},{symbol:\"Lr\",name:\"铹\",atomicNumber:103},{symbol:\"Rf\",name:\"𬬻\",atomicNumber:104},{symbol:\"Db\",name:\"𬭊\",atomicNumber:105},{symbol:\"Sg\",name:\"𬭳\",atomicNumber:106},{symbol:\"Bh\",name:\"𬭛\",atomicNumber:107},{symbol:\"Hs\",name:\"𬭶\",atomicNumber:108},{symbol:\"Mt\",name:\"鿏\",atomicNumber:109},{symbol:\"Ds\",name:\"𫟼\",atomicNumber:110},{symbol:\"Rg\",name:\"𬬭\",atomicNumber:111},{symbol:\"Cn\",name:\"鿔\",atomicNumber:112},{symbol:\"Nh\",name:\"鿭\",atomicNumber:113},{symbol:\"Fl\",name:\"𫓧\",atomicNumber:114},{symbol:\"Mc\",name:\"镆\",atomicNumber:115},{symbol:\"Lv\",name:\"𫟷\",atomicNumber:116},{symbol:\"Ts\",name:\"钿\",atomicNumber:117},{symbol:\"Og\",name:\"鿫\",atomicNumber:118}]),qXe=Object.freeze([{name:\"米\",symbol:\"m\"},{name:\"秒\",symbol:\"s\"},{name:\"摩尔\",symbol:\"mol\"},{name:\"安培\",symbol:\"A\"},{name:\"开尔文\",symbol:\"K\"},{name:\"坎德拉\",symbol:\"cd\"},{name:\"千克\",symbol:\"kg\"},{name:\"弧度\",symbol:\"rad\"},{name:\"赫兹\",symbol:\"Hz\"},{name:\"牛顿\",symbol:\"N\"},{name:\"帕斯卡\",symbol:\"Pa\"},{name:\"焦耳\",symbol:\"J\"},{name:\"瓦特\",symbol:\"W\"},{name:\"库伦\",symbol:\"C\"},{name:\"伏特\",symbol:\"V\"},{name:\"欧姆\",symbol:\"Ω\"},{name:\"特斯拉\",symbol:\"T\"},{name:\"摄氏度\",symbol:\"°C\"},{name:\"流明\",symbol:\"lm\"},{name:\"贝尔勒尔\",symbol:\"Bq\"},{name:\"戈瑞\",symbol:\"Gy\"},{name:\"希沃特\",symbol:\"Sv\"},{name:\"球面度\",symbol:\"sr\"},{name:\"法拉\",symbol:\"F\"},{name:\"西门子\",symbol:\"S\"},{name:\"韦伯\",symbol:\"Wb\"},{name:\"亨利\",symbol:\"H\"},{name:\"勒克斯\",symbol:\"lx\"},{name:\"开特\",symbol:\"kat\"}]),XXe={chemicalElement:YXe,unit:qXe},JXe=XXe,ZXe=[\"冒险公路自行车\",\"小轮车自行车\",\"城市自行车\",\"巡洋舰自行车\",\"越野自行车\",\"双运动自行车\",\"健身自行车\",\"平足舒适自行车\",\"折叠自行车\",\"混合动力自行车\",\"山地自行车\",\"卧式自行车\",\"公路自行车\",\"双人自行车\",\"旅行自行车\",\"场地/固定齿轮自行车\",\"铁人三项/计时自行车\",\"三轮车\"],QXe=[\"柴油\",\"电动\",\"汽油\",\"混合动力\"],eJe=[\"阿斯顿·马丁\",\"奥迪\",\"宾利\",\"宝马\",\"布加迪\",\"卡迪拉克\",\"雪佛兰\",\"克莱斯勒\",\"躲闪\",\"法拉利\",\"菲亚特\",\"福特\",\"本田\",\"现代\",\"捷豹\",\"吉普车\",\"起亚\",\"兰博基尼\",\"路虎\",\"玛莎拉蒂\",\"马自达\",\"奔驰\",\"小型的\",\"日产\",\"极星\",\"保时捷\",\"劳斯莱斯\",\"聪明的\",\"特斯拉\",\"丰田\",\"大众汽车\",\"沃尔沃\"],tJe=[\"货车\",\"掀背车\",\"面包车\",\"客车\",\"越野车\",\"轿车\",\"旅行车\"],rJe={bicycle_type:ZXe,fuel:QXe,manufacturer:eJe,type:tJe},nJe=rJe,aJe=[\"长\",\"短\",\"大\",\"小\",\"粗\",\"细\",\"红\",\"绿\",\"平坦\",\"整齐\",\"雪白\",\"笔直\",\"绿油油\",\"血淋淋\",\"骨碌碌\",\"黑不溜秋\",\"好\",\"坏\",\"伟大\",\"勇敢\",\"优秀\",\"聪明\",\"老实\",\"鲁莽\",\"大方\",\"软\",\"硬\",\"苦\",\"甜\",\"冷\",\"热\",\"坚固\",\"平常\",\"快\",\"慢\",\"生动\",\"熟练\",\"轻松\",\"清楚\",\"马虎\",\"干脆\",\"许多\",\"好些\",\"全部\",\"全\",\"整\",\"多\",\"少\"],iJe=[\"都\",\"全\",\"单\",\"共\",\"光\",\"尽\",\"净\",\"仅\",\"就\",\"只\",\"一共\",\"一起\",\"一同\",\"一道\",\"一齐\",\"一概\",\"一味\",\"统统\",\"总共\",\"仅仅\",\"惟独\",\"可\",\"倒\",\"一定\",\"必定\",\"必然\",\"却\",\"幸亏\",\"难道\",\"何尝\",\"偏偏\",\"索性\",\"简直\",\"反正\",\"多亏\",\"也许\",\"大约\",\"好在\",\"敢情\",\"不\",\"没\",\"没有\",\"别\",\"仿佛\",\"渐渐\",\"百般\",\"特地\",\"互相\",\"擅自\",\"几乎\",\"逐渐\",\"逐步\",\"猛然\",\"依然\",\"仍然\",\"当然\",\"毅然\",\"果然\",\"差点儿\",\"很\",\"极\",\"最\",\"太\",\"更\",\"更加\",\"格外\",\"十分\",\"极其\",\"比较\",\"相当\",\"稍微\",\"略微\",\"多么\"],oJe=[\"打\",\"吃\",\"抿\",\"做\",\"坐\",\"跑\",\"跳\",\"走\",\"飞\",\"爬\",\"开\",\"滑\",\"切\",\"拆\",\"咬\",\"吞\",\"吐\",\"吮\",\"吸\",\"啃\",\"喝\",\"咀\",\"嚼\",\"搀\",\"抱\",\"搂\",\"扶\",\"捉\",\"擒\",\"掐\",\"推\",\"拿\",\"抽\",\"撕\",\"摘\",\"拣\",\"捡\",\"播\",\"击\",\"捏\",\"撒\",\"按\",\"弹\",\"撞\",\"提\",\"扭\",\"捶\",\"持\",\"揍\",\"披\",\"捣\",\"搜\",\"托\",\"举\",\"拖\",\"擦\",\"敲\",\"挖\",\"抛\",\"掘\",\"抬\",\"插\",\"扔\",\"写\",\"抄\",\"抓\",\"捧\",\"掷\",\"撑\",\"摊\",\"倒\",\"摔\",\"劈\",\"画\",\"搔\",\"撬\",\"挥\",\"揽\",\"挡\",\"捺\",\"抚\",\"搡\",\"拉\",\"摸\",\"拍\",\"摇\",\"剪\",\"拎\",\"拔\",\"拧\",\"拨\",\"舞\",\"握\",\"攥\",\"驾驶\",\"移动\",\"转动\",\"操作\",\"蠕动\",\"启动\",\"关闭\"],lJe={adjective:aJe,adverb:iJe,verb:oJe},sJe=lJe,uJe={airline:yqe,animal:Dqe,color:Tqe,commerce:Pqe,company:Lqe,database:Hqe,date:Uqe,finance:rXe,hacker:sXe,internet:dXe,location:wXe,metadata:DXe,music:IXe,person:WXe,phone_number:KXe,science:JXe,vehicle:nJe,word:sJe},cJe=uJe,G=new jYe({locale:[cJe,DKe,hqe]}),rc=(e=>(e.A=\"A\",e.B=\"B\",e.C=\"C\",e))(rc||{}),kn=(e=>(e.None=\"none\",e.Low=\"low\",e.Medium=\"medium\",e.High=\"high\",e.Critical=\"critical\",e))(kn||{}),nc=(e=>(e.Strong=\"strong\",e.Weak=\"weak\",e))(nc||{}),Ln=(e=>(e.IM=\"IM\",e.EDM=\"EDM\",e.APP=\"APP\",e.TEL=\"TEL\",e.KOC=\"KOC\",e.KOL=\"KOL\",e))(Ln||{}),xi=(e=>(e.Pending=\"pending\",e.Assigned=\"assigned\",e.InProgress=\"in_progress\",e.Resolved=\"resolved\",e.Closed=\"closed\",e.Reopened=\"reopened\",e))(xi||{}),Mv=(e=>(e.Pending=\"pending\",e.InProgress=\"in_progress\",e.Submitted=\"submitted\",e.Approved=\"approved\",e.Rejected=\"rejected\",e))(Mv||{}),Si=(e=>(e.Review=\"review\",e.Reply=\"reply\",e.Free=\"free\",e))(Si||{}),uo=(e=>(e.Draft=\"draft\",e.PendingApproval=\"pending_approval\",e.Approved=\"approved\",e.InProgress=\"in_progress\",e.Completed=\"completed\",e.Cancelled=\"cancelled\",e.Rejected=\"rejected\",e))(uo||{}),Pv=(e=>(e.Pending=\"pending\",e.Confirmed=\"confirmed\",e.Declined=\"declined\",e.Expired=\"expired\",e.Cancelled=\"cancelled\",e))(Pv||{});function dJe(e){const t=[\"low\",\"medium\",\"high\",\"urgent\"],r=[\"draft\",\"submitted\",\"approved\",\"rejected\",\"in_progress\",\"completed\",\"cancelled\"],n=[\"电子产品\",\"家居\",\"美妆\",\"服饰\",\"食品\",\"图书\",\"运动\",\"玩具\"],a=[rc.A,rc.B,rc.C],i=[kn.None,kn.Low,kn.Medium,kn.High],o=G.number.int({min:5,max:30}),l=G.helpers.arrayElement(r),s=l===\"completed\"?o:G.number.int({min:0,max:o});return{id:G.string.uuid(),title:`${G.helpers.arrayElement(n)}评价需求 - ${G.commerce.productName()}`,description:G.lorem.paragraph(),asin:`B0${G.string.alphanumeric(8).toUpperCase()}`,productName:G.commerce.productName(),productCategory:G.helpers.arrayElement(n),userTier:G.helpers.arrayElement(a),riskLevel:G.helpers.arrayElement(i),targetReviewCount:o,currentReviewCount:s,deadline:G.date.soon({days:90}).toISOString(),priority:G.helpers.arrayElement(t),status:l,createdBy:G.string.uuid(),createdByName:G.person.fullName(),createdAt:G.date.recent({days:90}).toISOString(),updatedAt:G.date.recent({days:7}).toISOString(),tags:G.helpers.arrayElements([\"新品\",\"热销\",\"季节性\",\"高优先\",\"合规\"],{min:0,max:3}),attachments:[],remark:G.lorem.sentence(),...e}}function fJe(e=35){return Array.from({length:e},()=>dJe())}const es=fJe();function hJe(e){const t=[Si.Review,Si.Reply,Si.Free],r=[uo.Draft,uo.PendingApproval,uo.Approved,uo.InProgress,uo.Completed,uo.Cancelled,uo.Rejected],n=[rc.A,rc.B,rc.C],a=G.helpers.arrayElement(es),i=G.number.int({min:5,max:30}),o=G.helpers.arrayElement(r),l=o===uo.Completed?i:G.number.int({min:0,max:i});return{id:`RP${G.number.int({min:1,max:9999}).toString().padStart(4,\"0\")}`,requirementId:a.id,requirementTitle:a.title,type:G.helpers.arrayElement(t),status:o,userTier:G.helpers.arrayElement(n),targetCount:i,completedCount:l,deadline:G.date.soon({days:60}).toISOString(),createdBy:G.string.uuid(),createdByName:G.person.fullName(),createdAt:G.date.recent({days:60}).toISOString(),updatedAt:G.date.recent({days:7}).toISOString(),...e}}function pJe(){return{monthlyReview:G.number.int({min:0,max:4}),maxMonthlyReview:4,monthlyFree:G.number.int({min:0,max:4}),maxMonthlyFree:4,totalReview:G.number.int({min:0,max:12}),maxTotalReview:12}}function mJe(e){const t=[Ln.IM,Ln.EDM,Ln.APP,Ln.TEL],r=[\"pending\",\"accepted\",\"declined\",\"completed\",\"expired\"],n=Array.from({length:G.number.int({min:3,max:8})},()=>({id:G.string.uuid(),reviewerId:G.string.uuid(),reviewerName:G.person.fullName(),channel:G.helpers.arrayElement(t),assignedAt:G.date.recent({days:14}).toISOString(),status:G.helpers.arrayElement(r),completedAt:G.date.recent({days:3}).toISOString(),remark:G.lorem.sentence()})),a=Array.from({length:G.number.int({min:1,max:4})},()=>{const l=G.number.int({min:10,max:100}),s=G.number.int({min:Math.floor(l*.6),max:l});return{id:G.string.uuid(),channel:G.helpers.arrayElement(t),pushTime:G.date.recent({days:7}).toISOString(),targetCount:l,successCount:s,failCount:l-s,status:G.helpers.arrayElement([\"pending\",\"sending\",\"completed\",\"failed\"])}}),i=Array.from({length:G.number.int({min:2,max:6})},()=>({id:G.string.uuid(),reviewerId:G.string.uuid(),reviewerName:G.person.fullName(),action:G.helpers.arrayElement([\"接受任务\",\"提交评价\",\"拒绝任务\",\"补充材料\"]),timestamp:G.date.recent({days:7}).toISOString(),detail:G.lorem.sentence()})),o=Array.from({length:G.number.int({min:2,max:8})},()=>({id:G.string.uuid(),operatorId:G.string.uuid(),operatorName:G.person.fullName(),action:G.helpers.arrayElement([\"创建计划\",\"分配评审人\",\"提交审批\",\"审批通过\",\"开始执行\",\"完成计划\"]),target:e.requirementTitle,timestamp:G.date.recent({days:14}).toISOString(),detail:G.lorem.sentence()}));return{...e,description:G.lorem.paragraph(),assignments:n,quotaUsage:pJe(),channelPushRecords:a,reviewTracks:i,operationLogs:o,remark:G.lorem.sentence(),attachments:[]}}const gF=Array.from({length:35},()=>hJe()),vJe=[\"加特林/Gatling\",\"自由人/Viele 3\",\"魔杖/Magic Wand\",\"蝴蝶/Butterfly\",\"猎豹/Cheetah\",\"极光/Aurora\",\"烈焰/Blaze\",\"海豚/Dolphin\",\"天鹅/Swan\",\"飞马/Pegasus\",\"雄狮/Lion\",\"凤凰/Phoenix\"],gJe=[\"US\",\"DE\",\"UK\",\"JP\",\"FR\",\"IT\",\"ES\",\"CA\"],yJe=[\"EDM\",\"IM\",\"PHONE\",\"KOC\",\"KOL\"],bJe=[\"小张\",\"小王\",\"小李\",\"小赵\",\"小刘\",\"小陈\"],xJe=[\"add_review\",\"boost_sales\",\"pull_ranking\",\"new_launch\",\"maintain\",\"revive\"],CJe=[\"not_saleable\",\"normal\",\"image_abnormal\"],FJe=[\"in_progress\",\"not_started\",\"paused\",\"normal_promotion\",\"small_scale\",\"needs_optimization\",\"paused_promotion\",\"new_pending\",\"listing_optimization\",\"image_optimization\",\"title_bullets_optimization\",\"a_plus_optimization\",\"keyword_optimization\",\"under_review\",\"category_abnormal\",\"variant_abnormal\",\"delisted\"],SJe=[\"sufficient\",\"below_safety\",\"tight\",\"almost_out\",\"out_of_stock\",\"restocking\"],wJe=[\"rating\",\"image\",\"video\"],EJe=[\"review\",\"free_review\"],sG={US:[`P0:pocket puss\nP1:sex toy\nP2:male masturbator`,`P0:wand massager\nP1:personal massager\nP2:body massager`,`P0:couples toy\nP1:intimacy device\nP2:relationship enhancer`],DE:[`P0:dildo\nP1:sex spielzeug für die paare\nP2:sex spielzeug für die frau`,`P0:massagegerät\nP1:körpermassage\nP2:entspannung`],UK:[`P0:rabbit vibrator\nP1:adult toy\nP2:couples toy`,`P0:kegel balls\nP1:pelvic floor\nP2:intimate health`]};function ice(e){const t=G.helpers.arrayElement(gJe),r=G.helpers.arrayElement(vJe),n=G.helpers.arrayElement(xJe),a=G.helpers.arrayElement(CJe),i=G.helpers.arrayElement(FJe),o=G.helpers.arrayElement(SJe),l=G.helpers.arrayElement(wJe),s=G.helpers.arrayElement(EJe),u=G.number.int({min:1,max:3}),c=G.number.int({min:20,max:80}),d=G.number.int({min:0,max:c}),f=c>0?Math.round(d/c*100)/100:0,h=G.number.int({min:10,max:Math.min(40,c)}),p=G.number.int({min:0,max:h}),v=h>0?Math.round(p/h*100)/100:0,g=parseFloat(G.number.float({min:3.5,max:5,fractionDigits:1}).toFixed(1)),y=sG[t]?G.helpers.arrayElement(sG[t]):`P0:product\nP1:best product\nP2:top rated`,b=[\"可用*USC01\",\"可用*DE3\",\"可用*UK5\",\"可用*JP2\"],x=[\"AM-Y156-US / Gz6811ha\",\"AM-G276-DE / Weiweidianzi\",\"AM-T489-UK / BestStore\",\"AM-K102-JP / TokyoShop\"],F=G.date.past({years:1}),S=G.date.future({years:1,refDate:F}),E=`${F.getFullYear()}/${String(F.getMonth()+1).padStart(2,\"0\")}/${String(F.getDate()).padStart(2,\"0\")}${S.getFullYear()}/${String(S.getMonth()+1).padStart(2,\"0\")}/${String(S.getDate()).padStart(2,\"0\")}`,w=[\"差评风险\",\"绩效风险\",\"退款异常\",\"变体风险\",\"\",\"\",\"\",\"\"];return{id:G.string.uuid(),requirementId:`C${G.number.int({min:1e4,max:99999})}`,productName:r,productImage:`https://m.media-amazon.com/images/I/${G.string.alphanumeric({length:11}).toUpperCase()}.${G.helpers.arrayElement([\"jpg\",\"png\"])}`,promotionGoal:n,listingStatus:a,targetAudience:G.helpers.arrayElements([\"男\",\"女\",\"LGBT\",\"情侣\"],{min:1,max:2}).join(\",\"),promotionStatus:i,promotionLevel:u,storeInfo:`${G.helpers.arrayElement(b)}*${G.helpers.arrayElement(x)}`,asin:`B0${G.string.alphanumeric({length:8}).toUpperCase()}`,site:t,channels:G.helpers.arrayElements(yJe,{min:1,max:3}),keywords:y,keywordLink:`https://www.amazon.${t.toLowerCase()===\"us\"?\"com\":t.toLowerCase()}/s?k=${encodeURIComponent(r.split(\"/\")[1]||r)}`,promotionType:s,planPeriod:E,targetCount:c,completedCount:d,completionRate:f,currentRating:g,reviewType:l,targetReviewCount:h,completedReviewCount:p,reviewCompletionRate:v,inventoryStatus:o,riskNote:G.helpers.arrayElement(w),assignee:G.helpers.arrayElement(bJe),updatedAt:G.date.recent({days:7}).toISOString(),disabledAt:G.date.soon({days:30}).toISOString(),createdAt:G.date.recent({days:60}).toISOString(),...e}}const uG=Array.from({length:50},(e,t)=>ice({id:`RP${String(t+1).padStart(4,\"0\")}`})),DJe=[\"manual\",\"routine\",\"downgrade\",\"upgrade\"],AJe=[\"stable\",\"bad_review\",\"sprint\",\"new_launch\",\"revive\"],_Je=[\"S\",\"A\",\"B\",\"C\"],TJe=[\"in_progress\",\"pending\",\"paused\",\"completed\",\"cancelled\"],IJe=[\"rating\",\"image\",\"video\",\"image_and_video\"],kJe=[\"US\",\"UK\",\"DE\",\"FR\",\"IT\",\"ES\",\"JP\",\"CA\"],RJe=[\"阿萝拉二代\",\"黑武士三代\",\"牡丹\",\"加特林\",\"自由人\",\"魔杖\",\"蝴蝶\",\"猎豹\",\"极光\",\"烈焰\",\"海豚\",\"旋风\",\"天狼\",\"凤凰\",\"雷霆\",\"冰魄\",\"幻影\",\"银河\",\"星辰\",\"曙光\"],MJe=[\"IM\",\"EDM\",\"Phone\",\"KOC\",\"KOL\"],S5=[\"小张\",\"小王\",\"小李\",\"小赵\",\"小刘\",\"小陈\"],PJe=[\"掉评高\",\"掉评中\",\"掉评低\",\"稳定\",\"待观察\",\"\"];function OJe(e){const t=G.helpers.arrayElement(kJe),r=G.helpers.arrayElement(_Je),n=G.helpers.maybe(()=>\"in_progress\",{probability:.4})||G.helpers.arrayElement(TJe),a=G.helpers.arrayElement(AJe),i=G.helpers.arrayElement(IJe),o=G.number.int({min:1,max:50}),l=G.number.int({min:0,max:o}),s=o-l,u=parseFloat(G.number.float({min:3,max:5,fractionDigits:1}).toFixed(1)),c=parseFloat(G.number.float({min:3,max:5,fractionDigits:1}).toFixed(1)),d=c>u+.1?\"up\":c<u-.1?\"down\":\"stable\",f=G.number.int({min:0,max:500}),h=f+G.number.int({min:0,max:50}),p=`B0${G.string.alphanumeric({length:8,casing:\"upper\"})}`,v=G.helpers.maybe(()=>`${G.number.int({min:10,max:200})}$`,{probability:.4})||\"\";return{id:G.string.uuid(),requirementId:`H${G.number.int({min:1e4,max:99999})}`,productName:G.helpers.arrayElement(RJe),site:t,source:G.helpers.arrayElement(DJe),requester:G.helpers.arrayElement(S5),reviewer:G.helpers.arrayElement(S5),productPhase:a,channels:G.helpers.arrayElements(MJe,{min:1,max:3}),priority:r,status:n,asin:p,keywordLink:`https://www.amazon.com/s?k=${G.word.adjective()}+${G.word.noun()}&asin=${p}`,additionalBudget:v,rating4WeekAgo:u,rating1WeekAgo:c,ratingTrend:d,reviewType:i,dailyTargetCount:o,completedCount:l,incompleteCount:s,reviewCountAtStart:f,reviewCountAtEnd:h,salesLast30Days:G.number.int({min:10,max:2e3}),newGoodReviews1Week:G.number.int({min:0,max:30}),newBadReviews1Week:G.number.int({min:0,max:5}),droppedReviews1Month:G.number.int({min:0,max:10}),droppedReviews1Week:G.number.int({min:0,max:3}),dropReviewTag:G.helpers.arrayElement(PJe),assignee:G.helpers.arrayElement(S5),planDate:G.date.recent({days:90}).toISOString().slice(0,10),notes:G.helpers.maybe(()=>G.lorem.sentence(),{probability:.4})||\"\",createdAt:G.date.recent({days:180}).toISOString(),updatedAt:G.date.recent({days:7}).toISOString(),...e}}const w5=Array.from({length:50},()=>OJe()),BJe=[{id:\"1\",name:\"男\",color:\"#1890ff\"},{id:\"2\",name:\"女\",color:\"#eb2f96\"},{id:\"3\",name:\"LGBTQ\",color:\"#722ed1\"},{id:\"4\",name:\"飞机杯\",color:\"#fa8c16\"},{id:\"5\",name:\"玫瑰花\",color:\"#f5222d\"},{id:\"6\",name:\"倒模\",color:\"#13c2c2\"},{id:\"7\",name:\"老客\",color:\"#52c41a\"},{id:\"8\",name:\"新客\",color:\"#2f54eb\"},{id:\"9\",name:\"高质量买家\",color:\"#faad14\"},{id:\"10\",name:\"风险买家\",color:\"#ff4d4f\"},{id:\"11\",name:\"免评专用\",color:\"#9254de\"},{id:\"12\",name:\"可测评\",color:\"#73d13d\"}],NJe=[\"US\",\"UK\",\"DE\",\"FR\",\"IT\",\"ES\",\"JP\",\"CA\"],$Je=[\"normal\",\"blacklisted\",\"inactive\",\"pending\"],LJe=[\"cooperative\",\"no_quota\",\"blacklisted\",\"paused\",\"pending_review\"],jJe=[\"cashapp\",\"paypal\",\"venmo\",\"zelle\",\"bank_transfer\",\"gift_card\"],cG=[\"黑武士三代\",\"牡丹\",\"加特林\",\"自由人\",\"魔杖\",\"蝴蝶\",\"猎豹\",\"极光\",\"烈焰\",\"海豚\"];function zJe(e){const t=G.helpers.arrayElement(NJe),r=G.helpers.maybe(()=>\"normal\",{probability:.7})||G.helpers.arrayElement($Je),n=G.helpers.arrayElement(LJe),a=G.number.int({min:0,max:50}),i=G.number.int({min:0,max:30}),o=G.number.int({min:0,max:a}),l=G.number.int({min:0,max:Math.max(a-o,0)}),s=a+i+l,u=G.number.int({min:Math.floor(s*.5),max:s}),c=s>0?parseFloat((u/s).toFixed(4)):0,d=G.number.int({min:Math.floor(o*.6),max:o}),f=o>0?parseFloat((d/o).toFixed(4)):0,h=G.number.int({min:0,max:Math.max(Math.floor(o*.2),0)}),p=o>0?parseFloat((h/o).toFixed(4)):0,v=G.number.int({min:0,max:3}),g=G.number.int({min:0,max:2}),y=G.datatype.boolean({probability:.08}),b=G.number.int({min:0,max:8}),x=G.number.int({min:0,max:4}),F=G.number.int({min:0,max:6}),S=G.helpers.arrayElement(jJe),E=Array.from({length:G.number.int({min:2,max:10})},()=>({id:G.string.uuid(),orderNo:`${G.number.int({min:100,max:999})}-${G.string.numeric(7)}-${G.number.int({min:1e6,max:9999999})}`,storeName:G.helpers.arrayElement([\"AM-Y156-US\",\"AM-G276-DE\",\"AM-T489-UK\",\"AM-K102-JP\"]),productName:G.helpers.arrayElement(cG),orderType:G.helpers.arrayElement([\"测评\",\"免评\",\"回评\"]),orderStatus:G.helpers.arrayElement([\"待发货\",\"已发货\",\"已送达\",\"已完成\",\"已取消\",\"已退款\"]),promotionStatus:G.helpers.arrayElement([\"待执行\",\"进行中\",\"已完成\",\"已取消\"]),orderDate:G.date.recent({days:90}).toISOString()}));return{id:G.string.uuid(),code:`CP${G.string.numeric(6)}`,relatedCode:G.helpers.maybe(()=>`CP${G.string.numeric(6)}`,{probability:.3})||\"-\",joyhubId:G.number.int({min:1e7,max:99999999}),email:G.internet.email().toLowerCase(),phone:`(${G.number.int({min:200,max:999})}) ${G.number.int({min:200,max:999})}-${G.string.numeric(4)}`,username:G.internet.userName(),tags:G.helpers.arrayElements(BJe,{min:1,max:4}),channels:G.helpers.arrayElements([Ln.IM,Ln.EDM,Ln.TEL],{min:1,max:2}),profileLink:G.helpers.maybe(()=>`https://www.amazon.com/gp/profile/amzn1.account.${G.string.alphanumeric(12)}`,{probability:.7})||\"\",profileName:G.helpers.maybe(()=>G.internet.userName(),{probability:.6})||\"\",country:t,status:r,linkedProducts:G.helpers.arrayElements(cG,{min:1,max:4}),replyOrderCount:G.number.int({min:0,max:20}),availableReviewCount:b,availableFreeCount:x,availableUploadCount:F,totalReviewCount:a,totalFreeCount:i,totalBoundReviewCount:o,totalPendingReplyCount:l,orderCompletionRate:c,orderReviewRate:f,totalDroppedReviewCount:h,droppedReviewRate:p,refundOrderCount:v,cancelOrderCount:g,isNegativeReview:y,cooperationStatus:n,urgeReviewCount:G.number.int({min:0,max:10}),cooperationCount:G.number.int({min:0,max:50}),lastReplyAt:G.date.recent({days:14}).toISOString(),paymentMethod:S,paymentAccount:S===\"paypal\"?G.internet.email().toLowerCase():S===\"cashapp\"?`$${G.internet.userName()}`:G.string.numeric(8),linkedAccount:G.helpers.maybe(()=>G.internet.email().toLowerCase(),{probability:.6})||\"\",notes:G.helpers.maybe(()=>G.lorem.sentence(),{probability:.3})||\"\",createdAt:G.date.recent({days:180}).toISOString(),updatedAt:G.date.recent({days:7}).toISOString(),createdBy:G.helpers.arrayElement([\"小王\",\"小李\",\"小张\",\"小赵\",\"小刘\"]),orderDetails:E,...e}}function HJe(e){const t=Array.from({length:G.number.int({min:3,max:10})},()=>({id:G.string.uuid(),type:G.helpers.arrayElement([\"review\",\"free\"]),change:G.number.int({min:-1,max:1}),balance:G.number.int({min:0,max:4}),reason:G.helpers.arrayElement([\"评价完成\",\"计划取消\",\"月度重置\",\"管理员调整\"]),timestamp:G.date.recent({days:30}).toISOString(),operatorId:G.string.uuid()})),r=Array.from({length:G.number.int({min:2,max:8})},()=>({id:G.string.uuid(),channel:G.helpers.arrayElement([Ln.IM,Ln.EDM,Ln.TEL]),content:G.lorem.sentence(),direction:G.helpers.arrayElement([\"inbound\",\"outbound\"]),timestamp:G.date.recent({days:14}).toISOString(),operatorId:G.string.uuid(),operatorName:G.person.fullName()})),n=Array.from({length:G.number.int({min:0,max:3})},()=>({id:G.string.uuid(),riskLevel:G.helpers.arrayElement([kn.Low,kn.Medium,kn.High]),association:G.helpers.arrayElement([nc.Strong,nc.Weak]),eventType:G.helpers.arrayElement([\"refund_fraud\",\"fake_review\",\"policy_violation\",\"other\"]),description:G.lorem.sentence(),timestamp:G.date.recent({days:60}).toISOString(),resolved:G.datatype.boolean()}));return{...e,quotaLedger:t,contacts:r,riskRecords:n}}const E5=Array.from({length:55},()=>zJe());function VJe(e){const t=[xi.Pending,xi.Assigned,xi.InProgress,xi.Resolved,xi.Closed,xi.Reopened],r=[\"low\",\"medium\",\"high\",\"urgent\"],n=[\"评价问题\",\"订单咨询\",\"退款处理\",\"账号问题\",\"物流查询\",\"其他\"],a=[Pv.Pending,Pv.Confirmed,Pv.Declined,Pv.Expired,Pv.Cancelled],i=G.helpers.arrayElement(t),o=G.date.recent({days:30}).toISOString();return{id:G.string.uuid(),title:G.helpers.arrayElement(n)+\" - \"+G.lorem.sentence({min:3,max:6}),description:G.lorem.paragraph(),status:i,priority:G.helpers.arrayElement(r),category:G.helpers.arrayElement(n),subcategory:\"子分类\",reviewerId:G.string.uuid(),reviewerName:G.person.fullName(),assigneeId:G.datatype.boolean()?G.string.uuid():void 0,assigneeName:G.datatype.boolean()?G.person.fullName():void 0,promiseStatus:G.helpers.arrayElement(a),promiseDeadline:G.datatype.boolean()?G.date.soon({days:7}).toISOString():void 0,planId:G.datatype.boolean()?G.string.uuid():void 0,planType:G.datatype.boolean()?G.helpers.arrayElement([\"review\",\"reply\",\"free\"]):void 0,asin:G.datatype.boolean()?`B0${G.string.alphanumeric(8).toUpperCase()}`:void 0,productName:G.datatype.boolean()?G.commerce.productName():void 0,source:G.helpers.arrayElement([\"manual\",\"auto\",\"import\"]),tags:G.helpers.arrayElements([\"紧急\",\"待跟进\",\"VIP\",\"已回复\"],{min:0,max:2}),attachments:[],createdAt:o,updatedAt:G.date.recent({days:3}).toISOString(),resolvedAt:[xi.Resolved,xi.Closed].includes(i)?G.date.recent({days:1}).toISOString():void 0,closedAt:i===xi.Closed?G.date.recent({days:1}).toISOString():void 0,firstResponseAt:G.datatype.boolean()?G.date.between({from:o,to:new Date}).toISOString():void 0,satisfactionScore:[xi.Resolved,xi.Closed].includes(i)?G.number.int({min:1,max:5}):void 0,remark:G.lorem.sentence(),...e}}const Ac=Array.from({length:35},()=>VJe());function WJe(e=25){return Array.from({length:e},(t,r)=>({id:G.string.uuid(),reviewerId:G.string.uuid(),reviewerName:G.person.fullName(),reviewerAvatar:void 0,customerId:r<5?`20023543${r}`:void 0,lastMessage:G.lorem.sentence({min:3,max:8}),lastMessageTime:G.date.recent({days:1}).toISOString(),unreadCount:G.number.int({min:0,max:5}),status:G.helpers.arrayElement([\"active\",\"closed\",\"pending\"]),assigneeId:G.datatype.boolean()?G.string.uuid():void 0,assigneeName:G.datatype.boolean()?G.person.fullName():void 0,createdAt:G.date.recent({days:7}).toISOString()}))}function GJe(e,t=20){const r=[\"agent\",\"reviewer\",\"system\"];return Array.from({length:t},(n,a)=>{const i=G.helpers.arrayElement(r),o=G.helpers.weightedArrayElement([{weight:70,value:\"text\"},{weight:15,value:\"image\"},{weight:10,value:\"card\"},{weight:5,value:\"file\"}]);return{id:G.string.uuid(),conversationId:e,content:o===\"text\"?G.lorem.sentence():\"\",senderType:i,senderId:G.string.uuid(),senderName:i===\"system\"?\"系统\":G.person.fullName(),timestamp:G.date.recent({days:1}).toISOString(),type:o,read:a<t-3?!0:G.datatype.boolean()}})}function UJe(){return[{id:\"1\",title:\"问候语\",content:\"您好!感谢您的反馈,我们会尽快处理。\",category:\"常用\"},{id:\"2\",title:\"确认收货\",content:\"请确认您已收到商品并检查包装完整性。\",category:\"常用\"},{id:\"3\",title:\"评价指引\",content:\"请按照以下步骤完成评价1. 登录账号 2. 找到订单 3. 撰写评价\",category:\"评价\"},{id:\"4\",title:\"退款流程\",content:\"如需退款请在订单页面申请退款我们将在3-5个工作日内处理。\",category:\"退款\"},{id:\"5\",title:\"额度说明\",content:\"您的月度测评额度为4次月度免评额度为4次累计评价额度为12次。\",category:\"额度\"},{id:\"6\",title:\"等待处理\",content:\"您的问题已记录我们会在24小时内处理并回复您。\",category:\"常用\"},{id:\"7\",title:\"催评提醒\",content:\"温馨提示:您的评价任务即将到期,请尽快完成。\",category:\"评价\"},{id:\"8\",title:\"黑名单说明\",content:\"您已被列入黑名单,如有疑问请联系客服。\",category:\"风险\"}]}const KJe=WJe(),YJe=UJe();function qJe(e=20){const t=[Ln.IM,Ln.EDM,Ln.APP,Ln.TEL],r=[\"draft\",\"scheduled\",\"sending\",\"completed\",\"failed\",\"cancelled\"];return Array.from({length:e},()=>{const n=G.number.int({min:10,max:200}),a=G.number.int({min:Math.floor(n*.5),max:n});return{id:G.string.uuid(),planId:G.string.uuid(),planTitle:`计划 - ${G.commerce.productName()}`,channel:G.helpers.arrayElement(t),targetCount:n,successCount:a,failCount:n-a,status:G.helpers.arrayElement(r),scheduledAt:G.datatype.boolean()?G.date.soon({days:7}).toISOString():void 0,startedAt:G.datatype.boolean()?G.date.recent({days:3}).toISOString():void 0,completedAt:G.datatype.boolean()?G.date.recent({days:1}).toISOString():void 0,createdBy:G.string.uuid(),createdByName:G.person.fullName(),createdAt:G.date.recent({days:14}).toISOString(),updatedAt:G.date.recent({days:3}).toISOString(),content:G.lorem.sentence(),remark:G.lorem.sentence()}})}function XJe(){return[{id:\"1\",name:\"企业微信\",platform:\"wechat\",webhookUrl:\"https://qyapi.weixin.qq.com/cgi-bin/webhook/send\",appKey:\"ww-mock-key-001\",enabled:!0,dailyLimit:500,sentToday:G.number.int({min:50,max:400}),templateIds:[\"tpl_001\",\"tpl_002\"]},{id:\"2\",name:\"WhatsApp Business\",platform:\"whatsapp\",webhookUrl:\"https://api.whatsapp.com/v1/messages\",appKey:\"wa-mock-key-002\",enabled:!0,dailyLimit:300,sentToday:G.number.int({min:20,max:250}),templateIds:[\"tpl_003\"]}]}function JJe(){return[{id:\"1\",name:\"官方邮件\",senderEmail:\"noreply@user-review.com\",senderName:\"USER评价系统\",replyTo:\"support@user-review.com\",smtpHost:\"smtp.user-review.com\",smtpPort:587,enabled:!0,dailyLimit:1e3,sentToday:G.number.int({min:100,max:800}),templateIds:[\"edm_tpl_001\",\"edm_tpl_002\",\"edm_tpl_003\"]},{id:\"2\",name:\"营销邮件\",senderEmail:\"marketing@user-review.com\",senderName:\"USER营销\",replyTo:\"marketing@user-review.com\",smtpHost:\"smtp.user-review.com\",smtpPort:587,enabled:!1,dailyLimit:500,sentToday:0,templateIds:[\"edm_tpl_004\"]}]}const dG=qJe(),ZJe=XJe(),QJe=JJe(),eZe=[\"brand_account\",\"custom_account\"],tZe=[\"review\",\"reply\",\"ad\",\"activity\",\"edm\",\"system\",\"yipai\",\"other\"],rZe=[\"P0\",\"P1\",\"P2\",\"P3\"],nZe=[\"US\",\"JP\",\"DE\",\"CA\",\"UK\",\"IT\",\"FR\",\"ES\"],fG=[\"card\",\"text\",\"image\"],aZe={card:[\"气泡卡片\",\"图文卡片\",\"按钮卡片\",\"列表卡片\"],text:[\"气泡\",\"纯文本\",\"富文本\"],image:[\"单图\",\"双图\",\"九宫格\"]},iZe=[\"海象\",\"阿萝拉\",\"Joyhub\",\"NexiGo\",\"MiiR\",\"Ember\",\"AeroPress\",\"Kinto\",\"POVISON\",\"YITAHOME\",\"Aodesite\",\"Homrest\",\"P PURLOVE\",\"LINSY\",\"DHP\"],hG=[\"pwanhong\",\"liming\",\"zhangsan\",\"lisi\",\"wangwu\",\"zhaoliu\",\"chenqi\",\"sunba\",\"zhoujiu\",\"wushi\",\"zhengyi\",\"qianer\"],oZe={review:\"测评\",reply:\"回评\",ad:\"广告\",activity:\"活动\",edm:\"EDM\",system:\"系统\",yipai:\"易派\",other:\"其他\"},lZe={US:\"美国\",JP:\"日本\",DE:\"德国\",CA:\"加拿大\",UK:\"英国\",IT:\"意大利\",FR:\"法国\",ES:\"西班牙\"};function sZe(e){const t=G.number.int({min:1,max:3}),r=[];for(G.datatype.boolean()&&r.push(\"card\"),G.datatype.boolean()&&r.push(\"text\"),G.datatype.boolean()&&r.length<2&&r.push(\"image\"),r.length===0&&r.push(G.helpers.arrayElement(fG));r.length<t;)r.push(G.helpers.arrayElement(fG));return r.slice(0,t).map((n,a)=>{const i=G.helpers.arrayElement(aZe[n]);let o=\"\",l,s;switch(n){case\"card\":o=G.lorem.sentence({min:8,max:20});break;case\"text\":o=G.lorem.paragraph({min:1,max:2});break;case\"image\":o=`promotion_${e}_${a+1}.png`,l=`https://picsum.photos/seed/${e}_${a}/400/300`,s=`https://picsum.photos/seed/${e}_${a}/80/60`;break}return{id:`c_${e}_${a+1}`,formType:n,style:i,content:o,imageUrl:l,thumbnailUrl:s,sortOrder:a+1,createdAt:G.date.recent({days:30}).toISOString(),updatedAt:G.date.recent({days:5}).toISOString()}})}function uZe(e){return[...new Set(e.map(r=>{switch(r.formType){case\"card\":return\"卡片\";case\"text\":return\"文字\";case\"image\":return\"图片\"}}))].join(\"+\")}function cZe(e=50){return Array.from({length:e},(t,r)=>{const n=10001+r,a=G.helpers.arrayElement(eZe),i=G.helpers.arrayElement(tZe),o=G.helpers.arrayElement(rZe),l=G.helpers.arrayElement(nZe),s=G.datatype.boolean({probability:.75})?\"active\":\"inactive\",u=G.datatype.boolean({probability:.4}),c=G.number.int({min:1,max:3}),d=G.helpers.arrayElements(iZe,c),f=sZe(n),h=G.number.int({min:0,max:90}),p=G.date.recent({days:h||1}),g=s===\"active\"?G.number.int({min:100,max:5e4}):G.number.int({min:0,max:5e3}),y=Math.floor(g*G.number.float({min:.7,max:.98})),b=Math.floor(y*G.number.float({min:.8,max:.99})),x=Math.floor(b*G.number.float({min:.6,max:.95})),F=Math.floor(x*G.number.float({min:.3,max:.8})),S=Math.floor(F*G.number.float({min:.05,max:.3})),E=Math.floor(S*G.number.float({min:.4,max:.9})),w=Math.floor(g*G.number.float({min:.01,max:.1})),D=s===\"inactive\"?G.date.recent({days:5}).toISOString():void 0;return{id:n,reviewPlanId:`RP${String(r%50+1).padStart(4,\"0\")}`,name:`[${lZe[l]}] ${oZe[i]}${o} - ${G.commerce.productName()}`,pushMethod:a,pushType:i,priority:o,products:d,site:l,hasInterval:u,intervalDays:u?G.number.int({min:1,max:7}):void 0,cardDescription:G.lorem.sentence({min:5,max:15}),pushForm:uZe(f),status:s,contents:f,triggerCount:g||null,pushCount:y||null,arriveCount:b||null,listExposureCount:x||null,contentExposureCount:F||null,clickCount:S||null,jumpCount:E||null,replyCount:w||null,createdBy:G.helpers.arrayElement(hG),createdAt:p.toISOString(),offShelfAt:D,lastOperator:G.helpers.arrayElement(hG),lastOperatedAt:G.date.recent({days:2}).toISOString(),updatedAt:G.date.recent({days:3}).toISOString()}})}const dZe=cZe(50);function fZe(e){const t=r=>e.reduce((n,a)=>{const i=a[r];return n+(typeof i==\"number\"?i:0)},0);return{triggerCount:t(\"triggerCount\"),pushCount:t(\"pushCount\"),arriveCount:t(\"arriveCount\"),listExposureCount:t(\"listExposureCount\"),contentExposureCount:t(\"contentExposureCount\"),clickCount:t(\"clickCount\"),jumpCount:t(\"jumpCount\"),replyCount:t(\"replyCount\")}}const pG=[\"Chloe\",\"Yoyo\",\"Johnny J\",\"Alice\",\"Bob\",\"Cathy\",\"David\",\"Emma\"],mG=[\"春节活动卡片\",\"Prime Day 卡片\",\"黑五促销卡片\",\"新品首发卡片\",\"免费领取活动卡片\",\"回评邀请卡片\",\"测评任务卡片\",\"会员专享卡片\",\"限时折扣卡片\",\"好评返现卡片\",\"品牌宣传卡片\",\"产品推荐卡片\",\"节日祝福卡片\",\"感恩回馈卡片\",\"周年庆典卡片\",\"夏季促销卡片\",\"圣诞活动卡片\",\"独家优惠卡片\",\"VIP 尊享卡片\",\"新品体验卡片\",\"复购优惠卡片\",\"升级专享卡片\",\"邀请有礼卡片\",\"评价有奖卡片\",\"签到打卡卡片\"],hZe=[\"限时活动,快来参与\",\"新品首发,抢先体验\",\"专属优惠,不容错过\",\"好评返现,限时开放\",\"免费领取,数量有限\",\"会员专享,尊贵体验\",\"节日特惠,欢乐购物\",\"品牌精选,品质保障\",\"限时折扣,抢完即止\",\"新品试用,抢先一步\"],pZe=[\"zvpvlrpz\",\"uhthfxku\",\"lfmodejr\",\"abc123de\",\"xyz789fg\",\"mno456pq\",\"rst321uv\",\"wxy654za\",\"bcd987ef\",\"ghi135jk\",\"lmn246op\",\"qrs579tu\",\"vwx802ab\",\"cde425fg\",\"hij768kl\"];function mZe(e){const t=G.number.int({min:0,max:5e3}),r=G.number.int({min:0,max:8e4}),n=G.number.int({min:0,max:Math.max(1,r)}),a=r>0?Number((n/r*100).toFixed(2)):0,i=G.datatype.boolean({probability:.8}),o=G.helpers.arrayElement(pZe);return{id:e+1,name:mG[e%mG.length],description:G.helpers.arrayElement(hZe),imageUrl:`https://picsum.photos/seed/card${e+1}/400/200`,thumbnailUrl:`https://picsum.photos/seed/card${e+1}/100/50`,linkUrl:`https://events.joyhub.net/active-gift/${o}`,jumpType:G.helpers.arrayElement([\"internal\",\"external\"]),notes:G.datatype.boolean({probability:.6})?G.lorem.sentence():\"\",pushCount:t,exposureCount:r,clickCount:n,clickRate:a,status:i?\"active\":\"inactive\",createdBy:G.helpers.arrayElement(pG),createdAt:G.date.past({years:1}).toISOString(),lastOperator:G.helpers.arrayElement(pG),lastOperatedAt:G.date.recent({days:30}).toISOString(),offShelfAt:i?void 0:G.date.recent({days:7}).toISOString(),offShelfReason:i?void 0:G.helpers.arrayElement([\"活动已结束\",\"内容过期\",\"合规审核\",\"素材更新\"])}}const vZe=Array.from({length:80},(e,t)=>mZe(t));var Kt=(e=>(e.PENDING_UPLOAD=\"PENDING_UPLOAD\",e.PENDING_CONFIRM=\"PENDING_CONFIRM\",e.REVIEWED=\"REVIEWED\",e))(Kt||{}),ar=(e=>(e.SHIPPED=\"SHIPPED\",e.PENDING=\"PENDING\",e.DELIVERED=\"DELIVERED\",e.CANCELLED=\"CANCELLED\",e))(ar||{}),ln=(e=>(e.PENDING_REFUND=\"PENDING_REFUND\",e.PENDING_AUDIT=\"PENDING_AUDIT\",e.AUDIT_FAILED=\"AUDIT_FAILED\",e.REFUND_SUCCESS=\"REFUND_SUCCESS\",e.REFUND_LOCKED=\"REFUND_LOCKED\",e))(ln||{}),or=(e=>(e.NONE=\"-\",e.GOOD=\"好评\",e.DELETE=\"删评\",e))(or||{}),cr=(e=>(e.SELF_SERVICE=\"自助返款\",e.FINANCIAL=\"财务返款\",e))(cr||{}),tr=(e=>(e.IM=\"IM\",e.PHONE=\"电话\",e.EDM=\"EDM\",e.TWITTER=\"TWITTER\",e.FACEBOOK=\"FACEBOOK\",e.KP=\"KP\",e.MXP=\"MXP\",e.POSTCARD=\"POSTCARD\",e.FWS=\"FWS\",e.SNS=\"SNS\",e.REDDIT=\"REDDIT\",e))(tr||{}),nr=(e=>(e.US=\"America\",e.UK=\"Britain\",e.JP=\"Japan\",e.CA=\"Canada\",e.DE=\"Germany\",e.FR=\"France\",e.IT=\"Italy\",e.ES=\"Spain\",e))(nr||{}),vy=(e=>(e.S=\"S\",e.LEVEL_1=\"1\",e.LEVEL_2=\"2\",e.LEVEL_3=\"3\",e))(vy||{}),gw=(e=>(e.PRINCIPAL=\"PRINCIPAL\",e.SERVICE_COMMISSION=\"SERVICE_COMMISSION\",e.OTHER=\"OTHER\",e))(gw||{}),ef=(e=>(e.PAYPAL=\"PAYPAL\",e.ALIPAY=\"ALIPAY\",e.AMAZON_GIFT_CARD=\"AMAZON_GIFT_CARD\",e.BANK_TRANSFER=\"BANK_TRANSFER\",e.OTHER=\"OTHER\",e))(ef||{}),dp=(e=>(e.COMMENT_ID=\"COMMENT_ID\",e.COMMENT_URL=\"COMMENT_URL\",e.QUEUE_FETCH=\"QUEUE_FETCH\",e.MANUAL_UPLOAD=\"MANUAL_UPLOAD\",e))(dp||{}),u2=(e=>(e.ACTIVE=\"ACTIVE\",e.DISABLED=\"DISABLED\",e))(u2||{}),en=(e=>(e.CREATE=\"CREATE\",e.EDIT=\"EDIT\",e.UPLOAD_ORDER=\"UPLOAD_ORDER\",e.UPLOAD_REPLY=\"UPLOAD_REPLY\",e.CHANGE_ORDER=\"CHANGE_ORDER\",e.ALTER_ORDER=\"ALTER_ORDER\",e.TRANSFER_REVIEW=\"TRANSFER_REVIEW\",e.TRANSFER_FREE=\"TRANSFER_FREE\",e.CHANGE_APPLICANT=\"CHANGE_APPLICANT\",e.PAYMENT_REQUEST=\"PAYMENT_REQUEST\",e.REFUND_CONFIRM=\"REFUND_CONFIRM\",e.SERVICE_AUDIT=\"SERVICE_AUDIT\",e.REFUND_EXCEED_AUDIT=\"REFUND_EXCEED_AUDIT\",e.ANTI_FRAUD_AUDIT=\"ANTI_FRAUD_AUDIT\",e.TRANSFER_AUDIT=\"TRANSFER_AUDIT\",e.CANCEL=\"CANCEL\",e))(en||{}),Gu=(e=>(e.QUALIFIED=\"QUALIFIED\",e.DISQUALIFIED=\"DISQUALIFIED\",e.BLACKLISTED=\"BLACKLISTED\",e.HIGH_RISK=\"HIGH_RISK\",e))(Gu||{}),co=(e=>(e.PHONE=\"PHONE\",e.EMAIL=\"EMAIL\",e.JOYHUB_ID=\"JOYHUB_ID\",e.TWITTER=\"TWITTER\",e.FACEBOOK=\"FACEBOOK\",e.WECHAT=\"WECHAT\",e.SNS=\"SNS\",e.REDDIT=\"REDDIT\",e))(co||{});const oce=Object.values(tr),oB=Object.values(nr),gZe=Object.values(ar),yZe=Object.values(Kt),lce=Object.values(ln),bZe=Object.values(or),sce=Object.values(cr),uce=[\"手机配件\",\"家居用品\",\"美妆护肤\",\"电子产品\",\"户外运动\",\"厨房用品\",\"宠物用品\",\"汽车配件\",\"玩具\",\"服装鞋帽\"],xZe=[\"ShopA-US\",\"ShopB-UK\",\"ShopC-JP\",\"ShopD-DE\",\"ShopE-CA\",\"ShopF-FR\",\"ShopG-IT\",\"ShopH-ES\"],lB=[\"青春之吻T-粉色-新APP\",\"无线蓝牙耳机-黑色\",\"手机支架-银色\",\"LED台灯-白色\",\"瑜伽垫-紫色\",\"保温杯-不锈钢\",\"充电宝-20000mAh\",\"键盘-机械青轴\",\"鼠标-无线静音\",\"耳机头戴式-红色\",\"数据线Type-C-1m\",\"手机壳-透明\",\"智能手环-黑色\",\"电动牙刷-替换头\",\"空气净化器滤芯\",\"车载充电器-双口\"],hM=[\"张运营\",\"李运营\",\"王运营\",\"赵运营\",\"钱运营\",\"孙运营\",\"周运营\",\"吴运营\"],CZe=[\"张经理\",\"李经理\",\"王经理\",\"赵经理\"],FZe=[\"张财务\",\"李财务\",\"王财务\"],SZe=[\"1星\",\"2星\",\"3星\",\"4星\",\"5星\"];let vG=121e3;function wZe(e){vG++;const t=G.helpers.arrayElement(oce),r=G.helpers.arrayElement(oB),n=G.helpers.arrayElement(gZe),a=G.helpers.arrayElement(yZe),i=G.helpers.arrayElement(lce),o=G.helpers.arrayElement(bZe),l=G.helpers.arrayElement(sce),s=G.datatype.boolean({probability:.85}),u=G.datatype.boolean({probability:.6}),c=G.date.past({years:.5}).toISOString();return{id:vG,productId:e%20+1,replyOrderId:`RE${String(G.number.int({min:1e7,max:99999999}))}`,orderNo:s?`${G.number.int({min:100,max:999})}-${G.number.int({min:1e6,max:9999999})}-${G.number.int({min:1e6,max:9999999})}`:null,paymentApplicant:G.helpers.arrayElement(FZe),refundId:i!==ln.PENDING_REFUND?`RF${String(G.number.int({min:1e5,max:999999}))}`:null,channel:t,customerId:`C${G.number.int({min:1e4,max:99999})}`,customerName:G.person.firstName(),reviewCount:G.number.int({min:1,max:20}),commentCount:G.number.int({min:0,max:10}),country:r,product:G.helpers.arrayElement(lB),category:G.helpers.arrayElement(uce),asin:`B0${G.string.alphanumeric({length:8,casing:\"upper\"})}`,shop:G.helpers.arrayElement(xZe),afterSaleCode:`AS${G.number.int({min:1e4,max:99999})}`,orderStatus:n,replyOrderStatus:a,refundStatus:i,reviewer:G.person.firstName(),replyConfirmer:a===Kt.REVIEWED?G.person.firstName():null,commentStatus:u?o:null,starRating:u?G.helpers.arrayElement(SZe):null,commentUrl:u?`https://amazon.com/review/R${G.string.alphanumeric(12)}`:null,profileUrl:`https://amazon.com/profile/P${G.string.alphanumeric(10)}`,commentTime:u?G.date.recent({days:30}).toISOString():null,startTime:c,replyTime:a!==Kt.PENDING_UPLOAD?G.date.recent({days:14}).toISOString():null,replyConfirmTime:a===Kt.REVIEWED?G.date.recent({days:7}).toISOString():null,completedTime:n===ar.DELIVERED&&a===Kt.REVIEWED?G.date.recent({days:3}).toISOString():null,applicant:G.helpers.arrayElement(hM),operators:G.helpers.arrayElement(CZe),remark:G.datatype.boolean({probability:.3})?G.lorem.sentence():null,refundScheme:l,createdAt:c,updatedAt:G.date.recent({days:3}).toISOString(),createdBy:G.helpers.arrayElement(hM)}}const EZe=Array.from({length:100},(e,t)=>wZe(t)),DZe=[\"https://via.placeholder.com/150/FF6B6B/FFFFFF?text=Product+1\",\"https://via.placeholder.com/150/4ECDC4/FFFFFF?text=Product+2\",\"https://via.placeholder.com/150/45B7D1/FFFFFF?text=Product+3\",\"https://via.placeholder.com/150/96CEB4/FFFFFF?text=Product+4\",\"https://via.placeholder.com/150/FFEAA7/FFFFFF?text=Product+5\"];function AZe(e){return{id:e+1,code:`P${String(e+1).padStart(4,\"0\")}`,promoLevel:G.helpers.arrayElement([\"S\",\"1\",\"2\",\"3\"]),name:G.helpers.arrayElement(lB),imageUrl:G.helpers.arrayElement(DZe),nameEn:G.commerce.productName(),asin:`B0${G.string.alphanumeric({length:8,casing:\"upper\"})}`,category:G.helpers.arrayElement(uce),status:G.helpers.arrayElement([\"ACTIVE\",\"DISABLED\"]),countries:G.helpers.arrayElements(oB,{min:1,max:3}),channels:G.helpers.arrayElements(oce,{min:1,max:3})}}const D5=Array.from({length:20},(e,t)=>AZe(t));function _Ze(){return{userName:G.person.fullName(),userId:G.number.int({min:1e4,max:99999}),country:G.helpers.arrayElement(oB),phone:G.phone.number(),email:G.internet.email(),userType:G.helpers.arrayElement([\"普通\",\"VIP\",\"KP\"]),otherContacts:[{type:\"TWITTER\",value:`@${G.internet.displayName()}`},{type:\"FACEBOOK\",value:G.internet.displayName()}],userRemark:null,createdBy:G.helpers.arrayElement(hM),createdAt:G.date.past({years:1}).toISOString(),joyhubId:`JH${G.number.int({min:1e5,max:999999})}`,joyhubNickname:G.internet.displayName(),appRegisterTime:G.date.past({years:2}).toISOString(),appLastOnlineTime:G.date.recent({days:7}).toISOString(),appBoundProducts:G.helpers.arrayElements(lB,{min:1,max:3}),appActivityCount:G.number.int({min:0,max:50}),emailCode:G.string.alphanumeric({length:6,casing:\"upper\"}),totalOrders:G.number.int({min:1,max:100}),replyCount:G.number.int({min:0,max:50}),reviewCount:G.number.int({min:0,max:30}),isBlacklisted:G.datatype.boolean({probability:.05}),isHighRisk:G.datatype.boolean({probability:.08}),qualificationStatus:G.helpers.arrayElement([\"QUALIFIED\",\"DISQUALIFIED\",\"BLACKLISTED\",\"HIGH_RISK\"])}}const TZe=_Ze();function IZe(){return{refundId:`RF${G.number.int({min:1e5,max:999999})}`,refundScheme:G.helpers.arrayElement(sce),refundStatus:G.helpers.arrayElement(lce),isAdditional:G.datatype.boolean({probability:.2}),refundType:G.helpers.arrayElement([\"PRINCIPAL\",\"SERVICE_COMMISSION\",\"OTHER\"]),refundMethod:G.helpers.arrayElement([\"PAYPAL\",\"ALIPAY\",\"AMAZON_GIFT_CARD\",\"BANK_TRANSFER\"]),amount:Number(G.commerce.price({min:10,max:500})),currency:\"USD\",actualAmount:Number(G.commerce.price({min:10,max:500})),actualCurrency:\"CNY\",exchangeRate:G.number.float({min:6.5,max:7.5,fractionDigits:4}),fee:G.datatype.boolean({probability:.3})?Number(G.commerce.price({min:1,max:20})):null,includeFee:G.datatype.boolean({probability:.4}),amountWithFee:null,receiveAccount:G.finance.accountNumber(),receiveCode:G.finance.pin(),paymentTime:G.date.recent({days:14}).toISOString(),payAccount:G.finance.accountNumber(),cardCode:G.finance.pin(),voucher:`voucher_${G.string.alphanumeric(8)}.png`,remark:null}}const gG=Array.from({length:10},()=>IZe()),kZe=[\"US\",\"JP\",\"DE\",\"CA\",\"UK\",\"IT\",\"FR\",\"ES\"],RZe=[\"review\",\"reply\",\"free\"],MZe=[\"pending\",\"in_progress\",\"completed\",\"cancelled\",\"refunded\"],PZe=[\"春季测评计划\",\"Prime Day 回评\",\"新品免费领取\",\"黑五测评\",\"日常回评计划\",\"夏季促销测评\",\"新品首发回评\",\"节日免评\"],OZe=[\"张三\",\"李四\",\"王五\",\"赵六\",\"钱七\",\"孙八\",\"周九\",\"吴十\",\"郑十一\",\"冯十二\"];function BZe(e){const t=G.helpers.arrayElement(RZe),r=G.helpers.arrayElement(MZe),n=G.datatype.boolean({probability:.08}),a=r===\"completed\"||r===\"refunded\",i=G.helpers.arrayElement(kZe);return{id:`ORD-${String(e+1).padStart(5,\"0\")}`,orderNo:`ORD${Date.now()}-${String(e+1).padStart(4,\"0\")}`,reviewerName:G.helpers.arrayElement(OZe),reviewerId:`R${G.number.int({min:1e3,max:9999})}`,asin:`B0${G.string.alphanumeric({length:8,casing:\"upper\"})}`,productName:G.commerce.productName(),site:i,orderType:t,status:r,planId:`PLAN-${G.number.int({min:1,max:50})}`,planName:G.helpers.arrayElement(PZe),orderDate:G.date.past({years:1}).toISOString(),completedAt:r===\"completed\"?G.date.recent({days:30}).toISOString():void 0,reviewLink:r===\"completed\"?`https://amazon.com/review/R${G.string.alphanumeric(10)}`:void 0,reviewContent:r===\"completed\"?G.lorem.sentence():void 0,rating:r===\"completed\"?G.number.int({min:3,max:5}):void 0,isDropped:n,droppedAt:n?G.date.recent({days:14}).toISOString():void 0,refundStatus:a?G.helpers.arrayElement([\"pending\",\"approved\",\"completed\",\"rejected\"]):\"pending\",refundAmount:a?Number(G.commerce.price({min:5,max:200})):void 0,createdAt:G.date.past({years:1}).toISOString(),updatedAt:G.date.recent({days:7}).toISOString()}}const yG=Array.from({length:100},(e,t)=>BZe(t));function NZe(){const e=G.number.int({min:80,max:200}),t=G.number.int({min:30,max:Math.floor(e*.5)}),r=G.number.int({min:20,max:Math.floor(e*.3)}),n=Array.from({length:8},()=>({planId:G.string.uuid(),planTitle:`计划 - ${G.commerce.productName()}`,type:G.helpers.arrayElement([Si.Review,Si.Reply,Si.Free]),status:G.helpers.arrayElement([\"in_progress\",\"approved\",\"pending_approval\",\"completed\"]),progress:G.number.int({min:0,max:100}),reviewerCount:G.number.int({min:3,max:15}),completedCount:G.number.int({min:0,max:10}),deadline:G.date.soon({days:30}).toISOString()}));return{totalPlans:e,activePlans:r,completedPlans:t,plansByStatus:{draft:G.number.int({min:5,max:20}),pending_approval:G.number.int({min:3,max:15}),approved:G.number.int({min:5,max:20}),in_progress:G.number.int({min:10,max:30}),completed:t,cancelled:G.number.int({min:2,max:10}),rejected:G.number.int({min:1,max:5})},plansByType:{[Si.Review]:G.number.int({min:30,max:80}),[Si.Reply]:G.number.int({min:20,max:60}),[Si.Free]:G.number.int({min:10,max:40})},recentPlans:n,completionRate:parseFloat(G.number.float({min:.6,max:.95,fractionDigits:2}).toFixed(2)),avgCompletionTime:G.number.int({min:3,max:14})}}function $Ze(){const e=[\"电子产品\",\"家居\",\"美妆\",\"服饰\",\"食品\",\"图书\",\"运动\",\"玩具\"],t=r=>Array.from({length:r},()=>({asin:`B0${G.string.alphanumeric(8).toUpperCase()}`,productName:G.commerce.productName(),productCategory:G.helpers.arrayElement(e),totalReviews:G.number.int({min:5,max:200}),averageRating:parseFloat(G.number.float({min:2.5,max:5,fractionDigits:1}).toFixed(1)),positiveRate:parseFloat(G.number.float({min:.5,max:.98,fractionDigits:2}).toFixed(2)),negativeRate:parseFloat(G.number.float({min:.02,max:.3,fractionDigits:2}).toFixed(2)),riskLevel:G.helpers.arrayElement([kn.None,kn.Low,kn.Medium,kn.High]),trend:G.helpers.arrayElement([\"up\",\"down\",\"stable\"]),lastReviewDate:G.date.recent({days:14}).toISOString()}));return{totalASINs:G.number.int({min:200,max:500}),asinsWithReviews:G.number.int({min:150,max:350}),averageRating:parseFloat(G.number.float({min:3.8,max:4.6,fractionDigits:1}).toFixed(1)),topRatedASINs:t(5),lowRatedASINs:t(5),riskASINs:t(3),ratingDistribution:{1:G.number.int({min:5,max:30}),2:G.number.int({min:10,max:50}),3:G.number.int({min:30,max:100}),4:G.number.int({min:80,max:200}),5:G.number.int({min:100,max:300})},categoryDistribution:Object.fromEntries(e.map(r=>[r,G.number.int({min:10,max:80})]))}}function LZe(){const e=Array.from({length:6},()=>({agentId:G.string.uuid(),agentName:G.person.fullName(),totalTickets:G.number.int({min:20,max:100}),resolvedTickets:G.number.int({min:10,max:80}),avgResolutionTime:G.number.int({min:30,max:180}),satisfactionScore:parseFloat(G.number.float({min:3.5,max:5,fractionDigits:1}).toFixed(1)),firstResponseTime:G.number.int({min:5,max:30}),activeConversations:G.number.int({min:0,max:5})})),t=[\"评价问题\",\"订单咨询\",\"退款处理\",\"账号问题\",\"物流查询\",\"其他\"],r=[\"low\",\"medium\",\"high\",\"urgent\"],n=Array.from({length:14},(a,i)=>{const o=new Date;return o.setDate(o.getDate()-(13-i)),{date:o.toISOString().split(\"T\")[0],created:G.number.int({min:10,max:40}),resolved:G.number.int({min:8,max:35})}});return{totalTickets:G.number.int({min:200,max:500}),openTickets:G.number.int({min:30,max:80}),resolvedToday:G.number.int({min:10,max:30}),avgResolutionTime:G.number.int({min:60,max:240}),avgSatisfactionScore:parseFloat(G.number.float({min:3.8,max:4.8,fractionDigits:1}).toFixed(1)),agentMetrics:e,ticketsByCategory:Object.fromEntries(t.map(a=>[a,G.number.int({min:10,max:80})])),ticketsByPriority:Object.fromEntries(r.map(a=>[a,G.number.int({min:10,max:60})])),ticketsByStatus:{pending:G.number.int({min:20,max:50}),assigned:G.number.int({min:10,max:30}),in_progress:G.number.int({min:15,max:40}),resolved:G.number.int({min:50,max:150}),closed:G.number.int({min:30,max:100})},dailyTicketTrend:n}}const jZe=NZe(),zZe=$Ze(),HZe=LZe(),cce=[{id:121066,productId:1,replyOrderId:\"RE00036861\",orderNo:\"111-0856779-3469805\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235429\",customerName:\"R72593\",reviewCount:0,commentCount:0,country:nr.US,product:\"青春之吻T-粉色-新APP\",category:\"成人用品/03玫瑰花品类/单花-允吸\",asin:\"B0F29CN8BX\",shop:\"可用*USC03*AM-G593-US\",afterSaleCode:\"200235429T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:56:18\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jhona Ver\",operators:\"邓明欣,曾惜\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:56:18\",updatedAt:\"2026-05-23 09:56:18\",createdBy:\"excel\"},{id:121065,productId:2,replyOrderId:\"RE00036860\",orderNo:\"113-9391560-3634631\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235423\",customerName:\"scachi\",reviewCount:0,commentCount:0,country:nr.US,product:\"加特林-红黑-新APP礼盒吸盘无震动\",category:\"成人用品/01电动飞机杯品类/伸缩旋转类\",asin:\"B0F6L4FLJS\",shop:\"可用*USC01*AM-Y61-US\",afterSaleCode:\"200235423T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:48:05\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Warren Borinaga\",operators:\"邓明欣,林陆\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:48:05\",updatedAt:\"2026-05-23 09:48:05\",createdBy:\"excel\"},{id:121064,productId:3,replyOrderId:\"RE00036859\",orderNo:\"111-8705028-6327421\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22791(非追加)\",channel:tr.IM,customerId:\"200235422\",customerName:\"moodles14\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花二代-玫红-新APP礼盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0CNRZVJMG\",shop:\"可用*USC03*AM-Y131-US\",afterSaleCode:\"200235422T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_AUDIT,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:38:57\",replyTime:\"2026-05-23 09:42:13\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:38:57\",updatedAt:\"2026-05-23 09:42:13\",createdBy:\"excel\"},{id:121063,productId:4,replyOrderId:\"RE00036858\",orderNo:\"114-9075142-9234639\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235421\",customerName:\"sissyherry\",reviewCount:0,commentCount:0,country:nr.US,product:\"凤凰-紫金-新APP\",category:\"成人用品/12物理阳具+异形阳具品类/异形阳具\",asin:\"B0G41PVZ67\",shop:\"可用*USC13*AM-G319-US\",afterSaleCode:\"200235421T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:30:31\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Warren Borinaga\",operators:\"邓明欣,Soda_王,曹琳莹\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:30:31\",updatedAt:\"2026-05-23 09:30:31\",createdBy:\"excel\"},{id:121062,productId:5,replyOrderId:\"RE00036857\",orderNo:\"111-5634332-7871454\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22792(非追加)\",channel:tr.IM,customerId:\"200234122\",customerName:\"Beezbub\",reviewCount:0,commentCount:0,country:nr.US,product:\"大金刚-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0CVX3P47S\",shop:\"可用*USC08*AM-G360-US\",afterSaleCode:\"200234122T003\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:26:53\",replyTime:\"2026-05-23 09:27:23\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"邓明欣,罗昆\",remark:\"Already refunded by Amazon. The customer stated that Amazon only refunded the shipping fee due to a 2-day delivery delay caused by a tornado storm.\",refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:26:53\",updatedAt:\"2026-05-23 09:27:23\",createdBy:\"excel\"},{id:121061,productId:6,replyOrderId:\"RE00036856\",orderNo:\"112-3155682-2031439\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235420\",customerName:\"SatoshiKei\",reviewCount:0,commentCount:0,country:nr.US,product:\"火箭二代-新APP\",category:\"成人用品/10男用训练器品类\",asin:\"B0FR7CG59Y\",shop:\"可用*USC10*AM-G429-US\",afterSaleCode:\"200235420T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:20:41\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Warren Borinaga\",operators:\"邓明欣,叶佳音,胡蝶\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:20:41\",updatedAt:\"2026-05-23 09:20:41\",createdBy:\"excel\"},{id:121060,productId:7,replyOrderId:\"RE00036855\",orderNo:\"205-9518671-6516336\",paymentApplicant:\"Alicia Mae Alarilla\",refundId:\"18186(非追加)\",channel:tr.IM,customerId:\"200235419\",customerName:\"KMMMMMMMM\",reviewCount:0,commentCount:0,country:nr.UK,product:\"蜂巢杯二代-红黑-新APP黑盒\",category:\"成人用品/01电动飞机杯品类/允吸类\",asin:\"B0F3HWCKLJ\",shop:\"可用*UK2*AM-G334-UK\",afterSaleCode:\"200235419T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Alicia Mae Alarilla\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:17:00\",replyTime:\"2026-05-23 09:18:02\",replyConfirmTime:null,completedTime:null,applicant:\"Alicia Mae Alarilla\",operators:\"Terisa,刘欣\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:17:00\",updatedAt:\"2026-05-23 09:18:02\",createdBy:\"excel\"},{id:121059,productId:8,replyOrderId:\"RE00036854\",orderNo:\"111-6807166-1140228\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22786(非追加)\",channel:tr.IM,customerId:\"200234122\",customerName:\"Beezbub\",reviewCount:0,commentCount:0,country:nr.US,product:\"索隆小号-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/振动肛塞\",asin:\"B0FH56HPCK\",shop:\"可用*USC08*AM-G360-US\",afterSaleCode:\"200234122T002\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:04:19\",replyTime:\"2026-05-23 09:08:27\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"邓明欣,罗昆\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:04:19\",updatedAt:\"2026-05-23 09:08:27\",createdBy:\"excel\"},{id:121058,productId:9,replyOrderId:\"RE00036853\",orderNo:\"113-4179232-2471453\",paymentApplicant:\"Jhona Ver\",refundId:\"22790(非追加)\",channel:tr.IM,customerId:\"200235418\",customerName:\"user59379696\",reviewCount:0,commentCount:0,country:nr.US,product:\"蝶恋-渐变-新APP(彩盒)\",category:\"成人用品/09穿戴品类\",asin:\"B0D5YGRXPH\",shop:\"可用*USC09*AM-G347-US\",afterSaleCode:\"200235418T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"Jhona Ver\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:01:31\",replyTime:\"2026-05-23 09:18:08\",replyConfirmTime:null,completedTime:null,applicant:\"Jhona Ver\",operators:\"邓明欣,伍弘英\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:01:31\",updatedAt:\"2026-05-23 09:18:08\",createdBy:\"excel\"},{id:121057,productId:10,replyOrderId:\"RE00036852\",orderNo:\"026-1447595-1516317\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22789(非追加)\",channel:tr.IM,customerId:\"200235417\",customerName:\"coolas\",reviewCount:0,commentCount:0,country:nr.UK,product:\"黑翼杯-单内胆-新APP\",category:\"成人用品/01电动飞机杯品类/允吸类\",asin:\"B0GJ59FG6S\",shop:\"可用*UK2*AM-Y151-UK\",afterSaleCode:\"200235417T003\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_AUDIT,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 09:00:24\",replyTime:\"2026-05-23 09:14:36\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"Terisa,刘欣\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 09:00:24\",updatedAt:\"2026-05-23 09:14:36\",createdBy:\"excel\"},{id:121056,productId:11,replyOrderId:\"RE00036851\",orderNo:\"026-9662960-5659558\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22788(非追加)\",channel:tr.IM,customerId:\"200235417\",customerName:\"coolas\",reviewCount:0,commentCount:0,country:nr.UK,product:\"文斯-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/振动肛塞\",asin:\"B0G585Q81T\",shop:\"可用*UK1*AM-Y21-UK\",afterSaleCode:\"200235417T002\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_AUDIT,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 08:59:59\",replyTime:\"2026-05-23 09:13:15\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"胡梦婷\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 08:59:59\",updatedAt:\"2026-05-23 09:13:15\",createdBy:\"excel\"},{id:121055,productId:12,replyOrderId:\"RE00036850\",orderNo:\"026-3949593-2023509\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22787(非追加)\",channel:tr.IM,customerId:\"200235417\",customerName:\"coolas\",reviewCount:0,commentCount:0,country:nr.UK,product:\"亚当斯-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0FWK9RBL8\",shop:\"可用*UK4*AM-403-UK\",afterSaleCode:\"200235417T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_AUDIT,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 08:59:33\",replyTime:\"2026-05-23 09:11:42\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"何兴,郭宇\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 08:59:33\",updatedAt:\"2026-05-23 09:11:42\",createdBy:\"excel\"},{id:121054,productId:13,replyOrderId:\"RE00036849\",orderNo:\"026-8558015-3996339\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235416\",customerName:\"Thickcock96\",reviewCount:0,commentCount:0,country:nr.UK,product:\"亚奇环四代-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0D6YRCKFH\",shop:\"可用*UK1、UK3*AM-404-UK\",afterSaleCode:\"200235416T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 08:58:54\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"王睿\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 08:58:54\",updatedAt:\"2026-05-23 08:58:54\",createdBy:\"excel\"},{id:121053,productId:14,replyOrderId:\"RE00036848\",orderNo:\"111-8806363-6361046\",paymentApplicant:\"RONALD TORRES\",refundId:\"22785(非追加)\",channel:tr.IM,customerId:\"200235415\",customerName:\"User6677\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花一代B-粉色-新APP黑盒\",category:\"成人用品/03玫瑰花品类/单花-允吸\",asin:\"B0GVBBLS41\",shop:\"可用*USC03*AM-Y24-US\",afterSaleCode:\"200235415T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"RONALD TORRES\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 08:19:23\",replyTime:\"2026-05-23 08:21:18\",replyConfirmTime:null,completedTime:null,applicant:\"RONALD TORRES\",operators:\"杜雨馨\",remark:null,refundScheme:cr.SELF_SERVICE,createdAt:\"2026-05-23 08:19:23\",updatedAt:\"2026-05-23 08:21:18\",createdBy:\"excel\"},{id:121052,productId:15,replyOrderId:\"RE00036847\",orderNo:\"111-7607855-9424252\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22784(非追加)\",channel:tr.IM,customerId:\"200235414\",customerName:\"goonettekween\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花二代-玫红-新APP礼盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0CNRZVJMG\",shop:\"可用*USC03*AM-HY18-US\",afterSaleCode:\"200235414T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.REFUND_LOCKED,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 08:04:39\",replyTime:\"2026-05-23 08:05:04\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 08:04:39\",updatedAt:\"2026-05-23 08:05:04\",createdBy:\"excel\"},{id:121051,productId:16,replyOrderId:\"RE00036846\",orderNo:\"112-9867070-4765845\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235412\",customerName:\"user22119982\",reviewCount:0,commentCount:0,country:nr.US,product:\"娜美4.5kg吮吸款-肉色-新APP\",category:\"成人用品/02倒模品类/屁股倒模\",asin:\"B0FVM4GDZM\",shop:\"可用*USC02*AM-G564-US\",afterSaleCode:\"200235412T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 07:48:17\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"张利平\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 07:48:17\",updatedAt:\"2026-05-23 07:48:17\",createdBy:\"excel\"},{id:121050,productId:17,replyOrderId:\"RE00036845\",orderNo:\"113-5608690-7021812\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22783(非追加)\",channel:tr.IM,customerId:\"200234909\",customerName:\"Nixiez\",reviewCount:3,commentCount:0,country:nr.US,product:\"茉莉花二代-紫色-新APP礼盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0FHPZ64Z4\",shop:\"可用*USC03*AM-Y16-US\",afterSaleCode:\"200234909T002\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"RONALD TORRES\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 07:41:38\",replyTime:\"2026-05-23 07:42:48\",replyConfirmTime:null,completedTime:null,applicant:\"RONALD TORRES\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.SELF_SERVICE,createdAt:\"2026-05-23 07:41:38\",updatedAt:\"2026-05-23 07:42:48\",createdBy:\"excel\"},{id:121049,productId:18,replyOrderId:\"RE00036844\",orderNo:\"113-8868500-1167407\",paymentApplicant:\"Erica Jane Espino\",refundId:\"22782(非追加)\",channel:tr.IM,customerId:\"200235411\",customerName:\"AMOOLAH\",reviewCount:0,commentCount:0,country:nr.US,product:\"亚奇环四代-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0F1YQNPTV\",shop:\"可用*USC03/05*AM-G138-US\",afterSaleCode:\"200235411T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"Erica Jane Espino\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 07:29:51\",replyTime:\"2026-05-23 07:30:52\",replyConfirmTime:null,completedTime:null,applicant:\"Erica Jane Espino\",operators:\"邓明欣,龚裕华\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 07:29:51\",updatedAt:\"2026-05-23 07:30:52\",createdBy:\"excel\"},{id:121048,productId:19,replyOrderId:\"RE00036843\",orderNo:\"114-1864695-9025828\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235410\",customerName:\"user22114761\",reviewCount:0,commentCount:0,country:nr.US,product:\"麦哲伦二代-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0FGY2FF6H\",shop:\"可用*USC08*AM-G170-US\",afterSaleCode:\"200235410T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 07:20:51\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Warren Borinaga\",operators:\"邓明欣,罗昆,官锦明,李碧祺\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 07:20:51\",updatedAt:\"2026-05-23 07:20:51\",createdBy:\"excel\"},{id:121047,productId:20,replyOrderId:\"RE00036842\",orderNo:\"113-9438379-2665852\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235409\",customerName:\"user22121090\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花二代-玫红-新APP礼盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0CNRZVJMG\",shop:\"可用*USC03*AM-Y18-US\",afterSaleCode:\"200235409T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 07:20:26\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Erica Jane Espino\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 07:20:26\",updatedAt:\"2026-05-23 07:20:26\",createdBy:\"excel\"},{id:121046,productId:21,replyOrderId:\"RE00036841\",orderNo:\"114-1439513-2161811\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235407\",customerName:\"Oatmealm\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花二代-黑色-新APP礼盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0FDKV3RK1\",shop:\"可用*USC03*AM-Y18-US\",afterSaleCode:\"200235407T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 07:01:00\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"RONALD TORRES\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.SELF_SERVICE,createdAt:\"2026-05-23 07:01:00\",updatedAt:\"2026-05-23 07:01:00\",createdBy:\"excel\"},{id:121044,productId:22,replyOrderId:\"RE00036840\",orderNo:\"113-9507844-0336233\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22780(非追加)\",channel:tr.IM,customerId:\"200235405\",customerName:\"Cpenn\",reviewCount:0,commentCount:0,country:nr.US,product:\"麦哲伦新APP清洗器-黑色\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0D2QK8Z19\",shop:\"可用*USC08*AM-G466-US\",afterSaleCode:\"200235405T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 06:52:53\",replyTime:\"2026-05-23 07:18:49\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"邓明欣,李艳,罗昆,李碧祺\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 06:52:53\",updatedAt:\"2026-05-23 07:18:49\",createdBy:\"excel\"},{id:121043,productId:23,replyOrderId:\"RE00036839\",orderNo:\"203-8300690-6261156\",paymentApplicant:\"Ryaven Dela Cruz\",refundId:\"22779(非追加)\",channel:tr.IM,customerId:\"200235404\",customerName:\"Chlog04\",reviewCount:0,commentCount:0,country:nr.UK,product:\"安吉拉-玫红-新APP-双键\",category:\"成人用品/09穿戴品类\",asin:\"B0BQ2BPW6K\",shop:\"可用*UK4*AM-403-UK\",afterSaleCode:\"200235404T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.REFUND_SUCCESS,reviewer:\"Ryaven Dela Cruz\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 06:48:46\",replyTime:\"2026-05-23 06:55:39\",replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"何兴,郭宇\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 06:48:46\",updatedAt:\"2026-05-23 06:55:39\",createdBy:\"excel\"},{id:121042,productId:24,replyOrderId:\"RE00036838\",orderNo:\"114-4093617-6977040\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235403\",customerName:\"Mercy83\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花五代-玫红-新APP礼盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0FTGBRQ45\",shop:\"可用*USC03*AM-Y18-US\",afterSaleCode:\"200235403T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 06:45:26\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Ryaven Dela Cruz\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 06:45:26\",updatedAt:\"2026-05-23 06:45:26\",createdBy:\"excel\"},{id:121041,productId:25,replyOrderId:\"RE00036837\",orderNo:\"206-2182418-5542755\",paymentApplicant:\"Jhona Ver\",refundId:\"18177(非追加)\",channel:tr.IM,customerId:\"200235401\",customerName:\"KevDue\",reviewCount:0,commentCount:0,country:nr.UK,product:\"亚伦-肉色-新APP\",category:\"成人用品/07电动仿真阳具品类/功能阳具\",asin:\"B0DGT2551Q\",shop:\"可用*UK2*AM-Y140-UK\",afterSaleCode:\"200235401T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Jhona Ver\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 06:44:56\",replyTime:\"2026-05-23 06:58:41\",replyConfirmTime:null,completedTime:null,applicant:\"Jhona Ver\",operators:\"Terisa,summer\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 06:44:56\",updatedAt:\"2026-05-23 06:58:41\",createdBy:\"excel\"},{id:121040,productId:26,replyOrderId:\"RE00036836\",orderNo:\"113-5264009-9664245\",paymentApplicant:\"RONALD TORRES\",refundId:\"22778(非追加)\",channel:tr.IM,customerId:\"200235399\",customerName:\"Riderka\",reviewCount:1,commentCount:0,country:nr.US,product:\"阿萝拉二代-玫红-新APP\",category:\"成人用品/22坐垫品类\",asin:\"B0FBWBPD4X\",shop:\"可用*USC04/14*AM-G566-US\",afterSaleCode:\"200235399T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"RONALD TORRES\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 06:18:38\",replyTime:\"2026-05-23 06:23:00\",replyConfirmTime:null,completedTime:null,applicant:\"RONALD TORRES\",operators:\"邓明欣,王婉茵,陈可媛,何蹇婕\",remark:null,refundScheme:cr.SELF_SERVICE,createdAt:\"2026-05-23 06:18:38\",updatedAt:\"2026-05-23 06:23:00\",createdBy:\"excel\"},{id:121039,productId:27,replyOrderId:\"RE00036835\",orderNo:\"114-8687675-4106609\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235396\",customerName:\"Waxing\",reviewCount:0,commentCount:0,country:nr.US,product:\"火箭训练器-新APP\",category:\"成人用品/10男用训练器品类\",asin:\"B0CZ46RLYN\",shop:\"可用*USC01*AM-H421-US\",afterSaleCode:\"200235396T002\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:53:51\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"邓明欣,吴嘉敏\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:53:51\",updatedAt:\"2026-05-23 05:53:51\",createdBy:\"excel\"},{id:121038,productId:28,replyOrderId:\"RE00036834\",orderNo:\"114-0568264-7851419\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235396\",customerName:\"Waxing\",reviewCount:0,commentCount:0,country:nr.US,product:\"昆西一代-无遥控黑色-新APP\",category:\"成人用品/10男用训练器品类\",asin:\"B0B5R9ZJ6G\",shop:\"可用*USC10*AM-G230-US\",afterSaleCode:\"200235396T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:52:54\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"邓明欣,叶佳音,胡蝶,曾雪玮\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:52:54\",updatedAt:\"2026-05-23 05:52:54\",createdBy:\"excel\"},{id:121037,productId:29,replyOrderId:\"RE00036833\",orderNo:\"206-5561820-3173930\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235151\",customerName:\"Harrietbx\",reviewCount:0,commentCount:0,country:nr.UK,product:\"米诺斯三代-红色\",category:\"成人用品/09穿戴品类\",asin:\"B0FX41WTTX\",shop:\"可用*UK2*AM-K578-UK\",afterSaleCode:\"200235151T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:51:03\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Nikko Alexis Seño\",operators:\"Terisa,蒋光梅\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:51:03\",updatedAt:\"2026-05-23 05:51:03\",createdBy:\"excel\"},{id:121035,productId:30,replyOrderId:\"RE00036832\",orderNo:\"306-9564822-9465959\",paymentApplicant:\"Nicole Ann Manahan\",refundId:\"18163(非追加)\",channel:tr.IM,customerId:\"200234895\",customerName:\"henry82A\",reviewCount:3,commentCount:0,country:nr.DE,product:\"帕洛斯-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B09P1DYB4Q\",shop:\"可用*DE2、DE3、DE5*AM-G99-DE\",afterSaleCode:\"200234895T003\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Nicole Ann Manahan\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:48:25\",replyTime:\"2026-05-23 05:55:49\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"王睿,高宁宁\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:48:25\",updatedAt:\"2026-05-23 05:55:49\",createdBy:\"excel\"},{id:121034,productId:1,replyOrderId:\"RE00036831\",orderNo:\"111-0127292-9231456\",paymentApplicant:null,refundId:null,channel:tr.PHONE,customerId:\"200235369\",customerName:\"joseph menechino\",reviewCount:0,commentCount:0,country:nr.US,product:\"战争之神-黑色-新APP\",category:\"成人用品/01电动飞机杯品类/单伸缩类\",asin:\"B0GH199VKY\",shop:\"可用*USC01*AM-Y144-US\",afterSaleCode:\"200235369T002\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Lenny\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:47:04\",replyTime:\"2026-05-23 05:48:09\",replyConfirmTime:null,completedTime:null,applicant:\"Lenny\",operators:\"康雪东\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:47:04\",updatedAt:\"2026-05-23 05:48:09\",createdBy:\"excel\"},{id:121033,productId:2,replyOrderId:\"RE00036830\",orderNo:\"305-4159164-8547564\",paymentApplicant:\"Nicole Ann Manahan\",refundId:\"18159(非追加)\",channel:tr.IM,customerId:\"200235394\",customerName:\"gimmel69\",reviewCount:0,commentCount:0,country:nr.DE,product:\"西卡-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0F23H88M9\",shop:\"可用*DE1、DE2、DE5*AM-G570-DE\",afterSaleCode:\"200235394T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.AUDIT_FAILED,reviewer:\"Nicole Ann Manahan\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:32:32\",replyTime:\"2026-05-23 05:32:53\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"胡梦婷,刘一夫\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:32:32\",updatedAt:\"2026-05-23 05:32:53\",createdBy:\"excel\"},{id:121031,productId:3,replyOrderId:\"RE00036829\",orderNo:\"304-7139472-2682700\",paymentApplicant:\"Nicole Ann Manahan\",refundId:\"22776(非追加)\",channel:tr.IM,customerId:\"200235392\",customerName:\"Annkay\",reviewCount:0,commentCount:0,country:nr.DE,product:\"新红宝石-玫红-新APP\",category:\"成人用品/20跳蛋/凯格尔球/缩阴球\",asin:\"B0BRD55SQY\",shop:\"已挂*DE2*AM-G192-DE\",afterSaleCode:\"200235392T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"Nicole Ann Manahan\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:18:06\",replyTime:\"2026-05-23 05:18:36\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"蒋缘缘\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:18:06\",updatedAt:\"2026-05-23 05:18:36\",createdBy:\"excel\"},{id:121030,productId:4,replyOrderId:\"RE00036828\",orderNo:\"403-8775452-3377965\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235391\",customerName:\"Anonimus69\",reviewCount:0,commentCount:0,country:nr.ES,product:\"亚奇环四代-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0D5H94PG6\",shop:\"可用*DE1、DE2、DE3、DE5*AM-G509-ES\",afterSaleCode:\"200235391T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 05:10:05\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"王睿,马贝贝\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 05:10:05\",updatedAt:\"2026-05-23 05:10:05\",createdBy:\"excel\"},{id:121029,productId:5,replyOrderId:\"RE00036827\",orderNo:\"402-1090886-3985113\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235390\",customerName:\"Ambergtr\",reviewCount:0,commentCount:0,country:nr.FR,product:\"菲丽棒-玫红-新APP\",category:\"成人用品/05震动棒兔子品类/兔子振动棒\",asin:\"B0F1CKJ5Q1\",shop:\"可用*DE7、DE1*AM-G290-FR\",afterSaleCode:\"200235390T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 04:39:59\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"胡梦婷\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 04:39:59\",updatedAt:\"2026-05-23 04:39:59\",createdBy:\"excel\"},{id:121028,productId:6,replyOrderId:\"RE00036826\",orderNo:\"205-0191386-2421164\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235389\",customerName:\"tamzie\",reviewCount:0,commentCount:0,country:nr.UK,product:\"亚伦-肉色-新APP\",category:\"成人用品/07电动仿真阳具品类/功能阳具\",asin:\"B0DGT2551Q\",shop:\"可用*UK2*AM-Y140-UK\",afterSaleCode:\"200235389T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 04:38:19\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"Terisa,summer\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 04:38:19\",updatedAt:\"2026-05-23 04:38:19\",createdBy:\"excel\"},{id:121027,productId:7,replyOrderId:\"RE00036825\",orderNo:\"404-3179021-4697921\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235388\",customerName:\"Sissy14\",reviewCount:0,commentCount:0,country:nr.FR,product:\"菲丽棒-玫红-新APP\",category:\"成人用品/05震动棒兔子品类/兔子振动棒\",asin:\"B0F1CKJ5Q1\",shop:\"可用*DE7、DE1*AM-G290-FR\",afterSaleCode:\"200235388T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 04:32:16\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Nikko Alexis Seño\",operators:\"胡梦婷\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 04:32:16\",updatedAt:\"2026-05-23 04:32:16\",createdBy:\"excel\"},{id:121026,productId:8,replyOrderId:\"RE00036824\",orderNo:\"113-7823077-3021054\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235386\",customerName:\"US-EINSEO\",reviewCount:0,commentCount:0,country:nr.US,product:\"加特林-红黑-新APP礼盒吸盘无震动\",category:\"成人用品/01电动飞机杯品类/伸缩旋转类\",asin:\"B0F6L4FLJS\",shop:\"可用*USC01*AM-Y149-US\",afterSaleCode:\"200235386T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 04:14:33\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Mia Rose Olivia\",operators:\"邓明欣,林陆\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 04:14:33\",updatedAt:\"2026-05-23 04:14:33\",createdBy:\"excel\"},{id:121025,productId:9,replyOrderId:\"RE00036823\",orderNo:\"111-7506534-7609853\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235385\",customerName:\"Geo98\",reviewCount:0,commentCount:0,country:nr.US,product:\"加特林-红黑-新APP礼盒吸盘无震动\",category:\"成人用品/01电动飞机杯品类/伸缩旋转类\",asin:\"B0F6L4FLJS\",shop:\"可用*USC01*AM-G561-US\",afterSaleCode:\"200235385T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 04:12:40\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"邓明欣,林陆\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 04:12:40\",updatedAt:\"2026-05-23 04:12:40\",createdBy:\"excel\"},{id:121024,productId:10,replyOrderId:\"RE00036822\",orderNo:\"206-2766994-7792347\",paymentApplicant:\"Nikko Alexis Seño\",refundId:\"18144(非追加)\",channel:tr.IM,customerId:\"200235384\",customerName:\"Morgantt\",reviewCount:2,commentCount:0,country:nr.UK,product:\"新红宝石-玫红-新APP\",category:\"成人用品/20跳蛋/凯格尔球/缩阴球\",asin:\"B0F8HZLF59\",shop:\"可用*UK2*AM-Y151-UK\",afterSaleCode:\"200235384T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Nikko Alexis Seño\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 03:23:36\",replyTime:\"2026-05-23 03:28:10\",replyConfirmTime:null,completedTime:null,applicant:\"Nikko Alexis Seño\",operators:\"Terisa,summer\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 03:23:36\",updatedAt:\"2026-05-23 03:28:10\",createdBy:\"excel\"},{id:121023,productId:11,replyOrderId:\"RE00036821\",orderNo:\"111-8809592-6893864\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235383\",customerName:\"Toymaster\",reviewCount:0,commentCount:0,country:nr.US,product:\"大金刚-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0CVX3P47S\",shop:\"可用*USC08*AM-G360-US\",afterSaleCode:\"200235383T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 03:18:11\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jomari Gomez\",operators:\"邓明欣,罗昆\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 03:18:11\",updatedAt:\"2026-05-23 03:18:11\",createdBy:\"excel\"},{id:121022,productId:12,replyOrderId:\"RE00036820\",orderNo:\"113-6724323-0836239\",paymentApplicant:\"Stephen Dave Pano\",refundId:\"22774(非追加)\",channel:tr.IM,customerId:\"200197295\",customerName:\"Mastercheaks\",reviewCount:3,commentCount:0,country:nr.US,product:\"马丁杯-肉色内胆-新APP\",category:\"成人用品/01电动飞机杯品类/允吸类\",asin:\"B0GBWWQDWY\",shop:\"可用*USC01*AM-K484-US\",afterSaleCode:\"200197295T007\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.PENDING_REFUND,reviewer:\"Stephen Dave Pano\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:\"https://amazon.com/gp/customer-reviews/R3VJBUX9AF3NS5?ref=pf_ov_at_pdctrvw_srp\",profileUrl:\"https://www.amazon.com/gp/profile/amzn1.account.AH7LQUK2QYNTGORRVHGZ6L7DQ5IQ\",commentTime:null,startTime:\"2026-05-23 03:17:54\",replyTime:\"2026-05-23 04:08:02\",replyConfirmTime:null,completedTime:null,applicant:\"Stephen Dave Pano\",operators:\"邓明欣,曾惜\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 03:17:54\",updatedAt:\"2026-05-23 04:08:02\",createdBy:\"excel\"},{id:121021,productId:13,replyOrderId:\"RE00036819\",orderNo:\"404-0312481-9461919\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235382\",customerName:\"Molly01\",reviewCount:0,commentCount:0,country:nr.FR,product:\"亚伦-肉色-新APP\",category:\"成人用品/07电动仿真阳具品类/功能阳具\",asin:\"B0G11PPBYH\",shop:\"可用*DE1、DE2、DE3、DE5*AM-G509-FR\",afterSaleCode:\"200235382T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 02:59:42\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"Terisa,冼小青\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 02:59:42\",updatedAt:\"2026-05-23 02:59:42\",createdBy:\"excel\"},{id:121020,productId:14,replyOrderId:\"RE00036818\",orderNo:\"303-8566143-4615525\",paymentApplicant:\"Nicole Ann Manahan\",refundId:\"18141(非追加)\",channel:tr.IM,customerId:\"200235381\",customerName:\"becasp\",reviewCount:0,commentCount:0,country:nr.DE,product:\"后庭王者-玫红无遥控-新APP\",category:\"成人用品/09穿戴品类\",asin:\"B09YPPDM6N\",shop:\"可用*DE1、DE7*AM-G411-DE\",afterSaleCode:\"200235381T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.AUDIT_FAILED,reviewer:\"Nicole Ann Manahan\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 02:56:45\",replyTime:\"2026-05-23 02:57:21\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"胡梦婷\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 02:56:45\",updatedAt:\"2026-05-23 02:57:21\",createdBy:\"excel\"},{id:121019,productId:15,replyOrderId:\"RE00036817\",orderNo:\"303-1508312-1974713\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235380\",customerName:\"Pohlaris\",reviewCount:0,commentCount:0,country:nr.DE,product:\"黑暗骑士-红黑-新APP\",category:\"成人用品/01电动飞机杯品类/伸缩旋转类\",asin:\"B09VB5H8HV\",shop:\"可用*DE6*AM-295-DE\",afterSaleCode:\"200235380T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.REVIEWED,refundStatus:null,reviewer:\"Nicole Ann Manahan\",replyConfirmer:\"Nicole Ann Manahan\",commentStatus:or.GOOD,starRating:\"5\",commentUrl:\"https://www.amazon.de/-/en/gp/customer-reviews/R300JQZHIVLPVH/ref=cm_cr_getr_d_rvw_ttl?ie=UTF8\",profileUrl:\"https://www.amazon.de/-/en/gp/profile/amzn1.account.AFH2FEBP7LTVQJDMPEXB43TVF5AA\",commentTime:\"2026-05-18\",startTime:\"2026-05-23 02:42:01\",replyTime:\"2026-05-23 02:43:20\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"廖振星,莫俊诗,周泽双\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 02:42:01\",updatedAt:\"2026-05-23 02:43:20\",createdBy:\"excel\"},{id:121018,productId:16,replyOrderId:\"RE00036816\",orderNo:\"111-4189301-7838661\",paymentApplicant:\"Thomas Miguel Atienza\",refundId:\"22773(非追加)\",channel:tr.IM,customerId:\"200235379\",customerName:\"sdaniels84\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花二代-紫色-新APP礼盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0FHPZ64Z4\",shop:\"可用*USC03*AM-G156-US\",afterSaleCode:\"200235379T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.REFUND_LOCKED,reviewer:\"Thomas Miguel Atienza\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 02:38:45\",replyTime:\"2026-05-23 02:39:34\",replyConfirmTime:null,completedTime:null,applicant:\"Thomas Miguel Atienza\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 02:38:45\",updatedAt:\"2026-05-23 02:39:34\",createdBy:\"excel\"},{id:121017,productId:17,replyOrderId:\"RE00036815\",orderNo:\"701-4752589-1139456\",paymentApplicant:\"Cherry Joy Dizon\",refundId:\"18142(非追加)\",channel:tr.IM,customerId:\"200234819\",customerName:\"sksidjfjdkskdjd\",reviewCount:0,commentCount:0,country:nr.CA,product:\"加特林-红黑-新APP礼盒吸盘无震动\",category:\"成人用品/01电动飞机杯品类/伸缩旋转类\",asin:\"B0FPWMZX37\",shop:\"可用*USC01*AM-Y128-CA\",afterSaleCode:\"200234819T002\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Cherry Joy Dizon\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 02:34:22\",replyTime:\"2026-05-23 03:06:36\",replyConfirmTime:null,completedTime:null,applicant:\"Cherry Joy Dizon\",operators:\"邓明欣,林陆\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 02:34:22\",updatedAt:\"2026-05-23 03:06:36\",createdBy:\"excel\"},{id:121015,productId:18,replyOrderId:\"RE00036814\",orderNo:\"111-8132681-6633005\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235374\",customerName:\"ethereal333\",reviewCount:0,commentCount:0,country:nr.US,product:\"茉莉花二代-玫红-新APP黑盒\",category:\"成人用品/03玫瑰花品类/双头-允吸\",asin:\"B0CNRZVJMG\",shop:\"可用*USC03*AM-G114-US\",afterSaleCode:\"200235374T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 01:50:28\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"邓明欣,李嘉贤\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 01:50:28\",updatedAt:\"2026-05-23 01:50:28\",createdBy:\"excel\"},{id:121014,productId:19,replyOrderId:\"RE00036813\",orderNo:\"303-1662445-0315516\",paymentApplicant:\"Nicole Ann Manahan\",refundId:\"18132(非追加)\",channel:tr.IM,customerId:\"200235373\",customerName:\"MaPa2023\",reviewCount:0,commentCount:0,country:nr.DE,product:\"蜗牛战士-黑色-新APP\",category:\"成人用品/11锁精环品类/振动锁精环\",asin:\"B0F3CPCKCW\",shop:\"可用*DE1、DE7*AM-G333-DE\",afterSaleCode:\"200235373T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Nicole Ann Manahan\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 01:39:44\",replyTime:\"2026-05-23 01:40:10\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"何兴,刘静\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 01:39:44\",updatedAt:\"2026-05-23 01:40:10\",createdBy:\"excel\"},{id:121012,productId:20,replyOrderId:\"RE00036812\",orderNo:\"114-7906824-8514663\",paymentApplicant:\"Danica C. Aragones\",refundId:\"18131(非追加)\",channel:tr.IM,customerId:\"200235371\",customerName:\"Moppie252\",reviewCount:0,commentCount:0,country:nr.US,product:\"青春之吻-粉色-新APP\",category:\"成人用品/03玫瑰花品类/单花-允吸\",asin:\"B0F29CN8BX\",shop:\"可用*USC03*AM-Y56-US\",afterSaleCode:\"200235371T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:ln.REFUND_LOCKED,reviewer:\"Jomari Gomez\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 01:24:41\",replyTime:\"2026-05-23 01:26:44\",replyConfirmTime:null,completedTime:null,applicant:\"Jomari Gomez\",operators:\"邓明欣,曾惜\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 01:24:41\",updatedAt:\"2026-05-23 01:26:44\",createdBy:\"excel\"},{id:121011,productId:21,replyOrderId:\"RE00036811\",orderNo:\"205-0159200-6416349\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235370\",customerName:\"jimnon\",reviewCount:0,commentCount:0,country:nr.UK,product:\"亚奇环四代-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0D6YRCKFH\",shop:\"可用*UK1、UK3*AM-404-UK\",afterSaleCode:\"200235370T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 01:23:44\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Mia Rose Olivia\",operators:\"王睿\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 01:23:44\",updatedAt:\"2026-05-23 01:23:44\",createdBy:\"excel\"},{id:121009,productId:22,replyOrderId:\"RE00036810\",orderNo:\"112-2508785-0785061\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235367\",customerName:\"war53\",reviewCount:0,commentCount:0,country:nr.US,product:\"麦哲伦-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0D2QK8Z19\",shop:\"可用*USC08*AM-G596-US\",afterSaleCode:\"200235367T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 00:48:48\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Jessa Persincula\",operators:\"邓明欣,李艳,罗昆,李碧祺\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 00:48:48\",updatedAt:\"2026-05-23 00:48:48\",createdBy:\"excel\"},{id:121008,productId:23,replyOrderId:\"RE00036809\",orderNo:\"304-8593275-3600324\",paymentApplicant:\"Nicole Ann Manahan\",refundId:\"18127(非追加)\",channel:tr.IM,customerId:\"200235366\",customerName:\"saynothig\",reviewCount:0,commentCount:0,country:nr.DE,product:\"马丁杯-棕色内胆-新APP\",category:\"成人用品/01电动飞机杯品类/允吸类\",asin:\"B0FLJJ2D6Q\",shop:\"可用*DE6*AM-G425-DE\",afterSaleCode:\"200235366T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Nicole Ann Manahan\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 00:45:16\",replyTime:\"2026-05-23 00:46:00\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"廖振星,莫俊诗\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 00:45:16\",updatedAt:\"2026-05-23 00:46:00\",createdBy:\"excel\"},{id:121007,productId:24,replyOrderId:\"RE00036808\",orderNo:\"204-8531778-9925134\",paymentApplicant:\"Thomas Miguel Atienza\",refundId:\"18126(非追加)\",channel:tr.IM,customerId:\"200235365\",customerName:\"Shawnnyboi\",reviewCount:0,commentCount:0,country:nr.UK,product:\"花鸟-黑色-新APP\",category:\"成人用品/08前列腺按摩器+肛塞品类/前列腺按摩器\",asin:\"B0F4QZ4C98\",shop:\"可用*UK2*AM-G334-UK\",afterSaleCode:\"200235365T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Thomas Miguel Atienza\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 00:34:45\",replyTime:\"2026-05-23 00:35:50\",replyConfirmTime:null,completedTime:null,applicant:\"Thomas Miguel Atienza\",operators:\"Terisa,蒋光梅\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 00:34:45\",updatedAt:\"2026-05-23 00:35:50\",createdBy:\"excel\"},{id:121006,productId:25,replyOrderId:\"RE00036807\",orderNo:\"028-2086166-0364304\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235364\",customerName:\"user21652019\",reviewCount:1,commentCount:0,country:nr.DE,product:\"情比金坚-小号-新APP\",category:\"成人用品/11锁精环品类/振动锁精环\",asin:\"B0BRN1QH85\",shop:\"可用*DE2、DE3*AM-G281-DE\",afterSaleCode:\"200235364T002\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_CONFIRM,refundStatus:null,reviewer:\"Nicole Ann Manahan\",replyConfirmer:null,commentStatus:or.DELETE,starRating:\"5\",commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 00:28:52\",replyTime:\"2026-05-23 00:39:51\",replyConfirmTime:null,completedTime:null,applicant:\"Nicole Ann Manahan\",operators:\"王睿\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 00:28:52\",updatedAt:\"2026-05-23 00:39:51\",createdBy:\"excel\"},{id:121005,productId:26,replyOrderId:\"RE00036806\",orderNo:\"111-8597566-2461032\",paymentApplicant:null,refundId:null,channel:tr.IM,customerId:\"200235363\",customerName:\"Shardanaé\",reviewCount:0,commentCount:0,country:nr.US,product:\"红唇-红色-新APP-礼盒\",category:\"成人用品/04阴蒂刺激品类/舌舔振动器\",asin:\"B0CLRLP33T\",shop:\"可用*USC04/14*AM-G511-US\",afterSaleCode:\"200235363T001\",orderStatus:ar.SHIPPED,replyOrderStatus:Kt.PENDING_UPLOAD,refundStatus:null,reviewer:null,replyConfirmer:null,commentStatus:or.NONE,starRating:null,commentUrl:null,profileUrl:null,commentTime:null,startTime:\"2026-05-23 00:21:28\",replyTime:null,replyConfirmTime:null,completedTime:null,applicant:\"Mia Rose Olivia\",operators:\"邓明欣,王婉茵,陈可媛\",remark:null,refundScheme:cr.FINANCIAL,createdAt:\"2026-05-23 00:21:28\",updatedAt:\"2026-05-23 00:21:28\",createdBy:\"excel\"}];cce.forEach((e,t)=>{e.reviewPlanId=`RP${String(t%50+1).padStart(4,\"0\")}`});const VZe=[\"无线蓝牙耳机\",\"智能手表\",\"便携式充电器\",\"LED台灯\",\"机械键盘\",\"无线鼠标\",\"蓝牙音箱\",\"运动水杯\",\"瑜伽垫\",\"电子书阅读器\",\"摄像头\",\"扫地机器人\",\"空气净化器\",\"加湿器\",\"电热水壶\",\"咖啡机\",\"电动牙刷\",\"吹风机\",\"卷发棒\",\"电饭煲\",\"慢磨榨汁机\",\"面包机\",\"电磁炉\",\"电压力锅\",\"空气炸锅\",\"投影仪\",\"移动硬盘\",\"USB集线器\",\"降噪耳机\",\"游戏手柄\"],WZe=[\"Electronics\",\"Home\",\"Beauty\",\"Sports\",\"Kitchen\",\"Office\",\"Outdoor\",\"Toys\",\"Health\",\"Automotive\"];function GZe(e){const t=G.helpers.maybe(()=>G.helpers.arrayElement([vy.S,vy.LEVEL_1,vy.LEVEL_2,vy.LEVEL_3]),{probability:.9})??null,r=G.helpers.maybe(()=>u2.DISABLED,{probability:.2})??u2.ACTIVE,n=Object.values(nr),a=Object.values(tr),i=G.number.int({min:1,max:3}),o=G.number.int({min:1,max:3}),l=G.helpers.arrayElements(n,{min:i,max:i}),s=G.helpers.arrayElements(a,{min:o,max:o});return{id:e+1,code:`PRD-${G.string.alpha({length:3,casing:\"upper\"})}`,name:VZe[e],promoLevel:t,imageUrl:G.helpers.maybe(()=>G.image.url(),{probability:.7})??null,nameEn:G.commerce.productName(),asin:`B0${G.string.alphanumeric({length:8,casing:\"upper\"})}`,category:G.helpers.arrayElement(WZe),status:r,countries:l,channels:s}}const pM=Array.from({length:30},(e,t)=>GZe(t));function UZe(e){return pM.find(t=>t.id===e)}const KZe=Object.values(nr),YZe=Object.values(co);function qZe(){const e=G.number.int({min:0,max:3});if(e===0)return[];const t=new Set,r=[];for(let n=0;n<e;n++){let a;do a=G.helpers.arrayElement(YZe);while(t.has(a));t.add(a);let i;switch(a){case co.PHONE:i=G.phone.number();break;case co.EMAIL:i=G.internet.email();break;case co.TWITTER:i=`@${G.internet.userName()}`;break;case co.FACEBOOK:i=G.internet.userName();break;case co.WECHAT:i=`wx_${G.string.alphanumeric({length:8})}`;break;case co.JOYHUB_ID:i=`JH-${G.string.alphanumeric({length:6,casing:\"upper\"})}`;break;default:i=G.internet.userName()}r.push({type:a,value:i})}return r}function XZe(e){const t=G.number.int({min:0,max:50}),r=G.number.int({min:0,max:t}),n=G.number.int({min:0,max:r}),a=G.datatype.boolean({probability:.05}),i=G.datatype.boolean({probability:.08});let o;a?o=Gu.BLACKLISTED:i?o=Gu.HIGH_RISK:(o=G.helpers.maybe(()=>G.helpers.arrayElement([Gu.QUALIFIED,Gu.DISQUALIFIED]),{probability:.95})??null,o===null&&(o=G.helpers.maybe(()=>Gu.QUALIFIED,{probability:.82})??null));const l=G.helpers.arrayElement(KZe),s=G.number.int({min:0,max:5}),u=[];for(let c=0;c<s;c++)u.push(G.commerce.productName());return{userName:G.person.firstName()+\" \"+G.person.lastName(),userId:e+1,country:l,phone:G.phone.number(),email:G.internet.email(),userType:G.helpers.arrayElement([\"normal\",\"vip\",\"koc\"]),otherContacts:qZe(),userRemark:G.helpers.maybe(()=>G.lorem.sentence(),{probability:.3})??null,createdBy:G.helpers.arrayElement([\"admin\",\"system\",\"import\"]),createdAt:G.date.past({years:1}).toISOString(),joyhubId:G.helpers.maybe(()=>`JH-${G.string.alphanumeric({length:6,casing:\"upper\"})}`,{probability:.6})??null,joyhubNickname:G.helpers.maybe(()=>G.internet.userName(),{probability:.6})??null,appRegisterTime:G.helpers.maybe(()=>G.date.past({years:2}).toISOString(),{probability:.5})??null,appLastOnlineTime:G.helpers.maybe(()=>G.date.recent({days:30}).toISOString(),{probability:.6})??null,appBoundProducts:u,appActivityCount:G.number.int({min:0,max:20}),emailCode:G.helpers.maybe(()=>G.string.alphanumeric({length:6,casing:\"upper\"}),{probability:.4})??null,totalOrders:t,replyCount:r,reviewCount:n,isBlacklisted:a,isHighRisk:i,qualificationStatus:o}}const JZe=Array.from({length:50},(e,t)=>XZe(t)),ZZe=[\"张三\",\"李四\",\"王五\",\"赵六\",\"钱七\",\"孙八\",\"周九\",\"吴十\",\"郑十一\",\"冯十二\"];function QZe(e){const t=[en.CREATE];switch(e){case Kt.PENDING_UPLOAD:return t;case Kt.PENDING_CONFIRM:return[...t,en.UPLOAD_REPLY];case Kt.REVIEWED:return[...t,en.UPLOAD_REPLY,en.REFUND_CONFIRM];default:return t}}const eQe=[en.EDIT,en.CHANGE_ORDER,en.CHANGE_APPLICANT,en.PAYMENT_REQUEST,en.SERVICE_AUDIT],tQe={[en.CREATE]:\"创建测评订单\",[en.EDIT]:\"编辑测评订单信息\",[en.UPLOAD_ORDER]:\"上传订单,订单号: {orderNo}\",[en.UPLOAD_REPLY]:\"上传回评评论ID: {commentId}\",[en.CHANGE_ORDER]:\"更换订单,原因: {reason}\",[en.ALTER_ORDER]:\"更改订单信息\",[en.TRANSFER_REVIEW]:\"转为测评\",[en.TRANSFER_FREE]:\"转为免评\",[en.CHANGE_APPLICANT]:\"更换申请人\",[en.PAYMENT_REQUEST]:\"发起请款\",[en.REFUND_CONFIRM]:\"确认返款\",[en.SERVICE_AUDIT]:\"服务商审核{result}\",[en.REFUND_EXCEED_AUDIT]:\"退款超额审核\",[en.ANTI_FRAUD_AUDIT]:\"追反审核\",[en.TRANSFER_AUDIT]:\"转评审核\",[en.CANCEL]:\"撤销测评订单\"};function bG(e,t){const r=G.date.between({from:t,to:new Date().toISOString()}).toISOString(),n=tQe[e]??e;return{operatedAt:r,operator:G.helpers.arrayElement(ZZe),operationType:e,content:n.replace(\"{orderNo}\",`ORD-${G.string.numeric(8)}`).replace(\"{commentId}\",`CMT-${G.string.alphanumeric({length:6,casing:\"upper\"})}`).replace(\"{reason}\",G.lorem.sentence()).replace(\"{result}\",G.helpers.arrayElement([\"通过\",\"不通过\"])),remark:G.helpers.maybe(()=>G.lorem.sentence(),{probability:.3})??null}}function rQe(e){const t=G.number.int({min:3,max:10}),r=QZe(e),n=[],a=G.date.past({years:1});for(const i of r)n.push(bG(i,a));for(;n.length<t;){const i=G.helpers.arrayElement(eQe);n.push(bG(i,a))}return n.sort((i,o)=>new Date(i.operatedAt).getTime()-new Date(o.operatedAt).getTime()),n}const A5=new Map;function nQe(e,t){return A5.has(e)||A5.set(e,rQe(t)),A5.get(e)}function aQe(e=30){const t=[\"open\",\"investigating\",\"confirmed\",\"dismissed\",\"resolved\"],r=[\"refund_fraud\",\"fake_review\",\"account_sharing\",\"policy_violation\",\"other\"],n=[kn.Low,kn.Medium,kn.High,kn.Critical];return Array.from({length:e},()=>{const a=G.helpers.arrayElement(n);return{id:G.string.uuid(),reviewerId:G.string.uuid(),reviewerName:G.person.fullName(),reviewerCode:`R${G.string.numeric(6)}`,riskLevel:a,association:G.helpers.arrayElement([nc.Strong,nc.Weak]),eventType:G.helpers.arrayElement(r),title:G.helpers.arrayElement(r)+\" - \"+G.lorem.sentence({min:3,max:6}),description:G.lorem.paragraph(),evidence:Array.from({length:G.number.int({min:1,max:4})},()=>({id:G.string.uuid(),type:G.helpers.arrayElement([\"screenshot\",\"log\",\"order_record\",\"chat_record\",\"behavior_data\"]),url:G.internet.url(),description:G.lorem.sentence(),timestamp:G.date.recent({days:14}).toISOString()})),status:G.helpers.arrayElement(t),assignedTo:G.datatype.boolean()?G.string.uuid():void 0,assignedName:G.datatype.boolean()?G.person.fullName():void 0,createdAt:G.date.recent({days:30}).toISOString(),updatedAt:G.date.recent({days:3}).toISOString(),resolvedAt:G.datatype.boolean()?G.date.recent({days:1}).toISOString():void 0,resolution:G.datatype.boolean()?G.lorem.sentence():void 0}})}function iQe(e=15){return Array.from({length:e},()=>({id:G.string.uuid(),reviewerId:G.string.uuid(),reviewerName:G.person.fullName(),reviewerCode:`R${G.string.numeric(6)}`,reason:G.helpers.arrayElement([\"多次退款欺诈\",\"虚假评价\",\"账号共享\",\"违反平台政策\",\"刷单行为\"]),riskLevel:G.helpers.arrayElement([kn.High,kn.Critical]),source:G.helpers.arrayElement([\"auto\",\"manual\"]),addedBy:G.string.uuid(),addedByName:G.person.fullName(),addedAt:G.date.recent({days:60}).toISOString(),expiresAt:G.datatype.boolean()?G.date.future({years:1}).toISOString():void 0,isActive:G.datatype.boolean({probability:.8})}))}function oQe(e=25){return Array.from({length:e},()=>({id:G.string.uuid(),reviewerId:G.string.uuid(),reviewerName:G.person.fullName(),asin:`B0${G.string.alphanumeric(8).toUpperCase()}`,productName:G.commerce.productName(),orderDate:G.date.recent({days:30}).toISOString(),orderAmount:parseFloat(G.commerce.price({min:20,max:500})),refundDate:G.date.recent({days:14}).toISOString(),refundAmount:parseFloat(G.commerce.price({min:10,max:400})),reviewSubmittedBeforeRefund:G.datatype.boolean(),reviewSubmittedAt:G.datatype.boolean()?G.date.recent({days:7}).toISOString():void 0,riskScore:G.number.int({min:0,max:100}),flaggedAt:G.date.recent({days:7}).toISOString()}))}const _5=aQe(),lQe=iQe(),sQe=oQe(),mh=[...cce],uQe=[...EZe],xG=[...vZe],yF=[...dZe];function CG(e){return e?e instanceof URLSearchParams?Object.fromEntries(e.entries()):typeof e==\"object\"?Object.fromEntries(Object.entries(e).filter(([,t])=>t!=null&&t!==\"\").map(([t,r])=>[t,String(r)])):{}:{}}function cQe(e,t){const[r,n=\"\"]=e.split(\"?\"),a=CG(new URLSearchParams(n));return{path:r,query:{...a,...CG(t)}}}function eo(e,t){const r=Number(t.page||t.current||1),n=Number(t.pageSize||20),a=(r-1)*n;return{list:e.slice(a,a+n),total:e.length,page:r,pageSize:n}}function to(e,t){if(!t)return e;const r=t.toLowerCase();return e.filter(n=>JSON.stringify(n).toLowerCase().includes(r))}function Cr(e){return Promise.resolve(e)}function FG(e,t,r){const n=e.findIndex(a=>String(a.id)===String(t));return n>=0?(e[n]={...e[n],...r},e[n]):{...e[0],id:t,...r}}async function yD({method:e,url:t,params:r,data:n}){const{path:a,query:i}=cQe(t,r),o=n||{};if(a===\"/auth/login\"&&e===\"post\"){const l=DWe(String(o.username||\"\"),String(o.password||\"\"))||KE[0],{password:s,...u}=l;return Cr({token:`single_file_token_${l.id}_${Date.now()}`,user:u})}if(a===\"/auth/profile\"){const{password:l,...s}=AWe(\"1\")||KE[0];return Cr(s)}if(a===\"/auth/logout\"||a===\"/auth/refresh\")return Cr(a===\"/auth/refresh\"?{token:`single_file_token_${Date.now()}`}:void 0);if(a===\"/dashboard/plan\")return Cr(jZe);if(a===\"/dashboard/asin\")return Cr(zZe);if(a===\"/dashboard/cs\")return Cr(HZe);if(a===\"/dashboard/overview\")return Cr({totalRequirements:es.length,activePlans:gF.length,openTickets:Ac.length,pendingRiskEvents:_5.length,todayCompleted:12});if(a===\"/requirements\")return Cr(eo(to(es,i.keyword),i));if(a===\"/requirements/stats\")return Cr({total:es.length,draft:es.filter(l=>l.status===\"draft\").length,submitted:es.filter(l=>l.status===\"submitted\").length,approved:es.filter(l=>l.status===\"approved\").length,inProgress:es.filter(l=>l.status===\"in_progress\").length,completed:es.filter(l=>l.status===\"completed\").length,cancelled:es.filter(l=>l.status===\"cancelled\").length});if(a.startsWith(\"/requirements/\")){const l=a.split(\"/\")[2];return Cr(es.find(s=>s.id===l)||es[0])}if(a===\"/plans\")return Cr(eo(to(gF,i.keyword),i));if(a.startsWith(\"/plans/\")){const l=a.split(\"/\")[2],s=gF.find(u=>u.id===l)||gF[0];return Cr(mJe(s))}if(a===\"/review-plans\")return Cr(eo(to(uG,i.keyword),i));if(a.match(/^\\/review-plans\\/[^/]+\\/im-pushes$/)){const l=a.split(\"/\")[2];return Cr(yF.filter(s=>s.reviewPlanId===l))}if(a.match(/^\\/review-plans\\/[^/]+\\/orders$/)){const l=a.split(\"/\")[2];return Cr(mh.filter(s=>s.reviewPlanId===l))}if(a.startsWith(\"/review-plans/\")){const l=a.split(\"/\")[2];return Cr(uG.find(s=>s.id===l)||ice({id:l}))}if(a===\"/reply-plans\")return Cr(eo(to(w5,i.keyword),i));if(a.startsWith(\"/reply-plans/\")){const l=a.split(\"/\")[2];return Cr(w5.find(s=>s.id===l)||w5[0])}if(a===\"/reviewers\")return Cr(eo(to(E5,i.keyword),i));if(a.match(/^\\/reviewers\\/[^/]+\\/quota$/))return Cr({monthlyReview:2,maxMonthlyReview:4,monthlyFree:1,maxMonthlyFree:4});if(a.startsWith(\"/reviewers/\")){const l=a.split(\"/\")[2],s=E5.find(u=>u.id===l||u.code===l)||E5[0];return Cr(e===\"get\"?HJe(s):s)}if(a===\"/tickets\")return Cr(eo(to(Ac,i.keyword),i));if(a===\"/tickets/stats\")return Cr({total:Ac.length,pending:Ac.filter(l=>l.status===\"pending\").length,inProgress:Ac.filter(l=>l.status===\"in_progress\").length,resolved:Ac.filter(l=>l.status===\"resolved\").length,closed:Ac.filter(l=>l.status===\"closed\").length});if(a.startsWith(\"/tickets/\")){const l=a.split(\"/\")[2];return Cr(Ac.find(s=>s.id===l)||Ac[0])}if(a===\"/chat/conversations\")return Cr(KJe);if(a.match(/^\\/chat\\/conversations\\/[^/]+\\/messages$/))return Cr(GJe(a.split(\"/\")[3]));if(a===\"/chat/quick-replies\")return Cr(YJe);if(a.startsWith(\"/chat/\"))return Cr(void 0);if(a===\"/channel/push-tasks\")return Cr(eo(to(dG,i.keyword),i));if(a.startsWith(\"/channel/push-tasks/\"))return Cr(dG[0]);if(a===\"/channel/im\")return Cr(ZJe);if(a.startsWith(\"/channel/im/\"))return Cr({success:!0});if(a===\"/channel/edm\")return Cr(QJe);if(a.startsWith(\"/channel/edm/\"))return Cr({success:!0});if(a===\"/im-pushes\"){const l=to(yF,i.keyword);return Cr({...eo(l,i),totals:fZe(l)})}if(a.startsWith(\"/im-pushes/\")){const l=Number(a.split(\"/\")[2]);return Cr(yF.find(s=>s.id===l)||yF[0])}if(a===\"/im-cards\")return Cr(eo(to(xG,i.keyword),i));if(a.startsWith(\"/im-cards/\")){const l=Number(a.split(\"/\")[2]),s=a.endsWith(\"/off-shelf\")?\"inactive\":a.endsWith(\"/on-shelf\")?\"active\":void 0;return Cr(FG(xG,l,s?{status:s}:{}))}if(a===\"/orders/search\")return Cr(yG.filter(l=>!i.orderNo||l.orderNo.includes(i.orderNo)).slice(0,20));if(a===\"/orders\")return Cr(eo(to(yG,i.keyword),i));if(a===\"/review-products\")return Cr(eo(to(D5,i.keyword),i));if(a.startsWith(\"/review-products/\")){const l=Number(a.split(\"/\")[2]);return Cr(D5.find(s=>s.id===l)||D5[0])}if(a===\"/products\")return Cr(eo(to(pM,i.keyword),i));if(a.startsWith(\"/products/\")){const l=Number(a.split(\"/\")[2]);return Cr(UZe(l)||pM[0])}if(a===\"/user-info\")return Cr(TZe);if(a===\"/users/search\")return Cr(JZe.slice(0,20));if(a===\"/refund-records\")return Cr(gG);if(a===\"/comments/search\")return Cr([]);if(a===\"/review-orders\"){if(e===\"post\")return Cr({...mh[0],id:Date.now(),...o});const l=i.replyOrderId||i.customerId||i.searchKeyword?mh:[...mh,...uQe];return Cr(eo(to(l,i.searchKeyword||i.keyword),i))}if(a===\"/review-orders/export\")return Cr(new Blob([\"single-file export\"]));if(a===\"/review-orders/import\")return Cr({success:1,failed:0,errors:[]});if(a.match(/^\\/review-orders\\/\\d+\\/refunds$/))return Cr(gG);if(a.match(/^\\/review-orders\\/\\d+\\/audit-logs$/)){const l=Number(a.split(\"/\")[2]),s=mh.find(u=>u.id===l)||mh[0];return Cr(nQe(l,s.replyOrderStatus||Kt.PENDING_UPLOAD))}if(a.startsWith(\"/review-orders/\")){const l=Number(a.split(\"/\")[2]);return Cr(FG(mh,l,e===\"put\"||e===\"post\"?o:{}))}return a===\"/risk/events\"?Cr(eo(to(_5,i.keyword),i)):a.startsWith(\"/risk/events/\")?Cr(_5[0]):Cr(a===\"/risk/blacklist\"?eo(to(lQe,i.keyword),i):a===\"/risk/refund-comparisons\"?eo(to(sQe,i.keyword),i):e===\"get\"?{list:[],total:0,page:1,pageSize:20}:{success:!0})}const dce=Ba.create({baseURL:\"/api\",timeout:3e4,headers:{\"Content-Type\":\"application/json\"}});dce.interceptors.request.use(e=>{var r;const t=localStorage.getItem(\"auth_token\");return t&&e.headers&&(e.headers.Authorization=`Bearer ${t}`),(r=e.headers)!=null&&r[\"X-Require-Mask\"],e},e=>Promise.reject(e));dce.interceptors.response.use(e=>{const t=e.data;if(t.code===0)return e;const r=t.message||\"请求失败,请稍后重试\";return vt.error(r),t.code===401&&(localStorage.removeItem(\"auth_token\"),localStorage.removeItem(\"user_info\"),window.location.href=\"/login\"),Promise.reject(new Error(r))},e=>{if(e.response){const t=e.response.status;switch(t){case 401:localStorage.removeItem(\"auth_token\"),localStorage.removeItem(\"user_info\"),window.location.href=\"/login\",vt.error(\"登录已过期,请重新登录\");break;case 403:vt.error(\"没有权限执行此操作\");break;case 404:vt.error(\"请求的资源不存在\");break;case 500:vt.error(\"服务器内部错误\");break;default:vt.error(`请求失败 (${t})`)}}else e.request?vt.error(\"网络连接失败,请检查网络设置\"):vt.error(\"请求配置错误\");return Promise.reject(e)});async function Or(e,t,r){return yD({method:\"get\",url:e,params:t})}async function fr(e,t,r){return yD({method:\"post\",url:e,data:t})}async function Go(e,t,r){return yD({method:\"put\",url:e,data:t})}async function sd(e,t){return yD({method:\"delete\",url:e})}const bD={login:e=>fr(\"/auth/login\",e),logout:()=>fr(\"/auth/logout\"),fetchProfile:()=>Or(\"/auth/profile\"),refreshToken:()=>fr(\"/auth/refresh\")},dQe={user:null,token:localStorage.getItem(\"auth_token\"),status:\"idle\",error:null},T5=tn(\"auth/login\",async(e,{rejectWithValue:t})=>{try{const r=await bD.login(e);return localStorage.setItem(\"auth_token\",r.token),r}catch(r){const n=r instanceof Error?r.message:\"登录失败\";return t(n)}}),fce=tn(\"auth/logout\",async(e,{rejectWithValue:t})=>{try{await bD.logout(),localStorage.removeItem(\"auth_token\"),localStorage.removeItem(\"user_info\")}catch(r){const n=r instanceof Error?r.message:\"登出失败\";return t(n)}}),I5=tn(\"auth/fetchProfile\",async(e,{rejectWithValue:t})=>{try{return await bD.fetchProfile()}catch(r){const n=r instanceof Error?r.message:\"获取用户信息失败\";return t(n)}}),hce=Du({name:\"auth\",initialState:dQe,reducers:{setToken:(e,t)=>{e.token=t.payload,localStorage.setItem(\"auth_token\",t.payload)},clearAuth:e=>{e.user=null,e.token=null,e.status=\"idle\",e.error=null,localStorage.removeItem(\"auth_token\"),localStorage.removeItem(\"user_info\")}},extraReducers:e=>{e.addCase(T5.pending,t=>{t.status=\"loading\",t.error=null}).addCase(T5.fulfilled,(t,r)=>{t.status=\"succeeded\",t.token=r.payload.token,t.user=r.payload.user}).addCase(T5.rejected,(t,r)=>{t.status=\"failed\",t.error=r.payload}),e.addCase(fce.fulfilled,t=>{t.user=null,t.token=null,t.status=\"idle\",t.error=null}),e.addCase(I5.pending,t=>{t.status=\"loading\"}).addCase(I5.fulfilled,(t,r)=>{t.status=\"succeeded\",t.user=r.payload}).addCase(I5.rejected,(t,r)=>{t.status=\"failed\",t.error=r.payload})}}),{setToken:fQe,clearAuth:I8t}=hce.actions,hQe=hce.reducer,pQe={sidebarCollapsed:!1,notifications:[],globalLoading:!1,locale:\"zh-CN\"},pce=Du({name:\"global\",initialState:pQe,reducers:{toggleSidebar:e=>{e.sidebarCollapsed=!e.sidebarCollapsed},setSidebarCollapsed:(e,t)=>{e.sidebarCollapsed=t.payload},addNotification:(e,t)=>{e.notifications.unshift(t.payload)},markNotificationRead:(e,t)=>{const r=e.notifications.find(n=>n.id===t.payload);r&&(r.read=!0)},clearNotifications:e=>{e.notifications=[]},setGlobalLoading:(e,t)=>{e.globalLoading=t.payload},setLocale:(e,t)=>{e.locale=t.payload}}}),{toggleSidebar:k8t,setSidebarCollapsed:k5,addNotification:R8t,markNotificationRead:SG,clearNotifications:mQe,setGlobalLoading:M8t,setLocale:vQe}=pce.actions,gQe=pce.reducer,Ng={fetchList:e=>Or(\"/requirements\",e),fetchById:e=>Or(`/requirements/${e}`),create:e=>fr(\"/requirements\",e),update:(e,t)=>Go(`/requirements/${e}`,t),remove:e=>sd(`/requirements/${e}`),submit:e=>fr(`/requirements/${e}/submit`),approve:e=>fr(`/requirements/${e}/approve`),reject:(e,t)=>fr(`/requirements/${e}/reject`,{reason:t}),fetchStats:()=>Or(\"/requirements/stats\")},yQe={list:[],total:0,currentDetail:null,stats:null,filters:{},pagination:{page:1,pageSize:20},sort:{sortBy:\"createdAt\",sortOrder:\"descend\"},selectedIds:[],loading:!1,error:null},R5=tn(\"requirement/fetchList\",async(e,{getState:t,rejectWithValue:r})=>{try{const n=t(),a={...n.requirement.pagination,...n.requirement.sort,filters:n.requirement.filters};return await Ng.fetchList(a)}catch(n){const a=n instanceof Error?n.message:\"获取需求列表失败\";return r(a)}}),M5=tn(\"requirement/fetchById\",async(e,{rejectWithValue:t})=>{try{return await Ng.fetchById(e)}catch(r){const n=r instanceof Error?r.message:\"获取需求详情失败\";return t(n)}}),P5=tn(\"requirement/create\",async(e,{rejectWithValue:t})=>{try{return await Ng.create(e)}catch(r){const n=r instanceof Error?r.message:\"创建需求失败\";return t(n)}}),O5=tn(\"requirement/update\",async({id:e,payload:t},{rejectWithValue:r})=>{try{return await Ng.update(e,t)}catch(n){const a=n instanceof Error?n.message:\"更新需求失败\";return r(a)}}),bQe=tn(\"requirement/delete\",async(e,{rejectWithValue:t})=>{try{return await Ng.remove(e),e}catch(r){const n=r instanceof Error?r.message:\"删除需求失败\";return t(n)}}),xQe=tn(\"requirement/fetchStats\",async(e,{rejectWithValue:t})=>{try{return await Ng.fetchStats()}catch(r){const n=r instanceof Error?r.message:\"获取需求统计失败\";return t(n)}}),mce=Du({name:\"requirement\",initialState:yQe,reducers:{setFilters:(e,t)=>{e.filters=t.payload,e.pagination.page=1},setPagination:(e,t)=>{e.pagination=t.payload},setSort:(e,t)=>{e.sort=t.payload},setSelectedIds:(e,t)=>{e.selectedIds=t.payload},clearCurrentDetail:e=>{e.currentDetail=null}},extraReducers:e=>{e.addCase(R5.pending,t=>{t.loading=!0,t.error=null}).addCase(R5.fulfilled,(t,r)=>{t.loading=!1,t.list=r.payload.data.list,t.total=r.payload.data.total}).addCase(R5.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}),e.addCase(M5.pending,t=>{t.loading=!0,t.error=null}).addCase(M5.fulfilled,(t,r)=>{t.loading=!1,t.currentDetail=r.payload}).addCase(M5.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}),e.addCase(P5.pending,t=>{t.loading=!0,t.error=null}).addCase(P5.fulfilled,t=>{t.loading=!1}).addCase(P5.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}),e.addCase(O5.pending,t=>{t.loading=!0,t.error=null}).addCase(O5.fulfilled,(t,r)=>{t.loading=!1,t.currentDetail=r.payload}).addCase(O5.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}),e.addCase(bQe.fulfilled,(t,r)=>{t.list=t.list.filter(n=>n.id!==r.payload),t.total-=1}),e.addCase(xQe.fulfilled,(t,r)=>{t.stats=r.payload})}}),{setFilters:P8t,setPagination:O8t,setSort:B8t,setSelectedIds:N8t,clearCurrentDetail:$8t}=mce.actions,CQe=mce.reducer,Em={fetchList:e=>Or(\"/plans\",e),fetchById:e=>Or(`/plans/${e}`),create:e=>fr(\"/plans\",e),update:(e,t)=>Go(`/plans/${e}`,t),remove:e=>sd(`/plans/${e}`),submit:e=>fr(`/plans/${e}/submit`),approve:e=>fr(`/plans/${e}/approve`),reject:(e,t)=>fr(`/plans/${e}/reject`,{reason:t}),start:e=>fr(`/plans/${e}/start`),complete:e=>fr(`/plans/${e}/complete`),cancel:(e,t)=>fr(`/plans/${e}/cancel`,{reason:t}),assignReviewers:(e,t)=>fr(`/plans/${e}/assign`,{reviewerIds:t})},FQe={activeType:Si.Review,list:[],total:0,currentDetail:null,filters:{},pagination:{page:1,pageSize:20},sort:{sortBy:\"createdAt\",sortOrder:\"descend\"},loading:!1,error:null},Yy=tn(\"plan/fetchList\",async(e,{getState:t,rejectWithValue:r})=>{try{const n=t(),a={...n.plan.pagination,...n.plan.sort,filters:{...n.plan.filters,type:n.plan.activeType}};return await Em.fetchList(a)}catch(n){const a=n instanceof Error?n.message:\"获取计划列表失败\";return r(a)}}),B5=tn(\"plan/fetchById\",async(e,{rejectWithValue:t})=>{try{return await Em.fetchById(e)}catch(r){const n=r instanceof Error?r.message:\"获取计划详情失败\";return t(n)}}),SQe=tn(\"plan/create\",async(e,{rejectWithValue:t})=>{try{return await Em.create(e)}catch(r){const n=r instanceof Error?r.message:\"创建计划失败\";return t(n)}}),wQe=tn(\"plan/update\",async({id:e,data:t},{rejectWithValue:r})=>{try{return await Em.update(e,t)}catch(n){const a=n instanceof Error?n.message:\"更新计划失败\";return r(a)}}),EQe=tn(\"plan/submit\",async(e,{rejectWithValue:t})=>{try{return await Em.submit(e)}catch(r){const n=r instanceof Error?r.message:\"提交计划失败\";return t(n)}}),vce=tn(\"plan/approve\",async(e,{rejectWithValue:t})=>{try{return await Em.approve(e)}catch(r){const n=r instanceof Error?r.message:\"审批计划失败\";return t(n)}}),DQe=tn(\"plan/cancel\",async({id:e,reason:t},{rejectWithValue:r})=>{try{return await Em.cancel(e,t)}catch(n){const a=n instanceof Error?n.message:\"取消计划失败\";return r(a)}}),gce=Du({name:\"plan\",initialState:FQe,reducers:{setActiveType:(e,t)=>{e.activeType=t.payload,e.pagination.page=1},setPlanFilters:(e,t)=>{e.filters=t.payload,e.pagination.page=1},setPlanPagination:(e,t)=>{e.pagination=t.payload},setPlanSort:(e,t)=>{e.sort=t.payload},clearPlanDetail:e=>{e.currentDetail=null}},extraReducers:e=>{e.addCase(Yy.pending,r=>{r.loading=!0,r.error=null}).addCase(Yy.fulfilled,(r,n)=>{r.loading=!1,r.list=n.payload.data.list,r.total=n.payload.data.total}).addCase(Yy.rejected,(r,n)=>{r.loading=!1,r.error=n.payload}),e.addCase(B5.pending,r=>{r.loading=!0,r.error=null}).addCase(B5.fulfilled,(r,n)=>{r.loading=!1,r.currentDetail=n.payload}).addCase(B5.rejected,(r,n)=>{r.loading=!1,r.error=n.payload}),[SQe,wQe,EQe,vce,DQe].forEach(r=>{e.addCase(r.pending,n=>{n.loading=!0,n.error=null}).addCase(r.fulfilled,n=>{n.loading=!1}).addCase(r.rejected,(n,a)=>{n.loading=!1,n.error=a.payload})})}}),{setActiveType:AQe,setPlanFilters:L8t,setPlanPagination:_Qe,setPlanSort:j8t,clearPlanDetail:z8t}=gce.actions,TQe=gce.reducer,jx={fetchList:e=>Or(\"/reviewers\",e),fetchById:e=>Or(`/reviewers/${e}`),create:e=>fr(\"/reviewers\",e),update:(e,t)=>Go(`/reviewers/${e}`,t),remove:e=>sd(`/reviewers/${e}`),updateTier:(e,t)=>Go(`/reviewers/${e}/tier`,{tier:t}),suspend:(e,t)=>fr(`/reviewers/${e}/suspend`,{reason:t}),reactivate:e=>fr(`/reviewers/${e}/reactivate`),addTag:(e,t)=>fr(`/reviewers/${e}/tags`,{tagId:t}),removeTag:(e,t)=>sd(`/reviewers/${e}/tags/${t}`),fetchQuota:e=>Or(`/reviewers/${e}/quota`)},IQe={list:[],total:0,currentDetail:null,filters:{},pagination:{page:1,pageSize:20},sort:{sortBy:\"createdAt\",sortOrder:\"descend\"},loading:!1,error:null},N5=tn(\"reviewer/fetchList\",async(e,{getState:t,rejectWithValue:r})=>{try{const n=t(),a={...n.reviewer.pagination,...n.reviewer.sort,filters:n.reviewer.filters};return await jx.fetchList(a)}catch(n){const a=n instanceof Error?n.message:\"获取测评人列表失败\";return r(a)}}),$5=tn(\"reviewer/fetchById\",async(e,{rejectWithValue:t})=>{try{return await jx.fetchById(e)}catch(r){const n=r instanceof Error?r.message:\"获取测评人详情失败\";return t(n)}}),kQe=tn(\"reviewer/create\",async(e,{rejectWithValue:t})=>{try{return await jx.create(e)}catch(r){const n=r instanceof Error?r.message:\"创建测评人失败\";return t(n)}}),RQe=tn(\"reviewer/update\",async({id:e,data:t},{rejectWithValue:r})=>{try{return await jx.update(e,t)}catch(n){const a=n instanceof Error?n.message:\"更新测评人失败\";return r(a)}}),MQe=tn(\"reviewer/delete\",async(e,{rejectWithValue:t})=>{try{return await jx.remove(e),e}catch(r){const n=r instanceof Error?r.message:\"删除测评人失败\";return t(n)}}),yce=Du({name:\"reviewer\",initialState:IQe,reducers:{setReviewerFilters:(e,t)=>{e.filters=t.payload,e.pagination.page=1},setReviewerPagination:(e,t)=>{e.pagination=t.payload},setReviewerSort:(e,t)=>{e.sort=t.payload},clearReviewerDetail:e=>{e.currentDetail=null}},extraReducers:e=>{e.addCase(N5.pending,r=>{r.loading=!0,r.error=null}).addCase(N5.fulfilled,(r,n)=>{r.loading=!1,r.list=n.payload.data.list,r.total=n.payload.data.total}).addCase(N5.rejected,(r,n)=>{r.loading=!1,r.error=n.payload}),e.addCase($5.pending,r=>{r.loading=!0,r.error=null}).addCase($5.fulfilled,(r,n)=>{r.loading=!1,r.currentDetail=n.payload}).addCase($5.rejected,(r,n)=>{r.loading=!1,r.error=n.payload}),[kQe,RQe].forEach(r=>{e.addCase(r.pending,n=>{n.loading=!0,n.error=null}).addCase(r.fulfilled,n=>{n.loading=!1}).addCase(r.rejected,(n,a)=>{n.loading=!1,n.error=a.payload})}),e.addCase(MQe.fulfilled,(r,n)=>{r.list=r.list.filter(a=>a.id!==n.payload),r.total-=1})}}),{setReviewerFilters:H8t,setReviewerPagination:V8t,setReviewerSort:W8t,clearReviewerDetail:G8t}=yce.actions,PQe=yce.reducer,sB={fetchList:e=>Or(\"/tickets\",e),fetchById:e=>Or(`/tickets/${e}`),create:e=>fr(\"/tickets\",e),update:(e,t)=>Go(`/tickets/${e}`,t),assign:(e,t)=>fr(`/tickets/${e}/assign`,{assigneeId:t}),startProgress:e=>fr(`/tickets/${e}/start`),resolve:(e,t)=>fr(`/tickets/${e}/resolve`,{resolution:t}),close:e=>fr(`/tickets/${e}/close`),reopen:(e,t)=>fr(`/tickets/${e}/reopen`,{reason:t}),fetchStats:()=>Or(\"/tickets/stats\")},OQe={list:[],total:0,currentDetail:null,stats:null,filters:{},pagination:{page:1,pageSize:20},sort:{sortBy:\"createdAt\",sortOrder:\"descend\"},loading:!1,error:null},Ap=tn(\"ticket/fetchList\",async(e,{getState:t,rejectWithValue:r})=>{try{const n=t(),a={...n.ticket.pagination,...n.ticket.sort,filters:n.ticket.filters};return await sB.fetchList(a)}catch(n){const a=n instanceof Error?n.message:\"获取工单列表失败\";return r(a)}}),L5=tn(\"ticket/fetchById\",async(e,{rejectWithValue:t})=>{try{return await sB.fetchById(e)}catch(r){const n=r instanceof Error?r.message:\"获取工单详情失败\";return t(n)}}),uB=tn(\"ticket/fetchStats\",async(e,{rejectWithValue:t})=>{try{return await sB.fetchStats()}catch(r){const n=r instanceof Error?r.message:\"获取工单统计失败\";return t(n)}}),bce=Du({name:\"ticket\",initialState:OQe,reducers:{setTicketFilters:(e,t)=>{e.filters=t.payload,e.pagination.page=1},setTicketPagination:(e,t)=>{e.pagination=t.payload},setTicketSort:(e,t)=>{e.sort=t.payload},clearTicketDetail:e=>{e.currentDetail=null}},extraReducers:e=>{e.addCase(Ap.pending,t=>{t.loading=!0,t.error=null}).addCase(Ap.fulfilled,(t,r)=>{t.loading=!1,t.list=r.payload.data.list,t.total=r.payload.data.total}).addCase(Ap.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(L5.pending,t=>{t.loading=!0,t.error=null}).addCase(L5.fulfilled,(t,r)=>{t.loading=!1,t.currentDetail=r.payload}).addCase(L5.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(uB.fulfilled,(t,r)=>{t.stats=r.payload})}}),{setTicketFilters:wG,setTicketPagination:xce,setTicketSort:U8t,clearTicketDetail:K8t}=bce.actions,BQe=bce.reducer,xD={fetchConversations:()=>Or(\"/chat/conversations\"),fetchMessages:(e,t,r=50)=>Or(`/chat/conversations/${e}/messages`,{before:t,limit:r}),sendMessage:(e,t,r=\"text\")=>fr(`/chat/conversations/${e}/messages`,{content:t,type:r}),markAsRead:e=>fr(`/chat/conversations/${e}/read`),fetchQuickReplies:()=>Or(\"/chat/quick-replies\"),closeConversation:e=>fr(`/chat/conversations/${e}/close`),transferConversation:(e,t)=>fr(`/chat/conversations/${e}/transfer`,{targetAgentId:t})},NQe={conversations:[],activeConversationId:null,messages:{},quickReplies:[],wsConnected:!1,loading:!1,error:null},qy=tn(\"chat/fetchConversations\",async(e,{rejectWithValue:t})=>{try{return await xD.fetchConversations()}catch(r){const n=r instanceof Error?r.message:\"获取会话列表失败\";return t(n)}}),cB=tn(\"chat/fetchMessages\",async({conversationId:e,before:t},{rejectWithValue:r})=>{try{const n=await xD.fetchMessages(e,t);return{conversationId:e,messages:n}}catch(n){const a=n instanceof Error?n.message:\"获取消息失败\";return r(a)}}),Cce=tn(\"chat/sendMessage\",async({conversationId:e,content:t,type:r},{rejectWithValue:n})=>{try{return await xD.sendMessage(e,t,r)}catch(a){const i=a instanceof Error?a.message:\"发送消息失败\";return n(i)}}),Fce=tn(\"chat/fetchQuickReplies\",async(e,{rejectWithValue:t})=>{try{return await xD.fetchQuickReplies()}catch(r){const n=r instanceof Error?r.message:\"获取快捷回复失败\";return t(n)}}),Sce=Du({name:\"chat\",initialState:NQe,reducers:{setActiveConversation:(e,t)=>{e.activeConversationId=t.payload},setWsConnected:(e,t)=>{e.wsConnected=t.payload},receiveMessage:(e,t)=>{const r=t.payload;e.messages[r.conversationId]||(e.messages[r.conversationId]=[]),e.messages[r.conversationId].push(r);const n=e.conversations.find(a=>a.id===r.conversationId);n&&(n.lastMessage=r.content,n.lastMessageTime=r.timestamp,e.activeConversationId!==r.conversationId&&(n.unreadCount+=1))}},extraReducers:e=>{e.addCase(qy.pending,t=>{t.loading=!0,t.error=null}).addCase(qy.fulfilled,(t,r)=>{t.loading=!1,t.conversations=r.payload}).addCase(qy.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(cB.fulfilled,(t,r)=>{const{conversationId:n,messages:a}=r.payload;t.messages[n]=a}).addCase(Cce.fulfilled,(t,r)=>{const n=r.payload;t.messages[n.conversationId]||(t.messages[n.conversationId]=[]),t.messages[n.conversationId].push(n)}).addCase(Fce.fulfilled,(t,r)=>{t.quickReplies=r.payload})}}),{setActiveConversation:XE,setWsConnected:Y8t,receiveMessage:q8t}=Sce.actions,$Qe=Sce.reducer,dB={fetchPushTasks:e=>Or(\"/channel/push-tasks\",e),fetchPushTaskById:e=>Or(`/channel/push-tasks/${e}`),createPushTask:e=>fr(\"/channel/push-tasks\",e),cancelPushTask:e=>fr(`/channel/push-tasks/${e}/cancel`),executePushTask:e=>fr(`/channel/push-tasks/${e}/execute`),fetchIMConfigs:()=>Or(\"/channel/im\"),updateIMConfig:(e,t)=>Go(`/channel/im/${e}`,t),testIMConnection:e=>fr(`/channel/im/${e}/test`),fetchEDMConfigs:()=>Or(\"/channel/edm\"),createEDMConfig:e=>fr(\"/channel/edm\",e),updateEDMConfig:(e,t)=>Go(`/channel/edm/${e}`,t),deleteEDMConfig:e=>sd(`/channel/edm/${e}`),testEDMConnection:e=>fr(`/channel/edm/${e}/test`)},LQe={pushTasks:[],pushTaskTotal:0,imConfigs:[],edmConfigs:[],loading:!1,error:null},Xy=tn(\"channel/fetchPushTasks\",async(e,{rejectWithValue:t})=>{try{return await dB.fetchPushTasks(e)}catch(r){const n=r instanceof Error?r.message:\"获取推送任务失败\";return t(n)}}),wce=tn(\"channel/fetchIMConfigs\",async(e,{rejectWithValue:t})=>{try{return await dB.fetchIMConfigs()}catch(r){const n=r instanceof Error?r.message:\"获取IM配置失败\";return t(n)}}),Ece=tn(\"channel/fetchEDMConfigs\",async(e,{rejectWithValue:t})=>{try{return await dB.fetchEDMConfigs()}catch(r){const n=r instanceof Error?r.message:\"获取EDM配置失败\";return t(n)}}),Dce=Du({name:\"channel\",initialState:LQe,reducers:{clearChannelError:e=>{e.error=null}},extraReducers:e=>{e.addCase(Xy.pending,t=>{t.loading=!0,t.error=null}).addCase(Xy.fulfilled,(t,r)=>{t.loading=!1,t.pushTasks=r.payload.data.list,t.pushTaskTotal=r.payload.data.total}).addCase(Xy.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(wce.fulfilled,(t,r)=>{t.imConfigs=r.payload}).addCase(Ece.fulfilled,(t,r)=>{t.edmConfigs=r.payload})}}),{clearChannelError:X8t}=Dce.actions,jQe=Dce.reducer,fB={fetchEvents:e=>Or(\"/risk/events\",e),fetchEventById:e=>Or(`/risk/events/${e}`),createEvent:e=>fr(\"/risk/events\",e),updateEvent:(e,t)=>Go(`/risk/events/${e}`,t),startInvestigation:e=>fr(`/risk/events/${e}/investigate`),confirmEvent:(e,t)=>fr(`/risk/events/${e}/confirm`,{resolution:t}),dismissEvent:(e,t)=>fr(`/risk/events/${e}/dismiss`,{reason:t}),resolveEvent:(e,t)=>fr(`/risk/events/${e}/resolve`,{resolution:t}),fetchBlacklist:e=>Or(\"/risk/blacklist\",e),addToBlacklist:e=>fr(\"/risk/blacklist\",e),removeFromBlacklist:e=>sd(`/risk/blacklist/${e}`),fetchRefundComparisons:e=>Or(\"/risk/refund-comparisons\",e),flagRefund:(e,t)=>fr(`/risk/refund-comparisons/${e}/flag`,{reason:t})},zQe={events:[],eventTotal:0,blacklist:[],blacklistTotal:0,refundComparisons:[],currentEvent:null,eventFilters:{},blacklistFilters:{},pagination:{page:1,pageSize:20},loading:!1,error:null},Jy=tn(\"risk/fetchEvents\",async(e,{rejectWithValue:t})=>{try{return await fB.fetchEvents(e)}catch(r){const n=r instanceof Error?r.message:\"获取风险事件失败\";return t(n)}}),mM=tn(\"risk/fetchBlacklist\",async(e,{rejectWithValue:t})=>{try{return await fB.fetchBlacklist(e)}catch(r){const n=r instanceof Error?r.message:\"获取黑名单失败\";return t(n)}}),vM=tn(\"risk/fetchRefundComparisons\",async(e,{rejectWithValue:t})=>{try{return await fB.fetchRefundComparisons(e)}catch(r){const n=r instanceof Error?r.message:\"获取退款比对数据失败\";return t(n)}}),Ace=Du({name:\"risk\",initialState:zQe,reducers:{setRiskEventFilters:(e,t)=>{e.eventFilters=t.payload,e.pagination.page=1},setBlacklistFilters:(e,t)=>{e.blacklistFilters=t.payload,e.pagination.page=1},clearCurrentEvent:e=>{e.currentEvent=null}},extraReducers:e=>{e.addCase(Jy.pending,t=>{t.loading=!0,t.error=null}).addCase(Jy.fulfilled,(t,r)=>{t.loading=!1,t.events=r.payload.data.list,t.eventTotal=r.payload.data.total}).addCase(Jy.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(mM.fulfilled,(t,r)=>{t.blacklist=r.payload.data.list,t.blacklistTotal=r.payload.data.total}).addCase(vM.fulfilled,(t,r)=>{t.refundComparisons=r.payload.data.list})}}),{setRiskEventFilters:J8t,setBlacklistFilters:Z8t,clearCurrentEvent:Q8t}=Ace.actions,HQe=Ace.reducer,CD={fetchPlanDashboard:()=>Or(\"/dashboard/plan\"),fetchASINDashboard:()=>Or(\"/dashboard/asin\"),fetchCSDashboard:()=>Or(\"/dashboard/cs\"),fetchOverview:()=>Or(\"/dashboard/overview\")},VQe={planData:null,asinData:null,csData:null,overview:null,loading:!1,error:null},yw=tn(\"dashboard/fetchPlan\",async(e,{rejectWithValue:t})=>{try{return await CD.fetchPlanDashboard()}catch(r){const n=r instanceof Error?r.message:\"获取计划看板失败\";return t(n)}}),_ce=tn(\"dashboard/fetchASIN\",async(e,{rejectWithValue:t})=>{try{return await CD.fetchASINDashboard()}catch(r){const n=r instanceof Error?r.message:\"获取ASIN看板失败\";return t(n)}}),Tce=tn(\"dashboard/fetchCS\",async(e,{rejectWithValue:t})=>{try{return await CD.fetchCSDashboard()}catch(r){const n=r instanceof Error?r.message:\"获取客服绩效看板失败\";return t(n)}}),Ice=tn(\"dashboard/fetchOverview\",async(e,{rejectWithValue:t})=>{try{return await CD.fetchOverview()}catch(r){const n=r instanceof Error?r.message:\"获取看板概览失败\";return t(n)}}),WQe=Du({name:\"dashboard\",initialState:VQe,reducers:{},extraReducers:e=>{e.addCase(yw.pending,t=>{t.loading=!0,t.error=null}).addCase(yw.fulfilled,(t,r)=>{t.loading=!1,t.planData=r.payload}).addCase(yw.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(_ce.fulfilled,(t,r)=>{t.asinData=r.payload}).addCase(Tce.fulfilled,(t,r)=>{t.csData=r.payload}).addCase(Ice.fulfilled,(t,r)=>{t.overview=r.payload})}}),GQe=WQe.reducer,go={fetchList:e=>Or(\"/review-orders\",e),fetchById:e=>Or(`/review-orders/${e}`),create:e=>fr(\"/review-orders\",e),update:(e,t)=>Go(`/review-orders/${e}`,t),uploadOrder:(e,t)=>fr(`/review-orders/${e}/upload-order`,t),uploadReply:(e,t)=>fr(`/review-orders/${e}/upload-reply`,t),serviceAudit:(e,t)=>fr(`/review-orders/${e}/service-audit`,t),changeOrder:(e,t)=>fr(`/review-orders/${e}/change-order`,t),alterOrder:(e,t)=>fr(`/review-orders/${e}/alter-order`,t),transfer:(e,t)=>fr(`/review-orders/${e}/transfer`,t),changeApplicant:(e,t)=>fr(`/review-orders/${e}/change-applicant`,t),paymentRequest:(e,t)=>fr(`/review-orders/${e}/payment-request`,t),fetchRefunds:e=>Or(`/review-orders/${e}/refunds`),fetchAuditLogs:e=>Or(`/review-orders/${e}/audit-logs`),exportOrders:e=>fr(\"/review-orders/export\",e),importOrders:e=>fr(\"/review-orders/import\",e),searchOrders:e=>Or(\"/orders/search\",e),searchComments:e=>Or(\"/comments/search\",e),fetchProducts:e=>Or(\"/products\",e),searchUsers:e=>Or(\"/users/search\",e)},UQe={list:[],total:0,loading:!1,currentReviewOrder:null,error:null},bw=tn(\"reviewOrder/fetchReviewOrders\",async(e,{rejectWithValue:t})=>{try{return await go.fetchList(e)}catch(r){const n=r instanceof Error?r.message:\"获取测评单列表失败\";return t(n)}}),xw=tn(\"reviewOrder/fetchReviewOrderById\",async(e,{rejectWithValue:t})=>{try{return await go.fetchById(e)}catch(r){const n=r instanceof Error?r.message:\"获取测评单详情失败\";return t(n)}}),Cw=tn(\"reviewOrder/createReviewOrder\",async(e,{rejectWithValue:t})=>{try{return await go.create(e)}catch(r){const n=r instanceof Error?r.message:\"新增测评单失败\";return t(n)}}),Fw=tn(\"reviewOrder/updateReviewOrder\",async(e,{rejectWithValue:t})=>{try{return await go.update(e.id,e.data)}catch(r){const n=r instanceof Error?r.message:\"编辑测评单失败\";return t(n)}}),kce=Du({name:\"reviewOrder\",initialState:UQe,reducers:{clearCurrentReviewOrder:e=>{e.currentReviewOrder=null},clearError:e=>{e.error=null}},extraReducers:e=>{e.addCase(bw.pending,t=>{t.loading=!0,t.error=null}).addCase(bw.fulfilled,(t,r)=>{t.loading=!1,t.list=r.payload.list,t.total=r.payload.total}).addCase(bw.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(xw.pending,t=>{t.loading=!0,t.error=null}).addCase(xw.fulfilled,(t,r)=>{t.loading=!1,t.currentReviewOrder=r.payload}).addCase(xw.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(Cw.pending,t=>{t.loading=!0,t.error=null}).addCase(Cw.fulfilled,(t,r)=>{t.loading=!1,t.currentReviewOrder=r.payload}).addCase(Cw.rejected,(t,r)=>{t.loading=!1,t.error=r.payload}).addCase(Fw.pending,t=>{t.loading=!0,t.error=null}).addCase(Fw.fulfilled,(t,r)=>{t.loading=!1,t.currentReviewOrder=r.payload}).addCase(Fw.rejected,(t,r)=>{t.loading=!1,t.error=r.payload})}}),{clearCurrentReviewOrder:KQe,clearError:eRt}=kce.actions,YQe=kce.reducer,qQe=gHe({reducer:{auth:hQe,global:gQe,requirement:CQe,plan:TQe,reviewer:PQe,ticket:BQe,chat:$Qe,channel:jQe,risk:HQe,dashboard:GQe,reviewOrder:YQe},middleware:e=>e(),devTools:!1});/**\n * @remix-run/router v1.23.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */function c2(){return c2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c2.apply(this,arguments)}var sf;(function(e){e.Pop=\"POP\",e.Push=\"PUSH\",e.Replace=\"REPLACE\"})(sf||(sf={}));const EG=\"popstate\";function XQe(e){e===void 0&&(e={});function t(a,i){let{pathname:o=\"/\",search:l=\"\",hash:s=\"\"}=Dm(a.location.hash.substr(1));return!o.startsWith(\"/\")&&!o.startsWith(\".\")&&(o=\"/\"+o),gM(\"\",{pathname:o,search:l,hash:s},i.state&&i.state.usr||null,i.state&&i.state.key||\"default\")}function r(a,i){let o=a.document.querySelector(\"base\"),l=\"\";if(o&&o.getAttribute(\"href\")){let s=a.location.href,u=s.indexOf(\"#\");l=u===-1?s:s.slice(0,u)}return l+\"#\"+(typeof i==\"string\"?i:Rce(i))}function n(a,i){FD(a.pathname.charAt(0)===\"/\",\"relative pathnames are not supported in hash history.push(\"+JSON.stringify(i)+\")\")}return ZQe(t,r,n,e)}function Ja(e,t){if(e===!1||e===null||typeof e>\"u\")throw new Error(t)}function FD(e,t){if(!e){typeof console<\"u\"&&console.warn(t);try{throw new Error(t)}catch{}}}function JQe(){return Math.random().toString(36).substr(2,8)}function DG(e,t){return{usr:e.state,key:e.key,idx:t}}function gM(e,t,r,n){return r===void 0&&(r=null),c2({pathname:typeof e==\"string\"?e:e.pathname,search:\"\",hash:\"\"},typeof t==\"string\"?Dm(t):t,{state:r,key:t&&t.key||n||JQe()})}function Rce(e){let{pathname:t=\"/\",search:r=\"\",hash:n=\"\"}=e;return r&&r!==\"?\"&&(t+=r.charAt(0)===\"?\"?r:\"?\"+r),n&&n!==\"#\"&&(t+=n.charAt(0)===\"#\"?n:\"#\"+n),t}function Dm(e){let t={};if(e){let r=e.indexOf(\"#\");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf(\"?\");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function ZQe(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,l=sf.Pop,s=null,u=c();u==null&&(u=0,o.replaceState(c2({},o.state,{idx:u}),\"\"));function c(){return(o.state||{idx:null}).idx}function d(){l=sf.Pop;let g=c(),y=g==null?null:g-u;u=g,s&&s({action:l,location:v.location,delta:y})}function f(g,y){l=sf.Push;let b=gM(v.location,g,y);r&&r(b,g),u=c()+1;let x=DG(b,u),F=v.createHref(b);try{o.pushState(x,\"\",F)}catch(S){if(S instanceof DOMException&&S.name===\"DataCloneError\")throw S;a.location.assign(F)}i&&s&&s({action:l,location:v.location,delta:1})}function h(g,y){l=sf.Replace;let b=gM(v.location,g,y);r&&r(b,g),u=c();let x=DG(b,u),F=v.createHref(b);o.replaceState(x,\"\",F),i&&s&&s({action:l,location:v.location,delta:0})}function p(g){let y=a.location.origin!==\"null\"?a.location.origin:a.location.href,b=typeof g==\"string\"?g:Rce(g);return b=b.replace(/ $/,\"%20\"),Ja(y,\"No window.location.(origin|href) available to create URL for href: \"+b),new URL(b,y)}let v={get action(){return l},get location(){return e(a,o)},listen(g){if(s)throw new Error(\"A history only accepts one active listener\");return a.addEventListener(EG,d),s=g,()=>{a.removeEventListener(EG,d),s=null}},createHref(g){return t(a,g)},createURL:p,encodeLocation(g){let y=p(g);return{pathname:y.pathname,search:y.search,hash:y.hash}},push:f,replace:h,go(g){return o.go(g)}};return v}var AG;(function(e){e.data=\"data\",e.deferred=\"deferred\",e.redirect=\"redirect\",e.error=\"error\"})(AG||(AG={}));function QQe(e,t,r){return r===void 0&&(r=\"/\"),eet(e,t,r)}function eet(e,t,r,n){let a=typeof t==\"string\"?Dm(t):t,i=Oce(a.pathname||\"/\",r);if(i==null)return null;let o=Mce(e);tet(o);let l=null;for(let s=0;l==null&&s<o.length;++s){let u=pet(i);l=det(o[s],u)}return l}function Mce(e,t,r,n){t===void 0&&(t=[]),r===void 0&&(r=[]),n===void 0&&(n=\"\");let a=(i,o,l)=>{let s={relativePath:l===void 0?i.path||\"\":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};s.relativePath.startsWith(\"/\")&&(Ja(s.relativePath.startsWith(n),'Absolute route path \"'+s.relativePath+'\" nested under path '+('\"'+n+'\" is not valid. An absolute child route path ')+\"must start with the combined path of all its parent routes.\"),s.relativePath=s.relativePath.slice(n.length));let u=_p([n,s.relativePath]),c=r.concat(s);i.children&&i.children.length>0&&(Ja(i.index!==!0,\"Index routes must not have child routes. Please remove \"+('all child routes from route path \"'+u+'\".')),Mce(i.children,t,c,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:uet(u,i.index),routesMeta:c})};return e.forEach((i,o)=>{var l;if(i.path===\"\"||!((l=i.path)!=null&&l.includes(\"?\")))a(i,o);else for(let s of Pce(i.path))a(i,o,s)}),t}function Pce(e){let t=e.split(\"/\");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith(\"?\"),i=r.replace(/\\?$/,\"\");if(n.length===0)return a?[i,\"\"]:[i];let o=Pce(n.join(\"/\")),l=[];return l.push(...o.map(s=>s===\"\"?i:[i,s].join(\"/\"))),a&&l.push(...o),l.map(s=>e.startsWith(\"/\")&&s===\"\"?\"/\":s)}function tet(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:cet(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}const ret=/^:[\\w-]+$/,net=3,aet=2,iet=1,oet=10,set=-2,_G=e=>e===\"*\";function uet(e,t){let r=e.split(\"/\"),n=r.length;return r.some(_G)&&(n+=set),t&&(n+=aet),r.filter(a=>!_G(a)).reduce((a,i)=>a+(ret.test(i)?net:i===\"\"?iet:oet),n)}function cet(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function det(e,t,r){let{routesMeta:n}=e,a={},i=\"/\",o=[];for(let l=0;l<n.length;++l){let s=n[l],u=l===n.length-1,c=i===\"/\"?t:t.slice(i.length)||\"/\",d=fet({path:s.relativePath,caseSensitive:s.caseSensitive,end:u},c),f=s.route;if(!d)return null;Object.assign(a,d.params),o.push({params:a,pathname:_p([i,d.pathname]),pathnameBase:bet(_p([i,d.pathnameBase])),route:f}),d.pathnameBase!==\"/\"&&(i=_p([i,d.pathnameBase]))}return o}function fet(e,t){typeof e==\"string\"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=het(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let i=a[0],o=i.replace(/(.)\\/+$/,\"$1\"),l=a.slice(1);return{params:n.reduce((u,c,d)=>{let{paramName:f,isOptional:h}=c;if(f===\"*\"){let v=l[d]||\"\";o=i.slice(0,i.length-v.length).replace(/(.)\\/+$/,\"$1\")}const p=l[d];return h&&!p?u[f]=void 0:u[f]=(p||\"\").replace(/%2F/g,\"/\"),u},{}),pathname:i,pathnameBase:o,pattern:e}}function het(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),FD(e===\"*\"||!e.endsWith(\"*\")||e.endsWith(\"/*\"),'Route path \"'+e+'\" will be treated as if it were '+('\"'+e.replace(/\\*$/,\"/*\")+'\" because the `*` character must ')+\"always follow a `/` in the pattern. To get rid of this warning, \"+('please change the route path to \"'+e.replace(/\\*$/,\"/*\")+'\".'));let n=[],a=\"^\"+e.replace(/\\/*\\*?$/,\"\").replace(/^\\/*/,\"/\").replace(/[\\\\.*+^${}|()[\\]]/g,\"\\\\$&\").replace(/\\/:([\\w-]+)(\\?)?/g,(o,l,s)=>(n.push({paramName:l,isOptional:s!=null}),s?\"/?([^\\\\/]+)?\":\"/([^\\\\/]+)\"));return e.endsWith(\"*\")?(n.push({paramName:\"*\"}),a+=e===\"*\"||e===\"/*\"?\"(.*)$\":\"(?:\\\\/(.+)|\\\\/*)$\"):r?a+=\"\\\\/*$\":e!==\"\"&&e!==\"/\"&&(a+=\"(?:(?=\\\\/|$))\"),[new RegExp(a,t?void 0:\"i\"),n]}function pet(e){try{return e.split(\"/\").map(t=>decodeURIComponent(t).replace(/\\//g,\"%2F\")).join(\"/\")}catch(t){return FD(!1,'The URL path \"'+e+'\" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+(\"encoding (\"+t+\").\")),e}}function Oce(e,t){if(t===\"/\")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith(\"/\")?t.length-1:t.length,n=e.charAt(r);return n&&n!==\"/\"?null:e.slice(r)||\"/\"}const met=/^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i,vet=e=>met.test(e);function get(e,t){t===void 0&&(t=\"/\");let{pathname:r,search:n=\"\",hash:a=\"\"}=typeof e==\"string\"?Dm(e):e,i;if(r)if(vet(r))i=r;else{if(r.includes(\"//\")){let o=r;r=r.replace(/\\/\\/+/g,\"/\"),FD(!1,\"Pathnames cannot have embedded double slashes - normalizing \"+(o+\" -> \"+r))}r.startsWith(\"/\")?i=TG(r.substring(1),\"/\"):i=TG(r,t)}else i=t;return{pathname:i,search:xet(n),hash:Cet(a)}}function TG(e,t){let r=t.replace(/\\/+$/,\"\").split(\"/\");return e.split(\"/\").forEach(a=>{a===\"..\"?r.length>1&&r.pop():a!==\".\"&&r.push(a)}),r.length>1?r.join(\"/\"):\"/\"}function j5(e,t,r,n){return\"Cannot include a '\"+e+\"' character in a manually specified \"+(\"`to.\"+t+\"` field [\"+JSON.stringify(n)+\"]. Please separate it out to the \")+(\"`to.\"+r+\"` field. Alternatively you may provide the full path as \")+'a string in <Link to=\"...\"> and the router will parse it for you.'}function yet(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function Bce(e,t){let r=yet(e);return t?r.map((n,a)=>a===r.length-1?n.pathname:n.pathnameBase):r.map(n=>n.pathnameBase)}function Nce(e,t,r,n){n===void 0&&(n=!1);let a;typeof e==\"string\"?a=Dm(e):(a=c2({},e),Ja(!a.pathname||!a.pathname.includes(\"?\"),j5(\"?\",\"pathname\",\"search\",a)),Ja(!a.pathname||!a.pathname.includes(\"#\"),j5(\"#\",\"pathname\",\"hash\",a)),Ja(!a.search||!a.search.includes(\"#\"),j5(\"#\",\"search\",\"hash\",a)));let i=e===\"\"||a.pathname===\"\",o=i?\"/\":a.pathname,l;if(o==null)l=r;else{let d=t.length-1;if(!n&&o.startsWith(\"..\")){let f=o.split(\"/\");for(;f[0]===\"..\";)f.shift(),d-=1;a.pathname=f.join(\"/\")}l=d>=0?t[d]:\"/\"}let s=get(a,l),u=o&&o!==\"/\"&&o.endsWith(\"/\"),c=(i||o===\".\")&&r.endsWith(\"/\");return!s.pathname.endsWith(\"/\")&&(u||c)&&(s.pathname+=\"/\"),s}const _p=e=>e.join(\"/\").replace(/\\/\\/+/g,\"/\"),bet=e=>e.replace(/\\/+$/,\"\").replace(/^\\/*/,\"/\"),xet=e=>!e||e===\"?\"?\"\":e.startsWith(\"?\")?e:\"?\"+e,Cet=e=>!e||e===\"#\"?\"\":e.startsWith(\"#\")?e:\"#\"+e;function Fet(e){return e!=null&&typeof e.status==\"number\"&&typeof e.statusText==\"string\"&&typeof e.internal==\"boolean\"&&\"data\"in e}const $ce=[\"post\",\"put\",\"patch\",\"delete\"];new Set($ce);const wet=[\"get\",...$ce];new Set(wet);/**\n * React Router v6.30.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */function d2(){return d2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d2.apply(this,arguments)}const hB=m.createContext(null),Eet=m.createContext(null),zx=m.createContext(null),SD=m.createContext(null),Sd=m.createContext({outlet:null,matches:[],isDataRoute:!1}),Lce=m.createContext(null);function Hx(){return m.useContext(SD)!=null}function Am(){return Hx()||Ja(!1),m.useContext(SD).location}function jce(e){m.useContext(zx).static||m.useLayoutEffect(e)}function Ia(){let{isDataRoute:e}=m.useContext(Sd);return e?jet():Det()}function Det(){Hx()||Ja(!1);let e=m.useContext(hB),{basename:t,future:r,navigator:n}=m.useContext(zx),{matches:a}=m.useContext(Sd),{pathname:i}=Am(),o=JSON.stringify(Bce(a,r.v7_relativeSplatPath)),l=m.useRef(!1);return jce(()=>{l.current=!0}),m.useCallback(function(u,c){if(c===void 0&&(c={}),!l.current)return;if(typeof u==\"number\"){n.go(u);return}let d=Nce(u,JSON.parse(o),i,c.relative===\"path\");e==null&&t!==\"/\"&&(d.pathname=d.pathname===\"/\"?t:_p([t,d.pathname])),(c.replace?n.replace:n.push)(d,c.state,c)},[t,n,o,i,e])}const Aet=m.createContext(null);function _et(e){let t=m.useContext(Sd).outlet;return t&&m.createElement(Aet.Provider,{value:e},t)}function $g(){let{matches:e}=m.useContext(Sd),t=e[e.length-1];return t?t.params:{}}function Tet(e,t){return Iet(e,t)}function Iet(e,t,r,n){Hx()||Ja(!1);let{navigator:a}=m.useContext(zx),{matches:i}=m.useContext(Sd),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let s=o?o.pathnameBase:\"/\";o&&o.route;let u=Am(),c;if(t){var d;let g=typeof t==\"string\"?Dm(t):t;s===\"/\"||(d=g.pathname)!=null&&d.startsWith(s)||Ja(!1),c=g}else c=u;let f=c.pathname||\"/\",h=f;if(s!==\"/\"){let g=s.replace(/^\\//,\"\").split(\"/\");h=\"/\"+f.replace(/^\\//,\"\").split(\"/\").slice(g.length).join(\"/\")}let p=QQe(e,{pathname:h}),v=Oet(p&&p.map(g=>Object.assign({},g,{params:Object.assign({},l,g.params),pathname:_p([s,a.encodeLocation?a.encodeLocation(g.pathname).pathname:g.pathname]),pathnameBase:g.pathnameBase===\"/\"?s:_p([s,a.encodeLocation?a.encodeLocation(g.pathnameBase).pathname:g.pathnameBase])})),i,r,n);return t&&v?m.createElement(SD.Provider,{value:{location:d2({pathname:\"/\",search:\"\",hash:\"\",state:null,key:\"default\"},c),navigationType:sf.Pop}},v):v}function ket(){let e=Let(),t=Fet(e)?e.status+\" \"+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,a={padding:\"0.5rem\",backgroundColor:\"rgba(200,200,200, 0.5)\"};return m.createElement(m.Fragment,null,m.createElement(\"h2\",null,\"Unexpected Application Error!\"),m.createElement(\"h3\",{style:{fontStyle:\"italic\"}},t),r?m.createElement(\"pre\",{style:a},r):null,null)}const Ret=m.createElement(ket,null);class Met extends m.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!==\"idle\"&&t.revalidation===\"idle\"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error(\"React Router caught the following error during render\",t,r)}render(){return this.state.error!==void 0?m.createElement(Sd.Provider,{value:this.props.routeContext},m.createElement(Lce.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Pet(e){let{routeContext:t,match:r,children:n}=e,a=m.useContext(hB);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),m.createElement(Sd.Provider,{value:t},n)}function Oet(e,t,r,n){var a;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,l=(a=r)==null?void 0:a.errors;if(l!=null){let c=o.findIndex(d=>d.route.id&&(l==null?void 0:l[d.route.id])!==void 0);c>=0||Ja(!1),o=o.slice(0,Math.min(o.length,c+1))}let s=!1,u=-1;if(r&&n&&n.v7_partialHydration)for(let c=0;c<o.length;c++){let d=o[c];if((d.route.HydrateFallback||d.route.hydrateFallbackElement)&&(u=c),d.route.id){let{loaderData:f,errors:h}=r,p=d.route.loader&&f[d.route.id]===void 0&&(!h||h[d.route.id]===void 0);if(d.route.lazy||p){s=!0,u>=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((c,d,f)=>{let h,p=!1,v=null,g=null;r&&(h=l&&d.route.id?l[d.route.id]:void 0,v=d.route.errorElement||Ret,s&&(u<0&&f===0?(zet(\"route-fallback\"),p=!0,g=null):u===f&&(p=!0,g=d.route.hydrateFallbackElement||null)));let y=t.concat(o.slice(0,f+1)),b=()=>{let x;return h?x=v:p?x=g:d.route.Component?x=m.createElement(d.route.Component,null):d.route.element?x=d.route.element:x=c,m.createElement(Pet,{match:d,routeContext:{outlet:c,matches:y,isDataRoute:r!=null},children:x})};return r&&(d.route.ErrorBoundary||d.route.errorElement||f===0)?m.createElement(Met,{location:r.location,revalidation:r.revalidation,component:v,error:h,children:b(),routeContext:{outlet:null,matches:y,isDataRoute:!0}}):b()},null)}var zce=function(e){return e.UseBlocker=\"useBlocker\",e.UseRevalidator=\"useRevalidator\",e.UseNavigateStable=\"useNavigate\",e}(zce||{}),Hce=function(e){return e.UseBlocker=\"useBlocker\",e.UseLoaderData=\"useLoaderData\",e.UseActionData=\"useActionData\",e.UseRouteError=\"useRouteError\",e.UseNavigation=\"useNavigation\",e.UseRouteLoaderData=\"useRouteLoaderData\",e.UseMatches=\"useMatches\",e.UseRevalidator=\"useRevalidator\",e.UseNavigateStable=\"useNavigate\",e.UseRouteId=\"useRouteId\",e}(Hce||{});function Bet(e){let t=m.useContext(hB);return t||Ja(!1),t}function Net(e){let t=m.useContext(Eet);return t||Ja(!1),t}function $et(e){let t=m.useContext(Sd);return t||Ja(!1),t}function Vce(e){let t=$et(),r=t.matches[t.matches.length-1];return r.route.id||Ja(!1),r.route.id}function Let(){var e;let t=m.useContext(Lce),r=Net(),n=Vce();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function jet(){let{router:e}=Bet(zce.UseNavigateStable),t=Vce(Hce.UseNavigateStable),r=m.useRef(!1);return jce(()=>{r.current=!0}),m.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a==\"number\"?e.navigate(a):e.navigate(a,d2({fromRouteId:t},i)))},[e,t])}const IG={};function zet(e,t,r){IG[e]||(IG[e]=!0)}function Het(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Wce(e){let{to:t,replace:r,state:n,relative:a}=e;Hx()||Ja(!1);let{future:i,static:o}=m.useContext(zx),{matches:l}=m.useContext(Sd),{pathname:s}=Am(),u=Ia(),c=Nce(t,Bce(l,i.v7_relativeSplatPath),s,a===\"path\"),d=JSON.stringify(c);return m.useEffect(()=>u(JSON.parse(d),{replace:r,state:n,relative:a}),[u,d,a,r,n]),null}function Vet(e){return _et(e.context)}function pB(e){Ja(!1)}function Wet(e){let{basename:t=\"/\",children:r=null,location:n,navigationType:a=sf.Pop,navigator:i,static:o=!1,future:l}=e;Hx()&&Ja(!1);let s=t.replace(/^\\/*/,\"/\"),u=m.useMemo(()=>({basename:s,navigator:i,static:o,future:d2({v7_relativeSplatPath:!1},l)}),[s,l,i,o]);typeof n==\"string\"&&(n=Dm(n));let{pathname:c=\"/\",search:d=\"\",hash:f=\"\",state:h=null,key:p=\"default\"}=n,v=m.useMemo(()=>{let g=Oce(c,s);return g==null?null:{location:{pathname:g,search:d,hash:f,state:h,key:p},navigationType:a}},[s,c,d,f,h,p,a]);return v==null?null:m.createElement(zx.Provider,{value:u},m.createElement(SD.Provider,{children:r,value:v}))}function Get(e){let{children:t,location:r}=e;return Tet(yM(t),r)}new Promise(()=>{});function yM(e,t){t===void 0&&(t=[]);let r=[];return m.Children.forEach(e,(n,a)=>{if(!m.isValidElement(n))return;let i=[...t,a];if(n.type===m.Fragment){r.push.apply(r,yM(n.props.children,i));return}n.type!==pB&&Ja(!1),!n.props.index||!n.props.children||Ja(!1);let o={id:n.props.id||i.join(\"-\"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(o.children=yM(n.props.children,i)),r.push(o)}),r}/**\n * React Router DOM v6.30.3\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */function bM(e){return e===void 0&&(e=\"\"),new URLSearchParams(typeof e==\"string\"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function Uet(e,t){let r=bM(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const Ket=\"6\";try{window.__reactRouterVersion=Ket}catch{}const Yet=\"startTransition\",kG=Z2[Yet];function qet(e){let{basename:t,children:r,future:n,window:a}=e,i=m.useRef();i.current==null&&(i.current=XQe({window:a,v5Compat:!0}));let o=i.current,[l,s]=m.useState({action:o.action,location:o.location}),{v7_startTransition:u}=n||{},c=m.useCallback(d=>{u&&kG?kG(()=>s(d)):s(d)},[s,u]);return m.useLayoutEffect(()=>o.listen(c),[o,c]),m.useEffect(()=>Het(n),[n]),m.createElement(Wet,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:o,future:n})}var RG;(function(e){e.UseScrollRestoration=\"useScrollRestoration\",e.UseSubmit=\"useSubmit\",e.UseSubmitFetcher=\"useSubmitFetcher\",e.UseFetcher=\"useFetcher\",e.useViewTransitionState=\"useViewTransitionState\"})(RG||(RG={}));var MG;(function(e){e.UseFetcher=\"useFetcher\",e.UseFetchers=\"useFetchers\",e.UseScrollRestoration=\"useScrollRestoration\"})(MG||(MG={}));function mB(e){let t=m.useRef(bM(e)),r=m.useRef(!1),n=Am(),a=m.useMemo(()=>Uet(n.search,r.current?null:t.current),[n.search]),i=Ia(),o=m.useCallback((l,s)=>{const u=bM(typeof l==\"function\"?l(a):l);r.current=!0,i(\"?\"+u,s)},[i,a]);return[a,o]}const Xet=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Oat),[],import.meta.url)),Jet=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Nat),[],import.meta.url)),Zet=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Lat),[],import.meta.url)),Qet=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>zat),[],import.meta.url)),ett=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>jft),[],import.meta.url)),PG=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Zft),[],import.meta.url)),ttt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>eht),[],import.meta.url)),OG=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>fht),[],import.meta.url)),rtt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Cht),[],import.meta.url)),ntt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Eht),[],import.meta.url)),att=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Mht),[],import.meta.url)),BG=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Bht),[],import.meta.url)),itt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>lpt),[],import.meta.url)),ott=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>dpt),[],import.meta.url)),ltt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>hpt),[],import.meta.url)),stt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Kpt),[],import.meta.url)),NG=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Zpt),[],import.meta.url)),utt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>emt),[],import.meta.url)),ctt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>omt),[],import.meta.url)),dtt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>smt),[],import.meta.url)),ftt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>dmt),[],import.meta.url)),htt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>hmt),[],import.meta.url)),ptt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Cmt),[],import.meta.url)),mtt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>_mt),[],import.meta.url)),vtt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Rmt),[],import.meta.url)),gtt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Omt),[],import.meta.url)),ytt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Nmt),[],import.meta.url)),btt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Lmt),[],import.meta.url)),xtt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>mkt),[],import.meta.url)),Ctt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>gkt),[],import.meta.url)),Ftt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>bkt),[],import.meta.url)),Stt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Ckt),[],import.meta.url)),wtt=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Skt),[],import.meta.url)),Ett=le.lazy(()=>Fn(()=>Promise.resolve().then(()=>Ekt),[],import.meta.url)),Dtt=()=>C.jsx(\"div\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",height:\"100vh\"},children:C.jsx(mi,{size:\"large\",tip:\"加载中...\"})}),fn=e=>C.jsx(m.Suspense,{fallback:C.jsx(Dtt,{}),children:C.jsx(e,{})}),Att=[{path:\"/login\",element:fn(wtt),meta:{requiresAuth:!1,title:\"登录\"}},{path:\"/\",element:fn(Xet),meta:{requiresAuth:!0,title:\"USER评价业务闭环系统\"},children:[{path:\"\",element:C.jsx(Wce,{to:\"/dashboard\",replace:!0})},{path:\"dashboard\",element:fn(Jet),meta:{requiresAuth:!0,title:\"工作台\"}},{path:\"plan\",element:fn(Zet),meta:{requiresAuth:!0,title:\"评价计划管理\",permission:\"plan:view\"}},{path:\"plan/review\",element:fn(ett),meta:{requiresAuth:!0,title:\"测评计划\",permission:\"plan:view\"}},{path:\"plan/review/create\",element:fn(PG),meta:{requiresAuth:!0,title:\"新增测评计划\",permission:\"plan:create\"}},{path:\"plan/review/edit/:id\",element:fn(PG),meta:{requiresAuth:!0,title:\"编辑测评计划\",permission:\"plan:edit\"}},{path:\"plan/reply\",element:fn(ttt),meta:{requiresAuth:!0,title:\"回评计划\",permission:\"plan:view\"}},{path:\"plan/reply/create\",element:fn(OG),meta:{requiresAuth:!0,title:\"新建回评\",permission:\"plan:create\"}},{path:\"plan/reply/edit/:id\",element:fn(OG),meta:{requiresAuth:!0,title:\"编辑回评\",permission:\"plan:edit\"}},{path:\"plan/free\",element:fn(rtt),meta:{requiresAuth:!0,title:\"免评计划\",permission:\"plan:view\"}},{path:\"plan/:id\",element:fn(Qet),meta:{requiresAuth:!0,title:\"计划详情\",permission:\"plan:view\"}},{path:\"reviewer\",element:fn(ntt),meta:{requiresAuth:!0,title:\"评价人管理\",permission:\"reviewer:view\"}},{path:\"reviewer/create\",element:fn(BG),meta:{requiresAuth:!0,title:\"新建评价人\",permission:\"reviewer:create\"}},{path:\"reviewer/edit/:id\",element:fn(BG),meta:{requiresAuth:!0,title:\"编辑评价人\",permission:\"reviewer:edit\"}},{path:\"reviewer/:id\",element:fn(att),meta:{requiresAuth:!0,title:\"评价人详情\",permission:\"reviewer:view\"}},{path:\"order\",element:fn(itt),meta:{requiresAuth:!0,title:\"测评订单管理\",permission:\"order:view\"}},{path:\"order/create\",element:fn(ott),meta:{requiresAuth:!0,title:\"新增测评订单\",permission:\"order:create\"}},{path:\"review-product/detail/:id\",element:fn(ltt),meta:{requiresAuth:!0,title:\"测评产品详情\",permission:\"order:view\"}},{path:\"review-order\",element:fn(stt),meta:{requiresAuth:!0,title:\"回评订单\",permission:\"review-order:view\"}},{path:\"review-order/create\",element:fn(NG),meta:{requiresAuth:!0,title:\"新增回评订单\",permission:\"review-order:create\"}},{path:\"review-order/edit/:id\",element:fn(NG),meta:{requiresAuth:!0,title:\"编辑回评订单\",permission:\"review-order:edit\"}},{path:\"cs/ticket\",element:fn(utt),meta:{requiresAuth:!0,title:\"工单池\",permission:\"cs:view\"}},{path:\"cs/chat\",element:fn(ctt),meta:{requiresAuth:!0,title:\"聊天\",permission:\"cs:chat\"}},{path:\"cs/promise\",element:fn(ftt),meta:{requiresAuth:!0,title:\"答应配合\",permission:\"cs:view\"}},{path:\"cs/chat-record\",element:fn(dtt),meta:{requiresAuth:!0,title:\"服务聊天记录\",permission:\"cs:view\"}},{path:\"channel/push\",element:fn(htt),meta:{requiresAuth:!0,title:\"推送任务\",permission:\"channel:view\"}},{path:\"channel/im-push\",element:fn(ptt),meta:{requiresAuth:!0,title:\"IM推送\",permission:\"channel:view\"}},{path:\"channel/im-card\",element:fn(mtt),meta:{requiresAuth:!0,title:\"IM推送卡片管理\",permission:\"channel:card\"}},{path:\"channel/config\",element:fn(vtt),meta:{requiresAuth:!0,title:\"推送配置\",permission:\"channel:config\"}},{path:\"risk/event\",element:fn(gtt),meta:{requiresAuth:!0,title:\"风险事件\",permission:\"risk:view\"}},{path:\"risk/blacklist\",element:fn(ytt),meta:{requiresAuth:!0,title:\"黑名单\",permission:\"risk:view\"}},{path:\"risk/refund\",element:fn(btt),meta:{requiresAuth:!0,title:\"退款比对\",permission:\"risk:view\"}},{path:\"dashboard/plan\",element:fn(xtt),meta:{requiresAuth:!0,title:\"计划看板\",permission:\"dashboard:view\"}},{path:\"dashboard/asin\",element:fn(Ctt),meta:{requiresAuth:!0,title:\"ASIN看板\",permission:\"dashboard:view\"}},{path:\"dashboard/cs\",element:fn(Ftt),meta:{requiresAuth:!0,title:\"客服绩效看板\",permission:\"dashboard:view\"}},{path:\"after-sale/detail/:code\",element:fn(Stt),meta:{requiresAuth:!0,title:\"售后信息详情\",permission:\"cs:view\"}}]},{path:\"/404\",element:fn(Ett),meta:{requiresAuth:!1,title:\"页面不存在\"}}];class _tt extends m.Component{constructor(r){super(r);Tu(this,\"handleReset\",()=>{this.setState({hasError:!1,error:null})});this.state={hasError:!1,error:null}}static getDerivedStateFromError(r){return{hasError:!0,error:r}}componentDidCatch(r,n){console.error(\"[GlobalErrorBoundary] Caught error:\",r,n)}render(){var r;return this.state.hasError?C.jsx(\"div\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",minHeight:\"100vh\"},children:C.jsx(wm,{status:\"error\",title:\"页面出现错误\",subTitle:((r=this.state.error)==null?void 0:r.message)||\"请刷新页面重试\",extra:C.jsx(ze,{type:\"primary\",onClick:this.handleReset,children:\"重试\"})})}):this.props.children}}function Gce(e){return e.map((t,r)=>C.jsx(pB,{path:t.path,element:t.element,children:t.children&&Gce(t.children)},t.path||r))}const Ttt=()=>{const e=qet;return C.jsx(_tt,{children:C.jsx(e,{children:C.jsxs(Get,{children:[Gce(Att),C.jsx(pB,{path:\"*\",element:C.jsx(Wce,{to:\"/404\",replace:!0})})]})})})},Yr=e=>typeof e==\"string\",A1=()=>{let e,t;const r=new Promise((n,a)=>{e=n,t=a});return r.resolve=e,r.reject=t,r},$G=e=>e==null?\"\":\"\"+e,Itt=(e,t,r)=>{e.forEach(n=>{t[n]&&(r[n]=t[n])})},ktt=/###/g,LG=e=>e&&e.indexOf(\"###\")>-1?e.replace(ktt,\".\"):e,jG=e=>!e||Yr(e),Zy=(e,t,r)=>{const n=Yr(t)?t.split(\".\"):t;let a=0;for(;a<n.length-1;){if(jG(e))return{};const i=LG(n[a]);!e[i]&&r&&(e[i]=new r),Object.prototype.hasOwnProperty.call(e,i)?e=e[i]:e={},++a}return jG(e)?{}:{obj:e,k:LG(n[a])}},zG=(e,t,r)=>{const{obj:n,k:a}=Zy(e,t,Object);if(n!==void 0||t.length===1){n[a]=r;return}let i=t[t.length-1],o=t.slice(0,t.length-1),l=Zy(e,o,Object);for(;l.obj===void 0&&o.length;)i=`${o[o.length-1]}.${i}`,o=o.slice(0,o.length-1),l=Zy(e,o,Object),l&&l.obj&&typeof l.obj[`${l.k}.${i}`]<\"u\"&&(l.obj=void 0);l.obj[`${l.k}.${i}`]=r},Rtt=(e,t,r,n)=>{const{obj:a,k:i}=Zy(e,t,Object);a[i]=a[i]||[],a[i].push(r)},JE=(e,t)=>{const{obj:r,k:n}=Zy(e,t);if(r)return r[n]},Mtt=(e,t,r)=>{const n=JE(e,r);return n!==void 0?n:JE(t,r)},Uce=(e,t,r)=>{for(const n in t)n!==\"__proto__\"&&n!==\"constructor\"&&(n in e?Yr(e[n])||e[n]instanceof String||Yr(t[n])||t[n]instanceof String?r&&(e[n]=t[n]):Uce(e[n],t[n],r):e[n]=t[n]);return e},nv=e=>e.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\");var Ptt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\",\"/\":\"&#x2F;\"};const Ott=e=>Yr(e)?e.replace(/[&<>\"'\\/]/g,t=>Ptt[t]):e;class Btt{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const r=this.regExpMap.get(t);if(r!==void 0)return r;const n=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,n),this.regExpQueue.push(t),n}}const Ntt=[\" \",\",\",\"?\",\"!\",\";\"],$tt=new Btt(20),Ltt=(e,t,r)=>{t=t||\"\",r=r||\"\";const n=Ntt.filter(o=>t.indexOf(o)<0&&r.indexOf(o)<0);if(n.length===0)return!0;const a=$tt.getRegExp(`(${n.map(o=>o===\"?\"?\"\\\\?\":o).join(\"|\")})`);let i=!a.test(e);if(!i){const o=e.indexOf(r);o>0&&!a.test(e.substring(0,o))&&(i=!0)}return i},xM=function(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:\".\";if(!e)return;if(e[t])return e[t];const n=t.split(r);let a=e;for(let i=0;i<n.length;){if(!a||typeof a!=\"object\")return;let o,l=\"\";for(let s=i;s<n.length;++s)if(s!==i&&(l+=r),l+=n[s],o=a[l],o!==void 0){if([\"string\",\"number\",\"boolean\"].indexOf(typeof o)>-1&&s<n.length-1)continue;i+=s-i+1;break}a=o}return a},ZE=e=>e&&e.replace(\"_\",\"-\"),jtt={type:\"logger\",log(e){this.output(\"log\",e)},warn(e){this.output(\"warn\",e)},error(e){this.output(\"error\",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class QE{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,r)}init(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||\"i18next:\",this.logger=t||jtt,this.options=r,this.debug=r.debug}log(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return this.forward(r,\"log\",\"\",!0)}warn(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return this.forward(r,\"warn\",\"\",!0)}error(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return this.forward(r,\"error\",\"\")}deprecate(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return this.forward(r,\"warn\",\"WARNING DEPRECATED: \",!0)}forward(t,r,n,a){return a&&!this.debug?null:(Yr(t[0])&&(t[0]=`${n}${this.prefix} ${t[0]}`),this.logger[r](t))}create(t){return new QE(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new QE(this.logger,t)}}var qu=new QE;class wD{constructor(){this.observers={}}on(t,r){return t.split(\" \").forEach(n=>{this.observers[n]||(this.observers[n]=new Map);const a=this.observers[n].get(r)||0;this.observers[n].set(r,a+1)}),this}off(t,r){if(this.observers[t]){if(!r){delete this.observers[t];return}this.observers[t].delete(r)}}emit(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),a=1;a<r;a++)n[a-1]=arguments[a];this.observers[t]&&Array.from(this.observers[t].entries()).forEach(o=>{let[l,s]=o;for(let u=0;u<s;u++)l(...n)}),this.observers[\"*\"]&&Array.from(this.observers[\"*\"].entries()).forEach(o=>{let[l,s]=o;for(let u=0;u<s;u++)l.apply(l,[t,...n])})}}class HG extends wD{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:[\"translation\"],defaultNS:\"translation\"};super(),this.data=t||{},this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator=\".\"),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const r=this.options.ns.indexOf(t);r>-1&&this.options.ns.splice(r,1)}getResource(t,r,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator,o=a.ignoreJSONStructure!==void 0?a.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;t.indexOf(\".\")>-1?l=t.split(\".\"):(l=[t,r],n&&(Array.isArray(n)?l.push(...n):Yr(n)&&i?l.push(...n.split(i)):l.push(n)));const s=JE(this.data,l);return!s&&!r&&!n&&t.indexOf(\".\")>-1&&(t=l[0],r=l[1],n=l.slice(2).join(\".\")),s||!o||!Yr(n)?s:xM(this.data&&this.data[t]&&this.data[t][r],n,i)}addResource(t,r,n,a){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let l=[t,r];n&&(l=l.concat(o?n.split(o):n)),t.indexOf(\".\")>-1&&(l=t.split(\".\"),a=r,r=l[1]),this.addNamespaces(r),zG(this.data,l,a),i.silent||this.emit(\"added\",t,r,n,a)}addResources(t,r,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const i in n)(Yr(n[i])||Array.isArray(n[i]))&&this.addResource(t,r,i,n[i],{silent:!0});a.silent||this.emit(\"added\",t,r,n)}addResourceBundle(t,r,n,a,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},l=[t,r];t.indexOf(\".\")>-1&&(l=t.split(\".\"),a=n,n=r,r=l[1]),this.addNamespaces(r);let s=JE(this.data,l)||{};o.skipCopy||(n=JSON.parse(JSON.stringify(n))),a?Uce(s,n,i):s={...s,...n},zG(this.data,l,s),o.silent||this.emit(\"added\",t,r,n)}removeResourceBundle(t,r){this.hasResourceBundle(t,r)&&delete this.data[t][r],this.removeNamespaces(r),this.emit(\"removed\",t,r)}hasResourceBundle(t,r){return this.getResource(t,r)!==void 0}getResourceBundle(t,r){return r||(r=this.options.defaultNS),this.options.compatibilityAPI===\"v1\"?{...this.getResource(t,r)}:this.getResource(t,r)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const r=this.getDataByLanguage(t);return!!(r&&Object.keys(r)||[]).find(a=>r[a]&&Object.keys(r[a]).length>0)}toJSON(){return this.data}}var Kce={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,r,n,a){return e.forEach(i=>{this.processors[i]&&(t=this.processors[i].process(t,r,n,a))}),t}};const VG={};class e3 extends wD{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),Itt([\"resourceStore\",\"languageUtils\",\"pluralResolver\",\"interpolator\",\"backendConnector\",\"i18nFormat\",\"utils\"],t,this),this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator=\".\"),this.logger=qu.create(\"translator\")}changeLanguage(t){t&&(this.language=t)}exists(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const n=this.resolve(t,r);return n&&n.res!==void 0}extractFromKey(t,r){let n=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;n===void 0&&(n=\":\");const a=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let i=r.ns||this.options.defaultNS||[];const o=n&&t.indexOf(n)>-1,l=!this.options.userDefinedKeySeparator&&!r.keySeparator&&!this.options.userDefinedNsSeparator&&!r.nsSeparator&&!Ltt(t,n,a);if(o&&!l){const s=t.match(this.interpolator.nestingRegexp);if(s&&s.length>0)return{key:t,namespaces:Yr(i)?[i]:i};const u=t.split(n);(n!==a||n===a&&this.options.ns.indexOf(u[0])>-1)&&(i=u.shift()),t=u.join(a)}return{key:t,namespaces:Yr(i)?[i]:i}}translate(t,r,n){if(typeof r!=\"object\"&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),typeof r==\"object\"&&(r={...r}),r||(r={}),t==null)return\"\";Array.isArray(t)||(t=[String(t)]);const a=r.returnDetails!==void 0?r.returnDetails:this.options.returnDetails,i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,{key:o,namespaces:l}=this.extractFromKey(t[t.length-1],r),s=l[l.length-1],u=r.lng||this.language,c=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()===\"cimode\"){if(c){const F=r.nsSeparator||this.options.nsSeparator;return a?{res:`${s}${F}${o}`,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:s,usedParams:this.getUsedParamsDetails(r)}:`${s}${F}${o}`}return a?{res:o,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:s,usedParams:this.getUsedParamsDetails(r)}:o}const d=this.resolve(t,r);let f=d&&d.res;const h=d&&d.usedKey||o,p=d&&d.exactUsedKey||o,v=Object.prototype.toString.apply(f),g=[\"[object Number]\",\"[object Function]\",\"[object RegExp]\"],y=r.joinArrays!==void 0?r.joinArrays:this.options.joinArrays,b=!this.i18nFormat||this.i18nFormat.handleAsObject,x=!Yr(f)&&typeof f!=\"boolean\"&&typeof f!=\"number\";if(b&&f&&x&&g.indexOf(v)<0&&!(Yr(y)&&Array.isArray(f))){if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(\"accessing an object - but returnObjects options is not enabled!\");const F=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,f,{...r,ns:l}):`key '${o} (${this.language})' returned an object instead of string.`;return a?(d.res=F,d.usedParams=this.getUsedParamsDetails(r),d):F}if(i){const F=Array.isArray(f),S=F?[]:{},E=F?p:h;for(const w in f)if(Object.prototype.hasOwnProperty.call(f,w)){const D=`${E}${i}${w}`;S[w]=this.translate(D,{...r,joinArrays:!1,ns:l}),S[w]===D&&(S[w]=f[w])}f=S}}else if(b&&Yr(y)&&Array.isArray(f))f=f.join(y),f&&(f=this.extendTranslation(f,t,r,n));else{let F=!1,S=!1;const E=r.count!==void 0&&!Yr(r.count),w=e3.hasDefaultValue(r),D=E?this.pluralResolver.getSuffix(u,r.count,r):\"\",A=r.ordinal&&E?this.pluralResolver.getSuffix(u,r.count,{ordinal:!1}):\"\",_=E&&!r.ordinal&&r.count===0&&this.pluralResolver.shouldUseIntlApi(),I=_&&r[`defaultValue${this.options.pluralSeparator}zero`]||r[`defaultValue${D}`]||r[`defaultValue${A}`]||r.defaultValue;!this.isValidLookup(f)&&w&&(F=!0,f=I),this.isValidLookup(f)||(S=!0,f=o);const T=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&S?void 0:f,k=w&&I!==f&&this.options.updateMissing;if(S||F||k){if(this.logger.log(k?\"updateKey\":\"missingKey\",u,s,o,k?I:f),i){const N=this.resolve(o,{...r,keySeparator:!1});N&&N.res&&this.logger.warn(\"Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.\")}let R=[];const P=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if(this.options.saveMissingTo===\"fallback\"&&P&&P[0])for(let N=0;N<P.length;N++)R.push(P[N]);else this.options.saveMissingTo===\"all\"?R=this.languageUtils.toResolveHierarchy(r.lng||this.language):R.push(r.lng||this.language);const B=(N,O,z)=>{const W=w&&z!==f?z:T;this.options.missingKeyHandler?this.options.missingKeyHandler(N,s,O,W,k,r):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(N,s,O,W,k,r),this.emit(\"missingKey\",N,s,O,f)};this.options.saveMissing&&(this.options.saveMissingPlurals&&E?R.forEach(N=>{const O=this.pluralResolver.getSuffixes(N,r);_&&r[`defaultValue${this.options.pluralSeparator}zero`]&&O.indexOf(`${this.options.pluralSeparator}zero`)<0&&O.push(`${this.options.pluralSeparator}zero`),O.forEach(z=>{B([N],o+z,r[`defaultValue${z}`]||I)})}):B(R,o,I))}f=this.extendTranslation(f,t,r,d,n),S&&f===o&&this.options.appendNamespaceToMissingKey&&(f=`${s}:${o}`),(S||F)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!==\"v1\"?f=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${s}:${o}`:o,F?f:void 0):f=this.options.parseMissingKeyHandler(f))}return a?(d.res=f,d.usedParams=this.getUsedParamsDetails(r),d):f}extendTranslation(t,r,n,a,i){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||a.usedLng,a.usedNS,a.usedKey,{resolved:a});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});const u=Yr(t)&&(n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(u){const f=t.match(this.interpolator.nestingRegexp);c=f&&f.length}let d=n.replace&&!Yr(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(d={...this.options.interpolation.defaultVariables,...d}),t=this.interpolator.interpolate(t,d,n.lng||this.language||a.usedLng,n),u){const f=t.match(this.interpolator.nestingRegexp),h=f&&f.length;c<h&&(n.nest=!1)}!n.lng&&this.options.compatibilityAPI!==\"v1\"&&a&&a.res&&(n.lng=this.language||a.usedLng),n.nest!==!1&&(t=this.interpolator.nest(t,function(){for(var f=arguments.length,h=new Array(f),p=0;p<f;p++)h[p]=arguments[p];return i&&i[0]===h[0]&&!n.context?(o.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${r[0]}`),null):o.translate(...h,r)},n)),n.interpolation&&this.interpolator.reset()}const l=n.postProcess||this.options.postProcess,s=Yr(l)?[l]:l;return t!=null&&s&&s.length&&n.applyPostProcessor!==!1&&(t=Kce.handle(s,t,r,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...a,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),t}resolve(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n,a,i,o,l;return Yr(t)&&(t=[t]),t.forEach(s=>{if(this.isValidLookup(n))return;const u=this.extractFromKey(s,r),c=u.key;a=c;let d=u.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));const f=r.count!==void 0&&!Yr(r.count),h=f&&!r.ordinal&&r.count===0&&this.pluralResolver.shouldUseIntlApi(),p=r.context!==void 0&&(Yr(r.context)||typeof r.context==\"number\")&&r.context!==\"\",v=r.lngs?r.lngs:this.languageUtils.toResolveHierarchy(r.lng||this.language,r.fallbackLng);d.forEach(g=>{this.isValidLookup(n)||(l=g,!VG[`${v[0]}-${g}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(l)&&(VG[`${v[0]}-${g}`]=!0,this.logger.warn(`key \"${a}\" for languages \"${v.join(\", \")}\" won't get resolved as namespace \"${l}\" was not yet loaded`,\"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!\")),v.forEach(y=>{if(this.isValidLookup(n))return;o=y;const b=[c];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(b,c,y,g,r);else{let F;f&&(F=this.pluralResolver.getSuffix(y,r.count,r));const S=`${this.options.pluralSeparator}zero`,E=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(f&&(b.push(c+F),r.ordinal&&F.indexOf(E)===0&&b.push(c+F.replace(E,this.options.pluralSeparator)),h&&b.push(c+S)),p){const w=`${c}${this.options.contextSeparator}${r.context}`;b.push(w),f&&(b.push(w+F),r.ordinal&&F.indexOf(E)===0&&b.push(w+F.replace(E,this.options.pluralSeparator)),h&&b.push(w+S))}}let x;for(;x=b.pop();)this.isValidLookup(n)||(i=x,n=this.getResource(y,g,x,r))}))})}),{res:n,usedKey:a,exactUsedKey:i,usedLng:o,usedNS:l}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t===\"\")}getResource(t,r,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,r,n,a):this.resourceStore.getResource(t,r,n,a)}getUsedParamsDetails(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const r=[\"defaultValue\",\"ordinal\",\"context\",\"replace\",\"lng\",\"lngs\",\"fallbackLng\",\"ns\",\"keySeparator\",\"nsSeparator\",\"returnObjects\",\"returnDetails\",\"joinArrays\",\"postProcess\",\"interpolation\"],n=t.replace&&!Yr(t.replace);let a=n?t.replace:t;if(n&&typeof t.count<\"u\"&&(a.count=t.count),this.options.interpolation.defaultVariables&&(a={...this.options.interpolation.defaultVariables,...a}),!n){a={...a};for(const i of r)delete a[i]}return a}static hasDefaultValue(t){const r=\"defaultValue\";for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&r===n.substring(0,r.length)&&t[n]!==void 0)return!0;return!1}}const z5=e=>e.charAt(0).toUpperCase()+e.slice(1);class WG{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=qu.create(\"languageUtils\")}getScriptPartFromCode(t){if(t=ZE(t),!t||t.indexOf(\"-\")<0)return null;const r=t.split(\"-\");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()===\"x\")?null:this.formatLanguageCode(r.join(\"-\"))}getLanguagePartFromCode(t){if(t=ZE(t),!t||t.indexOf(\"-\")<0)return t;const r=t.split(\"-\");return this.formatLanguageCode(r[0])}formatLanguageCode(t){if(Yr(t)&&t.indexOf(\"-\")>-1){if(typeof Intl<\"u\"&&typeof Intl.getCanonicalLocales<\"u\")try{let a=Intl.getCanonicalLocales(t)[0];if(a&&this.options.lowerCaseLng&&(a=a.toLowerCase()),a)return a}catch{}const r=[\"hans\",\"hant\",\"latn\",\"cyrl\",\"cans\",\"mong\",\"arab\"];let n=t.split(\"-\");return this.options.lowerCaseLng?n=n.map(a=>a.toLowerCase()):n.length===2?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),r.indexOf(n[1].toLowerCase())>-1&&(n[1]=z5(n[1].toLowerCase()))):n.length===3&&(n[0]=n[0].toLowerCase(),n[1].length===2&&(n[1]=n[1].toUpperCase()),n[0]!==\"sgn\"&&n[2].length===2&&(n[2]=n[2].toUpperCase()),r.indexOf(n[1].toLowerCase())>-1&&(n[1]=z5(n[1].toLowerCase())),r.indexOf(n[2].toLowerCase())>-1&&(n[2]=z5(n[2].toLowerCase()))),n.join(\"-\")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load===\"languageOnly\"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let r;return t.forEach(n=>{if(r)return;const a=this.formatLanguageCode(n);(!this.options.supportedLngs||this.isSupportedCode(a))&&(r=a)}),!r&&this.options.supportedLngs&&t.forEach(n=>{if(r)return;const a=this.getLanguagePartFromCode(n);if(this.isSupportedCode(a))return r=a;r=this.options.supportedLngs.find(i=>{if(i===a)return i;if(!(i.indexOf(\"-\")<0&&a.indexOf(\"-\")<0)&&(i.indexOf(\"-\")>0&&a.indexOf(\"-\")<0&&i.substring(0,i.indexOf(\"-\"))===a||i.indexOf(a)===0&&a.length>1))return i})}),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r}getFallbackCodes(t,r){if(!t)return[];if(typeof t==\"function\"&&(t=t(r)),Yr(t)&&(t=[t]),Array.isArray(t))return t;if(!r)return t.default||[];let n=t[r];return n||(n=t[this.getScriptPartFromCode(r)]),n||(n=t[this.formatLanguageCode(r)]),n||(n=t[this.getLanguagePartFromCode(r)]),n||(n=t.default),n||[]}toResolveHierarchy(t,r){const n=this.getFallbackCodes(r||this.options.fallbackLng||[],t),a=[],i=o=>{o&&(this.isSupportedCode(o)?a.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return Yr(t)&&(t.indexOf(\"-\")>-1||t.indexOf(\"_\")>-1)?(this.options.load!==\"languageOnly\"&&i(this.formatLanguageCode(t)),this.options.load!==\"languageOnly\"&&this.options.load!==\"currentOnly\"&&i(this.getScriptPartFromCode(t)),this.options.load!==\"currentOnly\"&&i(this.getLanguagePartFromCode(t))):Yr(t)&&i(this.formatLanguageCode(t)),n.forEach(o=>{a.indexOf(o)<0&&i(this.formatLanguageCode(o))}),a}}let ztt=[{lngs:[\"ach\",\"ak\",\"am\",\"arn\",\"br\",\"fil\",\"gun\",\"ln\",\"mfe\",\"mg\",\"mi\",\"oc\",\"pt\",\"pt-BR\",\"tg\",\"tl\",\"ti\",\"tr\",\"uz\",\"wa\"],nr:[1,2],fc:1},{lngs:[\"af\",\"an\",\"ast\",\"az\",\"bg\",\"bn\",\"ca\",\"da\",\"de\",\"dev\",\"el\",\"en\",\"eo\",\"es\",\"et\",\"eu\",\"fi\",\"fo\",\"fur\",\"fy\",\"gl\",\"gu\",\"ha\",\"hi\",\"hu\",\"hy\",\"ia\",\"it\",\"kk\",\"kn\",\"ku\",\"lb\",\"mai\",\"ml\",\"mn\",\"mr\",\"nah\",\"nap\",\"nb\",\"ne\",\"nl\",\"nn\",\"no\",\"nso\",\"pa\",\"pap\",\"pms\",\"ps\",\"pt-PT\",\"rm\",\"sco\",\"se\",\"si\",\"so\",\"son\",\"sq\",\"sv\",\"sw\",\"ta\",\"te\",\"tk\",\"ur\",\"yo\"],nr:[1,2],fc:2},{lngs:[\"ay\",\"bo\",\"cgg\",\"fa\",\"ht\",\"id\",\"ja\",\"jbo\",\"ka\",\"km\",\"ko\",\"ky\",\"lo\",\"ms\",\"sah\",\"su\",\"th\",\"tt\",\"ug\",\"vi\",\"wo\",\"zh\"],nr:[1],fc:3},{lngs:[\"be\",\"bs\",\"cnr\",\"dz\",\"hr\",\"ru\",\"sr\",\"uk\"],nr:[1,2,5],fc:4},{lngs:[\"ar\"],nr:[0,1,2,3,11,100],fc:5},{lngs:[\"cs\",\"sk\"],nr:[1,2,5],fc:6},{lngs:[\"csb\",\"pl\"],nr:[1,2,5],fc:7},{lngs:[\"cy\"],nr:[1,2,3,8],fc:8},{lngs:[\"fr\"],nr:[1,2],fc:9},{lngs:[\"ga\"],nr:[1,2,3,7,11],fc:10},{lngs:[\"gd\"],nr:[1,2,3,20],fc:11},{lngs:[\"is\"],nr:[1,2],fc:12},{lngs:[\"jv\"],nr:[0,1],fc:13},{lngs:[\"kw\"],nr:[1,2,3,4],fc:14},{lngs:[\"lt\"],nr:[1,2,10],fc:15},{lngs:[\"lv\"],nr:[1,2,0],fc:16},{lngs:[\"mk\"],nr:[1,2],fc:17},{lngs:[\"mnk\"],nr:[0,1,2],fc:18},{lngs:[\"mt\"],nr:[1,2,11,20],fc:19},{lngs:[\"or\"],nr:[2,1],fc:2},{lngs:[\"ro\"],nr:[1,2,20],fc:20},{lngs:[\"sl\"],nr:[5,1,2,3],fc:21},{lngs:[\"he\",\"iw\"],nr:[1,2,20,21],fc:22}],Htt={1:e=>+(e>1),2:e=>+(e!=1),3:e=>0,4:e=>e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,5:e=>e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5,6:e=>e==1?0:e>=2&&e<=4?1:2,7:e=>e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2,8:e=>e==1?0:e==2?1:e!=8&&e!=11?2:3,9:e=>+(e>=2),10:e=>e==1?0:e==2?1:e<7?2:e<11?3:4,11:e=>e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3,12:e=>+(e%10!=1||e%100==11),13:e=>+(e!==0),14:e=>e==1?0:e==2?1:e==3?2:3,15:e=>e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2,16:e=>e%10==1&&e%100!=11?0:e!==0?1:2,17:e=>e==1||e%10==1&&e%100!=11?0:1,18:e=>e==0?0:e==1?1:2,19:e=>e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3,20:e=>e==1?0:e==0||e%100>0&&e%100<20?1:2,21:e=>e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0,22:e=>e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3};const Vtt=[\"v1\",\"v2\",\"v3\"],Wtt=[\"v4\"],GG={zero:0,one:1,two:2,few:3,many:4,other:5},Gtt=()=>{const e={};return ztt.forEach(t=>{t.lngs.forEach(r=>{e[r]={numbers:t.nr,plurals:Htt[t.fc]}})}),e};class Utt{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=r,this.logger=qu.create(\"pluralResolver\"),(!this.options.compatibilityJSON||Wtt.includes(this.options.compatibilityJSON))&&(typeof Intl>\"u\"||!Intl.PluralRules)&&(this.options.compatibilityJSON=\"v3\",this.logger.error(\"Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.\")),this.rules=Gtt(),this.pluralRulesCache={}}addRule(t,r){this.rules[t]=r}clearCache(){this.pluralRulesCache={}}getRule(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const n=ZE(t===\"dev\"?\"en\":t),a=r.ordinal?\"ordinal\":\"cardinal\",i=JSON.stringify({cleanedCode:n,type:a});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let o;try{o=new Intl.PluralRules(n,{type:a})}catch{if(!t.match(/-|_/))return;const s=this.languageUtils.getLanguagePartFromCode(t);o=this.getRule(s,r)}return this.pluralRulesCache[i]=o,o}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(t,r);return this.shouldUseIntlApi()?n&&n.resolvedOptions().pluralCategories.length>1:n&&n.numbers.length>1}getPluralFormsOfKey(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,n).map(a=>`${r}${a}`)}getSuffixes(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const n=this.getRule(t,r);return n?this.shouldUseIntlApi()?n.resolvedOptions().pluralCategories.sort((a,i)=>GG[a]-GG[i]).map(a=>`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:\"\"}${a}`):n.numbers.map(a=>this.getSuffix(t,a,r)):[]}getSuffix(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const a=this.getRule(t,n);return a?this.shouldUseIntlApi()?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:\"\"}${a.select(r)}`:this.getSuffixRetroCompatible(a,r):(this.logger.warn(`no plural rule found for: ${t}`),\"\")}getSuffixRetroCompatible(t,r){const n=t.noAbs?t.plurals(r):t.plurals(Math.abs(r));let a=t.numbers[n];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(a===2?a=\"plural\":a===1&&(a=\"\"));const i=()=>this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString();return this.options.compatibilityJSON===\"v1\"?a===1?\"\":typeof a==\"number\"?`_plural_${a.toString()}`:i():this.options.compatibilityJSON===\"v2\"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?i():this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString()}shouldUseIntlApi(){return!Vtt.includes(this.options.compatibilityJSON)}}const UG=function(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:\".\",a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=Mtt(e,t,r);return!i&&a&&Yr(r)&&(i=xM(e,r,n),i===void 0&&(i=xM(t,r,n))),i},H5=e=>e.replace(/\\$/g,\"$$$$\");class Ktt{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=qu.create(\"interpolator\"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(r=>r),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const{escape:r,escapeValue:n,useRawValueToEscape:a,prefix:i,prefixEscaped:o,suffix:l,suffixEscaped:s,formatSeparator:u,unescapeSuffix:c,unescapePrefix:d,nestingPrefix:f,nestingPrefixEscaped:h,nestingSuffix:p,nestingSuffixEscaped:v,nestingOptionsSeparator:g,maxReplaces:y,alwaysFormat:b}=t.interpolation;this.escape=r!==void 0?r:Ott,this.escapeValue=n!==void 0?n:!0,this.useRawValueToEscape=a!==void 0?a:!1,this.prefix=i?nv(i):o||\"{{\",this.suffix=l?nv(l):s||\"}}\",this.formatSeparator=u||\",\",this.unescapePrefix=c?\"\":d||\"-\",this.unescapeSuffix=this.unescapePrefix?\"\":c||\"\",this.nestingPrefix=f?nv(f):h||nv(\"$t(\"),this.nestingSuffix=p?nv(p):v||nv(\")\"),this.nestingOptionsSeparator=g||\",\",this.maxReplaces=y||1e3,this.alwaysFormat=b!==void 0?b:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(r,n)=>r&&r.source===n?(r.lastIndex=0,r):new RegExp(n,\"g\");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(t,r,n,a){let i,o,l;const s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},u=h=>{if(h.indexOf(this.formatSeparator)<0){const y=UG(r,s,h,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(y,void 0,n,{...a,...r,interpolationkey:h}):y}const p=h.split(this.formatSeparator),v=p.shift().trim(),g=p.join(this.formatSeparator).trim();return this.format(UG(r,s,v,this.options.keySeparator,this.options.ignoreJSONStructure),g,n,{...a,...r,interpolationkey:v})};this.resetRegExp();const c=a&&a.missingInterpolationHandler||this.options.missingInterpolationHandler,d=a&&a.interpolation&&a.interpolation.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:h=>H5(h)},{regex:this.regexp,safeValue:h=>this.escapeValue?H5(this.escape(h)):H5(h)}].forEach(h=>{for(l=0;i=h.regex.exec(t);){const p=i[1].trim();if(o=u(p),o===void 0)if(typeof c==\"function\"){const g=c(t,i,a);o=Yr(g)?g:\"\"}else if(a&&Object.prototype.hasOwnProperty.call(a,p))o=\"\";else if(d){o=i[0];continue}else this.logger.warn(`missed to pass in variable ${p} for interpolating ${t}`),o=\"\";else!Yr(o)&&!this.useRawValueToEscape&&(o=$G(o));const v=h.safeValue(o);if(t=t.replace(i[0],v),d?(h.regex.lastIndex+=o.length,h.regex.lastIndex-=i[0].length):h.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),t}nest(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a,i,o;const l=(s,u)=>{const c=this.nestingOptionsSeparator;if(s.indexOf(c)<0)return s;const d=s.split(new RegExp(`${c}[ ]*{`));let f=`{${d[1]}`;s=d[0],f=this.interpolate(f,o);const h=f.match(/'/g),p=f.match(/\"/g);(h&&h.length%2===0&&!p||p.length%2!==0)&&(f=f.replace(/'/g,'\"'));try{o=JSON.parse(f),u&&(o={...u,...o})}catch(v){return this.logger.warn(`failed parsing options string in nesting for key ${s}`,v),`${s}${c}${f}`}return o.defaultValue&&o.defaultValue.indexOf(this.prefix)>-1&&delete o.defaultValue,s};for(;a=this.nestingRegexp.exec(t);){let s=[];o={...n},o=o.replace&&!Yr(o.replace)?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=!1;if(a[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(a[1])){const c=a[1].split(this.formatSeparator).map(d=>d.trim());a[1]=c.shift(),s=c,u=!0}if(i=r(l.call(this,a[1].trim(),o),o),i&&a[0]===t&&!Yr(i))return i;Yr(i)||(i=$G(i)),i||(this.logger.warn(`missed to resolve ${a[1]} for nesting ${t}`),i=\"\"),u&&(i=s.reduce((c,d)=>this.format(c,d,n.lng,{...n,interpolationkey:a[1].trim()}),i.trim())),t=t.replace(a[0],i),this.regexp.lastIndex=0}return t}}const Ytt=e=>{let t=e.toLowerCase().trim();const r={};if(e.indexOf(\"(\")>-1){const n=e.split(\"(\");t=n[0].toLowerCase().trim();const a=n[1].substring(0,n[1].length-1);t===\"currency\"&&a.indexOf(\":\")<0?r.currency||(r.currency=a.trim()):t===\"relativetime\"&&a.indexOf(\":\")<0?r.range||(r.range=a.trim()):a.split(\";\").forEach(o=>{if(o){const[l,...s]=o.split(\":\"),u=s.join(\":\").trim().replace(/^'+|'+$/g,\"\"),c=l.trim();r[c]||(r[c]=u),u===\"false\"&&(r[c]=!1),u===\"true\"&&(r[c]=!0),isNaN(u)||(r[c]=parseInt(u,10))}})}return{formatName:t,formatOptions:r}},av=e=>{const t={};return(r,n,a)=>{let i=a;a&&a.interpolationkey&&a.formatParams&&a.formatParams[a.interpolationkey]&&a[a.interpolationkey]&&(i={...i,[a.interpolationkey]:void 0});const o=n+JSON.stringify(i);let l=t[o];return l||(l=e(ZE(n),a),t[o]=l),l(r)}};class qtt{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=qu.create(\"formatter\"),this.options=t,this.formats={number:av((r,n)=>{const a=new Intl.NumberFormat(r,{...n});return i=>a.format(i)}),currency:av((r,n)=>{const a=new Intl.NumberFormat(r,{...n,style:\"currency\"});return i=>a.format(i)}),datetime:av((r,n)=>{const a=new Intl.DateTimeFormat(r,{...n});return i=>a.format(i)}),relativetime:av((r,n)=>{const a=new Intl.RelativeTimeFormat(r,{...n});return i=>a.format(i,n.range||\"day\")}),list:av((r,n)=>{const a=new Intl.ListFormat(r,{...n});return i=>a.format(i)})},this.init(t)}init(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=r.interpolation.formatSeparator||\",\"}add(t,r){this.formats[t.toLowerCase().trim()]=r}addCached(t,r){this.formats[t.toLowerCase().trim()]=av(r)}format(t,r,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=r.split(this.formatSeparator);if(i.length>1&&i[0].indexOf(\"(\")>1&&i[0].indexOf(\")\")<0&&i.find(l=>l.indexOf(\")\")>-1)){const l=i.findIndex(s=>s.indexOf(\")\")>-1);i[0]=[i[0],...i.splice(1,l)].join(this.formatSeparator)}return i.reduce((l,s)=>{const{formatName:u,formatOptions:c}=Ytt(s);if(this.formats[u]){let d=l;try{const f=a&&a.formatParams&&a.formatParams[a.interpolationkey]||{},h=f.locale||f.lng||a.locale||a.lng||n;d=this.formats[u](l,h,{...c,...a,...f})}catch(f){this.logger.warn(f)}return d}else this.logger.warn(`there was no format function for ${u}`);return l},t)}}const Xtt=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class Jtt extends wD{constructor(t,r,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=r,this.services=n,this.languageUtils=n.languageUtils,this.options=a,this.logger=qu.create(\"backendConnector\"),this.waitingReads=[],this.maxParallelReads=a.maxParallelReads||10,this.readingCalls=0,this.maxRetries=a.maxRetries>=0?a.maxRetries:5,this.retryTimeout=a.retryTimeout>=1?a.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(n,a.backend,a)}queueLoad(t,r,n,a){const i={},o={},l={},s={};return t.forEach(u=>{let c=!0;r.forEach(d=>{const f=`${u}|${d}`;!n.reload&&this.store.hasResourceBundle(u,d)?this.state[f]=2:this.state[f]<0||(this.state[f]===1?o[f]===void 0&&(o[f]=!0):(this.state[f]=1,c=!1,o[f]===void 0&&(o[f]=!0),i[f]===void 0&&(i[f]=!0),s[d]===void 0&&(s[d]=!0)))}),c||(l[u]=!0)}),(Object.keys(i).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:a}),{toLoad:Object.keys(i),pending:Object.keys(o),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(s)}}loaded(t,r,n){const a=t.split(\"|\"),i=a[0],o=a[1];r&&this.emit(\"failedLoading\",i,o,r),!r&&n&&this.store.addResourceBundle(i,o,n,void 0,void 0,{skipCopy:!0}),this.state[t]=r?-1:2,r&&n&&(this.state[t]=0);const l={};this.queue.forEach(s=>{Rtt(s.loaded,[i],o),Xtt(s,t),r&&s.errors.push(r),s.pendingCount===0&&!s.done&&(Object.keys(s.loaded).forEach(u=>{l[u]||(l[u]={});const c=s.loaded[u];c.length&&c.forEach(d=>{l[u][d]===void 0&&(l[u][d]=!0)})}),s.done=!0,s.errors.length?s.callback(s.errors):s.callback())}),this.emit(\"loaded\",l),this.queue=this.queue.filter(s=>!s.done)}read(t,r,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,o=arguments.length>5?arguments[5]:void 0;if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:r,fcName:n,tried:a,wait:i,callback:o});return}this.readingCalls++;const l=(u,c)=>{if(this.readingCalls--,this.waitingReads.length>0){const d=this.waitingReads.shift();this.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}if(u&&c&&a<this.maxRetries){setTimeout(()=>{this.read.call(this,t,r,n,a+1,i*2,o)},i);return}o(u,c)},s=this.backend[n].bind(this.backend);if(s.length===2){try{const u=s(t,r);u&&typeof u.then==\"function\"?u.then(c=>l(null,c)).catch(l):l(null,u)}catch(u){l(u)}return}return s(t,r,l)}prepareLoading(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn(\"No backend was added via i18next.use. Will not load resources.\"),a&&a();Yr(t)&&(t=this.languageUtils.toResolveHierarchy(t)),Yr(r)&&(r=[r]);const i=this.queueLoad(t,r,n,a);if(!i.toLoad.length)return i.pending.length||a(),null;i.toLoad.forEach(o=>{this.loadOne(o)})}load(t,r,n){this.prepareLoading(t,r,{},n)}reload(t,r,n){this.prepareLoading(t,r,{reload:!0},n)}loadOne(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:\"\";const n=t.split(\"|\"),a=n[0],i=n[1];this.read(a,i,\"read\",void 0,void 0,(o,l)=>{o&&this.logger.warn(`${r}loading namespace ${i} for language ${a} failed`,o),!o&&l&&this.logger.log(`${r}loaded namespace ${i} for language ${a}`,l),this.loaded(t,o,l)})}saveMissing(t,r,n,a,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},l=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(r)){this.logger.warn(`did not save key \"${n}\" as the namespace \"${r}\" was not yet loaded`,\"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!\");return}if(!(n==null||n===\"\")){if(this.backend&&this.backend.create){const s={...o,isUpdate:i},u=this.backend.create.bind(this.backend);if(u.length<6)try{let c;u.length===5?c=u(t,r,n,a,s):c=u(t,r,n,a),c&&typeof c.then==\"function\"?c.then(d=>l(null,d)).catch(l):l(null,c)}catch(c){l(c)}else u(t,r,n,a,l,s)}!t||!t[0]||this.store.addResource(t[0],r,n,a)}}}const KG=()=>({debug:!1,initImmediate:!0,ns:[\"translation\"],defaultNS:[\"translation\"],fallbackLng:[\"dev\"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:\"all\",preload:!1,simplifyPluralSuffix:!0,keySeparator:\".\",nsSeparator:\":\",pluralSeparator:\"_\",contextSeparator:\"_\",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:\"fallback\",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==\"object\"&&(t=e[1]),Yr(e[1])&&(t.defaultValue=e[1]),Yr(e[2])&&(t.tDescription=e[2]),typeof e[2]==\"object\"||typeof e[3]==\"object\"){const r=e[3]||e[2];Object.keys(r).forEach(n=>{t[n]=r[n]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:\"{{\",suffix:\"}}\",formatSeparator:\",\",unescapePrefix:\"-\",nestingPrefix:\"$t(\",nestingSuffix:\")\",nestingOptionsSeparator:\",\",maxReplaces:1e3,skipOnVariables:!0}}),YG=e=>(Yr(e.ns)&&(e.ns=[e.ns]),Yr(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),Yr(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf(\"cimode\")<0&&(e.supportedLngs=e.supportedLngs.concat([\"cimode\"])),e),bF=()=>{},Ztt=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(r=>{typeof e[r]==\"function\"&&(e[r]=e[r].bind(e))})};class f2 extends wD{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(super(),this.options=YG(t),this.services={},this.logger=qu,this.modules={external:[]},Ztt(this),r&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,r),this;setTimeout(()=>{this.init(t,r)},0)}}init(){var t=this;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof r==\"function\"&&(n=r,r={}),!r.defaultNS&&r.defaultNS!==!1&&r.ns&&(Yr(r.ns)?r.defaultNS=r.ns:r.ns.indexOf(\"translation\")<0&&(r.defaultNS=r.ns[0]));const a=KG();this.options={...a,...this.options,...YG(r)},this.options.compatibilityAPI!==\"v1\"&&(this.options.interpolation={...a.interpolation,...this.options.interpolation}),r.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=r.keySeparator),r.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=r.nsSeparator);const i=c=>c?typeof c==\"function\"?new c:c:null;if(!this.options.isClone){this.modules.logger?qu.init(i(this.modules.logger),this.options):qu.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:typeof Intl<\"u\"&&(c=qtt);const d=new WG(this.options);this.store=new HG(this.options.resources,this.options);const f=this.services;f.logger=qu,f.resourceStore=this.store,f.languageUtils=d,f.pluralResolver=new Utt(d,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===a.interpolation.format)&&(f.formatter=i(c),f.formatter.init(f,this.options),this.options.interpolation.format=f.formatter.format.bind(f.formatter)),f.interpolator=new Ktt(this.options),f.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},f.backendConnector=new Jtt(i(this.modules.backend),f.resourceStore,f,this.options),f.backendConnector.on(\"*\",function(h){for(var p=arguments.length,v=new Array(p>1?p-1:0),g=1;g<p;g++)v[g-1]=arguments[g];t.emit(h,...v)}),this.modules.languageDetector&&(f.languageDetector=i(this.modules.languageDetector),f.languageDetector.init&&f.languageDetector.init(f,this.options.detection,this.options)),this.modules.i18nFormat&&(f.i18nFormat=i(this.modules.i18nFormat),f.i18nFormat.init&&f.i18nFormat.init(this)),this.translator=new e3(this.services,this.options),this.translator.on(\"*\",function(h){for(var p=arguments.length,v=new Array(p>1?p-1:0),g=1;g<p;g++)v[g-1]=arguments[g];t.emit(h,...v)}),this.modules.external.forEach(h=>{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,n||(n=bF),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!==\"dev\"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(\"init: no languageDetector is used and no lng is defined\"),[\"getResource\",\"hasResourceBundle\",\"getResourceBundle\",\"getDataByLanguage\"].forEach(c=>{this[c]=function(){return t.store[c](...arguments)}}),[\"addResource\",\"addResources\",\"addResourceBundle\",\"removeResourceBundle\"].forEach(c=>{this[c]=function(){return t.store[c](...arguments),t}});const s=A1(),u=()=>{const c=(d,f)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(\"init: i18next is already initialized. You should call init just once!\"),this.isInitialized=!0,this.options.isClone||this.logger.log(\"initialized\",this.options),this.emit(\"initialized\",this.options),s.resolve(f),n(d,f)};if(this.languages&&this.options.compatibilityAPI!==\"v1\"&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),s}loadResources(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bF;const a=Yr(t)?t:this.language;if(typeof t==\"function\"&&(n=t),!this.options.resources||this.options.partialBundledLanguages){if(a&&a.toLowerCase()===\"cimode\"&&(!this.options.preload||this.options.preload.length===0))return n();const i=[],o=l=>{if(!l||l===\"cimode\")return;this.services.languageUtils.toResolveHierarchy(l).forEach(u=>{u!==\"cimode\"&&i.indexOf(u)<0&&i.push(u)})};a?o(a):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(s=>o(s)),this.options.preload&&this.options.preload.forEach(l=>o(l)),this.services.backendConnector.load(i,this.options.ns,l=>{!l&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(l)})}else n(null)}reloadResources(t,r,n){const a=A1();return typeof t==\"function\"&&(n=t,t=void 0),typeof r==\"function\"&&(n=r,r=void 0),t||(t=this.languages),r||(r=this.options.ns),n||(n=bF),this.services.backendConnector.reload(t,r,i=>{a.resolve(),n(i)}),a}use(t){if(!t)throw new Error(\"You are passing an undefined module! Please check the object you are passing to i18next.use()\");if(!t.type)throw new Error(\"You are passing a wrong module! Please check the object you are passing to i18next.use()\");return t.type===\"backend\"&&(this.modules.backend=t),(t.type===\"logger\"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type===\"languageDetector\"&&(this.modules.languageDetector=t),t.type===\"i18nFormat\"&&(this.modules.i18nFormat=t),t.type===\"postProcessor\"&&Kce.addPostProcessor(t),t.type===\"formatter\"&&(this.modules.formatter=t),t.type===\"3rdParty\"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!([\"cimode\",\"dev\"].indexOf(t)>-1))for(let r=0;r<this.languages.length;r++){const n=this.languages[r];if(!([\"cimode\",\"dev\"].indexOf(n)>-1)&&this.store.hasLanguageSomeTranslations(n)){this.resolvedLanguage=n;break}}}changeLanguage(t,r){var n=this;this.isLanguageChangingTo=t;const a=A1();this.emit(\"languageChanging\",t);const i=s=>{this.language=s,this.languages=this.services.languageUtils.toResolveHierarchy(s),this.resolvedLanguage=void 0,this.setResolvedLanguage(s)},o=(s,u)=>{u?(i(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit(\"languageChanged\",u),this.logger.log(\"languageChanged\",u)):this.isLanguageChangingTo=void 0,a.resolve(function(){return n.t(...arguments)}),r&&r(s,function(){return n.t(...arguments)})},l=s=>{!t&&!s&&this.services.languageDetector&&(s=[]);const u=Yr(s)?s:this.services.languageUtils.getBestMatchFromCodes(s);u&&(this.language||i(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,c=>{o(c,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?l(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(t),a}getFixedT(t,r,n){var a=this;const i=function(o,l){let s;if(typeof l!=\"object\"){for(var u=arguments.length,c=new Array(u>2?u-2:0),d=2;d<u;d++)c[d-2]=arguments[d];s=a.options.overloadTranslationOptionHandler([o,l].concat(c))}else s={...l};s.lng=s.lng||i.lng,s.lngs=s.lngs||i.lngs,s.ns=s.ns||i.ns,s.keyPrefix!==\"\"&&(s.keyPrefix=s.keyPrefix||n||i.keyPrefix);const f=a.options.keySeparator||\".\";let h;return s.keyPrefix&&Array.isArray(o)?h=o.map(p=>`${s.keyPrefix}${f}${p}`):h=s.keyPrefix?`${s.keyPrefix}${f}${o}`:o,a.t(h,s)};return Yr(t)?i.lng=t:i.lngs=t,i.ns=r,i.keyPrefix=n,i}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn(\"hasLoadedNamespace: i18next was not initialized\",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(\"hasLoadedNamespace: i18n.languages were undefined or empty\",this.languages),!1;const n=r.lng||this.resolvedLanguage||this.languages[0],a=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===\"cimode\")return!0;const o=(l,s)=>{const u=this.services.backendConnector.state[`${l}|${s}`];return u===-1||u===0||u===2};if(r.precheck){const l=r.precheck(this,o);if(l!==void 0)return l}return!!(this.hasResourceBundle(n,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(n,t)&&(!a||o(i,t)))}loadNamespaces(t,r){const n=A1();return this.options.ns?(Yr(t)&&(t=[t]),t.forEach(a=>{this.options.ns.indexOf(a)<0&&this.options.ns.push(a)}),this.loadResources(a=>{n.resolve(),r&&r(a)}),n):(r&&r(),Promise.resolve())}loadLanguages(t,r){const n=A1();Yr(t)&&(t=[t]);const a=this.options.preload||[],i=t.filter(o=>a.indexOf(o)<0&&this.services.languageUtils.isSupportedCode(o));return i.length?(this.options.preload=a.concat(i),this.loadResources(o=>{n.resolve(),r&&r(o)}),n):(r&&r(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return\"rtl\";const r=[\"ar\",\"shu\",\"sqr\",\"ssh\",\"xaa\",\"yhd\",\"yud\",\"aao\",\"abh\",\"abv\",\"acm\",\"acq\",\"acw\",\"acx\",\"acy\",\"adf\",\"ads\",\"aeb\",\"aec\",\"afb\",\"ajp\",\"apc\",\"apd\",\"arb\",\"arq\",\"ars\",\"ary\",\"arz\",\"auz\",\"avl\",\"ayh\",\"ayl\",\"ayn\",\"ayp\",\"bbz\",\"pga\",\"he\",\"iw\",\"ps\",\"pbt\",\"pbu\",\"pst\",\"prp\",\"prd\",\"ug\",\"ur\",\"ydd\",\"yds\",\"yih\",\"ji\",\"yi\",\"hbo\",\"men\",\"xmn\",\"fa\",\"jpr\",\"peo\",\"pes\",\"prs\",\"dv\",\"sam\",\"ckb\"],n=this.services&&this.services.languageUtils||new WG(KG());return r.indexOf(n.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf(\"-arab\")>1?\"rtl\":\"ltr\"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new f2(t,r)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:bF;const n=t.forkResourceStore;n&&delete t.forkResourceStore;const a={...this.options,...t,isClone:!0},i=new f2(a);return(t.debug!==void 0||t.prefix!==void 0)&&(i.logger=i.logger.clone(t)),[\"store\",\"services\",\"language\"].forEach(l=>{i[l]=this[l]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},n&&(i.store=new HG(this.store.data,a),i.services.resourceStore=i.store),i.translator=new e3(i.services,a),i.translator.on(\"*\",function(l){for(var s=arguments.length,u=new Array(s>1?s-1:0),c=1;c<s;c++)u[c-1]=arguments[c];i.emit(l,...u)}),i.init(a,r),i.translator.options=a,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const _o=f2.createInstance();_o.createInstance=f2.createInstance;_o.createInstance;_o.dir;_o.init;_o.loadResources;_o.reloadResources;_o.use;_o.changeLanguage;_o.getFixedT;_o.t;_o.exists;_o.setDefaultNamespace;_o.hasLoadedNamespace;_o.loadNamespaces;_o.loadLanguages;const Qtt=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,ert={\"&amp;\":\"&\",\"&#38;\":\"&\",\"&lt;\":\"<\",\"&#60;\":\"<\",\"&gt;\":\">\",\"&#62;\":\">\",\"&apos;\":\"'\",\"&#39;\":\"'\",\"&quot;\":'\"',\"&#34;\":'\"',\"&nbsp;\":\" \",\"&#160;\":\" \",\"&copy;\":\"©\",\"&#169;\":\"©\",\"&reg;\":\"®\",\"&#174;\":\"®\",\"&hellip;\":\"…\",\"&#8230;\":\"…\",\"&#x2F;\":\"/\",\"&#47;\":\"/\"},trt=e=>ert[e],rrt=e=>e.replace(Qtt,trt);let qG={bindI18n:\"languageChanged\",bindI18nStore:\"\",transEmptyNodeValue:\"\",transSupportBasicHtmlNodes:!0,transWrapTextNodes:\"\",transKeepBasicHtmlNodesFor:[\"br\",\"strong\",\"i\",\"p\"],useSuspense:!0,unescape:rrt};function nrt(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};qG={...qG,...e}}const art={type:\"3rdParty\",init(e){nrt(e.options.react)}};function CM(e){\"@babel/helpers - typeof\";return CM=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},CM(e)}function Yce(){return typeof XMLHttpRequest==\"function\"||(typeof XMLHttpRequest>\"u\"?\"undefined\":CM(XMLHttpRequest))===\"object\"}function irt(e){return!!e&&typeof e.then==\"function\"}function ort(e){return irt(e)?e:Promise.resolve(e)}function lrt(e){throw new Error('Could not dynamically require \"'+e+'\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var FM={exports:{}},xF={exports:{}},XG;function srt(){return XG||(XG=1,function(e,t){var r=typeof globalThis<\"u\"&&globalThis||typeof self<\"u\"&&self||typeof oi<\"u\"&&oi,n=function(){function i(){this.fetch=!1,this.DOMException=r.DOMException}return i.prototype=r,new i}();(function(i){(function(o){var l=typeof i<\"u\"&&i||typeof self<\"u\"&&self||typeof l<\"u\"&&l,s={searchParams:\"URLSearchParams\"in l,iterable:\"Symbol\"in l&&\"iterator\"in Symbol,blob:\"FileReader\"in l&&\"Blob\"in l&&function(){try{return new Blob,!0}catch{return!1}}(),formData:\"FormData\"in l,arrayBuffer:\"ArrayBuffer\"in l};function u(R){return R&&DataView.prototype.isPrototypeOf(R)}if(s.arrayBuffer)var c=[\"[object Int8Array]\",\"[object Uint8Array]\",\"[object Uint8ClampedArray]\",\"[object Int16Array]\",\"[object Uint16Array]\",\"[object Int32Array]\",\"[object Uint32Array]\",\"[object Float32Array]\",\"[object Float64Array]\"],d=ArrayBuffer.isView||function(R){return R&&c.indexOf(Object.prototype.toString.call(R))>-1};function f(R){if(typeof R!=\"string\"&&(R=String(R)),/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(R)||R===\"\")throw new TypeError('Invalid character in header field name: \"'+R+'\"');return R.toLowerCase()}function h(R){return typeof R!=\"string\"&&(R=String(R)),R}function p(R){var P={next:function(){var B=R.shift();return{done:B===void 0,value:B}}};return s.iterable&&(P[Symbol.iterator]=function(){return P}),P}function v(R){this.map={},R instanceof v?R.forEach(function(P,B){this.append(B,P)},this):Array.isArray(R)?R.forEach(function(P){this.append(P[0],P[1])},this):R&&Object.getOwnPropertyNames(R).forEach(function(P){this.append(P,R[P])},this)}v.prototype.append=function(R,P){R=f(R),P=h(P);var B=this.map[R];this.map[R]=B?B+\", \"+P:P},v.prototype.delete=function(R){delete this.map[f(R)]},v.prototype.get=function(R){return R=f(R),this.has(R)?this.map[R]:null},v.prototype.has=function(R){return this.map.hasOwnProperty(f(R))},v.prototype.set=function(R,P){this.map[f(R)]=h(P)},v.prototype.forEach=function(R,P){for(var B in this.map)this.map.hasOwnProperty(B)&&R.call(P,this.map[B],B,this)},v.prototype.keys=function(){var R=[];return this.forEach(function(P,B){R.push(B)}),p(R)},v.prototype.values=function(){var R=[];return this.forEach(function(P){R.push(P)}),p(R)},v.prototype.entries=function(){var R=[];return this.forEach(function(P,B){R.push([B,P])}),p(R)},s.iterable&&(v.prototype[Symbol.iterator]=v.prototype.entries);function g(R){if(R.bodyUsed)return Promise.reject(new TypeError(\"Already read\"));R.bodyUsed=!0}function y(R){return new Promise(function(P,B){R.onload=function(){P(R.result)},R.onerror=function(){B(R.error)}})}function b(R){var P=new FileReader,B=y(P);return P.readAsArrayBuffer(R),B}function x(R){var P=new FileReader,B=y(P);return P.readAsText(R),B}function F(R){for(var P=new Uint8Array(R),B=new Array(P.length),N=0;N<P.length;N++)B[N]=String.fromCharCode(P[N]);return B.join(\"\")}function S(R){if(R.slice)return R.slice(0);var P=new Uint8Array(R.byteLength);return P.set(new Uint8Array(R)),P.buffer}function E(){return this.bodyUsed=!1,this._initBody=function(R){this.bodyUsed=this.bodyUsed,this._bodyInit=R,R?typeof R==\"string\"?this._bodyText=R:s.blob&&Blob.prototype.isPrototypeOf(R)?this._bodyBlob=R:s.formData&&FormData.prototype.isPrototypeOf(R)?this._bodyFormData=R:s.searchParams&&URLSearchParams.prototype.isPrototypeOf(R)?this._bodyText=R.toString():s.arrayBuffer&&s.blob&&u(R)?(this._bodyArrayBuffer=S(R.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):s.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(R)||d(R))?this._bodyArrayBuffer=S(R):this._bodyText=R=Object.prototype.toString.call(R):this._bodyText=\"\",this.headers.get(\"content-type\")||(typeof R==\"string\"?this.headers.set(\"content-type\",\"text/plain;charset=UTF-8\"):this._bodyBlob&&this._bodyBlob.type?this.headers.set(\"content-type\",this._bodyBlob.type):s.searchParams&&URLSearchParams.prototype.isPrototypeOf(R)&&this.headers.set(\"content-type\",\"application/x-www-form-urlencoded;charset=UTF-8\"))},s.blob&&(this.blob=function(){var R=g(this);if(R)return R;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error(\"could not read FormData body as blob\");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){if(this._bodyArrayBuffer){var R=g(this);return R||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else return this.blob().then(b)}),this.text=function(){var R=g(this);if(R)return R;if(this._bodyBlob)return x(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(F(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error(\"could not read FormData body as text\");return Promise.resolve(this._bodyText)},s.formData&&(this.formData=function(){return this.text().then(_)}),this.json=function(){return this.text().then(JSON.parse)},this}var w=[\"DELETE\",\"GET\",\"HEAD\",\"OPTIONS\",\"POST\",\"PUT\"];function D(R){var P=R.toUpperCase();return w.indexOf(P)>-1?P:R}function A(R,P){if(!(this instanceof A))throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.');P=P||{};var B=P.body;if(R instanceof A){if(R.bodyUsed)throw new TypeError(\"Already read\");this.url=R.url,this.credentials=R.credentials,P.headers||(this.headers=new v(R.headers)),this.method=R.method,this.mode=R.mode,this.signal=R.signal,!B&&R._bodyInit!=null&&(B=R._bodyInit,R.bodyUsed=!0)}else this.url=String(R);if(this.credentials=P.credentials||this.credentials||\"same-origin\",(P.headers||!this.headers)&&(this.headers=new v(P.headers)),this.method=D(P.method||this.method||\"GET\"),this.mode=P.mode||this.mode||null,this.signal=P.signal||this.signal,this.referrer=null,(this.method===\"GET\"||this.method===\"HEAD\")&&B)throw new TypeError(\"Body not allowed for GET or HEAD requests\");if(this._initBody(B),(this.method===\"GET\"||this.method===\"HEAD\")&&(P.cache===\"no-store\"||P.cache===\"no-cache\")){var N=/([?&])_=[^&]*/;if(N.test(this.url))this.url=this.url.replace(N,\"$1_=\"+new Date().getTime());else{var O=/\\?/;this.url+=(O.test(this.url)?\"&\":\"?\")+\"_=\"+new Date().getTime()}}}A.prototype.clone=function(){return new A(this,{body:this._bodyInit})};function _(R){var P=new FormData;return R.trim().split(\"&\").forEach(function(B){if(B){var N=B.split(\"=\"),O=N.shift().replace(/\\+/g,\" \"),z=N.join(\"=\").replace(/\\+/g,\" \");P.append(decodeURIComponent(O),decodeURIComponent(z))}}),P}function I(R){var P=new v,B=R.replace(/\\r?\\n[\\t ]+/g,\" \");return B.split(\"\\r\").map(function(N){return N.indexOf(`\n`)===0?N.substr(1,N.length):N}).forEach(function(N){var O=N.split(\":\"),z=O.shift().trim();if(z){var W=O.join(\":\").trim();P.append(z,W)}}),P}E.call(A.prototype);function M(R,P){if(!(this instanceof M))throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.');P||(P={}),this.type=\"default\",this.status=P.status===void 0?200:P.status,this.ok=this.status>=200&&this.status<300,this.statusText=P.statusText===void 0?\"\":\"\"+P.statusText,this.headers=new v(P.headers),this.url=P.url||\"\",this._initBody(R)}E.call(M.prototype),M.prototype.clone=function(){return new M(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new v(this.headers),url:this.url})},M.error=function(){var R=new M(null,{status:0,statusText:\"\"});return R.type=\"error\",R};var T=[301,302,303,307,308];M.redirect=function(R,P){if(T.indexOf(P)===-1)throw new RangeError(\"Invalid status code\");return new M(null,{status:P,headers:{location:R}})},o.DOMException=l.DOMException;try{new o.DOMException}catch{o.DOMException=function(P,B){this.message=P,this.name=B;var N=Error(P);this.stack=N.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function k(R,P){return new Promise(function(B,N){var O=new A(R,P);if(O.signal&&O.signal.aborted)return N(new o.DOMException(\"Aborted\",\"AbortError\"));var z=new XMLHttpRequest;function W(){z.abort()}z.onload=function(){var j={status:z.status,statusText:z.statusText,headers:I(z.getAllResponseHeaders()||\"\")};j.url=\"responseURL\"in z?z.responseURL:j.headers.get(\"X-Request-URL\");var H=\"response\"in z?z.response:z.responseText;setTimeout(function(){B(new M(H,j))},0)},z.onerror=function(){setTimeout(function(){N(new TypeError(\"Network request failed\"))},0)},z.ontimeout=function(){setTimeout(function(){N(new TypeError(\"Network request failed\"))},0)},z.onabort=function(){setTimeout(function(){N(new o.DOMException(\"Aborted\",\"AbortError\"))},0)};function L(j){try{return j===\"\"&&l.location.href?l.location.href:j}catch{return j}}z.open(O.method,L(O.url),!0),O.credentials===\"include\"?z.withCredentials=!0:O.credentials===\"omit\"&&(z.withCredentials=!1),\"responseType\"in z&&(s.blob?z.responseType=\"blob\":s.arrayBuffer&&O.headers.get(\"Content-Type\")&&O.headers.get(\"Content-Type\").indexOf(\"application/octet-stream\")!==-1&&(z.responseType=\"arraybuffer\")),P&&typeof P.headers==\"object\"&&!(P.headers instanceof v)?Object.getOwnPropertyNames(P.headers).forEach(function(j){z.setRequestHeader(j,h(P.headers[j]))}):O.headers.forEach(function(j,H){z.setRequestHeader(H,j)}),O.signal&&(O.signal.addEventListener(\"abort\",W),z.onreadystatechange=function(){z.readyState===4&&O.signal.removeEventListener(\"abort\",W)}),z.send(typeof O._bodyInit>\"u\"?null:O._bodyInit)})}return k.polyfill=!0,l.fetch||(l.fetch=k,l.Headers=v,l.Request=A,l.Response=M),o.Headers=v,o.Request=A,o.Response=M,o.fetch=k,o})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var a=r.fetch?r:n;t=a.fetch,t.default=a.fetch,t.fetch=a.fetch,t.Headers=a.Headers,t.Request=a.Request,t.Response=a.Response,e.exports=t}(xF,xF.exports)),xF.exports}(function(e,t){var r=typeof fetch==\"function\"?fetch:void 0;if(typeof oi<\"u\"&&oi.fetch?r=oi.fetch:typeof window<\"u\"&&window.fetch&&(r=window.fetch),typeof lrt<\"u\"&&typeof window>\"u\"){var n=r||srt();n.default&&(n=n.default),t.default=n,e.exports=t.default}})(FM,FM.exports);var qce=FM.exports;const Xce=Yo(qce),JG=F9({__proto__:null,default:Xce},[qce]);function ZG(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function QG(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ZG(Object(r),!0).forEach(function(n){urt(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ZG(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function urt(e,t,r){return(t=crt(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function crt(e){var t=drt(e,\"string\");return Zp(t)==\"symbol\"?t:t+\"\"}function drt(e,t){if(Zp(e)!=\"object\"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(Zp(n)!=\"object\")return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(t===\"string\"?String:Number)(e)}function Zp(e){\"@babel/helpers - typeof\";return Zp=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},Zp(e)}var Vf=typeof fetch==\"function\"?fetch:void 0;typeof global<\"u\"&&global.fetch?Vf=global.fetch:typeof window<\"u\"&&window.fetch&&(Vf=window.fetch);var h2;Yce()&&(typeof global<\"u\"&&global.XMLHttpRequest?h2=global.XMLHttpRequest:typeof window<\"u\"&&window.XMLHttpRequest&&(h2=window.XMLHttpRequest));var t3;typeof ActiveXObject==\"function\"&&(typeof global<\"u\"&&global.ActiveXObject?t3=global.ActiveXObject:typeof window<\"u\"&&window.ActiveXObject&&(t3=window.ActiveXObject));!Vf&&JG&&!h2&&!t3&&(Vf=Xce||JG);typeof Vf!=\"function\"&&(Vf=void 0);var SM=function(t,r){if(r&&Zp(r)===\"object\"){var n=\"\";for(var a in r)n+=\"&\"+encodeURIComponent(a)+\"=\"+encodeURIComponent(r[a]);if(!n)return t;t=t+(t.indexOf(\"?\")!==-1?\"&\":\"?\")+n.slice(1)}return t},eU=function(t,r,n,a){var i=function(s){if(!s.ok)return n(s.statusText||\"Error\",{status:s.status});s.text().then(function(u){n(null,{status:s.status,data:u})}).catch(n)};if(a){var o=a(t,r);if(o instanceof Promise){o.then(i).catch(n);return}}typeof fetch==\"function\"?fetch(t,r).then(i).catch(n):Vf(t,r).then(i).catch(n)},tU=!1,frt=function(t,r,n,a){t.queryStringParams&&(r=SM(r,t.queryStringParams));var i=QG({},typeof t.customHeaders==\"function\"?t.customHeaders():t.customHeaders);typeof window>\"u\"&&typeof global<\"u\"&&typeof global.process<\"u\"&&global.process.versions&&global.process.versions.node&&(i[\"User-Agent\"]=\"i18next-http-backend (node/\".concat(global.process.version,\"; \").concat(global.process.platform,\" \").concat(global.process.arch,\")\")),n&&(i[\"Content-Type\"]=\"application/json\");var o=typeof t.requestOptions==\"function\"?t.requestOptions(n):t.requestOptions,l=QG({method:n?\"POST\":\"GET\",body:n?t.stringify(n):void 0,headers:i},tU?{}:o),s=typeof t.alternateFetch==\"function\"&&t.alternateFetch.length>=1?t.alternateFetch:void 0;try{eU(r,l,a,s)}catch(u){if(!o||Object.keys(o).length===0||!u.message||u.message.indexOf(\"not implemented\")<0)return a(u);try{Object.keys(o).forEach(function(c){delete l[c]}),eU(r,l,a,s),tU=!0}catch(c){a(c)}}},hrt=function(t,r,n,a){n&&Zp(n)===\"object\"&&(n=SM(\"\",n).slice(1)),t.queryStringParams&&(r=SM(r,t.queryStringParams));try{var i;h2?i=new h2:i=new t3(\"MSXML2.XMLHTTP.3.0\"),i.open(n?\"POST\":\"GET\",r,1),t.crossDomain||i.setRequestHeader(\"X-Requested-With\",\"XMLHttpRequest\"),i.withCredentials=!!t.withCredentials,n&&i.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),i.overrideMimeType&&i.overrideMimeType(\"application/json\");var o=t.customHeaders;if(o=typeof o==\"function\"?o():o,o)for(var l in o)i.setRequestHeader(l,o[l]);i.onreadystatechange=function(){i.readyState>3&&a(i.status>=400?i.statusText:null,{status:i.status,data:i.responseText})},i.send(n)}catch(s){console&&console.log(s)}},prt=function(t,r,n,a){if(typeof n==\"function\"&&(a=n,n=void 0),a=a||function(){},Vf&&r.indexOf(\"file:\")!==0)return frt(t,r,n,a);if(Yce()||typeof ActiveXObject==\"function\")return hrt(t,r,n,a);a(new Error(\"No fetch and no xhr implementation found!\"))};function eg(e){\"@babel/helpers - typeof\";return eg=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},eg(e)}function rU(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function V5(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?rU(Object(r),!0).forEach(function(n){Jce(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rU(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function mrt(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function vrt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,Zce(n.key),n)}}function grt(e,t,r){return t&&vrt(e.prototype,t),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function Jce(e,t,r){return(t=Zce(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Zce(e){var t=yrt(e,\"string\");return eg(t)==\"symbol\"?t:t+\"\"}function yrt(e,t){if(eg(e)!=\"object\"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(eg(n)!=\"object\")return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}var brt=function(){return{loadPath:\"/locales/{{lng}}/{{ns}}.json\",addPath:\"/locales/add/{{lng}}/{{ns}}\",parse:function(r){return JSON.parse(r)},stringify:JSON.stringify,parsePayload:function(r,n,a){return Jce({},n,a||\"\")},parseLoadPayload:function(r,n){},request:prt,reloadInterval:typeof window<\"u\"?!1:60*60*1e3,customHeaders:{},queryStringParams:{},crossDomain:!1,withCredentials:!1,overrideMimeType:!1,requestOptions:{mode:\"cors\",credentials:\"same-origin\",cache:\"default\"}}},xrt=function(){function e(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};mrt(this,e),this.services=t,this.options=r,this.allOptions=n,this.type=\"backend\",this.init(t,r,n)}return grt(e,[{key:\"init\",value:function(r){var n=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(this.services=r,this.options=V5(V5(V5({},brt()),this.options||{}),a),this.allOptions=i,this.services&&this.options.reloadInterval){var o=setInterval(function(){return n.reload()},this.options.reloadInterval);eg(o)===\"object\"&&typeof o.unref==\"function\"&&o.unref()}}},{key:\"readMulti\",value:function(r,n,a){this._readAny(r,r,n,n,a)}},{key:\"read\",value:function(r,n,a){this._readAny([r],r,[n],n,a)}},{key:\"_readAny\",value:function(r,n,a,i,o){var l=this,s=this.options.loadPath;typeof this.options.loadPath==\"function\"&&(s=this.options.loadPath(r,a)),s=ort(s),s.then(function(u){if(!u)return o(null,{});var c=l.services.interpolator.interpolate(u,{lng:r.join(\"+\"),ns:a.join(\"+\")});l.loadUrl(c,o,n,i)})}},{key:\"loadUrl\",value:function(r,n,a,i){var o=this,l=typeof a==\"string\"?[a]:a,s=typeof i==\"string\"?[i]:i,u=this.options.parseLoadPayload(l,s);this.options.request(this.options,r,u,function(c,d){if(d&&(d.status>=500&&d.status<600||!d.status))return n(\"failed loading \"+r+\"; status code: \"+d.status,!0);if(d&&d.status>=400&&d.status<500)return n(\"failed loading \"+r+\"; status code: \"+d.status,!1);if(!d&&c&&c.message){var f=c.message.toLowerCase(),h=[\"failed\",\"fetch\",\"network\",\"load\"].find(function(g){return f.indexOf(g)>-1});if(h)return n(\"failed loading \"+r+\": \"+c.message,!0)}if(c)return n(c,!1);var p,v;try{typeof d.data==\"string\"?p=o.options.parse(d.data,a,i):p=d.data}catch{v=\"failed parsing \"+r+\" to json\"}if(v)return n(v,!1);n(null,p)})}},{key:\"create\",value:function(r,n,a,i,o){var l=this;if(this.options.addPath){typeof r==\"string\"&&(r=[r]);var s=this.options.parsePayload(n,a,i),u=0,c=[],d=[];r.forEach(function(f){var h=l.options.addPath;typeof l.options.addPath==\"function\"&&(h=l.options.addPath(f,n));var p=l.services.interpolator.interpolate(h,{lng:f,ns:n});l.options.request(l.options,p,s,function(v,g){u+=1,c.push(v),d.push(g),u===r.length&&typeof o==\"function\"&&o(c,d)})})}}},{key:\"reload\",value:function(){var r=this,n=this.services,a=n.backendConnector,i=n.languageUtils,o=n.logger,l=a.language;if(!(l&&l.toLowerCase()===\"cimode\")){var s=[],u=function(d){var f=i.toResolveHierarchy(d);f.forEach(function(h){s.indexOf(h)<0&&s.push(h)})};u(l),this.allOptions.preload&&this.allOptions.preload.forEach(function(c){return u(c)}),s.forEach(function(c){r.allOptions.ns.forEach(function(d){a.read(c,d,\"read\",null,null,function(f,h){f&&o.warn(\"loading namespace \".concat(d,\" for language \").concat(c,\" failed\"),f),!f&&h&&o.log(\"loaded namespace \".concat(d,\" for language \").concat(c),h),a.loaded(\"\".concat(c,\"|\").concat(d),f,h)})})})}}}])}();xrt.type=\"backend\";const Crt={lng:\"zh-CN\",fallbackLng:\"zh-CN\",supportedLngs:[\"zh-CN\",\"en-US\"],ns:[\"common\"],defaultNS:\"common\",interpolation:{escapeValue:!1},react:{useSuspense:!0}};_o.use(art).init({...Crt,resources:{\"zh-CN\":{common:{}},\"en-US\":{common:{}}}});localStorage.removeItem(\"auth_token\"),localStorage.removeItem(\"user_info\");async function Frt(){}Frt().then(()=>{Ik.createRoot(document.getElementById(\"root\")).render(C.jsx(le.StrictMode,{children:C.jsx(Y2e,{store:qQe,children:C.jsx(Is,{locale:Lze,theme:{token:{colorPrimary:\"#2563eb\",colorSuccess:\"#16a34a\",colorWarning:\"#d97706\",colorError:\"#dc2626\",colorInfo:\"#0891b2\",colorTextBase:\"#172033\",colorBgLayout:\"#eef2f7\",colorBgContainer:\"#ffffff\",colorBorder:\"#d9e2ef\",borderRadius:8,borderRadiusLG:8,fontFamily:\"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif\",boxShadowSecondary:\"0 12px 32px rgba(16, 24, 40, 0.12)\"},components:{Button:{controlHeight:36,borderRadius:6,primaryShadow:\"0 8px 18px rgba(37, 99, 235, 0.18)\"},Card:{borderRadiusLG:8,paddingLG:20},Table:{headerBg:\"#f6f8fb\",headerColor:\"#344054\",rowHoverBg:\"#f8fbff\"},Layout:{headerBg:\"#ffffff\",siderBg:\"#0f172a\"},Menu:{itemBorderRadius:6,itemSelectedBg:\"rgba(37, 99, 235, 0.12)\",itemSelectedColor:\"#1d4ed8\"}}},children:C.jsx(aie,{children:C.jsx(Ttt,{})})})})}))});const La=J2e,da=exe;var Srt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M193 796c0 17.7 14.3 32 32 32h574c17.7 0 32-14.3 32-32V563c0-176.2-142.8-319-319-319S193 386.8 193 563v233zm72-233c0-136.4 110.6-247 247-247s247 110.6 247 247v193H404V585c0-5.5-4.5-10-10-10h-44c-5.5 0-10 4.5-10 10v171h-75V563zm-48.1-252.5l39.6-39.6c3.1-3.1 3.1-8.2 0-11.3l-67.9-67.9a8.03 8.03 0 00-11.3 0l-39.6 39.6a8.03 8.03 0 000 11.3l67.9 67.9c3.1 3.1 8.1 3.1 11.3 0zm669.6-79.2l-39.6-39.6a8.03 8.03 0 00-11.3 0l-67.9 67.9a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l67.9-67.9c3.1-3.2 3.1-8.2 0-11.3zM832 892H192c-17.7 0-32 14.3-32 32v24c0 4.4 3.6 8 8 8h688c4.4 0 8-3.6 8-8v-24c0-17.7-14.3-32-32-32zM484 180h56c4.4 0 8-3.6 8-8V76c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v96c0 4.4 3.6 8 8 8z\"}}]},name:\"alert\",theme:\"outlined\"},wrt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Srt}))},Qce=m.forwardRef(wrt),Ert={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M862 465.3h-81c-4.6 0-9 2-12.1 5.5L550 723.1V160c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v563.1L255.1 470.8c-3-3.5-7.4-5.5-12.1-5.5h-81c-6.8 0-10.5 8.1-6 13.2L487.9 861a31.96 31.96 0 0048.3 0L868 478.5c4.5-5.2.8-13.2-6-13.2z\"}}]},name:\"arrow-down\",theme:\"outlined\"},Drt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Ert}))},ede=m.forwardRef(Drt),Art={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M872 474H286.9l350.2-304c5.6-4.9 2.2-14-5.2-14h-88.5c-3.9 0-7.6 1.4-10.5 3.9L155 487.8a31.96 31.96 0 000 48.3L535.1 866c1.5 1.3 3.3 2 5.2 2h91.5c7.4 0 10.8-9.2 5.2-14L286.9 550H872c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]},name:\"arrow-left\",theme:\"outlined\"},_rt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Art}))},_m=m.forwardRef(_rt),Trt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M869 487.8L491.2 159.9c-2.9-2.5-6.6-3.9-10.5-3.9h-88.5c-7.4 0-10.8 9.2-5.2 14l350.2 304H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h585.1L386.9 854c-5.6 4.9-2.2 14 5.2 14h91.5c1.9 0 3.8-.7 5.2-2L869 536.2a32.07 32.07 0 000-48.4z\"}}]},name:\"arrow-right\",theme:\"outlined\"},Irt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Trt}))},W5=m.forwardRef(Irt),krt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M868 545.5L536.1 163a31.96 31.96 0 00-48.3 0L156 545.5a7.97 7.97 0 006 13.2h81c4.6 0 9-2 12.1-5.5L474 300.9V864c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V300.9l218.9 252.3c3 3.5 7.4 5.5 12.1 5.5h81c6.8 0 10.5-8 6-13.2z\"}}]},name:\"arrow-up\",theme:\"outlined\"},Rrt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:krt}))},tde=m.forwardRef(Rrt),Mrt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M296 250c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm184 144H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm-48 458H208V148h560v320c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm440-88H728v-36.6c46.3-13.8 80-56.6 80-107.4 0-61.9-50.1-112-112-112s-112 50.1-112 112c0 50.7 33.7 93.6 80 107.4V764H520c-8.8 0-16 7.2-16 16v152c0 8.8 7.2 16 16 16h352c8.8 0 16-7.2 16-16V780c0-8.8-7.2-16-16-16zM646 620c0-27.6 22.4-50 50-50s50 22.4 50 50-22.4 50-50 50-50-22.4-50-50zm180 266H566v-60h260v60z\"}}]},name:\"audit\",theme:\"outlined\"},Prt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Mrt}))},vB=m.forwardRef(Prt),Ort={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M888 792H200V168c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v688c0 4.4 3.6 8 8 8h752c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm-600-80h56c4.4 0 8-3.6 8-8V560c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V384c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v320c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V462c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v242c0 4.4 3.6 8 8 8zm152 0h56c4.4 0 8-3.6 8-8V304c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v400c0 4.4 3.6 8 8 8z\"}}]},name:\"bar-chart\",theme:\"outlined\"},Brt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Ort}))},wM=m.forwardRef(Brt),Nrt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M816 768h-24V428c0-141.1-104.3-257.7-240-277.1V112c0-22.1-17.9-40-40-40s-40 17.9-40 40v38.9c-135.7 19.4-240 136-240 277.1v340h-24c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h216c0 61.8 50.2 112 112 112s112-50.2 112-112h216c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM512 888c-26.5 0-48-21.5-48-48h96c0 26.5-21.5 48-48 48zM304 768V428c0-55.6 21.6-107.8 60.9-147.1S456.4 220 512 220c55.6 0 107.8 21.6 147.1 60.9S720 372.4 720 428v340H304z\"}}]},name:\"bell\",theme:\"outlined\"},$rt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Nrt}))},Lrt=m.forwardRef($rt),jrt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\"}},{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}}]},name:\"check-circle\",theme:\"outlined\"},zrt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:jrt}))},gB=m.forwardRef(zrt),Hrt={icon:{tag:\"svg\",attrs:{\"fill-rule\":\"evenodd\",viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm0 76c-205.4 0-372 166.6-372 372s166.6 372 372 372 372-166.6 372-372-166.6-372-372-372zm128.01 198.83c.03 0 .05.01.09.06l45.02 45.01a.2.2 0 01.05.09.12.12 0 010 .07c0 .02-.01.04-.05.08L557.25 512l127.87 127.86a.27.27 0 01.05.06v.02a.12.12 0 010 .07c0 .03-.01.05-.05.09l-45.02 45.02a.2.2 0 01-.09.05.12.12 0 01-.07 0c-.02 0-.04-.01-.08-.05L512 557.25 384.14 685.12c-.04.04-.06.05-.08.05a.12.12 0 01-.07 0c-.03 0-.05-.01-.09-.05l-45.02-45.02a.2.2 0 01-.05-.09.12.12 0 010-.07c0-.02.01-.04.06-.08L466.75 512 338.88 384.14a.27.27 0 01-.05-.06l-.01-.02a.12.12 0 010-.07c0-.03.01-.05.05-.09l45.02-45.02a.2.2 0 01.09-.05.12.12 0 01.07 0c.02 0 .04.01.08.06L512 466.75l127.86-127.86c.04-.05.06-.06.08-.06a.12.12 0 01.07 0z\"}}]},name:\"close-circle\",theme:\"outlined\"},Vrt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Hrt}))},Wrt=m.forwardRef(Vrt),Grt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M518.3 459a8 8 0 00-12.6 0l-112 141.7a7.98 7.98 0 006.3 12.9h73.9V856c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V613.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 459z\"}},{tag:\"path\",attrs:{d:\"M811.4 366.7C765.6 245.9 648.9 160 512.2 160S258.8 245.8 213 366.6C127.3 389.1 64 467.2 64 560c0 110.5 89.5 200 199.9 200H304c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8h-40.1c-33.7 0-65.4-13.4-89-37.7-23.5-24.2-36-56.8-34.9-90.6.9-26.4 9.9-51.2 26.2-72.1 16.7-21.3 40.1-36.8 66.1-43.7l37.9-9.9 13.9-36.6c8.6-22.8 20.6-44.1 35.7-63.4a245.6 245.6 0 0152.4-49.9c41.1-28.9 89.5-44.2 140-44.2s98.9 15.3 140 44.2c19.9 14 37.5 30.8 52.4 49.9 15.1 19.3 27.1 40.7 35.7 63.4l13.8 36.5 37.8 10C846.1 454.5 884 503.8 884 560c0 33.1-12.9 64.3-36.3 87.7a123.07 123.07 0 01-87.6 36.3H720c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h40.1C870.5 760 960 670.5 960 560c0-92.7-63.1-170.7-148.6-193.3z\"}}]},name:\"cloud-upload\",theme:\"outlined\"},Urt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Grt}))},Krt=m.forwardRef(Urt),Yrt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-792 72h752v120H136V232zm752 560H136V440h752v352zm-237-64h165c4.4 0 8-3.6 8-8v-72c0-4.4-3.6-8-8-8H651c-4.4 0-8 3.6-8 8v72c0 4.4 3.6 8 8 8z\"}}]},name:\"credit-card\",theme:\"outlined\"},qrt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Yrt}))},Xrt=m.forwardRef(qrt),Jrt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 128c-212.1 0-384 171.9-384 384v360c0 13.3 10.7 24 24 24h184c35.3 0 64-28.7 64-64V624c0-35.3-28.7-64-64-64H200v-48c0-172.3 139.7-312 312-312s312 139.7 312 312v48H688c-35.3 0-64 28.7-64 64v208c0 35.3 28.7 64 64 64h184c13.3 0 24-10.7 24-24V512c0-212.1-171.9-384-384-384zM328 632v192H200V632h128zm496 192H696V632h128v192z\"}}]},name:\"customer-service\",theme:\"outlined\"},Zrt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Jrt}))},r3=m.forwardRef(Zrt),Qrt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372zm47.7-395.2l-25.4-5.9V348.6c38 5.2 61.5 29 65.5 58.2.5 4 3.9 6.9 7.9 6.9h44.9c4.7 0 8.4-4.1 8-8.8-6.1-62.3-57.4-102.3-125.9-109.2V263c0-4.4-3.6-8-8-8h-28.1c-4.4 0-8 3.6-8 8v33c-70.8 6.9-126.2 46-126.2 119 0 67.6 49.8 100.2 102.1 112.7l24.7 6.3v142.7c-44.2-5.9-69-29.5-74.1-61.3-.6-3.8-4-6.6-7.9-6.6H363c-4.7 0-8.4 4-8 8.7 4.5 55 46.2 105.6 135.2 112.1V761c0 4.4 3.6 8 8 8h28.4c4.4 0 8-3.6 8-8.1l-.2-31.7c78.3-6.9 134.3-48.8 134.3-124-.1-69.4-44.2-100.4-109-116.4zm-68.6-16.2c-5.6-1.6-10.3-3.1-15-5-33.8-12.2-49.5-31.9-49.5-57.3 0-36.3 27.5-57 64.5-61.7v124zM534.3 677V543.3c3.1.9 5.9 1.6 8.8 2.2 47.3 14.4 63.2 34.4 63.2 65.1 0 39.1-29.4 62.6-72 66.4z\"}}]},name:\"dollar\",theme:\"outlined\"},ent=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Qrt}))},tnt=m.forwardRef(ent),rnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{tag:\"path\",attrs:{d:\"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\"}}]},name:\"exclamation-circle\",theme:\"outlined\"},nnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:rnt}))},rde=m.forwardRef(nnt),ant={icon:{tag:\"svg\",attrs:{\"fill-rule\":\"evenodd\",viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M880 912H144c-17.7 0-32-14.3-32-32V144c0-17.7 14.3-32 32-32h360c4.4 0 8 3.6 8 8v56c0 4.4-3.6 8-8 8H184v656h656V520c0-4.4 3.6-8 8-8h56c4.4 0 8 3.6 8 8v360c0 17.7-14.3 32-32 32zM770.87 199.13l-52.2-52.2a8.01 8.01 0 014.7-13.6l179.4-21c5.1-.6 9.5 3.7 8.9 8.9l-21 179.4c-.8 6.6-8.9 9.4-13.6 4.7l-52.4-52.4-256.2 256.2a8.03 8.03 0 01-11.3 0l-42.4-42.4a8.03 8.03 0 010-11.3l256.1-256.3z\"}}]},name:\"export\",theme:\"outlined\"},int=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:ant}))},ont=m.forwardRef(int),lnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494zM514.1 580.1l-61.8-102.4c-2.2-3.6-6.1-5.8-10.3-5.8h-38.4c-2.3 0-4.5.6-6.4 1.9-5.6 3.5-7.3 10.9-3.7 16.6l82.3 130.4-83.4 132.8a12.04 12.04 0 0010.2 18.4h34.5c4.2 0 8-2.2 10.2-5.7L510 664.8l62.3 101.4c2.2 3.6 6.1 5.7 10.2 5.7H620c2.3 0 4.5-.7 6.5-1.9 5.6-3.6 7.2-11 3.6-16.6l-84-130.4 85.3-132.5a12.04 12.04 0 00-10.1-18.5h-35.7c-4.2 0-8.1 2.2-10.3 5.8l-61.2 102.3z\"}}]},name:\"file-excel\",theme:\"outlined\"},snt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:lnt}))},unt=m.forwardRef(snt),cnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M688 312v-48c0-4.4-3.6-8-8-8H296c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h384c4.4 0 8-3.6 8-8zm-392 88c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8H296zm144 452H208V148h560v344c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V108c0-17.7-14.3-32-32-32H168c-17.7 0-32 14.3-32 32v784c0 17.7 14.3 32 32 32h272c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm445.7 51.5l-93.3-93.3C814.7 780.7 828 743.9 828 704c0-97.2-78.8-176-176-176s-176 78.8-176 176 78.8 176 176 176c35.8 0 69-10.7 96.8-29l94.7 94.7c1.6 1.6 3.6 2.3 5.6 2.3s4.1-.8 5.6-2.3l31-31a7.9 7.9 0 000-11.2zM652 816c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z\"}}]},name:\"file-search\",theme:\"outlined\"},dnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:cnt}))},nU=m.forwardRef(dnt),fnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M926 164H94c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V196c0-17.7-14.3-32-32-32zm-40 632H134V236h752v560zm-658.9-82.3c3.1 3.1 8.2 3.1 11.3 0l172.5-172.5 114.4 114.5c3.1 3.1 8.2 3.1 11.3 0l297-297.2c3.1-3.1 3.1-8.2 0-11.3l-36.8-36.8a8.03 8.03 0 00-11.3 0L531 565 416.6 450.5a8.03 8.03 0 00-11.3 0l-214.9 215a8.03 8.03 0 000 11.3l36.7 36.9z\"}}]},name:\"fund\",theme:\"outlined\"},hnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:fnt}))},EM=m.forwardRef(hnt),pnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M880 310H732.4c13.6-21.4 21.6-46.8 21.6-74 0-76.1-61.9-138-138-138-41.4 0-78.7 18.4-104 47.4-25.3-29-62.6-47.4-104-47.4-76.1 0-138 61.9-138 138 0 27.2 7.9 52.6 21.6 74H144c-17.7 0-32 14.3-32 32v200c0 4.4 3.6 8 8 8h40v344c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V550h40c4.4 0 8-3.6 8-8V342c0-17.7-14.3-32-32-32zm-334-74c0-38.6 31.4-70 70-70s70 31.4 70 70-31.4 70-70 70h-70v-70zm-138-70c38.6 0 70 31.4 70 70v70h-70c-38.6 0-70-31.4-70-70s31.4-70 70-70zM180 482V378h298v104H180zm48 68h250v308H228V550zm568 308H546V550h250v308zm48-376H546V378h298v104z\"}}]},name:\"gift\",theme:\"outlined\"},mnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:pnt}))},vnt=m.forwardRef(mnt),gnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M854.4 800.9c.2-.3.5-.6.7-.9C920.6 722.1 960 621.7 960 512s-39.4-210.1-104.8-288c-.2-.3-.5-.5-.7-.8-1.1-1.3-2.1-2.5-3.2-3.7-.4-.5-.8-.9-1.2-1.4l-4.1-4.7-.1-.1c-1.5-1.7-3.1-3.4-4.6-5.1l-.1-.1c-3.2-3.4-6.4-6.8-9.7-10.1l-.1-.1-4.8-4.8-.3-.3c-1.5-1.5-3-2.9-4.5-4.3-.5-.5-1-1-1.6-1.5-1-1-2-1.9-3-2.8-.3-.3-.7-.6-1-1C736.4 109.2 629.5 64 512 64s-224.4 45.2-304.3 119.2c-.3.3-.7.6-1 1-1 .9-2 1.9-3 2.9-.5.5-1 1-1.6 1.5-1.5 1.4-3 2.9-4.5 4.3l-.3.3-4.8 4.8-.1.1c-3.3 3.3-6.5 6.7-9.7 10.1l-.1.1c-1.6 1.7-3.1 3.4-4.6 5.1l-.1.1c-1.4 1.5-2.8 3.1-4.1 4.7-.4.5-.8.9-1.2 1.4-1.1 1.2-2.1 2.5-3.2 3.7-.2.3-.5.5-.7.8C103.4 301.9 64 402.3 64 512s39.4 210.1 104.8 288c.2.3.5.6.7.9l3.1 3.7c.4.5.8.9 1.2 1.4l4.1 4.7c0 .1.1.1.1.2 1.5 1.7 3 3.4 4.6 5l.1.1c3.2 3.4 6.4 6.8 9.6 10.1l.1.1c1.6 1.6 3.1 3.2 4.7 4.7l.3.3c3.3 3.3 6.7 6.5 10.1 9.6 80.1 74 187 119.2 304.5 119.2s224.4-45.2 304.3-119.2a300 300 0 0010-9.6l.3-.3c1.6-1.6 3.2-3.1 4.7-4.7l.1-.1c3.3-3.3 6.5-6.7 9.6-10.1l.1-.1c1.5-1.7 3.1-3.3 4.6-5 0-.1.1-.1.1-.2 1.4-1.5 2.8-3.1 4.1-4.7.4-.5.8-.9 1.2-1.4a99 99 0 003.3-3.7zm4.1-142.6c-13.8 32.6-32 62.8-54.2 90.2a444.07 444.07 0 00-81.5-55.9c11.6-46.9 18.8-98.4 20.7-152.6H887c-3 40.9-12.6 80.6-28.5 118.3zM887 484H743.5c-1.9-54.2-9.1-105.7-20.7-152.6 29.3-15.6 56.6-34.4 81.5-55.9A373.86 373.86 0 01887 484zM658.3 165.5c39.7 16.8 75.8 40 107.6 69.2a394.72 394.72 0 01-59.4 41.8c-15.7-45-35.8-84.1-59.2-115.4 3.7 1.4 7.4 2.9 11 4.4zm-90.6 700.6c-9.2 7.2-18.4 12.7-27.7 16.4V697a389.1 389.1 0 01115.7 26.2c-8.3 24.6-17.9 47.3-29 67.8-17.4 32.4-37.8 58.3-59 75.1zm59-633.1c11 20.6 20.7 43.3 29 67.8A389.1 389.1 0 01540 327V141.6c9.2 3.7 18.5 9.1 27.7 16.4 21.2 16.7 41.6 42.6 59 75zM540 640.9V540h147.5c-1.6 44.2-7.1 87.1-16.3 127.8l-.3 1.2A445.02 445.02 0 00540 640.9zm0-156.9V383.1c45.8-2.8 89.8-12.5 130.9-28.1l.3 1.2c9.2 40.7 14.7 83.5 16.3 127.8H540zm-56 56v100.9c-45.8 2.8-89.8 12.5-130.9 28.1l-.3-1.2c-9.2-40.7-14.7-83.5-16.3-127.8H484zm-147.5-56c1.6-44.2 7.1-87.1 16.3-127.8l.3-1.2c41.1 15.6 85 25.3 130.9 28.1V484H336.5zM484 697v185.4c-9.2-3.7-18.5-9.1-27.7-16.4-21.2-16.7-41.7-42.7-59.1-75.1-11-20.6-20.7-43.3-29-67.8 37.2-14.6 75.9-23.3 115.8-26.1zm0-370a389.1 389.1 0 01-115.7-26.2c8.3-24.6 17.9-47.3 29-67.8 17.4-32.4 37.8-58.4 59.1-75.1 9.2-7.2 18.4-12.7 27.7-16.4V327zM365.7 165.5c3.7-1.5 7.3-3 11-4.4-23.4 31.3-43.5 70.4-59.2 115.4-21-12-40.9-26-59.4-41.8 31.8-29.2 67.9-52.4 107.6-69.2zM165.5 365.7c13.8-32.6 32-62.8 54.2-90.2 24.9 21.5 52.2 40.3 81.5 55.9-11.6 46.9-18.8 98.4-20.7 152.6H137c3-40.9 12.6-80.6 28.5-118.3zM137 540h143.5c1.9 54.2 9.1 105.7 20.7 152.6a444.07 444.07 0 00-81.5 55.9A373.86 373.86 0 01137 540zm228.7 318.5c-39.7-16.8-75.8-40-107.6-69.2 18.5-15.8 38.4-29.7 59.4-41.8 15.7 45 35.8 84.1 59.2 115.4-3.7-1.4-7.4-2.9-11-4.4zm292.6 0c-3.7 1.5-7.3 3-11 4.4 23.4-31.3 43.5-70.4 59.2-115.4 21 12 40.9 26 59.4 41.8a373.81 373.81 0 01-107.6 69.2z\"}}]},name:\"global\",theme:\"outlined\"},ynt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:gnt}))},bnt=m.forwardRef(ynt),xnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M946.5 505L560.1 118.8l-25.9-25.9a31.5 31.5 0 00-44.4 0L77.5 505a63.9 63.9 0 00-18.8 46c.4 35.2 29.7 63.3 64.9 63.3h42.5V940h691.8V614.3h43.4c17.1 0 33.2-6.7 45.3-18.8a63.6 63.6 0 0018.7-45.3c0-17-6.7-33.1-18.8-45.2zM568 868H456V664h112v204zm217.9-325.7V868H632V640c0-22.1-17.9-40-40-40H432c-22.1 0-40 17.9-40 40v228H238.1V542.3h-96l370-369.7 23.1 23.1L882 542.3h-96.1z\"}}]},name:\"home\",theme:\"outlined\"},Cnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:xnt}))},Fnt=m.forwardRef(Cnt),Snt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\"}},{tag:\"path\",attrs:{d:\"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\"}}]},name:\"info-circle\",theme:\"outlined\"},wnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Snt}))},nde=m.forwardRef(wnt),Ent={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\"}}]},name:\"link\",theme:\"outlined\"},Dnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Ent}))},ade=m.forwardRef(Dnt),Ant={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 10-56 0z\"}}]},name:\"lock\",theme:\"outlined\"},_nt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Ant}))},Tnt=m.forwardRef(_nt),Int={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M868 732h-70.3c-4.8 0-9.3 2.1-12.3 5.8-7 8.5-14.5 16.7-22.4 24.5a353.84 353.84 0 01-112.7 75.9A352.8 352.8 0 01512.4 866c-47.9 0-94.3-9.4-137.9-27.8a353.84 353.84 0 01-112.7-75.9 353.28 353.28 0 01-76-112.5C167.3 606.2 158 559.9 158 512s9.4-94.2 27.8-137.8c17.8-42.1 43.4-80 76-112.5s70.5-58.1 112.7-75.9c43.6-18.4 90-27.8 137.9-27.8 47.9 0 94.3 9.3 137.9 27.8 42.2 17.8 80.1 43.4 112.7 75.9 7.9 7.9 15.3 16.1 22.4 24.5 3 3.7 7.6 5.8 12.3 5.8H868c6.3 0 10.2-7 6.7-12.3C798 160.5 663.8 81.6 511.3 82 271.7 82.6 79.6 277.1 82 516.4 84.4 751.9 276.2 942 512.4 942c152.1 0 285.7-78.8 362.3-197.7 3.4-5.3-.4-12.3-6.7-12.3zm88.9-226.3L815 393.7c-5.3-4.2-13-.4-13 6.3v76H488c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h314v76c0 6.7 7.8 10.5 13 6.3l141.9-112a8 8 0 000-12.6z\"}}]},name:\"logout\",theme:\"outlined\"},knt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Int}))},Rnt=m.forwardRef(knt),Mnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 000 13.8z\"}}]},name:\"menu-fold\",theme:\"outlined\"},Pnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Mnt}))},Ont=m.forwardRef(Pnt),Bnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 000-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0014.4 7z\"}}]},name:\"menu-unfold\",theme:\"outlined\"},Nnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Bnt}))},$nt=m.forwardRef(Nnt),Lnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z\"}}]},name:\"message\",theme:\"outlined\"},jnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Lnt}))},n3=m.forwardRef(jnt),znt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M872 474H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h720c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z\"}}]},name:\"minus\",theme:\"outlined\"},Hnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:znt}))},Vnt=m.forwardRef(Hnt),Wnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M911.5 700.7a8 8 0 00-10.3-4.8L840 718.2V180c0-37.6-30.4-68-68-68H252c-37.6 0-68 30.4-68 68v538.2l-61.3-22.3c-.9-.3-1.8-.5-2.7-.5-4.4 0-8 3.6-8 8V763c0 3.3 2.1 6.3 5.3 7.5L501 910.1c7.1 2.6 14.8 2.6 21.9 0l383.8-139.5c3.2-1.2 5.3-4.2 5.3-7.5v-59.6c0-1-.2-1.9-.5-2.8zM512 837.5l-256-93.1V184h512v560.4l-256 93.1zM660.6 312h-54.5c-3 0-5.8 1.7-7.1 4.4l-84.7 168.8H511l-84.7-168.8a8 8 0 00-7.1-4.4h-55.7c-1.3 0-2.6.3-3.8 1-3.9 2.1-5.3 7-3.2 10.8l103.9 191.6h-57c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76v39h-76c-4.4 0-8 3.6-8 8v27.1c0 4.4 3.6 8 8 8h76V704c0 4.4 3.6 8 8 8h49.9c4.4 0 8-3.6 8-8v-63.5h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8h-76.3v-39h76.3c4.4 0 8-3.6 8-8v-27.1c0-4.4-3.6-8-8-8H564l103.7-191.6c.6-1.2 1-2.5 1-3.8-.1-4.3-3.7-7.9-8.1-7.9z\"}}]},name:\"money-collect\",theme:\"outlined\"},Gnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Wnt}))},Unt=m.forwardRef(Gnt),Knt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M456 231a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0zm0 280a56 56 0 10112 0 56 56 0 10-112 0z\"}}]},name:\"more\",theme:\"outlined\"},Ynt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Knt}))},ide=m.forwardRef(Ynt),qnt={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M877.1 238.7L770.6 132.3c-13-13-30.4-20.3-48.8-20.3s-35.8 7.2-48.8 20.3L558.3 246.8c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l89.6 89.7a405.46 405.46 0 01-86.4 127.3c-36.7 36.9-79.6 66-127.2 86.6l-89.6-89.7c-13-13-30.4-20.3-48.8-20.3a68.2 68.2 0 00-48.8 20.3L132.3 673c-13 13-20.3 30.5-20.3 48.9 0 18.5 7.2 35.8 20.3 48.9l106.4 106.4c22.2 22.2 52.8 34.9 84.2 34.9 6.5 0 12.8-.5 19.2-1.6 132.4-21.8 263.8-92.3 369.9-198.3C818 606 888.4 474.6 910.4 342.1c6.3-37.6-6.3-76.3-33.3-103.4zm-37.6 91.5c-19.5 117.9-82.9 235.5-178.4 331s-213 158.9-330.9 178.4c-14.8 2.5-30-2.5-40.8-13.2L184.9 721.9 295.7 611l119.8 120 .9.9 21.6-8a481.29 481.29 0 00285.7-285.8l8-21.6-120.8-120.7 110.8-110.9 104.5 104.5c10.8 10.8 15.8 26 13.3 40.8z\"}}]},name:\"phone\",theme:\"outlined\"},Xnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:qnt}))},Jnt=m.forwardRef(Xnt),Znt={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64L128 192v384c0 212.1 171.9 384 384 384s384-171.9 384-384V192L512 64zm312 512c0 172.3-139.7 312-312 312S200 748.3 200 576V246l312-110 312 110v330z\"}},{tag:\"path\",attrs:{d:\"M378.4 475.1a35.91 35.91 0 00-50.9 0 35.91 35.91 0 000 50.9l129.4 129.4 2.1 2.1a33.98 33.98 0 0048.1 0L730.6 434a33.98 33.98 0 000-48.1l-2.8-2.8a33.98 33.98 0 00-48.1 0L483 579.7 378.4 475.1z\"}}]},name:\"safety\",theme:\"outlined\"},Qnt=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Znt}))},yB=m.forwardRef(Qnt),eat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M893.3 293.3L730.7 130.7c-7.5-7.5-16.7-13-26.7-16V112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V338.5c0-17-6.7-33.2-18.7-45.2zM384 184h256v104H384V184zm456 656H184V184h136v136c0 17.7 14.3 32 32 32h320c17.7 0 32-14.3 32-32V205.8l136 136V840zM512 442c-79.5 0-144 64.5-144 144s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144zm0 224c-44.2 0-80-35.8-80-80s35.8-80 80-80 80 35.8 80 80-35.8 80-80 80z\"}}]},name:\"save\",theme:\"outlined\"},tat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:eat}))},ED=m.forwardRef(tat),rat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M928 224H768v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H548v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H328v-56c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v56H96c-17.7 0-32 14.3-32 32v576c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32zm-40 568H136V296h120v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h148v56c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-56h120v496zM416 496H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 136H232c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h184c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm308.2-177.4L620.6 598.3l-52.8-73.1c-3-4.2-7.8-6.6-12.9-6.6H500c-6.5 0-10.3 7.4-6.5 12.7l114.1 158.2a15.9 15.9 0 0025.8 0l165-228.7c3.8-5.3 0-12.7-6.5-12.7H737c-5-.1-9.8 2.4-12.8 6.5z\"}}]},name:\"schedule\",theme:\"outlined\"},nat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:rat}))},aat=m.forwardRef(nat),iat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"defs\",attrs:{},children:[{tag:\"style\",attrs:{}}]},{tag:\"path\",attrs:{d:\"M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z\"}}]},name:\"send\",theme:\"outlined\"},oat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:iat}))},Tp=m.forwardRef(oat),lat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 009.3-35.2l-.9-2.6a443.74 443.74 0 00-79.7-137.9l-1.8-2.1a32.12 32.12 0 00-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 00-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 00-25.8 25.7l-15.8 85.4a351.86 351.86 0 00-99 57.4l-81.9-29.1a32 32 0 00-35.1 9.5l-1.8 2.1a446.02 446.02 0 00-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 00-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0035.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0025.8 25.7l2.7.5a449.4 449.4 0 00159 0l2.7-.5a32.05 32.05 0 0025.8-25.7l15.7-85a350 350 0 0099.7-57.6l81.3 28.9a32 32 0 0035.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 01-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 01-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 01512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 01400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 01624 502c0 29.9-11.7 58-32.8 79.2z\"}}]},name:\"setting\",theme:\"outlined\"},sat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:lat}))},bB=m.forwardRef(sat),uat={icon:{tag:\"svg\",attrs:{viewBox:\"0 0 1024 1024\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M922.9 701.9H327.4l29.9-60.9 496.8-.9c16.8 0 31.2-12 34.2-28.6l68.8-385.1c1.8-10.1-.9-20.5-7.5-28.4a34.99 34.99 0 00-26.6-12.5l-632-2.1-5.4-25.4c-3.4-16.2-18-28-34.6-28H96.5a35.3 35.3 0 100 70.6h125.9L246 312.8l58.1 281.3-74.8 122.1a34.96 34.96 0 00-3 36.8c6 11.9 18.1 19.4 31.5 19.4h62.8a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7h161.1a102.43 102.43 0 00-20.6 61.7c0 56.6 46 102.6 102.6 102.6s102.6-46 102.6-102.6c0-22.3-7.4-44-20.6-61.7H923c19.4 0 35.3-15.8 35.3-35.3a35.42 35.42 0 00-35.4-35.2zM305.7 253l575.8 1.9-56.4 315.8-452.3.8L305.7 253zm96.9 612.7c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6zm325.1 0c-17.4 0-31.6-14.2-31.6-31.6 0-17.4 14.2-31.6 31.6-31.6s31.6 14.2 31.6 31.6a31.6 31.6 0 01-31.6 31.6z\"}}]},name:\"shopping-cart\",theme:\"outlined\"},cat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:uat}))},DM=m.forwardRef(cat),dat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M908.1 353.1l-253.9-36.9L540.7 86.1c-3.1-6.3-8.2-11.4-14.5-14.5-15.8-7.8-35-1.3-42.9 14.5L369.8 316.2l-253.9 36.9c-7 1-13.4 4.3-18.3 9.3a32.05 32.05 0 00.6 45.3l183.7 179.1-43.4 252.9a31.95 31.95 0 0046.4 33.7L512 754l227.1 119.4c6.2 3.3 13.4 4.4 20.3 3.2 17.4-3 29.1-19.5 26.1-36.9l-43.4-252.9 183.7-179.1c5-4.9 8.3-11.3 9.3-18.3 2.7-17.5-9.5-33.7-27-36.3zM664.8 561.6l36.1 210.3L512 672.7 323.1 772l36.1-210.3-152.8-149L417.6 382 512 190.7 606.4 382l211.2 30.7-152.8 148.9z\"}}]},name:\"star\",theme:\"outlined\"},fat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:dat}))},hat=m.forwardRef(fat),pat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372 0-89 31.3-170.8 83.5-234.8l523.3 523.3C682.8 852.7 601 884 512 884zm288.5-137.2L277.2 223.5C341.2 171.3 423 140 512 140c205.4 0 372 166.6 372 372 0 89-31.3 170.8-83.5 234.8z\"}}]},name:\"stop\",theme:\"outlined\"},mat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:pat}))},vat=m.forwardRef(mat),gat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M824.2 699.9a301.55 301.55 0 00-86.4-60.4C783.1 602.8 812 546.8 812 484c0-110.8-92.4-201.7-203.2-200-109.1 1.7-197 90.6-197 200 0 62.8 29 118.8 74.2 155.5a300.95 300.95 0 00-86.4 60.4C345 754.6 314 826.8 312 903.8a8 8 0 008 8.2h56c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5A226.62 226.62 0 01612 684c60.9 0 118.2 23.7 161.3 66.8C814.5 792 838 846.3 840 904.3c.1 4.3 3.7 7.7 8 7.7h56a8 8 0 008-8.2c-2-77-33-149.2-87.8-203.9zM612 612c-34.2 0-66.4-13.3-90.5-37.5a126.86 126.86 0 01-37.5-91.8c.3-32.8 13.4-64.5 36.3-88 24-24.6 56.1-38.3 90.4-38.7 33.9-.3 66.8 12.9 91 36.6 24.8 24.3 38.4 56.8 38.4 91.4 0 34.2-13.3 66.3-37.5 90.5A127.3 127.3 0 01612 612zM361.5 510.4c-.9-8.7-1.4-17.5-1.4-26.4 0-15.9 1.5-31.4 4.3-46.5.7-3.6-1.2-7.3-4.5-8.8-13.6-6.1-26.1-14.5-36.9-25.1a127.54 127.54 0 01-38.7-95.4c.9-32.1 13.8-62.6 36.3-85.6 24.7-25.3 57.9-39.1 93.2-38.7 31.9.3 62.7 12.6 86 34.4 7.9 7.4 14.7 15.6 20.4 24.4 2 3.1 5.9 4.4 9.3 3.2 17.6-6.1 36.2-10.4 55.3-12.4 5.6-.6 8.8-6.6 6.3-11.6-32.5-64.3-98.9-108.7-175.7-109.9-110.9-1.7-203.3 89.2-203.3 199.9 0 62.8 28.9 118.8 74.2 155.5-31.8 14.7-61.1 35-86.5 60.4-54.8 54.7-85.8 126.9-87.8 204a8 8 0 008 8.2h56.1c4.3 0 7.9-3.4 8-7.7 1.9-58 25.4-112.3 66.7-153.5 29.4-29.4 65.4-49.8 104.7-59.7 3.9-1 6.5-4.7 6-8.7z\"}}]},name:\"team\",theme:\"outlined\"},yat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:gat}))},ode=m.forwardRef(yat),bat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M400 317.7h73.9V656c0 4.4 3.6 8 8 8h60c4.4 0 8-3.6 8-8V317.7H624c6.7 0 10.4-7.7 6.3-12.9L518.3 163a8 8 0 00-12.6 0l-112 141.7c-4.1 5.3-.4 13 6.3 13zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z\"}}]},name:\"upload\",theme:\"outlined\"},xat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:bat}))},a3=m.forwardRef(xat),Cat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M678.3 642.4c24.2-13 51.9-20.4 81.4-20.4h.1c3 0 4.4-3.6 2.2-5.6a371.67 371.67 0 00-103.7-65.8c-.4-.2-.8-.3-1.2-.5C719.2 505 759.6 431.7 759.6 349c0-137-110.8-248-247.5-248S264.7 212 264.7 349c0 82.7 40.4 156 102.6 201.1-.4.2-.8.3-1.2.5-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00137 888.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C357 628.2 432.2 597 512.2 597c56.7 0 111.1 15.7 158 45.1a8.1 8.1 0 008.1.3zM512.2 521c-45.8 0-88.9-17.9-121.4-50.4A171.2 171.2 0 01340.5 349c0-45.9 17.9-89.1 50.3-121.6S466.3 177 512.2 177s88.9 17.9 121.4 50.4A171.2 171.2 0 01683.9 349c0 45.9-17.9 89.1-50.3 121.6C601.1 503.1 558 521 512.2 521zM880 759h-84v-84c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v84h-84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h84v84c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-84h84c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]},name:\"user-add\",theme:\"outlined\"},Fat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Cat}))},Sat=m.forwardRef(Fat),wat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\"}}]},name:\"user\",theme:\"outlined\"},Eat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:wat}))},i3=m.forwardRef(Eat),Dat={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"defs\",attrs:{},children:[{tag:\"style\",attrs:{}}]},{tag:\"path\",attrs:{d:\"M759 335c0-137-111-248-248-248S263 198 263 335c0 82.8 40.6 156.2 103 201.2-.4.2-.7.3-.9.4-44.7 18.9-84.8 46-119.3 80.6a373.42 373.42 0 00-80.4 119.5A373.6 373.6 0 00136 874.8a8 8 0 008 8.2h59.9c4.3 0 7.9-3.5 8-7.8 2-77.2 32.9-149.5 87.6-204.3C356 614.2 431 583 511 583c137 0 248-111 248-248zM511 507c-95 0-172-77-172-172s77-172 172-172 172 77 172 172-77 172-172 172zm105 221h264c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H703.5l47.2-60.1a8.1 8.1 0 001.7-4.9c0-4.4-3.6-8-8-8h-72.6c-4.9 0-9.5 2.3-12.6 6.1l-68.5 87.1c-4.4 5.6-6.8 12.6-6.8 19.8.1 17.7 14.4 32 32.1 32zm240 64H592c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h176.5l-47.2 60.1a8.1 8.1 0 00-1.7 4.9c0 4.4 3.6 8 8 8h72.6c4.9 0 9.5-2.3 12.6-6.1l68.5-87.1c4.4-5.6 6.8-12.6 6.8-19.8-.1-17.7-14.4-32-32.1-32z\"}}]},name:\"user-switch\",theme:\"outlined\"},Aat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:Dat}))},lde=m.forwardRef(Aat),_at={icon:{tag:\"svg\",attrs:{viewBox:\"64 64 896 896\",focusable:\"false\"},children:[{tag:\"path\",attrs:{d:\"M464 720a48 48 0 1096 0 48 48 0 10-96 0zm16-304v184c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V416c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8zm475.7 440l-416-720c-6.2-10.7-16.9-16-27.7-16s-21.6 5.3-27.7 16l-416 720C56 877.4 71.4 904 96 904h832c24.6 0 40-26.6 27.7-48zm-783.5-27.9L512 239.9l339.8 588.2H172.2z\"}}]},name:\"warning\",theme:\"outlined\"},Tat=function(t,r){return m.createElement(wt,Ce({},t,{ref:r,icon:_at}))},sde=m.forwardRef(Tat);const{Text:G5}=ji,aU={info:C.jsx(nde,{style:{color:\"#1890ff\"}}),success:C.jsx(gB,{style:{color:\"#52c41a\"}}),warning:C.jsx(rde,{style:{color:\"#faad14\"}}),error:C.jsx(Wrt,{style:{color:\"#ff4d4f\"}})},ude=({unreadCount:e,notifications:t})=>{const r=La(),n=m.useCallback(l=>{r(SG(l))},[r]),a=m.useCallback(()=>{t.forEach(l=>{l.read||r(SG(l.id))})},[r,t]),i=m.useCallback(()=>{r(mQe())},[r]),o=C.jsxs(\"div\",{className:\"notification-panel\",children:[C.jsxs(\"div\",{className:\"notification-panel-header\",children:[C.jsx(G5,{strong:!0,children:\"通知中心\"}),C.jsxs(Qt,{children:[C.jsx(ze,{type:\"link\",size:\"small\",onClick:a,children:\"全部已读\"}),C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,onClick:i,children:\"清空\"})]})]}),C.jsx(tc,{dataSource:t.slice(0,10),style:{maxHeight:400,overflow:\"auto\"},renderItem:l=>C.jsx(tc.Item,{className:`notification-item${l.read?\"\":\" is-unread\"}`,onClick:()=>n(l.id),children:C.jsx(tc.Item.Meta,{avatar:aU[l.type]||aU.info,title:C.jsxs(Qt,{children:[C.jsx(G5,{style:{fontSize:13},children:l.title}),!l.read&&C.jsx(et,{color:\"blue\",style:{fontSize:10},children:\"新\"})]}),description:C.jsx(G5,{type:\"secondary\",style:{fontSize:12},children:l.message})})}),locale:{emptyText:\"暂无通知\"}}),t.length>10&&C.jsx(\"div\",{style:{textAlign:\"center\",marginTop:8},children:C.jsx(ze,{type:\"link\",children:\"查看更多\"})})]});return C.jsx(w6,{content:o,trigger:\"click\",placement:\"bottomRight\",children:C.jsx(D6,{count:e,size:\"small\",offset:[0,-2],children:C.jsx(\"span\",{className:\"notification-trigger\",children:C.jsx(Lrt,{style:{fontSize:16}})})})})},{Header:Iat}=hc,{Text:kat}=ji,Rat={dashboard:\"工作台\",requirement:\"需求管理\",plan:\"计划管理\",review:\"测评\",reply:\"回评\",free:\"免评\",reviewer:\"真实人管理\",cs:\"客服中心\",ticket:\"工单池\",chat:\"聊天\",promise:\"答应配合\",channel:\"渠道推送\",push:\"推送任务\",im:\"IM\",edm:\"EDM\",risk:\"风险中心\",event:\"风险事件\",blacklist:\"黑名单\",refund:\"退款比对\",data:\"数据看板\",asin:\"ASIN看板\",login:\"登录\"},cde=({onToggleSidebar:e})=>{const t=La(),r=Ia(),n=Am(),a=da(f=>f.global.sidebarCollapsed),i=da(f=>f.global.notifications),o=da(f=>f.global.locale),l=da(f=>f.auth.user),s=m.useMemo(()=>i.filter(f=>!f.read).length,[i]),u=m.useMemo(()=>{const f=n.pathname.split(\"/\").filter(Boolean);return[{title:\"首页\",href:\"/dashboard\"},...f.map(h=>({title:Rat[h]||h}))]},[n.pathname]),c=m.useMemo(()=>[{key:\"profile\",icon:C.jsx(i3,{}),label:\"个人信息\",onClick:()=>r(\"/profile\")},{key:\"settings\",icon:C.jsx(bB,{}),label:\"系统设置\",onClick:()=>r(\"/settings\")},{type:\"divider\"},{key:\"logout\",icon:C.jsx(Rnt,{}),label:\"退出登录\",danger:!0,onClick:async()=>{await t(fce()),r(\"/login\")}}],[t,r]),d=m.useCallback(f=>{t(vQe(f?\"en-US\":\"zh-CN\"))},[t]);return C.jsxs(Iat,{className:\"app-header\",children:[C.jsxs(\"div\",{className:\"app-header-left\",children:[C.jsx(\"button\",{className:\"app-header-toggle\",type:\"button\",\"aria-label\":a?\"展开侧边栏\":\"收起侧边栏\",onClick:e,children:le.createElement(a?$nt:Ont,{style:{fontSize:16}})}),C.jsx(k6,{items:u})]}),C.jsx(ut.Search,{placeholder:\"全局搜索...\",allowClear:!0,className:\"app-header-search\",prefix:C.jsx(xa,{}),onSearch:f=>{f&&r(`/search?q=${encodeURIComponent(f)}`)}}),C.jsxs(\"div\",{className:\"app-header-right\",children:[C.jsx(ude,{unreadCount:s,notifications:i}),C.jsxs(Qt,{size:4,children:[C.jsx(bnt,{}),C.jsx(G6,{checked:o===\"en-US\",onChange:d,checkedChildren:\"EN\",unCheckedChildren:\"中\",size:\"small\"})]}),C.jsx(Fd,{menu:{items:c},placement:\"bottomRight\",children:C.jsxs(Qt,{className:\"app-header-user\",children:[C.jsx(E6,{size:\"small\",icon:C.jsx(i3,{}),src:l==null?void 0:l.avatar}),C.jsx(kat,{children:(l==null?void 0:l.name)||\"用户\"})]})})]})]})},CF=[{key:\"dashboard\",label:\"工作台\",icon:le.createElement(Fnt),path:\"/dashboard\"},{key:\"plan\",label:\"评价计划管理\",icon:le.createElement(aat),permission:\"plan:view\",children:[{key:\"plan-review\",label:\"测评计划\",icon:le.createElement(hat),path:\"/plan/review\"},{key:\"plan-reply\",label:\"回评\",icon:le.createElement(n3),path:\"/plan/reply\"},{key:\"plan-free\",label:\"免评\",icon:le.createElement(Jnt),path:\"/plan/free\"}]},{key:\"reviewer\",label:\"评价人管理\",icon:le.createElement(i3),path:\"/reviewer\",permission:\"reviewer:view\"},{key:\"order-group\",label:\"测评订单管理\",icon:le.createElement(DM),permission:\"order:view\",children:[{key:\"order\",label:\"测评订单\",icon:le.createElement(DM),path:\"/order\"},{key:\"review-order\",label:\"回评订单\",icon:le.createElement(nU),path:\"/review-order\"}]},{key:\"cs\",label:\"客服中心\",icon:le.createElement(r3),permission:\"cs:view\",children:[{key:\"cs-ticket\",label:\"工单池\",icon:le.createElement(nU),path:\"/cs/ticket\"},{key:\"cs-chat\",label:\"聊天\",icon:le.createElement(n3),path:\"/cs/chat\"},{key:\"cs-chat-record\",label:\"服务聊天记录\",icon:le.createElement(Yle),path:\"/cs/chat-record\"},{key:\"cs-promise\",label:\"答应配合\",icon:le.createElement(ode),path:\"/cs/promise\"}]},{key:\"channel\",label:\"渠道推送\",icon:le.createElement(Tp),permission:\"channel:view\",children:[{key:\"channel-push\",label:\"推送任务\",icon:le.createElement(Tp),path:\"/channel/push\"},{key:\"channel-im-push\",label:\"IM推送\",icon:le.createElement(Tp),path:\"/channel/im-push\"},{key:\"channel-im-card\",label:\"IM推送卡片管理\",icon:le.createElement(Xrt),path:\"/channel/im-card\"},{key:\"channel-config\",label:\"推送配置\",icon:le.createElement(bB),path:\"/channel/config\"}]},{key:\"risk\",label:\"风险中心\",icon:le.createElement(Qce),permission:\"risk:view\",children:[{key:\"risk-event\",label:\"风险事件\",icon:le.createElement(yB),path:\"/risk/event\"},{key:\"risk-blacklist\",label:\"黑名单\",icon:le.createElement(vat),path:\"/risk/blacklist\"},{key:\"risk-refund\",label:\"退款比对\",icon:le.createElement(ME),path:\"/risk/refund\"}]},{key:\"data\",label:\"数据看板\",icon:le.createElement(wM),permission:\"dashboard:view\",children:[{key:\"data-plan\",label:\"计划看板\",icon:le.createElement(EM),path:\"/dashboard/plan\"},{key:\"data-asin\",label:\"ASIN看板\",icon:le.createElement(wM),path:\"/dashboard/asin\"},{key:\"data-cs\",label:\"客服绩效\",icon:le.createElement(r3),path:\"/dashboard/cs\"}]}],{Sider:Mat}=hc;function dde(e){return e.map(t=>{const r={key:t.key,label:t.label};return t.icon&&(r.icon=t.icon),t.children&&t.children.length>0&&(r.children=dde(t.children)),r})}const fde=({collapsed:e,width:t,collapsedWidth:r,isMobile:n,onToggle:a})=>{const i=Ia(),o=Am(),l=m.useMemo(()=>{const d=o.pathname,f=p=>{for(const v of p){if(v.path&&d.startsWith(v.path))return[v.key];if(v.children){const g=f(v.children);if(g.length>0)return g}}return[]},h=f(CF);return h.length>0?h:[\"dashboard\"]},[o.pathname]),s=m.useMemo(()=>{const d=o.pathname,f=[],h=(p,v)=>{for(const g of p)g.path&&d.startsWith(g.path)&&v&&f.push(v),g.children&&h(g.children,g.key)};return h(CF),f},[o.pathname]),u=m.useMemo(()=>dde(CF),[]),c=d=>{const f=p=>{for(const v of p){if(v.key===d.key&&v.path)return v.path;if(v.children){const g=f(v.children);if(g)return g}}},h=f(CF);h&&(i(h),n&&a())};return C.jsxs(Mat,{collapsible:!0,collapsed:e,width:t,collapsedWidth:r,trigger:null,className:\"app-sider\",children:[C.jsxs(\"div\",{className:\"app-brand\",style:{justifyContent:e?\"center\":\"flex-start\"},onClick:()=>i(\"/dashboard\"),children:[C.jsx(\"span\",{className:\"app-brand-mark\",children:\"UR\"}),!e&&C.jsxs(\"span\",{className:\"app-brand-text\",children:[C.jsx(\"span\",{className:\"app-brand-title\",children:\"USER评价系统\"}),C.jsx(\"span\",{className:\"app-brand-subtitle\",children:\"运营闭环控制台\"})]})]}),C.jsx(ym,{mode:\"inline\",selectedKeys:l,defaultOpenKeys:e?[]:s,items:u,onClick:c,className:\"app-sidebar-menu\"})]})},{Content:Pat}=hc,iU=220,oU=80,lU=()=>{const e=La(),t=Am(),r=Ia(),n=da(s=>s.global.sidebarCollapsed),a=da(s=>!!s.auth.token),[i,o]=m.useState(!1);m.useEffect(()=>{const s=()=>{const u=window.innerWidth<768;o(u),u&&!n&&e(k5(!0))};return s(),window.addEventListener(\"resize\",s),()=>window.removeEventListener(\"resize\",s)},[e,n]),m.useEffect(()=>{localStorage.setItem(\"sidebar_collapsed\",String(n))},[n]),m.useEffect(()=>{const s=localStorage.getItem(\"sidebar_collapsed\");s!==null&&e(k5(s===\"true\"))},[e]);const l=m.useCallback(()=>{e(k5(!n))},[e,n]);return m.useEffect(()=>{!a&&t.pathname!==\"/login\"&&r(\"/login\",{replace:!0})},[a,t.pathname,r]),a?C.jsxs(hc,{className:\"app-shell\",children:[C.jsx(fde,{collapsed:n,width:iU,collapsedWidth:oU,isMobile:i,onToggle:l}),C.jsxs(hc,{className:\"app-main-layout\",style:{marginLeft:i?0:n?oU:iU},children:[C.jsx(cde,{onToggleSidebar:l}),C.jsx(Pat,{className:\"app-content\",children:C.jsx(Vet,{})})]})]}):null},Oat=Object.freeze(Object.defineProperty({__proto__:null,AppLayout:lU,Header:cde,NotificationPanel:ude,Sidebar:fde,default:lU},Symbol.toStringTag,{value:\"Module\"})),Bat=()=>{const e=La(),t=Ia(),{loading:r}=da(i=>i.dashboard);m.useEffect(()=>{e(Ice())},[e]);const n=[{title:\"计划数据看板\",description:\"查看测评、回评、免评计划完成趋势、类型分布和渠道效果。\",path:\"/dashboard/plan\",color:\"linear-gradient(135deg, #2563eb, #0891b2)\",icon:C.jsx(EM,{}),metric:\"85%\",metricLabel:\"目标完成率\"},{title:\"ASIN 健康看板\",description:\"跟踪 ASIN 评价分布、评分趋势、低分风险和展示确认结果。\",path:\"/dashboard/asin\",color:\"linear-gradient(135deg, #16a34a, #0d9488)\",icon:C.jsx(wM,{}),metric:\"4.6\",metricLabel:\"平均评分\"},{title:\"客服绩效看板\",description:\"查看工单压力、响应效率、客服排名和答应配合转化指标。\",path:\"/dashboard/cs\",color:\"linear-gradient(135deg, #7c3aed, #db2777)\",icon:C.jsx(r3,{}),metric:\"5min\",metricLabel:\"响应目标\"}],a=[{title:\"需求提报\",desc:\"ASIN、站点、类型\"},{title:\"计划生成\",desc:\"测评 / 回评 / 免评\"},{title:\"渠道触达\",desc:\"IM、EDM、APP、TEL\"},{title:\"客服承接\",desc:\"工单、聊天、答应配合\"},{title:\"结果回流\",desc:\"提交、展示、风控\"}];return r?C.jsx(mi,{size:\"large\",style:{display:\"block\",margin:\"100px auto\"}}):C.jsxs(\"div\",{className:\"dashboard-page\",children:[C.jsxs(\"section\",{className:\"dashboard-hero page-surface\",children:[C.jsxs(\"div\",{children:[C.jsx(et,{color:\"blue\",children:\"运营总览\"}),C.jsx(\"h1\",{children:\"USER 评价业务闭环工作台\"}),C.jsx(\"p\",{className:\"dashboard-hero-copy\",children:\"从需求提报、计划拆解、真实人分配、渠道触达、客服沟通到评价展示确认,统一追踪每一步状态和异常。\"}),C.jsxs(\"div\",{className:\"dashboard-hero-actions\",children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(DM,{}),onClick:()=>t(\"/order\"),children:\"进入测评订单\"}),C.jsx(ze,{icon:C.jsx(Tp,{}),onClick:()=>t(\"/channel/im-push\"),children:\"查看 IM 推送\"}),C.jsx(ze,{icon:C.jsx(Qce,{}),onClick:()=>t(\"/risk/event\"),children:\"风险事件\"})]})]}),C.jsxs(\"div\",{className:\"dashboard-hero-panel\",children:[C.jsxs(\"div\",{className:\"dashboard-hero-metric\",children:[C.jsx(\"span\",{children:\"计划完成目标\"}),C.jsx(\"strong\",{children:\"85%\"})]}),C.jsx(Es,{percent:85,strokeColor:\"#60a5fa\",trailColor:\"rgba(255,255,255,0.18)\",showInfo:!1}),C.jsxs(\"div\",{className:\"dashboard-hero-metric\",children:[C.jsx(\"span\",{children:\"额度违规容忍\"}),C.jsx(\"strong\",{children:\"0\"})]}),C.jsxs(\"div\",{className:\"dashboard-hero-metric\",children:[C.jsx(\"span\",{children:\"客服响应 SLA\"}),C.jsx(\"strong\",{children:\"5min\"})]})]})]}),C.jsx(\"section\",{className:\"dashboard-card-grid\",children:n.map(i=>C.jsxs(\"article\",{className:\"dashboard-entry-card page-surface\",onClick:()=>t(i.path),children:[C.jsxs(\"div\",{className:\"dashboard-entry-head\",children:[C.jsxs(\"div\",{children:[C.jsx(\"h2\",{className:\"dashboard-entry-title\",children:i.title}),C.jsx(\"p\",{className:\"dashboard-entry-desc\",children:i.description})]}),C.jsx(\"span\",{className:\"dashboard-entry-icon\",style:{background:i.color},children:i.icon})]}),C.jsxs(\"div\",{className:\"dashboard-entry-footer\",children:[C.jsx(\"span\",{children:i.metricLabel}),C.jsx(\"strong\",{children:i.metric})]})]},i.path))}),C.jsxs(\"section\",{className:\"dashboard-workflow page-surface\",children:[C.jsx(\"h2\",{className:\"dashboard-workflow-title\",children:\"主业务链路\"}),C.jsx(\"div\",{className:\"workflow-track\",children:a.map((i,o)=>C.jsxs(\"div\",{className:\"workflow-node\",children:[C.jsxs(\"strong\",{children:[o+1,\". \",i.title]}),C.jsx(\"span\",{children:i.desc})]},i.title))})]}),C.jsxs(\"section\",{className:\"dashboard-card-grid\",children:[C.jsxs(\"article\",{className:\"dashboard-entry-card page-surface\",onClick:()=>t(\"/reviewer\"),children:[C.jsxs(\"div\",{className:\"dashboard-entry-head\",children:[C.jsxs(\"div\",{children:[C.jsx(\"h2\",{className:\"dashboard-entry-title\",children:\"真实人管理\"}),C.jsx(\"p\",{className:\"dashboard-entry-desc\",children:\"查看真实人画像、额度台账、参与记录与风险标记。\"})]}),C.jsx(\"span\",{className:\"dashboard-entry-icon\",style:{background:\"linear-gradient(135deg, #0891b2, #2563eb)\"},children:C.jsx(ode,{})})]}),C.jsxs(\"div\",{className:\"dashboard-entry-footer\",children:[C.jsx(\"span\",{children:\"进入列表\"}),C.jsx(W5,{})]})]}),C.jsxs(\"article\",{className:\"dashboard-entry-card page-surface\",onClick:()=>t(\"/cs/ticket\"),children:[C.jsxs(\"div\",{className:\"dashboard-entry-head\",children:[C.jsxs(\"div\",{children:[C.jsx(\"h2\",{className:\"dashboard-entry-title\",children:\"客服工单池\"}),C.jsx(\"p\",{className:\"dashboard-entry-desc\",children:\"处理待分配、处理中、等待用户和疑似诈骗工单。\"})]}),C.jsx(\"span\",{className:\"dashboard-entry-icon\",style:{background:\"linear-gradient(135deg, #d97706, #dc2626)\"},children:C.jsx(r3,{})})]}),C.jsxs(\"div\",{className:\"dashboard-entry-footer\",children:[C.jsx(\"span\",{children:\"进入工单\"}),C.jsx(W5,{})]})]}),C.jsxs(\"article\",{className:\"dashboard-entry-card page-surface\",onClick:()=>t(\"/plan/review\"),children:[C.jsxs(\"div\",{className:\"dashboard-entry-head\",children:[C.jsxs(\"div\",{children:[C.jsx(\"h2\",{className:\"dashboard-entry-title\",children:\"测评计划\"}),C.jsx(\"p\",{className:\"dashboard-entry-desc\",children:\"管理计划状态、真实人分配、渠道推送和评价跟踪。\"})]}),C.jsx(\"span\",{className:\"dashboard-entry-icon\",style:{background:\"linear-gradient(135deg, #1d4ed8, #7c3aed)\"},children:C.jsx(EM,{})})]}),C.jsxs(\"div\",{className:\"dashboard-entry-footer\",children:[C.jsx(\"span\",{children:\"进入计划\"}),C.jsx(W5,{})]})]})]})]})},Nat=Object.freeze(Object.defineProperty({__proto__:null,default:Bat},Symbol.toStringTag,{value:\"Module\"})),hde=({title:e})=>C.jsx(wm,{status:\"info\",title:e,subTitle:\"此页面正在建设中,敬请期待\"}),$at=()=>C.jsx(hde,{title:\"计划列表\"}),Lat=Object.freeze(Object.defineProperty({__proto__:null,default:$at},Symbol.toStringTag,{value:\"Module\"})),jat=()=>C.jsx(hde,{title:\"计划详情\"}),zat=Object.freeze(Object.defineProperty({__proto__:null,default:jat},Symbol.toStringTag,{value:\"Module\"}));/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */var o3={};o3.version=\"0.18.5\";var pde=1252,Hat=[874,932,936,949,950,1250,1251,1252,1253,1254,1255,1256,1257,1258,1e4],mde=function(e){Hat.indexOf(e)!=-1&&(pde=e)};function Vat(){mde(1252)}var p2=function(e){mde(e)};function Wat(){p2(1200),Vat()}var FF=function(t){return String.fromCharCode(t)},sU=function(t){return String.fromCharCode(t)},l3,uf=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";function m2(e){for(var t=\"\",r=0,n=0,a=0,i=0,o=0,l=0,s=0,u=0;u<e.length;)r=e.charCodeAt(u++),i=r>>2,n=e.charCodeAt(u++),o=(r&3)<<4|n>>4,a=e.charCodeAt(u++),l=(n&15)<<2|a>>6,s=a&63,isNaN(n)?l=s=64:isNaN(a)&&(s=64),t+=uf.charAt(i)+uf.charAt(o)+uf.charAt(l)+uf.charAt(s);return t}function ud(e){var t=\"\",r=0,n=0,a=0,i=0,o=0,l=0,s=0;e=e.replace(/[^\\w\\+\\/\\=]/g,\"\");for(var u=0;u<e.length;)i=uf.indexOf(e.charAt(u++)),o=uf.indexOf(e.charAt(u++)),r=i<<2|o>>4,t+=String.fromCharCode(r),l=uf.indexOf(e.charAt(u++)),n=(o&15)<<4|l>>2,l!==64&&(t+=String.fromCharCode(n)),s=uf.indexOf(e.charAt(u++)),a=(l&3)<<6|s,s!==64&&(t+=String.fromCharCode(a));return t}var In=function(){return typeof Buffer<\"u\"&&typeof process<\"u\"&&typeof process.versions<\"u\"&&!!process.versions.node}(),wd=function(){if(typeof Buffer<\"u\"){var e=!Buffer.from;if(!e)try{Buffer.from(\"foo\",\"utf8\")}catch{e=!0}return e?function(t,r){return r?new Buffer(t,r):new Buffer(t)}:Buffer.from.bind(Buffer)}return function(){}}();function Qp(e){return In?Buffer.alloc?Buffer.alloc(e):new Buffer(e):typeof Uint8Array<\"u\"?new Uint8Array(e):new Array(e)}function uU(e){return In?Buffer.allocUnsafe?Buffer.allocUnsafe(e):new Buffer(e):typeof Uint8Array<\"u\"?new Uint8Array(e):new Array(e)}var Qs=function(t){return In?wd(t,\"binary\"):t.split(\"\").map(function(r){return r.charCodeAt(0)&255})};function DD(e){if(typeof ArrayBuffer>\"u\")return Qs(e);for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),n=0;n!=e.length;++n)r[n]=e.charCodeAt(n)&255;return t}function Vx(e){if(Array.isArray(e))return e.map(function(n){return String.fromCharCode(n)}).join(\"\");for(var t=[],r=0;r<e.length;++r)t[r]=String.fromCharCode(e[r]);return t.join(\"\")}function Gat(e){if(typeof Uint8Array>\"u\")throw new Error(\"Unsupported\");return new Uint8Array(e)}var zi=In?function(e){return Buffer.concat(e.map(function(t){return Buffer.isBuffer(t)?t:wd(t)}))}:function(e){if(typeof Uint8Array<\"u\"){var t=0,r=0;for(t=0;t<e.length;++t)r+=e[t].length;var n=new Uint8Array(r),a=0;for(t=0,r=0;t<e.length;r+=a,++t)if(a=e[t].length,e[t]instanceof Uint8Array)n.set(e[t],r);else{if(typeof e[t]==\"string\")throw\"wtf\";n.set(new Uint8Array(e[t]),r)}return n}return[].concat.apply([],e.map(function(i){return Array.isArray(i)?i:[].slice.call(i)}))};function Uat(e){for(var t=[],r=0,n=e.length+250,a=Qp(e.length+255),i=0;i<e.length;++i){var o=e.charCodeAt(i);if(o<128)a[r++]=o;else if(o<2048)a[r++]=192|o>>6&31,a[r++]=128|o&63;else if(o>=55296&&o<57344){o=(o&1023)+64;var l=e.charCodeAt(++i)&1023;a[r++]=240|o>>8&7,a[r++]=128|o>>2&63,a[r++]=128|l>>6&15|(o&3)<<4,a[r++]=128|l&63}else a[r++]=224|o>>12&15,a[r++]=128|o>>6&63,a[r++]=128|o&63;r>n&&(t.push(a.slice(0,r)),r=0,a=Qp(65535),n=65530)}return t.push(a.slice(0,r)),zi(t)}var Qy=/\\u0000/g,SF=/[\\u0001-\\u0006]/g;function C0(e){for(var t=\"\",r=e.length-1;r>=0;)t+=e.charAt(r--);return t}function eu(e,t){var r=\"\"+e;return r.length>=t?r:Da(\"0\",t-r.length)+r}function xB(e,t){var r=\"\"+e;return r.length>=t?r:Da(\" \",t-r.length)+r}function s3(e,t){var r=\"\"+e;return r.length>=t?r:r+Da(\" \",t-r.length)}function Kat(e,t){var r=\"\"+Math.round(e);return r.length>=t?r:Da(\"0\",t-r.length)+r}function Yat(e,t){var r=\"\"+e;return r.length>=t?r:Da(\"0\",t-r.length)+r}var cU=Math.pow(2,32);function iv(e,t){if(e>cU||e<-cU)return Kat(e,t);var r=Math.round(e);return Yat(r,t)}function u3(e,t){return t=t||0,e.length>=7+t&&(e.charCodeAt(t)|32)===103&&(e.charCodeAt(t+1)|32)===101&&(e.charCodeAt(t+2)|32)===110&&(e.charCodeAt(t+3)|32)===101&&(e.charCodeAt(t+4)|32)===114&&(e.charCodeAt(t+5)|32)===97&&(e.charCodeAt(t+6)|32)===108}var dU=[[\"Sun\",\"Sunday\"],[\"Mon\",\"Monday\"],[\"Tue\",\"Tuesday\"],[\"Wed\",\"Wednesday\"],[\"Thu\",\"Thursday\"],[\"Fri\",\"Friday\"],[\"Sat\",\"Saturday\"]],U5=[[\"J\",\"Jan\",\"January\"],[\"F\",\"Feb\",\"February\"],[\"M\",\"Mar\",\"March\"],[\"A\",\"Apr\",\"April\"],[\"M\",\"May\",\"May\"],[\"J\",\"Jun\",\"June\"],[\"J\",\"Jul\",\"July\"],[\"A\",\"Aug\",\"August\"],[\"S\",\"Sep\",\"September\"],[\"O\",\"Oct\",\"October\"],[\"N\",\"Nov\",\"November\"],[\"D\",\"Dec\",\"December\"]];function qat(e){return e||(e={}),e[0]=\"General\",e[1]=\"0\",e[2]=\"0.00\",e[3]=\"#,##0\",e[4]=\"#,##0.00\",e[9]=\"0%\",e[10]=\"0.00%\",e[11]=\"0.00E+00\",e[12]=\"# ?/?\",e[13]=\"# ??/??\",e[14]=\"m/d/yy\",e[15]=\"d-mmm-yy\",e[16]=\"d-mmm\",e[17]=\"mmm-yy\",e[18]=\"h:mm AM/PM\",e[19]=\"h:mm:ss AM/PM\",e[20]=\"h:mm\",e[21]=\"h:mm:ss\",e[22]=\"m/d/yy h:mm\",e[37]=\"#,##0 ;(#,##0)\",e[38]=\"#,##0 ;[Red](#,##0)\",e[39]=\"#,##0.00;(#,##0.00)\",e[40]=\"#,##0.00;[Red](#,##0.00)\",e[45]=\"mm:ss\",e[46]=\"[h]:mm:ss\",e[47]=\"mmss.0\",e[48]=\"##0.0E+0\",e[49]=\"@\",e[56]='\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"',e}var Aa={0:\"General\",1:\"0\",2:\"0.00\",3:\"#,##0\",4:\"#,##0.00\",9:\"0%\",10:\"0.00%\",11:\"0.00E+00\",12:\"# ?/?\",13:\"# ??/??\",14:\"m/d/yy\",15:\"d-mmm-yy\",16:\"d-mmm\",17:\"mmm-yy\",18:\"h:mm AM/PM\",19:\"h:mm:ss AM/PM\",20:\"h:mm\",21:\"h:mm:ss\",22:\"m/d/yy h:mm\",37:\"#,##0 ;(#,##0)\",38:\"#,##0 ;[Red](#,##0)\",39:\"#,##0.00;(#,##0.00)\",40:\"#,##0.00;[Red](#,##0.00)\",45:\"mm:ss\",46:\"[h]:mm:ss\",47:\"mmss.0\",48:\"##0.0E+0\",49:\"@\",56:'\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'},fU={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},Xat={5:'\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',63:'\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',6:'\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',64:'\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',7:'\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',65:'\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',8:'\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',66:'\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',41:'_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',42:'_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',43:'_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',44:'_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'};function c3(e,t,r){for(var n=e<0?-1:1,a=e*n,i=0,o=1,l=0,s=1,u=0,c=0,d=Math.floor(a);u<t&&(d=Math.floor(a),l=d*o+i,c=d*u+s,!(a-d<5e-8));)a=1/(a-d),i=o,o=l,s=u,u=c;if(c>t&&(u>t?(c=s,l=i):(c=u,l=o)),!r)return[0,n*l,c];var f=Math.floor(n*l/c);return[f,n*l-f*c,c]}function wF(e,t,r){if(e>2958465||e<0)return null;var n=e|0,a=Math.floor(86400*(e-n)),i=0,o=[],l={D:n,T:a,u:86400*(e-n)-a,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(l.u)<1e-6&&(l.u=0),t&&t.date1904&&(n+=1462),l.u>.9999&&(l.u=0,++a==86400&&(l.T=a=0,++n,++l.D)),n===60)o=r?[1317,10,29]:[1900,2,29],i=3;else if(n===0)o=r?[1317,8,29]:[1900,1,0],i=6;else{n>60&&--n;var s=new Date(1900,0,1);s.setDate(s.getDate()+n-1),o=[s.getFullYear(),s.getMonth()+1,s.getDate()],i=s.getDay(),n<60&&(i=(i+6)%7),r&&(i=nit(s,o))}return l.y=o[0],l.m=o[1],l.d=o[2],l.S=a%60,a=Math.floor(a/60),l.M=a%60,a=Math.floor(a/60),l.H=a,l.q=i,l}var vde=new Date(1899,11,31,0,0,0),Jat=vde.getTime(),Zat=new Date(1900,2,1,0,0,0);function gde(e,t){var r=e.getTime();return t?r-=1461*24*60*60*1e3:e>=Zat&&(r+=24*60*60*1e3),(r-(Jat+(e.getTimezoneOffset()-vde.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function CB(e){return e.indexOf(\".\")==-1?e:e.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/,\"$1\")}function Qat(e){return e.indexOf(\"E\")==-1?e:e.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\")}function eit(e){var t=e<0?12:11,r=CB(e.toFixed(12));return r.length<=t||(r=e.toPrecision(10),r.length<=t)?r:e.toExponential(5)}function tit(e){var t=CB(e.toFixed(11));return t.length>(e<0?12:11)||t===\"0\"||t===\"-0\"?e.toPrecision(6):t}function rit(e){var t=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),r;return t>=-4&&t<=-1?r=e.toPrecision(10+t):Math.abs(t)<=9?r=eit(e):t===10?r=e.toFixed(10).substr(0,12):r=tit(e),CB(Qat(r.toUpperCase()))}function AM(e,t){switch(typeof e){case\"string\":return e;case\"boolean\":return e?\"TRUE\":\"FALSE\";case\"number\":return(e|0)===e?e.toString(10):rit(e);case\"undefined\":return\"\";case\"object\":if(e==null)return\"\";if(e instanceof Date)return Wf(14,gde(e,t&&t.date1904),t)}throw new Error(\"unsupported value in General format: \"+e)}function nit(e,t){t[0]-=581;var r=e.getDay();return e<60&&(r=(r+6)%7),r}function ait(e,t,r,n){var a=\"\",i=0,o=0,l=r.y,s,u=0;switch(e){case 98:l=r.y+543;case 121:switch(t.length){case 1:case 2:s=l%100,u=2;break;default:s=l%1e4,u=4;break}break;case 109:switch(t.length){case 1:case 2:s=r.m,u=t.length;break;case 3:return U5[r.m-1][1];case 5:return U5[r.m-1][0];default:return U5[r.m-1][2]}break;case 100:switch(t.length){case 1:case 2:s=r.d,u=t.length;break;case 3:return dU[r.q][0];default:return dU[r.q][1]}break;case 104:switch(t.length){case 1:case 2:s=1+(r.H+11)%12,u=t.length;break;default:throw\"bad hour format: \"+t}break;case 72:switch(t.length){case 1:case 2:s=r.H,u=t.length;break;default:throw\"bad hour format: \"+t}break;case 77:switch(t.length){case 1:case 2:s=r.M,u=t.length;break;default:throw\"bad minute format: \"+t}break;case 115:if(t!=\"s\"&&t!=\"ss\"&&t!=\".0\"&&t!=\".00\"&&t!=\".000\")throw\"bad second format: \"+t;return r.u===0&&(t==\"s\"||t==\"ss\")?eu(r.S,t.length):(n>=2?o=n===3?1e3:100:o=n===1?10:1,i=Math.round(o*(r.S+r.u)),i>=60*o&&(i=0),t===\"s\"?i===0?\"0\":\"\"+i/o:(a=eu(i,2+n),t===\"ss\"?a.substr(0,2):\".\"+a.substr(2,t.length-1)));case 90:switch(t){case\"[h]\":case\"[hh]\":s=r.D*24+r.H;break;case\"[m]\":case\"[mm]\":s=(r.D*24+r.H)*60+r.M;break;case\"[s]\":case\"[ss]\":s=((r.D*24+r.H)*60+r.M)*60+Math.round(r.S+r.u);break;default:throw\"bad abstime format: \"+t}u=t.length===3?1:2;break;case 101:s=l,u=1;break}var c=u>0?eu(s,u):\"\";return c}function cf(e){var t=3;if(e.length<=t)return e;for(var r=e.length%t,n=e.substr(0,r);r!=e.length;r+=t)n+=(n.length>0?\",\":\"\")+e.substr(r,t);return n}var yde=/%/g;function iit(e,t,r){var n=t.replace(yde,\"\"),a=t.length-n.length;return Yc(e,n,r*Math.pow(10,2*a))+Da(\"%\",a)}function oit(e,t,r){for(var n=t.length-1;t.charCodeAt(n-1)===44;)--n;return Yc(e,t.substr(0,n),r/Math.pow(10,3*(t.length-n)))}function bde(e,t){var r,n=e.indexOf(\"E\")-e.indexOf(\".\")-1;if(e.match(/^#+0.0E\\+0$/)){if(t==0)return\"0.0E+0\";if(t<0)return\"-\"+bde(e,-t);var a=e.indexOf(\".\");a===-1&&(a=e.indexOf(\"E\"));var i=Math.floor(Math.log(t)*Math.LOG10E)%a;if(i<0&&(i+=a),r=(t/Math.pow(10,i)).toPrecision(n+1+(a+i)%a),r.indexOf(\"e\")===-1){var o=Math.floor(Math.log(t)*Math.LOG10E);for(r.indexOf(\".\")===-1?r=r.charAt(0)+\".\"+r.substr(1)+\"E+\"+(o-r.length+i):r+=\"E+\"+(o-i);r.substr(0,2)===\"0.\";)r=r.charAt(0)+r.substr(2,a)+\".\"+r.substr(2+a),r=r.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");r=r.replace(/\\+-/,\"-\")}r=r.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function(l,s,u,c){return s+u+c.substr(0,(a+i)%a)+\".\"+c.substr(i)+\"E\"})}else r=t.toExponential(n);return e.match(/E\\+00$/)&&r.match(/e[+-]\\d$/)&&(r=r.substr(0,r.length-1)+\"0\"+r.charAt(r.length-1)),e.match(/E\\-/)&&r.match(/e\\+/)&&(r=r.replace(/e\\+/,\"e\")),r.replace(\"e\",\"E\")}var xde=/# (\\?+)( ?)\\/( ?)(\\d+)/;function lit(e,t,r){var n=parseInt(e[4],10),a=Math.round(t*n),i=Math.floor(a/n),o=a-i*n,l=n;return r+(i===0?\"\":\"\"+i)+\" \"+(o===0?Da(\" \",e[1].length+1+e[4].length):xB(o,e[1].length)+e[2]+\"/\"+e[3]+eu(l,e[4].length))}function sit(e,t,r){return r+(t===0?\"\":\"\"+t)+Da(\" \",e[1].length+2+e[4].length)}var Cde=/^#*0*\\.([0#]+)/,Fde=/\\).*[0#]/,Sde=/\\(###\\) ###\\\\?-####/;function Ro(e){for(var t=\"\",r,n=0;n!=e.length;++n)switch(r=e.charCodeAt(n)){case 35:break;case 63:t+=\" \";break;case 48:t+=\"0\";break;default:t+=String.fromCharCode(r)}return t}function hU(e,t){var r=Math.pow(10,t);return\"\"+Math.round(e*r)/r}function pU(e,t){var r=e-Math.floor(e),n=Math.pow(10,t);return t<(\"\"+Math.round(r*n)).length?0:Math.round(r*n)}function uit(e,t){return t<(\"\"+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}function cit(e){return e<2147483647&&e>-2147483648?\"\"+(e>=0?e|0:e-1|0):\"\"+Math.floor(e)}function ts(e,t,r){if(e.charCodeAt(0)===40&&!t.match(Fde)){var n=t.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");return r>=0?ts(\"n\",n,r):\"(\"+ts(\"n\",n,-r)+\")\"}if(t.charCodeAt(t.length-1)===44)return oit(e,t,r);if(t.indexOf(\"%\")!==-1)return iit(e,t,r);if(t.indexOf(\"E\")!==-1)return bde(t,r);if(t.charCodeAt(0)===36)return\"$\"+ts(e,t.substr(t.charAt(1)==\" \"?2:1),r);var a,i,o,l,s=Math.abs(r),u=r<0?\"-\":\"\";if(t.match(/^00+$/))return u+iv(s,t.length);if(t.match(/^[#?]+$/))return a=iv(r,0),a===\"0\"&&(a=\"\"),a.length>t.length?a:Ro(t.substr(0,t.length-a.length))+a;if(i=t.match(xde))return lit(i,s,u);if(t.match(/^#+0+$/))return u+iv(s,t.length-t.indexOf(\"0\"));if(i=t.match(Cde))return a=hU(r,i[1].length).replace(/^([^\\.]+)$/,\"$1.\"+Ro(i[1])).replace(/\\.$/,\".\"+Ro(i[1])).replace(/\\.(\\d*)$/,function(p,v){return\".\"+v+Da(\"0\",Ro(i[1]).length-v.length)}),t.indexOf(\"0.\")!==-1?a:a.replace(/^0\\./,\".\");if(t=t.replace(/^#+([0.])/,\"$1\"),i=t.match(/^(0*)\\.(#*)$/))return u+hU(s,i[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,i[1].length?\"0.\":\".\");if(i=t.match(/^#{1,3},##0(\\.?)$/))return u+cf(iv(s,0));if(i=t.match(/^#,##0\\.([#0]*0)$/))return r<0?\"-\"+ts(e,t,-r):cf(\"\"+(Math.floor(r)+uit(r,i[1].length)))+\".\"+eu(pU(r,i[1].length),i[1].length);if(i=t.match(/^#,#*,#0/))return ts(e,t.replace(/^#,#*,/,\"\"),r);if(i=t.match(/^([0#]+)(\\\\?-([0#]+))+$/))return a=C0(ts(e,t.replace(/[\\\\-]/g,\"\"),r)),o=0,C0(C0(t.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(p){return o<a.length?a.charAt(o++):p===\"0\"?\"0\":\"\"}));if(t.match(Sde))return a=ts(e,\"##########\",r),\"(\"+a.substr(0,3)+\") \"+a.substr(3,3)+\"-\"+a.substr(6);var c=\"\";if(i=t.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))return o=Math.min(i[4].length,7),l=c3(s,Math.pow(10,o)-1,!1),a=\"\"+u,c=Yc(\"n\",i[1],l[1]),c.charAt(c.length-1)==\" \"&&(c=c.substr(0,c.length-1)+\"0\"),a+=c+i[2]+\"/\"+i[3],c=s3(l[2],o),c.length<i[4].length&&(c=Ro(i[4].substr(i[4].length-c.length))+c),a+=c,a;if(i=t.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))return o=Math.min(Math.max(i[1].length,i[4].length),7),l=c3(s,Math.pow(10,o)-1,!0),u+(l[0]||(l[1]?\"\":\"0\"))+\" \"+(l[1]?xB(l[1],o)+i[2]+\"/\"+i[3]+s3(l[2],o):Da(\" \",2*o+1+i[2].length+i[3].length));if(i=t.match(/^[#0?]+$/))return a=iv(r,0),t.length<=a.length?a:Ro(t.substr(0,t.length-a.length))+a;if(i=t.match(/^([#0?]+)\\.([#0]+)$/)){a=\"\"+r.toFixed(Math.min(i[2].length,10)).replace(/([^0])0+$/,\"$1\"),o=a.indexOf(\".\");var d=t.indexOf(\".\")-o,f=t.length-a.length-d;return Ro(t.substr(0,d)+a+t.substr(t.length-f))}if(i=t.match(/^00,000\\.([#0]*0)$/))return o=pU(r,i[1].length),r<0?\"-\"+ts(e,t,-r):cf(cit(r)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function(p){return\"00,\"+(p.length<3?eu(0,3-p.length):\"\")+p})+\".\"+eu(o,i[1].length);switch(t){case\"###,##0.00\":return ts(e,\"#,##0.00\",r);case\"###,###\":case\"##,###\":case\"#,###\":var h=cf(iv(s,0));return h!==\"0\"?u+h:\"\";case\"###,###.00\":return ts(e,\"###,##0.00\",r).replace(/^0\\./,\".\");case\"#,###.00\":return ts(e,\"#,##0.00\",r).replace(/^0\\./,\".\")}throw new Error(\"unsupported format |\"+t+\"|\")}function dit(e,t,r){for(var n=t.length-1;t.charCodeAt(n-1)===44;)--n;return Yc(e,t.substr(0,n),r/Math.pow(10,3*(t.length-n)))}function fit(e,t,r){var n=t.replace(yde,\"\"),a=t.length-n.length;return Yc(e,n,r*Math.pow(10,2*a))+Da(\"%\",a)}function wde(e,t){var r,n=e.indexOf(\"E\")-e.indexOf(\".\")-1;if(e.match(/^#+0.0E\\+0$/)){if(t==0)return\"0.0E+0\";if(t<0)return\"-\"+wde(e,-t);var a=e.indexOf(\".\");a===-1&&(a=e.indexOf(\"E\"));var i=Math.floor(Math.log(t)*Math.LOG10E)%a;if(i<0&&(i+=a),r=(t/Math.pow(10,i)).toPrecision(n+1+(a+i)%a),!r.match(/[Ee]/)){var o=Math.floor(Math.log(t)*Math.LOG10E);r.indexOf(\".\")===-1?r=r.charAt(0)+\".\"+r.substr(1)+\"E+\"+(o-r.length+i):r+=\"E+\"+(o-i),r=r.replace(/\\+-/,\"-\")}r=r.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function(l,s,u,c){return s+u+c.substr(0,(a+i)%a)+\".\"+c.substr(i)+\"E\"})}else r=t.toExponential(n);return e.match(/E\\+00$/)&&r.match(/e[+-]\\d$/)&&(r=r.substr(0,r.length-1)+\"0\"+r.charAt(r.length-1)),e.match(/E\\-/)&&r.match(/e\\+/)&&(r=r.replace(/e\\+/,\"e\")),r.replace(\"e\",\"E\")}function Nu(e,t,r){if(e.charCodeAt(0)===40&&!t.match(Fde)){var n=t.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");return r>=0?Nu(\"n\",n,r):\"(\"+Nu(\"n\",n,-r)+\")\"}if(t.charCodeAt(t.length-1)===44)return dit(e,t,r);if(t.indexOf(\"%\")!==-1)return fit(e,t,r);if(t.indexOf(\"E\")!==-1)return wde(t,r);if(t.charCodeAt(0)===36)return\"$\"+Nu(e,t.substr(t.charAt(1)==\" \"?2:1),r);var a,i,o,l,s=Math.abs(r),u=r<0?\"-\":\"\";if(t.match(/^00+$/))return u+eu(s,t.length);if(t.match(/^[#?]+$/))return a=\"\"+r,r===0&&(a=\"\"),a.length>t.length?a:Ro(t.substr(0,t.length-a.length))+a;if(i=t.match(xde))return sit(i,s,u);if(t.match(/^#+0+$/))return u+eu(s,t.length-t.indexOf(\"0\"));if(i=t.match(Cde))return a=(\"\"+r).replace(/^([^\\.]+)$/,\"$1.\"+Ro(i[1])).replace(/\\.$/,\".\"+Ro(i[1])),a=a.replace(/\\.(\\d*)$/,function(p,v){return\".\"+v+Da(\"0\",Ro(i[1]).length-v.length)}),t.indexOf(\"0.\")!==-1?a:a.replace(/^0\\./,\".\");if(t=t.replace(/^#+([0.])/,\"$1\"),i=t.match(/^(0*)\\.(#*)$/))return u+(\"\"+s).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,i[1].length?\"0.\":\".\");if(i=t.match(/^#{1,3},##0(\\.?)$/))return u+cf(\"\"+s);if(i=t.match(/^#,##0\\.([#0]*0)$/))return r<0?\"-\"+Nu(e,t,-r):cf(\"\"+r)+\".\"+Da(\"0\",i[1].length);if(i=t.match(/^#,#*,#0/))return Nu(e,t.replace(/^#,#*,/,\"\"),r);if(i=t.match(/^([0#]+)(\\\\?-([0#]+))+$/))return a=C0(Nu(e,t.replace(/[\\\\-]/g,\"\"),r)),o=0,C0(C0(t.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(p){return o<a.length?a.charAt(o++):p===\"0\"?\"0\":\"\"}));if(t.match(Sde))return a=Nu(e,\"##########\",r),\"(\"+a.substr(0,3)+\") \"+a.substr(3,3)+\"-\"+a.substr(6);var c=\"\";if(i=t.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))return o=Math.min(i[4].length,7),l=c3(s,Math.pow(10,o)-1,!1),a=\"\"+u,c=Yc(\"n\",i[1],l[1]),c.charAt(c.length-1)==\" \"&&(c=c.substr(0,c.length-1)+\"0\"),a+=c+i[2]+\"/\"+i[3],c=s3(l[2],o),c.length<i[4].length&&(c=Ro(i[4].substr(i[4].length-c.length))+c),a+=c,a;if(i=t.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))return o=Math.min(Math.max(i[1].length,i[4].length),7),l=c3(s,Math.pow(10,o)-1,!0),u+(l[0]||(l[1]?\"\":\"0\"))+\" \"+(l[1]?xB(l[1],o)+i[2]+\"/\"+i[3]+s3(l[2],o):Da(\" \",2*o+1+i[2].length+i[3].length));if(i=t.match(/^[#0?]+$/))return a=\"\"+r,t.length<=a.length?a:Ro(t.substr(0,t.length-a.length))+a;if(i=t.match(/^([#0]+)\\.([#0]+)$/)){a=\"\"+r.toFixed(Math.min(i[2].length,10)).replace(/([^0])0+$/,\"$1\"),o=a.indexOf(\".\");var d=t.indexOf(\".\")-o,f=t.length-a.length-d;return Ro(t.substr(0,d)+a+t.substr(t.length-f))}if(i=t.match(/^00,000\\.([#0]*0)$/))return r<0?\"-\"+Nu(e,t,-r):cf(\"\"+r).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function(p){return\"00,\"+(p.length<3?eu(0,3-p.length):\"\")+p})+\".\"+eu(0,i[1].length);switch(t){case\"###,###\":case\"##,###\":case\"#,###\":var h=cf(\"\"+s);return h!==\"0\"?u+h:\"\";default:if(t.match(/\\.[0#?]*$/))return Nu(e,t.slice(0,t.lastIndexOf(\".\")),r)+Ro(t.slice(t.lastIndexOf(\".\")))}throw new Error(\"unsupported format |\"+t+\"|\")}function Yc(e,t,r){return(r|0)===r?Nu(e,t,r):ts(e,t,r)}function hit(e){for(var t=[],r=!1,n=0,a=0;n<e.length;++n)switch(e.charCodeAt(n)){case 34:r=!r;break;case 95:case 42:case 92:++n;break;case 59:t[t.length]=e.substr(a,n-a),a=n+1}if(t[t.length]=e.substr(a),r===!0)throw new Error(\"Format |\"+e+\"| unterminated string \");return t}var Ede=/\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;function Dde(e){for(var t=0,r=\"\",n=\"\";t<e.length;)switch(r=e.charAt(t)){case\"G\":u3(e,t)&&(t+=6),t++;break;case'\"':for(;e.charCodeAt(++t)!==34&&t<e.length;);++t;break;case\"\\\\\":t+=2;break;case\"_\":t+=2;break;case\"@\":++t;break;case\"B\":case\"b\":if(e.charAt(t+1)===\"1\"||e.charAt(t+1)===\"2\")return!0;case\"M\":case\"D\":case\"Y\":case\"H\":case\"S\":case\"E\":case\"m\":case\"d\":case\"y\":case\"h\":case\"s\":case\"e\":case\"g\":return!0;case\"A\":case\"a\":case\"上\":if(e.substr(t,3).toUpperCase()===\"A/P\"||e.substr(t,5).toUpperCase()===\"AM/PM\"||e.substr(t,5).toUpperCase()===\"上午/下午\")return!0;++t;break;case\"[\":for(n=r;e.charAt(t++)!==\"]\"&&t<e.length;)n+=e.charAt(t);if(n.match(Ede))return!0;break;case\".\":case\"0\":case\"#\":for(;t<e.length&&(\"0#?.,E+-%\".indexOf(r=e.charAt(++t))>-1||r==\"\\\\\"&&e.charAt(t+1)==\"-\"&&\"0#\".indexOf(e.charAt(t+2))>-1););break;case\"?\":for(;e.charAt(++t)===r;);break;case\"*\":++t,(e.charAt(t)==\" \"||e.charAt(t)==\"*\")&&++t;break;case\"(\":case\")\":++t;break;case\"1\":case\"2\":case\"3\":case\"4\":case\"5\":case\"6\":case\"7\":case\"8\":case\"9\":for(;t<e.length&&\"0123456789\".indexOf(e.charAt(++t))>-1;);break;case\" \":++t;break;default:++t;break}return!1}function pit(e,t,r,n){for(var a=[],i=\"\",o=0,l=\"\",s=\"t\",u,c,d,f=\"H\";o<e.length;)switch(l=e.charAt(o)){case\"G\":if(!u3(e,o))throw new Error(\"unrecognized character \"+l+\" in \"+e);a[a.length]={t:\"G\",v:\"General\"},o+=7;break;case'\"':for(i=\"\";(d=e.charCodeAt(++o))!==34&&o<e.length;)i+=String.fromCharCode(d);a[a.length]={t:\"t\",v:i},++o;break;case\"\\\\\":var h=e.charAt(++o),p=h===\"(\"||h===\")\"?h:\"t\";a[a.length]={t:p,v:h},++o;break;case\"_\":a[a.length]={t:\"t\",v:\" \"},o+=2;break;case\"@\":a[a.length]={t:\"T\",v:t},++o;break;case\"B\":case\"b\":if(e.charAt(o+1)===\"1\"||e.charAt(o+1)===\"2\"){if(u==null&&(u=wF(t,r,e.charAt(o+1)===\"2\"),u==null))return\"\";a[a.length]={t:\"X\",v:e.substr(o,2)},s=l,o+=2;break}case\"M\":case\"D\":case\"Y\":case\"H\":case\"S\":case\"E\":l=l.toLowerCase();case\"m\":case\"d\":case\"y\":case\"h\":case\"s\":case\"e\":case\"g\":if(t<0||u==null&&(u=wF(t,r),u==null))return\"\";for(i=l;++o<e.length&&e.charAt(o).toLowerCase()===l;)i+=l;l===\"m\"&&s.toLowerCase()===\"h\"&&(l=\"M\"),l===\"h\"&&(l=f),a[a.length]={t:l,v:i},s=l;break;case\"A\":case\"a\":case\"上\":var v={t:l,v:l};if(u==null&&(u=wF(t,r)),e.substr(o,3).toUpperCase()===\"A/P\"?(u!=null&&(v.v=u.H>=12?\"P\":\"A\"),v.t=\"T\",f=\"h\",o+=3):e.substr(o,5).toUpperCase()===\"AM/PM\"?(u!=null&&(v.v=u.H>=12?\"PM\":\"AM\"),v.t=\"T\",o+=5,f=\"h\"):e.substr(o,5).toUpperCase()===\"上午/下午\"?(u!=null&&(v.v=u.H>=12?\"下午\":\"上午\"),v.t=\"T\",o+=5,f=\"h\"):(v.t=\"t\",++o),u==null&&v.t===\"T\")return\"\";a[a.length]=v,s=l;break;case\"[\":for(i=l;e.charAt(o++)!==\"]\"&&o<e.length;)i+=e.charAt(o);if(i.slice(-1)!==\"]\")throw'unterminated \"[\" block: |'+i+\"|\";if(i.match(Ede)){if(u==null&&(u=wF(t,r),u==null))return\"\";a[a.length]={t:\"Z\",v:i.toLowerCase()},s=i.charAt(1)}else i.indexOf(\"$\")>-1&&(i=(i.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\",Dde(e)||(a[a.length]={t:\"t\",v:i}));break;case\".\":if(u!=null){for(i=l;++o<e.length&&(l=e.charAt(o))===\"0\";)i+=l;a[a.length]={t:\"s\",v:i};break}case\"0\":case\"#\":for(i=l;++o<e.length&&\"0#?.,E+-%\".indexOf(l=e.charAt(o))>-1;)i+=l;a[a.length]={t:\"n\",v:i};break;case\"?\":for(i=l;e.charAt(++o)===l;)i+=l;a[a.length]={t:l,v:i},s=l;break;case\"*\":++o,(e.charAt(o)==\" \"||e.charAt(o)==\"*\")&&++o;break;case\"(\":case\")\":a[a.length]={t:n===1?\"t\":l,v:l},++o;break;case\"1\":case\"2\":case\"3\":case\"4\":case\"5\":case\"6\":case\"7\":case\"8\":case\"9\":for(i=l;o<e.length&&\"0123456789\".indexOf(e.charAt(++o))>-1;)i+=e.charAt(o);a[a.length]={t:\"D\",v:i};break;case\" \":a[a.length]={t:l,v:l},++o;break;case\"$\":a[a.length]={t:\"t\",v:\"$\"},++o;break;default:if(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(l)===-1)throw new Error(\"unrecognized character \"+l+\" in \"+e);a[a.length]={t:\"t\",v:l},++o;break}var g=0,y=0,b;for(o=a.length-1,s=\"t\";o>=0;--o)switch(a[o].t){case\"h\":case\"H\":a[o].t=f,s=\"h\",g<1&&(g=1);break;case\"s\":(b=a[o].v.match(/\\.0+$/))&&(y=Math.max(y,b[0].length-1)),g<3&&(g=3);case\"d\":case\"y\":case\"M\":case\"e\":s=a[o].t;break;case\"m\":s===\"s\"&&(a[o].t=\"M\",g<2&&(g=2));break;case\"X\":break;case\"Z\":g<1&&a[o].v.match(/[Hh]/)&&(g=1),g<2&&a[o].v.match(/[Mm]/)&&(g=2),g<3&&a[o].v.match(/[Ss]/)&&(g=3)}switch(g){case 0:break;case 1:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M),u.M>=60&&(u.M=0,++u.H);break;case 2:u.u>=.5&&(u.u=0,++u.S),u.S>=60&&(u.S=0,++u.M);break}var x=\"\",F;for(o=0;o<a.length;++o)switch(a[o].t){case\"t\":case\"T\":case\" \":case\"D\":break;case\"X\":a[o].v=\"\",a[o].t=\";\";break;case\"d\":case\"m\":case\"y\":case\"h\":case\"H\":case\"M\":case\"s\":case\"e\":case\"b\":case\"Z\":a[o].v=ait(a[o].t.charCodeAt(0),a[o].v,u,y),a[o].t=\"t\";break;case\"n\":case\"?\":for(F=o+1;a[F]!=null&&((l=a[F].t)===\"?\"||l===\"D\"||(l===\" \"||l===\"t\")&&a[F+1]!=null&&(a[F+1].t===\"?\"||a[F+1].t===\"t\"&&a[F+1].v===\"/\")||a[o].t===\"(\"&&(l===\" \"||l===\"n\"||l===\")\")||l===\"t\"&&(a[F].v===\"/\"||a[F].v===\" \"&&a[F+1]!=null&&a[F+1].t==\"?\"));)a[o].v+=a[F].v,a[F]={v:\"\",t:\";\"},++F;x+=a[o].v,o=F-1;break;case\"G\":a[o].t=\"t\",a[o].v=AM(t,r);break}var S=\"\",E,w;if(x.length>0){x.charCodeAt(0)==40?(E=t<0&&x.charCodeAt(0)===45?-t:t,w=Yc(\"n\",x,E)):(E=t<0&&n>1?-t:t,w=Yc(\"n\",x,E),E<0&&a[0]&&a[0].t==\"t\"&&(w=w.substr(1),a[0].v=\"-\"+a[0].v)),F=w.length-1;var D=a.length;for(o=0;o<a.length;++o)if(a[o]!=null&&a[o].t!=\"t\"&&a[o].v.indexOf(\".\")>-1){D=o;break}var A=a.length;if(D===a.length&&w.indexOf(\"E\")===-1){for(o=a.length-1;o>=0;--o)a[o]==null||\"n?\".indexOf(a[o].t)===-1||(F>=a[o].v.length-1?(F-=a[o].v.length,a[o].v=w.substr(F+1,a[o].v.length)):F<0?a[o].v=\"\":(a[o].v=w.substr(0,F+1),F=-1),a[o].t=\"t\",A=o);F>=0&&A<a.length&&(a[A].v=w.substr(0,F+1)+a[A].v)}else if(D!==a.length&&w.indexOf(\"E\")===-1){for(F=w.indexOf(\".\")-1,o=D;o>=0;--o)if(!(a[o]==null||\"n?\".indexOf(a[o].t)===-1)){for(c=a[o].v.indexOf(\".\")>-1&&o===D?a[o].v.indexOf(\".\")-1:a[o].v.length-1,S=a[o].v.substr(c+1);c>=0;--c)F>=0&&(a[o].v.charAt(c)===\"0\"||a[o].v.charAt(c)===\"#\")&&(S=w.charAt(F--)+S);a[o].v=S,a[o].t=\"t\",A=o}for(F>=0&&A<a.length&&(a[A].v=w.substr(0,F+1)+a[A].v),F=w.indexOf(\".\")+1,o=D;o<a.length;++o)if(!(a[o]==null||\"n?(\".indexOf(a[o].t)===-1&&o!==D)){for(c=a[o].v.indexOf(\".\")>-1&&o===D?a[o].v.indexOf(\".\")+1:0,S=a[o].v.substr(0,c);c<a[o].v.length;++c)F<w.length&&(S+=w.charAt(F++));a[o].v=S,a[o].t=\"t\",A=o}}}for(o=0;o<a.length;++o)a[o]!=null&&\"n?\".indexOf(a[o].t)>-1&&(E=n>1&&t<0&&o>0&&a[o-1].v===\"-\"?-t:t,a[o].v=Yc(a[o].t,a[o].v,E),a[o].t=\"t\");var _=\"\";for(o=0;o!==a.length;++o)a[o]!=null&&(_+=a[o].v);return _}var mU=/\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;function vU(e,t){if(t==null)return!1;var r=parseFloat(t[2]);switch(t[1]){case\"=\":if(e==r)return!0;break;case\">\":if(e>r)return!0;break;case\"<\":if(e<r)return!0;break;case\"<>\":if(e!=r)return!0;break;case\">=\":if(e>=r)return!0;break;case\"<=\":if(e<=r)return!0;break}return!1}function mit(e,t){var r=hit(e),n=r.length,a=r[n-1].indexOf(\"@\");if(n<4&&a>-1&&--n,r.length>4)throw new Error(\"cannot find right format for |\"+r.join(\"|\")+\"|\");if(typeof t!=\"number\")return[4,r.length===4||a>-1?r[r.length-1]:\"@\"];switch(r.length){case 1:r=a>-1?[\"General\",\"General\",\"General\",r[0]]:[r[0],r[0],r[0],\"@\"];break;case 2:r=a>-1?[r[0],r[0],r[0],r[1]]:[r[0],r[1],r[0],\"@\"];break;case 3:r=a>-1?[r[0],r[1],r[0],r[2]]:[r[0],r[1],r[2],\"@\"];break}var i=t>0?r[0]:t<0?r[1]:r[2];if(r[0].indexOf(\"[\")===-1&&r[1].indexOf(\"[\")===-1)return[n,i];if(r[0].match(/\\[[=<>]/)!=null||r[1].match(/\\[[=<>]/)!=null){var o=r[0].match(mU),l=r[1].match(mU);return vU(t,o)?[n,r[0]]:vU(t,l)?[n,r[1]]:[n,r[o!=null&&l!=null?2:1]]}return[n,i]}function Wf(e,t,r){r==null&&(r={});var n=\"\";switch(typeof e){case\"string\":e==\"m/d/yy\"&&r.dateNF?n=r.dateNF:n=e;break;case\"number\":e==14&&r.dateNF?n=r.dateNF:n=(r.table!=null?r.table:Aa)[e],n==null&&(n=r.table&&r.table[fU[e]]||Aa[fU[e]]),n==null&&(n=Xat[e]||\"General\");break}if(u3(n,0))return AM(t,r);t instanceof Date&&(t=gde(t,r.date1904));var a=mit(n,t);if(u3(a[1]))return AM(t,r);if(t===!0)t=\"TRUE\";else if(t===!1)t=\"FALSE\";else if(t===\"\"||t==null)return\"\";return pit(a[1],t,r,a[0])}function Ade(e,t){if(typeof t!=\"number\"){t=+t||-1;for(var r=0;r<392;++r){if(Aa[r]==null){t<0&&(t=r);continue}if(Aa[r]==e){t=r;break}}t<0&&(t=391)}return Aa[t]=e,t}function AD(e){for(var t=0;t!=392;++t)e[t]!==void 0&&Ade(e[t],t)}function _D(){Aa=qat()}var _de=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function vit(e){var t=typeof e==\"number\"?Aa[e]:e;return t=t.replace(_de,\"(\\\\d+)\"),new RegExp(\"^\"+t+\"$\")}function git(e,t,r){var n=-1,a=-1,i=-1,o=-1,l=-1,s=-1;(t.match(_de)||[]).forEach(function(d,f){var h=parseInt(r[f+1],10);switch(d.toLowerCase().charAt(0)){case\"y\":n=h;break;case\"d\":i=h;break;case\"h\":o=h;break;case\"s\":s=h;break;case\"m\":o>=0?l=h:a=h;break}}),s>=0&&l==-1&&a>=0&&(l=a,a=-1);var u=(\"\"+(n>=0?n:new Date().getFullYear())).slice(-4)+\"-\"+(\"00\"+(a>=1?a:1)).slice(-2)+\"-\"+(\"00\"+(i>=1?i:1)).slice(-2);u.length==7&&(u=\"0\"+u),u.length==8&&(u=\"20\"+u);var c=(\"00\"+(o>=0?o:0)).slice(-2)+\":\"+(\"00\"+(l>=0?l:0)).slice(-2)+\":\"+(\"00\"+(s>=0?s:0)).slice(-2);return o==-1&&l==-1&&s==-1?u:n==-1&&a==-1&&i==-1?c:u+\"T\"+c}var yit=function(){var e={};e.version=\"1.2.0\";function t(){for(var w=0,D=new Array(256),A=0;A!=256;++A)w=A,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,w=w&1?-306674912^w>>>1:w>>>1,D[A]=w;return typeof Int32Array<\"u\"?new Int32Array(D):D}var r=t();function n(w){var D=0,A=0,_=0,I=typeof Int32Array<\"u\"?new Int32Array(4096):new Array(4096);for(_=0;_!=256;++_)I[_]=w[_];for(_=0;_!=256;++_)for(A=w[_],D=256+_;D<4096;D+=256)A=I[D]=A>>>8^w[A&255];var M=[];for(_=1;_!=16;++_)M[_-1]=typeof Int32Array<\"u\"?I.subarray(_*256,_*256+256):I.slice(_*256,_*256+256);return M}var a=n(r),i=a[0],o=a[1],l=a[2],s=a[3],u=a[4],c=a[5],d=a[6],f=a[7],h=a[8],p=a[9],v=a[10],g=a[11],y=a[12],b=a[13],x=a[14];function F(w,D){for(var A=D^-1,_=0,I=w.length;_<I;)A=A>>>8^r[(A^w.charCodeAt(_++))&255];return~A}function S(w,D){for(var A=D^-1,_=w.length-15,I=0;I<_;)A=x[w[I++]^A&255]^b[w[I++]^A>>8&255]^y[w[I++]^A>>16&255]^g[w[I++]^A>>>24]^v[w[I++]]^p[w[I++]]^h[w[I++]]^f[w[I++]]^d[w[I++]]^c[w[I++]]^u[w[I++]]^s[w[I++]]^l[w[I++]]^o[w[I++]]^i[w[I++]]^r[w[I++]];for(_+=15;I<_;)A=A>>>8^r[(A^w[I++])&255];return~A}function E(w,D){for(var A=D^-1,_=0,I=w.length,M=0,T=0;_<I;)M=w.charCodeAt(_++),M<128?A=A>>>8^r[(A^M)&255]:M<2048?(A=A>>>8^r[(A^(192|M>>6&31))&255],A=A>>>8^r[(A^(128|M&63))&255]):M>=55296&&M<57344?(M=(M&1023)+64,T=w.charCodeAt(_++)&1023,A=A>>>8^r[(A^(240|M>>8&7))&255],A=A>>>8^r[(A^(128|M>>2&63))&255],A=A>>>8^r[(A^(128|T>>6&15|(M&3)<<4))&255],A=A>>>8^r[(A^(128|T&63))&255]):(A=A>>>8^r[(A^(224|M>>12&15))&255],A=A>>>8^r[(A^(128|M>>6&63))&255],A=A>>>8^r[(A^(128|M&63))&255]);return~A}return e.table=r,e.bstr=F,e.buf=S,e.str=E,e}(),Kn=function(){var t={};t.version=\"1.2.1\";function r(te,pe){for(var he=te.split(\"/\"),se=pe.split(\"/\"),de=0,ge=0,Te=Math.min(he.length,se.length);de<Te;++de){if(ge=he[de].length-se[de].length)return ge;if(he[de]!=se[de])return he[de]<se[de]?-1:1}return he.length-se.length}function n(te){if(te.charAt(te.length-1)==\"/\")return te.slice(0,-1).indexOf(\"/\")===-1?te:n(te.slice(0,-1));var pe=te.lastIndexOf(\"/\");return pe===-1?te:te.slice(0,pe+1)}function a(te){if(te.charAt(te.length-1)==\"/\")return a(te.slice(0,-1));var pe=te.lastIndexOf(\"/\");return pe===-1?te:te.slice(pe+1)}function i(te,pe){typeof pe==\"string\"&&(pe=new Date(pe));var he=pe.getHours();he=he<<6|pe.getMinutes(),he=he<<5|pe.getSeconds()>>>1,te.write_shift(2,he);var se=pe.getFullYear()-1980;se=se<<4|pe.getMonth()+1,se=se<<5|pe.getDate(),te.write_shift(2,se)}function o(te){var pe=te.read_shift(2)&65535,he=te.read_shift(2)&65535,se=new Date,de=he&31;he>>>=5;var ge=he&15;he>>>=4,se.setMilliseconds(0),se.setFullYear(he+1980),se.setMonth(ge-1),se.setDate(de);var Te=pe&31;pe>>>=5;var We=pe&63;return pe>>>=6,se.setHours(pe),se.setMinutes(We),se.setSeconds(Te<<1),se}function l(te){El(te,0);for(var pe={},he=0;te.l<=te.length-4;){var se=te.read_shift(2),de=te.read_shift(2),ge=te.l+de,Te={};switch(se){case 21589:he=te.read_shift(1),he&1&&(Te.mtime=te.read_shift(4)),de>5&&(he&2&&(Te.atime=te.read_shift(4)),he&4&&(Te.ctime=te.read_shift(4))),Te.mtime&&(Te.mt=new Date(Te.mtime*1e3));break}te.l=ge,pe[se]=Te}return pe}var s;function u(){return s||(s={})}function c(te,pe){if(te[0]==80&&te[1]==75)return pt(te,pe);if((te[0]|32)==109&&(te[1]|32)==105)return Tt(te,pe);if(te.length<512)throw new Error(\"CFB file size \"+te.length+\" < 512\");var he=3,se=512,de=0,ge=0,Te=0,We=0,ke=0,Be=[],Oe=te.slice(0,512);El(Oe,0);var at=d(Oe);switch(he=at[0],he){case 3:se=512;break;case 4:se=4096;break;case 0:if(at[1]==0)return pt(te,pe);default:throw new Error(\"Major Version: Expected 3 or 4 saw \"+he)}se!==512&&(Oe=te.slice(0,se),El(Oe,28));var Le=te.slice(0,se);f(Oe,he);var Ye=Oe.read_shift(4,\"i\");if(he===3&&Ye!==0)throw new Error(\"# Directory Sectors: Expected 0 saw \"+Ye);Oe.l+=4,Te=Oe.read_shift(4,\"i\"),Oe.l+=4,Oe.chk(\"00100000\",\"Mini Stream Cutoff Size: \"),We=Oe.read_shift(4,\"i\"),de=Oe.read_shift(4,\"i\"),ke=Oe.read_shift(4,\"i\"),ge=Oe.read_shift(4,\"i\");for(var qe=-1,Ze=0;Ze<109&&(qe=Oe.read_shift(4,\"i\"),!(qe<0));++Ze)Be[Ze]=qe;var ft=h(te,se);g(ke,ge,ft,se,Be);var yt=b(ft,Te,Be,se);yt[Te].name=\"!Directory\",de>0&&We!==T&&(yt[We].name=\"!MiniFAT\"),yt[Be[0]].name=\"!FAT\",yt.fat_addrs=Be,yt.ssz=se;var zt={},vr=[],kt=[],Yt=[];x(Te,yt,ft,vr,de,zt,kt,We),p(kt,Yt,vr),vr.shift();var xr={FileIndex:kt,FullPaths:Yt};return pe&&pe.raw&&(xr.raw={header:Le,sectors:ft}),xr}function d(te){if(te[te.l]==80&&te[te.l+1]==75)return[0,0];te.chk(k,\"Header Signature: \"),te.l+=16;var pe=te.read_shift(2,\"u\");return[te.read_shift(2,\"u\"),pe]}function f(te,pe){var he=9;switch(te.l+=2,he=te.read_shift(2)){case 9:if(pe!=3)throw new Error(\"Sector Shift: Expected 9 saw \"+he);break;case 12:if(pe!=4)throw new Error(\"Sector Shift: Expected 12 saw \"+he);break;default:throw new Error(\"Sector Shift: Expected 9 or 12 saw \"+he)}te.chk(\"0600\",\"Mini Sector Shift: \"),te.chk(\"000000000000\",\"Reserved: \")}function h(te,pe){for(var he=Math.ceil(te.length/pe)-1,se=[],de=1;de<he;++de)se[de-1]=te.slice(de*pe,(de+1)*pe);return se[he-1]=te.slice(he*pe),se}function p(te,pe,he){for(var se=0,de=0,ge=0,Te=0,We=0,ke=he.length,Be=[],Oe=[];se<ke;++se)Be[se]=Oe[se]=se,pe[se]=he[se];for(;We<Oe.length;++We)se=Oe[We],de=te[se].L,ge=te[se].R,Te=te[se].C,Be[se]===se&&(de!==-1&&Be[de]!==de&&(Be[se]=Be[de]),ge!==-1&&Be[ge]!==ge&&(Be[se]=Be[ge])),Te!==-1&&(Be[Te]=se),de!==-1&&se!=Be[se]&&(Be[de]=Be[se],Oe.lastIndexOf(de)<We&&Oe.push(de)),ge!==-1&&se!=Be[se]&&(Be[ge]=Be[se],Oe.lastIndexOf(ge)<We&&Oe.push(ge));for(se=1;se<ke;++se)Be[se]===se&&(ge!==-1&&Be[ge]!==ge?Be[se]=Be[ge]:de!==-1&&Be[de]!==de&&(Be[se]=Be[de]));for(se=1;se<ke;++se)if(te[se].type!==0){if(We=se,We!=Be[We])do We=Be[We],pe[se]=pe[We]+\"/\"+pe[se];while(We!==0&&Be[We]!==-1&&We!=Be[We]);Be[se]=-1}for(pe[0]+=\"/\",se=1;se<ke;++se)te[se].type!==2&&(pe[se]+=\"/\")}function v(te,pe,he){for(var se=te.start,de=te.size,ge=[],Te=se;he&&de>0&&Te>=0;)ge.push(pe.slice(Te*M,Te*M+M)),de-=M,Te=Qh(he,Te*4);return ge.length===0?ct(0):zi(ge).slice(0,te.size)}function g(te,pe,he,se,de){var ge=T;if(te===T){if(pe!==0)throw new Error(\"DIFAT chain shorter than expected\")}else if(te!==-1){var Te=he[te],We=(se>>>2)-1;if(!Te)return;for(var ke=0;ke<We&&(ge=Qh(Te,ke*4))!==T;++ke)de.push(ge);g(Qh(Te,se-4),pe-1,he,se,de)}}function y(te,pe,he,se,de){var ge=[],Te=[];de||(de=[]);var We=se-1,ke=0,Be=0;for(ke=pe;ke>=0;){de[ke]=!0,ge[ge.length]=ke,Te.push(te[ke]);var Oe=he[Math.floor(ke*4/se)];if(Be=ke*4&We,se<4+Be)throw new Error(\"FAT boundary crossed: \"+ke+\" 4 \"+se);if(!te[Oe])break;ke=Qh(te[Oe],Be)}return{nodes:ge,data:wU([Te])}}function b(te,pe,he,se){var de=te.length,ge=[],Te=[],We=[],ke=[],Be=se-1,Oe=0,at=0,Le=0,Ye=0;for(Oe=0;Oe<de;++Oe)if(We=[],Le=Oe+pe,Le>=de&&(Le-=de),!Te[Le]){ke=[];var qe=[];for(at=Le;at>=0;){qe[at]=!0,Te[at]=!0,We[We.length]=at,ke.push(te[at]);var Ze=he[Math.floor(at*4/se)];if(Ye=at*4&Be,se<4+Ye)throw new Error(\"FAT boundary crossed: \"+at+\" 4 \"+se);if(!te[Ze]||(at=Qh(te[Ze],Ye),qe[at]))break}ge[Le]={nodes:We,data:wU([ke])}}return ge}function x(te,pe,he,se,de,ge,Te,We){for(var ke=0,Be=se.length?2:0,Oe=pe[te].data,at=0,Le=0,Ye;at<Oe.length;at+=128){var qe=Oe.slice(at,at+128);El(qe,64),Le=qe.read_shift(2),Ye=DB(qe,0,Le-Be),se.push(Ye);var Ze={name:Ye,type:qe.read_shift(1),color:qe.read_shift(1),L:qe.read_shift(4,\"i\"),R:qe.read_shift(4,\"i\"),C:qe.read_shift(4,\"i\"),clsid:qe.read_shift(16),state:qe.read_shift(4,\"i\"),start:0,size:0},ft=qe.read_shift(2)+qe.read_shift(2)+qe.read_shift(2)+qe.read_shift(2);ft!==0&&(Ze.ct=F(qe,qe.l-8));var yt=qe.read_shift(2)+qe.read_shift(2)+qe.read_shift(2)+qe.read_shift(2);yt!==0&&(Ze.mt=F(qe,qe.l-8)),Ze.start=qe.read_shift(4,\"i\"),Ze.size=qe.read_shift(4,\"i\"),Ze.size<0&&Ze.start<0&&(Ze.size=Ze.type=0,Ze.start=T,Ze.name=\"\"),Ze.type===5?(ke=Ze.start,de>0&&ke!==T&&(pe[ke].name=\"!StreamData\")):Ze.size>=4096?(Ze.storage=\"fat\",pe[Ze.start]===void 0&&(pe[Ze.start]=y(he,Ze.start,pe.fat_addrs,pe.ssz)),pe[Ze.start].name=Ze.name,Ze.content=pe[Ze.start].data.slice(0,Ze.size)):(Ze.storage=\"minifat\",Ze.size<0?Ze.size=0:ke!==T&&Ze.start!==T&&pe[ke]&&(Ze.content=v(Ze,pe[ke].data,(pe[We]||{}).data))),Ze.content&&El(Ze.content,0),ge[Ye]=Ze,Te.push(Ze)}}function F(te,pe){return new Date((Al(te,pe+4)/1e7*Math.pow(2,32)+Al(te,pe)/1e7-11644473600)*1e3)}function S(te,pe){return u(),c(s.readFileSync(te),pe)}function E(te,pe){var he=pe&&pe.type;switch(he||In&&Buffer.isBuffer(te)&&(he=\"buffer\"),he||\"base64\"){case\"file\":return S(te,pe);case\"base64\":return c(Qs(ud(te)),pe);case\"binary\":return c(Qs(te),pe)}return c(te,pe)}function w(te,pe){var he=pe||{},se=he.root||\"Root Entry\";if(te.FullPaths||(te.FullPaths=[]),te.FileIndex||(te.FileIndex=[]),te.FullPaths.length!==te.FileIndex.length)throw new Error(\"inconsistent CFB structure\");te.FullPaths.length===0&&(te.FullPaths[0]=se+\"/\",te.FileIndex[0]={name:se,type:5}),he.CLSID&&(te.FileIndex[0].clsid=he.CLSID),D(te)}function D(te){var pe=\"\u0001Sh33tJ5\";if(!Kn.find(te,\"/\"+pe)){var he=ct(4);he[0]=55,he[1]=he[3]=50,he[2]=54,te.FileIndex.push({name:pe,type:2,content:he,size:4,L:69,R:69,C:69}),te.FullPaths.push(te.FullPaths[0]+pe),A(te)}}function A(te,pe){w(te);for(var he=!1,se=!1,de=te.FullPaths.length-1;de>=0;--de){var ge=te.FileIndex[de];switch(ge.type){case 0:se?he=!0:(te.FileIndex.pop(),te.FullPaths.pop());break;case 1:case 2:case 5:se=!0,isNaN(ge.R*ge.L*ge.C)&&(he=!0),ge.R>-1&&ge.L>-1&&ge.R==ge.L&&(he=!0);break;default:he=!0;break}}if(!(!he&&!pe)){var Te=new Date(1987,1,19),We=0,ke=Object.create?Object.create(null):{},Be=[];for(de=0;de<te.FullPaths.length;++de)ke[te.FullPaths[de]]=!0,te.FileIndex[de].type!==0&&Be.push([te.FullPaths[de],te.FileIndex[de]]);for(de=0;de<Be.length;++de){var Oe=n(Be[de][0]);se=ke[Oe],se||(Be.push([Oe,{name:a(Oe).replace(\"/\",\"\"),type:1,clsid:P,ct:Te,mt:Te,content:null}]),ke[Oe]=!0)}for(Be.sort(function(Ye,qe){return r(Ye[0],qe[0])}),te.FullPaths=[],te.FileIndex=[],de=0;de<Be.length;++de)te.FullPaths[de]=Be[de][0],te.FileIndex[de]=Be[de][1];for(de=0;de<Be.length;++de){var at=te.FileIndex[de],Le=te.FullPaths[de];if(at.name=a(Le).replace(\"/\",\"\"),at.L=at.R=at.C=-(at.color=1),at.size=at.content?at.content.length:0,at.start=0,at.clsid=at.clsid||P,de===0)at.C=Be.length>1?1:-1,at.size=0,at.type=5;else if(Le.slice(-1)==\"/\"){for(We=de+1;We<Be.length&&n(te.FullPaths[We])!=Le;++We);for(at.C=We>=Be.length?-1:We,We=de+1;We<Be.length&&n(te.FullPaths[We])!=n(Le);++We);at.R=We>=Be.length?-1:We,at.type=1}else n(te.FullPaths[de+1]||\"\")==n(Le)&&(at.R=de+1),at.type=2}}}function _(te,pe){var he=pe||{};if(he.fileType==\"mad\")return jt(te,he);switch(A(te),he.fileType){case\"zip\":return ht(te,he)}var se=function(Ye){for(var qe=0,Ze=0,ft=0;ft<Ye.FileIndex.length;++ft){var yt=Ye.FileIndex[ft];if(yt.content){var zt=yt.content.length;zt>0&&(zt<4096?qe+=zt+63>>6:Ze+=zt+511>>9)}}for(var vr=Ye.FullPaths.length+3>>2,kt=qe+7>>3,Yt=qe+127>>7,xr=kt+Ze+vr+Yt,mn=xr+127>>7,Pn=mn<=109?0:Math.ceil((mn-109)/127);xr+mn+Pn+127>>7>mn;)Pn=++mn<=109?0:Math.ceil((mn-109)/127);var Tn=[1,Pn,mn,Yt,vr,Ze,qe,0];return Ye.FileIndex[0].size=qe<<6,Tn[7]=(Ye.FileIndex[0].start=Tn[0]+Tn[1]+Tn[2]+Tn[3]+Tn[4]+Tn[5])+(Tn[6]+7>>3),Tn}(te),de=ct(se[7]<<9),ge=0,Te=0;{for(ge=0;ge<8;++ge)de.write_shift(1,R[ge]);for(ge=0;ge<8;++ge)de.write_shift(2,0);for(de.write_shift(2,62),de.write_shift(2,3),de.write_shift(2,65534),de.write_shift(2,9),de.write_shift(2,6),ge=0;ge<3;++ge)de.write_shift(2,0);for(de.write_shift(4,0),de.write_shift(4,se[2]),de.write_shift(4,se[0]+se[1]+se[2]+se[3]-1),de.write_shift(4,0),de.write_shift(4,4096),de.write_shift(4,se[3]?se[0]+se[1]+se[2]-1:T),de.write_shift(4,se[3]),de.write_shift(-4,se[1]?se[0]-1:T),de.write_shift(4,se[1]),ge=0;ge<109;++ge)de.write_shift(-4,ge<se[2]?se[1]+ge:-1)}if(se[1])for(Te=0;Te<se[1];++Te){for(;ge<236+Te*127;++ge)de.write_shift(-4,ge<se[2]?se[1]+ge:-1);de.write_shift(-4,Te===se[1]-1?T:Te+1)}var We=function(Ye){for(Te+=Ye;ge<Te-1;++ge)de.write_shift(-4,ge+1);Ye&&(++ge,de.write_shift(-4,T))};for(Te=ge=0,Te+=se[1];ge<Te;++ge)de.write_shift(-4,B.DIFSECT);for(Te+=se[2];ge<Te;++ge)de.write_shift(-4,B.FATSECT);We(se[3]),We(se[4]);for(var ke=0,Be=0,Oe=te.FileIndex[0];ke<te.FileIndex.length;++ke)Oe=te.FileIndex[ke],Oe.content&&(Be=Oe.content.length,!(Be<4096)&&(Oe.start=Te,We(Be+511>>9)));for(We(se[6]+7>>3);de.l&511;)de.write_shift(-4,B.ENDOFCHAIN);for(Te=ge=0,ke=0;ke<te.FileIndex.length;++ke)Oe=te.FileIndex[ke],Oe.content&&(Be=Oe.content.length,!(!Be||Be>=4096)&&(Oe.start=Te,We(Be+63>>6)));for(;de.l&511;)de.write_shift(-4,B.ENDOFCHAIN);for(ge=0;ge<se[4]<<2;++ge){var at=te.FullPaths[ge];if(!at||at.length===0){for(ke=0;ke<17;++ke)de.write_shift(4,0);for(ke=0;ke<3;++ke)de.write_shift(4,-1);for(ke=0;ke<12;++ke)de.write_shift(4,0);continue}Oe=te.FileIndex[ge],ge===0&&(Oe.start=Oe.size?Oe.start-1:T);var Le=ge===0&&he.root||Oe.name;if(Be=2*(Le.length+1),de.write_shift(64,Le,\"utf16le\"),de.write_shift(2,Be),de.write_shift(1,Oe.type),de.write_shift(1,Oe.color),de.write_shift(-4,Oe.L),de.write_shift(-4,Oe.R),de.write_shift(-4,Oe.C),Oe.clsid)de.write_shift(16,Oe.clsid,\"hex\");else for(ke=0;ke<4;++ke)de.write_shift(4,0);de.write_shift(4,Oe.state||0),de.write_shift(4,0),de.write_shift(4,0),de.write_shift(4,0),de.write_shift(4,0),de.write_shift(4,Oe.start),de.write_shift(4,Oe.size),de.write_shift(4,0)}for(ge=1;ge<te.FileIndex.length;++ge)if(Oe=te.FileIndex[ge],Oe.size>=4096)if(de.l=Oe.start+1<<9,In&&Buffer.isBuffer(Oe.content))Oe.content.copy(de,de.l,0,Oe.size),de.l+=Oe.size+511&-512;else{for(ke=0;ke<Oe.size;++ke)de.write_shift(1,Oe.content[ke]);for(;ke&511;++ke)de.write_shift(1,0)}for(ge=1;ge<te.FileIndex.length;++ge)if(Oe=te.FileIndex[ge],Oe.size>0&&Oe.size<4096)if(In&&Buffer.isBuffer(Oe.content))Oe.content.copy(de,de.l,0,Oe.size),de.l+=Oe.size+63&-64;else{for(ke=0;ke<Oe.size;++ke)de.write_shift(1,Oe.content[ke]);for(;ke&63;++ke)de.write_shift(1,0)}if(In)de.l=de.length;else for(;de.l<de.length;)de.write_shift(1,0);return de}function I(te,pe){var he=te.FullPaths.map(function(ke){return ke.toUpperCase()}),se=he.map(function(ke){var Be=ke.split(\"/\");return Be[Be.length-(ke.slice(-1)==\"/\"?2:1)]}),de=!1;pe.charCodeAt(0)===47?(de=!0,pe=he[0].slice(0,-1)+pe):de=pe.indexOf(\"/\")!==-1;var ge=pe.toUpperCase(),Te=de===!0?he.indexOf(ge):se.indexOf(ge);if(Te!==-1)return te.FileIndex[Te];var We=!ge.match(SF);for(ge=ge.replace(Qy,\"\"),We&&(ge=ge.replace(SF,\"!\")),Te=0;Te<he.length;++Te)if((We?he[Te].replace(SF,\"!\"):he[Te]).replace(Qy,\"\")==ge||(We?se[Te].replace(SF,\"!\"):se[Te]).replace(Qy,\"\")==ge)return te.FileIndex[Te];return null}var M=64,T=-2,k=\"d0cf11e0a1b11ae1\",R=[208,207,17,224,161,177,26,225],P=\"00000000000000000000000000000000\",B={MAXREGSECT:-6,DIFSECT:-4,FATSECT:-3,ENDOFCHAIN:T,FREESECT:-1,HEADER_SIGNATURE:k,HEADER_MINOR_VERSION:\"3e00\",MAXREGSID:-6,NOSTREAM:-1,HEADER_CLSID:P,EntryTypes:[\"unknown\",\"storage\",\"stream\",\"lockbytes\",\"property\",\"root\"]};function N(te,pe,he){u();var se=_(te,he);s.writeFileSync(pe,se)}function O(te){for(var pe=new Array(te.length),he=0;he<te.length;++he)pe[he]=String.fromCharCode(te[he]);return pe.join(\"\")}function z(te,pe){var he=_(te,pe);switch(pe&&pe.type||\"buffer\"){case\"file\":return u(),s.writeFileSync(pe.filename,he),he;case\"binary\":return typeof he==\"string\"?he:O(he);case\"base64\":return m2(typeof he==\"string\"?he:O(he));case\"buffer\":if(In)return Buffer.isBuffer(he)?he:wd(he);case\"array\":return typeof he==\"string\"?Qs(he):he}return he}var W;function L(te){try{var pe=te.InflateRaw,he=new pe;if(he._processChunk(new Uint8Array([3,0]),he._finishFlushFlag),he.bytesRead)W=te;else throw new Error(\"zlib does not expose bytesRead\")}catch(se){console.error(\"cannot use native zlib: \"+(se.message||se))}}function j(te,pe){if(!W)return $e(te,pe);var he=W.InflateRaw,se=new he,de=se._processChunk(te.slice(te.l),se._finishFlushFlag);return te.l+=se.bytesRead,de}function H(te){return W?W.deflateRawSync(te):dt(te)}var V=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],U=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],Q=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577];function K(te){var pe=(te<<1|te<<11)&139536|(te<<5|te<<15)&558144;return(pe>>16|pe>>8|pe)&255}for(var Y=typeof Uint8Array<\"u\",ee=Y?new Uint8Array(256):[],J=0;J<256;++J)ee[J]=K(J);function X(te,pe){var he=ee[te&255];return pe<=8?he>>>8-pe:(he=he<<8|ee[te>>8&255],pe<=16?he>>>16-pe:(he=he<<8|ee[te>>16&255],he>>>24-pe))}function ce(te,pe){var he=pe&7,se=pe>>>3;return(te[se]|(he<=6?0:te[se+1]<<8))>>>he&3}function oe(te,pe){var he=pe&7,se=pe>>>3;return(te[se]|(he<=5?0:te[se+1]<<8))>>>he&7}function ue(te,pe){var he=pe&7,se=pe>>>3;return(te[se]|(he<=4?0:te[se+1]<<8))>>>he&15}function ie(te,pe){var he=pe&7,se=pe>>>3;return(te[se]|(he<=3?0:te[se+1]<<8))>>>he&31}function fe(te,pe){var he=pe&7,se=pe>>>3;return(te[se]|(he<=1?0:te[se+1]<<8))>>>he&127}function xe(te,pe,he){var se=pe&7,de=pe>>>3,ge=(1<<he)-1,Te=te[de]>>>se;return he<8-se||(Te|=te[de+1]<<8-se,he<16-se)||(Te|=te[de+2]<<16-se,he<24-se)||(Te|=te[de+3]<<24-se),Te&ge}function Ee(te,pe,he){var se=pe&7,de=pe>>>3;return se<=5?te[de]|=(he&7)<<se:(te[de]|=he<<se&255,te[de+1]=(he&7)>>8-se),pe+3}function De(te,pe,he){var se=pe&7,de=pe>>>3;return he=(he&1)<<se,te[de]|=he,pe+1}function ye(te,pe,he){var se=pe&7,de=pe>>>3;return he<<=se,te[de]|=he&255,he>>>=8,te[de+1]=he,pe+8}function we(te,pe,he){var se=pe&7,de=pe>>>3;return he<<=se,te[de]|=he&255,he>>>=8,te[de+1]=he&255,te[de+2]=he>>>8,pe+16}function Fe(te,pe){var he=te.length,se=2*he>pe?2*he:pe+5,de=0;if(he>=pe)return te;if(In){var ge=uU(se);if(te.copy)te.copy(ge);else for(;de<te.length;++de)ge[de]=te[de];return ge}else if(Y){var Te=new Uint8Array(se);if(Te.set)Te.set(te);else for(;de<he;++de)Te[de]=te[de];return Te}return te.length=se,te}function me(te){for(var pe=new Array(te),he=0;he<te;++he)pe[he]=0;return pe}function Me(te,pe,he){var se=1,de=0,ge=0,Te=0,We=0,ke=te.length,Be=Y?new Uint16Array(32):me(32);for(ge=0;ge<32;++ge)Be[ge]=0;for(ge=ke;ge<he;++ge)te[ge]=0;ke=te.length;var Oe=Y?new Uint16Array(ke):me(ke);for(ge=0;ge<ke;++ge)Be[de=te[ge]]++,se<de&&(se=de),Oe[ge]=0;for(Be[0]=0,ge=1;ge<=se;++ge)Be[ge+16]=We=We+Be[ge-1]<<1;for(ge=0;ge<ke;++ge)We=te[ge],We!=0&&(Oe[ge]=Be[We+16]++);var at=0;for(ge=0;ge<ke;++ge)if(at=te[ge],at!=0)for(We=X(Oe[ge],se)>>se-at,Te=(1<<se+4-at)-1;Te>=0;--Te)pe[We|Te<<at]=at&15|ge<<4;return se}var je=Y?new Uint16Array(512):me(512),lt=Y?new Uint16Array(32):me(32);if(!Y){for(var tt=0;tt<512;++tt)je[tt]=0;for(tt=0;tt<32;++tt)lt[tt]=0}(function(){for(var te=[],pe=0;pe<32;pe++)te.push(5);Me(te,lt,32);var he=[];for(pe=0;pe<=143;pe++)he.push(8);for(;pe<=255;pe++)he.push(9);for(;pe<=279;pe++)he.push(7);for(;pe<=287;pe++)he.push(8);Me(he,je,288)})();var rt=function(){for(var pe=Y?new Uint8Array(32768):[],he=0,se=0;he<Q.length-1;++he)for(;se<Q[he+1];++se)pe[se]=he;for(;se<32768;++se)pe[se]=29;var de=Y?new Uint8Array(259):[];for(he=0,se=0;he<U.length-1;++he)for(;se<U[he+1];++se)de[se]=he;function ge(We,ke){for(var Be=0;Be<We.length;){var Oe=Math.min(65535,We.length-Be),at=Be+Oe==We.length;for(ke.write_shift(1,+at),ke.write_shift(2,Oe),ke.write_shift(2,~Oe&65535);Oe-- >0;)ke[ke.l++]=We[Be++]}return ke.l}function Te(We,ke){for(var Be=0,Oe=0,at=Y?new Uint16Array(32768):[];Oe<We.length;){var Le=Math.min(65535,We.length-Oe);if(Le<10){for(Be=Ee(ke,Be,+(Oe+Le==We.length)),Be&7&&(Be+=8-(Be&7)),ke.l=Be/8|0,ke.write_shift(2,Le),ke.write_shift(2,~Le&65535);Le-- >0;)ke[ke.l++]=We[Oe++];Be=ke.l*8;continue}Be=Ee(ke,Be,+(Oe+Le==We.length)+2);for(var Ye=0;Le-- >0;){var qe=We[Oe];Ye=(Ye<<5^qe)&32767;var Ze=-1,ft=0;if((Ze=at[Ye])&&(Ze|=Oe&-32768,Ze>Oe&&(Ze-=32768),Ze<Oe))for(;We[Ze+ft]==We[Oe+ft]&&ft<250;)++ft;if(ft>2){qe=de[ft],qe<=22?Be=ye(ke,Be,ee[qe+1]>>1)-1:(ye(ke,Be,3),Be+=5,ye(ke,Be,ee[qe-23]>>5),Be+=3);var yt=qe<8?0:qe-4>>2;yt>0&&(we(ke,Be,ft-U[qe]),Be+=yt),qe=pe[Oe-Ze],Be=ye(ke,Be,ee[qe]>>3),Be-=3;var zt=qe<4?0:qe-2>>1;zt>0&&(we(ke,Be,Oe-Ze-Q[qe]),Be+=zt);for(var vr=0;vr<ft;++vr)at[Ye]=Oe&32767,Ye=(Ye<<5^We[Oe])&32767,++Oe;Le-=ft-1}else qe<=143?qe=qe+48:Be=De(ke,Be,1),Be=ye(ke,Be,ee[qe]),at[Ye]=Oe&32767,++Oe}Be=ye(ke,Be,0)-1}return ke.l=(Be+7)/8|0,ke.l}return function(ke,Be){return ke.length<8?ge(ke,Be):Te(ke,Be)}}();function dt(te){var pe=ct(50+Math.floor(te.length*1.1)),he=rt(te,pe);return pe.slice(0,he)}var Ve=Y?new Uint16Array(32768):me(32768),Ie=Y?new Uint16Array(32768):me(32768),Je=Y?new Uint16Array(128):me(128),Pe=1,Ge=1;function Ae(te,pe){var he=ie(te,pe)+257;pe+=5;var se=ie(te,pe)+1;pe+=5;var de=ue(te,pe)+4;pe+=4;for(var ge=0,Te=Y?new Uint8Array(19):me(19),We=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],ke=1,Be=Y?new Uint8Array(8):me(8),Oe=Y?new Uint8Array(8):me(8),at=Te.length,Le=0;Le<de;++Le)Te[V[Le]]=ge=oe(te,pe),ke<ge&&(ke=ge),Be[ge]++,pe+=3;var Ye=0;for(Be[0]=0,Le=1;Le<=ke;++Le)Oe[Le]=Ye=Ye+Be[Le-1]<<1;for(Le=0;Le<at;++Le)(Ye=Te[Le])!=0&&(We[Le]=Oe[Ye]++);var qe=0;for(Le=0;Le<at;++Le)if(qe=Te[Le],qe!=0){Ye=ee[We[Le]]>>8-qe;for(var Ze=(1<<7-qe)-1;Ze>=0;--Ze)Je[Ye|Ze<<qe]=qe&7|Le<<3}var ft=[];for(ke=1;ft.length<he+se;)switch(Ye=Je[fe(te,pe)],pe+=Ye&7,Ye>>>=3){case 16:for(ge=3+ce(te,pe),pe+=2,Ye=ft[ft.length-1];ge-- >0;)ft.push(Ye);break;case 17:for(ge=3+oe(te,pe),pe+=3;ge-- >0;)ft.push(0);break;case 18:for(ge=11+fe(te,pe),pe+=7;ge-- >0;)ft.push(0);break;default:ft.push(Ye),ke<Ye&&(ke=Ye);break}var yt=ft.slice(0,he),zt=ft.slice(he);for(Le=he;Le<286;++Le)yt[Le]=0;for(Le=se;Le<30;++Le)zt[Le]=0;return Pe=Me(yt,Ve,286),Ge=Me(zt,Ie,30),pe}function _e(te,pe){if(te[0]==3&&!(te[1]&3))return[Qp(pe),2];for(var he=0,se=0,de=uU(pe||1<<18),ge=0,Te=de.length>>>0,We=0,ke=0;!(se&1);){if(se=oe(te,he),he+=3,se>>>1)se>>1==1?(We=9,ke=5):(he=Ae(te,he),We=Pe,ke=Ge);else{he&7&&(he+=8-(he&7));var Be=te[he>>>3]|te[(he>>>3)+1]<<8;if(he+=32,Be>0)for(!pe&&Te<ge+Be&&(de=Fe(de,ge+Be),Te=de.length);Be-- >0;)de[ge++]=te[he>>>3],he+=8;continue}for(;;){!pe&&Te<ge+32767&&(de=Fe(de,ge+32767),Te=de.length);var Oe=xe(te,he,We),at=se>>>1==1?je[Oe]:Ve[Oe];if(he+=at&15,at>>>=4,!(at>>>8&255))de[ge++]=at;else{if(at==256)break;at-=257;var Le=at<8?0:at-4>>2;Le>5&&(Le=0);var Ye=ge+U[at];Le>0&&(Ye+=xe(te,he,Le),he+=Le),Oe=xe(te,he,ke),at=se>>>1==1?lt[Oe]:Ie[Oe],he+=at&15,at>>>=4;var qe=at<4?0:at-2>>1,Ze=Q[at];for(qe>0&&(Ze+=xe(te,he,qe),he+=qe),!pe&&Te<Ye&&(de=Fe(de,Ye+100),Te=de.length);ge<Ye;)de[ge]=de[ge-Ze],++ge}}}return pe?[de,he+7>>>3]:[de.slice(0,ge),he+7>>>3]}function $e(te,pe){var he=te.slice(te.l||0),se=_e(he,pe);return te.l+=se[1],se[0]}function Ke(te,pe){if(te)typeof console<\"u\"&&console.error(pe);else throw new Error(pe)}function pt(te,pe){var he=te;El(he,0);var se=[],de=[],ge={FileIndex:se,FullPaths:de};w(ge,{root:pe.root});for(var Te=he.length-4;(he[Te]!=80||he[Te+1]!=75||he[Te+2]!=5||he[Te+3]!=6)&&Te>=0;)--Te;he.l=Te+4,he.l+=4;var We=he.read_shift(2);he.l+=6;var ke=he.read_shift(4);for(he.l=ke,Te=0;Te<We;++Te){he.l+=20;var Be=he.read_shift(4),Oe=he.read_shift(4),at=he.read_shift(2),Le=he.read_shift(2),Ye=he.read_shift(2);he.l+=8;var qe=he.read_shift(4),Ze=l(he.slice(he.l+at,he.l+at+Le));he.l+=at+Le+Ye;var ft=he.l;he.l=qe+4,_t(he,Be,Oe,ge,Ze),he.l=ft}return ge}function _t(te,pe,he,se,de){te.l+=2;var ge=te.read_shift(2),Te=te.read_shift(2),We=o(te);if(ge&8257)throw new Error(\"Unsupported ZIP encryption\");for(var ke=te.read_shift(4),Be=te.read_shift(4),Oe=te.read_shift(4),at=te.read_shift(2),Le=te.read_shift(2),Ye=\"\",qe=0;qe<at;++qe)Ye+=String.fromCharCode(te[te.l++]);if(Le){var Ze=l(te.slice(te.l,te.l+Le));(Ze[21589]||{}).mt&&(We=Ze[21589].mt),((de||{})[21589]||{}).mt&&(We=de[21589].mt)}te.l+=Le;var ft=te.slice(te.l,te.l+Be);switch(Te){case 8:ft=j(te,Oe);break;case 0:break;default:throw new Error(\"Unsupported ZIP Compression method \"+Te)}var yt=!1;ge&8&&(ke=te.read_shift(4),ke==134695760&&(ke=te.read_shift(4),yt=!0),Be=te.read_shift(4),Oe=te.read_shift(4)),Be!=pe&&Ke(yt,\"Bad compressed size: \"+pe+\" != \"+Be),Oe!=he&&Ke(yt,\"Bad uncompressed size: \"+he+\" != \"+Oe),mt(se,Ye,ft,{unsafe:!0,mt:We})}function ht(te,pe){var he=pe||{},se=[],de=[],ge=ct(1),Te=he.compression?8:0,We=0,ke=0,Be=0,Oe=0,at=0,Le=te.FullPaths[0],Ye=Le,qe=te.FileIndex[0],Ze=[],ft=0;for(ke=1;ke<te.FullPaths.length;++ke)if(Ye=te.FullPaths[ke].slice(Le.length),qe=te.FileIndex[ke],!(!qe.size||!qe.content||Ye==\"\u0001Sh33tJ5\")){var yt=Oe,zt=ct(Ye.length);for(Be=0;Be<Ye.length;++Be)zt.write_shift(1,Ye.charCodeAt(Be)&127);zt=zt.slice(0,zt.l),Ze[at]=yit.buf(qe.content,0);var vr=qe.content;Te==8&&(vr=H(vr)),ge=ct(30),ge.write_shift(4,67324752),ge.write_shift(2,20),ge.write_shift(2,We),ge.write_shift(2,Te),qe.mt?i(ge,qe.mt):ge.write_shift(4,0),ge.write_shift(-4,Ze[at]),ge.write_shift(4,vr.length),ge.write_shift(4,qe.content.length),ge.write_shift(2,zt.length),ge.write_shift(2,0),Oe+=ge.length,se.push(ge),Oe+=zt.length,se.push(zt),Oe+=vr.length,se.push(vr),ge=ct(46),ge.write_shift(4,33639248),ge.write_shift(2,0),ge.write_shift(2,20),ge.write_shift(2,We),ge.write_shift(2,Te),ge.write_shift(4,0),ge.write_shift(-4,Ze[at]),ge.write_shift(4,vr.length),ge.write_shift(4,qe.content.length),ge.write_shift(2,zt.length),ge.write_shift(2,0),ge.write_shift(2,0),ge.write_shift(2,0),ge.write_shift(2,0),ge.write_shift(4,0),ge.write_shift(4,yt),ft+=ge.l,de.push(ge),ft+=zt.length,de.push(zt),++at}return ge=ct(22),ge.write_shift(4,101010256),ge.write_shift(2,0),ge.write_shift(2,0),ge.write_shift(2,at),ge.write_shift(2,at),ge.write_shift(4,ft),ge.write_shift(4,Oe),ge.write_shift(2,0),zi([zi(se),zi(de),ge])}var gt={htm:\"text/html\",xml:\"text/xml\",gif:\"image/gif\",jpg:\"image/jpeg\",png:\"image/png\",mso:\"application/x-mso\",thmx:\"application/vnd.ms-officetheme\",sh33tj5:\"application/octet-stream\"};function Et(te,pe){if(te.ctype)return te.ctype;var he=te.name||\"\",se=he.match(/\\.([^\\.]+)$/);return se&&gt[se[1]]||pe&&(se=(he=pe).match(/[\\.\\\\]([^\\.\\\\])+$/),se&&gt[se[1]])?gt[se[1]]:\"application/octet-stream\"}function xt(te){for(var pe=m2(te),he=[],se=0;se<pe.length;se+=76)he.push(pe.slice(se,se+76));return he.join(`\\r\n`)+`\\r\n`}function Dt(te){var pe=te.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF=]/g,function(Be){var Oe=Be.charCodeAt(0).toString(16).toUpperCase();return\"=\"+(Oe.length==1?\"0\"+Oe:Oe)});pe=pe.replace(/ $/mg,\"=20\").replace(/\\t$/mg,\"=09\"),pe.charAt(0)==`\n`&&(pe=\"=0D\"+pe.slice(1)),pe=pe.replace(/\\r(?!\\n)/mg,\"=0D\").replace(/\\n\\n/mg,`\n=0A`).replace(/([^\\r\\n])\\n/mg,\"$1=0A\");for(var he=[],se=pe.split(`\\r\n`),de=0;de<se.length;++de){var ge=se[de];if(ge.length==0){he.push(\"\");continue}for(var Te=0;Te<ge.length;){var We=76,ke=ge.slice(Te,Te+We);ke.charAt(We-1)==\"=\"?We--:ke.charAt(We-2)==\"=\"?We-=2:ke.charAt(We-3)==\"=\"&&(We-=3),ke=ge.slice(Te,Te+We),Te+=We,Te<ge.length&&(ke+=\"=\"),he.push(ke)}}return he.join(`\\r\n`)}function ur(te){for(var pe=[],he=0;he<te.length;++he){for(var se=te[he];he<=te.length&&se.charAt(se.length-1)==\"=\";)se=se.slice(0,se.length-1)+te[++he];pe.push(se)}for(var de=0;de<pe.length;++de)pe[de]=pe[de].replace(/[=][0-9A-Fa-f]{2}/g,function(ge){return String.fromCharCode(parseInt(ge.slice(1),16))});return Qs(pe.join(`\\r\n`))}function mr(te,pe,he){for(var se=\"\",de=\"\",ge=\"\",Te,We=0;We<10;++We){var ke=pe[We];if(!ke||ke.match(/^\\s*$/))break;var Be=ke.match(/^(.*?):\\s*([^\\s].*)$/);if(Be)switch(Be[1].toLowerCase()){case\"content-location\":se=Be[2].trim();break;case\"content-type\":ge=Be[2].trim();break;case\"content-transfer-encoding\":de=Be[2].trim();break}}switch(++We,de.toLowerCase()){case\"base64\":Te=Qs(ud(pe.slice(We).join(\"\")));break;case\"quoted-printable\":Te=ur(pe.slice(We));break;default:throw new Error(\"Unsupported Content-Transfer-Encoding \"+de)}var Oe=mt(te,se.slice(he.length),Te,{unsafe:!0});ge&&(Oe.ctype=ge)}function Tt(te,pe){if(O(te.slice(0,13)).toLowerCase()!=\"mime-version:\")throw new Error(\"Unsupported MAD header\");var he=pe&&pe.root||\"\",se=(In&&Buffer.isBuffer(te)?te.toString(\"binary\"):O(te)).split(`\\r\n`),de=0,ge=\"\";for(de=0;de<se.length;++de)if(ge=se[de],!!/^Content-Location:/i.test(ge)&&(ge=ge.slice(ge.indexOf(\"file\")),he||(he=ge.slice(0,ge.lastIndexOf(\"/\")+1)),ge.slice(0,he.length)!=he))for(;he.length>0&&(he=he.slice(0,he.length-1),he=he.slice(0,he.lastIndexOf(\"/\")+1),ge.slice(0,he.length)!=he););var Te=(se[1]||\"\").match(/boundary=\"(.*?)\"/);if(!Te)throw new Error(\"MAD cannot find boundary\");var We=\"--\"+(Te[1]||\"\"),ke=[],Be=[],Oe={FileIndex:ke,FullPaths:Be};w(Oe);var at,Le=0;for(de=0;de<se.length;++de){var Ye=se[de];Ye!==We&&Ye!==We+\"--\"||(Le++&&mr(Oe,se.slice(at,de),he),at=de)}return Oe}function jt(te,pe){var he=pe||{},se=he.boundary||\"SheetJS\";se=\"------=\"+se;for(var de=[\"MIME-Version: 1.0\",'Content-Type: multipart/related; boundary=\"'+se.slice(2)+'\"',\"\",\"\",\"\"],ge=te.FullPaths[0],Te=ge,We=te.FileIndex[0],ke=1;ke<te.FullPaths.length;++ke)if(Te=te.FullPaths[ke].slice(ge.length),We=te.FileIndex[ke],!(!We.size||!We.content||Te==\"\u0001Sh33tJ5\")){Te=Te.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g,function(ft){return\"_x\"+ft.charCodeAt(0).toString(16)+\"_\"}).replace(/[\\u0080-\\uFFFF]/g,function(ft){return\"_u\"+ft.charCodeAt(0).toString(16)+\"_\"});for(var Be=We.content,Oe=In&&Buffer.isBuffer(Be)?Be.toString(\"binary\"):O(Be),at=0,Le=Math.min(1024,Oe.length),Ye=0,qe=0;qe<=Le;++qe)(Ye=Oe.charCodeAt(qe))>=32&&Ye<128&&++at;var Ze=at>=Le*4/5;de.push(se),de.push(\"Content-Location: \"+(he.root||\"file:///C:/SheetJS/\")+Te),de.push(\"Content-Transfer-Encoding: \"+(Ze?\"quoted-printable\":\"base64\")),de.push(\"Content-Type: \"+Et(We,Te)),de.push(\"\"),de.push(Ze?Dt(Oe):xt(Oe))}return de.push(se+`--\\r\n`),de.join(`\\r\n`)}function Lt(te){var pe={};return w(pe,te),pe}function mt(te,pe,he,se){var de=se&&se.unsafe;de||w(te);var ge=!de&&Kn.find(te,pe);if(!ge){var Te=te.FullPaths[0];pe.slice(0,Te.length)==Te?Te=pe:(Te.slice(-1)!=\"/\"&&(Te+=\"/\"),Te=(Te+pe).replace(\"//\",\"/\")),ge={name:a(pe),type:2},te.FileIndex.push(ge),te.FullPaths.push(Te),de||Kn.utils.cfb_gc(te)}return ge.content=he,ge.size=he?he.length:0,se&&(se.CLSID&&(ge.clsid=se.CLSID),se.mt&&(ge.mt=se.mt),se.ct&&(ge.ct=se.ct)),ge}function it(te,pe){w(te);var he=Kn.find(te,pe);if(he){for(var se=0;se<te.FileIndex.length;++se)if(te.FileIndex[se]==he)return te.FileIndex.splice(se,1),te.FullPaths.splice(se,1),!0}return!1}function st(te,pe,he){w(te);var se=Kn.find(te,pe);if(se){for(var de=0;de<te.FileIndex.length;++de)if(te.FileIndex[de]==se)return te.FileIndex[de].name=a(he),te.FullPaths[de]=he,!0}return!1}function Ct(te){A(te,!0)}return t.find=I,t.read=E,t.parse=c,t.write=z,t.writeFile=N,t.utils={cfb_new:Lt,cfb_add:mt,cfb_del:it,cfb_mov:st,cfb_gc:Ct,ReadShift:tb,CheckField:Ude,prep_blob:El,bconcat:zi,use_zlib:L,_deflateRaw:dt,_inflateRaw:$e,consts:B},t}();function bit(e){return typeof e==\"string\"?DD(e):Array.isArray(e)?Gat(e):e}function Wx(e,t,r){if(typeof Deno<\"u\"){if(r&&typeof t==\"string\")switch(r){case\"utf8\":t=new TextEncoder(r).encode(t);break;case\"binary\":t=DD(t);break;default:throw new Error(\"Unsupported encoding \"+r)}return Deno.writeFileSync(e,t)}var n=r==\"utf8\"?g2(t):t;if(typeof IE_SaveFile<\"u\")return IE_SaveFile(n,e);if(typeof Blob<\"u\"){var a=new Blob([bit(n)],{type:\"application/octet-stream\"});if(typeof navigator<\"u\"&&navigator.msSaveBlob)return navigator.msSaveBlob(a,e);if(typeof saveAs<\"u\")return saveAs(a,e);if(typeof URL<\"u\"&&typeof document<\"u\"&&document.createElement&&URL.createObjectURL){var i=URL.createObjectURL(a);if(typeof chrome==\"object\"&&typeof(chrome.downloads||{}).download==\"function\")return URL.revokeObjectURL&&typeof setTimeout<\"u\"&&setTimeout(function(){URL.revokeObjectURL(i)},6e4),chrome.downloads.download({url:i,filename:e,saveAs:!0});var o=document.createElement(\"a\");if(o.download!=null)return o.download=e,o.href=i,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL&&typeof setTimeout<\"u\"&&setTimeout(function(){URL.revokeObjectURL(i)},6e4),i}}if(typeof $<\"u\"&&typeof File<\"u\"&&typeof Folder<\"u\")try{var l=File(e);return l.open(\"w\"),l.encoding=\"binary\",Array.isArray(t)&&(t=Vx(t)),l.write(t),l.close(),t}catch(s){if(!s.message||!s.message.match(/onstruct/))throw s}throw new Error(\"cannot save file \"+e)}function Ki(e){for(var t=Object.keys(e),r=[],n=0;n<t.length;++n)Object.prototype.hasOwnProperty.call(e,t[n])&&r.push(t[n]);return r}function gU(e,t){for(var r=[],n=Ki(e),a=0;a!==n.length;++a)r[e[n[a]][t]]==null&&(r[e[n[a]][t]]=n[a]);return r}function FB(e){for(var t=[],r=Ki(e),n=0;n!==r.length;++n)t[e[r[n]]]=r[n];return t}function TD(e){for(var t=[],r=Ki(e),n=0;n!==r.length;++n)t[e[r[n]]]=parseInt(r[n],10);return t}function xit(e){for(var t=[],r=Ki(e),n=0;n!==r.length;++n)t[e[r[n]]]==null&&(t[e[r[n]]]=[]),t[e[r[n]]].push(r[n]);return t}var d3=new Date(1899,11,30,0,0,0);function vl(e,t){var r=e.getTime(),n=d3.getTime()+(e.getTimezoneOffset()-d3.getTimezoneOffset())*6e4;return(r-n)/(24*60*60*1e3)}var Tde=new Date,Cit=d3.getTime()+(Tde.getTimezoneOffset()-d3.getTimezoneOffset())*6e4,yU=Tde.getTimezoneOffset();function Ide(e){var t=new Date;return t.setTime(e*24*60*60*1e3+Cit),t.getTimezoneOffset()!==yU&&t.setTime(t.getTime()+(t.getTimezoneOffset()-yU)*6e4),t}var bU=new Date(\"2017-02-19T19:06:09.000Z\"),kde=isNaN(bU.getFullYear())?new Date(\"2/19/17\"):bU,Fit=kde.getFullYear()==2017;function zo(e,t){var r=new Date(e);if(Fit)return t>0?r.setTime(r.getTime()+r.getTimezoneOffset()*60*1e3):t<0&&r.setTime(r.getTime()-r.getTimezoneOffset()*60*1e3),r;if(e instanceof Date)return e;if(kde.getFullYear()==1917&&!isNaN(r.getFullYear())){var n=r.getFullYear();return e.indexOf(\"\"+n)>-1||r.setFullYear(r.getFullYear()+100),r}var a=e.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"],i=new Date(+a[0],+a[1]-1,+a[2],+a[3]||0,+a[4]||0,+a[5]||0);return e.indexOf(\"Z\")>-1&&(i=new Date(i.getTime()-i.getTimezoneOffset()*60*1e3)),i}function ID(e,t){if(In&&Buffer.isBuffer(e))return e.toString(\"binary\");if(typeof TextDecoder<\"u\")try{var r={\"€\":\"€\",\"\":\"‚\",ƒ:\"ƒ\",\"„\":\"„\",\"…\":\"…\",\"†\":\"†\",\"‡\":\"‡\",\"ˆ\":\"ˆ\",\"‰\":\"‰\",Š:\"Š\",\"\":\"‹\",Œ:\"Œ\",Ž:\"Ž\",\"\":\"‘\",\"\":\"’\",\"“\":\"“\",\"”\":\"”\",\"•\":\"•\",\"\":\"–\",\"—\":\"—\",\"˜\":\"˜\",\"™\":\"™\",š:\"š\",\"\":\"›\",œ:\"œ\",ž:\"ž\",Ÿ:\"Ÿ\"};return Array.isArray(e)&&(e=new Uint8Array(e)),new TextDecoder(\"latin1\").decode(e).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g,function(i){return r[i]||i})}catch{}for(var n=[],a=0;a!=e.length;++a)n.push(String.fromCharCode(e[a]));return n.join(\"\")}function gl(e){if(typeof JSON<\"u\"&&!Array.isArray(e))return JSON.parse(JSON.stringify(e));if(typeof e!=\"object\"||e==null)return e;if(e instanceof Date)return new Date(e.getTime());var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=gl(e[r]));return t}function Da(e,t){for(var r=\"\";r.length<t;)r+=e;return r}function qc(e){var t=Number(e);if(!isNaN(t))return isFinite(t)?t:NaN;if(!/\\d/.test(e))return t;var r=1,n=e.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g,function(){return r*=100,\"\"});return!isNaN(t=Number(n))||(n=n.replace(/[(](.*)[)]/,function(a,i){return r=-r,i}),!isNaN(t=Number(n)))?t/r:t}var Sit=[\"january\",\"february\",\"march\",\"april\",\"may\",\"june\",\"july\",\"august\",\"september\",\"october\",\"november\",\"december\"];function v2(e){var t=new Date(e),r=new Date(NaN),n=t.getYear(),a=t.getMonth(),i=t.getDate();if(isNaN(i))return r;var o=e.toLowerCase();if(o.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)){if(o=o.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\"),o.length>3&&Sit.indexOf(o)==-1)return r}else if(o.match(/[a-z]/))return r;return n<0||n>8099?r:(a>0||i>1)&&n!=101?t:e.match(/[^-0-9:,\\/\\\\]/)?r:t}function sn(e,t,r){if(e.FullPaths){if(typeof r==\"string\"){var n;return In?n=wd(r):n=Uat(r),Kn.utils.cfb_add(e,t,n)}Kn.utils.cfb_add(e,t,r)}else e.file(t,r)}function SB(){return Kn.utils.cfb_new()}var ei=`<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\n`,wit={\"&quot;\":'\"',\"&apos;\":\"'\",\"&gt;\":\">\",\"&lt;\":\"<\",\"&amp;\":\"&\"},wB=FB(wit),EB=/[&<>'\"]/g,Eit=/[\\u0000-\\u0008\\u000b-\\u001f]/g;function zn(e){var t=e+\"\";return t.replace(EB,function(r){return wB[r]}).replace(Eit,function(r){return\"_x\"+(\"000\"+r.charCodeAt(0).toString(16)).slice(-4)+\"_\"})}function xU(e){return zn(e).replace(/ /g,\"_x0020_\")}var Rde=/[\\u0000-\\u001f]/g;function Dit(e){var t=e+\"\";return t.replace(EB,function(r){return wB[r]}).replace(/\\n/g,\"<br/>\").replace(Rde,function(r){return\"&#x\"+(\"000\"+r.charCodeAt(0).toString(16)).slice(-4)+\";\"})}function Ait(e){var t=e+\"\";return t.replace(EB,function(r){return wB[r]}).replace(Rde,function(r){return\"&#x\"+r.charCodeAt(0).toString(16).toUpperCase()+\";\"})}function _it(e){return e.replace(/(\\r\\n|[\\r\\n])/g,\"&#10;\")}function Tit(e){switch(e){case 1:case!0:case\"1\":case\"true\":case\"TRUE\":return!0;default:return!1}}function K5(e){for(var t=\"\",r=0,n=0,a=0,i=0,o=0,l=0;r<e.length;){if(n=e.charCodeAt(r++),n<128){t+=String.fromCharCode(n);continue}if(a=e.charCodeAt(r++),n>191&&n<224){o=(n&31)<<6,o|=a&63,t+=String.fromCharCode(o);continue}if(i=e.charCodeAt(r++),n<240){t+=String.fromCharCode((n&15)<<12|(a&63)<<6|i&63);continue}o=e.charCodeAt(r++),l=((n&7)<<18|(a&63)<<12|(i&63)<<6|o&63)-65536,t+=String.fromCharCode(55296+(l>>>10&1023)),t+=String.fromCharCode(56320+(l&1023))}return t}function CU(e){var t=Qp(2*e.length),r,n,a=1,i=0,o=0,l;for(n=0;n<e.length;n+=a)a=1,(l=e.charCodeAt(n))<128?r=l:l<224?(r=(l&31)*64+(e.charCodeAt(n+1)&63),a=2):l<240?(r=(l&15)*4096+(e.charCodeAt(n+1)&63)*64+(e.charCodeAt(n+2)&63),a=3):(a=4,r=(l&7)*262144+(e.charCodeAt(n+1)&63)*4096+(e.charCodeAt(n+2)&63)*64+(e.charCodeAt(n+3)&63),r-=65536,o=55296+(r>>>10&1023),r=56320+(r&1023)),o!==0&&(t[i++]=o&255,t[i++]=o>>>8,o=0),t[i++]=r%256,t[i++]=r>>>8;return t.slice(0,i).toString(\"ucs2\")}function FU(e){return wd(e,\"binary\").toString(\"utf8\")}var EF=\"foo bar baz☃🍣\",eb=In&&(FU(EF)==K5(EF)&&FU||CU(EF)==K5(EF)&&CU)||K5,g2=In?function(e){return wd(e,\"utf8\").toString(\"binary\")}:function(e){for(var t=[],r=0,n=0,a=0;r<e.length;)switch(n=e.charCodeAt(r++),!0){case n<128:t.push(String.fromCharCode(n));break;case n<2048:t.push(String.fromCharCode(192+(n>>6))),t.push(String.fromCharCode(128+(n&63)));break;case(n>=55296&&n<57344):n-=55296,a=e.charCodeAt(r++)-56320+(n<<10),t.push(String.fromCharCode(240+(a>>18&7))),t.push(String.fromCharCode(144+(a>>12&63))),t.push(String.fromCharCode(128+(a>>6&63))),t.push(String.fromCharCode(128+(a&63)));break;default:t.push(String.fromCharCode(224+(n>>12))),t.push(String.fromCharCode(128+(n>>6&63))),t.push(String.fromCharCode(128+(n&63)))}return t.join(\"\")},Iit=function(){var e=[[\"nbsp\",\" \"],[\"middot\",\"·\"],[\"quot\",'\"'],[\"apos\",\"'\"],[\"gt\",\">\"],[\"lt\",\"<\"],[\"amp\",\"&\"]].map(function(t){return[new RegExp(\"&\"+t[0]+\";\",\"ig\"),t[1]]});return function(r){for(var n=r.replace(/^[\\t\\n\\r ]+/,\"\").replace(/[\\t\\n\\r ]+$/,\"\").replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\").replace(/[\\t\\n\\r ]+/g,\" \").replace(/<\\s*[bB][rR]\\s*\\/?>/g,`\n`).replace(/<[^>]*>/g,\"\"),a=0;a<e.length;++a)n=n.replace(e[a][0],e[a][1]);return n}}(),Mde=/(^\\s|\\s$|\\n)/;function Hi(e,t){return\"<\"+e+(t.match(Mde)?' xml:space=\"preserve\"':\"\")+\">\"+t+\"</\"+e+\">\"}function y2(e){return Ki(e).map(function(t){return\" \"+t+'=\"'+e[t]+'\"'}).join(\"\")}function Ht(e,t,r){return\"<\"+e+(r!=null?y2(r):\"\")+(t!=null?(t.match(Mde)?' xml:space=\"preserve\"':\"\")+\">\"+t+\"</\"+e:\"/\")+\">\"}function _M(e,t){try{return e.toISOString().replace(/\\.\\d*/,\"\")}catch(r){if(t)throw r}return\"\"}function kit(e,t){switch(typeof e){case\"string\":var r=Ht(\"vt:lpwstr\",zn(e));return r=r.replace(/&quot;/g,\"_x0022_\"),r;case\"number\":return Ht((e|0)==e?\"vt:i4\":\"vt:r8\",zn(String(e)));case\"boolean\":return Ht(\"vt:bool\",e?\"true\":\"false\")}if(e instanceof Date)return Ht(\"vt:filetime\",_M(e));throw new Error(\"Unable to serialize \"+e)}var wi={CORE_PROPS:\"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\",CUST_PROPS:\"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",EXT_PROPS:\"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",CT:\"http://schemas.openxmlformats.org/package/2006/content-types\",RELS:\"http://schemas.openxmlformats.org/package/2006/relationships\",TCMNT:\"http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments\",dc:\"http://purl.org/dc/elements/1.1/\",dcterms:\"http://purl.org/dc/terms/\",dcmitype:\"http://purl.org/dc/dcmitype/\",r:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\",vt:\"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes\",xsi:\"http://www.w3.org/2001/XMLSchema-instance\",xsd:\"http://www.w3.org/2001/XMLSchema\"},Lg=[\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\",\"http://purl.oclc.org/ooxml/spreadsheetml/main\",\"http://schemas.microsoft.com/office/excel/2006/main\",\"http://schemas.microsoft.com/office/excel/2006/2\"],Dl={o:\"urn:schemas-microsoft-com:office:office\",x:\"urn:schemas-microsoft-com:office:excel\",ss:\"urn:schemas-microsoft-com:office:spreadsheet\",dt:\"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882\",mv:\"http://macVmlSchemaUri\",v:\"urn:schemas-microsoft-com:vml\",html:\"http://www.w3.org/TR/REC-html40\"};function Rit(e,t){for(var r=1-2*(e[t+7]>>>7),n=((e[t+7]&127)<<4)+(e[t+6]>>>4&15),a=e[t+6]&15,i=5;i>=0;--i)a=a*256+e[t+i];return n==2047?a==0?r*(1/0):NaN:(n==0?n=-1022:(n-=1023,a+=Math.pow(2,52)),r*Math.pow(2,n-52)*a)}function Mit(e,t,r){var n=(t<0||1/t==-1/0?1:0)<<7,a=0,i=0,o=n?-t:t;isFinite(o)?o==0?a=i=0:(a=Math.floor(Math.log(o)/Math.LN2),i=o*Math.pow(2,52-a),a<=-1023&&(!isFinite(i)||i<Math.pow(2,52))?a=-1022:(i-=Math.pow(2,52),a+=1023)):(a=2047,i=isNaN(t)?26985:0);for(var l=0;l<=5;++l,i/=256)e[r+l]=i&255;e[r+6]=(a&15)<<4|i&15,e[r+7]=a>>4|n}var SU=function(e){for(var t=[],r=10240,n=0;n<e[0].length;++n)if(e[0][n])for(var a=0,i=e[0][n].length;a<i;a+=r)t.push.apply(t,e[0][n].slice(a,a+r));return t},wU=In?function(e){return e[0].length>0&&Buffer.isBuffer(e[0][0])?Buffer.concat(e[0].map(function(t){return Buffer.isBuffer(t)?t:wd(t)})):SU(e)}:SU,EU=function(e,t,r){for(var n=[],a=t;a<r;a+=2)n.push(String.fromCharCode(gy(e,a)));return n.join(\"\").replace(Qy,\"\")},DB=In?function(e,t,r){return Buffer.isBuffer(e)?e.toString(\"utf16le\",t,r).replace(Qy,\"\"):EU(e,t,r)}:EU,DU=function(e,t,r){for(var n=[],a=t;a<t+r;++a)n.push((\"0\"+e[a].toString(16)).slice(-2));return n.join(\"\")},Pde=In?function(e,t,r){return Buffer.isBuffer(e)?e.toString(\"hex\",t,t+r):DU(e,t,r)}:DU,AU=function(e,t,r){for(var n=[],a=t;a<r;a++)n.push(String.fromCharCode(Ov(e,a)));return n.join(\"\")},Gx=In?function(t,r,n){return Buffer.isBuffer(t)?t.toString(\"utf8\",r,n):AU(t,r,n)}:AU,Ode=function(e,t){var r=Al(e,t);return r>0?Gx(e,t+4,t+4+r-1):\"\"},Bde=Ode,Nde=function(e,t){var r=Al(e,t);return r>0?Gx(e,t+4,t+4+r-1):\"\"},$de=Nde,Lde=function(e,t){var r=2*Al(e,t);return r>0?Gx(e,t+4,t+4+r-1):\"\"},jde=Lde,zde=function(t,r){var n=Al(t,r);return n>0?DB(t,r+4,r+4+n):\"\"},Hde=zde,Vde=function(e,t){var r=Al(e,t);return r>0?Gx(e,t+4,t+4+r):\"\"},Wde=Vde,Gde=function(e,t){return Rit(e,t)},f3=Gde,AB=function(t){return Array.isArray(t)||typeof Uint8Array<\"u\"&&t instanceof Uint8Array};In&&(Bde=function(t,r){if(!Buffer.isBuffer(t))return Ode(t,r);var n=t.readUInt32LE(r);return n>0?t.toString(\"utf8\",r+4,r+4+n-1):\"\"},$de=function(t,r){if(!Buffer.isBuffer(t))return Nde(t,r);var n=t.readUInt32LE(r);return n>0?t.toString(\"utf8\",r+4,r+4+n-1):\"\"},jde=function(t,r){if(!Buffer.isBuffer(t))return Lde(t,r);var n=2*t.readUInt32LE(r);return t.toString(\"utf16le\",r+4,r+4+n-1)},Hde=function(t,r){if(!Buffer.isBuffer(t))return zde(t,r);var n=t.readUInt32LE(r);return t.toString(\"utf16le\",r+4,r+4+n)},Wde=function(t,r){if(!Buffer.isBuffer(t))return Vde(t,r);var n=t.readUInt32LE(r);return t.toString(\"utf8\",r+4,r+4+n)},f3=function(t,r){return Buffer.isBuffer(t)?t.readDoubleLE(r):Gde(t,r)},AB=function(t){return Buffer.isBuffer(t)||Array.isArray(t)||typeof Uint8Array<\"u\"&&t instanceof Uint8Array});var Ov=function(e,t){return e[t]},gy=function(e,t){return e[t+1]*256+e[t]},Pit=function(e,t){var r=e[t+1]*256+e[t];return r<32768?r:(65535-r+1)*-1},Al=function(e,t){return e[t+3]*(1<<24)+(e[t+2]<<16)+(e[t+1]<<8)+e[t]},Qh=function(e,t){return e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t]},Oit=function(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};function tb(e,t){var r=\"\",n,a,i=[],o,l,s,u;switch(t){case\"dbcs\":if(u=this.l,In&&Buffer.isBuffer(this))r=this.slice(this.l,this.l+2*e).toString(\"utf16le\");else for(s=0;s<e;++s)r+=String.fromCharCode(gy(this,u)),u+=2;e*=2;break;case\"utf8\":r=Gx(this,this.l,this.l+e);break;case\"utf16le\":e*=2,r=DB(this,this.l,this.l+e);break;case\"wstr\":return tb.call(this,e,\"dbcs\");case\"lpstr-ansi\":r=Bde(this,this.l),e=4+Al(this,this.l);break;case\"lpstr-cp\":r=$de(this,this.l),e=4+Al(this,this.l);break;case\"lpwstr\":r=jde(this,this.l),e=4+2*Al(this,this.l);break;case\"lpp4\":e=4+Al(this,this.l),r=Hde(this,this.l),e&2&&(e+=2);break;case\"8lpp4\":e=4+Al(this,this.l),r=Wde(this,this.l),e&3&&(e+=4-(e&3));break;case\"cstr\":for(e=0,r=\"\";(o=Ov(this,this.l+e++))!==0;)i.push(FF(o));r=i.join(\"\");break;case\"_wstr\":for(e=0,r=\"\";(o=gy(this,this.l+e))!==0;)i.push(FF(o)),e+=2;e+=2,r=i.join(\"\");break;case\"dbcs-cont\":for(r=\"\",u=this.l,s=0;s<e;++s){if(this.lens&&this.lens.indexOf(u)!==-1)return o=Ov(this,u),this.l=u+1,l=tb.call(this,e-s,o?\"dbcs-cont\":\"sbcs-cont\"),i.join(\"\")+l;i.push(FF(gy(this,u))),u+=2}r=i.join(\"\"),e*=2;break;case\"cpstr\":case\"sbcs-cont\":for(r=\"\",u=this.l,s=0;s!=e;++s){if(this.lens&&this.lens.indexOf(u)!==-1)return o=Ov(this,u),this.l=u+1,l=tb.call(this,e-s,o?\"dbcs-cont\":\"sbcs-cont\"),i.join(\"\")+l;i.push(FF(Ov(this,u))),u+=1}r=i.join(\"\");break;default:switch(e){case 1:return n=Ov(this,this.l),this.l++,n;case 2:return n=(t===\"i\"?Pit:gy)(this,this.l),this.l+=2,n;case 4:case-4:return t===\"i\"||!(this[this.l+3]&128)?(n=(e>0?Qh:Oit)(this,this.l),this.l+=4,n):(a=Al(this,this.l),this.l+=4,a);case 8:case-8:if(t===\"f\")return e==8?a=f3(this,this.l):a=f3([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]],0),this.l+=8,a;e=8;case 16:r=Pde(this,this.l,e);break}}return this.l+=e,r}var Bit=function(e,t,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24&255},Nit=function(e,t,r){e[r]=t&255,e[r+1]=t>>8&255,e[r+2]=t>>16&255,e[r+3]=t>>24&255},$it=function(e,t,r){e[r]=t&255,e[r+1]=t>>>8&255};function Lit(e,t,r){var n=0,a=0;if(r===\"dbcs\"){for(a=0;a!=t.length;++a)$it(this,t.charCodeAt(a),this.l+2*a);n=2*t.length}else if(r===\"sbcs\"){for(t=t.replace(/[^\\x00-\\x7F]/g,\"_\"),a=0;a!=t.length;++a)this[this.l+a]=t.charCodeAt(a)&255;n=t.length}else if(r===\"hex\"){for(;a<e;++a)this[this.l++]=parseInt(t.slice(2*a,2*a+2),16)||0;return this}else if(r===\"utf16le\"){var i=Math.min(this.l+e,this.length);for(a=0;a<Math.min(t.length,e);++a){var o=t.charCodeAt(a);this[this.l++]=o&255,this[this.l++]=o>>8}for(;this.l<i;)this[this.l++]=0;return this}else switch(e){case 1:n=1,this[this.l]=t&255;break;case 2:n=2,this[this.l]=t&255,t>>>=8,this[this.l+1]=t&255;break;case 3:n=3,this[this.l]=t&255,t>>>=8,this[this.l+1]=t&255,t>>>=8,this[this.l+2]=t&255;break;case 4:n=4,Bit(this,t,this.l);break;case 8:if(n=8,r===\"f\"){Mit(this,t,this.l);break}case 16:break;case-4:n=4,Nit(this,t,this.l);break}return this.l+=n,this}function Ude(e,t){var r=Pde(this,this.l,e.length>>1);if(r!==e)throw new Error(t+\"Expected \"+e+\" saw \"+r);this.l+=e.length>>1}function El(e,t){e.l=t,e.read_shift=tb,e.chk=Ude,e.write_shift=Lit}function pc(e,t){e.l+=t}function ct(e){var t=Qp(e);return El(t,0),t}function fl(){var e=[],t=In?256:2048,r=function(u){var c=ct(u);return El(c,0),c},n=r(t),a=function(){n&&(n.length>n.l&&(n=n.slice(0,n.l),n.l=n.length),n.length>0&&e.push(n),n=null)},i=function(u){return n&&u<n.length-n.l?n:(a(),n=r(Math.max(u+1,t)))},o=function(){return a(),zi(e)},l=function(u){a(),n=u,n.l==null&&(n.l=n.length),i(t)};return{next:i,push:l,end:o,_bufs:e}}function bt(e,t,r,n){var a=+t,i;if(!isNaN(a)){n||(n=Rdt[a].p||(r||[]).length||0),i=1+(a>=128?1:0)+1,n>=128&&++i,n>=16384&&++i,n>=2097152&&++i;var o=e.next(i);a<=127?o.write_shift(1,a):(o.write_shift(1,(a&127)+128),o.write_shift(1,a>>7));for(var l=0;l!=4;++l)if(n>=128)o.write_shift(1,(n&127)+128),n>>=7;else{o.write_shift(1,n);break}n>0&&AB(r)&&e.push(r)}}function rb(e,t,r){var n=gl(e);if(t.s?(n.cRel&&(n.c+=t.s.c),n.rRel&&(n.r+=t.s.r)):(n.cRel&&(n.c+=t.c),n.rRel&&(n.r+=t.r)),!r||r.biff<12){for(;n.c>=256;)n.c-=256;for(;n.r>=65536;)n.r-=65536}return n}function _U(e,t,r){var n=gl(e);return n.s=rb(n.s,t.s,r),n.e=rb(n.e,t.s,r),n}function nb(e,t){if(e.cRel&&e.c<0)for(e=gl(e);e.c<0;)e.c+=t>8?16384:256;if(e.rRel&&e.r<0)for(e=gl(e);e.r<0;)e.r+=t>8?1048576:t>5?65536:16384;var r=Vn(e);return!e.cRel&&e.cRel!=null&&(r=Hit(r)),!e.rRel&&e.rRel!=null&&(r=jit(r)),r}function Y5(e,t){return e.s.r==0&&!e.s.rRel&&e.e.r==(t.biff>=12?1048575:t.biff>=8?65536:16384)&&!e.e.rRel?(e.s.cRel?\"\":\"$\")+yo(e.s.c)+\":\"+(e.e.cRel?\"\":\"$\")+yo(e.e.c):e.s.c==0&&!e.s.cRel&&e.e.c==(t.biff>=12?16383:255)&&!e.e.cRel?(e.s.rRel?\"\":\"$\")+Wi(e.s.r)+\":\"+(e.e.rRel?\"\":\"$\")+Wi(e.e.r):nb(e.s,t.biff)+\":\"+nb(e.e,t.biff)}function _B(e){return parseInt(zit(e),10)-1}function Wi(e){return\"\"+(e+1)}function jit(e){return e.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\")}function zit(e){return e.replace(/\\$(\\d+)$/,\"$1\")}function TB(e){for(var t=Vit(e),r=0,n=0;n!==t.length;++n)r=26*r+t.charCodeAt(n)-64;return r-1}function yo(e){if(e<0)throw new Error(\"invalid column \"+e);var t=\"\";for(++e;e;e=Math.floor((e-1)/26))t=String.fromCharCode((e-1)%26+65)+t;return t}function Hit(e){return e.replace(/^([A-Z])/,\"$$$1\")}function Vit(e){return e.replace(/^\\$([A-Z])/,\"$1\")}function Wit(e){return e.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\")}function Ei(e){for(var t=0,r=0,n=0;n<e.length;++n){var a=e.charCodeAt(n);a>=48&&a<=57?t=10*t+(a-48):a>=65&&a<=90&&(r=26*r+(a-64))}return{c:r-1,r:t-1}}function Vn(e){for(var t=e.c+1,r=\"\";t;t=(t-1)/26|0)r=String.fromCharCode((t-1)%26+65)+r;return r+(e.r+1)}function Ll(e){var t=e.indexOf(\":\");return t==-1?{s:Ei(e),e:Ei(e)}:{s:Ei(e.slice(0,t)),e:Ei(e.slice(t+1))}}function Za(e,t){return typeof t>\"u\"||typeof t==\"number\"?Za(e.s,e.e):(typeof e!=\"string\"&&(e=Vn(e)),typeof t!=\"string\"&&(t=Vn(t)),e==t?e:e+\":\"+t)}function la(e){var t={s:{c:0,r:0},e:{c:0,r:0}},r=0,n=0,a=0,i=e.length;for(r=0;n<i&&!((a=e.charCodeAt(n)-64)<1||a>26);++n)r=26*r+a;for(t.s.c=--r,r=0;n<i&&!((a=e.charCodeAt(n)-48)<0||a>9);++n)r=10*r+a;if(t.s.r=--r,n===i||a!=10)return t.e.c=t.s.c,t.e.r=t.s.r,t;for(++n,r=0;n!=i&&!((a=e.charCodeAt(n)-64)<1||a>26);++n)r=26*r+a;for(t.e.c=--r,r=0;n!=i&&!((a=e.charCodeAt(n)-48)<0||a>9);++n)r=10*r+a;return t.e.r=--r,t}function TU(e,t){var r=e.t==\"d\"&&t instanceof Date;if(e.z!=null)try{return e.w=Wf(e.z,r?vl(t):t)}catch{}try{return e.w=Wf((e.XF||{}).numFmtId||(r?14:0),r?vl(t):t)}catch{return\"\"+t}}function cd(e,t,r){return e==null||e.t==null||e.t==\"z\"?\"\":e.w!==void 0?e.w:(e.t==\"d\"&&!e.z&&r&&r.dateNF&&(e.z=r.dateNF),e.t==\"e\"?Ux[e.v]||e.v:t==null?TU(e,e.v):TU(e,t))}function Tm(e,t){var r=t&&t.sheet?t.sheet:\"Sheet1\",n={};return n[r]=e,{SheetNames:[r],Sheets:n}}function Kde(e,t,r){var n=r||{},a=e?Array.isArray(e):n.dense,i=e||(a?[]:{}),o=0,l=0;if(i&&n.origin!=null){if(typeof n.origin==\"number\")o=n.origin;else{var s=typeof n.origin==\"string\"?Ei(n.origin):n.origin;o=s.r,l=s.c}i[\"!ref\"]||(i[\"!ref\"]=\"A1:A1\")}var u={s:{c:1e7,r:1e7},e:{c:0,r:0}};if(i[\"!ref\"]){var c=la(i[\"!ref\"]);u.s.c=c.s.c,u.s.r=c.s.r,u.e.c=Math.max(u.e.c,c.e.c),u.e.r=Math.max(u.e.r,c.e.r),o==-1&&(u.e.r=o=c.e.r+1)}for(var d=0;d!=t.length;++d)if(t[d]){if(!Array.isArray(t[d]))throw new Error(\"aoa_to_sheet expects an array of arrays\");for(var f=0;f!=t[d].length;++f)if(!(typeof t[d][f]>\"u\")){var h={v:t[d][f]},p=o+d,v=l+f;if(u.s.r>p&&(u.s.r=p),u.s.c>v&&(u.s.c=v),u.e.r<p&&(u.e.r=p),u.e.c<v&&(u.e.c=v),t[d][f]&&typeof t[d][f]==\"object\"&&!Array.isArray(t[d][f])&&!(t[d][f]instanceof Date))h=t[d][f];else if(Array.isArray(h.v)&&(h.f=t[d][f][1],h.v=h.v[0]),h.v===null)if(h.f)h.t=\"n\";else if(n.nullError)h.t=\"e\",h.v=0;else if(n.sheetStubs)h.t=\"z\";else continue;else typeof h.v==\"number\"?h.t=\"n\":typeof h.v==\"boolean\"?h.t=\"b\":h.v instanceof Date?(h.z=n.dateNF||Aa[14],n.cellDates?(h.t=\"d\",h.w=Wf(h.z,vl(h.v))):(h.t=\"n\",h.v=vl(h.v),h.w=Wf(h.z,h.v))):h.t=\"s\";if(a)i[p]||(i[p]=[]),i[p][v]&&i[p][v].z&&(h.z=i[p][v].z),i[p][v]=h;else{var g=Vn({c:v,r:p});i[g]&&i[g].z&&(h.z=i[g].z),i[g]=h}}}return u.s.c<1e7&&(i[\"!ref\"]=Za(u)),i}function jg(e,t){return Kde(null,e,t)}function Git(e){return e.read_shift(4,\"i\")}function su(e,t){return t||(t=ct(4)),t.write_shift(4,e),t}function bo(e){var t=e.read_shift(4);return t===0?\"\":e.read_shift(t,\"dbcs\")}function Di(e,t){var r=!1;return t==null&&(r=!0,t=ct(4+2*e.length)),t.write_shift(4,e.length),e.length>0&&t.write_shift(0,e,\"dbcs\"),r?t.slice(0,t.l):t}function Uit(e){return{ich:e.read_shift(2),ifnt:e.read_shift(2)}}function Kit(e,t){return t||(t=ct(4)),t.write_shift(2,0),t.write_shift(2,0),t}function IB(e,t){var r=e.l,n=e.read_shift(1),a=bo(e),i=[],o={t:a,h:a};if(n&1){for(var l=e.read_shift(4),s=0;s!=l;++s)i.push(Uit(e));o.r=i}else o.r=[{ich:0,ifnt:0}];return e.l=r+t,o}function Yit(e,t){var r=!1;return t==null&&(r=!0,t=ct(15+4*e.t.length)),t.write_shift(1,0),Di(e.t,t),r?t.slice(0,t.l):t}var qit=IB;function Xit(e,t){var r=!1;return t==null&&(r=!0,t=ct(23+4*e.t.length)),t.write_shift(1,1),Di(e.t,t),t.write_shift(4,1),Kit({},t),r?t.slice(0,t.l):t}function ks(e){var t=e.read_shift(4),r=e.read_shift(2);return r+=e.read_shift(1)<<16,e.l++,{c:t,iStyleRef:r}}function Im(e,t){return t==null&&(t=ct(8)),t.write_shift(-4,e.c),t.write_shift(3,e.iStyleRef||e.s),t.write_shift(1,0),t}function km(e){var t=e.read_shift(2);return t+=e.read_shift(1)<<16,e.l++,{c:-1,iStyleRef:t}}function Rm(e,t){return t==null&&(t=ct(4)),t.write_shift(3,e.iStyleRef||e.s),t.write_shift(1,0),t}var Jit=bo,Yde=Di;function kB(e){var t=e.read_shift(4);return t===0||t===4294967295?\"\":e.read_shift(t,\"dbcs\")}function h3(e,t){var r=!1;return t==null&&(r=!0,t=ct(127)),t.write_shift(4,e.length>0?e.length:4294967295),e.length>0&&t.write_shift(0,e,\"dbcs\"),r?t.slice(0,t.l):t}var Zit=bo,TM=kB,RB=h3;function qde(e){var t=e.slice(e.l,e.l+4),r=t[0]&1,n=t[0]&2;e.l+=4;var a=n===0?f3([0,0,0,0,t[0]&252,t[1],t[2],t[3]],0):Qh(t,0)>>2;return r?a/100:a}function Xde(e,t){t==null&&(t=ct(4));var r=0,n=0,a=e*100;if(e==(e|0)&&e>=-536870912&&e<1<<29?n=1:a==(a|0)&&a>=-536870912&&a<1<<29&&(n=1,r=1),n)t.write_shift(-4,((r?a:e)<<2)+(r+2));else throw new Error(\"unsupported RkNumber \"+e)}function Jde(e){var t={s:{},e:{}};return t.s.r=e.read_shift(4),t.e.r=e.read_shift(4),t.s.c=e.read_shift(4),t.e.c=e.read_shift(4),t}function Qit(e,t){return t||(t=ct(16)),t.write_shift(4,e.s.r),t.write_shift(4,e.e.r),t.write_shift(4,e.s.c),t.write_shift(4,e.e.c),t}var Mm=Jde,zg=Qit;function Hg(e){if(e.length-e.l<8)throw\"XLS Xnum Buffer underflow\";return e.read_shift(8,\"f\")}function em(e,t){return(t||ct(8)).write_shift(8,e,\"f\")}function eot(e){var t={},r=e.read_shift(1),n=r>>>1,a=e.read_shift(1),i=e.read_shift(2,\"i\"),o=e.read_shift(1),l=e.read_shift(1),s=e.read_shift(1);switch(e.l++,n){case 0:t.auto=1;break;case 1:t.index=a;var u=uot[a];u&&(t.rgb=jU(u));break;case 2:t.rgb=jU([o,l,s]);break;case 3:t.theme=a;break}return i!=0&&(t.tint=i>0?i/32767:i/32768),t}function p3(e,t){if(t||(t=ct(8)),!e||e.auto)return t.write_shift(4,0),t.write_shift(4,0),t;e.index!=null?(t.write_shift(1,2),t.write_shift(1,e.index)):e.theme!=null?(t.write_shift(1,6),t.write_shift(1,e.theme)):(t.write_shift(1,5),t.write_shift(1,0));var r=e.tint||0;if(r>0?r*=32767:r<0&&(r*=32768),t.write_shift(2,r),!e.rgb||e.theme!=null)t.write_shift(2,0),t.write_shift(1,0),t.write_shift(1,0);else{var n=e.rgb||\"FFFFFF\";typeof n==\"number\"&&(n=(\"000000\"+n.toString(16)).slice(-6)),t.write_shift(1,parseInt(n.slice(0,2),16)),t.write_shift(1,parseInt(n.slice(2,4),16)),t.write_shift(1,parseInt(n.slice(4,6),16)),t.write_shift(1,255)}return t}function tot(e){var t=e.read_shift(1);e.l++;var r={fBold:t&1,fItalic:t&2,fUnderline:t&4,fStrikeout:t&8,fOutline:t&16,fShadow:t&32,fCondense:t&64,fExtend:t&128};return r}function rot(e,t){t||(t=ct(2));var r=(e.italic?2:0)|(e.strike?8:0)|(e.outline?16:0)|(e.shadow?32:0)|(e.condense?64:0)|(e.extend?128:0);return t.write_shift(1,r),t.write_shift(1,0),t}var Zde=2,Sl=3,DF=11,m3=19,AF=64,not=65,aot=71,iot=4108,oot=4126,Li=80,IU={1:{n:\"CodePage\",t:Zde},2:{n:\"Category\",t:Li},3:{n:\"PresentationFormat\",t:Li},4:{n:\"ByteCount\",t:Sl},5:{n:\"LineCount\",t:Sl},6:{n:\"ParagraphCount\",t:Sl},7:{n:\"SlideCount\",t:Sl},8:{n:\"NoteCount\",t:Sl},9:{n:\"HiddenCount\",t:Sl},10:{n:\"MultimediaClipCount\",t:Sl},11:{n:\"ScaleCrop\",t:DF},12:{n:\"HeadingPairs\",t:iot},13:{n:\"TitlesOfParts\",t:oot},14:{n:\"Manager\",t:Li},15:{n:\"Company\",t:Li},16:{n:\"LinksUpToDate\",t:DF},17:{n:\"CharacterCount\",t:Sl},19:{n:\"SharedDoc\",t:DF},22:{n:\"HyperlinksChanged\",t:DF},23:{n:\"AppVersion\",t:Sl,p:\"version\"},24:{n:\"DigSig\",t:not},26:{n:\"ContentType\",t:Li},27:{n:\"ContentStatus\",t:Li},28:{n:\"Language\",t:Li},29:{n:\"Version\",t:Li},255:{},2147483648:{n:\"Locale\",t:m3},2147483651:{n:\"Behavior\",t:m3},1919054434:{}},kU={1:{n:\"CodePage\",t:Zde},2:{n:\"Title\",t:Li},3:{n:\"Subject\",t:Li},4:{n:\"Author\",t:Li},5:{n:\"Keywords\",t:Li},6:{n:\"Comments\",t:Li},7:{n:\"Template\",t:Li},8:{n:\"LastAuthor\",t:Li},9:{n:\"RevNumber\",t:Li},10:{n:\"EditTime\",t:AF},11:{n:\"LastPrinted\",t:AF},12:{n:\"CreatedDate\",t:AF},13:{n:\"ModifiedDate\",t:AF},14:{n:\"PageCount\",t:Sl},15:{n:\"WordCount\",t:Sl},16:{n:\"CharCount\",t:Sl},17:{n:\"Thumbnail\",t:aot},18:{n:\"Application\",t:Li},19:{n:\"DocSecurity\",t:Sl},255:{},2147483648:{n:\"Locale\",t:m3},2147483651:{n:\"Behavior\",t:m3},1919054434:{}};function lot(e){return e.map(function(t){return[t>>16&255,t>>8&255,t&255]})}var sot=lot([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),uot=gl(sot),Ux={0:\"#NULL!\",7:\"#DIV/0!\",15:\"#VALUE!\",23:\"#REF!\",29:\"#NAME?\",36:\"#NUM!\",42:\"#N/A\",43:\"#GETTING_DATA\",255:\"#WTF?\"},cot={\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\":\"workbooks\",\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\":\"workbooks\",\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\":\"workbooks\",\"application/vnd.ms-excel.addin.macroEnabled.main+xml\":\"workbooks\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\":\"workbooks\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\":\"sheets\",\"application/vnd.ms-excel.worksheet\":\"sheets\",\"application/vnd.ms-excel.binIndexWs\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\":\"charts\",\"application/vnd.ms-excel.chartsheet\":\"charts\",\"application/vnd.ms-excel.macrosheet+xml\":\"macros\",\"application/vnd.ms-excel.macrosheet\":\"macros\",\"application/vnd.ms-excel.intlmacrosheet\":\"TODO\",\"application/vnd.ms-excel.binIndexMs\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\":\"dialogs\",\"application/vnd.ms-excel.dialogsheet\":\"dialogs\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\":\"strs\",\"application/vnd.ms-excel.sharedStrings\":\"strs\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\":\"styles\",\"application/vnd.ms-excel.styles\":\"styles\",\"application/vnd.openxmlformats-package.core-properties+xml\":\"coreprops\",\"application/vnd.openxmlformats-officedocument.custom-properties+xml\":\"custprops\",\"application/vnd.openxmlformats-officedocument.extended-properties+xml\":\"extprops\",\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\":\"comments\",\"application/vnd.ms-excel.comments\":\"comments\",\"application/vnd.ms-excel.threadedcomments+xml\":\"threadedcomments\",\"application/vnd.ms-excel.person+xml\":\"people\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\":\"metadata\",\"application/vnd.ms-excel.sheetMetadata\":\"metadata\",\"application/vnd.ms-excel.pivotTable\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\":\"TODO\",\"application/vnd.ms-office.chartcolorstyle+xml\":\"TODO\",\"application/vnd.ms-office.chartstyle+xml\":\"TODO\",\"application/vnd.ms-office.chartex+xml\":\"TODO\",\"application/vnd.ms-excel.calcChain\":\"calcchains\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\":\"calcchains\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\":\"TODO\",\"application/vnd.ms-office.activeX\":\"TODO\",\"application/vnd.ms-office.activeX+xml\":\"TODO\",\"application/vnd.ms-excel.attachedToolbars\":\"TODO\",\"application/vnd.ms-excel.connections\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\":\"TODO\",\"application/vnd.ms-excel.externalLink\":\"links\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\":\"links\",\"application/vnd.ms-excel.pivotCacheDefinition\":\"TODO\",\"application/vnd.ms-excel.pivotCacheRecords\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\":\"TODO\",\"application/vnd.ms-excel.queryTable\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\":\"TODO\",\"application/vnd.ms-excel.userNames\":\"TODO\",\"application/vnd.ms-excel.revisionHeaders\":\"TODO\",\"application/vnd.ms-excel.revisionLog\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\":\"TODO\",\"application/vnd.ms-excel.tableSingleCells\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\":\"TODO\",\"application/vnd.ms-excel.slicer\":\"TODO\",\"application/vnd.ms-excel.slicerCache\":\"TODO\",\"application/vnd.ms-excel.slicer+xml\":\"TODO\",\"application/vnd.ms-excel.slicerCache+xml\":\"TODO\",\"application/vnd.ms-excel.wsSortMap\":\"TODO\",\"application/vnd.ms-excel.table\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.theme+xml\":\"themes\",\"application/vnd.openxmlformats-officedocument.themeOverride+xml\":\"TODO\",\"application/vnd.ms-excel.Timeline+xml\":\"TODO\",\"application/vnd.ms-excel.TimelineCache+xml\":\"TODO\",\"application/vnd.ms-office.vbaProject\":\"vba\",\"application/vnd.ms-office.vbaProjectSignature\":\"TODO\",\"application/vnd.ms-office.volatileDependencies\":\"TODO\",\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\":\"TODO\",\"application/vnd.ms-excel.controlproperties+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.model+data\":\"TODO\",\"application/vnd.ms-excel.Survey+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawing+xml\":\"drawings\",\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\":\"TODO\",\"application/vnd.openxmlformats-officedocument.vmlDrawing\":\"TODO\",\"application/vnd.openxmlformats-package.relationships+xml\":\"rels\",\"application/vnd.openxmlformats-officedocument.oleObject\":\"TODO\",\"image/png\":\"TODO\",sheet:\"js\"},_F={workbooks:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",xlsm:\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",xlsb:\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",xlam:\"application/vnd.ms-excel.addin.macroEnabled.main+xml\",xltx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"},strs:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",xlsb:\"application/vnd.ms-excel.sharedStrings\"},comments:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",xlsb:\"application/vnd.ms-excel.comments\"},sheets:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",xlsb:\"application/vnd.ms-excel.worksheet\"},charts:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",xlsb:\"application/vnd.ms-excel.chartsheet\"},dialogs:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",xlsb:\"application/vnd.ms-excel.dialogsheet\"},macros:{xlsx:\"application/vnd.ms-excel.macrosheet+xml\",xlsb:\"application/vnd.ms-excel.macrosheet\"},metadata:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",xlsb:\"application/vnd.ms-excel.sheetMetadata\"},styles:{xlsx:\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",xlsb:\"application/vnd.ms-excel.styles\"}};function Qde(){return{workbooks:[],sheets:[],charts:[],dialogs:[],macros:[],rels:[],strs:[],comments:[],threadedcomments:[],links:[],coreprops:[],extprops:[],custprops:[],themes:[],styles:[],calcchains:[],vba:[],drawings:[],metadata:[],people:[],TODO:[],xmlns:\"\"}}function efe(e,t){var r=xit(cot),n=[],a;n[n.length]=ei,n[n.length]=Ht(\"Types\",null,{xmlns:wi.CT,\"xmlns:xsd\":wi.xsd,\"xmlns:xsi\":wi.xsi}),n=n.concat([[\"xml\",\"application/xml\"],[\"bin\",\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\"],[\"vml\",\"application/vnd.openxmlformats-officedocument.vmlDrawing\"],[\"data\",\"application/vnd.openxmlformats-officedocument.model+data\"],[\"bmp\",\"image/bmp\"],[\"png\",\"image/png\"],[\"gif\",\"image/gif\"],[\"emf\",\"image/x-emf\"],[\"wmf\",\"image/x-wmf\"],[\"jpg\",\"image/jpeg\"],[\"jpeg\",\"image/jpeg\"],[\"tif\",\"image/tiff\"],[\"tiff\",\"image/tiff\"],[\"pdf\",\"application/pdf\"],[\"rels\",\"application/vnd.openxmlformats-package.relationships+xml\"]].map(function(s){return Ht(\"Default\",null,{Extension:s[0],ContentType:s[1]})}));var i=function(s){e[s]&&e[s].length>0&&(a=e[s][0],n[n.length]=Ht(\"Override\",null,{PartName:(a[0]==\"/\"?\"\":\"/\")+a,ContentType:_F[s][t.bookType]||_F[s].xlsx}))},o=function(s){(e[s]||[]).forEach(function(u){n[n.length]=Ht(\"Override\",null,{PartName:(u[0]==\"/\"?\"\":\"/\")+u,ContentType:_F[s][t.bookType]||_F[s].xlsx})})},l=function(s){(e[s]||[]).forEach(function(u){n[n.length]=Ht(\"Override\",null,{PartName:(u[0]==\"/\"?\"\":\"/\")+u,ContentType:r[s][0]})})};return i(\"workbooks\"),o(\"sheets\"),o(\"charts\"),l(\"themes\"),[\"strs\",\"styles\"].forEach(i),[\"coreprops\",\"extprops\",\"custprops\"].forEach(l),l(\"vba\"),l(\"comments\"),l(\"threadedcomments\"),l(\"drawings\"),o(\"metadata\"),l(\"people\"),n.length>2&&(n[n.length]=\"</Types>\",n[1]=n[1].replace(\"/>\",\">\")),n.join(\"\")}var En={WB:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",HLINK:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",VML:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",XPATH:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",XMISS:\"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",CMNT:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",CORE_PROPS:\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",EXT_PROPS:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties\",CUST_PROPS:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties\",SST:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",STY:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",THEME:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",WS:[\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"],DRAW:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",XLMETA:\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",TCMNT:\"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",PEOPLE:\"http://schemas.microsoft.com/office/2017/10/relationships/person\",VBA:\"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"};function tfe(e){var t=e.lastIndexOf(\"/\");return e.slice(0,t+1)+\"_rels/\"+e.slice(t+1)+\".rels\"}function F0(e){var t=[ei,Ht(\"Relationships\",null,{xmlns:wi.RELS})];return Ki(e[\"!id\"]).forEach(function(r){t[t.length]=Ht(\"Relationship\",null,e[\"!id\"][r])}),t.length>2&&(t[t.length]=\"</Relationships>\",t[1]=t[1].replace(\"/>\",\">\")),t.join(\"\")}function Nn(e,t,r,n,a,i){if(a||(a={}),e[\"!id\"]||(e[\"!id\"]={}),e[\"!idx\"]||(e[\"!idx\"]=1),t<0)for(t=e[\"!idx\"];e[\"!id\"][\"rId\"+t];++t);if(e[\"!idx\"]=t+1,a.Id=\"rId\"+t,a.Type=n,a.Target=r,[En.HLINK,En.XPATH,En.XMISS].indexOf(a.Type)>-1&&(a.TargetMode=\"External\"),e[\"!id\"][a.Id])throw new Error(\"Cannot rewrite rId \"+t);return e[\"!id\"][a.Id]=a,e[(\"/\"+a.Target).replace(\"//\",\"/\")]=a,t}function dot(e){var t=[ei];t.push(`<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\n`),t.push(` <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\n`);for(var r=0;r<e.length;++r)t.push(' <manifest:file-entry manifest:full-path=\"'+e[r][0]+'\" manifest:media-type=\"'+e[r][1]+`\"/>\n`);return t.push(\"</manifest:manifest>\"),t.join(\"\")}function RU(e,t,r){return[' <rdf:Description rdf:about=\"'+e+`\">\n`,' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/'+(r||\"odf\")+\"#\"+t+`\"/>\n`,` </rdf:Description>\n`].join(\"\")}function fot(e,t){return[' <rdf:Description rdf:about=\"'+e+`\">\n`,' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"'+t+`\"/>\n`,` </rdf:Description>\n`].join(\"\")}function hot(e){var t=[ei];t.push(`<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n`);for(var r=0;r!=e.length;++r)t.push(RU(e[r][0],e[r][1])),t.push(fot(\"\",e[r][0]));return t.push(RU(\"\",\"Document\",\"pkg\")),t.push(\"</rdf:RDF>\"),t.join(\"\")}function rfe(){return'<office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>SheetJS '+o3.version+\"</meta:generator></office:meta></office:document-meta>\"}var Ip=[[\"cp:category\",\"Category\"],[\"cp:contentStatus\",\"ContentStatus\"],[\"cp:keywords\",\"Keywords\"],[\"cp:lastModifiedBy\",\"LastAuthor\"],[\"cp:lastPrinted\",\"LastPrinted\"],[\"cp:revision\",\"RevNumber\"],[\"cp:version\",\"Version\"],[\"dc:creator\",\"Author\"],[\"dc:description\",\"Comments\"],[\"dc:identifier\",\"Identifier\"],[\"dc:language\",\"Language\"],[\"dc:subject\",\"Subject\"],[\"dc:title\",\"Title\"],[\"dcterms:created\",\"CreatedDate\",\"date\"],[\"dcterms:modified\",\"ModifiedDate\",\"date\"]];function q5(e,t,r,n,a){a[e]!=null||t==null||t===\"\"||(a[e]=t,t=zn(t),n[n.length]=r?Ht(e,t,r):Hi(e,t))}function nfe(e,t){var r=t||{},n=[ei,Ht(\"cp:coreProperties\",null,{\"xmlns:cp\":wi.CORE_PROPS,\"xmlns:dc\":wi.dc,\"xmlns:dcterms\":wi.dcterms,\"xmlns:dcmitype\":wi.dcmitype,\"xmlns:xsi\":wi.xsi})],a={};if(!e&&!r.Props)return n.join(\"\");e&&(e.CreatedDate!=null&&q5(\"dcterms:created\",typeof e.CreatedDate==\"string\"?e.CreatedDate:_M(e.CreatedDate,r.WTF),{\"xsi:type\":\"dcterms:W3CDTF\"},n,a),e.ModifiedDate!=null&&q5(\"dcterms:modified\",typeof e.ModifiedDate==\"string\"?e.ModifiedDate:_M(e.ModifiedDate,r.WTF),{\"xsi:type\":\"dcterms:W3CDTF\"},n,a));for(var i=0;i!=Ip.length;++i){var o=Ip[i],l=r.Props&&r.Props[o[1]]!=null?r.Props[o[1]]:e?e[o[1]]:null;l===!0?l=\"1\":l===!1?l=\"0\":typeof l==\"number\"&&(l=String(l)),l!=null&&q5(o[0],l,null,n,a)}return n.length>2&&(n[n.length]=\"</cp:coreProperties>\",n[1]=n[1].replace(\"/>\",\">\")),n.join(\"\")}var S0=[[\"Application\",\"Application\",\"string\"],[\"AppVersion\",\"AppVersion\",\"string\"],[\"Company\",\"Company\",\"string\"],[\"DocSecurity\",\"DocSecurity\",\"string\"],[\"Manager\",\"Manager\",\"string\"],[\"HyperlinksChanged\",\"HyperlinksChanged\",\"bool\"],[\"SharedDoc\",\"SharedDoc\",\"bool\"],[\"LinksUpToDate\",\"LinksUpToDate\",\"bool\"],[\"ScaleCrop\",\"ScaleCrop\",\"bool\"],[\"HeadingPairs\",\"HeadingPairs\",\"raw\"],[\"TitlesOfParts\",\"TitlesOfParts\",\"raw\"]],afe=[\"Worksheets\",\"SheetNames\",\"NamedRanges\",\"DefinedNames\",\"Chartsheets\",\"ChartNames\"];function ife(e){var t=[],r=Ht;return e||(e={}),e.Application=\"SheetJS\",t[t.length]=ei,t[t.length]=Ht(\"Properties\",null,{xmlns:wi.EXT_PROPS,\"xmlns:vt\":wi.vt}),S0.forEach(function(n){if(e[n[1]]!==void 0){var a;switch(n[2]){case\"string\":a=zn(String(e[n[1]]));break;case\"bool\":a=e[n[1]]?\"true\":\"false\";break}a!==void 0&&(t[t.length]=r(n[0],a))}}),t[t.length]=r(\"HeadingPairs\",r(\"vt:vector\",r(\"vt:variant\",\"<vt:lpstr>Worksheets</vt:lpstr>\")+r(\"vt:variant\",r(\"vt:i4\",String(e.Worksheets))),{size:2,baseType:\"variant\"})),t[t.length]=r(\"TitlesOfParts\",r(\"vt:vector\",e.SheetNames.map(function(n){return\"<vt:lpstr>\"+zn(n)+\"</vt:lpstr>\"}).join(\"\"),{size:e.Worksheets,baseType:\"lpstr\"})),t.length>2&&(t[t.length]=\"</Properties>\",t[1]=t[1].replace(\"/>\",\">\")),t.join(\"\")}function ofe(e){var t=[ei,Ht(\"Properties\",null,{xmlns:wi.CUST_PROPS,\"xmlns:vt\":wi.vt})];if(!e)return t.join(\"\");var r=1;return Ki(e).forEach(function(a){++r,t[t.length]=Ht(\"property\",kit(e[a]),{fmtid:\"{D5CDD505-2E9C-101B-9397-08002B2CF9AE}\",pid:r,name:zn(a)})}),t.length>2&&(t[t.length]=\"</Properties>\",t[1]=t[1].replace(\"/>\",\">\")),t.join(\"\")}var MU={Title:\"Title\",Subject:\"Subject\",Author:\"Author\",Keywords:\"Keywords\",Comments:\"Description\",LastAuthor:\"LastAuthor\",RevNumber:\"Revision\",Application:\"AppName\",LastPrinted:\"LastPrinted\",CreatedDate:\"Created\",ModifiedDate:\"LastSaved\",Category:\"Category\",Manager:\"Manager\",Company:\"Company\",AppVersion:\"Version\",ContentStatus:\"ContentStatus\",Identifier:\"Identifier\",Language:\"Language\"};function pot(e,t){var r=[];return Ki(MU).map(function(n){for(var a=0;a<Ip.length;++a)if(Ip[a][1]==n)return Ip[a];for(a=0;a<S0.length;++a)if(S0[a][1]==n)return S0[a];throw n}).forEach(function(n){if(e[n[1]]!=null){var a=t&&t.Props&&t.Props[n[1]]!=null?t.Props[n[1]]:e[n[1]];switch(n[2]){case\"date\":a=new Date(a).toISOString().replace(/\\.\\d*Z/,\"Z\");break}typeof a==\"number\"?a=String(a):a===!0||a===!1?a=a?\"1\":\"0\":a instanceof Date&&(a=new Date(a).toISOString().replace(/\\.\\d*Z/,\"\")),r.push(Hi(MU[n[1]]||n[1],a))}}),Ht(\"DocumentProperties\",r.join(\"\"),{xmlns:Dl.o})}function mot(e,t){var r=[\"Worksheets\",\"SheetNames\"],n=\"CustomDocumentProperties\",a=[];return e&&Ki(e).forEach(function(i){if(Object.prototype.hasOwnProperty.call(e,i)){for(var o=0;o<Ip.length;++o)if(i==Ip[o][1])return;for(o=0;o<S0.length;++o)if(i==S0[o][1])return;for(o=0;o<r.length;++o)if(i==r[o])return;var l=e[i],s=\"string\";typeof l==\"number\"?(s=\"float\",l=String(l)):l===!0||l===!1?(s=\"boolean\",l=l?\"1\":\"0\"):l=String(l),a.push(Ht(xU(i),l,{\"dt:dt\":s}))}}),t&&Ki(t).forEach(function(i){if(Object.prototype.hasOwnProperty.call(t,i)&&!(e&&Object.prototype.hasOwnProperty.call(e,i))){var o=t[i],l=\"string\";typeof o==\"number\"?(l=\"float\",o=String(o)):o===!0||o===!1?(l=\"boolean\",o=o?\"1\":\"0\"):o instanceof Date?(l=\"dateTime.tz\",o=o.toISOString()):o=String(o),a.push(Ht(xU(i),o,{\"dt:dt\":l}))}}),\"<\"+n+' xmlns=\"'+Dl.o+'\">'+a.join(\"\")+\"</\"+n+\">\"}function vot(e){var t=typeof e==\"string\"?new Date(Date.parse(e)):e,r=t.getTime()/1e3+11644473600,n=r%Math.pow(2,32),a=(r-n)/Math.pow(2,32);n*=1e7,a*=1e7;var i=n/Math.pow(2,32)|0;i>0&&(n=n%Math.pow(2,32),a+=i);var o=ct(8);return o.write_shift(4,n),o.write_shift(4,a),o}function PU(e,t){var r=ct(4),n=ct(4);switch(r.write_shift(4,e==80?31:e),e){case 3:n.write_shift(-4,t);break;case 5:n=ct(8),n.write_shift(8,t,\"f\");break;case 11:n.write_shift(4,t?1:0);break;case 64:n=vot(t);break;case 31:case 80:for(n=ct(4+2*(t.length+1)+(t.length%2?0:2)),n.write_shift(4,t.length+1),n.write_shift(0,t,\"dbcs\");n.l!=n.length;)n.write_shift(1,0);break;default:throw new Error(\"TypedPropertyValue unrecognized type \"+e+\" \"+t)}return zi([r,n])}var lfe=[\"CodePage\",\"Thumbnail\",\"_PID_LINKBASE\",\"_PID_HLINKS\",\"SystemIdentifier\",\"FMTID\"];function got(e){switch(typeof e){case\"boolean\":return 11;case\"number\":return(e|0)==e?3:5;case\"string\":return 31;case\"object\":if(e instanceof Date)return 64;break}return-1}function OU(e,t,r){var n=ct(8),a=[],i=[],o=8,l=0,s=ct(8),u=ct(8);if(s.write_shift(4,2),s.write_shift(4,1200),u.write_shift(4,1),i.push(s),a.push(u),o+=8+s.length,!t){u=ct(8),u.write_shift(4,0),a.unshift(u);var c=[ct(4)];for(c[0].write_shift(4,e.length),l=0;l<e.length;++l){var d=e[l][0];for(s=ct(8+2*(d.length+1)+(d.length%2?0:2)),s.write_shift(4,l+2),s.write_shift(4,d.length+1),s.write_shift(0,d,\"dbcs\");s.l!=s.length;)s.write_shift(1,0);c.push(s)}s=zi(c),i.unshift(s),o+=8+s.length}for(l=0;l<e.length;++l)if(!(t&&!t[e[l][0]])&&!(lfe.indexOf(e[l][0])>-1||afe.indexOf(e[l][0])>-1)&&e[l][1]!=null){var f=e[l][1],h=0;if(t){h=+t[e[l][0]];var p=r[h];if(p.p==\"version\"&&typeof f==\"string\"){var v=f.split(\".\");f=(+v[0]<<16)+(+v[1]||0)}s=PU(p.t,f)}else{var g=got(f);g==-1&&(g=31,f=String(f)),s=PU(g,f)}i.push(s),u=ct(8),u.write_shift(4,t?h:2+l),a.push(u),o+=8+s.length}var y=8*(i.length+1);for(l=0;l<i.length;++l)a[l].write_shift(4,y),y+=i[l].length;return n.write_shift(4,o),n.write_shift(4,i.length),zi([n].concat(a).concat(i))}function BU(e,t,r,n,a,i){var o=ct(a?68:48),l=[o];o.write_shift(2,65534),o.write_shift(2,0),o.write_shift(4,842412599),o.write_shift(16,Kn.utils.consts.HEADER_CLSID,\"hex\"),o.write_shift(4,a?2:1),o.write_shift(16,t,\"hex\"),o.write_shift(4,a?68:48);var s=OU(e,r,n);if(l.push(s),a){var u=OU(a,null,null);o.write_shift(16,i,\"hex\"),o.write_shift(4,68+s.length),l.push(u)}return zi(l)}function yot(e,t){t||(t=ct(e));for(var r=0;r<e;++r)t.write_shift(1,0);return t}function bot(e,t){return e.read_shift(t)===1}function Mo(e,t){return t||(t=ct(2)),t.write_shift(2,+!!e),t}function sfe(e){return e.read_shift(2,\"u\")}function os(e,t){return t||(t=ct(2)),t.write_shift(2,e),t}function ufe(e,t,r){return r||(r=ct(2)),r.write_shift(1,t==\"e\"?+e:+!!e),r.write_shift(1,t==\"e\"?1:0),r}function cfe(e,t,r){var n=e.read_shift(r&&r.biff>=12?2:1),a=\"sbcs-cont\";if(r&&r.biff>=8,!r||r.biff==8){var i=e.read_shift(1);i&&(a=\"dbcs-cont\")}else r.biff==12&&(a=\"wstr\");r.biff>=2&&r.biff<=5&&(a=\"cpstr\");var o=n?e.read_shift(n,a):\"\";return o}function xot(e){var t=e.t||\"\",r=ct(3);r.write_shift(2,t.length),r.write_shift(1,1);var n=ct(2*t.length);n.write_shift(2*t.length,t,\"utf16le\");var a=[r,n];return zi(a)}function Cot(e,t,r){var n;if(r){if(r.biff>=2&&r.biff<=5)return e.read_shift(t,\"cpstr\");if(r.biff>=12)return e.read_shift(t,\"dbcs-cont\")}var a=e.read_shift(1);return a===0?n=e.read_shift(t,\"sbcs-cont\"):n=e.read_shift(t,\"dbcs-cont\"),n}function Fot(e,t,r){var n=e.read_shift(r&&r.biff==2?1:2);return n===0?(e.l++,\"\"):Cot(e,n,r)}function Sot(e,t,r){if(r.biff>5)return Fot(e,t,r);var n=e.read_shift(1);return n===0?(e.l++,\"\"):e.read_shift(n,r.biff<=4||!e.lens?\"cpstr\":\"sbcs-cont\")}function dfe(e,t,r){return r||(r=ct(3+2*e.length)),r.write_shift(2,e.length),r.write_shift(1,1),r.write_shift(31,e,\"utf16le\"),r}function NU(e,t){t||(t=ct(6+e.length*2)),t.write_shift(4,1+e.length);for(var r=0;r<e.length;++r)t.write_shift(2,e.charCodeAt(r));return t.write_shift(2,0),t}function wot(e){var t=ct(512),r=0,n=e.Target;n.slice(0,7)==\"file://\"&&(n=n.slice(7));var a=n.indexOf(\"#\"),i=a>-1?31:23;switch(n.charAt(0)){case\"#\":i=28;break;case\".\":i&=-3;break}t.write_shift(4,2),t.write_shift(4,i);var o=[8,6815827,6619237,4849780,83];for(r=0;r<o.length;++r)t.write_shift(4,o[r]);if(i==28)n=n.slice(1),NU(n,t);else if(i&2){for(o=\"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \"),r=0;r<o.length;++r)t.write_shift(1,parseInt(o[r],16));var l=a>-1?n.slice(0,a):n;for(t.write_shift(4,2*(l.length+1)),r=0;r<l.length;++r)t.write_shift(2,l.charCodeAt(r));t.write_shift(2,0),i&8&&NU(a>-1?n.slice(a+1):\"\",t)}else{for(o=\"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \"),r=0;r<o.length;++r)t.write_shift(1,parseInt(o[r],16));for(var s=0;n.slice(s*3,s*3+3)==\"../\"||n.slice(s*3,s*3+3)==\"..\\\\\";)++s;for(t.write_shift(2,s),t.write_shift(4,n.length-3*s+1),r=0;r<n.length-3*s;++r)t.write_shift(1,n.charCodeAt(r+3*s)&255);for(t.write_shift(1,0),t.write_shift(2,65535),t.write_shift(2,57005),r=0;r<6;++r)t.write_shift(4,0)}return t.slice(0,t.l)}function tm(e,t,r,n){return n||(n=ct(6)),n.write_shift(2,e),n.write_shift(2,t),n.write_shift(2,r||0),n}function Eot(e,t,r){var n=r.biff>8?4:2,a=e.read_shift(n),i=e.read_shift(n,\"i\"),o=e.read_shift(n,\"i\");return[a,i,o]}function Dot(e){var t=e.read_shift(2),r=e.read_shift(2),n=e.read_shift(2),a=e.read_shift(2);return{s:{c:n,r:t},e:{c:a,r}}}function ffe(e,t){return t||(t=ct(8)),t.write_shift(2,e.s.r),t.write_shift(2,e.e.r),t.write_shift(2,e.s.c),t.write_shift(2,e.e.c),t}function MB(e,t,r){var n=1536,a=16;switch(r.bookType){case\"biff8\":break;case\"biff5\":n=1280,a=8;break;case\"biff4\":n=4,a=6;break;case\"biff3\":n=3,a=6;break;case\"biff2\":n=2,a=4;break;case\"xla\":break;default:throw new Error(\"unsupported BIFF version\")}var i=ct(a);return i.write_shift(2,n),i.write_shift(2,t),a>4&&i.write_shift(2,29282),a>6&&i.write_shift(2,1997),a>8&&(i.write_shift(2,49161),i.write_shift(2,1),i.write_shift(2,1798),i.write_shift(2,0)),i}function Aot(e,t){var r=!t||t.biff==8,n=ct(r?112:54);for(n.write_shift(t.biff==8?2:1,7),r&&n.write_shift(1,0),n.write_shift(4,859007059),n.write_shift(4,5458548|(r?0:536870912));n.l<n.length;)n.write_shift(1,r?0:32);return n}function _ot(e,t){var r=!t||t.biff>=8?2:1,n=ct(8+r*e.name.length);n.write_shift(4,e.pos),n.write_shift(1,e.hs||0),n.write_shift(1,e.dt),n.write_shift(1,e.name.length),t.biff>=8&&n.write_shift(1,1),n.write_shift(r*e.name.length,e.name,t.biff<8?\"sbcs\":\"utf16le\");var a=n.slice(0,n.l);return a.l=n.l,a}function Tot(e,t){var r=ct(8);r.write_shift(4,e.Count),r.write_shift(4,e.Unique);for(var n=[],a=0;a<e.length;++a)n[a]=xot(e[a]);var i=zi([r].concat(n));return i.parts=[r.length].concat(n.map(function(o){return o.length})),i}function Iot(){var e=ct(18);return e.write_shift(2,0),e.write_shift(2,0),e.write_shift(2,29280),e.write_shift(2,17600),e.write_shift(2,56),e.write_shift(2,0),e.write_shift(2,0),e.write_shift(2,1),e.write_shift(2,500),e}function kot(e){var t=ct(18),r=1718;return e&&e.RTL&&(r|=64),t.write_shift(2,r),t.write_shift(4,0),t.write_shift(4,64),t.write_shift(4,0),t.write_shift(4,0),t}function Rot(e,t){var r=e.name||\"Arial\",n=t&&t.biff==5,a=n?15+r.length:16+2*r.length,i=ct(a);return i.write_shift(2,e.sz*20),i.write_shift(4,0),i.write_shift(2,400),i.write_shift(4,0),i.write_shift(2,0),i.write_shift(1,r.length),n||i.write_shift(1,1),i.write_shift((n?1:2)*r.length,r,n?\"sbcs\":\"utf16le\"),i}function Mot(e,t,r,n){var a=ct(10);return tm(e,t,n,a),a.write_shift(4,r),a}function Pot(e,t,r,n,a){var i=!a||a.biff==8,o=ct(8+ +i+(1+i)*r.length);return tm(e,t,n,o),o.write_shift(2,r.length),i&&o.write_shift(1,1),o.write_shift((1+i)*r.length,r,i?\"utf16le\":\"sbcs\"),o}function Oot(e,t,r,n){var a=r&&r.biff==5;n||(n=ct(a?3+t.length:5+2*t.length)),n.write_shift(2,e),n.write_shift(a?1:2,t.length),a||n.write_shift(1,1),n.write_shift((a?1:2)*t.length,t,a?\"sbcs\":\"utf16le\");var i=n.length>n.l?n.slice(0,n.l):n;return i.l==null&&(i.l=i.length),i}function Bot(e,t){var r=t.biff==8||!t.biff?4:2,n=ct(2*r+6);return n.write_shift(r,e.s.r),n.write_shift(r,e.e.r+1),n.write_shift(2,e.s.c),n.write_shift(2,e.e.c+1),n.write_shift(2,0),n}function $U(e,t,r,n){var a=r&&r.biff==5;n||(n=ct(a?16:20)),n.write_shift(2,0),e.style?(n.write_shift(2,e.numFmtId||0),n.write_shift(2,65524)):(n.write_shift(2,e.numFmtId||0),n.write_shift(2,t<<4));var i=0;return e.numFmtId>0&&a&&(i|=1024),n.write_shift(4,i),n.write_shift(4,0),a||n.write_shift(4,0),n.write_shift(2,0),n}function Not(e){var t=ct(8);return t.write_shift(4,0),t.write_shift(2,0),t.write_shift(2,0),t}function $ot(e,t,r,n,a,i){var o=ct(8);return tm(e,t,n,o),ufe(r,i,o),o}function Lot(e,t,r,n){var a=ct(14);return tm(e,t,n,a),em(r,a),a}function jot(e,t,r){if(r.biff<8)return zot(e,t,r);for(var n=[],a=e.l+t,i=e.read_shift(r.biff>8?4:2);i--!==0;)n.push(Eot(e,r.biff>8?12:6,r));if(e.l!=a)throw new Error(\"Bad ExternSheet: \"+e.l+\" != \"+a);return n}function zot(e,t,r){e[e.l+1]==3&&e[e.l]++;var n=cfe(e,t,r);return n.charCodeAt(0)==3?n.slice(1):n}function Hot(e){var t=ct(2+e.length*8);t.write_shift(2,e.length);for(var r=0;r<e.length;++r)ffe(e[r],t);return t}function Vot(e){var t=ct(24),r=Ei(e[0]);t.write_shift(2,r.r),t.write_shift(2,r.r),t.write_shift(2,r.c),t.write_shift(2,r.c);for(var n=\"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \"),a=0;a<16;++a)t.write_shift(1,parseInt(n[a],16));return zi([t,wot(e[1])])}function Wot(e){var t=e[1].Tooltip,r=ct(10+2*(t.length+1));r.write_shift(2,2048);var n=Ei(e[0]);r.write_shift(2,n.r),r.write_shift(2,n.r),r.write_shift(2,n.c),r.write_shift(2,n.c);for(var a=0;a<t.length;++a)r.write_shift(2,t.charCodeAt(a));return r.write_shift(2,0),r}function Got(e){return e||(e=ct(4)),e.write_shift(2,1),e.write_shift(2,1),e}function Uot(e,t,r){if(!r.cellStyles)return pc(e,t);var n=r&&r.biff>=12?4:2,a=e.read_shift(n),i=e.read_shift(n),o=e.read_shift(n),l=e.read_shift(n),s=e.read_shift(2);n==2&&(e.l+=2);var u={s:a,e:i,w:o,ixfe:l,flags:s};return(r.biff>=5||!r.biff)&&(u.level=s>>8&7),u}function Kot(e,t){var r=ct(12);r.write_shift(2,t),r.write_shift(2,t),r.write_shift(2,e.width*256),r.write_shift(2,0);var n=0;return e.hidden&&(n|=1),r.write_shift(1,n),n=e.level||0,r.write_shift(1,n),r.write_shift(2,0),r}function Yot(e){for(var t=ct(2*e),r=0;r<e;++r)t.write_shift(2,r+1);return t}function qot(e,t,r){var n=ct(15);return Yx(n,e,t),n.write_shift(8,r,\"f\"),n}function Xot(e,t,r){var n=ct(9);return Yx(n,e,t),n.write_shift(2,r),n}var Jot=function(){var e={1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127,8:865,9:437,10:850,11:437,13:437,14:850,15:437,16:850,17:437,18:850,19:932,20:850,21:437,22:850,23:865,24:437,25:437,26:850,27:437,28:863,29:850,31:852,34:852,35:852,36:860,37:850,38:866,55:850,64:852,77:936,78:949,79:950,80:874,87:1252,88:1252,89:1252,108:863,134:737,135:852,136:857,204:1257,255:16969},t=FB({1:437,2:850,3:1252,4:1e4,100:852,101:866,102:865,103:861,104:895,105:620,106:737,107:857,120:950,121:949,122:936,123:932,124:874,125:1255,126:1256,150:10007,151:10029,152:10006,200:1250,201:1251,202:1254,203:1253,0:20127});function r(l,s){var u=[],c=Qp(1);switch(s.type){case\"base64\":c=Qs(ud(l));break;case\"binary\":c=Qs(l);break;case\"buffer\":case\"array\":c=l;break}El(c,0);var d=c.read_shift(1),f=!!(d&136),h=!1,p=!1;switch(d){case 2:break;case 3:break;case 48:h=!0,f=!0;break;case 49:h=!0,f=!0;break;case 131:break;case 139:break;case 140:p=!0;break;case 245:break;default:throw new Error(\"DBF Unsupported Version: \"+d.toString(16))}var v=0,g=521;d==2&&(v=c.read_shift(2)),c.l+=3,d!=2&&(v=c.read_shift(4)),v>1048576&&(v=1e6),d!=2&&(g=c.read_shift(2));var y=c.read_shift(2),b=s.codepage||1252;d!=2&&(c.l+=16,c.read_shift(1),c[c.l]!==0&&(b=e[c[c.l]]),c.l+=1,c.l+=2),p&&(c.l+=36);for(var x=[],F={},S=Math.min(c.length,d==2?521:g-10-(h?264:0)),E=p?32:11;c.l<S&&c[c.l]!=13;)switch(F={},F.name=l3.utils.decode(b,c.slice(c.l,c.l+E)).replace(/[\\u0000\\r\\n].*$/g,\"\"),c.l+=E,F.type=String.fromCharCode(c.read_shift(1)),d!=2&&!p&&(F.offset=c.read_shift(4)),F.len=c.read_shift(1),d==2&&(F.offset=c.read_shift(2)),F.dec=c.read_shift(1),F.name.length&&x.push(F),d!=2&&(c.l+=p?13:14),F.type){case\"B\":(!h||F.len!=8)&&s.WTF&&console.log(\"Skipping \"+F.name+\":\"+F.type);break;case\"G\":case\"P\":s.WTF&&console.log(\"Skipping \"+F.name+\":\"+F.type);break;case\"+\":case\"0\":case\"@\":case\"C\":case\"D\":case\"F\":case\"I\":case\"L\":case\"M\":case\"N\":case\"O\":case\"T\":case\"Y\":break;default:throw new Error(\"Unknown Field Type: \"+F.type)}if(c[c.l]!==13&&(c.l=g-1),c.read_shift(1)!==13)throw new Error(\"DBF Terminator not found \"+c.l+\" \"+c[c.l]);c.l=g;var w=0,D=0;for(u[0]=[],D=0;D!=x.length;++D)u[0][D]=x[D].name;for(;v-- >0;){if(c[c.l]===42){c.l+=y;continue}for(++c.l,u[++w]=[],D=0,D=0;D!=x.length;++D){var A=c.slice(c.l,c.l+x[D].len);c.l+=x[D].len,El(A,0);var _=l3.utils.decode(b,A);switch(x[D].type){case\"C\":_.trim().length&&(u[w][D]=_.replace(/\\s+$/,\"\"));break;case\"D\":_.length===8?u[w][D]=new Date(+_.slice(0,4),+_.slice(4,6)-1,+_.slice(6,8)):u[w][D]=_;break;case\"F\":u[w][D]=parseFloat(_.trim());break;case\"+\":case\"I\":u[w][D]=p?A.read_shift(-4,\"i\")^2147483648:A.read_shift(4,\"i\");break;case\"L\":switch(_.trim().toUpperCase()){case\"Y\":case\"T\":u[w][D]=!0;break;case\"N\":case\"F\":u[w][D]=!1;break;case\"\":case\"?\":break;default:throw new Error(\"DBF Unrecognized L:|\"+_+\"|\")}break;case\"M\":if(!f)throw new Error(\"DBF Unexpected MEMO for type \"+d.toString(16));u[w][D]=\"##MEMO##\"+(p?parseInt(_.trim(),10):A.read_shift(4));break;case\"N\":_=_.replace(/\\u0000/g,\"\").trim(),_&&_!=\".\"&&(u[w][D]=+_||0);break;case\"@\":u[w][D]=new Date(A.read_shift(-8,\"f\")-621356832e5);break;case\"T\":u[w][D]=new Date((A.read_shift(4)-2440588)*864e5+A.read_shift(4));break;case\"Y\":u[w][D]=A.read_shift(4,\"i\")/1e4+A.read_shift(4,\"i\")/1e4*Math.pow(2,32);break;case\"O\":u[w][D]=-A.read_shift(-8,\"f\");break;case\"B\":if(h&&x[D].len==8){u[w][D]=A.read_shift(8,\"f\");break}case\"G\":case\"P\":A.l+=x[D].len;break;case\"0\":if(x[D].name===\"_NullFlags\")break;default:throw new Error(\"DBF Unsupported data type \"+x[D].type)}}}if(d!=2&&c.l<c.length&&c[c.l++]!=26)throw new Error(\"DBF EOF Marker missing \"+(c.l-1)+\" of \"+c.length+\" \"+c[c.l-1].toString(16));return s&&s.sheetRows&&(u=u.slice(0,s.sheetRows)),s.DBF=x,u}function n(l,s){var u=s||{};u.dateNF||(u.dateNF=\"yyyymmdd\");var c=jg(r(l,u),u);return c[\"!cols\"]=u.DBF.map(function(d){return{wch:d.len,DBF:d}}),delete u.DBF,c}function a(l,s){try{return Tm(n(l,s),s)}catch(u){if(s&&s.WTF)throw u}return{SheetNames:[],Sheets:{}}}var i={B:8,C:250,L:1,D:8,\"?\":0,\"\":0};function o(l,s){var u=s||{};if(+u.codepage>=0&&p2(+u.codepage),u.type==\"string\")throw new Error(\"Cannot write DBF to JS string\");var c=fl(),d=x3(l,{header:1,raw:!0,cellDates:!0}),f=d[0],h=d.slice(1),p=l[\"!cols\"]||[],v=0,g=0,y=0,b=1;for(v=0;v<f.length;++v){if(((p[v]||{}).DBF||{}).name){f[v]=p[v].DBF.name,++y;continue}if(f[v]!=null){if(++y,typeof f[v]==\"number\"&&(f[v]=f[v].toString(10)),typeof f[v]!=\"string\")throw new Error(\"DBF Invalid column name \"+f[v]+\" |\"+typeof f[v]+\"|\");if(f.indexOf(f[v])!==v){for(g=0;g<1024;++g)if(f.indexOf(f[v]+\"_\"+g)==-1){f[v]+=\"_\"+g;break}}}}var x=la(l[\"!ref\"]),F=[],S=[],E=[];for(v=0;v<=x.e.c-x.s.c;++v){var w=\"\",D=\"\",A=0,_=[];for(g=0;g<h.length;++g)h[g][v]!=null&&_.push(h[g][v]);if(_.length==0||f[v]==null){F[v]=\"?\";continue}for(g=0;g<_.length;++g){switch(typeof _[g]){case\"number\":D=\"B\";break;case\"string\":D=\"C\";break;case\"boolean\":D=\"L\";break;case\"object\":D=_[g]instanceof Date?\"D\":\"C\";break;default:D=\"C\"}A=Math.max(A,String(_[g]).length),w=w&&w!=D?\"C\":D}A>250&&(A=250),D=((p[v]||{}).DBF||{}).type,D==\"C\"&&p[v].DBF.len>A&&(A=p[v].DBF.len),w==\"B\"&&D==\"N\"&&(w=\"N\",E[v]=p[v].DBF.dec,A=p[v].DBF.len),S[v]=w==\"C\"||D==\"N\"?A:i[w]||0,b+=S[v],F[v]=w}var I=c.next(32);for(I.write_shift(4,318902576),I.write_shift(4,h.length),I.write_shift(2,296+32*y),I.write_shift(2,b),v=0;v<4;++v)I.write_shift(4,0);for(I.write_shift(4,0|(+t[pde]||3)<<8),v=0,g=0;v<f.length;++v)if(f[v]!=null){var M=c.next(32),T=(f[v].slice(-10)+\"\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\").slice(0,11);M.write_shift(1,T,\"sbcs\"),M.write_shift(1,F[v]==\"?\"?\"C\":F[v],\"sbcs\"),M.write_shift(4,g),M.write_shift(1,S[v]||i[F[v]]||0),M.write_shift(1,E[v]||0),M.write_shift(1,2),M.write_shift(4,0),M.write_shift(1,0),M.write_shift(4,0),M.write_shift(4,0),g+=S[v]||i[F[v]]||0}var k=c.next(264);for(k.write_shift(4,13),v=0;v<65;++v)k.write_shift(4,0);for(v=0;v<h.length;++v){var R=c.next(b);for(R.write_shift(1,0),g=0;g<f.length;++g)if(f[g]!=null)switch(F[g]){case\"L\":R.write_shift(1,h[v][g]==null?63:h[v][g]?84:70);break;case\"B\":R.write_shift(8,h[v][g]||0,\"f\");break;case\"N\":var P=\"0\";for(typeof h[v][g]==\"number\"&&(P=h[v][g].toFixed(E[g]||0)),y=0;y<S[g]-P.length;++y)R.write_shift(1,32);R.write_shift(1,P,\"sbcs\");break;case\"D\":h[v][g]?(R.write_shift(4,(\"0000\"+h[v][g].getFullYear()).slice(-4),\"sbcs\"),R.write_shift(2,(\"00\"+(h[v][g].getMonth()+1)).slice(-2),\"sbcs\"),R.write_shift(2,(\"00\"+h[v][g].getDate()).slice(-2),\"sbcs\")):R.write_shift(8,\"00000000\",\"sbcs\");break;case\"C\":var B=String(h[v][g]!=null?h[v][g]:\"\").slice(0,S[g]);for(R.write_shift(1,B,\"sbcs\"),y=0;y<S[g]-B.length;++y)R.write_shift(1,32);break}}return c.next(1).write_shift(1,26),c.end()}return{to_workbook:a,to_sheet:n,from_sheet:o}}(),Zot=function(){var e={AA:\"À\",BA:\"Á\",CA:\"Â\",DA:195,HA:\"Ä\",JA:197,AE:\"È\",BE:\"É\",CE:\"Ê\",HE:\"Ë\",AI:\"Ì\",BI:\"Í\",CI:\"Î\",HI:\"Ï\",AO:\"Ò\",BO:\"Ó\",CO:\"Ô\",DO:213,HO:\"Ö\",AU:\"Ù\",BU:\"Ú\",CU:\"Û\",HU:\"Ü\",Aa:\"à\",Ba:\"á\",Ca:\"â\",Da:227,Ha:\"ä\",Ja:229,Ae:\"è\",Be:\"é\",Ce:\"ê\",He:\"ë\",Ai:\"ì\",Bi:\"í\",Ci:\"î\",Hi:\"ï\",Ao:\"ò\",Bo:\"ó\",Co:\"ô\",Do:245,Ho:\"ö\",Au:\"ù\",Bu:\"ú\",Cu:\"û\",Hu:\"ü\",KC:\"Ç\",Kc:\"ç\",q:\"æ\",z:\"œ\",a:\"Æ\",j:\"Œ\",DN:209,Dn:241,Hy:255,S:169,c:170,R:174,\"B \":180,0:176,1:177,2:178,3:179,5:181,6:182,7:183,Q:185,k:186,b:208,i:216,l:222,s:240,y:248,\"!\":161,'\"':162,\"#\":163,\"(\":164,\"%\":165,\"'\":167,\"H \":168,\"+\":171,\";\":187,\"<\":188,\"=\":189,\">\":190,\"?\":191,\"{\":223},t=new RegExp(\"\\x1BN(\"+Ki(e).join(\"|\").replace(/\\|\\|\\|/,\"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\")+\"|\\\\|)\",\"gm\"),r=function(f,h){var p=e[h];return typeof p==\"number\"?sU(p):p},n=function(f,h,p){var v=h.charCodeAt(0)-32<<4|p.charCodeAt(0)-48;return v==59?f:sU(v)};e[\"|\"]=254;function a(f,h){switch(h.type){case\"base64\":return i(ud(f),h);case\"binary\":return i(f,h);case\"buffer\":return i(In&&Buffer.isBuffer(f)?f.toString(\"binary\"):Vx(f),h);case\"array\":return i(ID(f),h)}throw new Error(\"Unrecognized type \"+h.type)}function i(f,h){var p=f.split(/[\\n\\r]+/),v=-1,g=-1,y=0,b=0,x=[],F=[],S=null,E={},w=[],D=[],A=[],_=0,I;for(+h.codepage>=0&&p2(+h.codepage);y!==p.length;++y){_=0;var M=p[y].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g,n).replace(t,r),T=M.replace(/;;/g,\"\\0\").split(\";\").map(function(V){return V.replace(/\\u0000/g,\";\")}),k=T[0],R;if(M.length>0)switch(k){case\"ID\":break;case\"E\":break;case\"B\":break;case\"O\":break;case\"W\":break;case\"P\":T[1].charAt(0)==\"P\"&&F.push(M.slice(3).replace(/;;/g,\";\"));break;case\"C\":var P=!1,B=!1,N=!1,O=!1,z=-1,W=-1;for(b=1;b<T.length;++b)switch(T[b].charAt(0)){case\"A\":break;case\"X\":g=parseInt(T[b].slice(1))-1,B=!0;break;case\"Y\":for(v=parseInt(T[b].slice(1))-1,B||(g=0),I=x.length;I<=v;++I)x[I]=[];break;case\"K\":R=T[b].slice(1),R.charAt(0)==='\"'?R=R.slice(1,R.length-1):R===\"TRUE\"?R=!0:R===\"FALSE\"?R=!1:isNaN(qc(R))?isNaN(v2(R).getDate())||(R=zo(R)):(R=qc(R),S!==null&&Dde(S)&&(R=Ide(R))),P=!0;break;case\"E\":O=!0;var L=Xlt(T[b].slice(1),{r:v,c:g});x[v][g]=[x[v][g],L];break;case\"S\":N=!0,x[v][g]=[x[v][g],\"S5S\"];break;case\"G\":break;case\"R\":z=parseInt(T[b].slice(1))-1;break;case\"C\":W=parseInt(T[b].slice(1))-1;break;default:if(h&&h.WTF)throw new Error(\"SYLK bad record \"+M)}if(P&&(x[v][g]&&x[v][g].length==2?x[v][g][0]=R:x[v][g]=R,S=null),N){if(O)throw new Error(\"SYLK shared formula cannot have own formula\");var j=z>-1&&x[z][W];if(!j||!j[1])throw new Error(\"SYLK shared formula cannot find base\");x[v][g][1]=Jlt(j[1],{r:v-z,c:g-W})}break;case\"F\":var H=0;for(b=1;b<T.length;++b)switch(T[b].charAt(0)){case\"X\":g=parseInt(T[b].slice(1))-1,++H;break;case\"Y\":for(v=parseInt(T[b].slice(1))-1,I=x.length;I<=v;++I)x[I]=[];break;case\"M\":_=parseInt(T[b].slice(1))/20;break;case\"F\":break;case\"G\":break;case\"P\":S=F[parseInt(T[b].slice(1))];break;case\"S\":break;case\"D\":break;case\"N\":break;case\"W\":for(A=T[b].slice(1).split(\" \"),I=parseInt(A[0],10);I<=parseInt(A[1],10);++I)_=parseInt(A[2],10),D[I-1]=_===0?{hidden:!0}:{wch:_},PB(D[I-1]);break;case\"C\":g=parseInt(T[b].slice(1))-1,D[g]||(D[g]={});break;case\"R\":v=parseInt(T[b].slice(1))-1,w[v]||(w[v]={}),_>0?(w[v].hpt=_,w[v].hpx=gfe(_)):_===0&&(w[v].hidden=!0);break;default:if(h&&h.WTF)throw new Error(\"SYLK bad record \"+M)}H<1&&(S=null);break;default:if(h&&h.WTF)throw new Error(\"SYLK bad record \"+M)}}return w.length>0&&(E[\"!rows\"]=w),D.length>0&&(E[\"!cols\"]=D),h&&h.sheetRows&&(x=x.slice(0,h.sheetRows)),[x,E]}function o(f,h){var p=a(f,h),v=p[0],g=p[1],y=jg(v,h);return Ki(g).forEach(function(b){y[b]=g[b]}),y}function l(f,h){return Tm(o(f,h),h)}function s(f,h,p,v){var g=\"C;Y\"+(p+1)+\";X\"+(v+1)+\";K\";switch(f.t){case\"n\":g+=f.v||0,f.f&&!f.F&&(g+=\";E\"+BB(f.f,{r:p,c:v}));break;case\"b\":g+=f.v?\"TRUE\":\"FALSE\";break;case\"e\":g+=f.w||f.v;break;case\"d\":g+='\"'+(f.w||f.v)+'\"';break;case\"s\":g+='\"'+f.v.replace(/\"/g,\"\").replace(/;/g,\";;\")+'\"';break}return g}function u(f,h){h.forEach(function(p,v){var g=\"F;W\"+(v+1)+\" \"+(v+1)+\" \";p.hidden?g+=\"0\":(typeof p.width==\"number\"&&!p.wpx&&(p.wpx=v3(p.width)),typeof p.wpx==\"number\"&&!p.wch&&(p.wch=g3(p.wpx)),typeof p.wch==\"number\"&&(g+=Math.round(p.wch))),g.charAt(g.length-1)!=\" \"&&f.push(g)})}function c(f,h){h.forEach(function(p,v){var g=\"F;\";p.hidden?g+=\"M0;\":p.hpt?g+=\"M\"+20*p.hpt+\";\":p.hpx&&(g+=\"M\"+20*y3(p.hpx)+\";\"),g.length>2&&f.push(g+\"R\"+(v+1))})}function d(f,h){var p=[\"ID;PWXL;N;E\"],v=[],g=la(f[\"!ref\"]),y,b=Array.isArray(f),x=`\\r\n`;p.push(\"P;PGeneral\"),p.push(\"F;P0;DG0G8;M255\"),f[\"!cols\"]&&u(p,f[\"!cols\"]),f[\"!rows\"]&&c(p,f[\"!rows\"]),p.push(\"B;Y\"+(g.e.r-g.s.r+1)+\";X\"+(g.e.c-g.s.c+1)+\";D\"+[g.s.c,g.s.r,g.e.c,g.e.r].join(\" \"));for(var F=g.s.r;F<=g.e.r;++F)for(var S=g.s.c;S<=g.e.c;++S){var E=Vn({r:F,c:S});y=b?(f[F]||[])[S]:f[E],!(!y||y.v==null&&(!y.f||y.F))&&v.push(s(y,f,F,S))}return p.join(x)+x+v.join(x)+x+\"E\"+x}return{to_workbook:l,to_sheet:o,from_sheet:d}}(),Qot=function(){function e(i,o){switch(o.type){case\"base64\":return t(ud(i),o);case\"binary\":return t(i,o);case\"buffer\":return t(In&&Buffer.isBuffer(i)?i.toString(\"binary\"):Vx(i),o);case\"array\":return t(ID(i),o)}throw new Error(\"Unrecognized type \"+o.type)}function t(i,o){for(var l=i.split(`\n`),s=-1,u=-1,c=0,d=[];c!==l.length;++c){if(l[c].trim()===\"BOT\"){d[++s]=[],u=0;continue}if(!(s<0)){var f=l[c].trim().split(\",\"),h=f[0],p=f[1];++c;for(var v=l[c]||\"\";(v.match(/[\"]/g)||[]).length&1&&c<l.length-1;)v+=`\n`+l[++c];switch(v=v.trim(),+h){case-1:if(v===\"BOT\"){d[++s]=[],u=0;continue}else if(v!==\"EOD\")throw new Error(\"Unrecognized DIF special command \"+v);break;case 0:v===\"TRUE\"?d[s][u]=!0:v===\"FALSE\"?d[s][u]=!1:isNaN(qc(p))?isNaN(v2(p).getDate())?d[s][u]=p:d[s][u]=zo(p):d[s][u]=qc(p),++u;break;case 1:v=v.slice(1,v.length-1),v=v.replace(/\"\"/g,'\"'),v&&v.match(/^=\".*\"$/)&&(v=v.slice(2,-1)),d[s][u++]=v!==\"\"?v:null;break}if(v===\"EOD\")break}}return o&&o.sheetRows&&(d=d.slice(0,o.sheetRows)),d}function r(i,o){return jg(e(i,o),o)}function n(i,o){return Tm(r(i,o),o)}var a=function(){var i=function(s,u,c,d,f){s.push(u),s.push(c+\",\"+d),s.push('\"'+f.replace(/\"/g,'\"\"')+'\"')},o=function(s,u,c,d){s.push(u+\",\"+c),s.push(u==1?'\"'+d.replace(/\"/g,'\"\"')+'\"':d)};return function(s){var u=[],c=la(s[\"!ref\"]),d,f=Array.isArray(s);i(u,\"TABLE\",0,1,\"sheetjs\"),i(u,\"VECTORS\",0,c.e.r-c.s.r+1,\"\"),i(u,\"TUPLES\",0,c.e.c-c.s.c+1,\"\"),i(u,\"DATA\",0,0,\"\");for(var h=c.s.r;h<=c.e.r;++h){o(u,-1,0,\"BOT\");for(var p=c.s.c;p<=c.e.c;++p){var v=Vn({r:h,c:p});if(d=f?(s[h]||[])[p]:s[v],!d){o(u,1,0,\"\");continue}switch(d.t){case\"n\":var g=d.w;!g&&d.v!=null&&(g=d.v),g==null?d.f&&!d.F?o(u,1,0,\"=\"+d.f):o(u,1,0,\"\"):o(u,0,g,\"V\");break;case\"b\":o(u,0,d.v?1:0,d.v?\"TRUE\":\"FALSE\");break;case\"s\":o(u,1,0,isNaN(d.v)?d.v:'=\"'+d.v+'\"');break;case\"d\":d.w||(d.w=Wf(d.z||Aa[14],vl(zo(d.v)))),o(u,0,d.w,\"V\");break;default:o(u,1,0,\"\")}}}o(u,-1,0,\"EOD\");var y=`\\r\n`,b=u.join(y);return b}}();return{to_workbook:n,to_sheet:r,from_sheet:a}}(),hfe=function(){function e(d){return d.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,`\n`)}function t(d){return d.replace(/\\\\/g,\"\\\\b\").replace(/:/g,\"\\\\c\").replace(/\\n/g,\"\\\\n\")}function r(d,f){for(var h=d.split(`\n`),p=-1,v=-1,g=0,y=[];g!==h.length;++g){var b=h[g].trim().split(\":\");if(b[0]===\"cell\"){var x=Ei(b[1]);if(y.length<=x.r)for(p=y.length;p<=x.r;++p)y[p]||(y[p]=[]);switch(p=x.r,v=x.c,b[2]){case\"t\":y[p][v]=e(b[3]);break;case\"v\":y[p][v]=+b[3];break;case\"vtf\":var F=b[b.length-1];case\"vtc\":switch(b[3]){case\"nl\":y[p][v]=!!+b[4];break;default:y[p][v]=+b[4];break}b[2]==\"vtf\"&&(y[p][v]=[y[p][v],F])}}}return f&&f.sheetRows&&(y=y.slice(0,f.sheetRows)),y}function n(d,f){return jg(r(d,f),f)}function a(d,f){return Tm(n(d,f),f)}var i=[\"socialcalc:version:1.5\",\"MIME-Version: 1.0\",\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"].join(`\n`),o=[\"--SocialCalcSpreadsheetControlSave\",\"Content-type: text/plain; charset=UTF-8\"].join(`\n`)+`\n`,l=[\"# SocialCalc Spreadsheet Control Save\",\"part:sheet\"].join(`\n`),s=\"--SocialCalcSpreadsheetControlSave--\";function u(d){if(!d||!d[\"!ref\"])return\"\";for(var f=[],h=[],p,v=\"\",g=Ll(d[\"!ref\"]),y=Array.isArray(d),b=g.s.r;b<=g.e.r;++b)for(var x=g.s.c;x<=g.e.c;++x)if(v=Vn({r:b,c:x}),p=y?(d[b]||[])[x]:d[v],!(!p||p.v==null||p.t===\"z\")){switch(h=[\"cell\",v,\"t\"],p.t){case\"s\":case\"str\":h.push(t(p.v));break;case\"n\":p.f?(h[2]=\"vtf\",h[3]=\"n\",h[4]=p.v,h[5]=t(p.f)):(h[2]=\"v\",h[3]=p.v);break;case\"b\":h[2]=\"vt\"+(p.f?\"f\":\"c\"),h[3]=\"nl\",h[4]=p.v?\"1\":\"0\",h[5]=t(p.f||(p.v?\"TRUE\":\"FALSE\"));break;case\"d\":var F=vl(zo(p.v));h[2]=\"vtc\",h[3]=\"nd\",h[4]=\"\"+F,h[5]=p.w||Wf(p.z||Aa[14],F);break;case\"e\":continue}f.push(h.join(\":\"))}return f.push(\"sheet:c:\"+(g.e.c-g.s.c+1)+\":r:\"+(g.e.r-g.s.r+1)+\":tvf:1\"),f.push(\"valueformat:1:text-wiki\"),f.join(`\n`)}function c(d){return[i,o,l,o,u(d),s].join(`\n`)}return{to_workbook:a,to_sheet:n,from_sheet:c}}(),elt=function(){function e(c,d,f,h,p){p.raw?d[f][h]=c:c===\"\"||(c===\"TRUE\"?d[f][h]=!0:c===\"FALSE\"?d[f][h]=!1:isNaN(qc(c))?isNaN(v2(c).getDate())?d[f][h]=c:d[f][h]=zo(c):d[f][h]=qc(c))}function t(c,d){var f=d||{},h=[];if(!c||c.length===0)return h;for(var p=c.split(/[\\r\\n]/),v=p.length-1;v>=0&&p[v].length===0;)--v;for(var g=10,y=0,b=0;b<=v;++b)y=p[b].indexOf(\" \"),y==-1?y=p[b].length:y++,g=Math.max(g,y);for(b=0;b<=v;++b){h[b]=[];var x=0;for(e(p[b].slice(0,g).trim(),h,b,x,f),x=1;x<=(p[b].length-g)/10+1;++x)e(p[b].slice(g+(x-1)*10,g+x*10).trim(),h,b,x,f)}return f.sheetRows&&(h=h.slice(0,f.sheetRows)),h}var r={44:\",\",9:\"\t\",59:\";\",124:\"|\"},n={44:3,9:2,59:1,124:0};function a(c){for(var d={},f=!1,h=0,p=0;h<c.length;++h)(p=c.charCodeAt(h))==34?f=!f:!f&&p in r&&(d[p]=(d[p]||0)+1);p=[];for(h in d)Object.prototype.hasOwnProperty.call(d,h)&&p.push([d[h],h]);if(!p.length){d=n;for(h in d)Object.prototype.hasOwnProperty.call(d,h)&&p.push([d[h],h])}return p.sort(function(v,g){return v[0]-g[0]||n[v[1]]-n[g[1]]}),r[p.pop()[1]]||44}function i(c,d){var f=d||{},h=\"\",p=f.dense?[]:{},v={s:{c:0,r:0},e:{c:0,r:0}};c.slice(0,4)==\"sep=\"?c.charCodeAt(5)==13&&c.charCodeAt(6)==10?(h=c.charAt(4),c=c.slice(7)):c.charCodeAt(5)==13||c.charCodeAt(5)==10?(h=c.charAt(4),c=c.slice(6)):h=a(c.slice(0,1024)):f&&f.FS?h=f.FS:h=a(c.slice(0,1024));var g=0,y=0,b=0,x=0,F=0,S=h.charCodeAt(0),E=!1,w=0,D=c.charCodeAt(0);c=c.replace(/\\r\\n/mg,`\n`);var A=f.dateNF!=null?vit(f.dateNF):null;function _(){var I=c.slice(x,F),M={};if(I.charAt(0)=='\"'&&I.charAt(I.length-1)=='\"'&&(I=I.slice(1,-1).replace(/\"\"/g,'\"')),I.length===0)M.t=\"z\";else if(f.raw)M.t=\"s\",M.v=I;else if(I.trim().length===0)M.t=\"s\",M.v=I;else if(I.charCodeAt(0)==61)I.charCodeAt(1)==34&&I.charCodeAt(I.length-1)==34?(M.t=\"s\",M.v=I.slice(2,-1).replace(/\"\"/g,'\"')):Zlt(I)?(M.t=\"n\",M.f=I.slice(1)):(M.t=\"s\",M.v=I);else if(I==\"TRUE\")M.t=\"b\",M.v=!0;else if(I==\"FALSE\")M.t=\"b\",M.v=!1;else if(!isNaN(b=qc(I)))M.t=\"n\",f.cellText!==!1&&(M.w=I),M.v=b;else if(!isNaN(v2(I).getDate())||A&&I.match(A)){M.z=f.dateNF||Aa[14];var T=0;A&&I.match(A)&&(I=git(I,f.dateNF,I.match(A)||[]),T=1),f.cellDates?(M.t=\"d\",M.v=zo(I,T)):(M.t=\"n\",M.v=vl(zo(I,T))),f.cellText!==!1&&(M.w=Wf(M.z,M.v instanceof Date?vl(M.v):M.v)),f.cellNF||delete M.z}else M.t=\"s\",M.v=I;if(M.t==\"z\"||(f.dense?(p[g]||(p[g]=[]),p[g][y]=M):p[Vn({c:y,r:g})]=M),x=F+1,D=c.charCodeAt(x),v.e.c<y&&(v.e.c=y),v.e.r<g&&(v.e.r=g),w==S)++y;else if(y=0,++g,f.sheetRows&&f.sheetRows<=g)return!0}e:for(;F<c.length;++F)switch(w=c.charCodeAt(F)){case 34:D===34&&(E=!E);break;case S:case 10:case 13:if(!E&&_())break e;break}return F-x>0&&_(),p[\"!ref\"]=Za(v),p}function o(c,d){return!(d&&d.PRN)||d.FS||c.slice(0,4)==\"sep=\"||c.indexOf(\"\t\")>=0||c.indexOf(\",\")>=0||c.indexOf(\";\")>=0?i(c,d):jg(t(c,d),d)}function l(c,d){var f=\"\",h=d.type==\"string\"?[0,0,0,0]:fft(c,d);switch(d.type){case\"base64\":f=ud(c);break;case\"binary\":f=c;break;case\"buffer\":d.codepage==65001?f=c.toString(\"utf8\"):d.codepage&&typeof l3<\"u\"||(f=In&&Buffer.isBuffer(c)?c.toString(\"binary\"):Vx(c));break;case\"array\":f=ID(c);break;case\"string\":f=c;break;default:throw new Error(\"Unrecognized type \"+d.type)}return h[0]==239&&h[1]==187&&h[2]==191?f=eb(f.slice(3)):d.type!=\"string\"&&d.type!=\"buffer\"&&d.codepage==65001?f=eb(f):d.type==\"binary\"&&typeof l3<\"u\",f.slice(0,19)==\"socialcalc:version:\"?hfe.to_sheet(d.type==\"string\"?f:eb(f),d):o(f,d)}function s(c,d){return Tm(l(c,d),d)}function u(c){for(var d=[],f=la(c[\"!ref\"]),h,p=Array.isArray(c),v=f.s.r;v<=f.e.r;++v){for(var g=[],y=f.s.c;y<=f.e.c;++y){var b=Vn({r:v,c:y});if(h=p?(c[v]||[])[y]:c[b],!h||h.v==null){g.push(\" \");continue}for(var x=(h.w||(cd(h),h.w)||\"\").slice(0,10);x.length<10;)x+=\" \";g.push(x+(y===0?\" \":\"\"))}d.push(g.join(\"\"))}return d.join(`\n`)}return{to_workbook:s,to_sheet:l,from_sheet:u}}(),LU=function(){function e(L,j,H){if(L){El(L,L.l||0);for(var V=H.Enum||z;L.l<L.length;){var U=L.read_shift(2),Q=V[U]||V[65535],K=L.read_shift(2),Y=L.l+K,ee=Q.f&&Q.f(L,K,H);if(L.l=Y,j(ee,Q,U))return}}}function t(L,j){switch(j.type){case\"base64\":return r(Qs(ud(L)),j);case\"binary\":return r(Qs(L),j);case\"buffer\":case\"array\":return r(L,j)}throw\"Unsupported type \"+j.type}function r(L,j){if(!L)return L;var H=j||{},V=H.dense?[]:{},U=\"Sheet1\",Q=\"\",K=0,Y={},ee=[],J=[],X={s:{r:0,c:0},e:{r:0,c:0}},ce=H.sheetRows||0;if(L[2]==0&&(L[3]==8||L[3]==9)&&L.length>=16&&L[14]==5&&L[15]===108)throw new Error(\"Unsupported Works 3 for Mac file\");if(L[2]==2)H.Enum=z,e(L,function(fe,xe,Ee){switch(Ee){case 0:H.vers=fe,fe>=4096&&(H.qpro=!0);break;case 6:X=fe;break;case 204:fe&&(Q=fe);break;case 222:Q=fe;break;case 15:case 51:H.qpro||(fe[1].v=fe[1].v.slice(1));case 13:case 14:case 16:Ee==14&&(fe[2]&112)==112&&(fe[2]&15)>1&&(fe[2]&15)<15&&(fe[1].z=H.dateNF||Aa[14],H.cellDates&&(fe[1].t=\"d\",fe[1].v=Ide(fe[1].v))),H.qpro&&fe[3]>K&&(V[\"!ref\"]=Za(X),Y[U]=V,ee.push(U),V=H.dense?[]:{},X={s:{r:0,c:0},e:{r:0,c:0}},K=fe[3],U=Q||\"Sheet\"+(K+1),Q=\"\");var De=H.dense?(V[fe[0].r]||[])[fe[0].c]:V[Vn(fe[0])];if(De){De.t=fe[1].t,De.v=fe[1].v,fe[1].z!=null&&(De.z=fe[1].z),fe[1].f!=null&&(De.f=fe[1].f);break}H.dense?(V[fe[0].r]||(V[fe[0].r]=[]),V[fe[0].r][fe[0].c]=fe[1]):V[Vn(fe[0])]=fe[1];break}},H);else if(L[2]==26||L[2]==14)H.Enum=W,L[2]==14&&(H.qpro=!0,L.l=0),e(L,function(fe,xe,Ee){switch(Ee){case 204:U=fe;break;case 22:fe[1].v=fe[1].v.slice(1);case 23:case 24:case 25:case 37:case 39:case 40:if(fe[3]>K&&(V[\"!ref\"]=Za(X),Y[U]=V,ee.push(U),V=H.dense?[]:{},X={s:{r:0,c:0},e:{r:0,c:0}},K=fe[3],U=\"Sheet\"+(K+1)),ce>0&&fe[0].r>=ce)break;H.dense?(V[fe[0].r]||(V[fe[0].r]=[]),V[fe[0].r][fe[0].c]=fe[1]):V[Vn(fe[0])]=fe[1],X.e.c<fe[0].c&&(X.e.c=fe[0].c),X.e.r<fe[0].r&&(X.e.r=fe[0].r);break;case 27:fe[14e3]&&(J[fe[14e3][0]]=fe[14e3][1]);break;case 1537:J[fe[0]]=fe[1],fe[0]==K&&(U=fe[1]);break}},H);else throw new Error(\"Unrecognized LOTUS BOF \"+L[2]);if(V[\"!ref\"]=Za(X),Y[Q||U]=V,ee.push(Q||U),!J.length)return{SheetNames:ee,Sheets:Y};for(var oe={},ue=[],ie=0;ie<J.length;++ie)Y[ee[ie]]?(ue.push(J[ie]||ee[ie]),oe[J[ie]]=Y[J[ie]]||Y[ee[ie]]):(ue.push(J[ie]),oe[J[ie]]={\"!ref\":\"A1\"});return{SheetNames:ue,Sheets:oe}}function n(L,j){var H=j||{};if(+H.codepage>=0&&p2(+H.codepage),H.type==\"string\")throw new Error(\"Cannot write WK1 to JS string\");var V=fl(),U=la(L[\"!ref\"]),Q=Array.isArray(L),K=[];Vt(V,0,i(1030)),Vt(V,6,s(U));for(var Y=Math.min(U.e.r,8191),ee=U.s.r;ee<=Y;++ee)for(var J=Wi(ee),X=U.s.c;X<=U.e.c;++X){ee===U.s.r&&(K[X]=yo(X));var ce=K[X]+J,oe=Q?(L[ee]||[])[X]:L[ce];if(!(!oe||oe.t==\"z\"))if(oe.t==\"n\")(oe.v|0)==oe.v&&oe.v>=-32768&&oe.v<=32767?Vt(V,13,h(ee,X,oe.v)):Vt(V,14,v(ee,X,oe.v));else{var ue=cd(oe);Vt(V,15,d(ee,X,ue.slice(0,239)))}}return Vt(V,1),V.end()}function a(L,j){var H=j||{};if(+H.codepage>=0&&p2(+H.codepage),H.type==\"string\")throw new Error(\"Cannot write WK3 to JS string\");var V=fl();Vt(V,0,o(L));for(var U=0,Q=0;U<L.SheetNames.length;++U)(L.Sheets[L.SheetNames[U]]||{})[\"!ref\"]&&Vt(V,27,O(L.SheetNames[U],Q++));var K=0;for(U=0;U<L.SheetNames.length;++U){var Y=L.Sheets[L.SheetNames[U]];if(!(!Y||!Y[\"!ref\"])){for(var ee=la(Y[\"!ref\"]),J=Array.isArray(Y),X=[],ce=Math.min(ee.e.r,8191),oe=ee.s.r;oe<=ce;++oe)for(var ue=Wi(oe),ie=ee.s.c;ie<=ee.e.c;++ie){oe===ee.s.r&&(X[ie]=yo(ie));var fe=X[ie]+ue,xe=J?(Y[oe]||[])[ie]:Y[fe];if(!(!xe||xe.t==\"z\"))if(xe.t==\"n\")Vt(V,23,_(oe,ie,K,xe.v));else{var Ee=cd(xe);Vt(V,22,w(oe,ie,K,Ee.slice(0,239)))}}++K}}return Vt(V,1),V.end()}function i(L){var j=ct(2);return j.write_shift(2,L),j}function o(L){var j=ct(26);j.write_shift(2,4096),j.write_shift(2,4),j.write_shift(4,0);for(var H=0,V=0,U=0,Q=0;Q<L.SheetNames.length;++Q){var K=L.SheetNames[Q],Y=L.Sheets[K];if(!(!Y||!Y[\"!ref\"])){++U;var ee=Ll(Y[\"!ref\"]);H<ee.e.r&&(H=ee.e.r),V<ee.e.c&&(V=ee.e.c)}}return H>8191&&(H=8191),j.write_shift(2,H),j.write_shift(1,U),j.write_shift(1,V),j.write_shift(2,0),j.write_shift(2,0),j.write_shift(1,1),j.write_shift(1,2),j.write_shift(4,0),j.write_shift(4,0),j}function l(L,j,H){var V={s:{c:0,r:0},e:{c:0,r:0}};return j==8&&H.qpro?(V.s.c=L.read_shift(1),L.l++,V.s.r=L.read_shift(2),V.e.c=L.read_shift(1),L.l++,V.e.r=L.read_shift(2),V):(V.s.c=L.read_shift(2),V.s.r=L.read_shift(2),j==12&&H.qpro&&(L.l+=2),V.e.c=L.read_shift(2),V.e.r=L.read_shift(2),j==12&&H.qpro&&(L.l+=2),V.s.c==65535&&(V.s.c=V.e.c=V.s.r=V.e.r=0),V)}function s(L){var j=ct(8);return j.write_shift(2,L.s.c),j.write_shift(2,L.s.r),j.write_shift(2,L.e.c),j.write_shift(2,L.e.r),j}function u(L,j,H){var V=[{c:0,r:0},{t:\"n\",v:0},0,0];return H.qpro&&H.vers!=20768?(V[0].c=L.read_shift(1),V[3]=L.read_shift(1),V[0].r=L.read_shift(2),L.l+=2):(V[2]=L.read_shift(1),V[0].c=L.read_shift(2),V[0].r=L.read_shift(2)),V}function c(L,j,H){var V=L.l+j,U=u(L,j,H);if(U[1].t=\"s\",H.vers==20768){L.l++;var Q=L.read_shift(1);return U[1].v=L.read_shift(Q,\"utf8\"),U}return H.qpro&&L.l++,U[1].v=L.read_shift(V-L.l,\"cstr\"),U}function d(L,j,H){var V=ct(7+H.length);V.write_shift(1,255),V.write_shift(2,j),V.write_shift(2,L),V.write_shift(1,39);for(var U=0;U<V.length;++U){var Q=H.charCodeAt(U);V.write_shift(1,Q>=128?95:Q)}return V.write_shift(1,0),V}function f(L,j,H){var V=u(L,j,H);return V[1].v=L.read_shift(2,\"i\"),V}function h(L,j,H){var V=ct(7);return V.write_shift(1,255),V.write_shift(2,j),V.write_shift(2,L),V.write_shift(2,H,\"i\"),V}function p(L,j,H){var V=u(L,j,H);return V[1].v=L.read_shift(8,\"f\"),V}function v(L,j,H){var V=ct(13);return V.write_shift(1,255),V.write_shift(2,j),V.write_shift(2,L),V.write_shift(8,H,\"f\"),V}function g(L,j,H){var V=L.l+j,U=u(L,j,H);if(U[1].v=L.read_shift(8,\"f\"),H.qpro)L.l=V;else{var Q=L.read_shift(2);F(L.slice(L.l,L.l+Q),U),L.l+=Q}return U}function y(L,j,H){var V=j&32768;return j&=-32769,j=(V?L:0)+(j>=8192?j-16384:j),(V?\"\":\"$\")+(H?yo(j):Wi(j))}var b={51:[\"FALSE\",0],52:[\"TRUE\",0],70:[\"LEN\",1],80:[\"SUM\",69],81:[\"AVERAGEA\",69],82:[\"COUNTA\",69],83:[\"MINA\",69],84:[\"MAXA\",69],111:[\"T\",1]},x=[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"+\",\"-\",\"*\",\"/\",\"^\",\"=\",\"<>\",\"<=\",\">=\",\"<\",\">\",\"\",\"\",\"\",\"\",\"&\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"];function F(L,j){El(L,0);for(var H=[],V=0,U=\"\",Q=\"\",K=\"\",Y=\"\";L.l<L.length;){var ee=L[L.l++];switch(ee){case 0:H.push(L.read_shift(8,\"f\"));break;case 1:Q=y(j[0].c,L.read_shift(2),!0),U=y(j[0].r,L.read_shift(2),!1),H.push(Q+U);break;case 2:{var J=y(j[0].c,L.read_shift(2),!0),X=y(j[0].r,L.read_shift(2),!1);Q=y(j[0].c,L.read_shift(2),!0),U=y(j[0].r,L.read_shift(2),!1),H.push(J+X+\":\"+Q+U)}break;case 3:if(L.l<L.length){console.error(\"WK1 premature formula end\");return}break;case 4:H.push(\"(\"+H.pop()+\")\");break;case 5:H.push(L.read_shift(2));break;case 6:{for(var ce=\"\";ee=L[L.l++];)ce+=String.fromCharCode(ee);H.push('\"'+ce.replace(/\"/g,'\"\"')+'\"')}break;case 8:H.push(\"-\"+H.pop());break;case 23:H.push(\"+\"+H.pop());break;case 22:H.push(\"NOT(\"+H.pop()+\")\");break;case 20:case 21:Y=H.pop(),K=H.pop(),H.push([\"AND\",\"OR\"][ee-20]+\"(\"+K+\",\"+Y+\")\");break;default:if(ee<32&&x[ee])Y=H.pop(),K=H.pop(),H.push(K+x[ee]+Y);else if(b[ee]){if(V=b[ee][1],V==69&&(V=L[L.l++]),V>H.length){console.error(\"WK1 bad formula parse 0x\"+ee.toString(16)+\":|\"+H.join(\"|\")+\"|\");return}var oe=H.slice(-V);H.length-=V,H.push(b[ee][0]+\"(\"+oe.join(\",\")+\")\")}else return ee<=7?console.error(\"WK1 invalid opcode \"+ee.toString(16)):ee<=24?console.error(\"WK1 unsupported op \"+ee.toString(16)):ee<=30?console.error(\"WK1 invalid opcode \"+ee.toString(16)):ee<=115?console.error(\"WK1 unsupported function opcode \"+ee.toString(16)):console.error(\"WK1 unrecognized opcode \"+ee.toString(16))}}H.length==1?j[1].f=\"\"+H[0]:console.error(\"WK1 bad formula parse |\"+H.join(\"|\")+\"|\")}function S(L){var j=[{c:0,r:0},{t:\"n\",v:0},0];return j[0].r=L.read_shift(2),j[3]=L[L.l++],j[0].c=L[L.l++],j}function E(L,j){var H=S(L);return H[1].t=\"s\",H[1].v=L.read_shift(j-4,\"cstr\"),H}function w(L,j,H,V){var U=ct(6+V.length);U.write_shift(2,L),U.write_shift(1,H),U.write_shift(1,j),U.write_shift(1,39);for(var Q=0;Q<V.length;++Q){var K=V.charCodeAt(Q);U.write_shift(1,K>=128?95:K)}return U.write_shift(1,0),U}function D(L,j){var H=S(L);H[1].v=L.read_shift(2);var V=H[1].v>>1;if(H[1].v&1)switch(V&7){case 0:V=(V>>3)*5e3;break;case 1:V=(V>>3)*500;break;case 2:V=(V>>3)/20;break;case 3:V=(V>>3)/200;break;case 4:V=(V>>3)/2e3;break;case 5:V=(V>>3)/2e4;break;case 6:V=(V>>3)/16;break;case 7:V=(V>>3)/64;break}return H[1].v=V,H}function A(L,j){var H=S(L),V=L.read_shift(4),U=L.read_shift(4),Q=L.read_shift(2);if(Q==65535)return V===0&&U===3221225472?(H[1].t=\"e\",H[1].v=15):V===0&&U===3489660928?(H[1].t=\"e\",H[1].v=42):H[1].v=0,H;var K=Q&32768;return Q=(Q&32767)-16446,H[1].v=(1-K*2)*(U*Math.pow(2,Q+32)+V*Math.pow(2,Q)),H}function _(L,j,H,V){var U=ct(14);if(U.write_shift(2,L),U.write_shift(1,H),U.write_shift(1,j),V==0)return U.write_shift(4,0),U.write_shift(4,0),U.write_shift(2,65535),U;var Q=0,K=0,Y=0,ee=0;return V<0&&(Q=1,V=-V),K=Math.log2(V)|0,V/=Math.pow(2,K-31),ee=V>>>0,ee&2147483648||(V/=2,++K,ee=V>>>0),V-=ee,ee|=2147483648,ee>>>=0,V*=Math.pow(2,32),Y=V>>>0,U.write_shift(4,Y),U.write_shift(4,ee),K+=16383+(Q?32768:0),U.write_shift(2,K),U}function I(L,j){var H=A(L);return L.l+=j-14,H}function M(L,j){var H=S(L),V=L.read_shift(4);return H[1].v=V>>6,H}function T(L,j){var H=S(L),V=L.read_shift(8,\"f\");return H[1].v=V,H}function k(L,j){var H=T(L);return L.l+=j-10,H}function R(L,j){return L[L.l+j-1]==0?L.read_shift(j,\"cstr\"):\"\"}function P(L,j){var H=L[L.l++];H>j-1&&(H=j-1);for(var V=\"\";V.length<H;)V+=String.fromCharCode(L[L.l++]);return V}function B(L,j,H){if(!(!H.qpro||j<21)){var V=L.read_shift(1);L.l+=17,L.l+=1,L.l+=2;var U=L.read_shift(j-21,\"cstr\");return[V,U]}}function N(L,j){for(var H={},V=L.l+j;L.l<V;){var U=L.read_shift(2);if(U==14e3){for(H[U]=[0,\"\"],H[U][0]=L.read_shift(2);L[L.l];)H[U][1]+=String.fromCharCode(L[L.l]),L.l++;L.l++}}return H}function O(L,j){var H=ct(5+L.length);H.write_shift(2,14e3),H.write_shift(2,j);for(var V=0;V<L.length;++V){var U=L.charCodeAt(V);H[H.l++]=U>127?95:U}return H[H.l++]=0,H}var z={0:{n:\"BOF\",f:sfe},1:{n:\"EOF\"},2:{n:\"CALCMODE\"},3:{n:\"CALCORDER\"},4:{n:\"SPLIT\"},5:{n:\"SYNC\"},6:{n:\"RANGE\",f:l},7:{n:\"WINDOW1\"},8:{n:\"COLW1\"},9:{n:\"WINTWO\"},10:{n:\"COLW2\"},11:{n:\"NAME\"},12:{n:\"BLANK\"},13:{n:\"INTEGER\",f},14:{n:\"NUMBER\",f:p},15:{n:\"LABEL\",f:c},16:{n:\"FORMULA\",f:g},24:{n:\"TABLE\"},25:{n:\"ORANGE\"},26:{n:\"PRANGE\"},27:{n:\"SRANGE\"},28:{n:\"FRANGE\"},29:{n:\"KRANGE1\"},32:{n:\"HRANGE\"},35:{n:\"KRANGE2\"},36:{n:\"PROTEC\"},37:{n:\"FOOTER\"},38:{n:\"HEADER\"},39:{n:\"SETUP\"},40:{n:\"MARGINS\"},41:{n:\"LABELFMT\"},42:{n:\"TITLES\"},43:{n:\"SHEETJS\"},45:{n:\"GRAPH\"},46:{n:\"NGRAPH\"},47:{n:\"CALCCOUNT\"},48:{n:\"UNFORMATTED\"},49:{n:\"CURSORW12\"},50:{n:\"WINDOW\"},51:{n:\"STRING\",f:c},55:{n:\"PASSWORD\"},56:{n:\"LOCKED\"},60:{n:\"QUERY\"},61:{n:\"QUERYNAME\"},62:{n:\"PRINT\"},63:{n:\"PRINTNAME\"},64:{n:\"GRAPH2\"},65:{n:\"GRAPHNAME\"},66:{n:\"ZOOM\"},67:{n:\"SYMSPLIT\"},68:{n:\"NSROWS\"},69:{n:\"NSCOLS\"},70:{n:\"RULER\"},71:{n:\"NNAME\"},72:{n:\"ACOMM\"},73:{n:\"AMACRO\"},74:{n:\"PARSE\"},102:{n:\"PRANGES??\"},103:{n:\"RRANGES??\"},104:{n:\"FNAME??\"},105:{n:\"MRANGES??\"},204:{n:\"SHEETNAMECS\",f:R},222:{n:\"SHEETNAMELP\",f:P},65535:{n:\"\"}},W={0:{n:\"BOF\"},1:{n:\"EOF\"},2:{n:\"PASSWORD\"},3:{n:\"CALCSET\"},4:{n:\"WINDOWSET\"},5:{n:\"SHEETCELLPTR\"},6:{n:\"SHEETLAYOUT\"},7:{n:\"COLUMNWIDTH\"},8:{n:\"HIDDENCOLUMN\"},9:{n:\"USERRANGE\"},10:{n:\"SYSTEMRANGE\"},11:{n:\"ZEROFORCE\"},12:{n:\"SORTKEYDIR\"},13:{n:\"FILESEAL\"},14:{n:\"DATAFILLNUMS\"},15:{n:\"PRINTMAIN\"},16:{n:\"PRINTSTRING\"},17:{n:\"GRAPHMAIN\"},18:{n:\"GRAPHSTRING\"},19:{n:\"??\"},20:{n:\"ERRCELL\"},21:{n:\"NACELL\"},22:{n:\"LABEL16\",f:E},23:{n:\"NUMBER17\",f:A},24:{n:\"NUMBER18\",f:D},25:{n:\"FORMULA19\",f:I},26:{n:\"FORMULA1A\"},27:{n:\"XFORMAT\",f:N},28:{n:\"DTLABELMISC\"},29:{n:\"DTLABELCELL\"},30:{n:\"GRAPHWINDOW\"},31:{n:\"CPA\"},32:{n:\"LPLAUTO\"},33:{n:\"QUERY\"},34:{n:\"HIDDENSHEET\"},35:{n:\"??\"},37:{n:\"NUMBER25\",f:M},38:{n:\"??\"},39:{n:\"NUMBER27\",f:T},40:{n:\"FORMULA28\",f:k},142:{n:\"??\"},147:{n:\"??\"},150:{n:\"??\"},151:{n:\"??\"},152:{n:\"??\"},153:{n:\"??\"},154:{n:\"??\"},155:{n:\"??\"},156:{n:\"??\"},163:{n:\"??\"},174:{n:\"??\"},175:{n:\"??\"},176:{n:\"??\"},177:{n:\"??\"},184:{n:\"??\"},185:{n:\"??\"},186:{n:\"??\"},187:{n:\"??\"},188:{n:\"??\"},195:{n:\"??\"},201:{n:\"??\"},204:{n:\"SHEETNAMECS\",f:R},205:{n:\"??\"},206:{n:\"??\"},207:{n:\"??\"},208:{n:\"??\"},256:{n:\"??\"},259:{n:\"??\"},260:{n:\"??\"},261:{n:\"??\"},262:{n:\"??\"},263:{n:\"??\"},265:{n:\"??\"},266:{n:\"??\"},267:{n:\"??\"},268:{n:\"??\"},270:{n:\"??\"},271:{n:\"??\"},384:{n:\"??\"},389:{n:\"??\"},390:{n:\"??\"},393:{n:\"??\"},396:{n:\"??\"},512:{n:\"??\"},514:{n:\"??\"},513:{n:\"??\"},516:{n:\"??\"},517:{n:\"??\"},640:{n:\"??\"},641:{n:\"??\"},642:{n:\"??\"},643:{n:\"??\"},644:{n:\"??\"},645:{n:\"??\"},646:{n:\"??\"},647:{n:\"??\"},648:{n:\"??\"},658:{n:\"??\"},659:{n:\"??\"},660:{n:\"??\"},661:{n:\"??\"},662:{n:\"??\"},665:{n:\"??\"},666:{n:\"??\"},768:{n:\"??\"},772:{n:\"??\"},1537:{n:\"SHEETINFOQP\",f:B},1600:{n:\"??\"},1602:{n:\"??\"},1793:{n:\"??\"},1794:{n:\"??\"},1795:{n:\"??\"},1796:{n:\"??\"},1920:{n:\"??\"},2048:{n:\"??\"},2049:{n:\"??\"},2052:{n:\"??\"},2688:{n:\"??\"},10998:{n:\"??\"},12849:{n:\"??\"},28233:{n:\"??\"},28484:{n:\"??\"},65535:{n:\"\"}};return{sheet_to_wk1:n,book_to_wk3:a,to_workbook:t}}(),tlt=/^\\s|\\s$|[\\t\\n\\r]/;function pfe(e,t){if(!t.bookSST)return\"\";var r=[ei];r[r.length]=Ht(\"sst\",null,{xmlns:Lg[0],count:e.Count,uniqueCount:e.Unique});for(var n=0;n!=e.length;++n)if(e[n]!=null){var a=e[n],i=\"<si>\";a.r?i+=a.r:(i+=\"<t\",a.t||(a.t=\"\"),a.t.match(tlt)&&(i+=' xml:space=\"preserve\"'),i+=\">\"+zn(a.t)+\"</t>\"),i+=\"</si>\",r[r.length]=i}return r.length>2&&(r[r.length]=\"</sst>\",r[1]=r[1].replace(\"/>\",\">\")),r.join(\"\")}function rlt(e){return[e.read_shift(4),e.read_shift(4)]}function nlt(e,t){return t||(t=ct(8)),t.write_shift(4,e.Count),t.write_shift(4,e.Unique),t}var alt=Yit;function ilt(e){var t=fl();bt(t,159,nlt(e));for(var r=0;r<e.length;++r)bt(t,19,alt(e[r]));return bt(t,160),t.end()}function olt(e){for(var t=[],r=e.split(\"\"),n=0;n<r.length;++n)t[n]=r[n].charCodeAt(0);return t}function mfe(e){var t=0,r,n=olt(e),a=n.length+1,i,o,l,s,u;for(r=Qp(a),r[0]=n.length,i=1;i!=a;++i)r[i]=n[i-1];for(i=a-1;i>=0;--i)o=r[i],l=t&16384?1:0,s=t<<1&32767,u=l|s,t=u^o;return t^52811}var llt=function(){function e(a,i){switch(i.type){case\"base64\":return t(ud(a),i);case\"binary\":return t(a,i);case\"buffer\":return t(In&&Buffer.isBuffer(a)?a.toString(\"binary\"):Vx(a),i);case\"array\":return t(ID(a),i)}throw new Error(\"Unrecognized type \"+i.type)}function t(a,i){var o=i||{},l=o.dense?[]:{},s=a.match(/\\\\trowd.*?\\\\row\\b/g);if(!s.length)throw new Error(\"RTF missing table\");var u={s:{c:0,r:0},e:{c:0,r:s.length-1}};return s.forEach(function(c,d){Array.isArray(l)&&(l[d]=[]);for(var f=/\\\\\\w+\\b/g,h=0,p,v=-1;p=f.exec(c);){switch(p[0]){case\"\\\\cell\":var g=c.slice(h,f.lastIndex-p[0].length);if(g[0]==\" \"&&(g=g.slice(1)),++v,g.length){var y={v:g,t:\"s\"};Array.isArray(l)?l[d][v]=y:l[Vn({r:d,c:v})]=y}break}h=f.lastIndex}v>u.e.c&&(u.e.c=v)}),l[\"!ref\"]=Za(u),l}function r(a,i){return Tm(e(a,i),i)}function n(a){for(var i=[\"{\\\\rtf1\\\\ansi\"],o=la(a[\"!ref\"]),l,s=Array.isArray(a),u=o.s.r;u<=o.e.r;++u){i.push(\"\\\\trowd\\\\trautofit1\");for(var c=o.s.c;c<=o.e.c;++c)i.push(\"\\\\cellx\"+(c+1));for(i.push(\"\\\\pard\\\\intbl\"),c=o.s.c;c<=o.e.c;++c){var d=Vn({r:u,c});l=s?(a[u]||[])[c]:a[d],!(!l||l.v==null&&(!l.f||l.F))&&(i.push(\" \"+(l.w||(cd(l),l.w))),i.push(\"\\\\cell\"))}i.push(\"\\\\pard\\\\intbl\\\\row\")}return i.join(\"\")+\"}\"}return{to_workbook:r,to_sheet:e,from_sheet:n}}();function jU(e){for(var t=0,r=1;t!=3;++t)r=r*256+(e[t]>255?255:e[t]<0?0:e[t]);return r.toString(16).toUpperCase().slice(1)}var slt=6,Xc=slt;function v3(e){return Math.floor((e+Math.round(128/Xc)/256)*Xc)}function g3(e){return Math.floor((e-5)/Xc*100+.5)/100}function IM(e){return Math.round((e*Xc+5)/Xc*256)/256}function PB(e){e.width?(e.wpx=v3(e.width),e.wch=g3(e.wpx),e.MDW=Xc):e.wpx?(e.wch=g3(e.wpx),e.width=IM(e.wch),e.MDW=Xc):typeof e.wch==\"number\"&&(e.width=IM(e.wch),e.wpx=v3(e.width),e.MDW=Xc),e.customWidth&&delete e.customWidth}var ult=96,vfe=ult;function y3(e){return e*96/vfe}function gfe(e){return e*vfe/96}function clt(e){var t=[\"<numFmts>\"];return[[5,8],[23,26],[41,44],[50,392]].forEach(function(r){for(var n=r[0];n<=r[1];++n)e[n]!=null&&(t[t.length]=Ht(\"numFmt\",null,{numFmtId:n,formatCode:zn(e[n])}))}),t.length===1?\"\":(t[t.length]=\"</numFmts>\",t[0]=Ht(\"numFmts\",null,{count:t.length-2}).replace(\"/>\",\">\"),t.join(\"\"))}function dlt(e){var t=[];return t[t.length]=Ht(\"cellXfs\",null),e.forEach(function(r){t[t.length]=Ht(\"xf\",null,r)}),t[t.length]=\"</cellXfs>\",t.length===2?\"\":(t[0]=Ht(\"cellXfs\",null,{count:t.length-2}).replace(\"/>\",\">\"),t.join(\"\"))}function yfe(e,t){var r=[ei,Ht(\"styleSheet\",null,{xmlns:Lg[0],\"xmlns:vt\":wi.vt})],n;return e.SSF&&(n=clt(e.SSF))!=null&&(r[r.length]=n),r[r.length]='<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>',r[r.length]='<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>',r[r.length]='<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>',r[r.length]='<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>',(n=dlt(t.cellXfs))&&(r[r.length]=n),r[r.length]='<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>',r[r.length]='<dxfs count=\"0\"/>',r[r.length]='<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>',r.length>2&&(r[r.length]=\"</styleSheet>\",r[1]=r[1].replace(\"/>\",\">\")),r.join(\"\")}function flt(e,t){var r=e.read_shift(2),n=bo(e);return[r,n]}function hlt(e,t,r){r||(r=ct(6+4*t.length)),r.write_shift(2,e),Di(t,r);var n=r.length>r.l?r.slice(0,r.l):r;return r.l==null&&(r.l=r.length),n}function plt(e,t,r){var n={};n.sz=e.read_shift(2)/20;var a=tot(e);a.fItalic&&(n.italic=1),a.fCondense&&(n.condense=1),a.fExtend&&(n.extend=1),a.fShadow&&(n.shadow=1),a.fOutline&&(n.outline=1),a.fStrikeout&&(n.strike=1);var i=e.read_shift(2);switch(i===700&&(n.bold=1),e.read_shift(2)){case 1:n.vertAlign=\"superscript\";break;case 2:n.vertAlign=\"subscript\";break}var o=e.read_shift(1);o!=0&&(n.underline=o);var l=e.read_shift(1);l>0&&(n.family=l);var s=e.read_shift(1);switch(s>0&&(n.charset=s),e.l++,n.color=eot(e),e.read_shift(1)){case 1:n.scheme=\"major\";break;case 2:n.scheme=\"minor\";break}return n.name=bo(e),n}function mlt(e,t){t||(t=ct(25+4*32)),t.write_shift(2,e.sz*20),rot(e,t),t.write_shift(2,e.bold?700:400);var r=0;e.vertAlign==\"superscript\"?r=1:e.vertAlign==\"subscript\"&&(r=2),t.write_shift(2,r),t.write_shift(1,e.underline||0),t.write_shift(1,e.family||0),t.write_shift(1,e.charset||0),t.write_shift(1,0),p3(e.color,t);var n=0;return n=2,t.write_shift(1,n),Di(e.name,t),t.length>t.l?t.slice(0,t.l):t}var vlt=[\"none\",\"solid\",\"mediumGray\",\"darkGray\",\"lightGray\",\"darkHorizontal\",\"darkVertical\",\"darkDown\",\"darkUp\",\"darkGrid\",\"darkTrellis\",\"lightHorizontal\",\"lightVertical\",\"lightDown\",\"lightUp\",\"lightGrid\",\"lightTrellis\",\"gray125\",\"gray0625\"],X5,glt=pc;function zU(e,t){t||(t=ct(4*3+8*7+16*1)),X5||(X5=FB(vlt));var r=X5[e.patternType];r==null&&(r=40),t.write_shift(4,r);var n=0;if(r!=40)for(p3({auto:1},t),p3({auto:1},t);n<12;++n)t.write_shift(4,0);else{for(;n<4;++n)t.write_shift(4,0);for(;n<12;++n)t.write_shift(4,0)}return t.length>t.l?t.slice(0,t.l):t}function ylt(e,t){var r=e.l+t,n=e.read_shift(2),a=e.read_shift(2);return e.l=r,{ixfe:n,numFmtId:a}}function bfe(e,t,r){r||(r=ct(16)),r.write_shift(2,t||0),r.write_shift(2,e.numFmtId||0),r.write_shift(2,0),r.write_shift(2,0),r.write_shift(2,0),r.write_shift(1,0),r.write_shift(1,0);var n=0;return r.write_shift(1,n),r.write_shift(1,0),r.write_shift(1,0),r.write_shift(1,0),r}function _1(e,t){return t||(t=ct(10)),t.write_shift(1,0),t.write_shift(1,0),t.write_shift(4,0),t.write_shift(4,0),t}var blt=pc;function xlt(e,t){return t||(t=ct(51)),t.write_shift(1,0),_1(null,t),_1(null,t),_1(null,t),_1(null,t),_1(null,t),t.length>t.l?t.slice(0,t.l):t}function Clt(e,t){return t||(t=ct(12+4*10)),t.write_shift(4,e.xfId),t.write_shift(2,1),t.write_shift(1,0),t.write_shift(1,0),h3(e.name||\"\",t),t.length>t.l?t.slice(0,t.l):t}function Flt(e,t,r){var n=ct(2052);return n.write_shift(4,e),h3(t,n),h3(r,n),n.length>n.l?n.slice(0,n.l):n}function Slt(e,t){if(t){var r=0;[[5,8],[23,26],[41,44],[50,392]].forEach(function(n){for(var a=n[0];a<=n[1];++a)t[a]!=null&&++r}),r!=0&&(bt(e,615,su(r)),[[5,8],[23,26],[41,44],[50,392]].forEach(function(n){for(var a=n[0];a<=n[1];++a)t[a]!=null&&bt(e,44,hlt(a,t[a]))}),bt(e,616))}}function wlt(e){var t=1;bt(e,611,su(t)),bt(e,43,mlt({sz:12,color:{theme:1},name:\"Calibri\",family:2})),bt(e,612)}function Elt(e){var t=2;bt(e,603,su(t)),bt(e,45,zU({patternType:\"none\"})),bt(e,45,zU({patternType:\"gray125\"})),bt(e,604)}function Dlt(e){var t=1;bt(e,613,su(t)),bt(e,46,xlt()),bt(e,614)}function Alt(e){var t=1;bt(e,626,su(t)),bt(e,47,bfe({numFmtId:0},65535)),bt(e,627)}function _lt(e,t){bt(e,617,su(t.length)),t.forEach(function(r){bt(e,47,bfe(r,0))}),bt(e,618)}function Tlt(e){var t=1;bt(e,619,su(t)),bt(e,48,Clt({xfId:0,name:\"Normal\"})),bt(e,620)}function Ilt(e){var t=0;bt(e,505,su(t)),bt(e,506)}function klt(e){var t=0;bt(e,508,Flt(t,\"TableStyleMedium9\",\"PivotStyleMedium4\")),bt(e,509)}function Rlt(e,t){var r=fl();return bt(r,278),Slt(r,e.SSF),wlt(r),Elt(r),Dlt(r),Alt(r),_lt(r,t.cellXfs),Tlt(r),Ilt(r),klt(r),bt(r,279),r.end()}function xfe(e,t){if(t&&t.themeXLSX)return t.themeXLSX;if(e&&typeof e.raw==\"string\")return e.raw;var r=[ei];return r[r.length]='<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">',r[r.length]=\"<a:themeElements>\",r[r.length]='<a:clrScheme name=\"Office\">',r[r.length]='<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>',r[r.length]='<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>',r[r.length]='<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>',r[r.length]='<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>',r[r.length]='<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>',r[r.length]='<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>',r[r.length]='<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>',r[r.length]='<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>',r[r.length]='<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>',r[r.length]='<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>',r[r.length]='<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>',r[r.length]='<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>',r[r.length]=\"</a:clrScheme>\",r[r.length]='<a:fontScheme name=\"Office\">',r[r.length]=\"<a:majorFont>\",r[r.length]='<a:latin typeface=\"Cambria\"/>',r[r.length]='<a:ea typeface=\"\"/>',r[r.length]='<a:cs typeface=\"\"/>',r[r.length]='<a:font script=\"Jpan\" typeface=\" Pゴシック\"/>',r[r.length]='<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>',r[r.length]='<a:font script=\"Hans\" typeface=\"宋体\"/>',r[r.length]='<a:font script=\"Hant\" typeface=\"新細明體\"/>',r[r.length]='<a:font script=\"Arab\" typeface=\"Times New Roman\"/>',r[r.length]='<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>',r[r.length]='<a:font script=\"Thai\" typeface=\"Tahoma\"/>',r[r.length]='<a:font script=\"Ethi\" typeface=\"Nyala\"/>',r[r.length]='<a:font script=\"Beng\" typeface=\"Vrinda\"/>',r[r.length]='<a:font script=\"Gujr\" typeface=\"Shruti\"/>',r[r.length]='<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>',r[r.length]='<a:font script=\"Knda\" typeface=\"Tunga\"/>',r[r.length]='<a:font script=\"Guru\" typeface=\"Raavi\"/>',r[r.length]='<a:font script=\"Cans\" typeface=\"Euphemia\"/>',r[r.length]='<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>',r[r.length]='<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>',r[r.length]='<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>',r[r.length]='<a:font script=\"Thaa\" typeface=\"MV Boli\"/>',r[r.length]='<a:font script=\"Deva\" typeface=\"Mangal\"/>',r[r.length]='<a:font script=\"Telu\" typeface=\"Gautami\"/>',r[r.length]='<a:font script=\"Taml\" typeface=\"Latha\"/>',r[r.length]='<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>',r[r.length]='<a:font script=\"Orya\" typeface=\"Kalinga\"/>',r[r.length]='<a:font script=\"Mlym\" typeface=\"Kartika\"/>',r[r.length]='<a:font script=\"Laoo\" typeface=\"DokChampa\"/>',r[r.length]='<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>',r[r.length]='<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>',r[r.length]='<a:font script=\"Viet\" typeface=\"Times New Roman\"/>',r[r.length]='<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>',r[r.length]='<a:font script=\"Geor\" typeface=\"Sylfaen\"/>',r[r.length]=\"</a:majorFont>\",r[r.length]=\"<a:minorFont>\",r[r.length]='<a:latin typeface=\"Calibri\"/>',r[r.length]='<a:ea typeface=\"\"/>',r[r.length]='<a:cs typeface=\"\"/>',r[r.length]='<a:font script=\"Jpan\" typeface=\" Pゴシック\"/>',r[r.length]='<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>',r[r.length]='<a:font script=\"Hans\" typeface=\"宋体\"/>',r[r.length]='<a:font script=\"Hant\" typeface=\"新細明體\"/>',r[r.length]='<a:font script=\"Arab\" typeface=\"Arial\"/>',r[r.length]='<a:font script=\"Hebr\" typeface=\"Arial\"/>',r[r.length]='<a:font script=\"Thai\" typeface=\"Tahoma\"/>',r[r.length]='<a:font script=\"Ethi\" typeface=\"Nyala\"/>',r[r.length]='<a:font script=\"Beng\" typeface=\"Vrinda\"/>',r[r.length]='<a:font script=\"Gujr\" typeface=\"Shruti\"/>',r[r.length]='<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>',r[r.length]='<a:font script=\"Knda\" typeface=\"Tunga\"/>',r[r.length]='<a:font script=\"Guru\" typeface=\"Raavi\"/>',r[r.length]='<a:font script=\"Cans\" typeface=\"Euphemia\"/>',r[r.length]='<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>',r[r.length]='<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>',r[r.length]='<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>',r[r.length]='<a:font script=\"Thaa\" typeface=\"MV Boli\"/>',r[r.length]='<a:font script=\"Deva\" typeface=\"Mangal\"/>',r[r.length]='<a:font script=\"Telu\" typeface=\"Gautami\"/>',r[r.length]='<a:font script=\"Taml\" typeface=\"Latha\"/>',r[r.length]='<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>',r[r.length]='<a:font script=\"Orya\" typeface=\"Kalinga\"/>',r[r.length]='<a:font script=\"Mlym\" typeface=\"Kartika\"/>',r[r.length]='<a:font script=\"Laoo\" typeface=\"DokChampa\"/>',r[r.length]='<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>',r[r.length]='<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>',r[r.length]='<a:font script=\"Viet\" typeface=\"Arial\"/>',r[r.length]='<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>',r[r.length]='<a:font script=\"Geor\" typeface=\"Sylfaen\"/>',r[r.length]=\"</a:minorFont>\",r[r.length]=\"</a:fontScheme>\",r[r.length]='<a:fmtScheme name=\"Office\">',r[r.length]=\"<a:fillStyleLst>\",r[r.length]='<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>',r[r.length]='<a:gradFill rotWithShape=\"1\">',r[r.length]=\"<a:gsLst>\",r[r.length]='<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>',r[r.length]='<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>',r[r.length]='<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>',r[r.length]=\"</a:gsLst>\",r[r.length]='<a:lin ang=\"16200000\" scaled=\"1\"/>',r[r.length]=\"</a:gradFill>\",r[r.length]='<a:gradFill rotWithShape=\"1\">',r[r.length]=\"<a:gsLst>\",r[r.length]='<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>',r[r.length]='<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>',r[r.length]=\"</a:gsLst>\",r[r.length]='<a:lin ang=\"16200000\" scaled=\"0\"/>',r[r.length]=\"</a:gradFill>\",r[r.length]=\"</a:fillStyleLst>\",r[r.length]=\"<a:lnStyleLst>\",r[r.length]='<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>',r[r.length]='<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>',r[r.length]='<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>',r[r.length]=\"</a:lnStyleLst>\",r[r.length]=\"<a:effectStyleLst>\",r[r.length]=\"<a:effectStyle>\",r[r.length]=\"<a:effectLst>\",r[r.length]='<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>',r[r.length]=\"</a:effectLst>\",r[r.length]=\"</a:effectStyle>\",r[r.length]=\"<a:effectStyle>\",r[r.length]=\"<a:effectLst>\",r[r.length]='<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>',r[r.length]=\"</a:effectLst>\",r[r.length]=\"</a:effectStyle>\",r[r.length]=\"<a:effectStyle>\",r[r.length]=\"<a:effectLst>\",r[r.length]='<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>',r[r.length]=\"</a:effectLst>\",r[r.length]='<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>',r[r.length]='<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>',r[r.length]=\"</a:effectStyle>\",r[r.length]=\"</a:effectStyleLst>\",r[r.length]=\"<a:bgFillStyleLst>\",r[r.length]='<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>',r[r.length]='<a:gradFill rotWithShape=\"1\">',r[r.length]=\"<a:gsLst>\",r[r.length]='<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>',r[r.length]='<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>',r[r.length]='<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>',r[r.length]=\"</a:gsLst>\",r[r.length]='<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>',r[r.length]=\"</a:gradFill>\",r[r.length]='<a:gradFill rotWithShape=\"1\">',r[r.length]=\"<a:gsLst>\",r[r.length]='<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>',r[r.length]='<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>',r[r.length]=\"</a:gsLst>\",r[r.length]='<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>',r[r.length]=\"</a:gradFill>\",r[r.length]=\"</a:bgFillStyleLst>\",r[r.length]=\"</a:fmtScheme>\",r[r.length]=\"</a:themeElements>\",r[r.length]=\"<a:objectDefaults>\",r[r.length]=\"<a:spDef>\",r[r.length]='<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>',r[r.length]=\"</a:spDef>\",r[r.length]=\"<a:lnDef>\",r[r.length]='<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>',r[r.length]=\"</a:lnDef>\",r[r.length]=\"</a:objectDefaults>\",r[r.length]=\"<a:extraClrSchemeLst/>\",r[r.length]=\"</a:theme>\",r.join(\"\")}function Mlt(e,t){return{flags:e.read_shift(4),version:e.read_shift(4),name:bo(e)}}function Plt(e){var t=ct(12+2*e.name.length);return t.write_shift(4,e.flags),t.write_shift(4,e.version),Di(e.name,t),t.slice(0,t.l)}function Olt(e){for(var t=[],r=e.read_shift(4);r-- >0;)t.push([e.read_shift(4),e.read_shift(4)]);return t}function Blt(e){var t=ct(4+8*e.length);t.write_shift(4,e.length);for(var r=0;r<e.length;++r)t.write_shift(4,e[r][0]),t.write_shift(4,e[r][1]);return t}function Nlt(e,t){var r=ct(8+2*t.length);return r.write_shift(4,e),Di(t,r),r.slice(0,r.l)}function $lt(e){return e.l+=4,e.read_shift(4)!=0}function Llt(e,t){var r=ct(8);return r.write_shift(4,e),r.write_shift(4,1),r}function jlt(){var e=fl();return bt(e,332),bt(e,334,su(1)),bt(e,335,Plt({name:\"XLDAPR\",version:12e4,flags:3496657072})),bt(e,336),bt(e,339,Nlt(1,\"XLDAPR\")),bt(e,52),bt(e,35,su(514)),bt(e,4096,su(0)),bt(e,4097,os(1)),bt(e,36),bt(e,53),bt(e,340),bt(e,337,Llt(1)),bt(e,51,Blt([[1,0]])),bt(e,338),bt(e,333),e.end()}function Cfe(){var e=[ei];return e.push(`<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:xlrd=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata\" xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">\n <metadataTypes count=\"1\">\n <metadataType name=\"XLDAPR\" minSupportedVersion=\"120000\" copy=\"1\" pasteAll=\"1\" pasteValues=\"1\" merge=\"1\" splitFirst=\"1\" rowColShift=\"1\" clearFormats=\"1\" clearComments=\"1\" assign=\"1\" coerce=\"1\" cellMeta=\"1\"/>\n </metadataTypes>\n <futureMetadata name=\"XLDAPR\" count=\"1\">\n <bk>\n <extLst>\n <ext uri=\"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}\">\n <xda:dynamicArrayProperties fDynamic=\"1\" fCollapsed=\"0\"/>\n </ext>\n </extLst>\n </bk>\n </futureMetadata>\n <cellMetadata count=\"1\">\n <bk>\n <rc t=\"1\" v=\"0\"/>\n </bk>\n </cellMetadata>\n</metadata>`),e.join(\"\")}function zlt(e){var t={};t.i=e.read_shift(4);var r={};r.r=e.read_shift(4),r.c=e.read_shift(4),t.r=Vn(r);var n=e.read_shift(1);return n&2&&(t.l=\"1\"),n&8&&(t.a=\"1\"),t}var a0=1024;function Ffe(e,t){for(var r=[21600,21600],n=[\"m0,0l0\",r[1],r[0],r[1],r[0],\"0xe\"].join(\",\"),a=[Ht(\"xml\",null,{\"xmlns:v\":Dl.v,\"xmlns:o\":Dl.o,\"xmlns:x\":Dl.x,\"xmlns:mv\":Dl.mv}).replace(/\\/>/,\">\"),Ht(\"o:shapelayout\",Ht(\"o:idmap\",null,{\"v:ext\":\"edit\",data:e}),{\"v:ext\":\"edit\"}),Ht(\"v:shapetype\",[Ht(\"v:stroke\",null,{joinstyle:\"miter\"}),Ht(\"v:path\",null,{gradientshapeok:\"t\",\"o:connecttype\":\"rect\"})].join(\"\"),{id:\"_x0000_t202\",\"o:spt\":202,coordsize:r.join(\",\"),path:n})];a0<e*1e3;)a0+=1e3;return t.forEach(function(i){var o=Ei(i[0]),l={color2:\"#BEFF82\",type:\"gradient\"};l.type==\"gradient\"&&(l.angle=\"-180\");var s=l.type==\"gradient\"?Ht(\"o:fill\",null,{type:\"gradientUnscaled\",\"v:ext\":\"view\"}):null,u=Ht(\"v:fill\",s,l),c={on:\"t\",obscured:\"t\"};++a0,a=a.concat([\"<v:shape\"+y2({id:\"_x0000_s\"+a0,type:\"#_x0000_t202\",style:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\"+(i[1].hidden?\";visibility:hidden\":\"\"),fillcolor:\"#ECFAD4\",strokecolor:\"#edeaa1\"})+\">\",u,Ht(\"v:shadow\",null,c),Ht(\"v:path\",null,{\"o:connecttype\":\"none\"}),'<v:textbox><div style=\"text-align:left\"></div></v:textbox>','<x:ClientData ObjectType=\"Note\">',\"<x:MoveWithCells/>\",\"<x:SizeWithCells/>\",Hi(\"x:Anchor\",[o.c+1,0,o.r+1,0,o.c+3,20,o.r+5,20].join(\",\")),Hi(\"x:AutoFill\",\"False\"),Hi(\"x:Row\",String(o.r)),Hi(\"x:Column\",String(o.c)),i[1].hidden?\"\":\"<x:Visible/>\",\"</x:ClientData>\",\"</v:shape>\"])}),a.push(\"</xml>\"),a.join(\"\")}function Sfe(e){var t=[ei,Ht(\"comments\",null,{xmlns:Lg[0]})],r=[];return t.push(\"<authors>\"),e.forEach(function(n){n[1].forEach(function(a){var i=zn(a.a);r.indexOf(i)==-1&&(r.push(i),t.push(\"<author>\"+i+\"</author>\")),a.T&&a.ID&&r.indexOf(\"tc=\"+a.ID)==-1&&(r.push(\"tc=\"+a.ID),t.push(\"<author>tc=\"+a.ID+\"</author>\"))})}),r.length==0&&(r.push(\"SheetJ5\"),t.push(\"<author>SheetJ5</author>\")),t.push(\"</authors>\"),t.push(\"<commentList>\"),e.forEach(function(n){var a=0,i=[];if(n[1][0]&&n[1][0].T&&n[1][0].ID?a=r.indexOf(\"tc=\"+n[1][0].ID):n[1].forEach(function(s){s.a&&(a=r.indexOf(zn(s.a))),i.push(s.t||\"\")}),t.push('<comment ref=\"'+n[0]+'\" authorId=\"'+a+'\"><text>'),i.length<=1)t.push(Hi(\"t\",zn(i[0]||\"\")));else{for(var o=`Comment:\n `+i[0]+`\n`,l=1;l<i.length;++l)o+=`Reply:\n `+i[l]+`\n`;t.push(Hi(\"t\",zn(o)))}t.push(\"</text></comment>\")}),t.push(\"</commentList>\"),t.length>2&&(t[t.length]=\"</comments>\",t[1]=t[1].replace(\"/>\",\">\")),t.join(\"\")}function Hlt(e,t,r){var n=[ei,Ht(\"ThreadedComments\",null,{xmlns:wi.TCMNT}).replace(/[\\/]>/,\">\")];return e.forEach(function(a){var i=\"\";(a[1]||[]).forEach(function(o,l){if(!o.T){delete o.ID;return}o.a&&t.indexOf(o.a)==-1&&t.push(o.a);var s={ref:a[0],id:\"{54EE7951-7262-4200-6969-\"+(\"000000000000\"+r.tcid++).slice(-12)+\"}\"};l==0?i=s.id:s.parentId=i,o.ID=s.id,o.a&&(s.personId=\"{54EE7950-7262-4200-6969-\"+(\"000000000000\"+t.indexOf(o.a)).slice(-12)+\"}\"),n.push(Ht(\"threadedComment\",Hi(\"text\",o.t||\"\"),s))})}),n.push(\"</ThreadedComments>\"),n.join(\"\")}function Vlt(e){var t=[ei,Ht(\"personList\",null,{xmlns:wi.TCMNT,\"xmlns:x\":Lg[0]}).replace(/[\\/]>/,\">\")];return e.forEach(function(r,n){t.push(Ht(\"person\",null,{displayName:r,id:\"{54EE7950-7262-4200-6969-\"+(\"000000000000\"+n).slice(-12)+\"}\",userId:r,providerId:\"None\"}))}),t.push(\"</personList>\"),t.join(\"\")}function Wlt(e){var t={};t.iauthor=e.read_shift(4);var r=Mm(e);return t.rfx=r.s,t.ref=Vn(r.s),e.l+=16,t}function Glt(e,t){return t==null&&(t=ct(36)),t.write_shift(4,e[1].iauthor),zg(e[0],t),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t.write_shift(4,0),t}var Ult=bo;function Klt(e){return Di(e.slice(0,54))}function Ylt(e){var t=fl(),r=[];return bt(t,628),bt(t,630),e.forEach(function(n){n[1].forEach(function(a){r.indexOf(a.a)>-1||(r.push(a.a.slice(0,54)),bt(t,632,Klt(a.a)))})}),bt(t,631),bt(t,633),e.forEach(function(n){n[1].forEach(function(a){a.iauthor=r.indexOf(a.a);var i={s:Ei(n[0]),e:Ei(n[0])};bt(t,635,Glt([i,a])),a.t&&a.t.length>0&&bt(t,637,Xit(a)),bt(t,636),delete a.iauthor})}),bt(t,634),bt(t,629),t.end()}function qlt(e,t){t.FullPaths.forEach(function(r,n){if(n!=0){var a=r.replace(/[^\\/]*[\\/]/,\"/_VBA_PROJECT_CUR/\");a.slice(-1)!==\"/\"&&Kn.utils.cfb_add(e,a,t.FileIndex[n].content)}})}var wfe=[\"xlsb\",\"xlsm\",\"xlam\",\"biff8\",\"xla\"],Xlt=function(){var e=/(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g,t={r:0,c:0};function r(n,a,i,o){var l=!1,s=!1;i.length==0?s=!0:i.charAt(0)==\"[\"&&(s=!0,i=i.slice(1,-1)),o.length==0?l=!0:o.charAt(0)==\"[\"&&(l=!0,o=o.slice(1,-1));var u=i.length>0?parseInt(i,10)|0:0,c=o.length>0?parseInt(o,10)|0:0;return l?c+=t.c:--c,s?u+=t.r:--u,a+(l?\"\":\"$\")+yo(c)+(s?\"\":\"$\")+Wi(u)}return function(a,i){return t=i,a.replace(e,r)}}(),OB=/(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g,BB=function(){return function(t,r){return t.replace(OB,function(n,a,i,o,l,s){var u=TB(o)-(i?0:r.c),c=_B(s)-(l?0:r.r),d=c==0?\"\":l?c+1:\"[\"+c+\"]\",f=u==0?\"\":i?u+1:\"[\"+u+\"]\";return a+\"R\"+d+\"C\"+f})}}();function Jlt(e,t){return e.replace(OB,function(r,n,a,i,o,l){return n+(a==\"$\"?a+i:yo(TB(i)+t.c))+(o==\"$\"?o+l:Wi(_B(l)+t.r))})}function Zlt(e){return e.length!=1}function Ga(e){e.l+=1}function Gf(e,t){var r=e.read_shift(2);return[r&16383,r>>14&1,r>>15&1]}function Efe(e,t,r){var n=2;if(r){if(r.biff>=2&&r.biff<=5)return Dfe(e);r.biff==12&&(n=4)}var a=e.read_shift(n),i=e.read_shift(n),o=Gf(e),l=Gf(e);return{s:{r:a,c:o[0],cRel:o[1],rRel:o[2]},e:{r:i,c:l[0],cRel:l[1],rRel:l[2]}}}function Dfe(e){var t=Gf(e),r=Gf(e),n=e.read_shift(1),a=e.read_shift(1);return{s:{r:t[0],c:n,cRel:t[1],rRel:t[2]},e:{r:r[0],c:a,cRel:r[1],rRel:r[2]}}}function Qlt(e,t,r){if(r.biff<8)return Dfe(e);var n=e.read_shift(r.biff==12?4:2),a=e.read_shift(r.biff==12?4:2),i=Gf(e),o=Gf(e);return{s:{r:n,c:i[0],cRel:i[1],rRel:i[2]},e:{r:a,c:o[0],cRel:o[1],rRel:o[2]}}}function Afe(e,t,r){if(r&&r.biff>=2&&r.biff<=5)return est(e);var n=e.read_shift(r&&r.biff==12?4:2),a=Gf(e);return{r:n,c:a[0],cRel:a[1],rRel:a[2]}}function est(e){var t=Gf(e),r=e.read_shift(1);return{r:t[0],c:r,cRel:t[1],rRel:t[2]}}function tst(e){var t=e.read_shift(2),r=e.read_shift(2);return{r:t,c:r&255,fQuoted:!!(r&16384),cRel:r>>15,rRel:r>>15}}function rst(e,t,r){var n=r&&r.biff?r.biff:8;if(n>=2&&n<=5)return nst(e);var a=e.read_shift(n>=12?4:2),i=e.read_shift(2),o=(i&16384)>>14,l=(i&32768)>>15;if(i&=16383,l==1)for(;a>524287;)a-=1048576;if(o==1)for(;i>8191;)i=i-16384;return{r:a,c:i,cRel:o,rRel:l}}function nst(e){var t=e.read_shift(2),r=e.read_shift(1),n=(t&32768)>>15,a=(t&16384)>>14;return t&=16383,n==1&&t>=8192&&(t=t-16384),a==1&&r>=128&&(r=r-256),{r:t,c:r,cRel:a,rRel:n}}function ast(e,t,r){var n=(e[e.l++]&96)>>5,a=Efe(e,r.biff>=2&&r.biff<=5?6:8,r);return[n,a]}function ist(e,t,r){var n=(e[e.l++]&96)>>5,a=e.read_shift(2,\"i\"),i=8;if(r)switch(r.biff){case 5:e.l+=12,i=6;break;case 12:i=12;break}var o=Efe(e,i,r);return[n,a,o]}function ost(e,t,r){var n=(e[e.l++]&96)>>5;return e.l+=r&&r.biff>8?12:r.biff<8?6:8,[n]}function lst(e,t,r){var n=(e[e.l++]&96)>>5,a=e.read_shift(2),i=8;if(r)switch(r.biff){case 5:e.l+=12,i=6;break;case 12:i=12;break}return e.l+=i,[n,a]}function sst(e,t,r){var n=(e[e.l++]&96)>>5,a=Qlt(e,t-1,r);return[n,a]}function ust(e,t,r){var n=(e[e.l++]&96)>>5;return e.l+=r.biff==2?6:r.biff==12?14:7,[n]}function HU(e){var t=e[e.l+1]&1,r=1;return e.l+=4,[t,r]}function cst(e,t,r){e.l+=2;for(var n=e.read_shift(r&&r.biff==2?1:2),a=[],i=0;i<=n;++i)a.push(e.read_shift(r&&r.biff==2?1:2));return a}function dst(e,t,r){var n=e[e.l+1]&255?1:0;return e.l+=2,[n,e.read_shift(r&&r.biff==2?1:2)]}function fst(e,t,r){var n=e[e.l+1]&255?1:0;return e.l+=2,[n,e.read_shift(r&&r.biff==2?1:2)]}function hst(e){var t=e[e.l+1]&255?1:0;return e.l+=2,[t,e.read_shift(2)]}function pst(e,t,r){var n=e[e.l+1]&255?1:0;return e.l+=r&&r.biff==2?3:4,[n]}function _fe(e){var t=e.read_shift(1),r=e.read_shift(1);return[t,r]}function mst(e){return e.read_shift(2),_fe(e)}function vst(e){return e.read_shift(2),_fe(e)}function gst(e,t,r){var n=(e[e.l]&96)>>5;e.l+=1;var a=Afe(e,0,r);return[n,a]}function yst(e,t,r){var n=(e[e.l]&96)>>5;e.l+=1;var a=rst(e,0,r);return[n,a]}function bst(e,t,r){var n=(e[e.l]&96)>>5;e.l+=1;var a=e.read_shift(2);r&&r.biff==5&&(e.l+=12);var i=Afe(e,0,r);return[n,a,i]}function xst(e,t,r){var n=(e[e.l]&96)>>5;e.l+=1;var a=e.read_shift(r&&r.biff<=3?1:2);return[xut[a],kfe[a],n]}function Cst(e,t,r){var n=e[e.l++],a=e.read_shift(1),i=r&&r.biff<=3?[n==88?-1:0,e.read_shift(1)]:Fst(e);return[a,(i[0]===0?kfe:but)[i[1]]]}function Fst(e){return[e[e.l+1]>>7,e.read_shift(2)&32767]}function Sst(e,t,r){e.l+=r&&r.biff==2?3:4}function wst(e,t,r){if(e.l++,r&&r.biff==12)return[e.read_shift(4,\"i\"),0];var n=e.read_shift(2),a=e.read_shift(r&&r.biff==2?1:2);return[n,a]}function Est(e){return e.l++,Ux[e.read_shift(1)]}function Dst(e){return e.l++,e.read_shift(2)}function Ast(e){return e.l++,e.read_shift(1)!==0}function _st(e){return e.l++,Hg(e)}function Tst(e,t,r){return e.l++,cfe(e,t-1,r)}function Ist(e,t){var r=[e.read_shift(1)];if(t==12)switch(r[0]){case 2:r[0]=4;break;case 4:r[0]=16;break;case 0:r[0]=1;break;case 1:r[0]=2;break}switch(r[0]){case 4:r[1]=bot(e,1)?\"TRUE\":\"FALSE\",t!=12&&(e.l+=7);break;case 37:case 16:r[1]=Ux[e[e.l]],e.l+=t==12?4:8;break;case 0:e.l+=8;break;case 1:r[1]=Hg(e);break;case 2:r[1]=Sot(e,0,{biff:t>0&&t<8?2:t});break;default:throw new Error(\"Bad SerAr: \"+r[0])}return r}function kst(e,t,r){for(var n=e.read_shift(r.biff==12?4:2),a=[],i=0;i!=n;++i)a.push((r.biff==12?Mm:Dot)(e));return a}function Rst(e,t,r){var n=0,a=0;r.biff==12?(n=e.read_shift(4),a=e.read_shift(4)):(a=1+e.read_shift(1),n=1+e.read_shift(2)),r.biff>=2&&r.biff<8&&(--n,--a==0&&(a=256));for(var i=0,o=[];i!=n&&(o[i]=[]);++i)for(var l=0;l!=a;++l)o[i][l]=Ist(e,r.biff);return o}function Mst(e,t,r){var n=e.read_shift(1)>>>5&3,a=!r||r.biff>=8?4:2,i=e.read_shift(a);switch(r.biff){case 2:e.l+=5;break;case 3:case 4:e.l+=8;break;case 5:e.l+=12;break}return[n,0,i]}function Pst(e,t,r){if(r.biff==5)return Ost(e);var n=e.read_shift(1)>>>5&3,a=e.read_shift(2),i=e.read_shift(4);return[n,a,i]}function Ost(e){var t=e.read_shift(1)>>>5&3,r=e.read_shift(2,\"i\");e.l+=8;var n=e.read_shift(2);return e.l+=12,[t,r,n]}function Bst(e,t,r){var n=e.read_shift(1)>>>5&3;e.l+=r&&r.biff==2?3:4;var a=e.read_shift(r&&r.biff==2?1:2);return[n,a]}function Nst(e,t,r){var n=e.read_shift(1)>>>5&3,a=e.read_shift(r&&r.biff==2?1:2);return[n,a]}function $st(e,t,r){var n=e.read_shift(1)>>>5&3;return e.l+=4,r.biff<8&&e.l--,r.biff==12&&(e.l+=2),[n]}function Lst(e,t,r){var n=(e[e.l++]&96)>>5,a=e.read_shift(2),i=4;if(r)switch(r.biff){case 5:i=15;break;case 12:i=6;break}return e.l+=i,[n,a]}var jst=pc,zst=pc,Hst=pc;function Kx(e,t,r){return e.l+=2,[tst(e)]}function NB(e){return e.l+=6,[]}var Vst=Kx,Wst=NB,Gst=NB,Ust=Kx;function Tfe(e){return e.l+=2,[sfe(e),e.read_shift(2)&1]}var Kst=Kx,Yst=Tfe,qst=NB,Xst=Kx,Jst=Kx,Zst=[\"Data\",\"All\",\"Headers\",\"??\",\"?Data2\",\"??\",\"?DataHeaders\",\"??\",\"Totals\",\"??\",\"??\",\"??\",\"?DataTotals\",\"??\",\"??\",\"??\",\"?Current\"];function Qst(e){e.l+=2;var t=e.read_shift(2),r=e.read_shift(2),n=e.read_shift(4),a=e.read_shift(2),i=e.read_shift(2),o=Zst[r>>2&31];return{ixti:t,coltype:r&3,rt:o,idx:n,c:a,C:i}}function eut(e){return e.l+=2,[e.read_shift(4)]}function tut(e,t,r){return e.l+=5,e.l+=2,e.l+=r.biff==2?1:4,[\"PTGSHEET\"]}function rut(e,t,r){return e.l+=r.biff==2?4:5,[\"PTGENDSHEET\"]}function nut(e){var t=e.read_shift(1)>>>5&3,r=e.read_shift(2);return[t,r]}function aut(e){var t=e.read_shift(1)>>>5&3,r=e.read_shift(2);return[t,r]}function iut(e){return e.l+=4,[0,0]}var VU={1:{n:\"PtgExp\",f:wst},2:{n:\"PtgTbl\",f:Hst},3:{n:\"PtgAdd\",f:Ga},4:{n:\"PtgSub\",f:Ga},5:{n:\"PtgMul\",f:Ga},6:{n:\"PtgDiv\",f:Ga},7:{n:\"PtgPower\",f:Ga},8:{n:\"PtgConcat\",f:Ga},9:{n:\"PtgLt\",f:Ga},10:{n:\"PtgLe\",f:Ga},11:{n:\"PtgEq\",f:Ga},12:{n:\"PtgGe\",f:Ga},13:{n:\"PtgGt\",f:Ga},14:{n:\"PtgNe\",f:Ga},15:{n:\"PtgIsect\",f:Ga},16:{n:\"PtgUnion\",f:Ga},17:{n:\"PtgRange\",f:Ga},18:{n:\"PtgUplus\",f:Ga},19:{n:\"PtgUminus\",f:Ga},20:{n:\"PtgPercent\",f:Ga},21:{n:\"PtgParen\",f:Ga},22:{n:\"PtgMissArg\",f:Ga},23:{n:\"PtgStr\",f:Tst},26:{n:\"PtgSheet\",f:tut},27:{n:\"PtgEndSheet\",f:rut},28:{n:\"PtgErr\",f:Est},29:{n:\"PtgBool\",f:Ast},30:{n:\"PtgInt\",f:Dst},31:{n:\"PtgNum\",f:_st},32:{n:\"PtgArray\",f:ust},33:{n:\"PtgFunc\",f:xst},34:{n:\"PtgFuncVar\",f:Cst},35:{n:\"PtgName\",f:Mst},36:{n:\"PtgRef\",f:gst},37:{n:\"PtgArea\",f:ast},38:{n:\"PtgMemArea\",f:Bst},39:{n:\"PtgMemErr\",f:jst},40:{n:\"PtgMemNoMem\",f:zst},41:{n:\"PtgMemFunc\",f:Nst},42:{n:\"PtgRefErr\",f:$st},43:{n:\"PtgAreaErr\",f:ost},44:{n:\"PtgRefN\",f:yst},45:{n:\"PtgAreaN\",f:sst},46:{n:\"PtgMemAreaN\",f:nut},47:{n:\"PtgMemNoMemN\",f:aut},57:{n:\"PtgNameX\",f:Pst},58:{n:\"PtgRef3d\",f:bst},59:{n:\"PtgArea3d\",f:ist},60:{n:\"PtgRefErr3d\",f:Lst},61:{n:\"PtgAreaErr3d\",f:lst},255:{}},out={64:32,96:32,65:33,97:33,66:34,98:34,67:35,99:35,68:36,100:36,69:37,101:37,70:38,102:38,71:39,103:39,72:40,104:40,73:41,105:41,74:42,106:42,75:43,107:43,76:44,108:44,77:45,109:45,78:46,110:46,79:47,111:47,88:34,120:34,89:57,121:57,90:58,122:58,91:59,123:59,92:60,124:60,93:61,125:61},lut={1:{n:\"PtgElfLel\",f:Tfe},2:{n:\"PtgElfRw\",f:Xst},3:{n:\"PtgElfCol\",f:Vst},6:{n:\"PtgElfRwV\",f:Jst},7:{n:\"PtgElfColV\",f:Ust},10:{n:\"PtgElfRadical\",f:Kst},11:{n:\"PtgElfRadicalS\",f:qst},13:{n:\"PtgElfColS\",f:Wst},15:{n:\"PtgElfColSV\",f:Gst},16:{n:\"PtgElfRadicalLel\",f:Yst},25:{n:\"PtgList\",f:Qst},29:{n:\"PtgSxName\",f:eut},255:{}},sut={0:{n:\"PtgAttrNoop\",f:iut},1:{n:\"PtgAttrSemi\",f:pst},2:{n:\"PtgAttrIf\",f:fst},4:{n:\"PtgAttrChoose\",f:cst},8:{n:\"PtgAttrGoto\",f:dst},16:{n:\"PtgAttrSum\",f:Sst},32:{n:\"PtgAttrBaxcel\",f:HU},33:{n:\"PtgAttrBaxcel\",f:HU},64:{n:\"PtgAttrSpace\",f:mst},65:{n:\"PtgAttrSpaceSemi\",f:vst},128:{n:\"PtgAttrIfError\",f:hst},255:{}};function uut(e,t,r,n){if(n.biff<8)return pc(e,t);for(var a=e.l+t,i=[],o=0;o!==r.length;++o)switch(r[o][0]){case\"PtgArray\":r[o][1]=Rst(e,0,n),i.push(r[o][1]);break;case\"PtgMemArea\":r[o][2]=kst(e,r[o][1],n),i.push(r[o][2]);break;case\"PtgExp\":n&&n.biff==12&&(r[o][1][1]=e.read_shift(4),i.push(r[o][1]));break;case\"PtgList\":case\"PtgElfRadicalS\":case\"PtgElfColS\":case\"PtgElfColSV\":throw\"Unsupported \"+r[o][0]}return t=a-e.l,t!==0&&i.push(pc(e,t)),i}function cut(e,t,r){for(var n=e.l+t,a,i,o=[];n!=e.l;)t=n-e.l,i=e[e.l],a=VU[i]||VU[out[i]],(i===24||i===25)&&(a=(i===24?lut:sut)[e[e.l+1]]),!a||!a.f?pc(e,t):o.push([a.n,a.f(e,t,r)]);return o}function dut(e){for(var t=[],r=0;r<e.length;++r){for(var n=e[r],a=[],i=0;i<n.length;++i){var o=n[i];if(o)switch(o[0]){case 2:a.push('\"'+o[1].replace(/\"/g,'\"\"')+'\"');break;default:a.push(o[1])}else a.push(\"\")}t.push(a.join(\",\"))}return t.join(\";\")}var fut={PtgAdd:\"+\",PtgConcat:\"&\",PtgDiv:\"/\",PtgEq:\"=\",PtgGe:\">=\",PtgGt:\">\",PtgLe:\"<=\",PtgLt:\"<\",PtgMul:\"*\",PtgNe:\"<>\",PtgPower:\"^\",PtgSub:\"-\"};function hut(e,t){if(!e&&!(t&&t.biff<=5&&t.biff>=2))throw new Error(\"empty sheet name\");return/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(e)?\"'\"+e+\"'\":e}function Ife(e,t,r){if(!e)return\"SH33TJSERR0\";if(r.biff>8&&(!e.XTI||!e.XTI[t]))return e.SheetNames[t];if(!e.XTI)return\"SH33TJSERR6\";var n=e.XTI[t];if(r.biff<8)return t>1e4&&(t-=65536),t<0&&(t=-t),t==0?\"\":e.XTI[t-1];if(!n)return\"SH33TJSERR1\";var a=\"\";if(r.biff>8)switch(e[n[0]][0]){case 357:return a=n[1]==-1?\"#REF\":e.SheetNames[n[1]],n[1]==n[2]?a:a+\":\"+e.SheetNames[n[2]];case 358:return r.SID!=null?e.SheetNames[r.SID]:\"SH33TJSSAME\"+e[n[0]][0];case 355:default:return\"SH33TJSSRC\"+e[n[0]][0]}switch(e[n[0]][0][0]){case 1025:return a=n[1]==-1?\"#REF\":e.SheetNames[n[1]]||\"SH33TJSERR3\",n[1]==n[2]?a:a+\":\"+e.SheetNames[n[2]];case 14849:return e[n[0]].slice(1).map(function(i){return i.Name}).join(\";;\");default:return e[n[0]][0][3]?(a=n[1]==-1?\"#REF\":e[n[0]][0][3][n[1]]||\"SH33TJSERR4\",n[1]==n[2]?a:a+\":\"+e[n[0]][0][3][n[2]]):\"SH33TJSERR2\"}}function WU(e,t,r){var n=Ife(e,t,r);return n==\"#REF\"?n:hut(n,r)}function tg(e,t,r,n,a){var i=a&&a.biff||8,o={s:{c:0,r:0}},l=[],s,u,c,d=0,f=0,h,p=\"\";if(!e[0]||!e[0][0])return\"\";for(var v=-1,g=\"\",y=0,b=e[0].length;y<b;++y){var x=e[0][y];switch(x[0]){case\"PtgUminus\":l.push(\"-\"+l.pop());break;case\"PtgUplus\":l.push(\"+\"+l.pop());break;case\"PtgPercent\":l.push(l.pop()+\"%\");break;case\"PtgAdd\":case\"PtgConcat\":case\"PtgDiv\":case\"PtgEq\":case\"PtgGe\":case\"PtgGt\":case\"PtgLe\":case\"PtgLt\":case\"PtgMul\":case\"PtgNe\":case\"PtgPower\":case\"PtgSub\":if(s=l.pop(),u=l.pop(),v>=0){switch(e[0][v][1][0]){case 0:g=Da(\" \",e[0][v][1][1]);break;case 1:g=Da(\"\\r\",e[0][v][1][1]);break;default:if(g=\"\",a.WTF)throw new Error(\"Unexpected PtgAttrSpaceType \"+e[0][v][1][0])}u=u+g,v=-1}l.push(u+fut[x[0]]+s);break;case\"PtgIsect\":s=l.pop(),u=l.pop(),l.push(u+\" \"+s);break;case\"PtgUnion\":s=l.pop(),u=l.pop(),l.push(u+\",\"+s);break;case\"PtgRange\":s=l.pop(),u=l.pop(),l.push(u+\":\"+s);break;case\"PtgAttrChoose\":break;case\"PtgAttrGoto\":break;case\"PtgAttrIf\":break;case\"PtgAttrIfError\":break;case\"PtgRef\":c=rb(x[1][1],o,a),l.push(nb(c,i));break;case\"PtgRefN\":c=r?rb(x[1][1],r,a):x[1][1],l.push(nb(c,i));break;case\"PtgRef3d\":d=x[1][1],c=rb(x[1][2],o,a),p=WU(n,d,a),l.push(p+\"!\"+nb(c,i));break;case\"PtgFunc\":case\"PtgFuncVar\":var F=x[1][0],S=x[1][1];F||(F=0),F&=127;var E=F==0?[]:l.slice(-F);l.length-=F,S===\"User\"&&(S=E.shift()),l.push(S+\"(\"+E.join(\",\")+\")\");break;case\"PtgBool\":l.push(x[1]?\"TRUE\":\"FALSE\");break;case\"PtgInt\":l.push(x[1]);break;case\"PtgNum\":l.push(String(x[1]));break;case\"PtgStr\":l.push('\"'+x[1].replace(/\"/g,'\"\"')+'\"');break;case\"PtgErr\":l.push(x[1]);break;case\"PtgAreaN\":h=_U(x[1][1],r?{s:r}:o,a),l.push(Y5(h,a));break;case\"PtgArea\":h=_U(x[1][1],o,a),l.push(Y5(h,a));break;case\"PtgArea3d\":d=x[1][1],h=x[1][2],p=WU(n,d,a),l.push(p+\"!\"+Y5(h,a));break;case\"PtgAttrSum\":l.push(\"SUM(\"+l.pop()+\")\");break;case\"PtgAttrBaxcel\":case\"PtgAttrSemi\":break;case\"PtgName\":f=x[1][2];var w=(n.names||[])[f-1]||(n[0]||[])[f],D=w?w.Name:\"SH33TJSNAME\"+String(f);D&&D.slice(0,6)==\"_xlfn.\"&&!a.xlfn&&(D=D.slice(6)),l.push(D);break;case\"PtgNameX\":var A=x[1][1];f=x[1][2];var _;if(a.biff<=5)A<0&&(A=-A),n[A]&&(_=n[A][f]);else{var I=\"\";if(((n[A]||[])[0]||[])[0]==14849||(((n[A]||[])[0]||[])[0]==1025?n[A][f]&&n[A][f].itab>0&&(I=n.SheetNames[n[A][f].itab-1]+\"!\"):I=n.SheetNames[f-1]+\"!\"),n[A]&&n[A][f])I+=n[A][f].Name;else if(n[0]&&n[0][f])I+=n[0][f].Name;else{var M=(Ife(n,A,a)||\"\").split(\";;\");M[f-1]?I=M[f-1]:I+=\"SH33TJSERRX\"}l.push(I);break}_||(_={Name:\"SH33TJSERRY\"}),l.push(_.Name);break;case\"PtgParen\":var T=\"(\",k=\")\";if(v>=0){switch(g=\"\",e[0][v][1][0]){case 2:T=Da(\" \",e[0][v][1][1])+T;break;case 3:T=Da(\"\\r\",e[0][v][1][1])+T;break;case 4:k=Da(\" \",e[0][v][1][1])+k;break;case 5:k=Da(\"\\r\",e[0][v][1][1])+k;break;default:if(a.WTF)throw new Error(\"Unexpected PtgAttrSpaceType \"+e[0][v][1][0])}v=-1}l.push(T+l.pop()+k);break;case\"PtgRefErr\":l.push(\"#REF!\");break;case\"PtgRefErr3d\":l.push(\"#REF!\");break;case\"PtgExp\":c={c:x[1][1],r:x[1][0]};var R={c:r.c,r:r.r};if(n.sharedf[Vn(c)]){var P=n.sharedf[Vn(c)];l.push(tg(P,o,R,n,a))}else{var B=!1;for(s=0;s!=n.arrayf.length;++s)if(u=n.arrayf[s],!(c.c<u[0].s.c||c.c>u[0].e.c)&&!(c.r<u[0].s.r||c.r>u[0].e.r)){l.push(tg(u[1],o,R,n,a)),B=!0;break}B||l.push(x[1])}break;case\"PtgArray\":l.push(\"{\"+dut(x[1])+\"}\");break;case\"PtgMemArea\":break;case\"PtgAttrSpace\":case\"PtgAttrSpaceSemi\":v=y;break;case\"PtgTbl\":break;case\"PtgMemErr\":break;case\"PtgMissArg\":l.push(\"\");break;case\"PtgAreaErr\":l.push(\"#REF!\");break;case\"PtgAreaErr3d\":l.push(\"#REF!\");break;case\"PtgList\":l.push(\"Table\"+x[1].idx+\"[#\"+x[1].rt+\"]\");break;case\"PtgMemAreaN\":case\"PtgMemNoMemN\":case\"PtgAttrNoop\":case\"PtgSheet\":case\"PtgEndSheet\":break;case\"PtgMemFunc\":break;case\"PtgMemNoMem\":break;case\"PtgElfCol\":case\"PtgElfColS\":case\"PtgElfColSV\":case\"PtgElfColV\":case\"PtgElfLel\":case\"PtgElfRadical\":case\"PtgElfRadicalLel\":case\"PtgElfRadicalS\":case\"PtgElfRw\":case\"PtgElfRwV\":throw new Error(\"Unsupported ELFs\");case\"PtgSxName\":throw new Error(\"Unrecognized Formula Token: \"+String(x));default:throw new Error(\"Unrecognized Formula Token: \"+String(x))}var N=[\"PtgAttrSpace\",\"PtgAttrSpaceSemi\",\"PtgAttrGoto\"];if(a.biff!=3&&v>=0&&N.indexOf(e[0][y][0])==-1){x=e[0][v];var O=!0;switch(x[1][0]){case 4:O=!1;case 0:g=Da(\" \",x[1][1]);break;case 5:O=!1;case 1:g=Da(\"\\r\",x[1][1]);break;default:if(g=\"\",a.WTF)throw new Error(\"Unexpected PtgAttrSpaceType \"+x[1][0])}l.push((O?g:\"\")+l.pop()+(O?\"\":g)),v=-1}}if(l.length>1&&a.WTF)throw new Error(\"bad formula stack\");return l[0]}function put(e){if(e==null){var t=ct(8);return t.write_shift(1,3),t.write_shift(1,0),t.write_shift(2,0),t.write_shift(2,0),t.write_shift(2,65535),t}else if(typeof e==\"number\")return em(e);return em(0)}function mut(e,t,r,n,a){var i=tm(t,r,a),o=put(e.v),l=ct(6),s=33;l.write_shift(2,s),l.write_shift(4,0);for(var u=ct(e.bf.length),c=0;c<e.bf.length;++c)u[c]=e.bf[c];var d=zi([i,o,l,u]);return d}function kD(e,t,r){var n=e.read_shift(4),a=cut(e,n,r),i=e.read_shift(4),o=i>0?uut(e,i,a,r):null;return[a,o]}var vut=kD,RD=kD,gut=kD,yut=kD,but={0:\"BEEP\",1:\"OPEN\",2:\"OPEN.LINKS\",3:\"CLOSE.ALL\",4:\"SAVE\",5:\"SAVE.AS\",6:\"FILE.DELETE\",7:\"PAGE.SETUP\",8:\"PRINT\",9:\"PRINTER.SETUP\",10:\"QUIT\",11:\"NEW.WINDOW\",12:\"ARRANGE.ALL\",13:\"WINDOW.SIZE\",14:\"WINDOW.MOVE\",15:\"FULL\",16:\"CLOSE\",17:\"RUN\",22:\"SET.PRINT.AREA\",23:\"SET.PRINT.TITLES\",24:\"SET.PAGE.BREAK\",25:\"REMOVE.PAGE.BREAK\",26:\"FONT\",27:\"DISPLAY\",28:\"PROTECT.DOCUMENT\",29:\"PRECISION\",30:\"A1.R1C1\",31:\"CALCULATE.NOW\",32:\"CALCULATION\",34:\"DATA.FIND\",35:\"EXTRACT\",36:\"DATA.DELETE\",37:\"SET.DATABASE\",38:\"SET.CRITERIA\",39:\"SORT\",40:\"DATA.SERIES\",41:\"TABLE\",42:\"FORMAT.NUMBER\",43:\"ALIGNMENT\",44:\"STYLE\",45:\"BORDER\",46:\"CELL.PROTECTION\",47:\"COLUMN.WIDTH\",48:\"UNDO\",49:\"CUT\",50:\"COPY\",51:\"PASTE\",52:\"CLEAR\",53:\"PASTE.SPECIAL\",54:\"EDIT.DELETE\",55:\"INSERT\",56:\"FILL.RIGHT\",57:\"FILL.DOWN\",61:\"DEFINE.NAME\",62:\"CREATE.NAMES\",63:\"FORMULA.GOTO\",64:\"FORMULA.FIND\",65:\"SELECT.LAST.CELL\",66:\"SHOW.ACTIVE.CELL\",67:\"GALLERY.AREA\",68:\"GALLERY.BAR\",69:\"GALLERY.COLUMN\",70:\"GALLERY.LINE\",71:\"GALLERY.PIE\",72:\"GALLERY.SCATTER\",73:\"COMBINATION\",74:\"PREFERRED\",75:\"ADD.OVERLAY\",76:\"GRIDLINES\",77:\"SET.PREFERRED\",78:\"AXES\",79:\"LEGEND\",80:\"ATTACH.TEXT\",81:\"ADD.ARROW\",82:\"SELECT.CHART\",83:\"SELECT.PLOT.AREA\",84:\"PATTERNS\",85:\"MAIN.CHART\",86:\"OVERLAY\",87:\"SCALE\",88:\"FORMAT.LEGEND\",89:\"FORMAT.TEXT\",90:\"EDIT.REPEAT\",91:\"PARSE\",92:\"JUSTIFY\",93:\"HIDE\",94:\"UNHIDE\",95:\"WORKSPACE\",96:\"FORMULA\",97:\"FORMULA.FILL\",98:\"FORMULA.ARRAY\",99:\"DATA.FIND.NEXT\",100:\"DATA.FIND.PREV\",101:\"FORMULA.FIND.NEXT\",102:\"FORMULA.FIND.PREV\",103:\"ACTIVATE\",104:\"ACTIVATE.NEXT\",105:\"ACTIVATE.PREV\",106:\"UNLOCKED.NEXT\",107:\"UNLOCKED.PREV\",108:\"COPY.PICTURE\",109:\"SELECT\",110:\"DELETE.NAME\",111:\"DELETE.FORMAT\",112:\"VLINE\",113:\"HLINE\",114:\"VPAGE\",115:\"HPAGE\",116:\"VSCROLL\",117:\"HSCROLL\",118:\"ALERT\",119:\"NEW\",120:\"CANCEL.COPY\",121:\"SHOW.CLIPBOARD\",122:\"MESSAGE\",124:\"PASTE.LINK\",125:\"APP.ACTIVATE\",126:\"DELETE.ARROW\",127:\"ROW.HEIGHT\",128:\"FORMAT.MOVE\",129:\"FORMAT.SIZE\",130:\"FORMULA.REPLACE\",131:\"SEND.KEYS\",132:\"SELECT.SPECIAL\",133:\"APPLY.NAMES\",134:\"REPLACE.FONT\",135:\"FREEZE.PANES\",136:\"SHOW.INFO\",137:\"SPLIT\",138:\"ON.WINDOW\",139:\"ON.DATA\",140:\"DISABLE.INPUT\",142:\"OUTLINE\",143:\"LIST.NAMES\",144:\"FILE.CLOSE\",145:\"SAVE.WORKBOOK\",146:\"DATA.FORM\",147:\"COPY.CHART\",148:\"ON.TIME\",149:\"WAIT\",150:\"FORMAT.FONT\",151:\"FILL.UP\",152:\"FILL.LEFT\",153:\"DELETE.OVERLAY\",155:\"SHORT.MENUS\",159:\"SET.UPDATE.STATUS\",161:\"COLOR.PALETTE\",162:\"DELETE.STYLE\",163:\"WINDOW.RESTORE\",164:\"WINDOW.MAXIMIZE\",166:\"CHANGE.LINK\",167:\"CALCULATE.DOCUMENT\",168:\"ON.KEY\",169:\"APP.RESTORE\",170:\"APP.MOVE\",171:\"APP.SIZE\",172:\"APP.MINIMIZE\",173:\"APP.MAXIMIZE\",174:\"BRING.TO.FRONT\",175:\"SEND.TO.BACK\",185:\"MAIN.CHART.TYPE\",186:\"OVERLAY.CHART.TYPE\",187:\"SELECT.END\",188:\"OPEN.MAIL\",189:\"SEND.MAIL\",190:\"STANDARD.FONT\",191:\"CONSOLIDATE\",192:\"SORT.SPECIAL\",193:\"GALLERY.3D.AREA\",194:\"GALLERY.3D.COLUMN\",195:\"GALLERY.3D.LINE\",196:\"GALLERY.3D.PIE\",197:\"VIEW.3D\",198:\"GOAL.SEEK\",199:\"WORKGROUP\",200:\"FILL.GROUP\",201:\"UPDATE.LINK\",202:\"PROMOTE\",203:\"DEMOTE\",204:\"SHOW.DETAIL\",206:\"UNGROUP\",207:\"OBJECT.PROPERTIES\",208:\"SAVE.NEW.OBJECT\",209:\"SHARE\",210:\"SHARE.NAME\",211:\"DUPLICATE\",212:\"APPLY.STYLE\",213:\"ASSIGN.TO.OBJECT\",214:\"OBJECT.PROTECTION\",215:\"HIDE.OBJECT\",216:\"SET.EXTRACT\",217:\"CREATE.PUBLISHER\",218:\"SUBSCRIBE.TO\",219:\"ATTRIBUTES\",220:\"SHOW.TOOLBAR\",222:\"PRINT.PREVIEW\",223:\"EDIT.COLOR\",224:\"SHOW.LEVELS\",225:\"FORMAT.MAIN\",226:\"FORMAT.OVERLAY\",227:\"ON.RECALC\",228:\"EDIT.SERIES\",229:\"DEFINE.STYLE\",240:\"LINE.PRINT\",243:\"ENTER.DATA\",249:\"GALLERY.RADAR\",250:\"MERGE.STYLES\",251:\"EDITION.OPTIONS\",252:\"PASTE.PICTURE\",253:\"PASTE.PICTURE.LINK\",254:\"SPELLING\",256:\"ZOOM\",259:\"INSERT.OBJECT\",260:\"WINDOW.MINIMIZE\",265:\"SOUND.NOTE\",266:\"SOUND.PLAY\",267:\"FORMAT.SHAPE\",268:\"EXTEND.POLYGON\",269:\"FORMAT.AUTO\",272:\"GALLERY.3D.BAR\",273:\"GALLERY.3D.SURFACE\",274:\"FILL.AUTO\",276:\"CUSTOMIZE.TOOLBAR\",277:\"ADD.TOOL\",278:\"EDIT.OBJECT\",279:\"ON.DOUBLECLICK\",280:\"ON.ENTRY\",281:\"WORKBOOK.ADD\",282:\"WORKBOOK.MOVE\",283:\"WORKBOOK.COPY\",284:\"WORKBOOK.OPTIONS\",285:\"SAVE.WORKSPACE\",288:\"CHART.WIZARD\",289:\"DELETE.TOOL\",290:\"MOVE.TOOL\",291:\"WORKBOOK.SELECT\",292:\"WORKBOOK.ACTIVATE\",293:\"ASSIGN.TO.TOOL\",295:\"COPY.TOOL\",296:\"RESET.TOOL\",297:\"CONSTRAIN.NUMERIC\",298:\"PASTE.TOOL\",302:\"WORKBOOK.NEW\",305:\"SCENARIO.CELLS\",306:\"SCENARIO.DELETE\",307:\"SCENARIO.ADD\",308:\"SCENARIO.EDIT\",309:\"SCENARIO.SHOW\",310:\"SCENARIO.SHOW.NEXT\",311:\"SCENARIO.SUMMARY\",312:\"PIVOT.TABLE.WIZARD\",313:\"PIVOT.FIELD.PROPERTIES\",314:\"PIVOT.FIELD\",315:\"PIVOT.ITEM\",316:\"PIVOT.ADD.FIELDS\",318:\"OPTIONS.CALCULATION\",319:\"OPTIONS.EDIT\",320:\"OPTIONS.VIEW\",321:\"ADDIN.MANAGER\",322:\"MENU.EDITOR\",323:\"ATTACH.TOOLBARS\",324:\"VBAActivate\",325:\"OPTIONS.CHART\",328:\"VBA.INSERT.FILE\",330:\"VBA.PROCEDURE.DEFINITION\",336:\"ROUTING.SLIP\",338:\"ROUTE.DOCUMENT\",339:\"MAIL.LOGON\",342:\"INSERT.PICTURE\",343:\"EDIT.TOOL\",344:\"GALLERY.DOUGHNUT\",350:\"CHART.TREND\",352:\"PIVOT.ITEM.PROPERTIES\",354:\"WORKBOOK.INSERT\",355:\"OPTIONS.TRANSITION\",356:\"OPTIONS.GENERAL\",370:\"FILTER.ADVANCED\",373:\"MAIL.ADD.MAILER\",374:\"MAIL.DELETE.MAILER\",375:\"MAIL.REPLY\",376:\"MAIL.REPLY.ALL\",377:\"MAIL.FORWARD\",378:\"MAIL.NEXT.LETTER\",379:\"DATA.LABEL\",380:\"INSERT.TITLE\",381:\"FONT.PROPERTIES\",382:\"MACRO.OPTIONS\",383:\"WORKBOOK.HIDE\",384:\"WORKBOOK.UNHIDE\",385:\"WORKBOOK.DELETE\",386:\"WORKBOOK.NAME\",388:\"GALLERY.CUSTOM\",390:\"ADD.CHART.AUTOFORMAT\",391:\"DELETE.CHART.AUTOFORMAT\",392:\"CHART.ADD.DATA\",393:\"AUTO.OUTLINE\",394:\"TAB.ORDER\",395:\"SHOW.DIALOG\",396:\"SELECT.ALL\",397:\"UNGROUP.SHEETS\",398:\"SUBTOTAL.CREATE\",399:\"SUBTOTAL.REMOVE\",400:\"RENAME.OBJECT\",412:\"WORKBOOK.SCROLL\",413:\"WORKBOOK.NEXT\",414:\"WORKBOOK.PREV\",415:\"WORKBOOK.TAB.SPLIT\",416:\"FULL.SCREEN\",417:\"WORKBOOK.PROTECT\",420:\"SCROLLBAR.PROPERTIES\",421:\"PIVOT.SHOW.PAGES\",422:\"TEXT.TO.COLUMNS\",423:\"FORMAT.CHARTTYPE\",424:\"LINK.FORMAT\",425:\"TRACER.DISPLAY\",430:\"TRACER.NAVIGATE\",431:\"TRACER.CLEAR\",432:\"TRACER.ERROR\",433:\"PIVOT.FIELD.GROUP\",434:\"PIVOT.FIELD.UNGROUP\",435:\"CHECKBOX.PROPERTIES\",436:\"LABEL.PROPERTIES\",437:\"LISTBOX.PROPERTIES\",438:\"EDITBOX.PROPERTIES\",439:\"PIVOT.REFRESH\",440:\"LINK.COMBO\",441:\"OPEN.TEXT\",442:\"HIDE.DIALOG\",443:\"SET.DIALOG.FOCUS\",444:\"ENABLE.OBJECT\",445:\"PUSHBUTTON.PROPERTIES\",446:\"SET.DIALOG.DEFAULT\",447:\"FILTER\",448:\"FILTER.SHOW.ALL\",449:\"CLEAR.OUTLINE\",450:\"FUNCTION.WIZARD\",451:\"ADD.LIST.ITEM\",452:\"SET.LIST.ITEM\",453:\"REMOVE.LIST.ITEM\",454:\"SELECT.LIST.ITEM\",455:\"SET.CONTROL.VALUE\",456:\"SAVE.COPY.AS\",458:\"OPTIONS.LISTS.ADD\",459:\"OPTIONS.LISTS.DELETE\",460:\"SERIES.AXES\",461:\"SERIES.X\",462:\"SERIES.Y\",463:\"ERRORBAR.X\",464:\"ERRORBAR.Y\",465:\"FORMAT.CHART\",466:\"SERIES.ORDER\",467:\"MAIL.LOGOFF\",468:\"CLEAR.ROUTING.SLIP\",469:\"APP.ACTIVATE.MICROSOFT\",470:\"MAIL.EDIT.MAILER\",471:\"ON.SHEET\",472:\"STANDARD.WIDTH\",473:\"SCENARIO.MERGE\",474:\"SUMMARY.INFO\",475:\"FIND.FILE\",476:\"ACTIVE.CELL.FONT\",477:\"ENABLE.TIPWIZARD\",478:\"VBA.MAKE.ADDIN\",480:\"INSERTDATATABLE\",481:\"WORKGROUP.OPTIONS\",482:\"MAIL.SEND.MAILER\",485:\"AUTOCORRECT\",489:\"POST.DOCUMENT\",491:\"PICKLIST\",493:\"VIEW.SHOW\",494:\"VIEW.DEFINE\",495:\"VIEW.DELETE\",509:\"SHEET.BACKGROUND\",510:\"INSERT.MAP.OBJECT\",511:\"OPTIONS.MENONO\",517:\"MSOCHECKS\",518:\"NORMAL\",519:\"LAYOUT\",520:\"RM.PRINT.AREA\",521:\"CLEAR.PRINT.AREA\",522:\"ADD.PRINT.AREA\",523:\"MOVE.BRK\",545:\"HIDECURR.NOTE\",546:\"HIDEALL.NOTES\",547:\"DELETE.NOTE\",548:\"TRAVERSE.NOTES\",549:\"ACTIVATE.NOTES\",620:\"PROTECT.REVISIONS\",621:\"UNPROTECT.REVISIONS\",647:\"OPTIONS.ME\",653:\"WEB.PUBLISH\",667:\"NEWWEBQUERY\",673:\"PIVOT.TABLE.CHART\",753:\"OPTIONS.SAVE\",755:\"OPTIONS.SPELL\",808:\"HIDEALL.INKANNOTS\"},kfe={0:\"COUNT\",1:\"IF\",2:\"ISNA\",3:\"ISERROR\",4:\"SUM\",5:\"AVERAGE\",6:\"MIN\",7:\"MAX\",8:\"ROW\",9:\"COLUMN\",10:\"NA\",11:\"NPV\",12:\"STDEV\",13:\"DOLLAR\",14:\"FIXED\",15:\"SIN\",16:\"COS\",17:\"TAN\",18:\"ATAN\",19:\"PI\",20:\"SQRT\",21:\"EXP\",22:\"LN\",23:\"LOG10\",24:\"ABS\",25:\"INT\",26:\"SIGN\",27:\"ROUND\",28:\"LOOKUP\",29:\"INDEX\",30:\"REPT\",31:\"MID\",32:\"LEN\",33:\"VALUE\",34:\"TRUE\",35:\"FALSE\",36:\"AND\",37:\"OR\",38:\"NOT\",39:\"MOD\",40:\"DCOUNT\",41:\"DSUM\",42:\"DAVERAGE\",43:\"DMIN\",44:\"DMAX\",45:\"DSTDEV\",46:\"VAR\",47:\"DVAR\",48:\"TEXT\",49:\"LINEST\",50:\"TREND\",51:\"LOGEST\",52:\"GROWTH\",53:\"GOTO\",54:\"HALT\",55:\"RETURN\",56:\"PV\",57:\"FV\",58:\"NPER\",59:\"PMT\",60:\"RATE\",61:\"MIRR\",62:\"IRR\",63:\"RAND\",64:\"MATCH\",65:\"DATE\",66:\"TIME\",67:\"DAY\",68:\"MONTH\",69:\"YEAR\",70:\"WEEKDAY\",71:\"HOUR\",72:\"MINUTE\",73:\"SECOND\",74:\"NOW\",75:\"AREAS\",76:\"ROWS\",77:\"COLUMNS\",78:\"OFFSET\",79:\"ABSREF\",80:\"RELREF\",81:\"ARGUMENT\",82:\"SEARCH\",83:\"TRANSPOSE\",84:\"ERROR\",85:\"STEP\",86:\"TYPE\",87:\"ECHO\",88:\"SET.NAME\",89:\"CALLER\",90:\"DEREF\",91:\"WINDOWS\",92:\"SERIES\",93:\"DOCUMENTS\",94:\"ACTIVE.CELL\",95:\"SELECTION\",96:\"RESULT\",97:\"ATAN2\",98:\"ASIN\",99:\"ACOS\",100:\"CHOOSE\",101:\"HLOOKUP\",102:\"VLOOKUP\",103:\"LINKS\",104:\"INPUT\",105:\"ISREF\",106:\"GET.FORMULA\",107:\"GET.NAME\",108:\"SET.VALUE\",109:\"LOG\",110:\"EXEC\",111:\"CHAR\",112:\"LOWER\",113:\"UPPER\",114:\"PROPER\",115:\"LEFT\",116:\"RIGHT\",117:\"EXACT\",118:\"TRIM\",119:\"REPLACE\",120:\"SUBSTITUTE\",121:\"CODE\",122:\"NAMES\",123:\"DIRECTORY\",124:\"FIND\",125:\"CELL\",126:\"ISERR\",127:\"ISTEXT\",128:\"ISNUMBER\",129:\"ISBLANK\",130:\"T\",131:\"N\",132:\"FOPEN\",133:\"FCLOSE\",134:\"FSIZE\",135:\"FREADLN\",136:\"FREAD\",137:\"FWRITELN\",138:\"FWRITE\",139:\"FPOS\",140:\"DATEVALUE\",141:\"TIMEVALUE\",142:\"SLN\",143:\"SYD\",144:\"DDB\",145:\"GET.DEF\",146:\"REFTEXT\",147:\"TEXTREF\",148:\"INDIRECT\",149:\"REGISTER\",150:\"CALL\",151:\"ADD.BAR\",152:\"ADD.MENU\",153:\"ADD.COMMAND\",154:\"ENABLE.COMMAND\",155:\"CHECK.COMMAND\",156:\"RENAME.COMMAND\",157:\"SHOW.BAR\",158:\"DELETE.MENU\",159:\"DELETE.COMMAND\",160:\"GET.CHART.ITEM\",161:\"DIALOG.BOX\",162:\"CLEAN\",163:\"MDETERM\",164:\"MINVERSE\",165:\"MMULT\",166:\"FILES\",167:\"IPMT\",168:\"PPMT\",169:\"COUNTA\",170:\"CANCEL.KEY\",171:\"FOR\",172:\"WHILE\",173:\"BREAK\",174:\"NEXT\",175:\"INITIATE\",176:\"REQUEST\",177:\"POKE\",178:\"EXECUTE\",179:\"TERMINATE\",180:\"RESTART\",181:\"HELP\",182:\"GET.BAR\",183:\"PRODUCT\",184:\"FACT\",185:\"GET.CELL\",186:\"GET.WORKSPACE\",187:\"GET.WINDOW\",188:\"GET.DOCUMENT\",189:\"DPRODUCT\",190:\"ISNONTEXT\",191:\"GET.NOTE\",192:\"NOTE\",193:\"STDEVP\",194:\"VARP\",195:\"DSTDEVP\",196:\"DVARP\",197:\"TRUNC\",198:\"ISLOGICAL\",199:\"DCOUNTA\",200:\"DELETE.BAR\",201:\"UNREGISTER\",204:\"USDOLLAR\",205:\"FINDB\",206:\"SEARCHB\",207:\"REPLACEB\",208:\"LEFTB\",209:\"RIGHTB\",210:\"MIDB\",211:\"LENB\",212:\"ROUNDUP\",213:\"ROUNDDOWN\",214:\"ASC\",215:\"DBCS\",216:\"RANK\",219:\"ADDRESS\",220:\"DAYS360\",221:\"TODAY\",222:\"VDB\",223:\"ELSE\",224:\"ELSE.IF\",225:\"END.IF\",226:\"FOR.CELL\",227:\"MEDIAN\",228:\"SUMPRODUCT\",229:\"SINH\",230:\"COSH\",231:\"TANH\",232:\"ASINH\",233:\"ACOSH\",234:\"ATANH\",235:\"DGET\",236:\"CREATE.OBJECT\",237:\"VOLATILE\",238:\"LAST.ERROR\",239:\"CUSTOM.UNDO\",240:\"CUSTOM.REPEAT\",241:\"FORMULA.CONVERT\",242:\"GET.LINK.INFO\",243:\"TEXT.BOX\",244:\"INFO\",245:\"GROUP\",246:\"GET.OBJECT\",247:\"DB\",248:\"PAUSE\",251:\"RESUME\",252:\"FREQUENCY\",253:\"ADD.TOOLBAR\",254:\"DELETE.TOOLBAR\",255:\"User\",256:\"RESET.TOOLBAR\",257:\"EVALUATE\",258:\"GET.TOOLBAR\",259:\"GET.TOOL\",260:\"SPELLING.CHECK\",261:\"ERROR.TYPE\",262:\"APP.TITLE\",263:\"WINDOW.TITLE\",264:\"SAVE.TOOLBAR\",265:\"ENABLE.TOOL\",266:\"PRESS.TOOL\",267:\"REGISTER.ID\",268:\"GET.WORKBOOK\",269:\"AVEDEV\",270:\"BETADIST\",271:\"GAMMALN\",272:\"BETAINV\",273:\"BINOMDIST\",274:\"CHIDIST\",275:\"CHIINV\",276:\"COMBIN\",277:\"CONFIDENCE\",278:\"CRITBINOM\",279:\"EVEN\",280:\"EXPONDIST\",281:\"FDIST\",282:\"FINV\",283:\"FISHER\",284:\"FISHERINV\",285:\"FLOOR\",286:\"GAMMADIST\",287:\"GAMMAINV\",288:\"CEILING\",289:\"HYPGEOMDIST\",290:\"LOGNORMDIST\",291:\"LOGINV\",292:\"NEGBINOMDIST\",293:\"NORMDIST\",294:\"NORMSDIST\",295:\"NORMINV\",296:\"NORMSINV\",297:\"STANDARDIZE\",298:\"ODD\",299:\"PERMUT\",300:\"POISSON\",301:\"TDIST\",302:\"WEIBULL\",303:\"SUMXMY2\",304:\"SUMX2MY2\",305:\"SUMX2PY2\",306:\"CHITEST\",307:\"CORREL\",308:\"COVAR\",309:\"FORECAST\",310:\"FTEST\",311:\"INTERCEPT\",312:\"PEARSON\",313:\"RSQ\",314:\"STEYX\",315:\"SLOPE\",316:\"TTEST\",317:\"PROB\",318:\"DEVSQ\",319:\"GEOMEAN\",320:\"HARMEAN\",321:\"SUMSQ\",322:\"KURT\",323:\"SKEW\",324:\"ZTEST\",325:\"LARGE\",326:\"SMALL\",327:\"QUARTILE\",328:\"PERCENTILE\",329:\"PERCENTRANK\",330:\"MODE\",331:\"TRIMMEAN\",332:\"TINV\",334:\"MOVIE.COMMAND\",335:\"GET.MOVIE\",336:\"CONCATENATE\",337:\"POWER\",338:\"PIVOT.ADD.DATA\",339:\"GET.PIVOT.TABLE\",340:\"GET.PIVOT.FIELD\",341:\"GET.PIVOT.ITEM\",342:\"RADIANS\",343:\"DEGREES\",344:\"SUBTOTAL\",345:\"SUMIF\",346:\"COUNTIF\",347:\"COUNTBLANK\",348:\"SCENARIO.GET\",349:\"OPTIONS.LISTS.GET\",350:\"ISPMT\",351:\"DATEDIF\",352:\"DATESTRING\",353:\"NUMBERSTRING\",354:\"ROMAN\",355:\"OPEN.DIALOG\",356:\"SAVE.DIALOG\",357:\"VIEW.GET\",358:\"GETPIVOTDATA\",359:\"HYPERLINK\",360:\"PHONETIC\",361:\"AVERAGEA\",362:\"MAXA\",363:\"MINA\",364:\"STDEVPA\",365:\"VARPA\",366:\"STDEVA\",367:\"VARA\",368:\"BAHTTEXT\",369:\"THAIDAYOFWEEK\",370:\"THAIDIGIT\",371:\"THAIMONTHOFYEAR\",372:\"THAINUMSOUND\",373:\"THAINUMSTRING\",374:\"THAISTRINGLENGTH\",375:\"ISTHAIDIGIT\",376:\"ROUNDBAHTDOWN\",377:\"ROUNDBAHTUP\",378:\"THAIYEAR\",379:\"RTD\",380:\"CUBEVALUE\",381:\"CUBEMEMBER\",382:\"CUBEMEMBERPROPERTY\",383:\"CUBERANKEDMEMBER\",384:\"HEX2BIN\",385:\"HEX2DEC\",386:\"HEX2OCT\",387:\"DEC2BIN\",388:\"DEC2HEX\",389:\"DEC2OCT\",390:\"OCT2BIN\",391:\"OCT2HEX\",392:\"OCT2DEC\",393:\"BIN2DEC\",394:\"BIN2OCT\",395:\"BIN2HEX\",396:\"IMSUB\",397:\"IMDIV\",398:\"IMPOWER\",399:\"IMABS\",400:\"IMSQRT\",401:\"IMLN\",402:\"IMLOG2\",403:\"IMLOG10\",404:\"IMSIN\",405:\"IMCOS\",406:\"IMEXP\",407:\"IMARGUMENT\",408:\"IMCONJUGATE\",409:\"IMAGINARY\",410:\"IMREAL\",411:\"COMPLEX\",412:\"IMSUM\",413:\"IMPRODUCT\",414:\"SERIESSUM\",415:\"FACTDOUBLE\",416:\"SQRTPI\",417:\"QUOTIENT\",418:\"DELTA\",419:\"GESTEP\",420:\"ISEVEN\",421:\"ISODD\",422:\"MROUND\",423:\"ERF\",424:\"ERFC\",425:\"BESSELJ\",426:\"BESSELK\",427:\"BESSELY\",428:\"BESSELI\",429:\"XIRR\",430:\"XNPV\",431:\"PRICEMAT\",432:\"YIELDMAT\",433:\"INTRATE\",434:\"RECEIVED\",435:\"DISC\",436:\"PRICEDISC\",437:\"YIELDDISC\",438:\"TBILLEQ\",439:\"TBILLPRICE\",440:\"TBILLYIELD\",441:\"PRICE\",442:\"YIELD\",443:\"DOLLARDE\",444:\"DOLLARFR\",445:\"NOMINAL\",446:\"EFFECT\",447:\"CUMPRINC\",448:\"CUMIPMT\",449:\"EDATE\",450:\"EOMONTH\",451:\"YEARFRAC\",452:\"COUPDAYBS\",453:\"COUPDAYS\",454:\"COUPDAYSNC\",455:\"COUPNCD\",456:\"COUPNUM\",457:\"COUPPCD\",458:\"DURATION\",459:\"MDURATION\",460:\"ODDLPRICE\",461:\"ODDLYIELD\",462:\"ODDFPRICE\",463:\"ODDFYIELD\",464:\"RANDBETWEEN\",465:\"WEEKNUM\",466:\"AMORDEGRC\",467:\"AMORLINC\",468:\"CONVERT\",724:\"SHEETJS\",469:\"ACCRINT\",470:\"ACCRINTM\",471:\"WORKDAY\",472:\"NETWORKDAYS\",473:\"GCD\",474:\"MULTINOMIAL\",475:\"LCM\",476:\"FVSCHEDULE\",477:\"CUBEKPIMEMBER\",478:\"CUBESET\",479:\"CUBESETCOUNT\",480:\"IFERROR\",481:\"COUNTIFS\",482:\"SUMIFS\",483:\"AVERAGEIF\",484:\"AVERAGEIFS\"},xut={2:1,3:1,10:0,15:1,16:1,17:1,18:1,19:0,20:1,21:1,22:1,23:1,24:1,25:1,26:1,27:2,30:2,31:3,32:1,33:1,34:0,35:0,38:1,39:2,40:3,41:3,42:3,43:3,44:3,45:3,47:3,48:2,53:1,61:3,63:0,65:3,66:3,67:1,68:1,69:1,70:1,71:1,72:1,73:1,74:0,75:1,76:1,77:1,79:2,80:2,83:1,85:0,86:1,89:0,90:1,94:0,95:0,97:2,98:1,99:1,101:3,102:3,105:1,106:1,108:2,111:1,112:1,113:1,114:1,117:2,118:1,119:4,121:1,126:1,127:1,128:1,129:1,130:1,131:1,133:1,134:1,135:1,136:2,137:2,138:2,140:1,141:1,142:3,143:4,144:4,161:1,162:1,163:1,164:1,165:2,172:1,175:2,176:2,177:3,178:2,179:1,184:1,186:1,189:3,190:1,195:3,196:3,197:1,198:1,199:3,201:1,207:4,210:3,211:1,212:2,213:2,214:1,215:1,225:0,229:1,230:1,231:1,232:1,233:1,234:1,235:3,244:1,247:4,252:2,257:1,261:1,271:1,273:4,274:2,275:2,276:2,277:3,278:3,279:1,280:3,281:3,282:3,283:1,284:1,285:2,286:4,287:3,288:2,289:4,290:3,291:3,292:3,293:4,294:1,295:3,296:1,297:3,298:1,299:2,300:3,301:3,302:4,303:2,304:2,305:2,306:2,307:2,308:2,309:3,310:2,311:2,312:2,313:2,314:2,315:2,316:4,325:2,326:2,327:2,328:2,331:2,332:2,337:2,342:1,343:1,346:2,347:1,350:4,351:3,352:1,353:2,360:1,368:1,369:1,370:1,371:1,372:1,373:1,374:1,375:1,376:1,377:1,378:1,382:3,385:1,392:1,393:1,396:2,397:2,398:2,399:1,400:1,401:1,402:1,403:1,404:1,405:1,406:1,407:1,408:1,409:1,410:1,414:4,415:1,416:1,417:2,420:1,421:1,422:2,424:1,425:2,426:2,427:2,428:2,430:3,438:3,439:3,440:3,443:2,444:2,445:2,446:2,447:6,448:6,449:2,450:2,464:2,468:3,476:2,479:1,480:2,65535:0};function Cut(e){var t=\"of:=\"+e.replace(OB,\"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");return t.replace(/;/g,\"|\").replace(/,/g,\";\")}function Fut(e){return e.replace(/\\./,\"!\")}var ab=typeof Map<\"u\";function $B(e,t,r){var n=0,a=e.length;if(r){if(ab?r.has(t):Object.prototype.hasOwnProperty.call(r,t)){for(var i=ab?r.get(t):r[t];n<i.length;++n)if(e[i[n]].t===t)return e.Count++,i[n]}}else for(;n<a;++n)if(e[n].t===t)return e.Count++,n;return e[a]={t},e.Count++,e.Unique++,r&&(ab?(r.has(t)||r.set(t,[]),r.get(t).push(a)):(Object.prototype.hasOwnProperty.call(r,t)||(r[t]=[]),r[t].push(a))),a}function MD(e,t){var r={min:e+1,max:e+1},n=-1;return t.MDW&&(Xc=t.MDW),t.width!=null?r.customWidth=1:t.wpx!=null?n=g3(t.wpx):t.wch!=null&&(n=t.wch),n>-1?(r.width=IM(n),r.customWidth=1):t.width!=null&&(r.width=t.width),t.hidden&&(r.hidden=!0),t.level!=null&&(r.outlineLevel=r.level=t.level),r}function Rfe(e,t){if(e){var r=[.7,.7,.75,.75,.3,.3];e.left==null&&(e.left=r[0]),e.right==null&&(e.right=r[1]),e.top==null&&(e.top=r[2]),e.bottom==null&&(e.bottom=r[3]),e.header==null&&(e.header=r[4]),e.footer==null&&(e.footer=r[5])}}function ih(e,t,r){var n=r.revssf[t.z!=null?t.z:\"General\"],a=60,i=e.length;if(n==null&&r.ssf){for(;a<392;++a)if(r.ssf[a]==null){Ade(t.z,a),r.ssf[a]=t.z,r.revssf[t.z]=n=a;break}}for(a=0;a!=i;++a)if(e[a].numFmtId===n)return a;return e[i]={numFmtId:n,fontId:0,fillId:0,borderId:0,xfId:0,applyNumberFormat:1},i}function Sut(e,t,r){if(e&&e[\"!ref\"]){var n=la(e[\"!ref\"]);if(n.e.c<n.s.c||n.e.r<n.s.r)throw new Error(\"Bad range (\"+r+\"): \"+e[\"!ref\"])}}function wut(e){if(e.length===0)return\"\";for(var t='<mergeCells count=\"'+e.length+'\">',r=0;r!=e.length;++r)t+='<mergeCell ref=\"'+Za(e[r])+'\"/>';return t+\"</mergeCells>\"}function Eut(e,t,r,n,a){var i=!1,o={},l=null;if(n.bookType!==\"xlsx\"&&t.vbaraw){var s=t.SheetNames[r];try{t.Workbook&&(s=t.Workbook.Sheets[r].CodeName||s)}catch{}i=!0,o.codeName=g2(zn(s))}if(e&&e[\"!outline\"]){var u={summaryBelow:1,summaryRight:1};e[\"!outline\"].above&&(u.summaryBelow=0),e[\"!outline\"].left&&(u.summaryRight=0),l=(l||\"\")+Ht(\"outlinePr\",null,u)}!i&&!l||(a[a.length]=Ht(\"sheetPr\",l,o))}var Dut=[\"objects\",\"scenarios\",\"selectLockedCells\",\"selectUnlockedCells\"],Aut=[\"formatColumns\",\"formatRows\",\"formatCells\",\"insertColumns\",\"insertRows\",\"insertHyperlinks\",\"deleteColumns\",\"deleteRows\",\"sort\",\"autoFilter\",\"pivotTables\"];function _ut(e){var t={sheet:1};return Dut.forEach(function(r){e[r]!=null&&e[r]&&(t[r]=\"1\")}),Aut.forEach(function(r){e[r]!=null&&!e[r]&&(t[r]=\"0\")}),e.password&&(t.password=mfe(e.password).toString(16).toUpperCase()),Ht(\"sheetProtection\",null,t)}function Tut(e){return Rfe(e),Ht(\"pageMargins\",null,e)}function Iut(e,t){for(var r=[\"<cols>\"],n,a=0;a!=t.length;++a)(n=t[a])&&(r[r.length]=Ht(\"col\",null,MD(a,n)));return r[r.length]=\"</cols>\",r.join(\"\")}function kut(e,t,r,n){var a=typeof e.ref==\"string\"?e.ref:Za(e.ref);r.Workbook||(r.Workbook={Sheets:[]}),r.Workbook.Names||(r.Workbook.Names=[]);var i=r.Workbook.Names,o=Ll(a);o.s.r==o.e.r&&(o.e.r=Ll(t[\"!ref\"]).e.r,a=Za(o));for(var l=0;l<i.length;++l){var s=i[l];if(s.Name==\"_xlnm._FilterDatabase\"&&s.Sheet==n){s.Ref=\"'\"+r.SheetNames[n]+\"'!\"+a;break}}return l==i.length&&i.push({Name:\"_xlnm._FilterDatabase\",Sheet:n,Ref:\"'\"+r.SheetNames[n]+\"'!\"+a}),Ht(\"autoFilter\",null,{ref:a})}function Rut(e,t,r,n){var a={workbookViewId:\"0\"};return(((n||{}).Workbook||{}).Views||[])[0]&&(a.rightToLeft=n.Workbook.Views[0].RTL?\"1\":\"0\"),Ht(\"sheetViews\",Ht(\"sheetView\",null,a),{})}function Mut(e,t,r,n){if(e.c&&r[\"!comments\"].push([t,e.c]),e.v===void 0&&typeof e.f!=\"string\"||e.t===\"z\"&&!e.f)return\"\";var a=\"\",i=e.t,o=e.v;if(e.t!==\"z\")switch(e.t){case\"b\":a=e.v?\"1\":\"0\";break;case\"n\":a=\"\"+e.v;break;case\"e\":a=Ux[e.v];break;case\"d\":n&&n.cellDates?a=zo(e.v,-1).toISOString():(e=gl(e),e.t=\"n\",a=\"\"+(e.v=vl(zo(e.v)))),typeof e.z>\"u\"&&(e.z=Aa[14]);break;default:a=e.v;break}var l=Hi(\"v\",zn(a)),s={r:t},u=ih(n.cellXfs,e,n);switch(u!==0&&(s.s=u),e.t){case\"n\":break;case\"d\":s.t=\"d\";break;case\"b\":s.t=\"b\";break;case\"e\":s.t=\"e\";break;case\"z\":break;default:if(e.v==null){delete e.t;break}if(e.v.length>32767)throw new Error(\"Text length must not exceed 32767 characters\");if(n&&n.bookSST){l=Hi(\"v\",\"\"+$B(n.Strings,e.v,n.revStrings)),s.t=\"s\";break}s.t=\"str\";break}if(e.t!=i&&(e.t=i,e.v=o),typeof e.f==\"string\"&&e.f){var c=e.F&&e.F.slice(0,t.length)==t?{t:\"array\",ref:e.F}:null;l=Ht(\"f\",zn(e.f),c)+(e.v!=null?l:\"\")}return e.l&&r[\"!links\"].push([t,e.l]),e.D&&(s.cm=1),Ht(\"c\",l,s)}function Put(e,t,r,n){var a=[],i=[],o=la(e[\"!ref\"]),l=\"\",s,u=\"\",c=[],d=0,f=0,h=e[\"!rows\"],p=Array.isArray(e),v={r:u},g,y=-1;for(f=o.s.c;f<=o.e.c;++f)c[f]=yo(f);for(d=o.s.r;d<=o.e.r;++d){for(i=[],u=Wi(d),f=o.s.c;f<=o.e.c;++f){s=c[f]+u;var b=p?(e[d]||[])[f]:e[s];b!==void 0&&(l=Mut(b,s,e,t))!=null&&i.push(l)}(i.length>0||h&&h[d])&&(v={r:u},h&&h[d]&&(g=h[d],g.hidden&&(v.hidden=1),y=-1,g.hpx?y=y3(g.hpx):g.hpt&&(y=g.hpt),y>-1&&(v.ht=y,v.customHeight=1),g.level&&(v.outlineLevel=g.level)),a[a.length]=Ht(\"row\",i.join(\"\"),v))}if(h)for(;d<h.length;++d)h&&h[d]&&(v={r:d+1},g=h[d],g.hidden&&(v.hidden=1),y=-1,g.hpx?y=y3(g.hpx):g.hpt&&(y=g.hpt),y>-1&&(v.ht=y,v.customHeight=1),g.level&&(v.outlineLevel=g.level),a[a.length]=Ht(\"row\",\"\",v));return a.join(\"\")}function Mfe(e,t,r,n){var a=[ei,Ht(\"worksheet\",null,{xmlns:Lg[0],\"xmlns:r\":wi.r})],i=r.SheetNames[e],o=0,l=\"\",s=r.Sheets[i];s==null&&(s={});var u=s[\"!ref\"]||\"A1\",c=la(u);if(c.e.c>16383||c.e.r>1048575){if(t.WTF)throw new Error(\"Range \"+u+\" exceeds format limit A1:XFD1048576\");c.e.c=Math.min(c.e.c,16383),c.e.r=Math.min(c.e.c,1048575),u=Za(c)}n||(n={}),s[\"!comments\"]=[];var d=[];Eut(s,r,e,t,a),a[a.length]=Ht(\"dimension\",null,{ref:u}),a[a.length]=Rut(s,t,e,r),t.sheetFormat&&(a[a.length]=Ht(\"sheetFormatPr\",null,{defaultRowHeight:t.sheetFormat.defaultRowHeight||\"16\",baseColWidth:t.sheetFormat.baseColWidth||\"10\",outlineLevelRow:t.sheetFormat.outlineLevelRow||\"7\"})),s[\"!cols\"]!=null&&s[\"!cols\"].length>0&&(a[a.length]=Iut(s,s[\"!cols\"])),a[o=a.length]=\"<sheetData/>\",s[\"!links\"]=[],s[\"!ref\"]!=null&&(l=Put(s,t),l.length>0&&(a[a.length]=l)),a.length>o+1&&(a[a.length]=\"</sheetData>\",a[o]=a[o].replace(\"/>\",\">\")),s[\"!protect\"]&&(a[a.length]=_ut(s[\"!protect\"])),s[\"!autofilter\"]!=null&&(a[a.length]=kut(s[\"!autofilter\"],s,r,e)),s[\"!merges\"]!=null&&s[\"!merges\"].length>0&&(a[a.length]=wut(s[\"!merges\"]));var f=-1,h,p=-1;return s[\"!links\"].length>0&&(a[a.length]=\"<hyperlinks>\",s[\"!links\"].forEach(function(v){v[1].Target&&(h={ref:v[0]},v[1].Target.charAt(0)!=\"#\"&&(p=Nn(n,-1,zn(v[1].Target).replace(/#.*$/,\"\"),En.HLINK),h[\"r:id\"]=\"rId\"+p),(f=v[1].Target.indexOf(\"#\"))>-1&&(h.location=zn(v[1].Target.slice(f+1))),v[1].Tooltip&&(h.tooltip=zn(v[1].Tooltip)),a[a.length]=Ht(\"hyperlink\",null,h))}),a[a.length]=\"</hyperlinks>\"),delete s[\"!links\"],s[\"!margins\"]!=null&&(a[a.length]=Tut(s[\"!margins\"])),(!t||t.ignoreEC||t.ignoreEC==null)&&(a[a.length]=Hi(\"ignoredErrors\",Ht(\"ignoredError\",null,{numberStoredAsText:1,sqref:u}))),d.length>0&&(p=Nn(n,-1,\"../drawings/drawing\"+(e+1)+\".xml\",En.DRAW),a[a.length]=Ht(\"drawing\",null,{\"r:id\":\"rId\"+p}),s[\"!drawing\"]=d),s[\"!comments\"].length>0&&(p=Nn(n,-1,\"../drawings/vmlDrawing\"+(e+1)+\".vml\",En.VML),a[a.length]=Ht(\"legacyDrawing\",null,{\"r:id\":\"rId\"+p}),s[\"!legacy\"]=p),a.length>1&&(a[a.length]=\"</worksheet>\",a[1]=a[1].replace(\"/>\",\">\")),a.join(\"\")}function Out(e,t){var r={},n=e.l+t;r.r=e.read_shift(4),e.l+=4;var a=e.read_shift(2);e.l+=1;var i=e.read_shift(1);return e.l=n,i&7&&(r.level=i&7),i&16&&(r.hidden=!0),i&32&&(r.hpt=a/20),r}function But(e,t,r){var n=ct(145),a=(r[\"!rows\"]||[])[e]||{};n.write_shift(4,e),n.write_shift(4,0);var i=320;a.hpx?i=y3(a.hpx)*20:a.hpt&&(i=a.hpt*20),n.write_shift(2,i),n.write_shift(1,0);var o=0;a.level&&(o|=a.level),a.hidden&&(o|=16),(a.hpx||a.hpt)&&(o|=32),n.write_shift(1,o),n.write_shift(1,0);var l=0,s=n.l;n.l+=4;for(var u={r:e,c:0},c=0;c<16;++c)if(!(t.s.c>c+1<<10||t.e.c<c<<10)){for(var d=-1,f=-1,h=c<<10;h<c+1<<10;++h){u.c=h;var p=Array.isArray(r)?(r[u.r]||[])[u.c]:r[Vn(u)];p&&(d<0&&(d=h),f=h)}d<0||(++l,n.write_shift(4,d),n.write_shift(4,f))}var v=n.l;return n.l=s,n.write_shift(4,l),n.l=v,n.length>n.l?n.slice(0,n.l):n}function Nut(e,t,r,n){var a=But(n,r,t);(a.length>17||(t[\"!rows\"]||[])[n])&&bt(e,0,a)}var $ut=Mm,Lut=zg;function jut(){}function zut(e,t){var r={},n=e[e.l];return++e.l,r.above=!(n&64),r.left=!(n&128),e.l+=18,r.name=Jit(e),r}function Hut(e,t,r){r==null&&(r=ct(84+4*e.length));var n=192;t&&(t.above&&(n&=-65),t.left&&(n&=-129)),r.write_shift(1,n);for(var a=1;a<3;++a)r.write_shift(1,0);return p3({auto:1},r),r.write_shift(-4,-1),r.write_shift(-4,-1),Yde(e,r),r.slice(0,r.l)}function Vut(e){var t=ks(e);return[t]}function Wut(e,t,r){return r==null&&(r=ct(8)),Im(t,r)}function Gut(e){var t=km(e);return[t]}function Uut(e,t,r){return r==null&&(r=ct(4)),Rm(t,r)}function Kut(e){var t=ks(e),r=e.read_shift(1);return[t,r,\"b\"]}function Yut(e,t,r){return r==null&&(r=ct(9)),Im(t,r),r.write_shift(1,e.v?1:0),r}function qut(e){var t=km(e),r=e.read_shift(1);return[t,r,\"b\"]}function Xut(e,t,r){return r==null&&(r=ct(5)),Rm(t,r),r.write_shift(1,e.v?1:0),r}function Jut(e){var t=ks(e),r=e.read_shift(1);return[t,r,\"e\"]}function Zut(e,t,r){return r==null&&(r=ct(9)),Im(t,r),r.write_shift(1,e.v),r}function Qut(e){var t=km(e),r=e.read_shift(1);return[t,r,\"e\"]}function ect(e,t,r){return r==null&&(r=ct(8)),Rm(t,r),r.write_shift(1,e.v),r.write_shift(2,0),r.write_shift(1,0),r}function tct(e){var t=ks(e),r=e.read_shift(4);return[t,r,\"s\"]}function rct(e,t,r){return r==null&&(r=ct(12)),Im(t,r),r.write_shift(4,t.v),r}function nct(e){var t=km(e),r=e.read_shift(4);return[t,r,\"s\"]}function act(e,t,r){return r==null&&(r=ct(8)),Rm(t,r),r.write_shift(4,t.v),r}function ict(e){var t=ks(e),r=Hg(e);return[t,r,\"n\"]}function oct(e,t,r){return r==null&&(r=ct(16)),Im(t,r),em(e.v,r),r}function lct(e){var t=km(e),r=Hg(e);return[t,r,\"n\"]}function sct(e,t,r){return r==null&&(r=ct(12)),Rm(t,r),em(e.v,r),r}function uct(e){var t=ks(e),r=qde(e);return[t,r,\"n\"]}function cct(e,t,r){return r==null&&(r=ct(12)),Im(t,r),Xde(e.v,r),r}function dct(e){var t=km(e),r=qde(e);return[t,r,\"n\"]}function fct(e,t,r){return r==null&&(r=ct(8)),Rm(t,r),Xde(e.v,r),r}function hct(e){var t=ks(e),r=IB(e);return[t,r,\"is\"]}function pct(e){var t=ks(e),r=bo(e);return[t,r,\"str\"]}function mct(e,t,r){return r==null&&(r=ct(12+4*e.v.length)),Im(t,r),Di(e.v,r),r.length>r.l?r.slice(0,r.l):r}function vct(e){var t=km(e),r=bo(e);return[t,r,\"str\"]}function gct(e,t,r){return r==null&&(r=ct(8+4*e.v.length)),Rm(t,r),Di(e.v,r),r.length>r.l?r.slice(0,r.l):r}function yct(e,t,r){var n=e.l+t,a=ks(e);a.r=r[\"!row\"];var i=e.read_shift(1),o=[a,i,\"b\"];if(r.cellFormula){e.l+=2;var l=RD(e,n-e.l,r);o[3]=tg(l,null,a,r.supbooks,r)}else e.l=n;return o}function bct(e,t,r){var n=e.l+t,a=ks(e);a.r=r[\"!row\"];var i=e.read_shift(1),o=[a,i,\"e\"];if(r.cellFormula){e.l+=2;var l=RD(e,n-e.l,r);o[3]=tg(l,null,a,r.supbooks,r)}else e.l=n;return o}function xct(e,t,r){var n=e.l+t,a=ks(e);a.r=r[\"!row\"];var i=Hg(e),o=[a,i,\"n\"];if(r.cellFormula){e.l+=2;var l=RD(e,n-e.l,r);o[3]=tg(l,null,a,r.supbooks,r)}else e.l=n;return o}function Cct(e,t,r){var n=e.l+t,a=ks(e);a.r=r[\"!row\"];var i=bo(e),o=[a,i,\"str\"];if(r.cellFormula){e.l+=2;var l=RD(e,n-e.l,r);o[3]=tg(l,null,a,r.supbooks,r)}else e.l=n;return o}var Fct=Mm,Sct=zg;function wct(e,t){return t==null&&(t=ct(4)),t.write_shift(4,e),t}function Ect(e,t){var r=e.l+t,n=Mm(e),a=kB(e),i=bo(e),o=bo(e),l=bo(e);e.l=r;var s={rfx:n,relId:a,loc:i,display:l};return o&&(s.Tooltip=o),s}function Dct(e,t){var r=ct(50+4*(e[1].Target.length+(e[1].Tooltip||\"\").length));zg({s:Ei(e[0]),e:Ei(e[0])},r),RB(\"rId\"+t,r);var n=e[1].Target.indexOf(\"#\"),a=n==-1?\"\":e[1].Target.slice(n+1);return Di(a||\"\",r),Di(e[1].Tooltip||\"\",r),Di(\"\",r),r.slice(0,r.l)}function Act(){}function _ct(e,t,r){var n=e.l+t,a=Jde(e),i=e.read_shift(1),o=[a];if(o[2]=i,r.cellFormula){var l=vut(e,n-e.l,r);o[1]=l}else e.l=n;return o}function Tct(e,t,r){var n=e.l+t,a=Mm(e),i=[a];if(r.cellFormula){var o=yut(e,n-e.l,r);i[1]=o,e.l=n}else e.l=n;return i}function Ict(e,t,r){r==null&&(r=ct(18));var n=MD(e,t);r.write_shift(-4,e),r.write_shift(-4,e),r.write_shift(4,(n.width||10)*256),r.write_shift(4,0);var a=0;return t.hidden&&(a|=1),typeof n.width==\"number\"&&(a|=2),t.level&&(a|=t.level<<8),r.write_shift(2,a),r}var Pfe=[\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];function kct(e){var t={};return Pfe.forEach(function(r){t[r]=Hg(e)}),t}function Rct(e,t){return t==null&&(t=ct(6*8)),Rfe(e),Pfe.forEach(function(r){em(e[r],t)}),t}function Mct(e){var t=e.read_shift(2);return e.l+=28,{RTL:t&32}}function Pct(e,t,r){r==null&&(r=ct(30));var n=924;return(((t||{}).Views||[])[0]||{}).RTL&&(n|=32),r.write_shift(2,n),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(1,0),r.write_shift(1,0),r.write_shift(2,0),r.write_shift(2,100),r.write_shift(2,0),r.write_shift(2,0),r.write_shift(2,0),r.write_shift(4,0),r}function Oct(e){var t=ct(24);return t.write_shift(4,4),t.write_shift(4,1),zg(e,t),t}function Bct(e,t){return t==null&&(t=ct(16*4+2)),t.write_shift(2,e.password?mfe(e.password):0),t.write_shift(4,1),[[\"objects\",!1],[\"scenarios\",!1],[\"formatCells\",!0],[\"formatColumns\",!0],[\"formatRows\",!0],[\"insertColumns\",!0],[\"insertRows\",!0],[\"insertHyperlinks\",!0],[\"deleteColumns\",!0],[\"deleteRows\",!0],[\"selectLockedCells\",!1],[\"sort\",!0],[\"autoFilter\",!0],[\"pivotTables\",!0],[\"selectUnlockedCells\",!1]].forEach(function(r){r[1]?t.write_shift(4,e[r[0]]!=null&&!e[r[0]]?1:0):t.write_shift(4,e[r[0]]!=null&&e[r[0]]?0:1)}),t}function Nct(){}function $ct(){}function Lct(e,t,r,n,a,i,o){if(t.v===void 0)return!1;var l=\"\";switch(t.t){case\"b\":l=t.v?\"1\":\"0\";break;case\"d\":t=gl(t),t.z=t.z||Aa[14],t.v=vl(zo(t.v)),t.t=\"n\";break;case\"n\":case\"e\":l=\"\"+t.v;break;default:l=t.v;break}var s={r,c:n};switch(s.s=ih(a.cellXfs,t,a),t.l&&i[\"!links\"].push([Vn(s),t.l]),t.c&&i[\"!comments\"].push([Vn(s),t.c]),t.t){case\"s\":case\"str\":return a.bookSST?(l=$B(a.Strings,t.v,a.revStrings),s.t=\"s\",s.v=l,o?bt(e,18,act(t,s)):bt(e,7,rct(t,s))):(s.t=\"str\",o?bt(e,17,gct(t,s)):bt(e,6,mct(t,s))),!0;case\"n\":return t.v==(t.v|0)&&t.v>-1e3&&t.v<1e3?o?bt(e,13,fct(t,s)):bt(e,2,cct(t,s)):o?bt(e,16,sct(t,s)):bt(e,5,oct(t,s)),!0;case\"b\":return s.t=\"b\",o?bt(e,15,Xut(t,s)):bt(e,4,Yut(t,s)),!0;case\"e\":return s.t=\"e\",o?bt(e,14,ect(t,s)):bt(e,3,Zut(t,s)),!0}return o?bt(e,12,Uut(t,s)):bt(e,1,Wut(t,s)),!0}function jct(e,t,r,n){var a=la(t[\"!ref\"]||\"A1\"),i,o=\"\",l=[];bt(e,145);var s=Array.isArray(t),u=a.e.r;t[\"!rows\"]&&(u=Math.max(a.e.r,t[\"!rows\"].length-1));for(var c=a.s.r;c<=u;++c){o=Wi(c),Nut(e,t,a,c);var d=!1;if(c<=a.e.r)for(var f=a.s.c;f<=a.e.c;++f){c===a.s.r&&(l[f]=yo(f)),i=l[f]+o;var h=s?(t[c]||[])[f]:t[i];if(!h){d=!1;continue}d=Lct(e,h,c,f,n,t,d)}}bt(e,146)}function zct(e,t){!t||!t[\"!merges\"]||(bt(e,177,wct(t[\"!merges\"].length)),t[\"!merges\"].forEach(function(r){bt(e,176,Sct(r))}),bt(e,178))}function Hct(e,t){!t||!t[\"!cols\"]||(bt(e,390),t[\"!cols\"].forEach(function(r,n){r&&bt(e,60,Ict(n,r))}),bt(e,391))}function Vct(e,t){!t||!t[\"!ref\"]||(bt(e,648),bt(e,649,Oct(la(t[\"!ref\"]))),bt(e,650))}function Wct(e,t,r){t[\"!links\"].forEach(function(n){if(n[1].Target){var a=Nn(r,-1,n[1].Target.replace(/#.*$/,\"\"),En.HLINK);bt(e,494,Dct(n,a))}}),delete t[\"!links\"]}function Gct(e,t,r,n){if(t[\"!comments\"].length>0){var a=Nn(n,-1,\"../drawings/vmlDrawing\"+(r+1)+\".vml\",En.VML);bt(e,551,RB(\"rId\"+a)),t[\"!legacy\"]=a}}function Uct(e,t,r,n){if(t[\"!autofilter\"]){var a=t[\"!autofilter\"],i=typeof a.ref==\"string\"?a.ref:Za(a.ref);r.Workbook||(r.Workbook={Sheets:[]}),r.Workbook.Names||(r.Workbook.Names=[]);var o=r.Workbook.Names,l=Ll(i);l.s.r==l.e.r&&(l.e.r=Ll(t[\"!ref\"]).e.r,i=Za(l));for(var s=0;s<o.length;++s){var u=o[s];if(u.Name==\"_xlnm._FilterDatabase\"&&u.Sheet==n){u.Ref=\"'\"+r.SheetNames[n]+\"'!\"+i;break}}s==o.length&&o.push({Name:\"_xlnm._FilterDatabase\",Sheet:n,Ref:\"'\"+r.SheetNames[n]+\"'!\"+i}),bt(e,161,zg(la(i))),bt(e,162)}}function Kct(e,t,r){bt(e,133),bt(e,137,Pct(t,r)),bt(e,138),bt(e,134)}function Yct(e,t){t[\"!protect\"]&&bt(e,535,Bct(t[\"!protect\"]))}function qct(e,t,r,n){var a=fl(),i=r.SheetNames[e],o=r.Sheets[i]||{},l=i;try{r&&r.Workbook&&(l=r.Workbook.Sheets[e].CodeName||l)}catch{}var s=la(o[\"!ref\"]||\"A1\");if(s.e.c>16383||s.e.r>1048575){if(t.WTF)throw new Error(\"Range \"+(o[\"!ref\"]||\"A1\")+\" exceeds format limit A1:XFD1048576\");s.e.c=Math.min(s.e.c,16383),s.e.r=Math.min(s.e.c,1048575)}return o[\"!links\"]=[],o[\"!comments\"]=[],bt(a,129),(r.vbaraw||o[\"!outline\"])&&bt(a,147,Hut(l,o[\"!outline\"])),bt(a,148,Lut(s)),Kct(a,o,r.Workbook),Hct(a,o),jct(a,o,e,t),Yct(a,o),Uct(a,o,r,e),zct(a,o),Wct(a,o,n),o[\"!margins\"]&&bt(a,476,Rct(o[\"!margins\"])),(!t||t.ignoreEC||t.ignoreEC==null)&&Vct(a,o),Gct(a,o,e,n),bt(a,130),a.end()}function Xct(e,t){e.l+=10;var r=bo(e);return{name:r}}var Jct=[[\"allowRefreshQuery\",!1,\"bool\"],[\"autoCompressPictures\",!0,\"bool\"],[\"backupFile\",!1,\"bool\"],[\"checkCompatibility\",!1,\"bool\"],[\"CodeName\",\"\"],[\"date1904\",!1,\"bool\"],[\"defaultThemeVersion\",0,\"int\"],[\"filterPrivacy\",!1,\"bool\"],[\"hidePivotFieldList\",!1,\"bool\"],[\"promptedSolutions\",!1,\"bool\"],[\"publishItems\",!1,\"bool\"],[\"refreshAllConnections\",!1,\"bool\"],[\"saveExternalLinkValues\",!0,\"bool\"],[\"showBorderUnselectedTables\",!0,\"bool\"],[\"showInkAnnotation\",!0,\"bool\"],[\"showObjects\",\"all\"],[\"showPivotChartFilter\",!1,\"bool\"],[\"updateLinks\",\"userSet\"]];function Zct(e){return!e.Workbook||!e.Workbook.WBProps?\"false\":Tit(e.Workbook.WBProps.date1904)?\"true\":\"false\"}var Qct=\"][*?/\\\\\".split(\"\");function Ofe(e,t){if(e.length>31)throw new Error(\"Sheet names cannot exceed 31 chars\");var r=!0;return Qct.forEach(function(n){if(e.indexOf(n)!=-1)throw new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\")}),r}function edt(e,t,r){e.forEach(function(n,a){Ofe(n);for(var i=0;i<a;++i)if(n==e[i])throw new Error(\"Duplicate Sheet Name: \"+n);if(r){var o=t&&t[a]&&t[a].CodeName||n;if(o.charCodeAt(0)==95&&o.length>22)throw new Error(\"Bad Code Name: Worksheet\"+o)}})}function tdt(e){if(!e||!e.SheetNames||!e.Sheets)throw new Error(\"Invalid Workbook\");if(!e.SheetNames.length)throw new Error(\"Workbook is empty\");var t=e.Workbook&&e.Workbook.Sheets||[];edt(e.SheetNames,t,!!e.vbaraw);for(var r=0;r<e.SheetNames.length;++r)Sut(e.Sheets[e.SheetNames[r]],e.SheetNames[r],r)}function Bfe(e){var t=[ei];t[t.length]=Ht(\"workbook\",null,{xmlns:Lg[0],\"xmlns:r\":wi.r});var r=e.Workbook&&(e.Workbook.Names||[]).length>0,n={codeName:\"ThisWorkbook\"};e.Workbook&&e.Workbook.WBProps&&(Jct.forEach(function(l){e.Workbook.WBProps[l[0]]!=null&&e.Workbook.WBProps[l[0]]!=l[1]&&(n[l[0]]=e.Workbook.WBProps[l[0]])}),e.Workbook.WBProps.CodeName&&(n.codeName=e.Workbook.WBProps.CodeName,delete n.CodeName)),t[t.length]=Ht(\"workbookPr\",null,n);var a=e.Workbook&&e.Workbook.Sheets||[],i=0;if(a&&a[0]&&a[0].Hidden){for(t[t.length]=\"<bookViews>\",i=0;i!=e.SheetNames.length&&!(!a[i]||!a[i].Hidden);++i);i==e.SheetNames.length&&(i=0),t[t.length]='<workbookView firstSheet=\"'+i+'\" activeTab=\"'+i+'\"/>',t[t.length]=\"</bookViews>\"}for(t[t.length]=\"<sheets>\",i=0;i!=e.SheetNames.length;++i){var o={name:zn(e.SheetNames[i].slice(0,31))};if(o.sheetId=\"\"+(i+1),o[\"r:id\"]=\"rId\"+(i+1),a[i])switch(a[i].Hidden){case 1:o.state=\"hidden\";break;case 2:o.state=\"veryHidden\";break}t[t.length]=Ht(\"sheet\",null,o)}return t[t.length]=\"</sheets>\",r&&(t[t.length]=\"<definedNames>\",e.Workbook&&e.Workbook.Names&&e.Workbook.Names.forEach(function(l){var s={name:l.Name};l.Comment&&(s.comment=l.Comment),l.Sheet!=null&&(s.localSheetId=\"\"+l.Sheet),l.Hidden&&(s.hidden=\"1\"),l.Ref&&(t[t.length]=Ht(\"definedName\",zn(l.Ref),s))}),t[t.length]=\"</definedNames>\"),t.length>2&&(t[t.length]=\"</workbook>\",t[1]=t[1].replace(\"/>\",\">\")),t.join(\"\")}function rdt(e,t){var r={};return r.Hidden=e.read_shift(4),r.iTabID=e.read_shift(4),r.strRelID=TM(e),r.name=bo(e),r}function ndt(e,t){return t||(t=ct(127)),t.write_shift(4,e.Hidden),t.write_shift(4,e.iTabID),RB(e.strRelID,t),Di(e.name.slice(0,31),t),t.length>t.l?t.slice(0,t.l):t}function adt(e,t){var r={},n=e.read_shift(4);r.defaultThemeVersion=e.read_shift(4);var a=t>8?bo(e):\"\";return a.length>0&&(r.CodeName=a),r.autoCompressPictures=!!(n&65536),r.backupFile=!!(n&64),r.checkCompatibility=!!(n&4096),r.date1904=!!(n&1),r.filterPrivacy=!!(n&8),r.hidePivotFieldList=!!(n&1024),r.promptedSolutions=!!(n&16),r.publishItems=!!(n&2048),r.refreshAllConnections=!!(n&262144),r.saveExternalLinkValues=!!(n&128),r.showBorderUnselectedTables=!!(n&4),r.showInkAnnotation=!!(n&32),r.showObjects=[\"all\",\"placeholders\",\"none\"][n>>13&3],r.showPivotChartFilter=!!(n&32768),r.updateLinks=[\"userSet\",\"never\",\"always\"][n>>8&3],r}function idt(e,t){t||(t=ct(72));var r=0;return e&&e.filterPrivacy&&(r|=8),t.write_shift(4,r),t.write_shift(4,0),Yde(e&&e.CodeName||\"ThisWorkbook\",t),t.slice(0,t.l)}function odt(e,t,r){var n=e.l+t;e.l+=4,e.l+=1;var a=e.read_shift(4),i=Zit(e),o=gut(e,0,r),l=kB(e);e.l=n;var s={Name:i,Ptg:o};return a<268435455&&(s.Sheet=a),l&&(s.Comment=l),s}function ldt(e,t){bt(e,143);for(var r=0;r!=t.SheetNames.length;++r){var n=t.Workbook&&t.Workbook.Sheets&&t.Workbook.Sheets[r]&&t.Workbook.Sheets[r].Hidden||0,a={Hidden:n,iTabID:r+1,strRelID:\"rId\"+(r+1),name:t.SheetNames[r]};bt(e,156,ndt(a))}bt(e,144)}function sdt(e,t){t||(t=ct(127));for(var r=0;r!=4;++r)t.write_shift(4,0);return Di(\"SheetJS\",t),Di(o3.version,t),Di(o3.version,t),Di(\"7262\",t),t.length>t.l?t.slice(0,t.l):t}function udt(e,t){t||(t=ct(29)),t.write_shift(-4,0),t.write_shift(-4,460),t.write_shift(4,28800),t.write_shift(4,17600),t.write_shift(4,500),t.write_shift(4,e),t.write_shift(4,e);var r=120;return t.write_shift(1,r),t.length>t.l?t.slice(0,t.l):t}function cdt(e,t){if(!(!t.Workbook||!t.Workbook.Sheets)){for(var r=t.Workbook.Sheets,n=0,a=-1,i=-1;n<r.length;++n)!r[n]||!r[n].Hidden&&a==-1?a=n:r[n].Hidden==1&&i==-1&&(i=n);i>a||(bt(e,135),bt(e,158,udt(a)),bt(e,136))}}function ddt(e,t){var r=fl();return bt(r,131),bt(r,128,sdt()),bt(r,153,idt(e.Workbook&&e.Workbook.WBProps||null)),cdt(r,e),ldt(r,e),bt(r,132),r.end()}function fdt(e,t,r){return(t.slice(-4)===\".bin\"?ddt:Bfe)(e)}function hdt(e,t,r,n,a){return(t.slice(-4)===\".bin\"?qct:Mfe)(e,r,n,a)}function pdt(e,t,r){return(t.slice(-4)===\".bin\"?Rlt:yfe)(e,r)}function mdt(e,t,r){return(t.slice(-4)===\".bin\"?ilt:pfe)(e,r)}function vdt(e,t,r){return(t.slice(-4)===\".bin\"?Ylt:Sfe)(e)}function gdt(e){return(e.slice(-4)===\".bin\"?jlt:Cfe)()}function ydt(e,t){var r=[];return e.Props&&r.push(pot(e.Props,t)),e.Custprops&&r.push(mot(e.Props,e.Custprops)),r.join(\"\")}function bdt(){return\"\"}function xdt(e,t){var r=['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];return t.cellXfs.forEach(function(n,a){var i=[];i.push(Ht(\"NumberFormat\",null,{\"ss:Format\":zn(Aa[n.numFmtId])}));var o={\"ss:ID\":\"s\"+(21+a)};r.push(Ht(\"Style\",i.join(\"\"),o))}),Ht(\"Styles\",r.join(\"\"))}function Nfe(e){return Ht(\"NamedRange\",null,{\"ss:Name\":e.Name,\"ss:RefersTo\":\"=\"+BB(e.Ref,{r:0,c:0})})}function Cdt(e){if(!((e||{}).Workbook||{}).Names)return\"\";for(var t=e.Workbook.Names,r=[],n=0;n<t.length;++n){var a=t[n];a.Sheet==null&&(a.Name.match(/^_xlfn\\./)||r.push(Nfe(a)))}return Ht(\"Names\",r.join(\"\"))}function Fdt(e,t,r,n){if(!e||!((n||{}).Workbook||{}).Names)return\"\";for(var a=n.Workbook.Names,i=[],o=0;o<a.length;++o){var l=a[o];l.Sheet==r&&(l.Name.match(/^_xlfn\\./)||i.push(Nfe(l)))}return i.join(\"\")}function Sdt(e,t,r,n){if(!e)return\"\";var a=[];if(e[\"!margins\"]&&(a.push(\"<PageSetup>\"),e[\"!margins\"].header&&a.push(Ht(\"Header\",null,{\"x:Margin\":e[\"!margins\"].header})),e[\"!margins\"].footer&&a.push(Ht(\"Footer\",null,{\"x:Margin\":e[\"!margins\"].footer})),a.push(Ht(\"PageMargins\",null,{\"x:Bottom\":e[\"!margins\"].bottom||\"0.75\",\"x:Left\":e[\"!margins\"].left||\"0.7\",\"x:Right\":e[\"!margins\"].right||\"0.7\",\"x:Top\":e[\"!margins\"].top||\"0.75\"})),a.push(\"</PageSetup>\")),n&&n.Workbook&&n.Workbook.Sheets&&n.Workbook.Sheets[r])if(n.Workbook.Sheets[r].Hidden)a.push(Ht(\"Visible\",n.Workbook.Sheets[r].Hidden==1?\"SheetHidden\":\"SheetVeryHidden\",{}));else{for(var i=0;i<r&&!(n.Workbook.Sheets[i]&&!n.Workbook.Sheets[i].Hidden);++i);i==r&&a.push(\"<Selected/>\")}return((((n||{}).Workbook||{}).Views||[])[0]||{}).RTL&&a.push(\"<DisplayRightToLeft/>\"),e[\"!protect\"]&&(a.push(Hi(\"ProtectContents\",\"True\")),e[\"!protect\"].objects&&a.push(Hi(\"ProtectObjects\",\"True\")),e[\"!protect\"].scenarios&&a.push(Hi(\"ProtectScenarios\",\"True\")),e[\"!protect\"].selectLockedCells!=null&&!e[\"!protect\"].selectLockedCells?a.push(Hi(\"EnableSelection\",\"NoSelection\")):e[\"!protect\"].selectUnlockedCells!=null&&!e[\"!protect\"].selectUnlockedCells&&a.push(Hi(\"EnableSelection\",\"UnlockedCells\")),[[\"formatCells\",\"AllowFormatCells\"],[\"formatColumns\",\"AllowSizeCols\"],[\"formatRows\",\"AllowSizeRows\"],[\"insertColumns\",\"AllowInsertCols\"],[\"insertRows\",\"AllowInsertRows\"],[\"insertHyperlinks\",\"AllowInsertHyperlinks\"],[\"deleteColumns\",\"AllowDeleteCols\"],[\"deleteRows\",\"AllowDeleteRows\"],[\"sort\",\"AllowSort\"],[\"autoFilter\",\"AllowFilter\"],[\"pivotTables\",\"AllowUsePivotTables\"]].forEach(function(o){e[\"!protect\"][o[0]]&&a.push(\"<\"+o[1]+\"/>\")})),a.length==0?\"\":Ht(\"WorksheetOptions\",a.join(\"\"),{xmlns:Dl.x})}function wdt(e){return e.map(function(t){var r=_it(t.t||\"\"),n=Ht(\"ss:Data\",r,{xmlns:\"http://www.w3.org/TR/REC-html40\"});return Ht(\"Comment\",n,{\"ss:Author\":t.a})}).join(\"\")}function Edt(e,t,r,n,a,i,o){if(!e||e.v==null&&e.f==null)return\"\";var l={};if(e.f&&(l[\"ss:Formula\"]=\"=\"+zn(BB(e.f,o))),e.F&&e.F.slice(0,t.length)==t){var s=Ei(e.F.slice(t.length+1));l[\"ss:ArrayRange\"]=\"RC:R\"+(s.r==o.r?\"\":\"[\"+(s.r-o.r)+\"]\")+\"C\"+(s.c==o.c?\"\":\"[\"+(s.c-o.c)+\"]\")}if(e.l&&e.l.Target&&(l[\"ss:HRef\"]=zn(e.l.Target),e.l.Tooltip&&(l[\"x:HRefScreenTip\"]=zn(e.l.Tooltip))),r[\"!merges\"])for(var u=r[\"!merges\"],c=0;c!=u.length;++c)u[c].s.c!=o.c||u[c].s.r!=o.r||(u[c].e.c>u[c].s.c&&(l[\"ss:MergeAcross\"]=u[c].e.c-u[c].s.c),u[c].e.r>u[c].s.r&&(l[\"ss:MergeDown\"]=u[c].e.r-u[c].s.r));var d=\"\",f=\"\";switch(e.t){case\"z\":if(!n.sheetStubs)return\"\";break;case\"n\":d=\"Number\",f=String(e.v);break;case\"b\":d=\"Boolean\",f=e.v?\"1\":\"0\";break;case\"e\":d=\"Error\",f=Ux[e.v];break;case\"d\":d=\"DateTime\",f=new Date(e.v).toISOString(),e.z==null&&(e.z=e.z||Aa[14]);break;case\"s\":d=\"String\",f=Ait(e.v||\"\");break}var h=ih(n.cellXfs,e,n);l[\"ss:StyleID\"]=\"s\"+(21+h),l[\"ss:Index\"]=o.c+1;var p=e.v!=null?f:\"\",v=e.t==\"z\"?\"\":'<Data ss:Type=\"'+d+'\">'+p+\"</Data>\";return(e.c||[]).length>0&&(v+=wdt(e.c)),Ht(\"Cell\",v,l)}function Ddt(e,t){var r='<Row ss:Index=\"'+(e+1)+'\"';return t&&(t.hpt&&!t.hpx&&(t.hpx=gfe(t.hpt)),t.hpx&&(r+=' ss:AutoFitHeight=\"0\" ss:Height=\"'+t.hpx+'\"'),t.hidden&&(r+=' ss:Hidden=\"1\"')),r+\">\"}function Adt(e,t,r,n){if(!e[\"!ref\"])return\"\";var a=la(e[\"!ref\"]),i=e[\"!merges\"]||[],o=0,l=[];e[\"!cols\"]&&e[\"!cols\"].forEach(function(g,y){PB(g);var b=!!g.width,x=MD(y,g),F={\"ss:Index\":y+1};b&&(F[\"ss:Width\"]=v3(x.width)),g.hidden&&(F[\"ss:Hidden\"]=\"1\"),l.push(Ht(\"Column\",null,F))});for(var s=Array.isArray(e),u=a.s.r;u<=a.e.r;++u){for(var c=[Ddt(u,(e[\"!rows\"]||[])[u])],d=a.s.c;d<=a.e.c;++d){var f=!1;for(o=0;o!=i.length;++o)if(!(i[o].s.c>d)&&!(i[o].s.r>u)&&!(i[o].e.c<d)&&!(i[o].e.r<u)){(i[o].s.c!=d||i[o].s.r!=u)&&(f=!0);break}if(!f){var h={r:u,c:d},p=Vn(h),v=s?(e[u]||[])[d]:e[p];c.push(Edt(v,p,e,t,r,n,h))}}c.push(\"</Row>\"),c.length>2&&l.push(c.join(\"\"))}return l.join(\"\")}function _dt(e,t,r){var n=[],a=r.SheetNames[e],i=r.Sheets[a],o=i?Fdt(i,t,e,r):\"\";return o.length>0&&n.push(\"<Names>\"+o+\"</Names>\"),o=i?Adt(i,t,e,r):\"\",o.length>0&&n.push(\"<Table>\"+o+\"</Table>\"),n.push(Sdt(i,t,e,r)),n.join(\"\")}function Tdt(e,t){t||(t={}),e.SSF||(e.SSF=gl(Aa)),e.SSF&&(_D(),AD(e.SSF),t.revssf=TD(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF,t.cellXfs=[],ih(t.cellXfs,{},{revssf:{General:0}}));var r=[];r.push(ydt(e,t)),r.push(bdt()),r.push(\"\"),r.push(\"\");for(var n=0;n<e.SheetNames.length;++n)r.push(Ht(\"Worksheet\",_dt(n,t,e),{\"ss:Name\":zn(e.SheetNames[n])}));return r[2]=xdt(e,t),r[3]=Cdt(e),ei+Ht(\"Workbook\",r.join(\"\"),{xmlns:Dl.ss,\"xmlns:o\":Dl.o,\"xmlns:x\":Dl.x,\"xmlns:ss\":Dl.ss,\"xmlns:dt\":Dl.dt,\"xmlns:html\":Dl.html})}var J5={SI:\"e0859ff2f94f6810ab9108002b27b3d9\",DSI:\"02d5cdd59c2e1b10939708002b2cf9ae\",UDI:\"05d5cdd59c2e1b10939708002b2cf9ae\"};function Idt(e,t){var r=[],n=[],a=[],i=0,o,l=gU(IU,\"n\"),s=gU(kU,\"n\");if(e.Props)for(o=Ki(e.Props),i=0;i<o.length;++i)(Object.prototype.hasOwnProperty.call(l,o[i])?r:Object.prototype.hasOwnProperty.call(s,o[i])?n:a).push([o[i],e.Props[o[i]]]);if(e.Custprops)for(o=Ki(e.Custprops),i=0;i<o.length;++i)Object.prototype.hasOwnProperty.call(e.Props||{},o[i])||(Object.prototype.hasOwnProperty.call(l,o[i])?r:Object.prototype.hasOwnProperty.call(s,o[i])?n:a).push([o[i],e.Custprops[o[i]]]);var u=[];for(i=0;i<a.length;++i)lfe.indexOf(a[i][0])>-1||afe.indexOf(a[i][0])>-1||a[i][1]!=null&&u.push(a[i]);n.length&&Kn.utils.cfb_add(t,\"/\u0005SummaryInformation\",BU(n,J5.SI,s,kU)),(r.length||u.length)&&Kn.utils.cfb_add(t,\"/\u0005DocumentSummaryInformation\",BU(r,J5.DSI,l,IU,u.length?u:null,J5.UDI))}function kdt(e,t){var r=t||{},n=Kn.utils.cfb_new({root:\"R\"}),a=\"/Workbook\";switch(r.bookType||\"xls\"){case\"xls\":r.bookType=\"biff8\";case\"xla\":r.bookType||(r.bookType=\"xla\");case\"biff8\":a=\"/Workbook\",r.biff=8;break;case\"biff5\":a=\"/Book\",r.biff=5;break;default:throw new Error(\"invalid type \"+r.bookType+\" for XLS CFB\")}return Kn.utils.cfb_add(n,a,$fe(e,r)),r.biff==8&&(e.Props||e.Custprops)&&Idt(e,n),r.biff==8&&e.vbaraw&&qlt(n,Kn.read(e.vbaraw,{type:typeof e.vbaraw==\"string\"?\"binary\":\"buffer\"})),n}var Rdt={0:{f:Out},1:{f:Vut},2:{f:uct},3:{f:Jut},4:{f:Kut},5:{f:ict},6:{f:pct},7:{f:tct},8:{f:Cct},9:{f:xct},10:{f:yct},11:{f:bct},12:{f:Gut},13:{f:dct},14:{f:Qut},15:{f:qut},16:{f:lct},17:{f:vct},18:{f:nct},19:{f:IB},20:{},21:{},22:{},23:{},24:{},25:{},26:{},27:{},28:{},29:{},30:{},31:{},32:{},33:{},34:{},35:{T:1},36:{T:-1},37:{T:1},38:{T:-1},39:{f:odt},40:{},42:{},43:{f:plt},44:{f:flt},45:{f:glt},46:{f:blt},47:{f:ylt},48:{},49:{f:Git},50:{},51:{f:Olt},52:{T:1},53:{T:-1},54:{T:1},55:{T:-1},56:{T:1},57:{T:-1},58:{},59:{},60:{f:Uot},62:{f:hct},63:{f:zlt},64:{f:Nct},65:{},66:{},67:{},68:{},69:{},70:{},128:{},129:{T:1},130:{T:-1},131:{T:1,f:pc,p:0},132:{T:-1},133:{T:1},134:{T:-1},135:{T:1},136:{T:-1},137:{T:1,f:Mct},138:{T:-1},139:{T:1},140:{T:-1},141:{T:1},142:{T:-1},143:{T:1},144:{T:-1},145:{T:1},146:{T:-1},147:{f:zut},148:{f:$ut,p:16},151:{f:Act},152:{},153:{f:adt},154:{},155:{},156:{f:rdt},157:{},158:{},159:{T:1,f:rlt},160:{T:-1},161:{T:1,f:Mm},162:{T:-1},163:{T:1},164:{T:-1},165:{T:1},166:{T:-1},167:{},168:{},169:{},170:{},171:{},172:{T:1},173:{T:-1},174:{},175:{},176:{f:Fct},177:{T:1},178:{T:-1},179:{T:1},180:{T:-1},181:{T:1},182:{T:-1},183:{T:1},184:{T:-1},185:{T:1},186:{T:-1},187:{T:1},188:{T:-1},189:{T:1},190:{T:-1},191:{T:1},192:{T:-1},193:{T:1},194:{T:-1},195:{T:1},196:{T:-1},197:{T:1},198:{T:-1},199:{T:1},200:{T:-1},201:{T:1},202:{T:-1},203:{T:1},204:{T:-1},205:{T:1},206:{T:-1},207:{T:1},208:{T:-1},209:{T:1},210:{T:-1},211:{T:1},212:{T:-1},213:{T:1},214:{T:-1},215:{T:1},216:{T:-1},217:{T:1},218:{T:-1},219:{T:1},220:{T:-1},221:{T:1},222:{T:-1},223:{T:1},224:{T:-1},225:{T:1},226:{T:-1},227:{T:1},228:{T:-1},229:{T:1},230:{T:-1},231:{T:1},232:{T:-1},233:{T:1},234:{T:-1},235:{T:1},236:{T:-1},237:{T:1},238:{T:-1},239:{T:1},240:{T:-1},241:{T:1},242:{T:-1},243:{T:1},244:{T:-1},245:{T:1},246:{T:-1},247:{T:1},248:{T:-1},249:{T:1},250:{T:-1},251:{T:1},252:{T:-1},253:{T:1},254:{T:-1},255:{T:1},256:{T:-1},257:{T:1},258:{T:-1},259:{T:1},260:{T:-1},261:{T:1},262:{T:-1},263:{T:1},264:{T:-1},265:{T:1},266:{T:-1},267:{T:1},268:{T:-1},269:{T:1},270:{T:-1},271:{T:1},272:{T:-1},273:{T:1},274:{T:-1},275:{T:1},276:{T:-1},277:{},278:{T:1},279:{T:-1},280:{T:1},281:{T:-1},282:{T:1},283:{T:1},284:{T:-1},285:{T:1},286:{T:-1},287:{T:1},288:{T:-1},289:{T:1},290:{T:-1},291:{T:1},292:{T:-1},293:{T:1},294:{T:-1},295:{T:1},296:{T:-1},297:{T:1},298:{T:-1},299:{T:1},300:{T:-1},301:{T:1},302:{T:-1},303:{T:1},304:{T:-1},305:{T:1},306:{T:-1},307:{T:1},308:{T:-1},309:{T:1},310:{T:-1},311:{T:1},312:{T:-1},313:{T:-1},314:{T:1},315:{T:-1},316:{T:1},317:{T:-1},318:{T:1},319:{T:-1},320:{T:1},321:{T:-1},322:{T:1},323:{T:-1},324:{T:1},325:{T:-1},326:{T:1},327:{T:-1},328:{T:1},329:{T:-1},330:{T:1},331:{T:-1},332:{T:1},333:{T:-1},334:{T:1},335:{f:Mlt},336:{T:-1},337:{f:$lt,T:1},338:{T:-1},339:{T:1},340:{T:-1},341:{T:1},342:{T:-1},343:{T:1},344:{T:-1},345:{T:1},346:{T:-1},347:{T:1},348:{T:-1},349:{T:1},350:{T:-1},351:{},352:{},353:{T:1},354:{T:-1},355:{f:TM},357:{},358:{},359:{},360:{T:1},361:{},362:{f:jot},363:{},364:{},366:{},367:{},368:{},369:{},370:{},371:{},372:{T:1},373:{T:-1},374:{T:1},375:{T:-1},376:{T:1},377:{T:-1},378:{T:1},379:{T:-1},380:{T:1},381:{T:-1},382:{T:1},383:{T:-1},384:{T:1},385:{T:-1},386:{T:1},387:{T:-1},388:{T:1},389:{T:-1},390:{T:1},391:{T:-1},392:{T:1},393:{T:-1},394:{T:1},395:{T:-1},396:{},397:{},398:{},399:{},400:{},401:{T:1},403:{},404:{},405:{},406:{},407:{},408:{},409:{},410:{},411:{},412:{},413:{},414:{},415:{},416:{},417:{},418:{},419:{},420:{},421:{},422:{T:1},423:{T:1},424:{T:-1},425:{T:-1},426:{f:_ct},427:{f:Tct},428:{},429:{T:1},430:{T:-1},431:{T:1},432:{T:-1},433:{T:1},434:{T:-1},435:{T:1},436:{T:-1},437:{T:1},438:{T:-1},439:{T:1},440:{T:-1},441:{T:1},442:{T:-1},443:{T:1},444:{T:-1},445:{T:1},446:{T:-1},447:{T:1},448:{T:-1},449:{T:1},450:{T:-1},451:{T:1},452:{T:-1},453:{T:1},454:{T:-1},455:{T:1},456:{T:-1},457:{T:1},458:{T:-1},459:{T:1},460:{T:-1},461:{T:1},462:{T:-1},463:{T:1},464:{T:-1},465:{T:1},466:{T:-1},467:{T:1},468:{T:-1},469:{T:1},470:{T:-1},471:{},472:{},473:{T:1},474:{T:-1},475:{},476:{f:kct},477:{},478:{},479:{T:1},480:{T:-1},481:{T:1},482:{T:-1},483:{T:1},484:{T:-1},485:{f:jut},486:{T:1},487:{T:-1},488:{T:1},489:{T:-1},490:{T:1},491:{T:-1},492:{T:1},493:{T:-1},494:{f:Ect},495:{T:1},496:{T:-1},497:{T:1},498:{T:-1},499:{},500:{T:1},501:{T:-1},502:{T:1},503:{T:-1},504:{},505:{T:1},506:{T:-1},507:{},508:{T:1},509:{T:-1},510:{T:1},511:{T:-1},512:{},513:{},514:{T:1},515:{T:-1},516:{T:1},517:{T:-1},518:{T:1},519:{T:-1},520:{T:1},521:{T:-1},522:{},523:{},524:{},525:{},526:{},527:{},528:{T:1},529:{T:-1},530:{T:1},531:{T:-1},532:{T:1},533:{T:-1},534:{},535:{},536:{},537:{},538:{T:1},539:{T:-1},540:{T:1},541:{T:-1},542:{T:1},548:{},549:{},550:{f:TM},551:{},552:{},553:{},554:{T:1},555:{T:-1},556:{T:1},557:{T:-1},558:{T:1},559:{T:-1},560:{T:1},561:{T:-1},562:{},564:{},565:{T:1},566:{T:-1},569:{T:1},570:{T:-1},572:{},573:{T:1},574:{T:-1},577:{},578:{},579:{},580:{},581:{},582:{},583:{},584:{},585:{},586:{},587:{},588:{T:-1},589:{},590:{T:1},591:{T:-1},592:{T:1},593:{T:-1},594:{T:1},595:{T:-1},596:{},597:{T:1},598:{T:-1},599:{T:1},600:{T:-1},601:{T:1},602:{T:-1},603:{T:1},604:{T:-1},605:{T:1},606:{T:-1},607:{},608:{T:1},609:{T:-1},610:{},611:{T:1},612:{T:-1},613:{T:1},614:{T:-1},615:{T:1},616:{T:-1},617:{T:1},618:{T:-1},619:{T:1},620:{T:-1},625:{},626:{T:1},627:{T:-1},628:{T:1},629:{T:-1},630:{T:1},631:{T:-1},632:{f:Ult},633:{T:1},634:{T:-1},635:{T:1,f:Wlt},636:{T:-1},637:{f:qit},638:{T:1},639:{},640:{T:-1},641:{T:1},642:{T:-1},643:{T:1},644:{},645:{T:-1},646:{T:1},648:{T:1},649:{},650:{T:-1},651:{f:Xct},652:{},653:{T:1},654:{T:-1},655:{T:1},656:{T:-1},657:{T:1},658:{T:-1},659:{},660:{T:1},661:{},662:{T:-1},663:{},664:{T:1},665:{},666:{T:-1},667:{},668:{},669:{},671:{T:1},672:{T:-1},673:{T:1},674:{T:-1},675:{},676:{},677:{},678:{},679:{},680:{},681:{},1024:{},1025:{},1026:{T:1},1027:{T:-1},1028:{T:1},1029:{T:-1},1030:{},1031:{T:1},1032:{T:-1},1033:{T:1},1034:{T:-1},1035:{},1036:{},1037:{},1038:{T:1},1039:{T:-1},1040:{},1041:{T:1},1042:{T:-1},1043:{},1044:{},1045:{},1046:{T:1},1047:{T:-1},1048:{T:1},1049:{T:-1},1050:{},1051:{T:1},1052:{T:1},1053:{f:$ct},1054:{T:1},1055:{},1056:{T:1},1057:{T:-1},1058:{T:1},1059:{T:-1},1061:{},1062:{T:1},1063:{T:-1},1064:{T:1},1065:{T:-1},1066:{T:1},1067:{T:-1},1068:{T:1},1069:{T:-1},1070:{T:1},1071:{T:-1},1072:{T:1},1073:{T:-1},1075:{T:1},1076:{T:-1},1077:{T:1},1078:{T:-1},1079:{T:1},1080:{T:-1},1081:{T:1},1082:{T:-1},1083:{T:1},1084:{T:-1},1085:{},1086:{T:1},1087:{T:-1},1088:{T:1},1089:{T:-1},1090:{T:1},1091:{T:-1},1092:{T:1},1093:{T:-1},1094:{T:1},1095:{T:-1},1096:{},1097:{T:1},1098:{},1099:{T:-1},1100:{T:1},1101:{T:-1},1102:{},1103:{},1104:{},1105:{},1111:{},1112:{},1113:{T:1},1114:{T:-1},1115:{T:1},1116:{T:-1},1117:{},1118:{T:1},1119:{T:-1},1120:{T:1},1121:{T:-1},1122:{T:1},1123:{T:-1},1124:{T:1},1125:{T:-1},1126:{},1128:{T:1},1129:{T:-1},1130:{},1131:{T:1},1132:{T:-1},1133:{T:1},1134:{T:-1},1135:{T:1},1136:{T:-1},1137:{T:1},1138:{T:-1},1139:{T:1},1140:{T:-1},1141:{},1142:{T:1},1143:{T:-1},1144:{T:1},1145:{T:-1},1146:{},1147:{T:1},1148:{T:-1},1149:{T:1},1150:{T:-1},1152:{T:1},1153:{T:-1},1154:{T:-1},1155:{T:-1},1156:{T:-1},1157:{T:1},1158:{T:-1},1159:{T:1},1160:{T:-1},1161:{T:1},1162:{T:-1},1163:{T:1},1164:{T:-1},1165:{T:1},1166:{T:-1},1167:{T:1},1168:{T:-1},1169:{T:1},1170:{T:-1},1171:{},1172:{T:1},1173:{T:-1},1177:{},1178:{T:1},1180:{},1181:{},1182:{},2048:{T:1},2049:{T:-1},2050:{},2051:{T:1},2052:{T:-1},2053:{},2054:{},2055:{T:1},2056:{T:-1},2057:{T:1},2058:{T:-1},2060:{},2067:{},2068:{T:1},2069:{T:-1},2070:{},2071:{},2072:{T:1},2073:{T:-1},2075:{},2076:{},2077:{T:1},2078:{T:-1},2079:{},2080:{T:1},2081:{T:-1},2082:{},2083:{T:1},2084:{T:-1},2085:{T:1},2086:{T:-1},2087:{T:1},2088:{T:-1},2089:{T:1},2090:{T:-1},2091:{},2092:{},2093:{T:1},2094:{T:-1},2095:{},2096:{T:1},2097:{T:-1},2098:{T:1},2099:{T:-1},2100:{T:1},2101:{T:-1},2102:{},2103:{T:1},2104:{T:-1},2105:{},2106:{T:1},2107:{T:-1},2108:{},2109:{T:1},2110:{T:-1},2111:{T:1},2112:{T:-1},2113:{T:1},2114:{T:-1},2115:{},2116:{},2117:{},2118:{T:1},2119:{T:-1},2120:{},2121:{T:1},2122:{T:-1},2123:{T:1},2124:{T:-1},2125:{},2126:{T:1},2127:{T:-1},2128:{},2129:{T:1},2130:{T:-1},2131:{T:1},2132:{T:-1},2133:{T:1},2134:{},2135:{},2136:{},2137:{T:1},2138:{T:-1},2139:{T:1},2140:{T:-1},2141:{},3072:{},3073:{},4096:{T:1},4097:{T:-1},5002:{T:1},5003:{T:-1},5081:{T:1},5082:{T:-1},5083:{},5084:{T:1},5085:{T:-1},5086:{T:1},5087:{T:-1},5088:{},5089:{},5090:{},5092:{T:1},5093:{T:-1},5094:{},5095:{T:1},5096:{T:-1},5097:{},5099:{},65535:{n:\"\"}};function Vt(e,t,r,n){var a=t;if(!isNaN(a)){var i=n||(r||[]).length||0,o=e.next(4);o.write_shift(2,a),o.write_shift(2,i),i>0&&AB(r)&&e.push(r)}}function Mdt(e,t,r,n){var a=(r||[]).length||0;if(a<=8224)return Vt(e,t,r,a);var i=t;if(!isNaN(i)){for(var o=r.parts||[],l=0,s=0,u=0;u+(o[l]||8224)<=8224;)u+=o[l]||8224,l++;var c=e.next(4);for(c.write_shift(2,i),c.write_shift(2,u),e.push(r.slice(s,s+u)),s+=u;s<a;){for(c=e.next(4),c.write_shift(2,60),u=0;u+(o[l]||8224)<=8224;)u+=o[l]||8224,l++;c.write_shift(2,u),e.push(r.slice(s,s+u)),s+=u}}}function Yx(e,t,r){return e||(e=ct(7)),e.write_shift(2,t),e.write_shift(2,r),e.write_shift(2,0),e.write_shift(1,0),e}function Pdt(e,t,r,n){var a=ct(9);return Yx(a,e,t),ufe(r,n||\"b\",a),a}function Odt(e,t,r){var n=ct(8+2*r.length);return Yx(n,e,t),n.write_shift(1,r.length),n.write_shift(r.length,r,\"sbcs\"),n.l<n.length?n.slice(0,n.l):n}function Bdt(e,t,r,n){if(t.v!=null)switch(t.t){case\"d\":case\"n\":var a=t.t==\"d\"?vl(zo(t.v)):t.v;a==(a|0)&&a>=0&&a<65536?Vt(e,2,Xot(r,n,a)):Vt(e,3,qot(r,n,a));return;case\"b\":case\"e\":Vt(e,5,Pdt(r,n,t.v,t.t));return;case\"s\":case\"str\":Vt(e,4,Odt(r,n,(t.v||\"\").slice(0,255)));return}Vt(e,1,Yx(null,r,n))}function Ndt(e,t,r,n){var a=Array.isArray(t),i=la(t[\"!ref\"]||\"A1\"),o,l=\"\",s=[];if(i.e.c>255||i.e.r>16383){if(n.WTF)throw new Error(\"Range \"+(t[\"!ref\"]||\"A1\")+\" exceeds format limit A1:IV16384\");i.e.c=Math.min(i.e.c,255),i.e.r=Math.min(i.e.c,16383),o=Za(i)}for(var u=i.s.r;u<=i.e.r;++u){l=Wi(u);for(var c=i.s.c;c<=i.e.c;++c){u===i.s.r&&(s[c]=yo(c)),o=s[c]+l;var d=a?(t[u]||[])[c]:t[o];d&&Bdt(e,d,u,c)}}}function $dt(e,t){for(var r=t||{},n=fl(),a=0,i=0;i<e.SheetNames.length;++i)e.SheetNames[i]==r.sheet&&(a=i);if(a==0&&r.sheet&&e.SheetNames[0]!=r.sheet)throw new Error(\"Sheet not found: \"+r.sheet);return Vt(n,r.biff==4?1033:r.biff==3?521:9,MB(e,16,r)),Ndt(n,e.Sheets[e.SheetNames[a]],a,r),Vt(n,10),n.end()}function Ldt(e,t,r){Vt(e,49,Rot({sz:12,name:\"Arial\"},r))}function jdt(e,t,r){t&&[[5,8],[23,26],[41,44],[50,392]].forEach(function(n){for(var a=n[0];a<=n[1];++a)t[a]!=null&&Vt(e,1054,Oot(a,t[a],r))})}function zdt(e,t){var r=ct(19);r.write_shift(4,2151),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(2,3),r.write_shift(1,1),r.write_shift(4,0),Vt(e,2151,r),r=ct(39),r.write_shift(4,2152),r.write_shift(4,0),r.write_shift(4,0),r.write_shift(2,3),r.write_shift(1,0),r.write_shift(4,0),r.write_shift(2,1),r.write_shift(4,4),r.write_shift(2,0),ffe(la(t[\"!ref\"]||\"A1\"),r),r.write_shift(4,4),Vt(e,2152,r)}function Hdt(e,t){for(var r=0;r<16;++r)Vt(e,224,$U({numFmtId:0,style:!0},0,t));t.cellXfs.forEach(function(n){Vt(e,224,$U(n,0,t))})}function Vdt(e,t){for(var r=0;r<t[\"!links\"].length;++r){var n=t[\"!links\"][r];Vt(e,440,Vot(n)),n[1].Tooltip&&Vt(e,2048,Wot(n))}delete t[\"!links\"]}function Wdt(e,t){if(t){var r=0;t.forEach(function(n,a){++r<=256&&n&&Vt(e,125,Kot(MD(a,n),a))})}}function Gdt(e,t,r,n,a){var i=16+ih(a.cellXfs,t,a);if(t.v==null&&!t.bf){Vt(e,513,tm(r,n,i));return}if(t.bf)Vt(e,6,mut(t,r,n,a,i));else switch(t.t){case\"d\":case\"n\":var o=t.t==\"d\"?vl(zo(t.v)):t.v;Vt(e,515,Lot(r,n,o,i));break;case\"b\":case\"e\":Vt(e,517,$ot(r,n,t.v,i,a,t.t));break;case\"s\":case\"str\":if(a.bookSST){var l=$B(a.Strings,t.v,a.revStrings);Vt(e,253,Mot(r,n,l,i))}else Vt(e,516,Pot(r,n,(t.v||\"\").slice(0,255),i,a));break;default:Vt(e,513,tm(r,n,i))}}function Udt(e,t,r){var n=fl(),a=r.SheetNames[e],i=r.Sheets[a]||{},o=(r||{}).Workbook||{},l=(o.Sheets||[])[e]||{},s=Array.isArray(i),u=t.biff==8,c,d=\"\",f=[],h=la(i[\"!ref\"]||\"A1\"),p=u?65536:16384;if(h.e.c>255||h.e.r>=p){if(t.WTF)throw new Error(\"Range \"+(i[\"!ref\"]||\"A1\")+\" exceeds format limit A1:IV16384\");h.e.c=Math.min(h.e.c,255),h.e.r=Math.min(h.e.c,p-1)}Vt(n,2057,MB(r,16,t)),Vt(n,13,os(1)),Vt(n,12,os(100)),Vt(n,15,Mo(!0)),Vt(n,17,Mo(!1)),Vt(n,16,em(.001)),Vt(n,95,Mo(!0)),Vt(n,42,Mo(!1)),Vt(n,43,Mo(!1)),Vt(n,130,os(1)),Vt(n,128,Not()),Vt(n,131,Mo(!1)),Vt(n,132,Mo(!1)),u&&Wdt(n,i[\"!cols\"]),Vt(n,512,Bot(h,t)),u&&(i[\"!links\"]=[]);for(var v=h.s.r;v<=h.e.r;++v){d=Wi(v);for(var g=h.s.c;g<=h.e.c;++g){v===h.s.r&&(f[g]=yo(g)),c=f[g]+d;var y=s?(i[v]||[])[g]:i[c];y&&(Gdt(n,y,v,g,t),u&&y.l&&i[\"!links\"].push([c,y.l]))}}var b=l.CodeName||l.name||a;return u&&Vt(n,574,kot((o.Views||[])[0])),u&&(i[\"!merges\"]||[]).length&&Vt(n,229,Hot(i[\"!merges\"])),u&&Vdt(n,i),Vt(n,442,dfe(b)),u&&zdt(n,i),Vt(n,10),n.end()}function Kdt(e,t,r){var n=fl(),a=(e||{}).Workbook||{},i=a.Sheets||[],o=a.WBProps||{},l=r.biff==8,s=r.biff==5;if(Vt(n,2057,MB(e,5,r)),r.bookType==\"xla\"&&Vt(n,135),Vt(n,225,l?os(1200):null),Vt(n,193,yot(2)),s&&Vt(n,191),s&&Vt(n,192),Vt(n,226),Vt(n,92,Aot(\"SheetJS\",r)),Vt(n,66,os(l?1200:1252)),l&&Vt(n,353,os(0)),l&&Vt(n,448),Vt(n,317,Yot(e.SheetNames.length)),l&&e.vbaraw&&Vt(n,211),l&&e.vbaraw){var u=o.CodeName||\"ThisWorkbook\";Vt(n,442,dfe(u))}Vt(n,156,os(17)),Vt(n,25,Mo(!1)),Vt(n,18,Mo(!1)),Vt(n,19,os(0)),l&&Vt(n,431,Mo(!1)),l&&Vt(n,444,os(0)),Vt(n,61,Iot()),Vt(n,64,Mo(!1)),Vt(n,141,os(0)),Vt(n,34,Mo(Zct(e)==\"true\")),Vt(n,14,Mo(!0)),l&&Vt(n,439,Mo(!1)),Vt(n,218,os(0)),Ldt(n,e,r),jdt(n,e.SSF,r),Hdt(n,r),l&&Vt(n,352,Mo(!1));var c=n.end(),d=fl();l&&Vt(d,140,Got()),l&&r.Strings&&Mdt(d,252,Tot(r.Strings)),Vt(d,10);var f=d.end(),h=fl(),p=0,v=0;for(v=0;v<e.SheetNames.length;++v)p+=(l?12:11)+(l?2:1)*e.SheetNames[v].length;var g=c.length+p+f.length;for(v=0;v<e.SheetNames.length;++v){var y=i[v]||{};Vt(h,133,_ot({pos:g,hs:y.Hidden||0,dt:0,name:e.SheetNames[v]},r)),g+=t[v].length}var b=h.end();if(p!=b.length)throw new Error(\"BS8 \"+p+\" != \"+b.length);var x=[];return c.length&&x.push(c),b.length&&x.push(b),f.length&&x.push(f),zi(x)}function Ydt(e,t){var r=t||{},n=[];e&&!e.SSF&&(e.SSF=gl(Aa)),e&&e.SSF&&(_D(),AD(e.SSF),r.revssf=TD(e.SSF),r.revssf[e.SSF[65535]]=0,r.ssf=e.SSF),r.Strings=[],r.Strings.Count=0,r.Strings.Unique=0,LB(r),r.cellXfs=[],ih(r.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={});for(var a=0;a<e.SheetNames.length;++a)n[n.length]=Udt(a,r,e);return n.unshift(Kdt(e,n,r)),zi(n)}function $fe(e,t){for(var r=0;r<=e.SheetNames.length;++r){var n=e.Sheets[e.SheetNames[r]];if(!(!n||!n[\"!ref\"])){var a=Ll(n[\"!ref\"]);a.e.c>255&&typeof console<\"u\"&&console.error&&console.error(\"Worksheet '\"+e.SheetNames[r]+\"' extends beyond column IV (255). Data may be lost.\")}}var i=t||{};switch(i.biff||2){case 8:case 5:return Ydt(e,t);case 4:case 3:case 2:return $dt(e,t)}throw new Error(\"invalid type \"+i.bookType+\" for BIFF\")}function qdt(e,t,r,n){for(var a=e[\"!merges\"]||[],i=[],o=t.s.c;o<=t.e.c;++o){for(var l=0,s=0,u=0;u<a.length;++u)if(!(a[u].s.r>r||a[u].s.c>o)&&!(a[u].e.r<r||a[u].e.c<o)){if(a[u].s.r<r||a[u].s.c<o){l=-1;break}l=a[u].e.r-a[u].s.r+1,s=a[u].e.c-a[u].s.c+1;break}if(!(l<0)){var c=Vn({r,c:o}),d=n.dense?(e[r]||[])[o]:e[c],f=d&&d.v!=null&&(d.h||Dit(d.w||(cd(d),d.w)||\"\"))||\"\",h={};l>1&&(h.rowspan=l),s>1&&(h.colspan=s),n.editable?f='<span contenteditable=\"true\">'+f+\"</span>\":d&&(h[\"data-t\"]=d&&d.t||\"z\",d.v!=null&&(h[\"data-v\"]=d.v),d.z!=null&&(h[\"data-z\"]=d.z),d.l&&(d.l.Target||\"#\").charAt(0)!=\"#\"&&(f='<a href=\"'+d.l.Target+'\">'+f+\"</a>\")),h.id=(n.id||\"sjs\")+\"-\"+c,i.push(Ht(\"td\",f,h))}}var p=\"<tr>\";return p+i.join(\"\")+\"</tr>\"}var Xdt='<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export</title></head><body>',Jdt=\"</body></html>\";function Zdt(e,t,r){var n=[];return n.join(\"\")+\"<table\"+(r&&r.id?' id=\"'+r.id+'\"':\"\")+\">\"}function Lfe(e,t){var r=t||{},n=r.header!=null?r.header:Xdt,a=r.footer!=null?r.footer:Jdt,i=[n],o=Ll(e[\"!ref\"]);r.dense=Array.isArray(e),i.push(Zdt(e,o,r));for(var l=o.s.r;l<=o.e.r;++l)i.push(qdt(e,o,l,r));return i.push(\"</table>\"+a),i.join(\"\")}function jfe(e,t,r){var n=r||{},a=0,i=0;if(n.origin!=null)if(typeof n.origin==\"number\")a=n.origin;else{var o=typeof n.origin==\"string\"?Ei(n.origin):n.origin;a=o.r,i=o.c}var l=t.getElementsByTagName(\"tr\"),s=Math.min(n.sheetRows||1e7,l.length),u={s:{r:0,c:0},e:{r:a,c:i}};if(e[\"!ref\"]){var c=Ll(e[\"!ref\"]);u.s.r=Math.min(u.s.r,c.s.r),u.s.c=Math.min(u.s.c,c.s.c),u.e.r=Math.max(u.e.r,c.e.r),u.e.c=Math.max(u.e.c,c.e.c),a==-1&&(u.e.r=a=c.e.r+1)}var d=[],f=0,h=e[\"!rows\"]||(e[\"!rows\"]=[]),p=0,v=0,g=0,y=0,b=0,x=0;for(e[\"!cols\"]||(e[\"!cols\"]=[]);p<l.length&&v<s;++p){var F=l[p];if(GU(F)){if(n.display)continue;h[v]={hidden:!0}}var S=F.children;for(g=y=0;g<S.length;++g){var E=S[g];if(!(n.display&&GU(E))){var w=E.hasAttribute(\"data-v\")?E.getAttribute(\"data-v\"):E.hasAttribute(\"v\")?E.getAttribute(\"v\"):Iit(E.innerHTML),D=E.getAttribute(\"data-z\")||E.getAttribute(\"z\");for(f=0;f<d.length;++f){var A=d[f];A.s.c==y+i&&A.s.r<v+a&&v+a<=A.e.r&&(y=A.e.c+1-i,f=-1)}x=+E.getAttribute(\"colspan\")||1,((b=+E.getAttribute(\"rowspan\")||1)>1||x>1)&&d.push({s:{r:v+a,c:y+i},e:{r:v+a+(b||1)-1,c:y+i+(x||1)-1}});var _={t:\"s\",v:w},I=E.getAttribute(\"data-t\")||E.getAttribute(\"t\")||\"\";w!=null&&(w.length==0?_.t=I||\"z\":n.raw||w.trim().length==0||I==\"s\"||(w===\"TRUE\"?_={t:\"b\",v:!0}:w===\"FALSE\"?_={t:\"b\",v:!1}:isNaN(qc(w))?isNaN(v2(w).getDate())||(_={t:\"d\",v:zo(w)},n.cellDates||(_={t:\"n\",v:vl(_.v)}),_.z=n.dateNF||Aa[14]):_={t:\"n\",v:qc(w)})),_.z===void 0&&D!=null&&(_.z=D);var M=\"\",T=E.getElementsByTagName(\"A\");if(T&&T.length)for(var k=0;k<T.length&&!(T[k].hasAttribute(\"href\")&&(M=T[k].getAttribute(\"href\"),M.charAt(0)!=\"#\"));++k);M&&M.charAt(0)!=\"#\"&&(_.l={Target:M}),n.dense?(e[v+a]||(e[v+a]=[]),e[v+a][y+i]=_):e[Vn({c:y+i,r:v+a})]=_,u.e.c<y+i&&(u.e.c=y+i),y+=x}}++v}return d.length&&(e[\"!merges\"]=(e[\"!merges\"]||[]).concat(d)),u.e.r=Math.max(u.e.r,v-1+a),e[\"!ref\"]=Za(u),v>=s&&(e[\"!fullref\"]=Za((u.e.r=l.length-p+v-1+a,u))),e}function zfe(e,t){var r=t||{},n=r.dense?[]:{};return jfe(n,e,t)}function Qdt(e,t){return Tm(zfe(e,t),t)}function GU(e){var t=\"\",r=eft(e);return r&&(t=r(e).getPropertyValue(\"display\")),t||(t=e.style&&e.style.display),t===\"none\"}function eft(e){return e.ownerDocument.defaultView&&typeof e.ownerDocument.defaultView.getComputedStyle==\"function\"?e.ownerDocument.defaultView.getComputedStyle:typeof getComputedStyle==\"function\"?getComputedStyle:null}var tft=function(){var e=[\"<office:master-styles>\",'<style:master-page style:name=\"mp1\" style:page-layout-name=\"mp1\">',\"<style:header/>\",'<style:header-left style:display=\"false\"/>',\"<style:footer/>\",'<style:footer-left style:display=\"false\"/>',\"</style:master-page>\",\"</office:master-styles>\"].join(\"\"),t=\"<office:document-styles \"+y2({\"xmlns:office\":\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\"xmlns:table\":\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\"xmlns:style\":\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\"xmlns:text\":\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\"xmlns:draw\":\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\"xmlns:fo\":\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:number\":\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\"xmlns:svg\":\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\"xmlns:of\":\"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\"office:version\":\"1.2\"})+\">\"+e+\"</office:document-styles>\";return function(){return ei+t}}(),UU=function(){var e=function(i){return zn(i).replace(/ +/g,function(o){return'<text:s text:c=\"'+o.length+'\"/>'}).replace(/\\t/g,\"<text:tab/>\").replace(/\\n/g,\"</text:p><text:p>\").replace(/^ /,\"<text:s/>\").replace(/ $/,\"<text:s/>\")},t=` <table:table-cell />\n`,r=` <table:covered-table-cell/>\n`,n=function(i,o,l){var s=[];s.push(' <table:table table:name=\"'+zn(o.SheetNames[l])+`\" table:style-name=\"ta1\">\n`);var u=0,c=0,d=Ll(i[\"!ref\"]||\"A1\"),f=i[\"!merges\"]||[],h=0,p=Array.isArray(i);if(i[\"!cols\"])for(c=0;c<=d.e.c;++c)s.push(\" <table:table-column\"+(i[\"!cols\"][c]?' table:style-name=\"co'+i[\"!cols\"][c].ods+'\"':\"\")+`></table:table-column>\n`);var v=\"\",g=i[\"!rows\"]||[];for(u=0;u<d.s.r;++u)v=g[u]?' table:style-name=\"ro'+g[u].ods+'\"':\"\",s.push(\" <table:table-row\"+v+`></table:table-row>\n`);for(;u<=d.e.r;++u){for(v=g[u]?' table:style-name=\"ro'+g[u].ods+'\"':\"\",s.push(\" <table:table-row\"+v+`>\n`),c=0;c<d.s.c;++c)s.push(t);for(;c<=d.e.c;++c){var y=!1,b={},x=\"\";for(h=0;h!=f.length;++h)if(!(f[h].s.c>c)&&!(f[h].s.r>u)&&!(f[h].e.c<c)&&!(f[h].e.r<u)){(f[h].s.c!=c||f[h].s.r!=u)&&(y=!0),b[\"table:number-columns-spanned\"]=f[h].e.c-f[h].s.c+1,b[\"table:number-rows-spanned\"]=f[h].e.r-f[h].s.r+1;break}if(y){s.push(r);continue}var F=Vn({r:u,c}),S=p?(i[u]||[])[c]:i[F];if(S&&S.f&&(b[\"table:formula\"]=zn(Cut(S.f)),S.F&&S.F.slice(0,F.length)==F)){var E=Ll(S.F);b[\"table:number-matrix-columns-spanned\"]=E.e.c-E.s.c+1,b[\"table:number-matrix-rows-spanned\"]=E.e.r-E.s.r+1}if(!S){s.push(t);continue}switch(S.t){case\"b\":x=S.v?\"TRUE\":\"FALSE\",b[\"office:value-type\"]=\"boolean\",b[\"office:boolean-value\"]=S.v?\"true\":\"false\";break;case\"n\":x=S.w||String(S.v||0),b[\"office:value-type\"]=\"float\",b[\"office:value\"]=S.v||0;break;case\"s\":case\"str\":x=S.v==null?\"\":S.v,b[\"office:value-type\"]=\"string\";break;case\"d\":x=S.w||zo(S.v).toISOString(),b[\"office:value-type\"]=\"date\",b[\"office:date-value\"]=zo(S.v).toISOString(),b[\"table:style-name\"]=\"ce1\";break;default:s.push(t);continue}var w=e(x);if(S.l&&S.l.Target){var D=S.l.Target;D=D.charAt(0)==\"#\"?\"#\"+Fut(D.slice(1)):D,D.charAt(0)!=\"#\"&&!D.match(/^\\w+:/)&&(D=\"../\"+D),w=Ht(\"text:a\",w,{\"xlink:href\":D.replace(/&/g,\"&amp;\")})}s.push(\" \"+Ht(\"table:table-cell\",Ht(\"text:p\",w,{}),b)+`\n`)}s.push(` </table:table-row>\n`)}return s.push(` </table:table>\n`),s.join(\"\")},a=function(i,o){i.push(` <office:automatic-styles>\n`),i.push(` <number:date-style style:name=\"N37\" number:automatic-order=\"true\">\n`),i.push(` <number:month number:style=\"long\"/>\n`),i.push(` <number:text>/</number:text>\n`),i.push(` <number:day number:style=\"long\"/>\n`),i.push(` <number:text>/</number:text>\n`),i.push(` <number:year/>\n`),i.push(` </number:date-style>\n`);var l=0;o.SheetNames.map(function(u){return o.Sheets[u]}).forEach(function(u){if(u&&u[\"!cols\"]){for(var c=0;c<u[\"!cols\"].length;++c)if(u[\"!cols\"][c]){var d=u[\"!cols\"][c];if(d.width==null&&d.wpx==null&&d.wch==null)continue;PB(d),d.ods=l;var f=u[\"!cols\"][c].wpx+\"px\";i.push(' <style:style style:name=\"co'+l+`\" style:family=\"table-column\">\n`),i.push(' <style:table-column-properties fo:break-before=\"auto\" style:column-width=\"'+f+`\"/>\n`),i.push(` </style:style>\n`),++l}}});var s=0;o.SheetNames.map(function(u){return o.Sheets[u]}).forEach(function(u){if(u&&u[\"!rows\"]){for(var c=0;c<u[\"!rows\"].length;++c)if(u[\"!rows\"][c]){u[\"!rows\"][c].ods=s;var d=u[\"!rows\"][c].hpx+\"px\";i.push(' <style:style style:name=\"ro'+s+`\" style:family=\"table-row\">\n`),i.push(' <style:table-row-properties fo:break-before=\"auto\" style:row-height=\"'+d+`\"/>\n`),i.push(` </style:style>\n`),++s}}}),i.push(` <style:style style:name=\"ta1\" style:family=\"table\" style:master-page-name=\"mp1\">\n`),i.push(` <style:table-properties table:display=\"true\" style:writing-mode=\"lr-tb\"/>\n`),i.push(` </style:style>\n`),i.push(` <style:style style:name=\"ce1\" style:family=\"table-cell\" style:parent-style-name=\"Default\" style:data-style-name=\"N37\"/>\n`),i.push(` </office:automatic-styles>\n`)};return function(o,l){var s=[ei],u=y2({\"xmlns:office\":\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\"xmlns:table\":\"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\"xmlns:style\":\"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\"xmlns:text\":\"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\"xmlns:draw\":\"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\"xmlns:fo\":\"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"xmlns:dc\":\"http://purl.org/dc/elements/1.1/\",\"xmlns:meta\":\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\"xmlns:number\":\"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\"xmlns:presentation\":\"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\"xmlns:svg\":\"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\"xmlns:chart\":\"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\"xmlns:dr3d\":\"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\"xmlns:math\":\"http://www.w3.org/1998/Math/MathML\",\"xmlns:form\":\"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\"xmlns:script\":\"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\"xmlns:ooo\":\"http://openoffice.org/2004/office\",\"xmlns:ooow\":\"http://openoffice.org/2004/writer\",\"xmlns:oooc\":\"http://openoffice.org/2004/calc\",\"xmlns:dom\":\"http://www.w3.org/2001/xml-events\",\"xmlns:xforms\":\"http://www.w3.org/2002/xforms\",\"xmlns:xsd\":\"http://www.w3.org/2001/XMLSchema\",\"xmlns:xsi\":\"http://www.w3.org/2001/XMLSchema-instance\",\"xmlns:sheet\":\"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\"xmlns:rpt\":\"http://openoffice.org/2005/report\",\"xmlns:of\":\"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\"xmlns:xhtml\":\"http://www.w3.org/1999/xhtml\",\"xmlns:grddl\":\"http://www.w3.org/2003/g/data-view#\",\"xmlns:tableooo\":\"http://openoffice.org/2009/table\",\"xmlns:drawooo\":\"http://openoffice.org/2010/draw\",\"xmlns:calcext\":\"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\"xmlns:loext\":\"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\"xmlns:field\":\"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\"xmlns:formx\":\"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\"xmlns:css3t\":\"http://www.w3.org/TR/css3-text/\",\"office:version\":\"1.2\"}),c=y2({\"xmlns:config\":\"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\"office:mimetype\":\"application/vnd.oasis.opendocument.spreadsheet\"});l.bookType==\"fods\"?(s.push(\"<office:document\"+u+c+`>\n`),s.push(rfe().replace(/office:document-meta/g,\"office:meta\"))):s.push(\"<office:document-content\"+u+`>\n`),a(s,o),s.push(` <office:body>\n`),s.push(` <office:spreadsheet>\n`);for(var d=0;d!=o.SheetNames.length;++d)s.push(n(o.Sheets[o.SheetNames[d]],o,d));return s.push(` </office:spreadsheet>\n`),s.push(` </office:body>\n`),l.bookType==\"fods\"?s.push(\"</office:document>\"):s.push(\"</office:document-content>\"),s.join(\"\")}}();function Hfe(e,t){if(t.bookType==\"fods\")return UU(e,t);var r=SB(),n=\"\",a=[],i=[];return n=\"mimetype\",sn(r,n,\"application/vnd.oasis.opendocument.spreadsheet\"),n=\"content.xml\",sn(r,n,UU(e,t)),a.push([n,\"text/xml\"]),i.push([n,\"ContentFile\"]),n=\"styles.xml\",sn(r,n,tft(e,t)),a.push([n,\"text/xml\"]),i.push([n,\"StylesFile\"]),n=\"meta.xml\",sn(r,n,ei+rfe()),a.push([n,\"text/xml\"]),i.push([n,\"MetadataFile\"]),n=\"manifest.rdf\",sn(r,n,hot(i)),a.push([n,\"application/rdf+xml\"]),n=\"META-INF/manifest.xml\",sn(r,n,dot(a)),r}/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */function b3(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function rft(e){return typeof TextEncoder<\"u\"?new TextEncoder().encode(e):Qs(g2(e))}function nft(e,t){e:for(var r=0;r<=e.length-t.length;++r){for(var n=0;n<t.length;++n)if(e[r+n]!=t[n])continue e;return!0}return!1}function Uf(e){var t=e.reduce(function(a,i){return a+i.length},0),r=new Uint8Array(t),n=0;return e.forEach(function(a){r.set(a,n),n+=a.length}),r}function aft(e,t,r){var n=Math.floor(r==0?0:Math.LOG10E*Math.log(Math.abs(r)))+6176-20,a=r/Math.pow(10,n-6176);e[t+15]|=n>>7,e[t+14]|=(n&127)<<1;for(var i=0;a>=1;++i,a/=256)e[t+i]=a&255;e[t+15]|=r>=0?0:128}function b2(e,t){var r=t?t[0]:0,n=e[r]&127;e:if(e[r++]>=128&&(n|=(e[r]&127)<<7,e[r++]<128||(n|=(e[r]&127)<<14,e[r++]<128)||(n|=(e[r]&127)<<21,e[r++]<128)||(n+=(e[r]&127)*Math.pow(2,28),++r,e[r++]<128)||(n+=(e[r]&127)*Math.pow(2,35),++r,e[r++]<128)||(n+=(e[r]&127)*Math.pow(2,42),++r,e[r++]<128)))break e;return t&&(t[0]=r),n}function Bn(e){var t=new Uint8Array(7);t[0]=e&127;var r=1;e:if(e>127){if(t[r-1]|=128,t[r]=e>>7&127,++r,e<=16383||(t[r-1]|=128,t[r]=e>>14&127,++r,e<=2097151)||(t[r-1]|=128,t[r]=e>>21&127,++r,e<=268435455)||(t[r-1]|=128,t[r]=e/256>>>21&127,++r,e<=34359738367)||(t[r-1]|=128,t[r]=e/65536>>>21&127,++r,e<=4398046511103))break e;t[r-1]|=128,t[r]=e/16777216>>>21&127,++r}return t.slice(0,r)}function w0(e){var t=0,r=e[t]&127;e:if(e[t++]>=128){if(r|=(e[t]&127)<<7,e[t++]<128||(r|=(e[t]&127)<<14,e[t++]<128)||(r|=(e[t]&127)<<21,e[t++]<128))break e;r|=(e[t]&127)<<28}return r}function ni(e){for(var t=[],r=[0];r[0]<e.length;){var n=r[0],a=b2(e,r),i=a&7;a=Math.floor(a/8);var o=0,l;if(a==0)break;switch(i){case 0:{for(var s=r[0];e[r[0]++]>=128;);l=e.slice(s,r[0])}break;case 5:o=4,l=e.slice(r[0],r[0]+o),r[0]+=o;break;case 1:o=8,l=e.slice(r[0],r[0]+o),r[0]+=o;break;case 2:o=b2(e,r),l=e.slice(r[0],r[0]+o),r[0]+=o;break;case 3:case 4:default:throw new Error(\"PB Type \".concat(i,\" for Field \").concat(a,\" at offset \").concat(n))}var u={data:l,type:i};t[a]==null?t[a]=[u]:t[a].push(u)}return t}function Oi(e){var t=[];return e.forEach(function(r,n){r.forEach(function(a){a.data&&(t.push(Bn(n*8+a.type)),a.type==2&&t.push(Bn(a.data.length)),t.push(a.data))})}),Uf(t)}function Ls(e){for(var t,r=[],n=[0];n[0]<e.length;){var a=b2(e,n),i=ni(e.slice(n[0],n[0]+a));n[0]+=a;var o={id:w0(i[1][0].data),messages:[]};i[2].forEach(function(l){var s=ni(l.data),u=w0(s[3][0].data);o.messages.push({meta:s,data:e.slice(n[0],n[0]+u)}),n[0]+=u}),(t=i[3])!=null&&t[0]&&(o.merge=w0(i[3][0].data)>>>0>0),r.push(o)}return r}function ov(e){var t=[];return e.forEach(function(r){var n=[];n[1]=[{data:Bn(r.id),type:0}],n[2]=[],r.merge!=null&&(n[3]=[{data:Bn(+!!r.merge),type:0}]);var a=[];r.messages.forEach(function(o){a.push(o.data),o.meta[3]=[{type:0,data:Bn(o.data.length)}],n[2].push({data:Oi(o.meta),type:2})});var i=Oi(n);t.push(Bn(i.length)),t.push(i),a.forEach(function(o){return t.push(o)})}),Uf(t)}function ift(e,t){if(e!=0)throw new Error(\"Unexpected Snappy chunk type \".concat(e));for(var r=[0],n=b2(t,r),a=[];r[0]<t.length;){var i=t[r[0]]&3;if(i==0){var o=t[r[0]++]>>2;if(o<60)++o;else{var l=o-59;o=t[r[0]],l>1&&(o|=t[r[0]+1]<<8),l>2&&(o|=t[r[0]+2]<<16),l>3&&(o|=t[r[0]+3]<<24),o>>>=0,o++,r[0]+=l}a.push(t.slice(r[0],r[0]+o)),r[0]+=o;continue}else{var s=0,u=0;if(i==1?(u=(t[r[0]]>>2&7)+4,s=(t[r[0]++]&224)<<3,s|=t[r[0]++]):(u=(t[r[0]++]>>2)+1,i==2?(s=t[r[0]]|t[r[0]+1]<<8,r[0]+=2):(s=(t[r[0]]|t[r[0]+1]<<8|t[r[0]+2]<<16|t[r[0]+3]<<24)>>>0,r[0]+=4)),a=[Uf(a)],s==0)throw new Error(\"Invalid offset 0\");if(s>a[0].length)throw new Error(\"Invalid offset beyond length\");if(u>=s)for(a.push(a[0].slice(-s)),u-=s;u>=a[a.length-1].length;)a.push(a[a.length-1]),u-=a[a.length-1].length;a.push(a[0].slice(-s,-s+u))}}var c=Uf(a);if(c.length!=n)throw new Error(\"Unexpected length: \".concat(c.length,\" != \").concat(n));return c}function js(e){for(var t=[],r=0;r<e.length;){var n=e[r++],a=e[r]|e[r+1]<<8|e[r+2]<<16;r+=3,t.push(ift(n,e.slice(r,r+a))),r+=a}if(r!==e.length)throw new Error(\"data is not a valid framed stream!\");return Uf(t)}function lv(e){for(var t=[],r=0;r<e.length;){var n=Math.min(e.length-r,268435455),a=new Uint8Array(4);t.push(a);var i=Bn(n),o=i.length;t.push(i),n<=60?(o++,t.push(new Uint8Array([n-1<<2]))):n<=256?(o+=2,t.push(new Uint8Array([240,n-1&255]))):n<=65536?(o+=3,t.push(new Uint8Array([244,n-1&255,n-1>>8&255]))):n<=16777216?(o+=4,t.push(new Uint8Array([248,n-1&255,n-1>>8&255,n-1>>16&255]))):n<=4294967296&&(o+=5,t.push(new Uint8Array([252,n-1&255,n-1>>8&255,n-1>>16&255,n-1>>>24&255]))),t.push(e.slice(r,r+n)),o+=n,a[0]=0,a[1]=o&255,a[2]=o>>8&255,a[3]=o>>16&255,r+=n}return Uf(t)}function Z5(e,t){var r=new Uint8Array(32),n=b3(r),a=12,i=0;switch(r[0]=5,e.t){case\"n\":r[1]=2,aft(r,a,e.v),i|=1,a+=16;break;case\"b\":r[1]=6,n.setFloat64(a,e.v?1:0,!0),i|=2,a+=8;break;case\"s\":if(t.indexOf(e.v)==-1)throw new Error(\"Value \".concat(e.v,\" missing from SST!\"));r[1]=3,n.setUint32(a,t.indexOf(e.v),!0),i|=8,a+=4;break;default:throw\"unsupported cell type \"+e.t}return n.setUint32(8,i,!0),r.slice(0,a)}function Q5(e,t){var r=new Uint8Array(32),n=b3(r),a=12,i=0;switch(r[0]=3,e.t){case\"n\":r[2]=2,n.setFloat64(a,e.v,!0),i|=32,a+=8;break;case\"b\":r[2]=6,n.setFloat64(a,e.v?1:0,!0),i|=32,a+=8;break;case\"s\":if(t.indexOf(e.v)==-1)throw new Error(\"Value \".concat(e.v,\" missing from SST!\"));r[2]=3,n.setUint32(a,t.indexOf(e.v),!0),i|=16,a+=4;break;default:throw\"unsupported cell type \"+e.t}return n.setUint32(4,i,!0),r.slice(0,a)}function Rd(e){var t=ni(e);return b2(t[1][0].data)}function oft(e,t,r){var n,a,i,o;if(!((n=e[6])!=null&&n[0])||!((a=e[7])!=null&&a[0]))throw\"Mutation only works on post-BNC storages!\";var l=((o=(i=e[8])==null?void 0:i[0])==null?void 0:o.data)&&w0(e[8][0].data)>0||!1;if(l)throw\"Math only works with normal offsets\";for(var s=0,u=b3(e[7][0].data),c=0,d=[],f=b3(e[4][0].data),h=0,p=[],v=0;v<t.length;++v){if(t[v]==null){u.setUint16(v*2,65535,!0),f.setUint16(v*2,65535);continue}u.setUint16(v*2,c,!0),f.setUint16(v*2,h,!0);var g,y;switch(typeof t[v]){case\"string\":g=Z5({t:\"s\",v:t[v]},r),y=Q5({t:\"s\",v:t[v]},r);break;case\"number\":g=Z5({t:\"n\",v:t[v]},r),y=Q5({t:\"n\",v:t[v]},r);break;case\"boolean\":g=Z5({t:\"b\",v:t[v]},r),y=Q5({t:\"b\",v:t[v]},r);break;default:throw new Error(\"Unsupported value \"+t[v])}d.push(g),c+=g.length,p.push(y),h+=y.length,++s}for(e[2][0].data=Bn(s);v<e[7][0].data.length/2;++v)u.setUint16(v*2,65535,!0),f.setUint16(v*2,65535,!0);return e[6][0].data=Uf(d),e[3][0].data=Uf(p),s}function lft(e,t){if(!t||!t.numbers)throw new Error(\"Must pass a `numbers` option -- check the README\");var r=e.Sheets[e.SheetNames[0]];e.SheetNames.length>1&&console.error(\"The Numbers writer currently writes only the first table\");var n=Ll(r[\"!ref\"]);n.s.r=n.s.c=0;var a=!1;n.e.c>9&&(a=!0,n.e.c=9),n.e.r>49&&(a=!0,n.e.r=49),a&&console.error(\"The Numbers writer is currently limited to \".concat(Za(n)));var i=x3(r,{range:n,header:1}),o=[\"~Sh33tJ5~\"];i.forEach(function(j){return j.forEach(function(H){typeof H==\"string\"&&o.push(H)})});var l={},s=[],u=Kn.read(t.numbers,{type:\"base64\"});u.FileIndex.map(function(j,H){return[j,u.FullPaths[H]]}).forEach(function(j){var H=j[0],V=j[1];if(H.type==2&&H.name.match(/\\.iwa/)){var U=H.content,Q=js(U),K=Ls(Q);K.forEach(function(Y){s.push(Y.id),l[Y.id]={deps:[],location:V,type:w0(Y.messages[0].meta[1][0].data)}})}}),s.sort(function(j,H){return j-H});var c=s.filter(function(j){return j>1}).map(function(j){return[j,Bn(j)]});u.FileIndex.map(function(j,H){return[j,u.FullPaths[H]]}).forEach(function(j){var H=j[0];if(j[1],!!H.name.match(/\\.iwa/)){var V=Ls(js(H.content));V.forEach(function(U){U.messages.forEach(function(Q){c.forEach(function(K){U.messages.some(function(Y){return w0(Y.meta[1][0].data)!=11006&&nft(Y.data,K[1])})&&l[K[0]].deps.push(U.id)})})})}});for(var d=Kn.find(u,l[1].location),f=Ls(js(d.content)),h,p=0;p<f.length;++p){var v=f[p];v.id==1&&(h=v)}var g=Rd(ni(h.messages[0].data)[1][0].data);for(d=Kn.find(u,l[g].location),f=Ls(js(d.content)),p=0;p<f.length;++p)v=f[p],v.id==g&&(h=v);for(g=Rd(ni(h.messages[0].data)[2][0].data),d=Kn.find(u,l[g].location),f=Ls(js(d.content)),p=0;p<f.length;++p)v=f[p],v.id==g&&(h=v);for(g=Rd(ni(h.messages[0].data)[2][0].data),d=Kn.find(u,l[g].location),f=Ls(js(d.content)),p=0;p<f.length;++p)v=f[p],v.id==g&&(h=v);var y=ni(h.messages[0].data);{y[6][0].data=Bn(n.e.r+1),y[7][0].data=Bn(n.e.c+1);var b=Rd(y[46][0].data),x=Kn.find(u,l[b].location),F=Ls(js(x.content));{for(var S=0;S<F.length&&F[S].id!=b;++S);if(F[S].id!=b)throw\"Bad ColumnRowUIDMapArchive\";var E=ni(F[S].messages[0].data);E[1]=[],E[2]=[],E[3]=[];for(var w=0;w<=n.e.c;++w){var D=[];D[1]=D[2]=[{type:0,data:Bn(w+420690)}],E[1].push({type:2,data:Oi(D)}),E[2].push({type:0,data:Bn(w)}),E[3].push({type:0,data:Bn(w)})}E[4]=[],E[5]=[],E[6]=[];for(var A=0;A<=n.e.r;++A)D=[],D[1]=D[2]=[{type:0,data:Bn(A+726270)}],E[4].push({type:2,data:Oi(D)}),E[5].push({type:0,data:Bn(A)}),E[6].push({type:0,data:Bn(A)});F[S].messages[0].data=Oi(E)}x.content=lv(ov(F)),x.size=x.content.length,delete y[46];var _=ni(y[4][0].data);{_[7][0].data=Bn(n.e.r+1);var I=ni(_[1][0].data),M=Rd(I[2][0].data);x=Kn.find(u,l[M].location),F=Ls(js(x.content));{if(F[0].id!=M)throw\"Bad HeaderStorageBucket\";var T=ni(F[0].messages[0].data);for(A=0;A<i.length;++A){var k=ni(T[2][0].data);k[1][0].data=Bn(A),k[4][0].data=Bn(i[A].length),T[2][A]={type:T[2][0].type,data:Oi(k)}}F[0].messages[0].data=Oi(T)}x.content=lv(ov(F)),x.size=x.content.length;var R=Rd(_[2][0].data);x=Kn.find(u,l[R].location),F=Ls(js(x.content));{if(F[0].id!=R)throw\"Bad HeaderStorageBucket\";for(T=ni(F[0].messages[0].data),w=0;w<=n.e.c;++w)k=ni(T[2][0].data),k[1][0].data=Bn(w),k[4][0].data=Bn(n.e.r+1),T[2][w]={type:T[2][0].type,data:Oi(k)};F[0].messages[0].data=Oi(T)}x.content=lv(ov(F)),x.size=x.content.length;var P=Rd(_[4][0].data);(function(){for(var j=Kn.find(u,l[P].location),H=Ls(js(j.content)),V,U=0;U<H.length;++U){var Q=H[U];Q.id==P&&(V=Q)}var K=ni(V.messages[0].data);{K[3]=[];var Y=[];o.forEach(function(X,ce){Y[1]=[{type:0,data:Bn(ce)}],Y[2]=[{type:0,data:Bn(1)}],Y[3]=[{type:2,data:rft(X)}],K[3].push({type:2,data:Oi(Y)})})}V.messages[0].data=Oi(K);var ee=ov(H),J=lv(ee);j.content=J,j.size=j.content.length})();var B=ni(_[3][0].data);{var N=B[1][0];delete B[2];var O=ni(N.data);{var z=Rd(O[2][0].data);(function(){for(var j=Kn.find(u,l[z].location),H=Ls(js(j.content)),V,U=0;U<H.length;++U){var Q=H[U];Q.id==z&&(V=Q)}var K=ni(V.messages[0].data);{delete K[6],delete B[7];var Y=new Uint8Array(K[5][0].data);K[5]=[];for(var ee=0,J=0;J<=n.e.r;++J){var X=ni(Y);ee+=oft(X,i[J],o),X[1][0].data=Bn(J),K[5].push({data:Oi(X),type:2})}K[1]=[{type:0,data:Bn(n.e.c+1)}],K[2]=[{type:0,data:Bn(n.e.r+1)}],K[3]=[{type:0,data:Bn(ee)}],K[4]=[{type:0,data:Bn(n.e.r+1)}]}V.messages[0].data=Oi(K);var ce=ov(H),oe=lv(ce);j.content=oe,j.size=j.content.length})()}N.data=Oi(O)}_[3][0].data=Oi(B)}y[4][0].data=Oi(_)}h.messages[0].data=Oi(y);var W=ov(f),L=lv(W);return d.content=L,d.size=d.content.length,u}function sft(e){return function(r){for(var n=0;n!=e.length;++n){var a=e[n];r[a[0]]===void 0&&(r[a[0]]=a[1]),a[2]===\"n\"&&(r[a[0]]=Number(r[a[0]]))}}}function LB(e){sft([[\"cellDates\",!1],[\"bookSST\",!1],[\"bookType\",\"xlsx\"],[\"compression\",!1],[\"WTF\",!1]])(e)}function uft(e,t){return t.bookType==\"ods\"?Hfe(e,t):t.bookType==\"numbers\"?lft(e,t):t.bookType==\"xlsb\"?cft(e,t):dft(e,t)}function cft(e,t){a0=1024,e&&!e.SSF&&(e.SSF=gl(Aa)),e&&e.SSF&&(_D(),AD(e.SSF),t.revssf=TD(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF),t.rels={},t.wbrels={},t.Strings=[],t.Strings.Count=0,t.Strings.Unique=0,ab?t.revStrings=new Map:(t.revStrings={},t.revStrings.foo=[],delete t.revStrings.foo);var r=t.bookType==\"xlsb\"?\"bin\":\"xml\",n=wfe.indexOf(t.bookType)>-1,a=Qde();LB(t=t||{});var i=SB(),o=\"\",l=0;if(t.cellXfs=[],ih(t.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),o=\"docProps/core.xml\",sn(i,o,nfe(e.Props,t)),a.coreprops.push(o),Nn(t.rels,2,o,En.CORE_PROPS),o=\"docProps/app.xml\",!(e.Props&&e.Props.SheetNames))if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else{for(var s=[],u=0;u<e.SheetNames.length;++u)(e.Workbook.Sheets[u]||{}).Hidden!=2&&s.push(e.SheetNames[u]);e.Props.SheetNames=s}for(e.Props.Worksheets=e.Props.SheetNames.length,sn(i,o,ife(e.Props)),a.extprops.push(o),Nn(t.rels,3,o,En.EXT_PROPS),e.Custprops!==e.Props&&Ki(e.Custprops||{}).length>0&&(o=\"docProps/custom.xml\",sn(i,o,ofe(e.Custprops)),a.custprops.push(o),Nn(t.rels,4,o,En.CUST_PROPS)),l=1;l<=e.SheetNames.length;++l){var c={\"!id\":{}},d=e.Sheets[e.SheetNames[l-1]],f=(d||{})[\"!type\"]||\"sheet\";switch(f){case\"chart\":default:o=\"xl/worksheets/sheet\"+l+\".\"+r,sn(i,o,hdt(l-1,o,t,e,c)),a.sheets.push(o),Nn(t.wbrels,-1,\"worksheets/sheet\"+l+\".\"+r,En.WS[0])}if(d){var h=d[\"!comments\"],p=!1,v=\"\";h&&h.length>0&&(v=\"xl/comments\"+l+\".\"+r,sn(i,v,vdt(h,v)),a.comments.push(v),Nn(c,-1,\"../comments\"+l+\".\"+r,En.CMNT),p=!0),d[\"!legacy\"]&&p&&sn(i,\"xl/drawings/vmlDrawing\"+l+\".vml\",Ffe(l,d[\"!comments\"])),delete d[\"!comments\"],delete d[\"!legacy\"]}c[\"!id\"].rId1&&sn(i,tfe(o),F0(c))}return t.Strings!=null&&t.Strings.length>0&&(o=\"xl/sharedStrings.\"+r,sn(i,o,mdt(t.Strings,o,t)),a.strs.push(o),Nn(t.wbrels,-1,\"sharedStrings.\"+r,En.SST)),o=\"xl/workbook.\"+r,sn(i,o,fdt(e,o)),a.workbooks.push(o),Nn(t.rels,1,o,En.WB),o=\"xl/theme/theme1.xml\",sn(i,o,xfe(e.Themes,t)),a.themes.push(o),Nn(t.wbrels,-1,\"theme/theme1.xml\",En.THEME),o=\"xl/styles.\"+r,sn(i,o,pdt(e,o,t)),a.styles.push(o),Nn(t.wbrels,-1,\"styles.\"+r,En.STY),e.vbaraw&&n&&(o=\"xl/vbaProject.bin\",sn(i,o,e.vbaraw),a.vba.push(o),Nn(t.wbrels,-1,\"vbaProject.bin\",En.VBA)),o=\"xl/metadata.\"+r,sn(i,o,gdt(o)),a.metadata.push(o),Nn(t.wbrels,-1,\"metadata.\"+r,En.XLMETA),sn(i,\"[Content_Types].xml\",efe(a,t)),sn(i,\"_rels/.rels\",F0(t.rels)),sn(i,\"xl/_rels/workbook.\"+r+\".rels\",F0(t.wbrels)),delete t.revssf,delete t.ssf,i}function dft(e,t){a0=1024,e&&!e.SSF&&(e.SSF=gl(Aa)),e&&e.SSF&&(_D(),AD(e.SSF),t.revssf=TD(e.SSF),t.revssf[e.SSF[65535]]=0,t.ssf=e.SSF),t.rels={},t.wbrels={},t.Strings=[],t.Strings.Count=0,t.Strings.Unique=0,ab?t.revStrings=new Map:(t.revStrings={},t.revStrings.foo=[],delete t.revStrings.foo);var r=\"xml\",n=wfe.indexOf(t.bookType)>-1,a=Qde();LB(t=t||{});var i=SB(),o=\"\",l=0;if(t.cellXfs=[],ih(t.cellXfs,{},{revssf:{General:0}}),e.Props||(e.Props={}),o=\"docProps/core.xml\",sn(i,o,nfe(e.Props,t)),a.coreprops.push(o),Nn(t.rels,2,o,En.CORE_PROPS),o=\"docProps/app.xml\",!(e.Props&&e.Props.SheetNames))if(!e.Workbook||!e.Workbook.Sheets)e.Props.SheetNames=e.SheetNames;else{for(var s=[],u=0;u<e.SheetNames.length;++u)(e.Workbook.Sheets[u]||{}).Hidden!=2&&s.push(e.SheetNames[u]);e.Props.SheetNames=s}e.Props.Worksheets=e.Props.SheetNames.length,sn(i,o,ife(e.Props)),a.extprops.push(o),Nn(t.rels,3,o,En.EXT_PROPS),e.Custprops!==e.Props&&Ki(e.Custprops||{}).length>0&&(o=\"docProps/custom.xml\",sn(i,o,ofe(e.Custprops)),a.custprops.push(o),Nn(t.rels,4,o,En.CUST_PROPS));var c=[\"SheetJ5\"];for(t.tcid=0,l=1;l<=e.SheetNames.length;++l){var d={\"!id\":{}},f=e.Sheets[e.SheetNames[l-1]],h=(f||{})[\"!type\"]||\"sheet\";switch(h){case\"chart\":default:o=\"xl/worksheets/sheet\"+l+\".\"+r,sn(i,o,Mfe(l-1,t,e,d)),a.sheets.push(o),Nn(t.wbrels,-1,\"worksheets/sheet\"+l+\".\"+r,En.WS[0])}if(f){var p=f[\"!comments\"],v=!1,g=\"\";if(p&&p.length>0){var y=!1;p.forEach(function(b){b[1].forEach(function(x){x.T==!0&&(y=!0)})}),y&&(g=\"xl/threadedComments/threadedComment\"+l+\".\"+r,sn(i,g,Hlt(p,c,t)),a.threadedcomments.push(g),Nn(d,-1,\"../threadedComments/threadedComment\"+l+\".\"+r,En.TCMNT)),g=\"xl/comments\"+l+\".\"+r,sn(i,g,Sfe(p)),a.comments.push(g),Nn(d,-1,\"../comments\"+l+\".\"+r,En.CMNT),v=!0}f[\"!legacy\"]&&v&&sn(i,\"xl/drawings/vmlDrawing\"+l+\".vml\",Ffe(l,f[\"!comments\"])),delete f[\"!comments\"],delete f[\"!legacy\"]}d[\"!id\"].rId1&&sn(i,tfe(o),F0(d))}return t.Strings!=null&&t.Strings.length>0&&(o=\"xl/sharedStrings.\"+r,sn(i,o,pfe(t.Strings,t)),a.strs.push(o),Nn(t.wbrels,-1,\"sharedStrings.\"+r,En.SST)),o=\"xl/workbook.\"+r,sn(i,o,Bfe(e)),a.workbooks.push(o),Nn(t.rels,1,o,En.WB),o=\"xl/theme/theme1.xml\",sn(i,o,xfe(e.Themes,t)),a.themes.push(o),Nn(t.wbrels,-1,\"theme/theme1.xml\",En.THEME),o=\"xl/styles.\"+r,sn(i,o,yfe(e,t)),a.styles.push(o),Nn(t.wbrels,-1,\"styles.\"+r,En.STY),e.vbaraw&&n&&(o=\"xl/vbaProject.bin\",sn(i,o,e.vbaraw),a.vba.push(o),Nn(t.wbrels,-1,\"vbaProject.bin\",En.VBA)),o=\"xl/metadata.\"+r,sn(i,o,Cfe()),a.metadata.push(o),Nn(t.wbrels,-1,\"metadata.\"+r,En.XLMETA),c.length>1&&(o=\"xl/persons/person.xml\",sn(i,o,Vlt(c)),a.people.push(o),Nn(t.wbrels,-1,\"persons/person.xml\",En.PEOPLE)),sn(i,\"[Content_Types].xml\",efe(a,t)),sn(i,\"_rels/.rels\",F0(t.rels)),sn(i,\"xl/_rels/workbook.\"+r+\".rels\",F0(t.wbrels)),delete t.revssf,delete t.ssf,i}function fft(e,t){var r=\"\";switch((t||{}).type||\"base64\"){case\"buffer\":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];case\"base64\":r=ud(e.slice(0,12));break;case\"binary\":r=e;break;case\"array\":return[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7]];default:throw new Error(\"Unrecognized type \"+(t&&t.type||\"undefined\"))}return[r.charCodeAt(0),r.charCodeAt(1),r.charCodeAt(2),r.charCodeAt(3),r.charCodeAt(4),r.charCodeAt(5),r.charCodeAt(6),r.charCodeAt(7)]}function Vfe(e,t){switch(t.type){case\"base64\":case\"binary\":break;case\"buffer\":case\"array\":t.type=\"\";break;case\"file\":return Wx(t.file,Kn.write(e,{type:In?\"buffer\":\"\"}));case\"string\":throw new Error(\"'string' output type invalid for '\"+t.bookType+\"' files\");default:throw new Error(\"Unrecognized type \"+t.type)}return Kn.write(e,t)}function hft(e,t){var r=gl(t||{}),n=uft(e,r);return pft(n,r)}function pft(e,t){var r={},n=In?\"nodebuffer\":typeof Uint8Array<\"u\"?\"array\":\"string\";if(t.compression&&(r.compression=\"DEFLATE\"),t.password)r.type=n;else switch(t.type){case\"base64\":r.type=\"base64\";break;case\"binary\":r.type=\"string\";break;case\"string\":throw new Error(\"'string' output type invalid for '\"+t.bookType+\"' files\");case\"buffer\":case\"file\":r.type=n;break;default:throw new Error(\"Unrecognized type \"+t.type)}var a=e.FullPaths?Kn.write(e,{fileType:\"zip\",type:{nodebuffer:\"buffer\",string:\"binary\"}[r.type]||r.type,compression:!!t.compression}):e.generate(r);if(typeof Deno<\"u\"&&typeof a==\"string\"){if(t.type==\"binary\"||t.type==\"base64\")return a;a=new Uint8Array(DD(a))}return t.password&&typeof encrypt_agile<\"u\"?Vfe(encrypt_agile(a,t.password),t):t.type===\"file\"?Wx(t.file,a):t.type==\"string\"?eb(a):a}function mft(e,t){var r=t||{},n=kdt(e,r);return Vfe(n,r)}function $u(e,t,r){r||(r=\"\");var n=r+e;switch(t.type){case\"base64\":return m2(g2(n));case\"binary\":return g2(n);case\"string\":return e;case\"file\":return Wx(t.file,n,\"utf8\");case\"buffer\":return In?wd(n,\"utf8\"):typeof TextEncoder<\"u\"?new TextEncoder().encode(n):$u(n,{type:\"binary\"}).split(\"\").map(function(a){return a.charCodeAt(0)})}throw new Error(\"Unrecognized type \"+t.type)}function vft(e,t){switch(t.type){case\"base64\":return m2(e);case\"binary\":return e;case\"string\":return e;case\"file\":return Wx(t.file,e,\"binary\");case\"buffer\":return In?wd(e,\"binary\"):e.split(\"\").map(function(r){return r.charCodeAt(0)})}throw new Error(\"Unrecognized type \"+t.type)}function TF(e,t){switch(t.type){case\"string\":case\"base64\":case\"binary\":for(var r=\"\",n=0;n<e.length;++n)r+=String.fromCharCode(e[n]);return t.type==\"base64\"?m2(r):t.type==\"string\"?eb(r):r;case\"file\":return Wx(t.file,e);case\"buffer\":return e;default:throw new Error(\"Unrecognized type \"+t.type)}}function Wfe(e,t){Wat(),tdt(e);var r=gl(t||{});if(r.cellStyles&&(r.cellNF=!0,r.sheetStubs=!0),r.type==\"array\"){r.type=\"binary\";var n=Wfe(e,r);return r.type=\"array\",DD(n)}var a=0;if(r.sheet&&(typeof r.sheet==\"number\"?a=r.sheet:a=e.SheetNames.indexOf(r.sheet),!e.SheetNames[a]))throw new Error(\"Sheet not found: \"+r.sheet+\" : \"+typeof r.sheet);switch(r.bookType||\"xlsb\"){case\"xml\":case\"xlml\":return $u(Tdt(e,r),r);case\"slk\":case\"sylk\":return $u(Zot.from_sheet(e.Sheets[e.SheetNames[a]],r),r);case\"htm\":case\"html\":return $u(Lfe(e.Sheets[e.SheetNames[a]],r),r);case\"txt\":return vft(Gfe(e.Sheets[e.SheetNames[a]],r),r);case\"csv\":return $u(jB(e.Sheets[e.SheetNames[a]],r),r,\"\\uFEFF\");case\"dif\":return $u(Qot.from_sheet(e.Sheets[e.SheetNames[a]],r),r);case\"dbf\":return TF(Jot.from_sheet(e.Sheets[e.SheetNames[a]],r),r);case\"prn\":return $u(elt.from_sheet(e.Sheets[e.SheetNames[a]],r),r);case\"rtf\":return $u(llt.from_sheet(e.Sheets[e.SheetNames[a]],r),r);case\"eth\":return $u(hfe.from_sheet(e.Sheets[e.SheetNames[a]],r),r);case\"fods\":return $u(Hfe(e,r),r);case\"wk1\":return TF(LU.sheet_to_wk1(e.Sheets[e.SheetNames[a]],r),r);case\"wk3\":return TF(LU.book_to_wk3(e,r),r);case\"biff2\":r.biff||(r.biff=2);case\"biff3\":r.biff||(r.biff=3);case\"biff4\":return r.biff||(r.biff=4),TF($fe(e,r),r);case\"biff5\":r.biff||(r.biff=5);case\"biff8\":case\"xla\":case\"xls\":return r.biff||(r.biff=8),mft(e,r);case\"xlsx\":case\"xlsm\":case\"xlam\":case\"xlsb\":case\"numbers\":case\"ods\":return hft(e,r);default:throw new Error(\"Unrecognized bookType |\"+r.bookType+\"|\")}}function gft(e,t,r,n,a,i,o,l){var s=Wi(r),u=l.defval,c=l.raw||!Object.prototype.hasOwnProperty.call(l,\"raw\"),d=!0,f=a===1?[]:{};if(a!==1)if(Object.defineProperty)try{Object.defineProperty(f,\"__rowNum__\",{value:r,enumerable:!1})}catch{f.__rowNum__=r}else f.__rowNum__=r;if(!o||e[r])for(var h=t.s.c;h<=t.e.c;++h){var p=o?e[r][h]:e[n[h]+s];if(p===void 0||p.t===void 0){if(u===void 0)continue;i[h]!=null&&(f[i[h]]=u);continue}var v=p.v;switch(p.t){case\"z\":if(v==null)break;continue;case\"e\":v=v==0?null:void 0;break;case\"s\":case\"d\":case\"b\":case\"n\":break;default:throw new Error(\"unrecognized type \"+p.t)}if(i[h]!=null){if(v==null)if(p.t==\"e\"&&v===null)f[i[h]]=null;else if(u!==void 0)f[i[h]]=u;else if(c&&v===null)f[i[h]]=null;else continue;else f[i[h]]=c&&(p.t!==\"n\"||p.t===\"n\"&&l.rawNumbers!==!1)?v:cd(p,v,l);v!=null&&(d=!1)}}return{row:f,isempty:d}}function x3(e,t){if(e==null||e[\"!ref\"]==null)return[];var r={t:\"n\",v:0},n=0,a=1,i=[],o=0,l=\"\",s={s:{r:0,c:0},e:{r:0,c:0}},u=t||{},c=u.range!=null?u.range:e[\"!ref\"];switch(u.header===1?n=1:u.header===\"A\"?n=2:Array.isArray(u.header)?n=3:u.header==null&&(n=0),typeof c){case\"string\":s=la(c);break;case\"number\":s=la(e[\"!ref\"]),s.s.r=c;break;default:s=c}n>0&&(a=0);var d=Wi(s.s.r),f=[],h=[],p=0,v=0,g=Array.isArray(e),y=s.s.r,b=0,x={};g&&!e[y]&&(e[y]=[]);var F=u.skipHidden&&e[\"!cols\"]||[],S=u.skipHidden&&e[\"!rows\"]||[];for(b=s.s.c;b<=s.e.c;++b)if(!(F[b]||{}).hidden)switch(f[b]=yo(b),r=g?e[y][b]:e[f[b]+d],n){case 1:i[b]=b-s.s.c;break;case 2:i[b]=f[b];break;case 3:i[b]=u.header[b-s.s.c];break;default:if(r==null&&(r={w:\"__EMPTY\",t:\"s\"}),l=o=cd(r,null,u),v=x[o]||0,!v)x[o]=1;else{do l=o+\"_\"+v++;while(x[l]);x[o]=v,x[l]=1}i[b]=l}for(y=s.s.r+a;y<=s.e.r;++y)if(!(S[y]||{}).hidden){var E=gft(e,s,y,f,n,i,g,u);(E.isempty===!1||(n===1?u.blankrows!==!1:u.blankrows))&&(h[p++]=E.row)}return h.length=p,h}var KU=/\"/g;function yft(e,t,r,n,a,i,o,l){for(var s=!0,u=[],c=\"\",d=Wi(r),f=t.s.c;f<=t.e.c;++f)if(n[f]){var h=l.dense?(e[r]||[])[f]:e[n[f]+d];if(h==null)c=\"\";else if(h.v!=null){s=!1,c=\"\"+(l.rawNumbers&&h.t==\"n\"?h.v:cd(h,null,l));for(var p=0,v=0;p!==c.length;++p)if((v=c.charCodeAt(p))===a||v===i||v===34||l.forceQuotes){c='\"'+c.replace(KU,'\"\"')+'\"';break}c==\"ID\"&&(c='\"ID\"')}else h.f!=null&&!h.F?(s=!1,c=\"=\"+h.f,c.indexOf(\",\")>=0&&(c='\"'+c.replace(KU,'\"\"')+'\"')):c=\"\";u.push(c)}return l.blankrows===!1&&s?null:u.join(o)}function jB(e,t){var r=[],n=t??{};if(e==null||e[\"!ref\"]==null)return\"\";var a=la(e[\"!ref\"]),i=n.FS!==void 0?n.FS:\",\",o=i.charCodeAt(0),l=n.RS!==void 0?n.RS:`\n`,s=l.charCodeAt(0),u=new RegExp((i==\"|\"?\"\\\\|\":i)+\"+$\"),c=\"\",d=[];n.dense=Array.isArray(e);for(var f=n.skipHidden&&e[\"!cols\"]||[],h=n.skipHidden&&e[\"!rows\"]||[],p=a.s.c;p<=a.e.c;++p)(f[p]||{}).hidden||(d[p]=yo(p));for(var v=0,g=a.s.r;g<=a.e.r;++g)(h[g]||{}).hidden||(c=yft(e,a,g,d,o,s,i,n),c!=null&&(n.strip&&(c=c.replace(u,\"\")),(c||n.blankrows!==!1)&&r.push((v++?l:\"\")+c)));return delete n.dense,r.join(\"\")}function Gfe(e,t){t||(t={}),t.FS=\"\t\",t.RS=`\n`;var r=jB(e,t);return r}function bft(e){var t=\"\",r,n=\"\";if(e==null||e[\"!ref\"]==null)return[];var a=la(e[\"!ref\"]),i=\"\",o=[],l,s=[],u=Array.isArray(e);for(l=a.s.c;l<=a.e.c;++l)o[l]=yo(l);for(var c=a.s.r;c<=a.e.r;++c)for(i=Wi(c),l=a.s.c;l<=a.e.c;++l)if(t=o[l]+i,r=u?(e[c]||[])[l]:e[t],n=\"\",r!==void 0){if(r.F!=null){if(t=r.F,!r.f)continue;n=r.f,t.indexOf(\":\")==-1&&(t=t+\":\"+t)}if(r.f!=null)n=r.f;else{if(r.t==\"z\")continue;if(r.t==\"n\"&&r.v!=null)n=\"\"+r.v;else if(r.t==\"b\")n=r.v?\"TRUE\":\"FALSE\";else if(r.w!==void 0)n=\"'\"+r.w;else{if(r.v===void 0)continue;r.t==\"s\"?n=\"'\"+r.v:n=\"\"+r.v}}s[s.length]=t+\"=\"+n}return s}function Ufe(e,t,r){var n=r||{},a=+!n.skipHeader,i=e||{},o=0,l=0;if(i&&n.origin!=null)if(typeof n.origin==\"number\")o=n.origin;else{var s=typeof n.origin==\"string\"?Ei(n.origin):n.origin;o=s.r,l=s.c}var u,c={s:{c:0,r:0},e:{c:l,r:o+t.length-1+a}};if(i[\"!ref\"]){var d=la(i[\"!ref\"]);c.e.c=Math.max(c.e.c,d.e.c),c.e.r=Math.max(c.e.r,d.e.r),o==-1&&(o=d.e.r+1,c.e.r=o+t.length-1+a)}else o==-1&&(o=0,c.e.r=t.length-1+a);var f=n.header||[],h=0;t.forEach(function(v,g){Ki(v).forEach(function(y){(h=f.indexOf(y))==-1&&(f[h=f.length]=y);var b=v[y],x=\"z\",F=\"\",S=Vn({c:l+h,r:o+g+a});u=x2(i,S),b&&typeof b==\"object\"&&!(b instanceof Date)?i[S]=b:(typeof b==\"number\"?x=\"n\":typeof b==\"boolean\"?x=\"b\":typeof b==\"string\"?x=\"s\":b instanceof Date?(x=\"d\",n.cellDates||(x=\"n\",b=vl(b)),F=n.dateNF||Aa[14]):b===null&&n.nullError&&(x=\"e\",b=0),u?(u.t=x,u.v=b,delete u.w,delete u.R,F&&(u.z=F)):i[S]=u={t:x,v:b},F&&(u.z=F))})}),c.e.c=Math.max(c.e.c,l+f.length-1);var p=Wi(o);if(a)for(h=0;h<f.length;++h)i[yo(h+l)+p]={t:\"s\",v:f[h]};return i[\"!ref\"]=Za(c),i}function xft(e,t){return Ufe(null,e,t)}function x2(e,t,r){if(typeof t==\"string\"){if(Array.isArray(e)){var n=Ei(t);return e[n.r]||(e[n.r]=[]),e[n.r][n.c]||(e[n.r][n.c]={t:\"z\"})}return e[t]||(e[t]={t:\"z\"})}return typeof t!=\"number\"?x2(e,Vn(t)):x2(e,Vn({r:t,c:r||0}))}function Cft(e,t){if(typeof t==\"number\"){if(t>=0&&e.SheetNames.length>t)return t;throw new Error(\"Cannot find sheet # \"+t)}else if(typeof t==\"string\"){var r=e.SheetNames.indexOf(t);if(r>-1)return r;throw new Error(\"Cannot find sheet name |\"+t+\"|\")}else throw new Error(\"Cannot find sheet |\"+t+\"|\")}function Fft(){return{SheetNames:[],Sheets:{}}}function Sft(e,t,r,n){var a=1;if(!r)for(;a<=65535&&e.SheetNames.indexOf(r=\"Sheet\"+a)!=-1;++a,r=void 0);if(!r||e.SheetNames.length>=65535)throw new Error(\"Too many worksheets\");if(n&&e.SheetNames.indexOf(r)>=0){var i=r.match(/(^.*?)(\\d+)$/);a=i&&+i[2]||0;var o=i&&i[1]||r;for(++a;a<=65535&&e.SheetNames.indexOf(r=o+a)!=-1;++a);}if(Ofe(r),e.SheetNames.indexOf(r)>=0)throw new Error(\"Worksheet with name |\"+r+\"| already exists!\");return e.SheetNames.push(r),e.Sheets[r]=t,r}function wft(e,t,r){e.Workbook||(e.Workbook={}),e.Workbook.Sheets||(e.Workbook.Sheets=[]);var n=Cft(e,t);switch(e.Workbook.Sheets[n]||(e.Workbook.Sheets[n]={}),r){case 0:case 1:case 2:break;default:throw new Error(\"Bad sheet visibility setting \"+r)}e.Workbook.Sheets[n].Hidden=r}function Eft(e,t){return e.z=t,e}function Kfe(e,t,r){return t?(e.l={Target:t},r&&(e.l.Tooltip=r)):delete e.l,e}function Dft(e,t,r){return Kfe(e,\"#\"+t,r)}function Aft(e,t,r){e.c||(e.c=[]),e.c.push({t,a:r||\"SheetJS\"})}function _ft(e,t,r,n){for(var a=typeof t!=\"string\"?t:la(t),i=typeof t==\"string\"?t:Za(t),o=a.s.r;o<=a.e.r;++o)for(var l=a.s.c;l<=a.e.c;++l){var s=x2(e,o,l);s.t=\"n\",s.F=i,delete s.v,o==a.s.r&&l==a.s.c&&(s.f=r,n&&(s.D=!0))}return e}var eT={encode_col:yo,encode_row:Wi,encode_cell:Vn,encode_range:Za,decode_col:TB,decode_row:_B,split_cell:Wit,decode_cell:Ei,decode_range:Ll,format_cell:cd,sheet_add_aoa:Kde,sheet_add_json:Ufe,sheet_add_dom:jfe,aoa_to_sheet:jg,json_to_sheet:xft,table_to_sheet:zfe,table_to_book:Qdt,sheet_to_csv:jB,sheet_to_txt:Gfe,sheet_to_json:x3,sheet_to_html:Lfe,sheet_to_formulae:bft,sheet_to_row_object_array:x3,sheet_get_cell:x2,book_new:Fft,book_append_sheet:Sft,book_set_sheet_visibility:wft,cell_set_number_format:Eft,cell_set_hyperlink:Kfe,cell_set_internal_link:Dft,cell_add_comment:Aft,sheet_set_array_formula:_ft,consts:{SHEET_VISIBLE:0,SHEET_HIDDEN:1,SHEET_VERY_HIDDEN:2}},Yfe={exports:{}};(function(e,t){(function(r,n){n()})(oi,function(){function r(u,c){return typeof c>\"u\"?c={autoBom:!1}:typeof c!=\"object\"&&(console.warn(\"Deprecated: Expected third argument to be a object\"),c={autoBom:!c}),c.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(u.type)?new Blob([\"\\uFEFF\",u],{type:u.type}):u}function n(u,c,d){var f=new XMLHttpRequest;f.open(\"GET\",u),f.responseType=\"blob\",f.onload=function(){s(f.response,c,d)},f.onerror=function(){console.error(\"could not download file\")},f.send()}function a(u){var c=new XMLHttpRequest;c.open(\"HEAD\",u,!1);try{c.send()}catch{}return 200<=c.status&&299>=c.status}function i(u){try{u.dispatchEvent(new MouseEvent(\"click\"))}catch{var c=document.createEvent(\"MouseEvents\");c.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(c)}}var o=typeof window==\"object\"&&window.window===window?window:typeof self==\"object\"&&self.self===self?self:typeof oi==\"object\"&&oi.global===oi?oi:void 0,l=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),s=o.saveAs||(typeof window!=\"object\"||window!==o?function(){}:\"download\"in HTMLAnchorElement.prototype&&!l?function(u,c,d){var f=o.URL||o.webkitURL,h=document.createElement(\"a\");c=c||u.name||\"download\",h.download=c,h.rel=\"noopener\",typeof u==\"string\"?(h.href=u,h.origin===location.origin?i(h):a(h.href)?n(u,c,d):i(h,h.target=\"_blank\")):(h.href=f.createObjectURL(u),setTimeout(function(){f.revokeObjectURL(h.href)},4e4),setTimeout(function(){i(h)},0))}:\"msSaveOrOpenBlob\"in navigator?function(u,c,d){if(c=c||u.name||\"download\",typeof u!=\"string\")navigator.msSaveOrOpenBlob(r(u,d),c);else if(a(u))n(u,c,d);else{var f=document.createElement(\"a\");f.href=u,f.target=\"_blank\",setTimeout(function(){i(f)})}}:function(u,c,d,f){if(f=f||open(\"\",\"_blank\"),f&&(f.document.title=f.document.body.innerText=\"downloading...\"),typeof u==\"string\")return n(u,c,d);var h=u.type===\"application/octet-stream\",p=/constructor/i.test(o.HTMLElement)||o.safari,v=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((v||h&&p||l)&&typeof FileReader<\"u\"){var g=new FileReader;g.onloadend=function(){var x=g.result;x=v?x:x.replace(/^data:[^;]*;/,\"data:attachment/file;\"),f?f.location.href=x:location=x,f=null},g.readAsDataURL(u)}else{var y=o.URL||o.webkitURL,b=y.createObjectURL(u);f?f.location=b:location.href=b,f=null,setTimeout(function(){y.revokeObjectURL(b)},4e4)}});o.saveAs=s.saveAs=s,e.exports=s})})(Yfe);var qfe=Yfe.exports;function Tft(e,t,r){const n=t.map(c=>c.title),a=e.map(c=>t.map(d=>{const f=c[d.dataIndex];return d.render?d.render(f,c):String(f??\"\")})),i=[n,...a],o=eT.aoa_to_sheet(i);o[\"!cols\"]=n.map(c=>({wch:Math.max(c.length*2,12)}));const l=eT.book_new();eT.book_append_sheet(l,o,\"Sheet1\");const s=Wfe(l,{bookType:\"xlsx\",type:\"array\"}),u=new Blob([s],{type:\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"});qfe.saveAs(u,`${r}.xlsx`)}function Ift(e,t,r){const a=t.map(s=>s.title).join(\",\"),i=e.map(s=>t.map(u=>{const c=s[u.dataIndex],d=u.render?u.render(c,s):String(c??\"\");return d.includes(\",\")||d.includes('\"')||d.includes(`\n`)?`\"${d.replace(/\"/g,'\"\"')}\"`:d}).join(\",\")),o=\"\\uFEFF\"+[a,...i].join(`\n`),l=new Blob([o],{type:\"text/csv;charset=utf-8\"});qfe.saveAs(l,`${r}.csv`)}function zB(){const e=m.useCallback(async(r,n,a)=>{try{Tft(r,n,a),vt.success(\"导出成功\")}catch(i){vt.error(\"导出失败,请重试\"),console.error(\"Export error:\",i)}},[]),t=m.useCallback(async(r,n,a)=>{try{Ift(r,n,a),vt.success(\"导出成功\")}catch(i){vt.error(\"导出失败,请重试\"),console.error(\"Export error:\",i)}},[]);return{exportExcel:e,exportCSV:t}}const kft={review:\"测评\",reply:\"回评\",ad:\"广告\",activity:\"活动\",edm:\"EDM\",system:\"系统\",yipai:\"易派\",other:\"其他\"},Rft={review:\"blue\",reply:\"green\",ad:\"orange\",activity:\"purple\",edm:\"cyan\",system:\"default\",yipai:\"magenta\",other:\"default\"},Mft={P0:\"red\",P1:\"orange\",P2:\"blue\",P3:\"default\"},Pft=({visible:e,planId:t,planName:r,onClose:n})=>{const[a,i]=m.useState([]),[o,l]=m.useState(!1);m.useEffect(()=>{e&&t&&(l(!0),Or(`/review-plans/${t}/im-pushes`).then(u=>i(u)).catch(()=>vt.error(\"获取关联推送失败\")).finally(()=>l(!1)))},[e,t]);const s=[{title:\"ID\",dataIndex:\"id\",width:80},{title:\"关联测评计划ID\",dataIndex:\"reviewPlanId\",width:130,render:u=>u?C.jsx(et,{color:\"blue\",children:u}):\"-\"},{title:\"推送名称\",dataIndex:\"name\",width:300,ellipsis:!0,render:u=>C.jsx(\"span\",{style:{fontSize:13},children:u})},{title:\"推送类型\",dataIndex:\"pushType\",width:80,align:\"center\",render:u=>C.jsx(et,{color:Rft[u]||\"default\",children:kft[u]||u})},{title:\"优先级\",dataIndex:\"priority\",width:60,align:\"center\",render:u=>C.jsx(et,{color:Mft[u]||\"default\",children:u})},{title:\"站点\",dataIndex:\"site\",width:60,align:\"center\"},{title:\"状态\",dataIndex:\"status\",width:70,align:\"center\",render:u=>C.jsx(et,{color:u===\"active\"?\"green\":\"default\",children:u===\"active\"?\"上架\":\"下架\"})},{title:\"推送形式\",dataIndex:\"pushForm\",width:100},{title:\"创建时间\",dataIndex:\"createdAt\",width:120,render:u=>u?new Date(u).toLocaleDateString(\"zh-CN\"):\"-\"}];return C.jsx(an,{title:`关联推送 — ${r}`,open:e,onCancel:n,footer:null,width:1100,destroyOnClose:!0,children:C.jsx(mi,{spinning:o,children:C.jsx(Gr,{rowKey:\"id\",columns:s,dataSource:a,size:\"small\",pagination:{pageSize:10,showSizeChanger:!0,showTotal:u=>`共 ${u} 条`},scroll:{y:400}})})})},Oft={SHIPPED:{label:\"Shipped\",color:\"blue\"},PENDING:{label:\"Pending\",color:\"orange\"},DELIVERED:{label:\"Delivered\",color:\"green\"},CANCELLED:{label:\"Cancelled\",color:\"default\"}},Bft={PENDING_UPLOAD:{label:\"待上传回评\",color:\"orange\"},PENDING_CONFIRM:{label:\"待回评确认\",color:\"blue\"},REVIEWED:{label:\"已回评\",color:\"green\"}},Nft={PENDING_REFUND:{label:\"待返款\",color:\"orange\"},PENDING_AUDIT:{label:\"待返款审核\",color:\"blue\"},AUDIT_FAILED:{label:\"审核不通过\",color:\"red\"},REFUND_SUCCESS:{label:\"返款成功\",color:\"green\"},REFUND_LOCKED:{label:\"返款锁定中\",color:\"default\"}},$ft=({visible:e,planId:t,planName:r,onClose:n})=>{const[a,i]=m.useState([]),[o,l]=m.useState(!1);m.useEffect(()=>{e&&t&&(l(!0),Or(`/review-plans/${t}/orders`).then(u=>i(u)).catch(()=>vt.error(\"获取关联订单失败\")).finally(()=>l(!1)))},[e,t]);const s=[{title:\"ID\",dataIndex:\"id\",width:70},{title:\"关联测评计划ID\",dataIndex:\"reviewPlanId\",width:130},{title:\"订单号\",dataIndex:\"orderNo\",width:180,ellipsis:!0},{title:\"回评ID\",dataIndex:\"replyOrderId\",width:110},{title:\"产品\",dataIndex:\"product\",width:150,ellipsis:!0},{title:\"ASIN\",dataIndex:\"asin\",width:110},{title:\"客户\",dataIndex:\"customerName\",width:100,ellipsis:!0},{title:\"国家\",dataIndex:\"country\",width:70},{title:\"订单状态\",dataIndex:\"orderStatus\",width:90,render:u=>{const c=Oft[u];return c?C.jsx(et,{color:c.color,children:c.label}):C.jsx(et,{children:u})}},{title:\"回评单状态\",dataIndex:\"replyOrderStatus\",width:100,render:u=>{const c=Bft[u];return c?C.jsx(et,{color:c.color,children:c.label}):C.jsx(et,{children:u||\"-\"})}},{title:\"返款状态\",dataIndex:\"refundStatus\",width:100,render:u=>{const c=Nft[u];return c?C.jsx(et,{color:c.color,children:c.label}):C.jsx(et,{children:u||\"-\"})}},{title:\"评论状态\",dataIndex:\"commentStatus\",width:80,render:u=>C.jsx(\"span\",{children:u||\"-\"})},{title:\"开始时间\",dataIndex:\"startTime\",width:110,render:u=>u?new Date(u).toLocaleDateString(\"zh-CN\"):\"-\"}];return C.jsx(an,{title:`关联订单 — ${r}`,open:e,onCancel:n,footer:null,width:1300,destroyOnClose:!0,children:C.jsx(mi,{spinning:o,children:C.jsx(Gr,{rowKey:\"id\",columns:s,dataSource:a,size:\"small\",pagination:{pageSize:10,showSizeChanger:!0,showTotal:u=>`共 ${u} 条`},scroll:{x:1330,y:400}})})})},{Text:sv}=ji,IF={add_review:{label:\"增加评价\",color:\"blue\"},boost_sales:{label:\"冲销量\",color:\"green\"},pull_ranking:{label:\"拉排名\",color:\"orange\"},new_launch:{label:\"新品启动\",color:\"purple\"},maintain:{label:\"维护稳定\",color:\"cyan\"},revive:{label:\"老品激活\",color:\"magenta\"}},kF={not_saleable:{label:\"不可售\",color:\"red\"},normal:{label:\"正常\",color:\"green\"},image_abnormal:{label:\"图片异常\",color:\"orange\"}},RF={in_progress:{label:\"进行中\",color:\"blue\"},not_started:{label:\"未开始\",color:\"default\"},paused:{label:\"暂停测评\",color:\"orange\"},normal_promotion:{label:\"可正常推广\",color:\"green\"},small_scale:{label:\"可小规模推广\",color:\"cyan\"},needs_optimization:{label:\"需优化后推广\",color:\"gold\"},paused_promotion:{label:\"暂停推广\",color:\"red\"},new_pending:{label:\"新品待完善\",color:\"purple\"},listing_optimization:{label:\"Listing待优化\",color:\"orange\"},image_optimization:{label:\"图片待优化\",color:\"orange\"},title_bullets_optimization:{label:\"标题/五点待优化\",color:\"orange\"},a_plus_optimization:{label:\"A+待优化\",color:\"orange\"},keyword_optimization:{label:\"关键词待优化\",color:\"orange\"},under_review:{label:\"审核中\",color:\"processing\"},category_abnormal:{label:\"类目异常\",color:\"red\"},variant_abnormal:{label:\"变体异常\",color:\"red\"},delisted:{label:\"已下架\",color:\"default\"}},MF={sufficient:{label:\"库存充足\",color:\"green\"},below_safety:{label:\"库存低于安全线,推广需谨慎\",color:\"orange\"},tight:{label:\"库存紧张\",color:\"gold\"},almost_out:{label:\"即将断货\",color:\"red\"},out_of_stock:{label:\"已断货\",color:\"red\"},restocking:{label:\"补货中\",color:\"blue\"}},YU=[{label:\"US\",value:\"US\"},{label:\"DE\",value:\"DE\"},{label:\"UK\",value:\"UK\"},{label:\"JP\",value:\"JP\"},{label:\"FR\",value:\"FR\"},{label:\"IT\",value:\"IT\"},{label:\"ES\",value:\"ES\"},{label:\"CA\",value:\"CA\"}],qU=[{label:\"小张\",value:\"小张\"},{label:\"小王\",value:\"小王\"},{label:\"小李\",value:\"小李\"},{label:\"小赵\",value:\"小赵\"},{label:\"小刘\",value:\"小刘\"},{label:\"小陈\",value:\"小陈\"}],Lft=()=>{const[e]=be.useForm(),t=Ia(),{exportExcel:r,exportCSV:n}=zB(),[a,i]=m.useState([]),[o,l]=m.useState(0),[s,u]=m.useState(!1),[c,d]=m.useState({current:1,pageSize:20}),[f,h]=m.useState({}),[p,v]=m.useState(!1),[g,y]=m.useState(!1),[b,x]=m.useState(null),F=m.useCallback(async(T=c.current,k=c.pageSize,R=f)=>{u(!0);try{const P=new URLSearchParams({page:String(T),pageSize:String(k)});Object.entries(R).forEach(([N,O])=>{O!=null&&O!==\"\"&&P.set(N,String(O))});const B=await Or(`/review-plans?${P.toString()}`);i(B.list),l(B.total)}catch(P){console.error(\"Failed to fetch review plans:\",P)}finally{u(!1)}},[c.current,c.pageSize,f]);m.useEffect(()=>{F()},[F]);const S=m.useCallback(()=>{const T=e.getFieldsValue(),k={};Object.entries(T).forEach(([R,P])=>{P!=null&&P!==\"\"&&(k[R]=P)}),h(k),d(R=>({...R,current:1}))},[e]),E=m.useCallback(()=>{e.resetFields(),h({}),d(T=>({...T,current:1}))},[e]),w=m.useCallback(T=>{d({current:T.current||1,pageSize:T.pageSize||20})},[]),D=m.useCallback(T=>{navigator.clipboard.writeText(T).then(()=>vt.success(\"链接已复制\"),()=>vt.error(\"复制失败\"))},[]),A=m.useCallback(async T=>{try{await sd(`/review-plans/${T}`),vt.success(\"删除成功\"),F()}catch{vt.error(\"删除失败\")}},[F]),_=m.useMemo(()=>[{title:\"需求编号\",dataIndex:\"requirementId\"},{title:\"产品名称\",dataIndex:\"productName\"},{title:\"推广目标\",dataIndex:\"promotionGoal\",render:T=>{var k;return((k=IF[T])==null?void 0:k.label)||String(T)}},{title:\"Listing状态\",dataIndex:\"listingStatus\",render:T=>{var k;return((k=kF[T])==null?void 0:k.label)||String(T)}},{title:\"目标受众\",dataIndex:\"targetAudience\"},{title:\"推广状态\",dataIndex:\"promotionStatus\",render:T=>{var k;return((k=RF[T])==null?void 0:k.label)||String(T)}},{title:\"推广级别\",dataIndex:\"promotionLevel\"},{title:\"店铺\",dataIndex:\"storeInfo\"},{title:\"ASIN\",dataIndex:\"asin\"},{title:\"站点\",dataIndex:\"site\"},{title:\"测评渠道\",dataIndex:\"channels\",render:T=>T==null?void 0:T.join(\"\\\\\")},{title:\"关键词\",dataIndex:\"keywords\"},{title:\"推广类型\",dataIndex:\"promotionType\",render:T=>T===\"review\"?\"测评\":\"免评\"},{title:\"计划周期\",dataIndex:\"planPeriod\"},{title:\"计划数量\",dataIndex:\"targetCount\"},{title:\"完成数量\",dataIndex:\"completedCount\"},{title:\"完成进度\",dataIndex:\"completionRate\",render:T=>`${Math.round(T*100)}%`},{title:\"当前评分\",dataIndex:\"currentRating\"},{title:\"留评类型\",dataIndex:\"reviewType\",render:T=>({rating:\"Rating\",image:\"图片\",video:\"视频\"})[T]||String(T)},{title:\"目标Review数\",dataIndex:\"targetReviewCount\"},{title:\"完成Review数\",dataIndex:\"completedReviewCount\"},{title:\"Review完成进度\",dataIndex:\"reviewCompletionRate\",render:T=>`${Math.round(T*100)}%`},{title:\"库存状态\",dataIndex:\"inventoryStatus\",render:T=>{var k;return((k=MF[T])==null?void 0:k.label)||String(T)}},{title:\"风险备注\",dataIndex:\"riskNote\"},{title:\"负责人\",dataIndex:\"assignee\"},{title:\"最近修改时间\",dataIndex:\"updatedAt\"},{title:\"结束时间\",dataIndex:\"disabledAt\"}],[]),I=m.useCallback(async T=>{T===\"excel\"?await r(a,_,\"测评表单\"):await n(a,_,\"测评表单\")},[a,_,r,n]),M=m.useMemo(()=>[{title:\"需求编号\",dataIndex:\"requirementId\",key:\"requirementId\",width:100,fixed:\"left\",render:T=>C.jsx(sv,{strong:!0,copyable:{text:T},children:T})},{title:\"产品名称\",dataIndex:\"productName\",key:\"productName\",width:160,fixed:\"left\",ellipsis:!0,render:T=>C.jsx(Dr,{title:T,children:C.jsx(sv,{strong:!0,children:T})})},{title:\"首图\",dataIndex:\"productImage\",key:\"productImage\",width:72,render:T=>T?C.jsx(r2,{src:T,width:48,height:48,style:{borderRadius:4,objectFit:\"cover\"},fallback:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mN88P/BfwAJhAPk2iOGWAAAAABJRU5ErkJggg==\"}):C.jsx(\"div\",{style:{width:48,height:48,borderRadius:4,background:\"#f0f0f0\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:\"—\"})},{title:\"推广目标\",dataIndex:\"promotionGoal\",key:\"promotionGoal\",width:100,filters:Object.entries(IF).map(([T,{label:k}])=>({text:k,value:T})),render:T=>{const k=IF[T];return k?C.jsx(et,{color:k.color,children:k.label}):C.jsx(et,{children:T})}},{title:\"Listing状态\",dataIndex:\"listingStatus\",key:\"listingStatus\",width:100,filters:Object.entries(kF).map(([T,{label:k}])=>({text:k,value:T})),render:T=>{const k=kF[T];return k?C.jsx(et,{color:k.color,children:k.label}):C.jsx(et,{children:T})}},{title:\"目标受众\",dataIndex:\"targetAudience\",key:\"targetAudience\",width:100},{title:\"推广状态\",dataIndex:\"promotionStatus\",key:\"promotionStatus\",width:130,filters:Object.entries(RF).slice(0,6).map(([T,{label:k}])=>({text:k,value:T})),render:T=>{const k=RF[T];return k?C.jsx(et,{color:k.color,children:k.label}):C.jsx(et,{children:T})}},{title:\"级别\",dataIndex:\"promotionLevel\",key:\"promotionLevel\",width:60,align:\"center\",sorter:!0,render:T=>{const k={1:\"red\",2:\"orange\",3:\"blue\"};return C.jsx(D6,{count:T,style:{backgroundColor:k[T]||\"#999\"}})}},{title:\"店铺\",dataIndex:\"storeInfo\",key:\"storeInfo\",width:180,ellipsis:!0,render:T=>C.jsx(Dr,{title:T,children:C.jsx(sv,{style:{fontSize:12},children:T})})},{title:\"ASIN\",dataIndex:\"asin\",key:\"asin\",width:120,render:T=>C.jsx(sv,{copyable:{text:T},style:{fontSize:12,fontFamily:\"monospace\"},children:T})},{title:\"站点\",dataIndex:\"site\",key:\"site\",width:60,align:\"center\",filters:YU.map(T=>({text:T.label,value:T.value})),render:T=>C.jsx(et,{children:T})},{title:\"测评渠道\",dataIndex:\"channels\",key:\"channels\",width:150,render:T=>C.jsx(Qt,{size:4,wrap:!0,children:T==null?void 0:T.map(k=>C.jsx(et,{color:\"processing\",style:{fontSize:11},children:k},k))})},{title:\"关键词\",dataIndex:\"keywords\",key:\"keywords\",width:200,ellipsis:!0,render:T=>{if(!T)return\"-\";const k=T.split(`\n`);return C.jsx(Dr,{title:k.map(R=>R).join(`\n`),children:C.jsx(\"div\",{style:{fontSize:11},children:k.map((R,P)=>C.jsx(\"div\",{style:{color:R.startsWith(\"P0:\")?\"#1890ff\":R.startsWith(\"P1:\")?\"#52c41a\":\"#999\"},children:R},P))})})}},{title:\"关键词链接\",dataIndex:\"keywordLink\",key:\"keywordLink\",width:90,align:\"center\",render:T=>T?C.jsx(Dr,{title:\"点击复制链接\",children:C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Yu,{}),onClick:()=>D(T)})}):\"-\"},{title:\"推广类型\",dataIndex:\"promotionType\",key:\"promotionType\",width:80,align:\"center\",render:T=>C.jsx(et,{color:T===\"review\"?\"blue\":\"orange\",children:T===\"review\"?\"测评\":\"免评\"})},{title:\"计划周期\",dataIndex:\"planPeriod\",key:\"planPeriod\",width:160,render:T=>C.jsx(sv,{style:{fontSize:12},children:T})},{title:\"计划数量\",dataIndex:\"targetCount\",key:\"targetCount\",width:80,align:\"right\",sorter:!0},{title:\"完成数量\",dataIndex:\"completedCount\",key:\"completedCount\",width:80,align:\"right\",sorter:!0},{title:\"关联推送\",key:\"relatedIMPushes\",width:80,align:\"center\",render:(T,k)=>C.jsx(ze,{type:\"link\",size:\"small\",onClick:()=>{x(k),v(!0)},children:\"查看\"})},{title:\"关联订单\",key:\"relatedOrders\",width:80,align:\"center\",render:(T,k)=>C.jsx(ze,{type:\"link\",size:\"small\",onClick:()=>{x(k),y(!0)},children:\"查看\"})},{title:\"完成进度\",key:\"completionRate\",width:120,sorter:!0,render:(T,k)=>C.jsx(Es,{percent:Math.round(k.completionRate*100),size:\"small\",strokeColor:k.completionRate>=.8?\"#52c41a\":k.completionRate>=.5?\"#1890ff\":\"#faad14\"})},{title:\"当前评分\",dataIndex:\"currentRating\",key:\"currentRating\",width:80,align:\"center\",sorter:!0,render:T=>C.jsx(sv,{strong:!0,style:{color:T>=4.5?\"#52c41a\":T>=4?\"#1890ff\":\"#ff4d4f\"},children:T})},{title:\"留评类型\",dataIndex:\"reviewType\",key:\"reviewType\",width:80,align:\"center\",render:T=>{const R={rating:{label:\"Rating\",color:\"blue\"},image:{label:\"图片\",color:\"green\"},video:{label:\"视频\",color:\"purple\"}}[T];return R?C.jsx(et,{color:R.color,children:R.label}):C.jsx(et,{children:T})}},{title:\"目标Review\",dataIndex:\"targetReviewCount\",key:\"targetReviewCount\",width:90,align:\"right\"},{title:\"完成Review\",dataIndex:\"completedReviewCount\",key:\"completedReviewCount\",width:90,align:\"right\"},{title:\"Review进度\",key:\"reviewCompletionRate\",width:120,render:(T,k)=>C.jsx(Es,{percent:Math.round(k.reviewCompletionRate*100),size:\"small\",strokeColor:k.reviewCompletionRate>=.8?\"#52c41a\":k.reviewCompletionRate>=.5?\"#1890ff\":\"#faad14\"})},{title:\"库存状态\",dataIndex:\"inventoryStatus\",key:\"inventoryStatus\",width:120,filters:Object.entries(MF).map(([T,{label:k}])=>({text:k,value:T})),render:T=>{const k=MF[T];return k?C.jsx(Dr,{title:k.label,children:C.jsx(et,{color:k.color,style:{maxWidth:120,overflow:\"hidden\",textOverflow:\"ellipsis\"},children:k.label.length>6?k.label.slice(0,6)+\"…\":k.label})}):C.jsx(et,{children:T})}},{title:\"风险备注\",dataIndex:\"riskNote\",key:\"riskNote\",width:100,render:T=>T?C.jsx(Dr,{title:T,children:C.jsx(et,{color:\"error\",icon:C.jsx(rde,{}),children:T})}):\"-\"},{title:\"负责人\",dataIndex:\"assignee\",key:\"assignee\",width:80,filters:qU.map(T=>({text:T.label,value:T.value}))},{title:\"最近修改\",dataIndex:\"updatedAt\",key:\"updatedAt\",width:110,sorter:!0,render:T=>T?new Date(T).toLocaleDateString(\"zh-CN\"):\"-\"},{title:\"结束时间\",dataIndex:\"disabledAt\",key:\"disabledAt\",width:110,render:T=>T?new Date(T).toLocaleDateString(\"zh-CN\"):\"-\"},{title:\"操作\",key:\"actions\",width:120,fixed:\"right\",render:(T,k)=>C.jsxs(Qt,{size:4,children:[C.jsx(Dr,{title:\"查看详情\",children:C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{})})}),C.jsx(Dr,{title:\"编辑\",children:C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(od,{}),onClick:()=>t(`/plan/review/edit/${k.id}`)})}),C.jsx(V6,{title:\"确定删除此测评计划?\",onConfirm:()=>A(k.id),okText:\"确定\",cancelText:\"取消\",children:C.jsx(Dr,{title:\"删除\",children:C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,icon:C.jsx(Ix,{})})})})]})}],[D,A]);return C.jsxs(\"div\",{children:[C.jsxs(hr,{bodyStyle:{padding:\"16px 24px\"},children:[C.jsx(be,{form:e,style:{marginBottom:16},children:C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"keyword\",label:\"搜索\",style:{marginBottom:8},children:C.jsx(ut,{placeholder:\"编号/产品/ASIN/负责人\",allowClear:!0})})}),C.jsx(Se,{span:3,children:C.jsx(be.Item,{name:\"promotionGoal\",label:\"推广目标\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(IF).map(([T,{label:k}])=>({label:k,value:T}))})})}),C.jsx(Se,{span:3,children:C.jsx(be.Item,{name:\"listingStatus\",label:\"Listing\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(kF).map(([T,{label:k}])=>({label:k,value:T}))})})}),C.jsx(Se,{span:3,children:C.jsx(be.Item,{name:\"promotionStatus\",label:\"推广状态\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(RF).map(([T,{label:k}])=>({label:k,value:T}))})})}),C.jsx(Se,{span:2,children:C.jsx(be.Item,{name:\"site\",label:\"站点\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:YU})})}),C.jsx(Se,{span:2,children:C.jsx(be.Item,{name:\"assignee\",label:\"负责人\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:qU})})}),C.jsx(Se,{span:3,children:C.jsx(be.Item,{name:\"inventoryStatus\",label:\"库存\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(MF).map(([T,{label:k}])=>({label:k.length>6?k.slice(0,6)+\"…\":k,value:T}))})})}),C.jsx(Se,{span:4,style:{display:\"flex\",alignItems:\"flex-end\",marginBottom:8},children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:S,children:\"搜索\"}),C.jsx(ze,{onClick:E,children:\"重置\"})]})})]})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:16},children:[C.jsx(Qt,{children:C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>t(\"/plan/review/create\"),children:\"新增测评计划\"})}),C.jsxs(Qt,{children:[C.jsx(ze,{icon:C.jsx(Sm,{}),onClick:()=>F(),children:\"刷新\"}),C.jsx(Fd,{menu:{items:[{key:\"excel\",label:\"导出 Excel\"},{key:\"csv\",label:\"导出 CSV\"}],onClick:({key:T})=>I(T)},children:C.jsx(ze,{icon:C.jsx(kx,{}),children:\"导出\"})})]})]}),C.jsx(Gr,{rowKey:\"id\",columns:M,dataSource:a,loading:s,onChange:w,pagination:{current:c.current,pageSize:c.pageSize,total:o,showSizeChanger:!0,showQuickJumper:!0,showTotal:T=>`共 ${T} 条`,pageSizeOptions:[\"10\",\"20\",\"50\",\"100\"]},scroll:{x:3400,y:\"calc(100vh - 380px)\"},size:\"small\",bordered:!0})]}),b&&C.jsx(Pft,{visible:p,planId:b.id,planName:b.productName,onClose:()=>v(!1)}),b&&C.jsx($ft,{visible:g,planId:b.id,planName:b.productName,onClose:()=>y(!1)})]})},jft=Object.freeze(Object.defineProperty({__proto__:null,default:Lft},Symbol.toStringTag,{value:\"Module\"})),{TextArea:zft}=ut,Hft=[{label:\"增加评价\",value:\"add_review\"},{label:\"冲销量\",value:\"boost_sales\"},{label:\"拉排名\",value:\"pull_ranking\"},{label:\"新品启动\",value:\"new_launch\"},{label:\"维护稳定\",value:\"maintain\"},{label:\"老品激活\",value:\"revive\"}],Vft=[{label:\"不可售\",value:\"not_saleable\"},{label:\"正常\",value:\"normal\"},{label:\"图片异常\",value:\"image_abnormal\"}],Wft=[{label:\"进行中\",value:\"in_progress\"},{label:\"未开始\",value:\"not_started\"},{label:\"暂停测评\",value:\"paused\"},{label:\"可正常推广\",value:\"normal_promotion\"},{label:\"可小规模推广\",value:\"small_scale\"},{label:\"需优化后推广\",value:\"needs_optimization\"},{label:\"暂停推广\",value:\"paused_promotion\"},{label:\"新品待完善\",value:\"new_pending\"},{label:\"Listing待优化\",value:\"listing_optimization\"},{label:\"图片待优化\",value:\"image_optimization\"},{label:\"标题/五点待优化\",value:\"title_bullets_optimization\"},{label:\"A+待优化\",value:\"a_plus_optimization\"},{label:\"关键词待优化\",value:\"keyword_optimization\"},{label:\"审核中\",value:\"under_review\"},{label:\"类目异常\",value:\"category_abnormal\"},{label:\"变体异常\",value:\"variant_abnormal\"},{label:\"已下架\",value:\"delisted\"}],Gft=[{label:\"库存充足\",value:\"sufficient\"},{label:\"库存低于安全线\",value:\"below_safety\"},{label:\"库存紧张\",value:\"tight\"},{label:\"即将断货\",value:\"almost_out\"},{label:\"已断货\",value:\"out_of_stock\"},{label:\"补货中\",value:\"restocking\"}],Uft=[{label:\"US\",value:\"US\"},{label:\"DE\",value:\"DE\"},{label:\"UK\",value:\"UK\"},{label:\"JP\",value:\"JP\"},{label:\"FR\",value:\"FR\"},{label:\"IT\",value:\"IT\"},{label:\"ES\",value:\"ES\"},{label:\"CA\",value:\"CA\"}],Kft=[{label:\"EDM\",value:\"EDM\"},{label:\"IM\",value:\"IM\"},{label:\"PHONE\",value:\"PHONE\"},{label:\"KOC\",value:\"KOC\"},{label:\"KOL\",value:\"KOL\"}],Yft=[{label:\"Rating\",value:\"rating\"},{label:\"图片\",value:\"image\"},{label:\"视频\",value:\"video\"}],qft=[{label:\"测评\",value:\"review\"},{label:\"免评\",value:\"free_review\"}],Xft=[{label:\"小张\",value:\"小张\"},{label:\"小王\",value:\"小王\"},{label:\"小李\",value:\"小李\"},{label:\"小赵\",value:\"小赵\"},{label:\"小刘\",value:\"小刘\"},{label:\"小陈\",value:\"小陈\"}],Jft=()=>{const e=Ia(),{id:t}=$g(),[r]=be.useForm(),[n,a]=m.useState(!1),[i,o]=m.useState(!1);m.useEffect(()=>{t&&(o(!0),Or(`/review-plans/${t}`).then(s=>{const u=s;r.setFieldsValue({...u,channels:typeof u.channels==\"string\"?u.channels.split(\",\"):u.channels})}).catch(()=>vt.error(\"加载测评计划数据失败\")).finally(()=>o(!1)))},[t,r]);const l=m.useCallback(async(s,u=!1)=>{a(!0);try{const c={...s,channels:s.channels?s.channels.join(\",\"):\"\",completionRate:s.targetCount?Number(s.completedCount||0)/Number(s.targetCount):0,reviewCompletionRate:s.targetReviewCount?Number(s.completedReviewCount||0)/Number(s.targetReviewCount):0};t?(await Go(`/review-plans/${t}`,c),vt.success(\"更新成功\")):(await fr(\"/review-plans\",c),vt.success(u?\"提交成功\":\"保存成功\")),e(\"/plan/review\")}catch{vt.error(\"操作失败,请重试\")}finally{a(!1)}},[t,e]);return C.jsxs(\"div\",{children:[C.jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",marginBottom:16},children:[C.jsx(ze,{icon:C.jsx(_m,{}),onClick:()=>e(\"/plan/review\"),style:{marginRight:16},children:\"返回\"}),C.jsx(\"h2\",{style:{margin:0},children:t?\"编辑测评计划\":\"新建测评计划\"})]}),C.jsx(mi,{spinning:i,children:C.jsxs(be,{form:r,layout:\"vertical\",onFinish:s=>l(s),style:{maxWidth:1200},children:[C.jsxs(hr,{title:\"基本信息\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"requirementId\",label:\"需求编号\",rules:[{required:!0,message:\"请输入需求编号\"}],children:C.jsx(ut,{placeholder:\"如 C12345\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"productName\",label:\"产品名称(中/英/德)\",rules:[{required:!0,message:\"请输入产品名称\"}],children:C.jsx(ut,{placeholder:\"如 加特林/Gatling\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"productImage\",label:\"产品图片URL\",children:C.jsx(ut,{placeholder:\"亚马逊首图URL\"})})})]}),C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"promotionGoal\",label:\"推广目标\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择推广目标\",options:Hft})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"listingStatus\",label:\"Listing 状态\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择状态\",options:Vft})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"targetAudience\",label:\"目标受众\",children:C.jsx(ut,{placeholder:\"如 男,LGBT\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"promotionStatus\",label:\"推广状态\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择推广状态\",options:Wft})})})]}),C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"promotionLevel\",label:\"推广级别\",rules:[{required:!0}],children:C.jsx(vn,{min:1,max:3,placeholder:\"1-3\",style:{width:\"100%\"}})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"storeInfo\",label:\"店铺\",children:C.jsx(ut,{placeholder:\"如 可用*USC01*AM-Y156-US\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"asin\",label:\"ASIN\",rules:[{required:!0}],children:C.jsx(ut,{placeholder:\"如 B0F6L4FLJS\",style:{fontFamily:\"monospace\"}})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"site\",label:\"站点\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择站点\",options:Uft})})})]})]}),C.jsxs(hr,{title:\"测评配置\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"channels\",label:\"测评渠道\",rules:[{required:!0}],children:C.jsx(Qe,{mode:\"multiple\",placeholder:\"选择测评渠道\",options:Kft})})}),C.jsx(Se,{span:16,children:C.jsx(be.Item,{name:\"keywords\",label:\"关键词\",extra:\"每行一条,格式 P0:关键词 / P1:关键词 / P2:关键词\",children:C.jsx(zft,{rows:4,placeholder:`P0:pocket puss\nP1:sex toy\nP2:male masturbator`})})})]}),C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"keywordLink\",label:\"关键词链接\",children:C.jsx(ut,{placeholder:\"搜索结果页链接\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"promotionType\",label:\"推广类型\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择\",options:qft})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"reviewType\",label:\"留评类型\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择\",options:Yft})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"planPeriod\",label:\"计划周期\",children:C.jsx(ut,{placeholder:\"如 2026/01/012026/05/31\"})})})]})]}),C.jsxs(hr,{title:\"数量目标\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"targetCount\",label:\"计划数量\",rules:[{required:!0}],children:C.jsx(vn,{min:1,style:{width:\"100%\"},placeholder:\"50\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"completedCount\",label:\"完成数量\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"currentRating\",label:\"当前评分\",children:C.jsx(vn,{min:1,max:5,step:.1,style:{width:\"100%\"},placeholder:\"4.6\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"inventoryStatus\",label:\"库存状态\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择\",options:Gft})})})]}),C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"targetReviewCount\",label:\"目标 Review 数量\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"20\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"completedReviewCount\",label:\"完成 Review 数量\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})})]})]}),C.jsx(hr,{title:\"其他信息\",style:{marginBottom:16},children:C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"assignee\",label:\"负责人\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择负责人\",options:Xft})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"disabledAt\",label:\"结束时间(禁用时间)\",children:C.jsx(ut,{placeholder:\"2026-05-20\"})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"riskNote\",label:\"风险备注\",children:C.jsx(ut,{placeholder:\"如 差评风险、绩效风险\"})})})]})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"flex-end\",gap:12,marginTop:8},children:[C.jsx(ze,{onClick:()=>e(\"/plan/review\"),children:\"取消\"}),C.jsx(ze,{type:\"default\",icon:C.jsx(ED,{}),loading:n,onClick:()=>r.validateFields().then(s=>l(s,!1)),children:\"保存草稿\"}),C.jsx(ze,{type:\"primary\",htmlType:\"submit\",icon:C.jsx(Tp,{}),loading:n,children:\"提交\"})]})]})})]})},Zft=Object.freeze(Object.defineProperty({__proto__:null,default:Jft},Symbol.toStringTag,{value:\"Module\"})),PF={stable:{label:\"维稳期\",color:\"green\"},bad_review:{label:\"差评\",color:\"red\"},sprint:{label:\"冲刺期\",color:\"orange\"},new_launch:{label:\"新品期\",color:\"purple\"},revive:{label:\"老品激活\",color:\"cyan\"}},tT={S:{label:\"S\",color:\"red\"},A:{label:\"A\",color:\"orange\"},B:{label:\"B\",color:\"blue\"},C:{label:\"C\",color:\"default\"}},OF={in_progress:{label:\"进行中\",color:\"blue\"},pending:{label:\"待开始\",color:\"default\"},paused:{label:\"已暂停\",color:\"orange\"},completed:{label:\"已完成\",color:\"green\"},cancelled:{label:\"已取消\",color:\"red\"}},BF={manual:{label:\"人工\",color:\"purple\"},routine:{label:\"例行\",color:\"blue\"},downgrade:{label:\"掉级\",color:\"red\"},upgrade:{label:\"冲级\",color:\"green\"}},XU={rating:{label:\"Rating\",color:\"blue\"},image:{label:\"图片\",color:\"green\"},video:{label:\"视频\",color:\"purple\"},image_and_video:{label:\"视频/图片\",color:\"magenta\"}},JU=[{label:\"US\",value:\"US\"},{label:\"UK\",value:\"UK\"},{label:\"DE\",value:\"DE\"},{label:\"FR\",value:\"FR\"},{label:\"IT\",value:\"IT\"},{label:\"ES\",value:\"ES\"},{label:\"JP\",value:\"JP\"},{label:\"CA\",value:\"CA\"}],ZU=[{label:\"小张\",value:\"小张\"},{label:\"小王\",value:\"小王\"},{label:\"小李\",value:\"小李\"},{label:\"小赵\",value:\"小赵\"},{label:\"小刘\",value:\"小刘\"},{label:\"小陈\",value:\"小陈\"}],Qft=()=>{const[e]=be.useForm(),{exportExcel:t,exportCSV:r}=zB(),[n,a]=m.useState([]),[i,o]=m.useState(0),[l,s]=m.useState(!1),[u,c]=m.useState({current:1,pageSize:20}),[d,f]=m.useState({}),h=m.useCallback(async(E=u.current,w=u.pageSize,D=d)=>{s(!0);try{const A=new URLSearchParams({page:String(E),pageSize:String(w)});Object.entries(D).forEach(([I,M])=>{M!=null&&M!==\"\"&&A.set(I,String(M))});const _=await Or(`/reply-plans?${A.toString()}`);a(_.list),o(_.total)}catch(A){console.error(\"Failed to fetch reply plans:\",A)}finally{s(!1)}},[u.current,u.pageSize,d]);m.useEffect(()=>{h()},[h]);const p=m.useCallback(()=>{const E=e.getFieldsValue(),w={};Object.entries(E).forEach(([D,A])=>{A!=null&&A!==\"\"&&(w[D]=A)}),f(w),c(D=>({...D,current:1}))},[e]),v=m.useCallback(()=>{e.resetFields(),f({}),c(E=>({...E,current:1}))},[e]),g=m.useCallback(E=>{c({current:E.current||1,pageSize:E.pageSize||20})},[]),y=m.useCallback(E=>{navigator.clipboard.writeText(E).then(()=>vt.success(\"链接已复制\"),()=>vt.error(\"复制失败\"))},[]),b=m.useCallback(async E=>{try{await sd(`/reply-plans/${E}`),vt.success(\"删除成功\"),h()}catch{vt.error(\"删除失败\")}},[h]),x=m.useMemo(()=>[{title:\"需求编号\",dataIndex:\"requirementId\"},{title:\"产品名称\",dataIndex:\"productName\"},{title:\"站点\",dataIndex:\"site\"},{title:\"需求来源\",dataIndex:\"source\",render:E=>{var w;return((w=BF[E])==null?void 0:w.label)||String(E)}},{title:\"产品状态\",dataIndex:\"productPhase\",render:E=>{var w;return((w=PF[E])==null?void 0:w.label)||String(E)}},{title:\"测评渠道\",dataIndex:\"channels\",render:E=>E==null?void 0:E.join(\"/\")},{title:\"优先级\",dataIndex:\"priority\"},{title:\"状态\",dataIndex:\"status\",render:E=>{var w;return((w=OF[E])==null?void 0:w.label)||String(E)}},{title:\"ASIN\",dataIndex:\"asin\"},{title:\"追加金额\",dataIndex:\"additionalBudget\"},{title:\"前4周评分\",dataIndex:\"rating4WeekAgo\"},{title:\"前1周评分\",dataIndex:\"rating1WeekAgo\"},{title:\"留评类型\",dataIndex:\"reviewType\",render:E=>{var w;return((w=XU[E])==null?void 0:w.label)||String(E)}},{title:\"今日目标数\",dataIndex:\"dailyTargetCount\"},{title:\"已完成数\",dataIndex:\"completedCount\"},{title:\"未完成数\",dataIndex:\"incompleteCount\"},{title:\"掉评标签\",dataIndex:\"dropReviewTag\"},{title:\"负责人\",dataIndex:\"assignee\"},{title:\"日期\",dataIndex:\"planDate\"},{title:\"备注\",dataIndex:\"notes\"}],[]),F=m.useCallback(async E=>{E===\"excel\"?await t(n,x,\"回评计划\"):await r(n,x,\"回评计划\")},[n,x,t,r]),S=m.useMemo(()=>[{title:\"需求编号\",dataIndex:\"requirementId\",key:\"requirementId\",width:100,fixed:\"left\",render:E=>C.jsx(\"span\",{style:{fontWeight:600,fontFamily:\"monospace\"},children:E})},{title:\"产品名称\",dataIndex:\"productName\",key:\"productName\",width:130,fixed:\"left\",ellipsis:!0,render:E=>C.jsx(Dr,{title:E,children:C.jsx(\"span\",{style:{fontWeight:500},children:E})})},{title:\"站点\",dataIndex:\"site\",key:\"site\",width:60,align:\"center\",filters:JU.map(E=>({text:E.label,value:E.value})),render:E=>C.jsx(et,{children:E})},{title:\"需求来源\",dataIndex:\"source\",key:\"source\",width:80,filters:Object.entries(BF).map(([E,{label:w}])=>({text:w,value:E})),render:E=>{const w=BF[E];return w?C.jsx(et,{color:w.color,children:w.label}):C.jsx(et,{children:E})}},{title:\"产品状态\",dataIndex:\"productPhase\",key:\"productPhase\",width:90,filters:Object.entries(PF).map(([E,{label:w}])=>({text:w,value:E})),render:E=>{const w=PF[E];return w?C.jsx(et,{color:w.color,children:w.label}):C.jsx(et,{children:E})}},{title:\"测评渠道\",dataIndex:\"channels\",key:\"channels\",width:120,render:E=>C.jsx(Qt,{size:4,wrap:!0,children:E==null?void 0:E.map(w=>C.jsx(et,{color:\"processing\",style:{fontSize:11},children:w},w))})},{title:\"优先级\",dataIndex:\"priority\",key:\"priority\",width:60,align:\"center\",filters:Object.entries(tT).map(([E,{label:w}])=>({text:w,value:E})),render:E=>{const w=tT[E];return w?C.jsx(et,{color:w.color,style:{fontWeight:700},children:w.label}):C.jsx(et,{children:E})}},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:80,filters:Object.entries(OF).map(([E,{label:w}])=>({text:w,value:E})),render:E=>{const w=OF[E];return w?C.jsx(et,{color:w.color,children:w.label}):C.jsx(et,{children:E})}},{title:\"ASIN\",dataIndex:\"asin\",key:\"asin\",width:120,render:E=>C.jsxs(\"span\",{style:{fontSize:12,fontFamily:\"monospace\"},children:[C.jsx(Yu,{style:{marginRight:4,color:\"#1890ff\",cursor:\"pointer\"},onClick:()=>{navigator.clipboard.writeText(E).then(()=>vt.success(\"ASIN已复制\"))}}),E]})},{title:\"关键词链接\",dataIndex:\"keywordLink\",key:\"keywordLink\",width:80,align:\"center\",render:E=>E?C.jsx(Dr,{title:\"点击复制链接\",children:C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Yu,{}),onClick:()=>y(E)})}):\"-\"},{title:\"追加金额\",dataIndex:\"additionalBudget\",key:\"additionalBudget\",width:80,align:\"right\",render:E=>E?C.jsx(\"span\",{style:{color:\"#fa8c16\",fontWeight:500},children:E}):\"-\"},{title:\"评分趋势\",key:\"ratingTrend\",width:80,align:\"center\",render:(E,w)=>{const A={up:{icon:C.jsx(tde,{}),color:\"#52c41a\",text:`${w.rating1WeekAgo} ↑`},down:{icon:C.jsx(ede,{}),color:\"#ff4d4f\",text:`${w.rating1WeekAgo} ↓`},stable:{icon:C.jsx(Vnt,{}),color:\"#999\",text:`${w.rating1WeekAgo} →`}}[w.ratingTrend];return C.jsx(Dr,{title:`前4周: ${w.rating4WeekAgo} → 前1周: ${w.rating1WeekAgo}`,children:C.jsxs(\"span\",{style:{color:A.color,fontWeight:500},children:[A.icon,\" \",A.text]})})}},{title:\"留评类型\",dataIndex:\"reviewType\",key:\"reviewType\",width:90,align:\"center\",render:E=>{const w=XU[E];return w?C.jsx(et,{color:w.color,children:w.label}):C.jsx(et,{children:E})}},{title:\"今日目标\",dataIndex:\"dailyTargetCount\",key:\"dailyTargetCount\",width:80,align:\"right\",sorter:!0},{title:\"已完成\",dataIndex:\"completedCount\",key:\"completedCount\",width:70,align:\"right\",render:E=>C.jsx(\"span\",{style:{color:\"#52c41a\",fontWeight:500},children:E})},{title:\"未完成\",dataIndex:\"incompleteCount\",key:\"incompleteCount\",width:70,align:\"right\",render:E=>C.jsx(\"span\",{style:{color:E>0?\"#ff4d4f\":\"#52c41a\",fontWeight:500},children:E})},{title:\"完成进度\",key:\"completionRate\",width:110,render:(E,w)=>{const D=w.dailyTargetCount>0?Math.round(w.completedCount/w.dailyTargetCount*100):0;return C.jsx(Es,{percent:D,size:\"small\",strokeColor:D>=80?\"#52c41a\":D>=50?\"#1890ff\":\"#faad14\"})}},{title:\"Review数\",key:\"reviewCounts\",width:100,render:(E,w)=>C.jsx(Dr,{title:`立项: ${w.reviewCountAtStart} → 结算: ${w.reviewCountAtEnd}`,children:C.jsxs(\"span\",{style:{fontSize:12},children:[w.reviewCountAtStart,\" → \",w.reviewCountAtEnd]})})},{title:\"近30天销量\",dataIndex:\"salesLast30Days\",key:\"salesLast30Days\",width:90,align:\"right\",sorter:!0,render:E=>C.jsx(\"span\",{style:{fontWeight:500},children:E})},{title:\"掉评\",key:\"dropReview\",width:100,render:(E,w)=>{if(!w.dropReviewTag&&w.droppedReviews1Month===0&&w.droppedReviews1Week===0)return\"-\";const D=w.dropReviewTag===\"掉评高\"?\"red\":w.dropReviewTag===\"掉评中\"?\"orange\":\"default\";return C.jsx(Dr,{title:`1周: ${w.droppedReviews1Week} / 1月: ${w.droppedReviews1Month}`,children:w.dropReviewTag?C.jsx(et,{color:D,children:w.dropReviewTag}):C.jsxs(\"span\",{children:[w.droppedReviews1Week,\"/\",w.droppedReviews1Month]})})}},{title:\"负责人\",dataIndex:\"assignee\",key:\"assignee\",width:70,filters:ZU.map(E=>({text:E.label,value:E.value}))},{title:\"日期\",dataIndex:\"planDate\",key:\"planDate\",width:100,sorter:!0,render:E=>E||\"-\"},{title:\"备注\",dataIndex:\"notes\",key:\"notes\",width:120,ellipsis:!0,render:E=>E?C.jsx(Dr,{title:E,children:C.jsx(\"span\",{style:{fontSize:12},children:E})}):\"-\"},{title:\"操作\",key:\"actions\",width:120,fixed:\"right\",render:(E,w)=>C.jsxs(Qt,{size:4,children:[C.jsx(Dr,{title:\"编辑\",children:C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(od,{}),onClick:()=>{window.location.href=`/plan/reply/edit/${w.id}`}})}),C.jsx(V6,{title:\"确定删除此回评计划?\",onConfirm:()=>b(w.id),okText:\"确定\",cancelText:\"取消\",children:C.jsx(Dr,{title:\"删除\",children:C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,icon:C.jsx(Ix,{})})})})]})}],[y,b]);return C.jsx(\"div\",{children:C.jsxs(hr,{bodyStyle:{padding:\"16px 24px\"},children:[C.jsx(be,{form:e,style:{marginBottom:16},children:C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"keyword\",label:\"搜索\",style:{marginBottom:8},children:C.jsx(ut,{placeholder:\"编号/产品/ASIN/负责人\",allowClear:!0})})}),C.jsx(Se,{span:3,children:C.jsx(be.Item,{name:\"productPhase\",label:\"产品状态\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(PF).map(([E,{label:w}])=>({label:w,value:E}))})})}),C.jsx(Se,{span:2,children:C.jsx(be.Item,{name:\"priority\",label:\"优先级\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(tT).map(([E,{label:w}])=>({label:w,value:E}))})})}),C.jsx(Se,{span:3,children:C.jsx(be.Item,{name:\"status\",label:\"状态\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(OF).map(([E,{label:w}])=>({label:w,value:E}))})})}),C.jsx(Se,{span:2,children:C.jsx(be.Item,{name:\"site\",label:\"站点\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:JU})})}),C.jsx(Se,{span:2,children:C.jsx(be.Item,{name:\"assignee\",label:\"负责人\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:ZU})})}),C.jsx(Se,{span:2,children:C.jsx(be.Item,{name:\"source\",label:\"来源\",style:{marginBottom:8},children:C.jsx(Qe,{placeholder:\"全部\",allowClear:!0,options:Object.entries(BF).map(([E,{label:w}])=>({label:w,value:E}))})})}),C.jsx(Se,{span:4,style:{display:\"flex\",alignItems:\"flex-end\",marginBottom:8},children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:p,children:\"搜索\"}),C.jsx(ze,{onClick:v,children:\"重置\"})]})})]})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:16},children:[C.jsx(Qt,{children:C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>{window.location.href=\"/plan/reply/create\"},children:\"新建回评\"})}),C.jsxs(Qt,{children:[C.jsx(ze,{icon:C.jsx(Sm,{}),onClick:()=>h(),children:\"刷新\"}),C.jsx(Fd,{menu:{items:[{key:\"excel\",label:\"导出 Excel\"},{key:\"csv\",label:\"导出 CSV\"}],onClick:({key:E})=>F(E)},children:C.jsx(ze,{icon:C.jsx(kx,{}),children:\"导出\"})})]})]}),C.jsx(Gr,{rowKey:\"id\",columns:S,dataSource:n,loading:l,onChange:g,pagination:{current:u.current,pageSize:u.pageSize,total:i,showSizeChanger:!0,showQuickJumper:!0,showTotal:E=>`共 ${E} 条`,pageSizeOptions:[\"10\",\"20\",\"50\",\"100\"]},scroll:{x:2800,y:\"calc(100vh - 380px)\"},size:\"small\",bordered:!0})]})})},eht=Object.freeze(Object.defineProperty({__proto__:null,default:Qft},Symbol.toStringTag,{value:\"Module\"})),{TextArea:tht}=ut,rht=[{label:\"人工\",value:\"manual\"},{label:\"例行\",value:\"routine\"},{label:\"掉级\",value:\"downgrade\"},{label:\"冲级\",value:\"upgrade\"}],nht=[{label:\"维稳期\",value:\"stable\"},{label:\"差评\",value:\"bad_review\"},{label:\"冲刺期\",value:\"sprint\"},{label:\"新品期\",value:\"new_launch\"},{label:\"老品激活\",value:\"revive\"}],aht=[{label:\"S (最高)\",value:\"S\"},{label:\"A\",value:\"A\"},{label:\"B\",value:\"B\"},{label:\"C (最低)\",value:\"C\"}],iht=[{label:\"待开始\",value:\"pending\"},{label:\"进行中\",value:\"in_progress\"},{label:\"已暂停\",value:\"paused\"},{label:\"已完成\",value:\"completed\"},{label:\"已取消\",value:\"cancelled\"}],oht=[{label:\"US\",value:\"US\"},{label:\"DE\",value:\"DE\"},{label:\"UK\",value:\"UK\"},{label:\"JP\",value:\"JP\"},{label:\"FR\",value:\"FR\"},{label:\"IT\",value:\"IT\"},{label:\"ES\",value:\"ES\"},{label:\"CA\",value:\"CA\"}],lht=[{label:\"IM\",value:\"IM\"},{label:\"EDM\",value:\"EDM\"},{label:\"Phone\",value:\"Phone\"},{label:\"KOC\",value:\"KOC\"},{label:\"KOL\",value:\"KOL\"}],sht=[{label:\"Rating\",value:\"rating\"},{label:\"图片\",value:\"image\"},{label:\"视频\",value:\"video\"},{label:\"视频/图片\",value:\"image_and_video\"}],uht=[{label:\"小张\",value:\"小张\"},{label:\"小王\",value:\"小王\"},{label:\"小李\",value:\"小李\"},{label:\"小赵\",value:\"小赵\"},{label:\"小刘\",value:\"小刘\"},{label:\"小陈\",value:\"小陈\"}],cht=[{label:\"↑ 上升\",value:\"up\"},{label:\"↓ 下降\",value:\"down\"},{label:\"→ 稳定\",value:\"stable\"}],dht=()=>{const e=Ia(),{id:t}=$g(),[r]=be.useForm(),[n,a]=m.useState(!1),[i,o]=m.useState(!1);m.useEffect(()=>{t&&(o(!0),Or(`/reply-plans/${t}`).then(s=>{r.setFieldsValue({...s,channels:s.channels||[]})}).catch(()=>{vt.error(\"加载回评计划失败\")}).finally(()=>o(!1)))},[t,r]);const l=m.useCallback(async(s,u=!1)=>{a(!0);try{const c={...s,channels:s.channels?s.channels.join(\",\"):\"\",incompleteCount:Number(s.dailyTargetCount||0)-Number(s.completedCount||0)};t?(await Go(`/reply-plans/${t}`,c),vt.success(\"更新成功\")):(await fr(\"/reply-plans\",c),vt.success(u?\"提交成功\":\"保存成功\")),e(\"/plan/reply\")}catch{vt.error(\"操作失败,请重试\")}finally{a(!1)}},[t,e]);return C.jsxs(\"div\",{children:[C.jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",marginBottom:16},children:[C.jsx(ze,{icon:C.jsx(_m,{}),onClick:()=>e(\"/plan/reply\"),style:{marginRight:16},children:\"返回\"}),C.jsx(\"h2\",{style:{margin:0},children:t?\"编辑回评计划\":\"新建回评计划\"})]}),C.jsx(mi,{spinning:i,children:C.jsxs(be,{form:r,layout:\"vertical\",onFinish:s=>l(s),style:{maxWidth:1200},children:[C.jsxs(hr,{title:\"基本信息\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"requirementId\",label:\"需求编号\",rules:[{required:!0,message:\"请输入需求编号\"}],children:C.jsx(ut,{placeholder:\"如 H12234\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"productName\",label:\"产品名称\",rules:[{required:!0,message:\"请输入产品名称\"}],children:C.jsx(ut,{placeholder:\"如 阿萝拉二代\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"site\",label:\"站点\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择站点\",options:oht})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"asin\",label:\"ASIN\",rules:[{required:!0}],children:C.jsx(ut,{placeholder:\"如 B0FBWBPD4X\",style:{fontFamily:\"monospace\"}})})})]}),C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"source\",label:\"需求来源\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择来源\",options:rht})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"requester\",label:\"需求人\",children:C.jsx(ut,{placeholder:\"输入需求人\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"reviewer\",label:\"审核人\",children:C.jsx(ut,{placeholder:\"输入审核人\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"productPhase\",label:\"产品状态\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择产品状态\",options:nht})})})]})]}),C.jsxs(hr,{title:\"测评配置\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"channels\",label:\"测评渠道\",rules:[{required:!0}],children:C.jsx(Qe,{mode:\"multiple\",placeholder:\"选择测评渠道\",options:lht})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"priority\",label:\"优先级\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择\",options:aht})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"status\",label:\"计划状态\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择状态\",options:iht})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"reviewType\",label:\"留评类型\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择\",options:sht})})})]}),C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:16,children:C.jsx(be.Item,{name:\"keywordLink\",label:\"关键词链接\",children:C.jsx(ut,{placeholder:\"搜索结果页链接,可一键复制给测评人\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"additionalBudget\",label:\"追加金额\",extra:C.jsx(Dr,{title:\"回评追加金额,方便做紧急调整\",children:C.jsx(nde,{style:{color:\"#1890ff\"}})}),children:C.jsx(ut,{placeholder:\"如 50$\"})})})]})]}),C.jsx(hr,{title:\"数量目标\",style:{marginBottom:16},children:C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"dailyTargetCount\",label:\"今日目标评价数\",rules:[{required:!0}],children:C.jsx(vn,{min:1,style:{width:\"100%\"},placeholder:\"30\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"completedCount\",label:\"已完成数\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"3\"})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"assignee\",label:\"负责人\",rules:[{required:!0}],children:C.jsx(Qe,{placeholder:\"选择负责人\",options:uht})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"planDate\",label:\"日期\",children:C.jsx(ut,{placeholder:\"如 2026.3.25\"})})})]})}),C.jsxs(hr,{title:\"评分与Review数据\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"rating4WeekAgo\",label:\"前4周评分\",children:C.jsx(vn,{min:1,max:5,step:.1,style:{width:\"100%\"},placeholder:\"4.7\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"rating1WeekAgo\",label:\"前1周评分\",children:C.jsx(vn,{min:1,max:5,step:.1,style:{width:\"100%\"},placeholder:\"4.5\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"ratingTrend\",label:\"评分变化趋势\",children:C.jsx(Qe,{placeholder:\"选择\",options:cht})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"reviewCountAtStart\",label:\"立项时Review总数\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"reviewCountAtEnd\",label:\"结算时Review总数\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"salesLast30Days\",label:\"近30天销量\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})})]}),C.jsxs(sr,{gutter:24,children:[C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"newGoodReviews1Week\",label:\"前1周新增好评数\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"newBadReviews1Week\",label:\"前1周新增差评数\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"droppedReviews1Month\",label:\"1月内掉评数\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"droppedReviews1Week\",label:\"1周内掉评数\",children:C.jsx(vn,{min:0,style:{width:\"100%\"},placeholder:\"0\"})})}),C.jsx(Se,{span:4,children:C.jsx(be.Item,{name:\"dropReviewTag\",label:\"掉评标签\",children:C.jsx(Qe,{placeholder:\"选择\",allowClear:!0,options:[{label:\"掉评高\",value:\"掉评高\"},{label:\"掉评中\",value:\"掉评中\"},{label:\"掉评低\",value:\"掉评低\"},{label:\"稳定\",value:\"稳定\"},{label:\"待观察\",value:\"待观察\"}]})})})]})]}),C.jsx(hr,{title:\"其他信息\",style:{marginBottom:16},children:C.jsx(sr,{gutter:24,children:C.jsx(Se,{span:24,children:C.jsx(be.Item,{name:\"notes\",label:\"备注(特殊需求,运营备注)\",children:C.jsx(tht,{rows:3,placeholder:\"如 把控上评节奏、回评追加金额调整等\"})})})})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"flex-end\",gap:12,marginTop:8},children:[C.jsx(ze,{onClick:()=>e(\"/plan/reply\"),children:\"取消\"}),C.jsx(ze,{type:\"default\",icon:C.jsx(ED,{}),loading:n,onClick:()=>r.validateFields().then(s=>l(s,!1)),children:\"保存草稿\"}),C.jsx(ze,{type:\"primary\",htmlType:\"submit\",icon:C.jsx(Tp,{}),loading:n,children:\"提交\"})]})]})})]})},fht=Object.freeze(Object.defineProperty({__proto__:null,default:dht},Symbol.toStringTag,{value:\"Module\"}));function Pm({columns:e,filters:t=[],onFetch:r,rowKey:n=\"id\",batchActions:a=[],exportable:i=!1,exportFilename:o=\"export\",exportColumns:l,toolbarExtra:s,defaultPageSize:u=20,autoFetch:c=!0}){const[d]=be.useForm(),{exportExcel:f,exportCSV:h}=zB(),[p,v]=m.useState([]),[g,y]=m.useState(0),[b,x]=m.useState(!1),[F,S]=m.useState([]),[E,w]=m.useState({current:1,pageSize:u}),[D,A]=m.useState({field:\"createdAt\",order:\"descend\"}),[_,I]=m.useState({}),M=m.useCallback(async(O=E.current,z=E.pageSize)=>{x(!0);try{const W=await r({page:O,pageSize:z,sortBy:D.field,sortOrder:D.order,filters:_});v(W.list),y(W.total)}catch(W){console.error(\"SearchTable fetch error:\",W)}finally{x(!1)}},[r,E.current,E.pageSize,D,_]);m.useEffect(()=>{c&&M()},[c,M]);const T=m.useCallback(()=>{const O=d.getFieldsValue(),z={};Object.entries(O).forEach(([W,L])=>{L!=null&&L!==\"\"&&(z[W]=L)}),I(z),w(W=>({...W,current:1}))},[d]),k=m.useCallback(()=>{d.resetFields(),I({}),w(O=>({...O,current:1}))},[d]),R=m.useCallback((O,z,W)=>{w({current:O.current||1,pageSize:O.pageSize||u});const L=Array.isArray(W)?W[0]:W;L!=null&&L.field&&A({field:String(L.field),order:L.order===\"ascend\"?\"ascend\":\"descend\"})},[u]),P=m.useCallback(async O=>{l&&(O===\"excel\"?await f(p,l,o):await h(p,l,o))},[p,l,o,f,h]),B=m.useCallback(O=>{const z={placeholder:O.placeholder||`请选择${O.label}`,style:{width:\"100%\"}};switch(O.type){case\"input\":return C.jsx(ut,{...z,allowClear:!0});case\"select\":return C.jsx(Qe,{...z,allowClear:!0,options:O.options});case\"dateRange\":return C.jsx(Wl.RangePicker,{style:{width:\"100%\"}});default:return C.jsx(ut,{...z})}},[]),N=a.length>0?{selectedRowKeys:F,onChange:O=>S(O)}:void 0;return C.jsxs(hr,{bodyStyle:{padding:\"16px 24px\"},children:[t.length>0&&C.jsx(be,{form:d,style:{marginBottom:16},children:C.jsxs(sr,{gutter:16,children:[t.map(O=>C.jsx(Se,{span:O.span||6,children:C.jsx(be.Item,{name:O.name,label:O.label,style:{marginBottom:8},children:B(O)})},O.name)),C.jsx(Se,{span:6,style:{display:\"flex\",alignItems:\"flex-end\",marginBottom:8},children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:T,children:\"搜索\"}),C.jsx(ze,{onClick:k,children:\"重置\"})]})})]})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:16},children:[C.jsx(Qt,{children:F.length>0&&a.length>0&&C.jsxs(Qt,{children:[C.jsxs(\"span\",{style:{color:\"#1890ff\"},children:[\"已选 \",F.length,\" 项\"]}),a.map(O=>C.jsx(ze,{danger:O.danger,onClick:()=>O.onClick(F),icon:O.icon,children:O.label},O.key)),C.jsx(ze,{size:\"small\",onClick:()=>S([]),children:\"取消选择\"})]})}),C.jsxs(Qt,{children:[C.jsx(ze,{icon:C.jsx(Sm,{}),onClick:()=>M(),children:\"刷新\"}),i&&C.jsx(Fd,{menu:{items:[{key:\"excel\",label:\"导出 Excel\"},{key:\"csv\",label:\"导出 CSV\"}],onClick:({key:O})=>P(O)},children:C.jsx(ze,{icon:C.jsx(kx,{}),children:\"导出\"})}),s]})]}),C.jsx(Gr,{rowKey:n,columns:e,dataSource:p,loading:b,rowSelection:N,onChange:R,pagination:{current:E.current,pageSize:E.pageSize,total:g,showSizeChanger:!0,showQuickJumper:!0,showTotal:O=>`共 ${O} 条`,pageSizeOptions:[\"10\",\"20\",\"50\",\"100\"]},locale:{emptyText:C.jsx(ra,{description:\"暂无数据\"})},scroll:{x:\"max-content\"}})]})}const Lc={primary:\"#1890ff\",success:\"#52c41a\",warning:\"#faad14\",danger:\"#ff4d4f\"},QU={[kn.None]:\"#d9d9d9\",[kn.Low]:\"#52c41a\",[kn.Medium]:\"#faad14\",[kn.High]:\"#ff4d4f\",[kn.Critical]:\"#cf1322\"};Ln.IM+\"\",Ln.EDM+\"\",Ln.APP+\"\",Ln.TEL+\"\",Ln.KOC+\"\",Ln.KOL+\"\";rc.A+\"\",rc.B+\"\",rc.C+\"\";const hht={initial:\"pending\",transitions:[{from:[\"pending\"],to:\"confirmed\",action:\"confirm\"},{from:[\"pending\"],to:\"declined\",action:\"decline\"},{from:[\"pending\"],to:\"expired\",action:\"expire\"},{from:[\"confirmed\"],to:\"cancelled\",action:\"cancel\"},{from:[\"confirmed\"],to:\"expired\",action:\"expire\"}]},pht={[uo.Draft]:{label:\"草稿\",color:\"#d9d9d9\"},[uo.PendingApproval]:{label:\"待审批\",color:\"#faad14\"},[uo.Approved]:{label:\"已审批\",color:\"#1890ff\"},[uo.InProgress]:{label:\"进行中\",color:\"#1890ff\"},[uo.Completed]:{label:\"已完成\",color:\"#52c41a\"},[uo.Cancelled]:{label:\"已取消\",color:\"#d9d9d9\"},[uo.Rejected]:{label:\"已驳回\",color:\"#ff4d4f\"}},mht={[nc.Strong]:{label:\"强关联\",color:\"#ff4d4f\"},[nc.Weak]:{label:\"弱关联\",color:\"#faad14\"}},rT={[Ln.IM]:{label:\"即时通讯\",icon:\"MessageOutlined\",color:\"#1890ff\"},[Ln.EDM]:{label:\"邮件推送\",icon:\"MailOutlined\",color:\"#52c41a\"},[Ln.APP]:{label:\"APP推送\",icon:\"MobileOutlined\",color:\"#722ed1\"},[Ln.TEL]:{label:\"电话\",icon:\"PhoneOutlined\",color:\"#faad14\"},[Ln.KOC]:{label:\"KOC\",icon:\"UserOutlined\",color:\"#13c2c2\"},[Ln.KOL]:{label:\"KOL\",icon:\"StarOutlined\",color:\"#eb2f96\"}};Si.Review+\"\",Si.Reply+\"\",Si.Free+\"\";const Xfe={[kn.None]:{label:\"无风险\",color:\"#d9d9d9\"},[kn.Low]:{label:\"低风险\",color:\"#52c41a\"},[kn.Medium]:{label:\"中风险\",color:\"#faad14\"},[kn.High]:{label:\"高风险\",color:\"#ff4d4f\"},[kn.Critical]:{label:\"严重风险\",color:\"#cf1322\"}},vht={[xi.Pending]:{label:\"待处理\",color:\"default\"},[xi.Assigned]:{label:\"已分配\",color:\"processing\"},[xi.InProgress]:{label:\"处理中\",color:\"processing\"},[xi.Resolved]:{label:\"已解决\",color:\"success\"},[xi.Closed]:{label:\"已关闭\",color:\"default\"},[xi.Reopened]:{label:\"已重开\",color:\"warning\"}},ght={[Mv.Pending]:{label:\"待评价\",color:\"default\"},[Mv.InProgress]:{label:\"评价中\",color:\"processing\"},[Mv.Submitted]:{label:\"已提交\",color:\"processing\"},[Mv.Approved]:{label:\"已通过\",color:\"success\"},[Mv.Rejected]:{label:\"已驳回\",color:\"error\"}},yht={open:{label:\"待处理\",color:\"default\"},investigating:{label:\"调查中\",color:\"processing\"},confirmed:{label:\"已确认\",color:\"error\"},dismissed:{label:\"已驳回\",color:\"default\"},resolved:{label:\"已解决\",color:\"success\"}},bht={plan:pht,ticket:vht,review:ght,risk:yht,riskLevel:Object.fromEntries(Object.entries(Xfe).map(([e,t])=>[e,{label:t.label,color:t.color}]))},uu=({status:e,statusMap:t,type:r})=>{const n=t||(r?bht[r]:void 0),a=n==null?void 0:n[e];if(!a)return C.jsx(et,{children:e});const i=a.color.startsWith(\"#\")?a.color===\"#52c41a\"?\"success\":a.color===\"#faad14\"?\"warning\":a.color===\"#ff4d4f\"||a.color===\"#cf1322\"?\"error\":a.color===\"#1890ff\"?\"processing\":\"default\":a.color;return C.jsx(et,{color:i,children:a.label})},xht=()=>{const e=La(),t=Ia(),{list:r,total:n}=da(l=>l.plan);m.useEffect(()=>{e(AQe(Si.Free))},[e]),m.useEffect(()=>{e(Yy())},[e]);const a=m.useMemo(()=>[{name:\"keyword\",label:\"关键词\",type:\"input\",placeholder:\"计划标题/需求ID\"},{name:\"status\",label:\"状态\",type:\"select\",placeholder:\"选择状态\",options:[{label:\"草稿\",value:\"draft\"},{label:\"待审批\",value:\"pending_approval\"},{label:\"已审批\",value:\"approved\"},{label:\"进行中\",value:\"in_progress\"},{label:\"已完成\",value:\"completed\"},{label:\"已取消\",value:\"cancelled\"},{label:\"已驳回\",value:\"rejected\"}]},{name:\"userTier\",label:\"用户分层\",type:\"select\",options:[{label:\"A类\",value:\"A\"},{label:\"B类\",value:\"B\"},{label:\"C类\",value:\"C\"}]}],[]),i=m.useMemo(()=>[{title:\"计划标题\",dataIndex:\"requirementTitle\",key:\"requirementTitle\",width:200,ellipsis:!0},{title:\"类型\",dataIndex:\"type\",key:\"type\",width:80,render:l=>C.jsx(uu,{status:l,type:\"plan\"})},{title:\"用户分层\",dataIndex:\"userTier\",key:\"userTier\",width:90,render:l=>C.jsx(uu,{status:l,statusMap:{A:{label:\"A类\",color:\"processing\"},B:{label:\"B类\",color:\"success\"},C:{label:\"C类\",color:\"warning\"}}})},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:100,render:l=>C.jsx(uu,{status:l,type:\"plan\"})},{title:\"额度类型\",key:\"quotaType\",width:120,render:()=>C.jsx(et,{color:\"orange\",children:\"免评不计额度\"})},{title:\"进度\",key:\"progress\",width:120,render:(l,s)=>{const u=s.targetCount>0?Math.round(s.completedCount/s.targetCount*100):0;return C.jsx(Es,{percent:u,size:\"small\"})}},{title:\"目标/完成\",key:\"counts\",width:100,render:(l,s)=>`${s.completedCount}/${s.targetCount}`},{title:\"截止日期\",dataIndex:\"deadline\",key:\"deadline\",width:120,render:l=>l?new Date(l).toLocaleDateString(\"zh-CN\"):\"-\"},{title:\"操作\",key:\"actions\",width:160,render:(l,s)=>C.jsxs(Qt,{size:\"small\",children:[C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{}),onClick:()=>t(`/plan/${s.id}`),children:\"详情\"}),s.status===\"pending_approval\"&&C.jsx(ze,{type:\"link\",size:\"small\",onClick:async()=>{await e(vce(s.id)),vt.success(\"审批通过\"),e(Yy())},children:\"审批\"})]})}],[t,e]),o=m.useCallback(async l=>(e(_Qe({page:l.page,pageSize:l.pageSize})),{list:r,total:n}),[e,r,n]);return C.jsx(Pm,{columns:i,filters:a,onFetch:o,exportable:!0,exportFilename:\"免评计划\",rowKey:\"id\",autoFetch:!1,toolbarExtra:C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),children:\"新建免评计划\"})})},Cht=Object.freeze(Object.defineProperty({__proto__:null,default:xht},Symbol.toStringTag,{value:\"Module\"})),eK={normal:{label:\"正常\",color:\"success\"},blacklisted:{label:\"黑名单\",color:\"error\"},inactive:{label:\"非活跃\",color:\"default\"},pending:{label:\"待审核\",color:\"processing\"}},tK={cooperative:{label:\"可合作\",color:\"success\"},no_quota:{label:\"无名额禁止合作\",color:\"warning\"},blacklisted:{label:\"黑名单禁止合作\",color:\"error\"},paused:{label:\"暂停合作\",color:\"default\"},pending_review:{label:\"待审核\",color:\"processing\"}},rK={US:\"🇺🇸 US\",UK:\"🇬🇧 UK\",DE:\"🇩🇪 DE\",FR:\"🇫🇷 FR\",IT:\"🇮🇹 IT\",ES:\"🇪🇸 ES\",JP:\"🇯🇵 JP\",CA:\"🇨🇦 CA\",AU:\"🇦🇺 AU\",MX:\"🇲🇽 MX\"},Fht={cashapp:\"Cashapp\",paypal:\"PayPal\",venmo:\"Venmo\",zelle:\"Zelle\",bank_transfer:\"银行转账\",gift_card:\"礼品卡\",other:\"其他\"},Sht={IM:\"IM\",EDM:\"EDM\",TEL:\"Phone\"},wht=()=>{const[e,t]=m.useState([]),[r,n]=m.useState(0),[a,i]=m.useState(!1),[o,l]=m.useState([]),[s]=be.useForm(),[u,c]=m.useState({page:1,pageSize:20}),d=m.useCallback(async x=>{i(!0);try{const F=await Or(\"/reviewers\",{page:u.page,pageSize:u.pageSize,...x});t(F.list||[]),n(F.total||0)}catch{vt.error(\"获取测评人列表失败\")}finally{i(!1)}},[u]);m.useEffect(()=>{d()},[d]);const f=m.useCallback(()=>{const x=s.getFieldsValue(),F={};x.keyword&&(F.keyword=x.keyword),x.status&&(F.status=x.status),x.country&&(F.country=x.country),x.cooperationStatus&&(F.cooperationStatus=x.cooperationStatus),x.channels&&(F.channels=x.channels),x.isNegativeReview&&(F.isNegativeReview=x.isNegativeReview),c(S=>({...S,page:1})),d(F)},[s,d]),h=m.useCallback(()=>{s.resetFields(),c(x=>({...x,page:1})),d()},[s,d]),p=m.useCallback(x=>{c({page:x.current||1,pageSize:x.pageSize||20})},[]),v=m.useCallback(async x=>{await sd(`/reviewers/${x}`),vt.success(\"删除成功\"),d()},[d]),g=m.useCallback(x=>{navigator.clipboard.writeText(x).then(()=>vt.success(\"已复制\"))},[]),y=m.useMemo(()=>[{title:\"测评人编号\",dataIndex:\"code\",key:\"code\",width:110,fixed:\"left\",render:x=>C.jsxs(Qt,{size:4,children:[C.jsx(\"a\",{onClick:()=>g(x),style:{fontWeight:500},children:x}),C.jsx(Yu,{style:{color:\"#999\",fontSize:12},onClick:()=>g(x)})]})},{title:\"关联编号\",dataIndex:\"relatedCode\",key:\"relatedCode\",width:110,render:x=>x&&x!==\"-\"?C.jsx(\"a\",{style:{color:\"#1890ff\"},children:x}):C.jsx(\"span\",{style:{color:\"#999\"},children:\"-\"})},{title:\"Joyhub ID\",dataIndex:\"joyhubId\",key:\"joyhubId\",width:100,render:x=>C.jsx(\"code\",{children:x})},{title:\"邮箱\",dataIndex:\"email\",key:\"email\",width:180,ellipsis:!0,render:x=>C.jsx(Dr,{title:x,children:C.jsx(\"span\",{children:x})})},{title:\"电话\",dataIndex:\"phone\",key:\"phone\",width:140,render:x=>C.jsx(\"span\",{style:{fontFamily:\"monospace\"},children:x})},{title:\"用户名\",dataIndex:\"username\",key:\"username\",width:120,ellipsis:!0},{title:\"标签\",dataIndex:\"tags\",key:\"tags\",width:200,render:x=>C.jsxs(Qt,{size:4,wrap:!0,children:[x.slice(0,3).map(F=>C.jsx(et,{color:F.color,style:{fontSize:11},children:F.name},F.id)),x.length>3&&C.jsxs(et,{children:[\"+\",x.length-3]})]})},{title:\"测评渠道\",dataIndex:\"channels\",key:\"channels\",width:100,render:x=>C.jsx(Qt,{size:4,children:x.map(F=>C.jsx(et,{children:Sht[F]||F},F))})},{title:\"Profile链接\",dataIndex:\"profileLink\",key:\"profileLink\",width:90,render:x=>x?C.jsx(Dr,{title:x,children:C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(ade,{}),onClick:()=>window.open(x,\"_blank\")})}):C.jsx(\"span\",{style:{color:\"#999\"},children:\"-\"})},{title:\"Profile Name\",dataIndex:\"profileName\",key:\"profileName\",width:120,ellipsis:!0,render:x=>x||C.jsx(\"span\",{style:{color:\"#999\"},children:\"-\"})},{title:\"国家\",dataIndex:\"country\",key:\"country\",width:80,render:x=>rK[x]||x},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:80,render:x=>{const F=eK[x];return C.jsx(et,{color:F==null?void 0:F.color,children:(F==null?void 0:F.label)||x})}},{title:\"APP链接产品\",dataIndex:\"linkedProducts\",key:\"linkedProducts\",width:150,render:x=>C.jsxs(Qt,{size:4,wrap:!0,children:[x.slice(0,2).map(F=>C.jsx(et,{children:F},F)),x.length>2&&C.jsxs(et,{children:[\"+\",x.length-2]})]})},{title:\"回评订单数\",dataIndex:\"replyOrderCount\",key:\"replyOrderCount\",width:100,align:\"right\"},{title:\"可测评次数\",dataIndex:\"availableReviewCount\",key:\"availableReviewCount\",width:100,align:\"right\",render:x=>C.jsx(\"span\",{style:{color:x>0?\"#52c41a\":\"#999\"},children:x})},{title:\"可免评次数\",dataIndex:\"availableFreeCount\",key:\"availableFreeCount\",width:100,align:\"right\",render:x=>C.jsx(\"span\",{style:{color:x>0?\"#1890ff\":\"#999\"},children:x})},{title:\"可上评次数\",dataIndex:\"availableUploadCount\",key:\"availableUploadCount\",width:100,align:\"right\",render:x=>C.jsx(\"span\",{style:{color:x>0?\"#722ed1\":\"#999\"},children:x})},{title:\"总测评数\",dataIndex:\"totalReviewCount\",key:\"totalReviewCount\",width:90,align:\"right\"},{title:\"总免评数\",dataIndex:\"totalFreeCount\",key:\"totalFreeCount\",width:90,align:\"right\"},{title:\"总绑定评论数\",dataIndex:\"totalBoundReviewCount\",key:\"totalBoundReviewCount\",width:110,align:\"right\"},{title:\"总待回评数\",dataIndex:\"totalPendingReplyCount\",key:\"totalPendingReplyCount\",width:110,align:\"right\",render:x=>C.jsx(\"span\",{style:{color:x>0?\"#fa8c16\":\"#999\"},children:x})},{title:\"推广订单完成率\",dataIndex:\"orderCompletionRate\",key:\"orderCompletionRate\",width:140,render:x=>C.jsx(Es,{percent:Math.round(x*100),size:\"small\",status:x>=.8?\"success\":x>=.5?\"normal\":\"exception\",style:{width:100}}),sorter:!0},{title:\"订单留评率\",dataIndex:\"orderReviewRate\",key:\"orderReviewRate\",width:120,render:x=>C.jsx(Es,{percent:Math.round(x*100),size:\"small\",status:x>=.6?\"success\":x>=.3?\"normal\":\"exception\",style:{width:100}}),sorter:!0},{title:\"总掉评数\",dataIndex:\"totalDroppedReviewCount\",key:\"totalDroppedReviewCount\",width:90,align:\"right\",render:x=>C.jsx(\"span\",{style:{color:x>0?\"#ff4d4f\":\"#999\"},children:x})},{title:\"掉评率\",dataIndex:\"droppedReviewRate\",key:\"droppedReviewRate\",width:100,render:x=>C.jsx(\"span\",{style:{color:x>.3?\"#ff4d4f\":x>0?\"#faad14\":\"#52c41a\"},children:x>0?`${(x*100).toFixed(1)}%`:\"0%\"})},{title:\"退款订单数\",dataIndex:\"refundOrderCount\",key:\"refundOrderCount\",width:100,align:\"right\",render:x=>C.jsx(\"span\",{style:{color:x>0?\"#ff4d4f\":\"#999\"},children:x})},{title:\"取消订单数\",dataIndex:\"cancelOrderCount\",key:\"cancelOrderCount\",width:100,align:\"right\",render:x=>C.jsx(\"span\",{style:{color:x>0?\"#fa8c16\":\"#999\"},children:x})},{title:\"是否差评\",dataIndex:\"isNegativeReview\",key:\"isNegativeReview\",width:80,render:x=>x?C.jsx(et,{color:\"error\",children:\"是\"}):C.jsx(et,{color:\"success\",children:\"否\"})},{title:\"合作状态\",dataIndex:\"cooperationStatus\",key:\"cooperationStatus\",width:130,render:x=>{const F=tK[x];return C.jsx(et,{color:F==null?void 0:F.color,children:(F==null?void 0:F.label)||x})}},{title:\"催评次数\",dataIndex:\"urgeReviewCount\",key:\"urgeReviewCount\",width:90,align:\"right\"},{title:\"合作次数\",dataIndex:\"cooperationCount\",key:\"cooperationCount\",width:90,align:\"right\"},{title:\"最近回复\",dataIndex:\"lastReplyAt\",key:\"lastReplyAt\",width:120,render:x=>x?new Date(x).toLocaleDateString(\"zh-CN\"):\"-\",sorter:!0},{title:\"返款方式\",dataIndex:\"paymentMethod\",key:\"paymentMethod\",width:100,render:x=>Fht[x]||x},{title:\"返款账号\",dataIndex:\"paymentAccount\",key:\"paymentAccount\",width:120,ellipsis:!0,render:x=>C.jsx(Dr,{title:x,children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{children:x}),C.jsx(Yu,{style:{color:\"#999\",fontSize:12},onClick:()=>g(x)})]})})},{title:\"对接账号\",dataIndex:\"linkedAccount\",key:\"linkedAccount\",width:140,ellipsis:!0,render:x=>x||C.jsx(\"span\",{style:{color:\"#999\"},children:\"-\"})},{title:\"备注\",dataIndex:\"notes\",key:\"notes\",width:150,ellipsis:!0,render:x=>x||C.jsx(\"span\",{style:{color:\"#999\"},children:\"-\"})},{title:\"创建时间\",dataIndex:\"createdAt\",key:\"createdAt\",width:110,render:x=>new Date(x).toLocaleDateString(\"zh-CN\")},{title:\"更新时间\",dataIndex:\"updatedAt\",key:\"updatedAt\",width:110,render:x=>new Date(x).toLocaleDateString(\"zh-CN\")},{title:\"创建人\",dataIndex:\"createdBy\",key:\"createdBy\",width:80},{title:\"操作\",key:\"actions\",width:140,fixed:\"right\",render:(x,F)=>C.jsxs(Qt,{size:\"small\",children:[C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{}),href:`/reviewer/${F.id}`,children:\"详情\"}),C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(od,{}),href:`/reviewer/edit/${F.id}`,children:\"编辑\"}),C.jsx(V6,{title:\"确定删除该测评人?\",onConfirm:()=>v(F.id),okText:\"确定\",cancelText:\"取消\",children:C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,icon:C.jsx(Ix,{}),children:\"删除\"})})]})}],[g,v]),b=m.useMemo(()=>C.jsx(hr,{size:\"small\",style:{marginBottom:16},children:C.jsxs(be,{form:s,layout:\"inline\",size:\"small\",children:[C.jsx(be.Item,{name:\"keyword\",children:C.jsx(ut,{placeholder:\"编号/用户名/邮箱搜索\",prefix:C.jsx(xa,{}),style:{width:200},allowClear:!0})}),C.jsx(be.Item,{name:\"status\",children:C.jsx(Qe,{placeholder:\"状态\",style:{width:120},allowClear:!0,children:Object.entries(eK).map(([x,F])=>C.jsx(Qe.Option,{value:x,children:F.label},x))})}),C.jsx(be.Item,{name:\"country\",children:C.jsx(Qe,{placeholder:\"国家\",style:{width:120},allowClear:!0,children:Object.entries(rK).map(([x,F])=>C.jsx(Qe.Option,{value:x,children:F},x))})}),C.jsx(be.Item,{name:\"cooperationStatus\",children:C.jsx(Qe,{placeholder:\"合作状态\",style:{width:150},allowClear:!0,children:Object.entries(tK).map(([x,F])=>C.jsx(Qe.Option,{value:x,children:F.label},x))})}),C.jsx(be.Item,{name:\"channels\",children:C.jsxs(Qe,{placeholder:\"测评渠道\",style:{width:120},allowClear:!0,children:[C.jsx(Qe.Option,{value:\"IM\",children:\"IM\"}),C.jsx(Qe.Option,{value:\"EDM\",children:\"EDM\"}),C.jsx(Qe.Option,{value:\"TEL\",children:\"Phone\"})]})}),C.jsx(be.Item,{name:\"isNegativeReview\",children:C.jsxs(Qe,{placeholder:\"是否差评\",style:{width:110},allowClear:!0,children:[C.jsx(Qe.Option,{value:\"true\",children:\"是\"}),C.jsx(Qe.Option,{value:\"false\",children:\"否\"})]})}),C.jsx(be.Item,{children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:f,children:\"搜索\"}),C.jsx(ze,{icon:C.jsx(Sm,{}),onClick:h,children:\"重置\"})]})})]})}),[s,f,h]);return C.jsxs(\"div\",{children:[b,C.jsx(hr,{size:\"small\",title:\"测评人管理\",extra:C.jsxs(Qt,{children:[C.jsx(ze,{icon:C.jsx(kx,{}),children:\"导出\"}),C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),href:\"/reviewer/create\",children:\"新建测评人\"})]}),children:C.jsx(Gr,{columns:y,dataSource:e,rowKey:\"id\",loading:a,scroll:{x:3800},size:\"small\",pagination:{current:u.page,pageSize:u.pageSize,total:r,showSizeChanger:!0,showQuickJumper:!0,showTotal:x=>`共 ${x} 条`},onChange:x=>p(x),rowSelection:{selectedRowKeys:o,onChange:l}})})]})},Eht=Object.freeze(Object.defineProperty({__proto__:null,default:wht},Symbol.toStringTag,{value:\"Module\"})),Dht=({tabs:e,activeKey:t,onChange:r})=>{var s;const[n,a]=m.useState(((s=e[0])==null?void 0:s.key)||\"\"),i=t??n,o=m.useCallback(u=>{t||a(u),r==null||r(u)},[t,r]),l=m.useMemo(()=>e.map(u=>({key:u.key,label:u.label,children:u.key===i?u.content:null})),[e,i]);return C.jsx(Ig,{activeKey:i,onChange:o,items:l})};function Aht(e){return QU[e]||QU[kn.None]}function nK(e){return mht[e]||{label:\"未知\",color:\"#d9d9d9\"}}function _ht(e){return Xfe[e]||{label:\"未知\",color:\"#d9d9d9\"}}function Tht(e){return{\"#d9d9d9\":\"default\",\"#52c41a\":\"success\",\"#faad14\":\"warning\",\"#ff4d4f\":\"error\",\"#cf1322\":\"error\"}[e]||\"default\"}const PD=({level:e,association:t,flashing:r=!1,showAssociation:n=!1})=>{const a=Aht(e),i=_ht(e),o=Tht(a),l=r&&e===kn.Critical&&t===nc.Strong,s=l?{animation:\"riskBlink 1s ease-in-out infinite\"}:{};return C.jsxs(C.Fragment,{children:[l&&C.jsx(\"style\",{children:`\n @keyframes riskBlink {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.3; }\n }\n `}),C.jsxs(Qt,{size:4,children:[C.jsx(Dr,{title:`风险等级:${i.label}`,children:C.jsx(et,{color:o,style:s,children:i.label})}),n&&t&&C.jsx(Dr,{title:`关联程度:${nK(t).label}`,children:C.jsx(et,{color:t===nc.Strong?\"error\":\"warning\",style:t===nc.Strong&&l?s:{},children:nK(t).label})})]})]})},aK={normal:{label:\"正常\",color:\"success\"},blacklisted:{label:\"黑名单\",color:\"error\"},inactive:{label:\"非活跃\",color:\"default\"},pending:{label:\"待审核\",color:\"processing\"}},iK={cooperative:{label:\"可合作\",color:\"success\"},no_quota:{label:\"无名额禁止合作\",color:\"warning\"},blacklisted:{label:\"黑名单禁止合作\",color:\"error\"},paused:{label:\"暂停合作\",color:\"default\"},pending_review:{label:\"待审核\",color:\"processing\"}},Iht={US:\"🇺🇸 US\",UK:\"🇬🇧 UK\",DE:\"🇩🇪 DE\",FR:\"🇫🇷 FR\",IT:\"🇮🇹 IT\",ES:\"🇪🇸 ES\",JP:\"🇯🇵 JP\",CA:\"🇨🇦 CA\"},kht={cashapp:\"Cashapp\",paypal:\"PayPal\",venmo:\"Venmo\",zelle:\"Zelle\",bank_transfer:\"银行转账\",gift_card:\"礼品卡\"},Rht=()=>{var x,F,S,E;const e=Ia(),{id:t}=$g(),[r,n]=m.useState(null),[a,i]=m.useState(!1);m.useEffect(()=>{t&&(i(!0),Or(`/reviewers/${t}`).then(w=>n(w)).catch(()=>vt.error(\"获取测评人详情失败\")).finally(()=>i(!1)))},[t]);const o=w=>{navigator.clipboard.writeText(w).then(()=>vt.success(\"已复制\"))};if(a)return C.jsx(hr,{loading:!0});if(!r)return C.jsx(hr,{children:C.jsx(\"p\",{children:\"测评人不存在\"})});const l=C.jsxs(Ne,{bordered:!0,column:2,size:\"small\",children:[C.jsx(Ne.Item,{label:\"测评人编号\",children:C.jsxs(Qt,{size:4,children:[r.code,C.jsx(Yu,{style:{color:\"#1890ff\"},onClick:()=>o(r.code)})]})}),C.jsx(Ne.Item,{label:\"关联编号\",children:r.relatedCode&&r.relatedCode!==\"-\"?C.jsx(\"a\",{children:r.relatedCode}):C.jsx(\"span\",{children:\"-\"})}),C.jsx(Ne.Item,{label:\"Joyhub ID\",children:C.jsx(\"code\",{children:r.joyhubId})}),C.jsx(Ne.Item,{label:\"邮箱\",children:C.jsxs(Qt,{size:4,children:[r.email,C.jsx(Yu,{style:{color:\"#1890ff\"},onClick:()=>o(r.email)})]})}),C.jsx(Ne.Item,{label:\"电话\",children:r.phone}),C.jsx(Ne.Item,{label:\"用户名\",children:r.username}),C.jsx(Ne.Item,{label:\"标签\",span:2,children:C.jsx(Qt,{size:4,wrap:!0,children:r.tags.map(w=>C.jsx(et,{color:w.color,children:w.name},w.id))})}),C.jsx(Ne.Item,{label:\"测评渠道\",children:C.jsx(Qt,{size:4,children:r.channels.map(w=>C.jsx(et,{children:w},w))})}),C.jsx(Ne.Item,{label:\"Profile链接\",children:r.profileLink?C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(ade,{}),onClick:()=>window.open(r.profileLink,\"_blank\"),children:\"打开\"}):\"-\"}),C.jsx(Ne.Item,{label:\"Profile Name\",children:r.profileName||\"-\"}),C.jsx(Ne.Item,{label:\"国家\",children:Iht[r.country]||r.country}),C.jsx(Ne.Item,{label:\"状态\",children:C.jsx(et,{color:(x=aK[r.status])==null?void 0:x.color,children:(F=aK[r.status])==null?void 0:F.label})}),C.jsx(Ne.Item,{label:\"合作状态\",children:C.jsx(et,{color:(S=iK[r.cooperationStatus])==null?void 0:S.color,children:(E=iK[r.cooperationStatus])==null?void 0:E.label})}),C.jsx(Ne.Item,{label:\"是否差评\",children:C.jsx(et,{color:r.isNegativeReview?\"error\":\"success\",children:r.isNegativeReview?\"是\":\"否\"})}),C.jsx(Ne.Item,{label:\"APP链接产品\",span:2,children:C.jsx(Qt,{size:4,wrap:!0,children:r.linkedProducts.map(w=>C.jsx(et,{children:w},w))})}),C.jsx(Ne.Item,{label:\"返款方式\",children:kht[r.paymentMethod]||r.paymentMethod}),C.jsx(Ne.Item,{label:\"返款账号\",children:C.jsxs(Qt,{size:4,children:[r.paymentAccount,C.jsx(Yu,{style:{color:\"#1890ff\"},onClick:()=>o(r.paymentAccount)})]})}),C.jsx(Ne.Item,{label:\"对接账号\",children:r.linkedAccount?C.jsxs(Qt,{size:4,children:[r.linkedAccount,C.jsx(Yu,{style:{color:\"#1890ff\"},onClick:()=>o(r.linkedAccount)})]}):\"-\"}),C.jsx(Ne.Item,{label:\"备注\",span:2,children:r.notes||\"-\"}),C.jsx(Ne.Item,{label:\"创建人\",children:r.createdBy}),C.jsx(Ne.Item,{label:\"创建时间\",children:new Date(r.createdAt).toLocaleString(\"zh-CN\")}),C.jsx(Ne.Item,{label:\"更新时间\",children:new Date(r.updatedAt).toLocaleString(\"zh-CN\")}),C.jsx(Ne.Item,{label:\"最近回复\",children:r.lastReplyAt?new Date(r.lastReplyAt).toLocaleString(\"zh-CN\"):\"-\"})]}),s=C.jsxs(Ne,{bordered:!0,column:2,size:\"small\",title:\"额度信息\",children:[C.jsx(Ne.Item,{label:\"可测评次数\",children:C.jsx(\"span\",{style:{color:r.availableReviewCount>0?\"#52c41a\":\"#999\",fontWeight:600},children:r.availableReviewCount})}),C.jsx(Ne.Item,{label:\"可免评次数\",children:C.jsx(\"span\",{style:{color:r.availableFreeCount>0?\"#1890ff\":\"#999\",fontWeight:600},children:r.availableFreeCount})}),C.jsx(Ne.Item,{label:\"可上评次数\",children:C.jsx(\"span\",{style:{color:r.availableUploadCount>0?\"#722ed1\":\"#999\",fontWeight:600},children:r.availableUploadCount})}),C.jsx(Ne.Item,{label:\"回评订单数\",children:r.replyOrderCount}),C.jsx(Ne.Item,{label:\"总测评数\",children:r.totalReviewCount}),C.jsx(Ne.Item,{label:\"总免评数\",children:r.totalFreeCount}),C.jsx(Ne.Item,{label:\"总绑定评论数\",children:r.totalBoundReviewCount}),C.jsx(Ne.Item,{label:\"总待回评数\",children:C.jsx(\"span\",{style:{color:r.totalPendingReplyCount>0?\"#fa8c16\":\"#999\"},children:r.totalPendingReplyCount})})]}),u=C.jsxs(Ne,{bordered:!0,column:2,size:\"small\",title:\"订单与留评统计\",children:[C.jsx(Ne.Item,{label:\"推广订单完成率\",children:C.jsx(Es,{percent:Math.round(r.orderCompletionRate*100),status:r.orderCompletionRate>=.8?\"success\":r.orderCompletionRate>=.5?\"normal\":\"exception\",style:{width:200}})}),C.jsx(Ne.Item,{label:\"订单留评率\",children:C.jsx(Es,{percent:Math.round(r.orderReviewRate*100),status:r.orderReviewRate>=.6?\"success\":r.orderReviewRate>=.3?\"normal\":\"exception\",style:{width:200}})}),C.jsx(Ne.Item,{label:\"总掉评数\",children:C.jsx(\"span\",{style:{color:r.totalDroppedReviewCount>0?\"#ff4d4f\":\"#999\"},children:r.totalDroppedReviewCount})}),C.jsx(Ne.Item,{label:\"掉评率\",children:C.jsxs(\"span\",{style:{color:r.droppedReviewRate>.3?\"#ff4d4f\":r.droppedReviewRate>0?\"#faad14\":\"#52c41a\"},children:[(r.droppedReviewRate*100).toFixed(1),\"%\"]})}),C.jsx(Ne.Item,{label:\"退款订单数\",children:C.jsx(\"span\",{style:{color:r.refundOrderCount>0?\"#ff4d4f\":\"#999\"},children:r.refundOrderCount})}),C.jsx(Ne.Item,{label:\"取消订单数\",children:C.jsx(\"span\",{style:{color:r.cancelOrderCount>0?\"#fa8c16\":\"#999\"},children:r.cancelOrderCount})}),C.jsx(Ne.Item,{label:\"催评次数\",children:r.urgeReviewCount}),C.jsx(Ne.Item,{label:\"合作次数\",children:r.cooperationCount})]}),c=[{title:\"订单号\",dataIndex:\"orderNo\",key:\"orderNo\",width:180,render:w=>C.jsx(\"code\",{children:w})},{title:\"店铺名\",dataIndex:\"storeName\",key:\"storeName\",width:120},{title:\"产品名\",dataIndex:\"productName\",key:\"productName\",width:150},{title:\"订单类型\",dataIndex:\"orderType\",key:\"orderType\",width:90,render:w=>{const D={测评:\"blue\",免评:\"orange\",回评:\"green\"};return C.jsx(et,{color:D[w],children:w})}},{title:\"订单状态\",dataIndex:\"orderStatus\",key:\"orderStatus\",width:100,render:w=>{const D={待发货:\"default\",已发货:\"processing\",已送达:\"success\",已完成:\"success\",已取消:\"error\",已退款:\"warning\"};return C.jsx(et,{color:D[w],children:w})}},{title:\"推广状态\",dataIndex:\"promotionStatus\",key:\"promotionStatus\",width:100,render:w=>{const D={待执行:\"default\",进行中:\"processing\",已完成:\"success\",已取消:\"error\"};return C.jsx(et,{color:D[w],children:w})}},{title:\"订购时间\",dataIndex:\"orderDate\",key:\"orderDate\",width:120,render:w=>w?new Date(w).toLocaleDateString(\"zh-CN\"):\"-\"}],d=C.jsx(Gr,{columns:c,dataSource:r.orderDetails,rowKey:\"id\",pagination:!1,size:\"small\"}),f=[{title:\"类型\",dataIndex:\"type\",key:\"type\",width:100,render:w=>C.jsx(et,{color:w===\"review\"?\"blue\":\"orange\",children:w===\"review\"?\"测评\":\"免评\"})},{title:\"变动\",dataIndex:\"change\",key:\"change\",width:80,render:w=>C.jsx(\"span\",{style:{color:w>0?\"#52c41a\":\"#ff4d4f\"},children:w>0?`+${w}`:w})},{title:\"余额\",dataIndex:\"balance\",key:\"balance\",width:80},{title:\"原因\",dataIndex:\"reason\",key:\"reason\",ellipsis:!0},{title:\"时间\",dataIndex:\"timestamp\",key:\"timestamp\",width:160,render:w=>w?new Date(w).toLocaleString(\"zh-CN\"):\"-\"},{title:\"操作人ID\",dataIndex:\"operatorId\",key:\"operatorId\",width:120}],h=r.quotaLedger?C.jsx(Gr,{columns:f,dataSource:r.quotaLedger,rowKey:\"id\",pagination:!1,size:\"small\"}):C.jsx(\"p\",{children:\"暂无额度台账\"}),p=[{title:\"渠道\",dataIndex:\"channel\",key:\"channel\",width:100,render:w=>C.jsx(et,{children:w})},{title:\"方向\",dataIndex:\"direction\",key:\"direction\",width:80,render:w=>C.jsx(et,{color:w===\"inbound\"?\"blue\":\"green\",children:w===\"inbound\"?\"接收\":\"发送\"})},{title:\"内容\",dataIndex:\"content\",key:\"content\",ellipsis:!0},{title:\"操作人\",dataIndex:\"operatorName\",key:\"operatorName\",width:100},{title:\"时间\",dataIndex:\"timestamp\",key:\"timestamp\",width:160,render:w=>w?new Date(w).toLocaleString(\"zh-CN\"):\"-\"}],v=r.contacts?C.jsx(Gr,{columns:p,dataSource:r.contacts,rowKey:\"id\",pagination:!1,size:\"small\"}):C.jsx(\"p\",{children:\"暂无联系记录\"}),g=[{title:\"风险等级\",dataIndex:\"riskLevel\",key:\"riskLevel\",width:120,render:(w,D)=>C.jsx(PD,{level:w,association:D.association,showAssociation:!0,flashing:!0})},{title:\"事件类型\",dataIndex:\"eventType\",key:\"eventType\",width:120},{title:\"描述\",dataIndex:\"description\",key:\"description\",ellipsis:!0},{title:\"已解决\",dataIndex:\"resolved\",key:\"resolved\",width:80,render:w=>C.jsx(et,{color:w?\"success\":\"error\",children:w?\"已解决\":\"未解决\"})},{title:\"时间\",dataIndex:\"timestamp\",key:\"timestamp\",width:160,render:w=>w?new Date(w).toLocaleString(\"zh-CN\"):\"-\"}],y=r.riskRecords?C.jsx(Gr,{columns:g,dataSource:r.riskRecords,rowKey:\"id\",pagination:!1,size:\"small\"}):C.jsx(\"p\",{children:\"暂无风险记录\"}),b=[{key:\"basic\",label:\"基本信息\",content:l},{key:\"stats\",label:\"额度信息\",content:s},{key:\"rates\",label:\"订单统计\",content:u},{key:\"orders\",label:\"订单详情\",content:d},{key:\"quota\",label:\"额度台账\",content:h},{key:\"contacts\",label:\"联系记录\",content:v},{key:\"risk\",label:\"风险记录\",content:y}];return C.jsxs(\"div\",{children:[C.jsx(ze,{style:{marginBottom:16},onClick:()=>e(-1),children:\"返回列表\"}),C.jsx(Dht,{tabs:b})]})},Mht=Object.freeze(Object.defineProperty({__proto__:null,default:Rht},Symbol.toStringTag,{value:\"Module\"})),{TextArea:Pht}=ut,nT=[{label:\"男\",value:\"男\",color:\"#1890ff\"},{label:\"女\",value:\"女\",color:\"#eb2f96\"},{label:\"LGBTQ\",value:\"LGBTQ\",color:\"#722ed1\"},{label:\"飞机杯\",value:\"飞机杯\",color:\"#fa8c16\"},{label:\"玫瑰花\",value:\"玫瑰花\",color:\"#f5222d\"},{label:\"倒模\",value:\"倒模\",color:\"#13c2c2\"},{label:\"老客\",value:\"老客\",color:\"#52c41a\"},{label:\"新客\",value:\"新客\",color:\"#2f54eb\"},{label:\"高质量买家\",value:\"高质量买家\",color:\"#faad14\"},{label:\"风险买家\",value:\"风险买家\",color:\"#ff4d4f\"},{label:\"免评专用\",value:\"免评专用\",color:\"#9254de\"},{label:\"可测评\",value:\"可测评\",color:\"#73d13d\"}],Oht=()=>{const e=Ia(),[t]=mB(),r=t.get(\"id\"),n=!!r,[a]=be.useForm(),[i,o]=m.useState(!1);m.useEffect(()=>{r&&Or(`/reviewers/${r}`).then(s=>{const u=s;a.setFieldsValue({...u,tags:u.tags.map(c=>c.name),channels:u.channels})})},[r,a]);const l=m.useCallback(async s=>{o(!0);try{const u={};nT.forEach(d=>{u[d.value]=d.color});const c={...s,tags:(s.tags||[]).map((d,f)=>({id:String(f+1),name:d,color:u[d]||\"#1890ff\"}))};n?(await Go(`/reviewers/${r}`,c),vt.success(\"更新成功\")):(await fr(\"/reviewers\",c),vt.success(\"创建成功\")),e(\"/reviewer\")}catch{vt.error(n?\"更新失败\":\"创建失败\")}finally{o(!1)}},[r,n,e]);return C.jsxs(\"div\",{children:[C.jsx(ze,{style:{marginBottom:16},onClick:()=>e(-1),icon:C.jsx(_m,{}),children:\"返回列表\"}),C.jsx(hr,{title:n?\"编辑测评人\":\"新建测评人\",children:C.jsxs(be,{form:a,layout:\"vertical\",onFinish:l,style:{maxWidth:1200},children:[C.jsx(\"h3\",{style:{marginTop:0,marginBottom:16,borderBottom:\"1px solid #f0f0f0\",paddingBottom:8},children:\"基本信息\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"code\",label:\"测评人编号\",rules:[{required:!0,message:\"请输入测评人编号\"}],children:C.jsx(ut,{placeholder:\"CP123456\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"relatedCode\",label:\"关联测评人编号\",children:C.jsx(ut,{placeholder:\"关联编号(可选)\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"joyhubId\",label:\"Joyhub ID\",rules:[{required:!0,message:\"请输入Joyhub ID\"}],children:C.jsx(vn,{style:{width:\"100%\"},placeholder:\"20672625\"})})})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"email\",label:\"邮箱\",rules:[{type:\"email\",message:\"邮箱格式不正确\"}],children:C.jsx(ut,{placeholder:\"xxx@gmail.com\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"phone\",label:\"电话\",children:C.jsx(ut,{placeholder:\"(555) 555-1234\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"username\",label:\"用户名\",children:C.jsx(ut,{placeholder:\"用户名\"})})})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"country\",label:\"国家\",rules:[{required:!0,message:\"请选择国家\"}],children:C.jsxs(Qe,{placeholder:\"选择国家\",children:[C.jsx(Qe.Option,{value:\"US\",children:\"🇺🇸 US\"}),C.jsx(Qe.Option,{value:\"UK\",children:\"🇬🇧 UK\"}),C.jsx(Qe.Option,{value:\"DE\",children:\"🇩🇪 DE\"}),C.jsx(Qe.Option,{value:\"FR\",children:\"🇫🇷 FR\"}),C.jsx(Qe.Option,{value:\"IT\",children:\"🇮🇹 IT\"}),C.jsx(Qe.Option,{value:\"ES\",children:\"🇪🇸 ES\"}),C.jsx(Qe.Option,{value:\"JP\",children:\"🇯🇵 JP\"}),C.jsx(Qe.Option,{value:\"CA\",children:\"🇨🇦 CA\"})]})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"status\",label:\"状态\",initialValue:\"normal\",children:C.jsxs(Qe,{children:[C.jsx(Qe.Option,{value:\"normal\",children:\"正常\"}),C.jsx(Qe.Option,{value:\"blacklisted\",children:\"黑名单\"}),C.jsx(Qe.Option,{value:\"inactive\",children:\"非活跃\"}),C.jsx(Qe.Option,{value:\"pending\",children:\"待审核\"})]})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"cooperationStatus\",label:\"合作状态\",initialValue:\"cooperative\",children:C.jsxs(Qe,{children:[C.jsx(Qe.Option,{value:\"cooperative\",children:\"可合作\"}),C.jsx(Qe.Option,{value:\"no_quota\",children:\"无名额禁止合作\"}),C.jsx(Qe.Option,{value:\"blacklisted\",children:\"黑名单禁止合作\"}),C.jsx(Qe.Option,{value:\"paused\",children:\"暂停合作\"}),C.jsx(Qe.Option,{value:\"pending_review\",children:\"待审核\"})]})})})]}),C.jsx(\"h3\",{style:{marginTop:24,marginBottom:16,borderBottom:\"1px solid #f0f0f0\",paddingBottom:8},children:\"标签与渠道\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"tags\",label:\"标签(选择+自定义)\",children:C.jsx(Qe,{mode:\"tags\",placeholder:\"选择或输入自定义标签\",tagRender:s=>{const{label:u,value:c,closable:d,onClose:f}=s,h=nT.find(v=>v.value===c),p=(h==null?void 0:h.color)||\"#1890ff\";return C.jsx(et,{color:p,closable:d,onClose:f,style:{marginRight:3},children:u})},options:nT.map(s=>({label:s.label,value:s.value}))})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"channels\",label:\"测评渠道\",children:C.jsxs(Qe,{mode:\"multiple\",placeholder:\"选择渠道\",children:[C.jsx(Qe.Option,{value:\"IM\",children:\"IM\"}),C.jsx(Qe.Option,{value:\"EDM\",children:\"EDM\"}),C.jsx(Qe.Option,{value:\"TEL\",children:\"Phone\"})]})})})]}),C.jsx(\"h3\",{style:{marginTop:24,marginBottom:16,borderBottom:\"1px solid #f0f0f0\",paddingBottom:8},children:\"Profile 信息\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"profileLink\",label:\"Profile 链接\",children:C.jsx(ut,{placeholder:\"https://www.amazon.com/gp/profile/...\"})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"profileName\",label:\"Profile Name\",children:C.jsx(ut,{placeholder:\"Profile Name\"})})})]}),C.jsx(\"h3\",{style:{marginTop:24,marginBottom:16,borderBottom:\"1px solid #f0f0f0\",paddingBottom:8},children:\"额度信息\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"availableReviewCount\",label:\"可测评次数\",initialValue:0,children:C.jsx(vn,{min:0,style:{width:\"100%\"}})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"availableFreeCount\",label:\"可免评次数\",initialValue:0,children:C.jsx(vn,{min:0,style:{width:\"100%\"}})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"availableUploadCount\",label:\"可上评次数\",initialValue:0,children:C.jsx(vn,{min:0,style:{width:\"100%\"}})})}),C.jsx(Se,{span:6,children:C.jsx(be.Item,{name:\"isNegativeReview\",label:\"是否差评\",initialValue:!1,children:C.jsxs(Qe,{children:[C.jsx(Qe.Option,{value:!1,children:\"否\"}),C.jsx(Qe.Option,{value:!0,children:\"是\"})]})})})]}),C.jsx(\"h3\",{style:{marginTop:24,marginBottom:16,borderBottom:\"1px solid #f0f0f0\",paddingBottom:8},children:\"返款信息\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"paymentMethod\",label:\"返款方式\",children:C.jsxs(Qe,{placeholder:\"选择返款方式\",children:[C.jsx(Qe.Option,{value:\"cashapp\",children:\"Cashapp\"}),C.jsx(Qe.Option,{value:\"paypal\",children:\"PayPal\"}),C.jsx(Qe.Option,{value:\"venmo\",children:\"Venmo\"}),C.jsx(Qe.Option,{value:\"zelle\",children:\"Zelle\"}),C.jsx(Qe.Option,{value:\"bank_transfer\",children:\"银行转账\"}),C.jsx(Qe.Option,{value:\"gift_card\",children:\"礼品卡\"})]})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"paymentAccount\",label:\"返款账号\",children:C.jsx(ut,{placeholder:\"返款账号\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"linkedAccount\",label:\"对接账号\",children:C.jsx(ut,{placeholder:\"对接账号\"})})})]}),C.jsx(\"h3\",{style:{marginTop:24,marginBottom:16,borderBottom:\"1px solid #f0f0f0\",paddingBottom:8},children:\"其他信息\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"linkedProducts\",label:\"APP链接过的产品\",children:C.jsxs(Qe,{mode:\"tags\",placeholder:\"输入产品名回车添加\",children:[C.jsx(Qe.Option,{value:\"黑武士三代\",children:\"黑武士三代\"}),C.jsx(Qe.Option,{value:\"牡丹\",children:\"牡丹\"}),C.jsx(Qe.Option,{value:\"加特林\",children:\"加特林\"}),C.jsx(Qe.Option,{value:\"自由人\",children:\"自由人\"}),C.jsx(Qe.Option,{value:\"魔杖\",children:\"魔杖\"})]})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"notes\",label:\"备注\",children:C.jsx(Pht,{rows:3,placeholder:\"备注信息\"})})})]}),C.jsx(be.Item,{style:{marginTop:24},children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",htmlType:\"submit\",icon:C.jsx(ED,{}),loading:i,children:n?\"保存修改\":\"创建\"}),C.jsx(ze,{onClick:()=>e(-1),children:\"取消\"})]})})]})})]})},Bht=Object.freeze(Object.defineProperty({__proto__:null,default:Oht},Symbol.toStringTag,{value:\"Module\"})),{RangePicker:vh}=Wl,Nht=[\"手机配件\",\"家居用品\",\"美妆护肤\",\"电子产品\",\"户外运动\",\"厨房用品\",\"宠物用品\",\"汽车配件\",\"玩具\",\"服装鞋帽\"],$ht=[\"ShopA-US\",\"ShopB-UK\",\"ShopC-JP\",\"ShopD-DE\",\"ShopE-CA\",\"ShopF-FR\",\"ShopG-IT\",\"ShopH-ES\"],Lht=[\"青春之吻T-粉色-新APP\",\"无线蓝牙耳机-黑色\",\"手机支架-银色\",\"LED台灯-白色\",\"瑜伽垫-紫色\",\"保温杯-不锈钢\"],jht=[\"张运营\",\"李运营\",\"王运营\",\"赵运营\",\"钱运营\",\"孙运营\",\"周运营\",\"吴运营\"],zht=[\"张经理\",\"李经理\",\"王经理\",\"赵经理\"],Hht=[\"张财务\",\"李财务\",\"王财务\"],Vht=[\"Alice\",\"Bob\",\"Carol\",\"David\",\"Eve\",\"Frank\"],Wht=[\"1星\",\"2星\",\"3星\",\"4星\",\"5星\"],Ght=({filters:e,onFiltersChange:t,onSearch:r,onReset:n})=>{const[a,i]=le.useState(!1),o=(u,c)=>{t({...e,[u]:c||void 0})},l=C.jsxs(C.Fragment,{children:[C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"订单ID/回评ID/订单号\",value:e.searchKeyword,onChange:u=>o(\"searchKeyword\",u.target.value),onPressEnter:r,allowClear:!0})}),C.jsx(Se,{span:3,children:C.jsx(Qe,{placeholder:\"国家\",value:e.country,onChange:u=>o(\"country\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:Object.values(nr).map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:3,children:C.jsx(Qe,{placeholder:\"类目\",value:e.category,onChange:u=>o(\"category\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:Nht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:3,children:C.jsx(Qe,{placeholder:\"店铺\",value:e.shop,onChange:u=>o(\"shop\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:$ht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:3,children:C.jsx(Qe,{placeholder:\"测评单状态\",value:e.replyOrderStatus,onChange:u=>o(\"replyOrderStatus\",u),allowClear:!0,style:{width:\"100%\"},options:Object.values(Kt).map(u=>({label:{PENDING_UPLOAD:\"待上传回评\",PENDING_CONFIRM:\"待回评确认\",REVIEWED:\"已回评\"}[u]||u,value:u}))})}),C.jsx(Se,{span:3,children:C.jsx(Qe,{placeholder:\"订单状态\",value:e.orderStatus,onChange:u=>o(\"orderStatus\",u),allowClear:!0,style:{width:\"100%\"},options:Object.values(ar).map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:3,children:C.jsx(Qe,{placeholder:\"返款状态\",value:e.refundStatus,onChange:u=>o(\"refundStatus\",u),allowClear:!0,style:{width:\"100%\"},options:Object.values(ln).map(u=>({label:{PENDING_REFUND:\"待返款\",PENDING_AUDIT:\"待审核\",AUDIT_FAILED:\"审核不通过\",REFUND_SUCCESS:\"返款成功\",REFUND_LOCKED:\"锁定中\"}[u]||u,value:u}))})}),C.jsx(Se,{span:2,children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:r,children:\"查询\"}),C.jsx(ze,{icon:C.jsx(Sm,{}),onClick:n,children:\"重置\"})]})})]}),s=C.jsxs(C.Fragment,{children:[C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"售后来源\",value:e.channel,onChange:u=>o(\"channel\",u),allowClear:!0,style:{width:\"100%\"},options:Object.values(tr).map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"测评产品\",value:e.product,onChange:u=>o(\"product\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:Lht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"评论状态\",value:e.commentStatus,onChange:u=>o(\"commentStatus\",u),allowClear:!0,style:{width:\"100%\"},options:Object.values(or).map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"是否免评\",value:e.isFreeReview,onChange:u=>o(\"isFreeReview\",u),allowClear:!0,style:{width:\"100%\"},options:[{label:\"是\",value:!0},{label:\"否\",value:!1}]})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"返款方案\",value:e.refundScheme,onChange:u=>o(\"refundScheme\",u),allowClear:!0,style:{width:\"100%\"},options:Object.values(cr).map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"申请人\",value:e.applicant,onChange:u=>o(\"applicant\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:jht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"请款人\",value:e.paymentApplicant,onChange:u=>o(\"paymentApplicant\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:Hht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"上评人\",value:e.reviewer,onChange:u=>o(\"reviewer\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:Vht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"运营人员\",value:e.operators,onChange:u=>o(\"operators\",u),allowClear:!0,showSearch:!0,style:{width:\"100%\"},options:zht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"评分星级\",value:e.starRating,onChange:u=>o(\"starRating\",u),allowClear:!0,style:{width:\"100%\"},options:Wht.map(u=>({label:u,value:u}))})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"单前返\",value:e.isPreRefund,onChange:u=>o(\"isPreRefund\",u),allowClear:!0,style:{width:\"100%\"},options:[{label:\"是\",value:!0},{label:\"否\",value:!1}]})}),C.jsx(Se,{span:4,children:C.jsx(Qe,{placeholder:\"是否带手续费\",value:e.includeFee,onChange:u=>o(\"includeFee\",u),allowClear:!0,style:{width:\"100%\"},options:[{label:\"是\",value:!0},{label:\"否\",value:!1}]})}),C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"返款ID搜索\",value:e.refundId,onChange:u=>o(\"refundId\",u.target.value),allowClear:!0})}),C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"评论ID搜索\",value:e.commentIdSearch,onChange:u=>o(\"commentIdSearch\",u.target.value),allowClear:!0})}),C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"返款账户搜索\",value:e.refundAccountSearch,onChange:u=>o(\"refundAccountSearch\",u.target.value),allowClear:!0})}),C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"付款账户搜索\",value:e.paymentAccountSearch,onChange:u=>o(\"paymentAccountSearch\",u.target.value),allowClear:!0})}),C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"Twitter搜索\",value:e.twitterSearch,onChange:u=>o(\"twitterSearch\",u.target.value),allowClear:!0})}),C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"Facebook搜索\",value:e.facebookSearch,onChange:u=>o(\"facebookSearch\",u.target.value),allowClear:!0})}),C.jsx(Se,{span:4,children:C.jsx(ut,{placeholder:\"客户ID搜索\",value:e.customerId,onChange:u=>o(\"customerId\",u.target.value),allowClear:!0})}),C.jsx(Se,{span:8,children:C.jsx(vh,{placeholder:[\"开始时间起\",\"开始时间止\"],style:{width:\"100%\"},onChange:(u,c)=>{c[0]&&c[1]?o(\"startTimeRange\",c):o(\"startTimeRange\",void 0)}})}),C.jsx(Se,{span:8,children:C.jsx(vh,{placeholder:[\"回评时间起\",\"回评时间止\"],style:{width:\"100%\"},onChange:(u,c)=>{c[0]&&c[1]?o(\"replyTimeRange\",c):o(\"replyTimeRange\",void 0)}})}),C.jsx(Se,{span:8,children:C.jsx(vh,{placeholder:[\"完成时间起\",\"完成时间止\"],style:{width:\"100%\"},onChange:(u,c)=>{c[0]&&c[1]?o(\"completedTimeRange\",c):o(\"completedTimeRange\",void 0)}})}),C.jsx(Se,{span:8,children:C.jsx(vh,{placeholder:[\"评论时间起\",\"评论时间止\"],style:{width:\"100%\"},onChange:(u,c)=>{c[0]&&c[1]?o(\"commentTimeRange\",c):o(\"commentTimeRange\",void 0)}})}),C.jsx(Se,{span:8,children:C.jsx(vh,{placeholder:[\"回评确认时间起\",\"回评确认时间止\"],style:{width:\"100%\"},onChange:(u,c)=>{c[0]&&c[1]?o(\"replyConfirmTimeRange\",c):o(\"replyConfirmTimeRange\",void 0)}})}),C.jsx(Se,{span:8,children:C.jsx(vh,{placeholder:[\"订单时间起\",\"订单时间止\"],style:{width:\"100%\"},onChange:(u,c)=>{c[0]&&c[1]?o(\"orderTimeRange\",c):o(\"orderTimeRange\",void 0)}})}),C.jsx(Se,{span:8,children:C.jsx(vh,{placeholder:[\"返款时间起\",\"返款时间止\"],style:{width:\"100%\"},onChange:(u,c)=>{c[0]&&c[1]?o(\"returnTimeRange\",c):o(\"returnTimeRange\",void 0)}})})]});return C.jsxs(\"div\",{style:{background:\"#fff\",padding:16,borderRadius:8,marginBottom:16},children:[C.jsx(sr,{gutter:[8,8],align:\"middle\",children:l}),C.jsx(g3e,{activeKey:a?[\"advanced\"]:[],onChange:()=>i(!a),ghost:!0,style:{marginTop:8},items:[{key:\"advanced\",label:a?\"收起筛选\":\"更多筛选\",children:C.jsx(sr,{gutter:[8,8],children:s})}]})]})},Uht={[Kt.PENDING_UPLOAD]:{label:\"待上传回评\",color:\"default\"},[Kt.PENDING_CONFIRM]:{label:\"待回评确认\",color:\"processing\"},[Kt.REVIEWED]:{label:\"已回评\",color:\"success\"}},Kht={[ar.SHIPPED]:{label:\"Shipped\",color:\"processing\"},[ar.PENDING]:{label:\"Pending\",color:\"default\"},[ar.DELIVERED]:{label:\"Delivered\",color:\"success\"},[ar.CANCELLED]:{label:\"Cancelled\",color:\"error\"}},Yht={[ln.PENDING_REFUND]:{label:\"待返款\",color:\"default\"},[ln.PENDING_AUDIT]:{label:\"待审核\",color:\"processing\"},[ln.AUDIT_FAILED]:{label:\"审核不通过\",color:\"error\"},[ln.REFUND_SUCCESS]:{label:\"返款成功\",color:\"success\"},[ln.REFUND_LOCKED]:{label:\"锁定中\",color:\"warning\"}},qht={[or.NONE]:{label:\"-\",color:\"default\"},[or.GOOD]:{label:\"好评\",color:\"success\"},[or.DELETE]:{label:\"删评\",color:\"error\"}},Xht={[cr.SELF_SERVICE]:{label:\"自助返款\",color:\"blue\"},[cr.FINANCIAL]:{label:\"财务返款\",color:\"orange\"}},Jht=({status:e})=>{if(!e)return C.jsx(\"span\",{style:{color:\"#ccc\"},children:\"--\"});const t=Uht[e];return C.jsx(et,{color:t==null?void 0:t.color,children:(t==null?void 0:t.label)||e})},Zht=({status:e})=>{if(!e)return C.jsx(\"span\",{style:{color:\"#ccc\"},children:\"--\"});const t=Kht[e];return C.jsx(et,{color:t==null?void 0:t.color,children:(t==null?void 0:t.label)||e})},Qht=({status:e})=>{if(!e)return C.jsx(\"span\",{style:{color:\"#ccc\"},children:\"--\"});const t=Yht[e];return C.jsx(et,{color:t==null?void 0:t.color,children:(t==null?void 0:t.label)||e})},ept=({status:e})=>{if(!e)return C.jsx(\"span\",{style:{color:\"#ccc\"},children:\"--\"});const t=qht[e];return C.jsx(et,{color:t==null?void 0:t.color,children:(t==null?void 0:t.label)||e})},tpt=({scheme:e})=>{if(!e)return C.jsx(\"span\",{style:{color:\"#ccc\"},children:\"--\"});const t=Xht[e];return C.jsx(et,{color:t==null?void 0:t.color,children:(t==null?void 0:t.label)||e})},rpt=({visible:e,order:t,onClose:r,onSuccess:n})=>{const[a]=be.useForm(),[i,o]=le.useState(!1);le.useEffect(()=>{e&&t&&a.setFieldsValue({id:t.id,orderNo:t.orderNo||\"\",orderStatus:t.orderStatus||void 0})},[e,t]);const l=async()=>{try{const s=await a.validateFields();o(!0),await fr(\"/review-orders/upload-order\",s),vt.success(\"上传订单成功\"),n(),r()}catch(s){s!=null&&s.message&&vt.error(s.message)}finally{o(!1)}};return C.jsx(an,{title:\"上传订单\",open:e,onCancel:r,onOk:l,confirmLoading:i,width:500,destroyOnClose:!0,children:C.jsxs(be,{form:a,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"id\",hidden:!0,children:C.jsx(ut,{})}),C.jsx(be.Item,{label:\"订单号\",name:\"orderNo\",rules:[{required:!0,message:\"请输入订单号\"}],children:C.jsx(ut,{placeholder:\"请输入Amazon订单号\"})}),C.jsx(be.Item,{label:\"订单状态\",name:\"orderStatus\",rules:[{required:!0,message:\"请选择订单状态\"}],children:C.jsx(Qe,{placeholder:\"请选择订单状态\",options:Object.values(ar).map(s=>({label:s,value:s}))})})]})})},npt=({visible:e,order:t,onClose:r,onSuccess:n})=>{const[a]=be.useForm(),[i,o]=le.useState(!1);le.useEffect(()=>{e&&t&&a.setFieldsValue({id:t.id,paymentApplicant:void 0,refundMethod:void 0,amount:void 0,remark:void 0})},[e,t]);const l=async()=>{try{const s=await a.validateFields();o(!0),await fr(\"/review-orders/payment-request\",s),vt.success(\"请款成功\"),n(),r()}catch(s){s!=null&&s.message&&vt.error(s.message)}finally{o(!1)}};return C.jsx(an,{title:\"请款\",open:e,onCancel:r,onOk:l,confirmLoading:i,width:500,destroyOnClose:!0,children:C.jsxs(be,{form:a,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"id\",hidden:!0,children:C.jsx(ut,{})}),C.jsx(be.Item,{label:\"请款人\",name:\"paymentApplicant\",rules:[{required:!0,message:\"请输入请款人\"}],children:C.jsx(ut,{placeholder:\"请输入请款人姓名\"})}),C.jsx(be.Item,{label:\"退款方式\",name:\"refundMethod\",rules:[{required:!0,message:\"请选择退款方式\"}],children:C.jsx(Qe,{placeholder:\"请选择退款方式\",options:Object.values(ef).map(s=>({label:s,value:s}))})}),C.jsx(be.Item,{label:\"请款金额\",name:\"amount\",rules:[{required:!0,message:\"请输入请款金额\"}],children:C.jsx(vn,{placeholder:\"请输入金额\",min:0,precision:2,style:{width:\"100%\"},prefix:\"$\"})}),C.jsx(be.Item,{label:\"备注\",name:\"remark\",children:C.jsx(ut.TextArea,{rows:3,placeholder:\"请输入备注信息\"})})]})})},apt=({visible:e,order:t,onClose:r,onSuccess:n})=>{const[a]=be.useForm(),[i,o]=le.useState(!1);le.useEffect(()=>{e&&t&&a.setFieldsValue({id:t.id,approved:!0,remark:\"\"})},[e,t]);const l=async()=>{try{const s=await a.validateFields();o(!0),await fr(\"/review-orders/exceed-audit\",s),vt.success(s.approved?\"审核通过\":\"审核不通过\"),n(),r()}catch(s){s!=null&&s.message&&vt.error(s.message)}finally{o(!1)}};return C.jsxs(an,{title:\"超限审核\",open:e,onCancel:r,onOk:l,confirmLoading:i,width:500,destroyOnClose:!0,children:[C.jsxs(\"div\",{style:{marginBottom:16,padding:12,background:\"#f5f5f5\",borderRadius:6},children:[C.jsxs(\"p\",{style:{margin:0},children:[\"订单ID: \",C.jsx(\"strong\",{children:t==null?void 0:t.id})]}),C.jsxs(\"p\",{style:{margin:\"4px 0 0\"},children:[\"产品: \",t==null?void 0:t.product,\" | ASIN: \",t==null?void 0:t.asin]})]}),C.jsxs(be,{form:a,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"id\",hidden:!0,children:C.jsx(ut,{})}),C.jsx(be.Item,{label:\"审核结果\",name:\"approved\",rules:[{required:!0}],children:C.jsxs(Ti.Group,{children:[C.jsx(Ti,{value:!0,children:\"通过\"}),C.jsx(Ti,{value:!1,children:\"不通过\"})]})}),C.jsx(be.Item,{label:\"审核备注\",name:\"remark\",children:C.jsx(ut.TextArea,{rows:3,placeholder:\"请输入审核备注\"})})]})]})},ipt=({visible:e,order:t,onClose:r,onSuccess:n})=>{const[a]=be.useForm(),[i,o]=le.useState(!1);le.useEffect(()=>{e&&t&&a.setFieldsValue({id:t.id,amount:void 0,refundMethod:void 0,remark:\"\"})},[e,t]);const l=async()=>{try{const s=await a.validateFields();o(!0),await fr(\"/review-orders/additional-refund\",s),vt.success(\"追加返款成功\"),n(),r()}catch(s){s!=null&&s.message&&vt.error(s.message)}finally{o(!1)}};return C.jsxs(an,{title:\"追加返款\",open:e,onCancel:r,onOk:l,confirmLoading:i,width:500,destroyOnClose:!0,children:[C.jsxs(\"div\",{style:{marginBottom:16,padding:12,background:\"#f5f5f5\",borderRadius:6},children:[C.jsxs(\"p\",{style:{margin:0},children:[\"订单ID: \",C.jsx(\"strong\",{children:t==null?void 0:t.id})]}),C.jsxs(\"p\",{style:{margin:\"4px 0 0\"},children:[\"产品: \",t==null?void 0:t.product,\" | ASIN: \",t==null?void 0:t.asin]})]}),C.jsxs(be,{form:a,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"id\",hidden:!0,children:C.jsx(ut,{})}),C.jsx(be.Item,{label:\"追加返款金额\",name:\"amount\",rules:[{required:!0,message:\"请输入追加返款金额\"}],children:C.jsx(vn,{placeholder:\"请输入金额\",min:0,precision:2,style:{width:\"100%\"},prefix:\"$\"})}),C.jsx(be.Item,{label:\"退款方式\",name:\"refundMethod\",children:C.jsx(Qe,{placeholder:\"请选择退款方式\",allowClear:!0,options:Object.values(ef).map(s=>({label:s,value:s}))})}),C.jsx(be.Item,{label:\"备注\",name:\"remark\",children:C.jsx(ut.TextArea,{rows:3,placeholder:\"请输入追加返款原因\"})})]})]})},opt=()=>{const e=Ia(),[t,r]=m.useState([]),[n,a]=m.useState(!1),[i,o]=m.useState(0),[l,s]=m.useState({page:1,pageSize:20}),[u,c]=m.useState({}),[d,f]=m.useState([]),[h,p]=m.useState(!1),[v,g]=m.useState(!1),[y,b]=m.useState(!1),[x,F]=m.useState(!1),[S,E]=m.useState(null),w=m.useCallback(async T=>{a(!0);try{const k=T||u,R={page:String(l.page),pageSize:String(l.pageSize)};k.searchKeyword&&(R.searchKeyword=k.searchKeyword),k.replyOrderId&&(R.replyOrderId=k.replyOrderId),k.channel&&(R.channel=k.channel),k.country&&(R.country=k.country),k.category&&(R.category=k.category),k.shop&&(R.shop=k.shop),k.product&&(R.product=k.product),k.asin&&(R.asin=k.asin),k.orderStatus&&(R.orderStatus=k.orderStatus),k.replyOrderStatus&&(R.replyOrderStatus=k.replyOrderStatus),k.refundStatus&&(R.refundStatus=k.refundStatus),k.commentStatus&&(R.commentStatus=k.commentStatus),k.refundScheme&&(R.refundScheme=k.refundScheme),k.refundMethod&&(R.refundMethod=k.refundMethod),k.applicant&&(R.applicant=k.applicant),k.paymentApplicant&&(R.paymentApplicant=k.paymentApplicant),k.reviewer&&(R.reviewer=k.reviewer),k.operators&&(R.operators=k.operators),k.customerId&&(R.customerId=k.customerId),k.refundId&&(R.refundId=k.refundId),k.starRating&&(R.starRating=k.starRating),k.includeFee!==void 0&&(R.includeFee=String(k.includeFee)),k.startTimeRange&&(R.startTimeStart=k.startTimeRange[0],R.startTimeEnd=k.startTimeRange[1]),k.replyTimeRange&&(R.replyTimeStart=k.replyTimeRange[0],R.replyTimeEnd=k.replyTimeRange[1]),k.completedTimeRange&&(R.completedTimeStart=k.completedTimeRange[0],R.completedTimeEnd=k.completedTimeRange[1]),k.commentTimeRange&&(R.commentTimeStart=k.commentTimeRange[0],R.commentTimeEnd=k.commentTimeRange[1]),k.replyConfirmTimeRange&&(R.replyConfirmTimeStart=k.replyConfirmTimeRange[0],R.replyConfirmTimeEnd=k.replyConfirmTimeRange[1]);const P=await Or(\"/review-orders\",R);r(P.list||[]),o(P.total||0)}catch{vt.error(\"获取测评订单列表失败\")}finally{a(!1)}},[l,u]);m.useEffect(()=>{w()},[l]);const D=()=>{s(T=>({...T,page:1})),w()},A=()=>{c({}),s(T=>({...T,page:1})),w({})},_=T=>T?new Date(T).toLocaleString(\"zh-CN\",{year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\"}):\"--\",I=[{title:\"ID\",dataIndex:\"id\",key:\"id\",width:80,fixed:\"left\",sorter:(T,k)=>T.id-k.id},{title:\"回评ID\",dataIndex:\"replyOrderId\",key:\"replyOrderId\",width:110,render:T=>T||\"--\"},{title:\"订单号\",dataIndex:\"orderNo\",key:\"orderNo\",width:180,render:T=>T?C.jsx(Dr,{title:T,children:C.jsx(\"span\",{style:{fontFamily:\"monospace\",fontSize:12},children:T})}):\"--\"},{title:\"请款人\",dataIndex:\"paymentApplicant\",key:\"paymentApplicant\",width:80,render:T=>T||\"--\"},{title:\"返款ID\",dataIndex:\"refundId\",key:\"refundId\",width:100,render:T=>T||\"--\"},{title:\"售后来源\",dataIndex:\"channel\",key:\"channel\",width:80,render:T=>C.jsx(\"span\",{children:T})},{title:\"客户ID\",dataIndex:\"customerId\",key:\"customerId\",width:80,render:T=>T||\"--\"},{title:\"客户\",dataIndex:\"customerName\",key:\"customerName\",width:80},{title:\"测评数\",dataIndex:\"reviewCount\",key:\"reviewCount\",width:70,align:\"center\"},{title:\"评论数\",dataIndex:\"commentCount\",key:\"commentCount\",width:70,align:\"center\"},{title:\"国家\",dataIndex:\"country\",key:\"country\",width:80,render:T=>C.jsx(\"span\",{children:T})},{title:\"产品\",dataIndex:\"product\",key:\"product\",width:160,ellipsis:!0,render:T=>C.jsx(Dr,{title:T,children:T})},{title:\"类目\",dataIndex:\"category\",key:\"category\",width:90,ellipsis:!0,render:T=>T?C.jsx(Dr,{title:T,children:T}):\"--\"},{title:\"ASIN\",dataIndex:\"asin\",key:\"asin\",width:120,render:T=>C.jsx(Dr,{title:T,children:C.jsx(\"span\",{style:{fontFamily:\"monospace\",color:\"#1890ff\"},children:T})})},{title:\"店铺\",dataIndex:\"shop\",key:\"shop\",width:100,ellipsis:!0,render:T=>T?C.jsx(Dr,{title:T,children:T}):\"--\"},{title:\"售后编码\",dataIndex:\"afterSaleCode\",key:\"afterSaleCode\",width:100,render:T=>T||\"--\"},{title:\"订单状态\",dataIndex:\"orderStatus\",key:\"orderStatus\",width:100,render:T=>C.jsx(Zht,{status:T})},{title:\"回评单状态\",dataIndex:\"replyOrderStatus\",key:\"replyOrderStatus\",width:110,render:T=>C.jsx(Jht,{status:T})},{title:\"返款状态\",dataIndex:\"refundStatus\",key:\"refundStatus\",width:100,render:T=>C.jsx(Qht,{status:T})},{title:\"上评人\",dataIndex:\"reviewer\",key:\"reviewer\",width:80,render:T=>T||\"--\"},{title:\"回评确认人\",dataIndex:\"replyConfirmer\",key:\"replyConfirmer\",width:90,render:T=>T||\"--\"},{title:\"评论状态\",dataIndex:\"commentStatus\",key:\"commentStatus\",width:80,render:T=>C.jsx(ept,{status:T})},{title:\"评分星级\",dataIndex:\"starRating\",key:\"starRating\",width:80,align:\"center\",render:T=>T?C.jsx(\"span\",{style:{color:\"#faad14\"},children:T}):\"--\"},{title:\"评论链接\",dataIndex:\"commentUrl\",key:\"commentUrl\",width:120,ellipsis:!0,render:T=>T?C.jsx(Dr,{title:T,children:C.jsx(\"a\",{href:T,target:\"_blank\",rel:\"noreferrer\",style:{color:\"#1890ff\",fontSize:12},children:T.length>20?`${T.slice(0,20)}...`:T})}):\"--\"},{title:\"profile链接\",dataIndex:\"profileUrl\",key:\"profileUrl\",width:120,ellipsis:!0,render:T=>T?C.jsx(Dr,{title:T,children:C.jsx(\"a\",{href:T,target:\"_blank\",rel:\"noreferrer\",style:{color:\"#1890ff\",fontSize:12},children:\"Profile\"})}):\"--\"},{title:\"评论时间\",dataIndex:\"commentTime\",key:\"commentTime\",width:140,render:T=>_(T)},{title:\"开始时间\",dataIndex:\"startTime\",key:\"startTime\",width:140,render:T=>_(T)},{title:\"回评时间\",dataIndex:\"replyTime\",key:\"replyTime\",width:140,render:T=>_(T)},{title:\"回评确认时间\",dataIndex:\"replyConfirmTime\",key:\"replyConfirmTime\",width:140,render:T=>_(T)},{title:\"完成时间\",dataIndex:\"completedTime\",key:\"completedTime\",width:140,render:T=>_(T)},{title:\"申请人\",dataIndex:\"applicant\",key:\"applicant\",width:80},{title:\"运营人员\",dataIndex:\"operators\",key:\"operators\",width:80,render:T=>T||\"--\"},{title:\"备注\",dataIndex:\"remark\",key:\"remark\",width:120,ellipsis:!0,render:T=>T?C.jsx(Dr,{title:T,children:T}):\"--\"},{title:\"是否自助返款\",dataIndex:\"refundScheme\",key:\"refundScheme\",width:110,render:T=>C.jsx(tpt,{scheme:T})},{title:\"操作\",key:\"action\",width:180,fixed:\"right\",render:(T,k)=>C.jsxs(Qt,{size:4,children:[C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(a3,{}),onClick:()=>{E(k),p(!0)},children:\"上传订单\"}),C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(tnt,{}),onClick:()=>{E(k),g(!0)},children:\"请款\"}),C.jsx(Fd,{menu:{items:[{key:\"exceed-audit\",label:\"超限审核\",icon:C.jsx(vB,{}),onClick:()=>{E(k),b(!0)}},{key:\"additional-refund\",label:\"追加返款\",icon:C.jsx(Unt,{}),onClick:()=>{E(k),F(!0)}}]},children:C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(ide,{}),children:\"更多\"})})]})}],M=()=>{w()};return C.jsxs(\"div\",{children:[C.jsx(Ght,{filters:u,onFiltersChange:c,onSearch:D,onReset:A}),C.jsxs(\"div\",{style:{background:\"#fff\",padding:\"8px 16px\",borderRadius:8,marginBottom:16,display:\"flex\",justifyContent:\"space-between\"},children:[C.jsx(Qt,{children:C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>e(\"/order/create\"),children:\"新增测评订单\"})}),C.jsx(\"span\",{style:{color:\"#999\"},children:d.length>0?`已选 ${d.length} 项`:\"\"})]}),C.jsx(Gr,{columns:I,dataSource:t,rowKey:\"id\",loading:n,scroll:{x:4200,y:600},size:\"small\",rowSelection:{selectedRowKeys:d,onChange:f},pagination:{current:l.page,pageSize:l.pageSize,total:i,showSizeChanger:!0,showQuickJumper:!0,showTotal:T=>`共 ${T} 条`,onChange:(T,k)=>s({page:T,pageSize:k}),pageSizeOptions:[\"10\",\"20\",\"50\",\"100\"]}}),C.jsx(rpt,{visible:h,order:S,onClose:()=>{p(!1),E(null)},onSuccess:M}),C.jsx(npt,{visible:v,order:S,onClose:()=>{g(!1),E(null)},onSuccess:M}),C.jsx(apt,{visible:y,order:S,onClose:()=>{b(!1),E(null)},onSuccess:M}),C.jsx(ipt,{visible:x,order:S,onClose:()=>{F(!1),E(null)},onSuccess:M})]})},lpt=Object.freeze(Object.defineProperty({__proto__:null,default:opt},Symbol.toStringTag,{value:\"Module\"})),spt=[\"手机配件\",\"家居用品\",\"美妆护肤\",\"电子产品\",\"户外运动\",\"厨房用品\",\"宠物用品\",\"汽车配件\",\"玩具\",\"服装鞋帽\"],upt=[\"ShopA-US\",\"ShopB-UK\",\"ShopC-JP\",\"ShopD-DE\",\"ShopE-CA\",\"ShopF-FR\",\"ShopG-IT\",\"ShopH-ES\"],cpt=()=>{const e=Ia(),[t]=be.useForm(),[r,n]=m.useState(!1),[a,i]=m.useState(null),[o,l]=m.useState([]),[s,u]=m.useState([]),[c,d]=m.useState(!1),f=async()=>{const g=t.getFieldValue(\"customerId\");if(!g){vt.warning(\"请先输入客户ID\");return}try{const y=await Or(\"/user-info\",{customerId:g});i(y),vt.success(\"查询客户信息成功\")}catch{vt.error(\"查询客户信息失败\")}},h=async()=>{d(!0);try{const g=await Or(\"/review-products\",{pageSize:50});l(g.list||[])}catch{vt.error(\"获取产品列表失败\")}finally{d(!1)}};le.useEffect(()=>{h()},[]);const p=async()=>{try{const g=await t.validateFields();n(!0),await fr(\"/review-orders\",g),vt.success(\"创建测评订单成功\"),e(\"/order\")}catch(g){g!=null&&g.message&&vt.error(g.message)}finally{n(!1)}},v=[{title:\"编码\",dataIndex:\"code\",key:\"code\",width:80},{title:\"产品名称\",dataIndex:\"name\",key:\"name\",width:160,ellipsis:!0},{title:\"ASIN\",dataIndex:\"asin\",key:\"asin\",width:120},{title:\"类目\",dataIndex:\"category\",key:\"category\",width:90},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:70,render:g=>C.jsx(et,{color:g===\"ACTIVE\"?\"green\":\"red\",children:g===\"ACTIVE\"?\"启用\":\"停用\"})}];return C.jsxs(\"div\",{style:{padding:0},children:[C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:16},children:[C.jsxs(Qt,{children:[C.jsx(ze,{icon:C.jsx(_m,{}),onClick:()=>e(\"/order\"),children:\"返回\"}),C.jsx(\"h2\",{style:{margin:0},children:\"新增测评订单\"})]}),C.jsx(ze,{type:\"primary\",icon:C.jsx(ED,{}),onClick:p,loading:r,children:\"保存\"})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(hr,{title:\"测评信息\",size:\"small\",style:{marginBottom:16},children:C.jsxs(be,{form:t,layout:\"vertical\",size:\"small\",children:[C.jsxs(sr,{gutter:8,children:[C.jsx(Se,{span:16,children:C.jsx(be.Item,{label:\"客户ID\",name:\"customerId\",rules:[{required:!0,message:\"请输入客户ID\"}],children:C.jsx(ut,{placeholder:\"请输入客户ID\"})})}),C.jsx(Se,{span:8,children:C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:f,style:{marginTop:26},children:\"查询\"})})]}),C.jsxs(sr,{gutter:8,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"客户名称\",name:\"customerName\",children:C.jsx(ut,{placeholder:\"自动填充\"})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"售后来源\",name:\"channel\",rules:[{required:!0,message:\"请选择售后来源\"}],children:C.jsx(Qe,{placeholder:\"请选择售后来源\",options:Object.values(tr).map(g=>({label:g,value:g}))})})})]}),C.jsxs(sr,{gutter:8,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"国家\",name:\"country\",children:C.jsx(Qe,{placeholder:\"请选择国家\",showSearch:!0,options:Object.values(nr).map(g=>({label:g,value:g}))})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"类目\",name:\"category\",children:C.jsx(Qe,{placeholder:\"请选择类目\",showSearch:!0,options:spt.map(g=>({label:g,value:g}))})})})]}),C.jsxs(sr,{gutter:8,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"产品\",name:\"product\",rules:[{required:!0,message:\"请输入产品名称\"}],children:C.jsx(ut,{placeholder:\"请输入产品名称\"})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"ASIN\",name:\"asin\",rules:[{required:!0,message:\"请输入ASIN\"}],children:C.jsx(ut,{placeholder:\"请输入ASIN\"})})})]}),C.jsxs(sr,{gutter:8,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"店铺\",name:\"shop\",children:C.jsx(Qe,{placeholder:\"请选择店铺\",showSearch:!0,options:upt.map(g=>({label:g,value:g}))})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"订单号\",name:\"orderNo\",children:C.jsx(ut,{placeholder:\"请输入订单号(可选)\"})})})]}),C.jsxs(sr,{gutter:8,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"申请人\",name:\"applicant\",rules:[{required:!0,message:\"请输入申请人\"}],children:C.jsx(ut,{placeholder:\"请输入申请人\"})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"运营人员\",name:\"operators\",children:C.jsx(ut,{placeholder:\"请输入运营人员\"})})})]}),C.jsxs(sr,{gutter:8,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"是否自助返款\",name:\"refundScheme\",children:C.jsx(Qe,{placeholder:\"请选择\",allowClear:!0,options:Object.values(cr).map(g=>({label:g,value:g}))})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"备注\",name:\"remark\",children:C.jsx(ut,{placeholder:\"请输入备注\"})})})]})]})})}),C.jsxs(Se,{span:12,children:[C.jsx(hr,{title:\"用户信息\",size:\"small\",style:{marginBottom:16},children:a?C.jsxs(Ne,{size:\"small\",column:2,bordered:!0,children:[C.jsx(Ne.Item,{label:\"用户名\",children:a.userName}),C.jsx(Ne.Item,{label:\"国家\",children:a.country}),C.jsx(Ne.Item,{label:\"电话\",children:a.phone}),C.jsx(Ne.Item,{label:\"邮箱\",children:a.email}),C.jsx(Ne.Item,{label:\"Joyhub ID\",children:a.joyhubId}),C.jsx(Ne.Item,{label:\"类型\",children:a.userType}),C.jsx(Ne.Item,{label:\"总订单数\",children:a.totalOrders}),C.jsx(Ne.Item,{label:\"测评数\",children:a.reviewCount}),C.jsx(Ne.Item,{label:\"黑名单\",children:a.isBlacklisted?C.jsx(et,{color:\"error\",children:\"是\"}):C.jsx(et,{color:\"success\",children:\"否\"})}),C.jsx(Ne.Item,{label:\"高风险\",children:a.isHighRisk?C.jsx(et,{color:\"error\",children:\"是\"}):C.jsx(et,{color:\"success\",children:\"否\"})})]}):C.jsx(ox,{message:\"请输入客户ID并点击查询\",type:\"info\",showIcon:!0})}),C.jsx(hr,{title:\"测评产品\",size:\"small\",extra:C.jsx(ze,{size:\"small\",onClick:h,children:\"刷新\"}),children:C.jsx(Gr,{columns:v,dataSource:o,rowKey:\"id\",loading:c,size:\"small\",scroll:{y:300},rowSelection:{selectedRowKeys:s,onChange:g=>u(g),type:\"radio\"},onRow:g=>({onClick:()=>{u([g.id]),t.setFieldsValue({product:g.name,asin:g.asin,category:g.category})},style:{cursor:\"pointer\"}}),pagination:{pageSize:5,size:\"small\"}})})]})]})]})},dpt=Object.freeze(Object.defineProperty({__proto__:null,default:cpt},Symbol.toStringTag,{value:\"Module\"})),fpt=()=>{var l,s,u,c;const{id:e}=$g(),t=Ia(),[r,n]=m.useState(null),[a,i]=m.useState(!0);m.useEffect(()=>{e&&o(Number(e))},[e]);const o=async d=>{i(!0);try{const f=await Or(`/review-products/${d}`);n(f)}catch{vt.error(\"获取产品详情失败\")}finally{i(!1)}};return a?C.jsx(\"div\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",height:400},children:C.jsx(mi,{size:\"large\",tip:\"加载中...\"})}):r?C.jsxs(\"div\",{children:[C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:16},children:[C.jsxs(Qt,{children:[C.jsx(ze,{icon:C.jsx(_m,{}),onClick:()=>t(-1),children:\"返回\"}),C.jsx(\"h2\",{style:{margin:0},children:\"测评产品详情\"})]}),C.jsx(ze,{icon:C.jsx(od,{}),children:\"编辑\"})]}),C.jsx(hr,{style:{marginBottom:16},children:C.jsxs(sr,{gutter:24,children:[r.imageUrl&&C.jsx(Se,{span:6,children:C.jsx(r2,{src:r.imageUrl,alt:r.name,style:{borderRadius:8,maxWidth:\"100%\"},fallback:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mN88P/BfwAJhAPk2iMa1AAAAABJRU5ErkJggg==\"})}),C.jsx(Se,{span:r.imageUrl?18:24,children:C.jsxs(Ne,{column:3,size:\"small\",children:[C.jsx(Ne.Item,{label:\"产品名称\",span:2,children:C.jsx(\"strong\",{style:{fontSize:16},children:r.name})}),C.jsx(Ne.Item,{label:\"编码\",children:r.code}),C.jsx(Ne.Item,{label:\"ASIN\",children:C.jsx(\"span\",{style:{fontFamily:\"monospace\",color:\"#1890ff\"},children:r.asin})}),C.jsx(Ne.Item,{label:\"启用状态\",children:C.jsx(et,{color:r.enabled?\"green\":\"red\",children:r.enabled?\"启用\":\"停用\"})}),C.jsx(Ne.Item,{label:\"推广级别\",children:r.promoLevel?C.jsx(et,{color:\"blue\",children:r.promoLevel}):\"--\"}),C.jsx(Ne.Item,{label:\"店铺\",children:r.shop||\"--\"}),C.jsx(Ne.Item,{label:\"国家\",span:2,children:(l=r.countries)==null?void 0:l.map(d=>C.jsx(et,{children:d},d))}),C.jsx(Ne.Item,{label:\"类目\",children:r.category||\"--\"}),C.jsx(Ne.Item,{label:\"链接\",span:2,children:r.link?C.jsx(\"a\",{href:r.link,target:\"_blank\",rel:\"noreferrer\",children:r.link}):\"--\"})]})})]})}),C.jsx(hr,{title:\"产品详细信息\",style:{marginBottom:16},children:C.jsxs(Ne,{column:3,size:\"small\",bordered:!0,children:[C.jsx(Ne.Item,{label:\"英文名\",children:r.nameEn||\"--\"}),C.jsx(Ne.Item,{label:\"功能\",children:r.features||\"--\"}),C.jsx(Ne.Item,{label:\"防二审\",children:r.antiSecondAudit?C.jsx(et,{color:\"green\",children:\"是\"}):C.jsx(et,{color:\"default\",children:\"否\"})}),C.jsx(Ne.Item,{label:\"名额\",children:r.quota??\"--\"}),C.jsx(Ne.Item,{label:\"计划类型\",children:r.planType||\"--\"}),C.jsx(Ne.Item,{label:\"渠道\",children:(s=r.channels)==null?void 0:s.map(d=>C.jsx(et,{children:d},d))}),C.jsx(Ne.Item,{label:\"关键词\",span:2,children:((u=r.keywords)==null?void 0:u.map(d=>C.jsx(et,{color:\"blue\",children:d},d)))||\"--\"}),C.jsx(Ne.Item,{label:\"小标题\",children:r.subtitle||\"--\"}),C.jsx(Ne.Item,{label:\"周期\",children:r.cycle||\"--\"}),C.jsx(Ne.Item,{label:\"组别\",children:r.group||\"--\"}),C.jsx(Ne.Item,{label:\"价格\",children:r.price?`$${r.price.toFixed(2)}`:\"--\"}),C.jsx(Ne.Item,{label:\"折扣码\",children:r.discountCode?C.jsx(et,{color:\"orange\",children:r.discountCode}):\"--\"}),C.jsx(Ne.Item,{label:\"返款金额\",children:r.refundAmount?`$${r.refundAmount.toFixed(2)}`:\"--\"}),C.jsx(Ne.Item,{label:\"标签\",span:2,children:((c=r.tags)==null?void 0:c.map(d=>C.jsx(et,{color:\"geekblue\",children:d},d)))||\"--\"}),C.jsx(Ne.Item,{label:\"品牌Logo\",children:r.brandLogo?C.jsx(r2,{src:r.brandLogo,width:40,height:40,style:{borderRadius:4},fallback:\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mN88P/BfwAJhAPk2iMa1AAAAABJRU5ErkJggg==\"}):\"--\"})]})})]}):C.jsx(\"div\",{style:{textAlign:\"center\",padding:40},children:\"产品不存在\"})},hpt=Object.freeze(Object.defineProperty({__proto__:null,default:fpt},Symbol.toStringTag,{value:\"Module\"})),HB={[Kt.PENDING_UPLOAD]:{text:\"待上传回评\",color:\"default\"},[Kt.PENDING_CONFIRM]:{text:\"待回评确认\",color:\"warning\"},[Kt.REVIEWED]:{text:\"已回评\",color:\"success\"}},C3={[ln.PENDING_REFUND]:{text:\"待返款\",color:\"warning\"},[ln.PENDING_AUDIT]:{text:\"待返款审核\",color:\"processing\"},[ln.AUDIT_FAILED]:{text:\"审核不通过\",color:\"error\"},[ln.REFUND_SUCCESS]:{text:\"返款成功\",color:\"success\"},[ln.REFUND_LOCKED]:{text:\"返款锁定中\",color:\"orange\"}},VB={[or.NONE]:{text:\"-\",color:\"default\"},[or.GOOD]:{text:\"好评\",color:\"success\"},[or.DELETE]:{text:\"删评\",color:\"error\"}},Jfe={[ar.SHIPPED]:{text:\"Shipped\",color:\"success\"},[ar.PENDING]:{text:\"Pending\",color:\"default\"},[ar.DELIVERED]:{text:\"Delivered\",color:\"success\"},[ar.CANCELLED]:{text:\"Cancelled\",color:\"error\"}},F3={[cr.SELF_SERVICE]:{text:\"自助返款\",color:\"blue\"},[cr.FINANCIAL]:{text:\"财务返款\",color:\"green\"}},ppt={[u2.ACTIVE]:{text:\"启用\",color:\"success\"},[u2.DISABLED]:{text:\"禁用\",color:\"default\"}},oK={[Gu.QUALIFIED]:{text:\"合格\",color:\"success\"},[Gu.DISQUALIFIED]:{text:\"不合格\",color:\"warning\"},[Gu.BLACKLISTED]:{text:\"已拉黑\",color:\"error\"},[Gu.HIGH_RISK]:{text:\"高风险\",color:\"error\"}},mpt={[en.CREATE]:\"创建\",[en.EDIT]:\"编辑\",[en.UPLOAD_ORDER]:\"上传订单\",[en.UPLOAD_REPLY]:\"上传回评\",[en.CHANGE_ORDER]:\"更换订单\",[en.ALTER_ORDER]:\"更改订单\",[en.TRANSFER_REVIEW]:\"转测评\",[en.TRANSFER_FREE]:\"转免评\",[en.CHANGE_APPLICANT]:\"更换申请人\",[en.PAYMENT_REQUEST]:\"请款\",[en.REFUND_CONFIRM]:\"退款确认\",[en.SERVICE_AUDIT]:\"服务商审核\",[en.REFUND_EXCEED_AUDIT]:\"退款超额审核\",[en.ANTI_FRAUD_AUDIT]:\"追反审核\",[en.TRANSFER_AUDIT]:\"转评审核\",[en.CANCEL]:\"撤销\"};dp.COMMENT_ID+\"\",dp.COMMENT_URL+\"\",dp.QUEUE_FETCH+\"\",dp.MANUAL_UPLOAD+\"\";const Zfe=[{label:\"IM\",value:tr.IM},{label:\"电话\",value:tr.PHONE},{label:\"EDM\",value:tr.EDM},{label:\"Twitter\",value:tr.TWITTER},{label:\"Facebook\",value:tr.FACEBOOK},{label:\"KP\",value:tr.KP},{label:\"MXP\",value:tr.MXP},{label:\"明信片\",value:tr.POSTCARD},{label:\"FWS\",value:tr.FWS},{label:\"SNS\",value:tr.SNS},{label:\"Reddit\",value:tr.REDDIT}],Qfe=[{label:\"美国\",value:nr.US},{label:\"英国\",value:nr.UK},{label:\"日本\",value:nr.JP},{label:\"加拿大\",value:nr.CA},{label:\"德国\",value:nr.DE},{label:\"法国\",value:nr.FR},{label:\"意大利\",value:nr.IT},{label:\"西班牙\",value:nr.ES}];gw.PRINCIPAL,gw.SERVICE_COMMISSION,gw.OTHER;const ehe=[{label:\"PayPal\",value:ef.PAYPAL},{label:\"支付宝\",value:ef.ALIPAY},{label:\"Amazon礼品卡\",value:ef.AMAZON_GIFT_CARD},{label:\"银行转账\",value:ef.BANK_TRANSFER},{label:\"其他\",value:ef.OTHER}],the=[{label:\"财务返款\",value:cr.FINANCIAL},{label:\"自助返款\",value:cr.SELF_SERVICE}],vpt=[{label:\"待上传回评\",value:Kt.PENDING_UPLOAD},{label:\"待回评确认\",value:Kt.PENDING_CONFIRM},{label:\"已回评\",value:Kt.REVIEWED}],gpt=[{label:\"-\",value:or.NONE},{label:\"好评\",value:or.GOOD},{label:\"删评\",value:or.DELETE}],lK=[{label:\"待返款\",value:ln.PENDING_REFUND},{label:\"待返款审核\",value:ln.PENDING_AUDIT},{label:\"审核不通过\",value:ln.AUDIT_FAILED},{label:\"返款成功\",value:ln.REFUND_SUCCESS},{label:\"返款锁定中\",value:ln.REFUND_LOCKED}];co.PHONE,co.EMAIL,co.JOYHUB_ID,co.TWITTER,co.FACEBOOK,co.WECHAT,co.SNS,co.REDDIT;const sK=[{label:\"是\",value:!0},{label:\"否\",value:!1}],rhe=[{label:\"1星\",value:\"1\"},{label:\"2星\",value:\"2\"},{label:\"3星\",value:\"3\"},{label:\"4星\",value:\"4\"},{label:\"5星\",value:\"5\"}],uK=[{key:\"replyOrderId\",label:\"回评ID\",type:\"input\",placeholder:\"请输入\"},{key:\"startTimeRange\",label:\"开始时间\",type:\"dateRange\"},{key:\"country\",label:\"国家\",type:\"select\",options:Qfe,placeholder:\"选择国家\"},{key:\"category\",label:\"类目\",type:\"select\",options:[],placeholder:\"选择类目\"},{key:\"replyOrderStatus\",label:\"回评单状态\",type:\"select\",options:vpt,placeholder:\"选择回评单状态\"},{key:\"refundScheme\",label:\"返款方案\",type:\"select\",options:the,placeholder:\"全部\"},{key:\"refundStatus\",label:\"返款状态\",type:\"select\",options:lK,placeholder:\"返款状态\"},{key:\"selfRefundStatus\",label:\"自助返款状态\",type:\"select\",options:lK,placeholder:\"自助返款状态\"},{key:\"product\",label:\"产品\",type:\"select\",options:[],placeholder:\"选择产品\"},{key:\"commentStatus\",label:\"评论状态\",type:\"select\",options:gpt,placeholder:\"全部\"},{key:\"starRating\",label:\"评分星级\",type:\"select\",options:rhe,placeholder:\"选择星级\"},{key:\"commentId\",label:\"搜索: 评论ID\",type:\"input\",placeholder:\"评论ID\"},{key:\"refundMethod\",label:\"返款方式\",type:\"select\",options:ehe,placeholder:\"选择返款方式\"},{key:\"refundAccount\",label:\"搜索: 返款账户\",type:\"input\",placeholder:\"返款账户\"},{key:\"paymentAccount\",label:\"搜索: 付款账户\",type:\"input\",placeholder:\"付款账户\"},{key:\"applicant\",label:\"申请人\",type:\"select\",options:[],placeholder:\"申请人\"},{key:\"paymentApplicant\",label:\"请款人\",type:\"select\",options:[],placeholder:\"请款人\"},{key:\"reviewer\",label:\"上评人\",type:\"select\",options:[],placeholder:\"上评人\"},{key:\"includeFee\",label:\"是否带手续费返款\",type:\"select\",options:sK,placeholder:\"全部\"},{key:\"isAdditionalRefund\",label:\"追加返款\",type:\"select\",options:sK,placeholder:\"全部\"},{key:\"operators\",label:\"运营人员\",type:\"select\",options:[],placeholder:\"请选择\"},{key:\"asin\",label:\"ASIN\",type:\"input\",placeholder:\"搜索: ASIN\"},{key:\"customerId\",label:\"用户ID\",type:\"input\",placeholder:\"搜索: 用户ID\"},{key:\"channel\",label:\"售后来源\",type:\"select\",options:Zfe,placeholder:\"选择售后来源\"},{key:\"profileId\",label:\"Profile ID\",type:\"input\",placeholder:\"搜索: Profile ID\"},{key:\"shop\",label:\"店铺\",type:\"select\",options:[],placeholder:\"选择店铺\"},{key:\"orderTimeRange\",label:\"订购时间\",type:\"dateRange\"},{key:\"commentTimeRange\",label:\"评论时间\",type:\"dateRange\"},{key:\"refundTimeRange\",label:\"返款时间\",type:\"dateRange\"},{key:\"replyUploadTimeRange\",label:\"回评上传\",type:\"dateRange\"},{key:\"replyConfirmTimeRange\",label:\"回评确认\",type:\"dateRange\"},{key:\"completedTimeRange\",label:\"完成时间\",type:\"dateRange\"},{key:\"returnTimeRange\",label:\"退款时间\",type:\"dateRange\"}],ypt=8,bpt=[{key:\"id\",dataIndex:\"id\",title:\"ID\",width:80,fixed:\"left\"},{key:\"reviewPlanId\",dataIndex:\"reviewPlanId\",title:\"关联测评计划ID\",width:130},{key:\"replyOrderId\",dataIndex:\"replyOrderId\",title:\"回评ID\",width:130},{key:\"orderNo\",dataIndex:\"orderNo\",title:\"订单号\",width:160},{key:\"paymentApplicant\",dataIndex:\"paymentApplicant\",title:\"请款人\",width:100},{key:\"refundId\",dataIndex:\"refundId\",title:\"返款ID\",width:120},{key:\"channel\",dataIndex:\"channel\",title:\"售后来源\",width:80},{key:\"customerId\",dataIndex:\"customerId\",title:\"客户ID\",width:100},{key:\"customerName\",dataIndex:\"customerName\",title:\"客户\",width:100},{key:\"reviewCount\",dataIndex:\"reviewCount\",title:\"测评数\",width:70},{key:\"commentCount\",dataIndex:\"commentCount\",title:\"评论数\",width:70},{key:\"country\",dataIndex:\"country\",title:\"国家\",width:70},{key:\"product\",dataIndex:\"product\",title:\"产品\",width:180},{key:\"category\",dataIndex:\"category\",title:\"类目\",width:150},{key:\"asin\",dataIndex:\"asin\",title:\"ASIN\",width:120},{key:\"shop\",dataIndex:\"shop\",title:\"店铺\",width:130},{key:\"afterSaleCode\",dataIndex:\"afterSaleCode\",title:\"售后编码\",width:140},{key:\"orderStatus\",dataIndex:\"orderStatus\",title:\"订单状态\",width:90},{key:\"replyOrderStatus\",dataIndex:\"replyOrderStatus\",title:\"回评单状态\",width:110},{key:\"refundStatus\",dataIndex:\"refundStatus\",title:\"返款状态\",width:100},{key:\"reviewer\",dataIndex:\"reviewer\",title:\"上评人\",width:100},{key:\"replyConfirmer\",dataIndex:\"replyConfirmer\",title:\"回评确认人\",width:110},{key:\"commentStatus\",dataIndex:\"commentStatus\",title:\"评论状态\",width:80},{key:\"starRating\",dataIndex:\"starRating\",title:\"评分星级\",width:80},{key:\"commentUrl\",dataIndex:\"commentUrl\",title:\"评论链接\",width:100},{key:\"profileUrl\",dataIndex:\"profileUrl\",title:\"profile链接\",width:110},{key:\"commentTime\",dataIndex:\"commentTime\",title:\"评论时间\",width:150},{key:\"startTime\",dataIndex:\"startTime\",title:\"开始时间\",width:150},{key:\"replyTime\",dataIndex:\"replyTime\",title:\"回评时间\",width:150},{key:\"replyConfirmTime\",dataIndex:\"replyConfirmTime\",title:\"回评确认时间\",width:150},{key:\"completedTime\",dataIndex:\"completedTime\",title:\"完成时间\",width:150},{key:\"applicant\",dataIndex:\"applicant\",title:\"申请人\",width:120},{key:\"operators\",dataIndex:\"operators\",title:\"运营人员\",width:150},{key:\"remark\",dataIndex:\"remark\",title:\"备注\",width:180},{key:\"refundScheme\",dataIndex:\"refundScheme\",title:\"是否自助返款\",width:110,fixed:\"right\"}],{RangePicker:xpt}=Wl,Cpt=({filters:e,onFilterChange:t,onSearch:r,onReset:n})=>{const[a,i]=m.useState(!1),o=a?uK:uK.slice(0,ypt),l=s=>{const{key:u,type:c,options:d,placeholder:f}=s;switch(c){case\"input\":return C.jsx(ut,{placeholder:f,value:e[u]??void 0,onChange:h=>t(u,h.target.value),allowClear:!0});case\"select\":return C.jsx(Qe,{placeholder:f,value:e[u]??void 0,onChange:h=>t(u,h),options:d,allowClear:!0,style:{width:\"100%\"}});case\"dateRange\":return C.jsx(xpt,{style:{width:\"100%\"},showTime:!0,format:\"YYYY-MM-DD HH:mm:ss\",onChange:(h,p)=>t(u,p)});default:return null}};return C.jsx(\"div\",{style:{padding:\"16px\",background:\"#fafafa\",borderRadius:8,marginBottom:16},children:C.jsxs(be,{layout:\"horizontal\",children:[C.jsx(sr,{gutter:[16,16],children:o.map(s=>C.jsx(Se,{span:a?6:8,children:C.jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\"},children:[C.jsx(\"span\",{style:{width:a?100:80,textAlign:\"right\",paddingRight:8,flexShrink:0,fontSize:13,color:\"#666\"},children:s.label}),C.jsx(\"div\",{style:{flex:1},children:l(s)})]})},s.key))}),C.jsx(sr,{style:{marginTop:16},children:C.jsxs(Se,{span:24,style:{display:\"flex\",justifyContent:\"flex-end\",alignItems:\"center\"},children:[C.jsx(ze,{type:\"link\",onClick:()=>i(!a),style:{marginRight:8},children:a?C.jsxs(C.Fragment,{children:[\"收起 \",C.jsx(Dle,{})]}):C.jsxs(C.Fragment,{children:[\"展开更多 \",C.jsx(bx,{})]})}),C.jsx(ze,{onClick:n,style:{marginRight:8},children:\"重置\"}),C.jsx(ze,{type:\"primary\",onClick:r,children:\"查询\"})]})})]})})},Fpt=({selectedRowKeys:e,selectedRows:t,onAction:r})=>{const n=e.length>0,a=l=>n&&t.every(s=>s.replyOrderStatus===l),i=a(Kt.PENDING_UPLOAD),o=a(Kt.PENDING_CONFIRM);return C.jsxs(\"div\",{style:{padding:\"8px 0\",display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[C.jsxs(Qt,{size:8,wrap:!0,children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>r(\"create\"),children:\"新增\"}),C.jsx(ze,{icon:C.jsx(a3,{}),disabled:!i,onClick:()=>r(\"uploadReply\"),children:\"上传回评\"}),C.jsx(ze,{icon:C.jsx(gB,{}),disabled:!o,onClick:()=>r(\"replyConfirm\"),children:\"回评确认\"}),C.jsx(ze,{icon:C.jsx(vB,{}),disabled:!n,onClick:()=>r(\"refundExceedAudit\"),children:\"返款超额审核\"}),C.jsx(ze,{icon:C.jsx(lde,{}),disabled:!n,onClick:()=>r(\"changeApplicant\"),children:\"更换申请人\"})]}),C.jsxs(Qt,{size:8,children:[C.jsx(ze,{icon:C.jsx(ont,{}),onClick:()=>r(\"export\"),children:\"批量导出\"}),C.jsx(ze,{icon:C.jsx(unt,{}),onClick:()=>r(\"exportPayment\"),children:\"请款单导出\"})]})]})},Spt=({data:e,total:t,loading:r,page:n,pageSize:a,selectedRowKeys:i,onPageChange:o,onSelectChange:l,onRowAction:s})=>{const u=()=>{const d=bpt.map(f=>{const h={key:f.key,dataIndex:f.dataIndex,title:f.title,width:f.width,ellipsis:!0};return f.fixed&&(h.fixed=f.fixed),f.dataIndex===\"replyOrderStatus\"&&(h.render=p=>{if(!p)return\"-\";const v=HB[p];return v?C.jsx(et,{color:v.color,children:v.text}):p}),f.dataIndex===\"refundStatus\"&&(h.render=p=>{if(!p)return\"-\";const v=C3[p];return v?C.jsx(et,{color:v.color,children:v.text}):p}),f.dataIndex===\"commentStatus\"&&(h.render=p=>{if(!p)return\"-\";const v=VB[p];return v?C.jsx(et,{color:v.color,children:v.text}):p}),f.dataIndex===\"orderStatus\"&&(h.render=p=>{if(!p)return\"-\";const v=Jfe[p];return v?C.jsx(et,{color:v.color,children:v.text}):p}),f.dataIndex===\"refundScheme\"&&(h.render=p=>{if(!p)return\"-\";const v=F3[p];return v?C.jsx(et,{color:v.color,children:v.text}):p}),(f.dataIndex===\"commentUrl\"||f.dataIndex===\"profileUrl\")&&(h.render=p=>p?C.jsx(Dr,{title:p,children:C.jsx(\"a\",{href:p,target:\"_blank\",rel:\"noopener noreferrer\",children:\"链接\"})}):\"-\"),f.dataIndex===\"product\"&&(h.render=(p,v)=>C.jsx(Dr,{title:p,children:C.jsx(ze,{type:\"link\",size:\"small\",style:{padding:0,height:\"auto\",maxWidth:170,textAlign:\"left\"},onClick:()=>s(\"productDetail\",v),children:C.jsx(\"span\",{style:{display:\"inline-block\",maxWidth:170,overflow:\"hidden\",textOverflow:\"ellipsis\"},children:p})})})),f.dataIndex===\"category\"&&(h.render=p=>p?C.jsx(Dr,{title:p,children:C.jsx(\"span\",{children:p})}):\"-\"),f.dataIndex===\"operators\"&&(h.render=p=>{if(!p)return\"-\";const v=p.split(\",\");return v.length<=2?p:C.jsx(Dr,{title:p,children:C.jsxs(\"span\",{children:[v.slice(0,2).join(\",\"),\"...\"]})})}),(f.dataIndex===\"reviewCount\"||f.dataIndex===\"commentCount\")&&(h.render=p=>p??0),f.dataIndex===\"afterSaleCode\"&&(h.render=p=>p?C.jsx(\"a\",{href:`/after-sale/detail/${p}`,children:p}):\"-\"),h});return d.push({key:\"action\",title:\"操作\",width:280,fixed:\"right\",render:(f,h)=>{const p=[];h.orderNo||p.push(C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(a3,{}),onClick:()=>s(\"uploadOrder\",h),children:\"上传订单\"},\"uploadOrder\")),h.replyOrderStatus===Kt.PENDING_UPLOAD&&p.push(C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(a3,{}),onClick:()=>s(\"uploadReply\",h),children:\"上传回评\"},\"upload\")),h.replyOrderStatus===Kt.PENDING_CONFIRM&&p.push(C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(gB,{}),onClick:()=>s(\"replyConfirm\",h),children:\"回评确认\"},\"confirm\")),h.refundStatus===ln.PENDING_AUDIT&&p.push(C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(vB,{}),onClick:()=>s(\"refundExceedAudit\",h),children:\"返款超额审核\"},\"exceedAudit\")),p.push(C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(yB,{}),onClick:()=>s(\"accountAudit\",h),children:\"账号审核\"},\"accountAudit\"));const v=[{key:\"changeOrder\",icon:C.jsx(ME,{}),label:\"更换订单\"},{key:\"alterOrder\",icon:C.jsx(od,{}),label:\"更改订单\"},{key:\"transferFree\",icon:C.jsx(vnt,{}),label:\"转免评\"},{key:\"changeApplicant\",icon:C.jsx(lde,{}),label:\"更换申请人\"},{key:\"edit\",icon:C.jsx(od,{}),label:\"编辑\"},{key:\"remark\",icon:C.jsx(Yle,{}),label:\"备注\"},{key:\"detail\",icon:C.jsx(Zo,{}),label:\"测评单详情\"},{key:\"refundDetail\",label:C.jsx(\"span\",{children:\"返款详情\"})}];return C.jsxs(Qt,{size:4,wrap:!0,children:[p,C.jsx(Fd,{menu:{items:v,onClick:({key:g})=>s(String(g),h)},placement:\"bottomRight\",children:C.jsx(ze,{type:\"link\",size:\"small\",children:C.jsx(ide,{})})})]})}}),d},c={selectedRowKeys:i,onChange:(d,f)=>{l(d,f)}};return C.jsx(Gr,{columns:u(),dataSource:e,rowKey:\"id\",loading:r,scroll:{x:3930},rowSelection:c,pagination:{current:n,pageSize:a,total:t,showSizeChanger:!0,showQuickJumper:!0,pageSizeOptions:[\"10\",\"20\",\"50\",\"100\"],showTotal:d=>`共 ${d} 条`,onChange:o},size:\"middle\"})},gh=(e,t)=>{if(!e)return\"-\";const r=t[e];return r?C.jsx(et,{color:r.color,children:r.text}):e},cK=(e,t)=>e===null?\"-\":`${t??\"\"} ${e.toFixed(2)}`,wpt=({visible:e,record:t,onClose:r})=>{const[n,a]=m.useState([]),[i,o]=m.useState([]),[l,s]=m.useState(!1),[u,c]=m.useState(!1);if(m.useEffect(()=>{if(!e||!t){a([]),o([]);return}s(!0),go.fetchRefunds(t.id).then(a).finally(()=>s(!1)),c(!0),go.fetchAuditLogs(t.id).then(o).finally(()=>c(!1))},[e,t]),!t)return null;const d=[{label:\"ID\",children:String(t.id)},{label:\"回评ID\",children:t.replyOrderId||\"-\"},{label:\"订单号\",children:t.orderNo||\"-\"},{label:\"售后来源\",children:String(t.channel)},{label:\"客户ID\",children:t.customerId||\"-\"},{label:\"客户\",children:t.customerName||\"-\"},{label:\"测评数\",children:String(t.reviewCount)},{label:\"评论数\",children:String(t.commentCount)}],f=[{label:\"国家\",children:String(t.country)},{label:\"产品\",children:t.product},{label:\"类目\",children:t.category||\"-\"},{label:\"ASIN\",children:t.asin},{label:\"店铺\",children:t.shop||\"-\"},{label:\"售后编码\",children:t.afterSaleCode?C.jsx(\"a\",{onClick:()=>{},children:t.afterSaleCode}):\"-\"}],h=[{label:\"订单状态\",children:gh(t.orderStatus,Jfe)},{label:\"回评单状态\",children:gh(t.replyOrderStatus,HB)},{label:\"返款状态\",children:gh(t.refundStatus,C3)},{label:\"评论状态\",children:gh(t.commentStatus,VB)},{label:\"评分星级\",children:t.starRating?`${t.starRating}星`:\"-\"},{label:\"是否自助返款\",children:gh(t.refundScheme,F3)}],p=[{label:\"评论链接\",children:t.commentUrl?C.jsx(\"a\",{href:t.commentUrl,target:\"_blank\",rel:\"noreferrer\",children:\"查看评论\"}):\"-\"},{label:\"Profile链接\",children:t.profileUrl?C.jsx(\"a\",{href:t.profileUrl,target:\"_blank\",rel:\"noreferrer\",children:\"查看Profile\"}):\"-\"}],v=[{label:\"评论时间\",children:t.commentTime||\"-\"},{label:\"开始时间\",children:t.startTime||\"-\"},{label:\"回评时间\",children:t.replyTime||\"-\"},{label:\"回评确认时间\",children:t.replyConfirmTime||\"-\"},{label:\"完成时间\",children:t.completedTime||\"-\"}],g=[{label:\"申请人\",children:t.applicant||\"-\"},{label:\"运营人员\",children:t.operators||\"-\"},{label:\"上评人\",children:t.reviewer||\"-\"},{label:\"回评确认人\",children:t.replyConfirmer||\"-\"},{label:\"请款人\",children:t.paymentApplicant||\"-\"},{label:\"备注\",children:t.remark||\"-\"}],y=[{title:\"返款ID\",dataIndex:\"refundId\",key:\"refundId\",width:120},{title:\"返款方案\",dataIndex:\"refundScheme\",key:\"refundScheme\",width:100,render:x=>gh(x,F3)},{title:\"返款状态\",dataIndex:\"refundStatus\",key:\"refundStatus\",width:110,render:x=>gh(x,C3)},{title:\"是否追加\",dataIndex:\"isAdditional\",key:\"isAdditional\",width:80,render:x=>x?\"是\":\"否\"},{title:\"返款类型\",dataIndex:\"refundType\",key:\"refundType\",width:100},{title:\"返款方式\",dataIndex:\"refundMethod\",key:\"refundMethod\",width:100,render:x=>{const F=ehe.find(S=>S.value===x);return F?F.label:x??\"-\"}},{title:\"金额\",dataIndex:\"amount\",key:\"amount\",width:100,render:(x,F)=>cK(x,F.currency)},{title:\"是否带手续费\",dataIndex:\"includeFee\",key:\"includeFee\",width:110,render:x=>x===!0?\"是\":x===!1?\"否\":\"-\"},{title:\"带手续费金额\",dataIndex:\"amountWithFee\",key:\"amountWithFee\",width:120,render:(x,F)=>x!==null?cK(x,F.currency):\"-\"},{title:\"收款账户\",dataIndex:\"receiveAccount\",key:\"receiveAccount\",width:140},{title:\"付款账户\",dataIndex:\"payAccount\",key:\"payAccount\",width:140},{title:\"返款时间\",dataIndex:\"paymentTime\",key:\"paymentTime\",width:150}],b=i.map((x,F)=>({key:F,children:C.jsxs(\"div\",{children:[C.jsxs(\"div\",{style:{fontWeight:500},children:[mpt[x.operationType]??x.operationType,\" — \",x.operator]}),C.jsx(\"div\",{style:{color:\"#999\",fontSize:12},children:x.operatedAt}),x.content&&C.jsx(\"div\",{style:{marginTop:4},children:x.content}),x.remark&&C.jsxs(\"div\",{style:{marginTop:4,color:\"#666\"},children:[\"备注: \",x.remark]})]})}));return C.jsx(RO,{title:`回评订单详情 - #${t.id}`,open:e,onClose:r,width:780,destroyOnClose:!0,children:C.jsx(Ig,{items:[{key:\"base\",label:\"订单信息\",children:C.jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:16},children:[C.jsx(Ne,{title:\"基本信息\",column:2,bordered:!0,size:\"small\",children:d.map((x,F)=>C.jsx(Ne.Item,{label:x.label,children:x.children},F))}),C.jsx(Ne,{title:\"产品与店铺\",column:2,bordered:!0,size:\"small\",children:f.map((x,F)=>C.jsx(Ne.Item,{label:x.label,children:x.children},F))}),C.jsx(Ne,{title:\"状态信息\",column:2,bordered:!0,size:\"small\",children:h.map((x,F)=>C.jsx(Ne.Item,{label:x.label,children:x.children},F))}),C.jsx(Ne,{title:\"评论信息\",column:2,bordered:!0,size:\"small\",children:p.map((x,F)=>C.jsx(Ne.Item,{label:x.label,children:x.children},F))}),C.jsx(Ne,{title:\"时间信息\",column:2,bordered:!0,size:\"small\",children:v.map((x,F)=>C.jsx(Ne.Item,{label:x.label,children:x.children},F))}),C.jsx(Ne,{title:\"操作人员\",column:2,bordered:!0,size:\"small\",children:g.map((x,F)=>C.jsx(Ne.Item,{label:x.label,children:x.children},F))})]})},{key:\"refunds\",label:\"返款信息\",children:C.jsx(mi,{spinning:l,children:n.length>0?C.jsx(Gr,{columns:y,dataSource:n,rowKey:\"refundId\",size:\"small\",pagination:!1,scroll:{x:1400}}):C.jsx(ra,{description:\"暂无返款记录\"})})},{key:\"logs\",label:\"处理记录\",children:C.jsx(mi,{spinning:u,children:i.length>0?C.jsx(q6,{items:b}):C.jsx(ra,{description:\"暂无处理记录\"})})}]})})};var nhe={exports:{}};(function(e,t){(function(r,n){e.exports=n()})(oi,function(){return function(r,n,a){r=r||{};var i=n.prototype,o={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};function l(u,c,d,f){return i.fromToBase(u,c,d,f)}a.en.relativeTime=o,i.fromToBase=function(u,c,d,f,h){for(var p,v,g,y=d.$locale().relativeTime||o,b=r.thresholds||[{l:\"s\",r:44,d:\"second\"},{l:\"m\",r:89},{l:\"mm\",r:44,d:\"minute\"},{l:\"h\",r:89},{l:\"hh\",r:21,d:\"hour\"},{l:\"d\",r:35},{l:\"dd\",r:25,d:\"day\"},{l:\"M\",r:45},{l:\"MM\",r:10,d:\"month\"},{l:\"y\",r:17},{l:\"yy\",d:\"year\"}],x=b.length,F=0;F<x;F+=1){var S=b[F];S.d&&(p=f?a(u).diff(d,S.d,!0):d.diff(u,S.d,!0));var E=(r.rounding||Math.round)(Math.abs(p));if(g=p>0,E<=S.r||!S.r){E<=1&&F>0&&(S=b[F-1]);var w=y[S.l];h&&(E=h(\"\"+E)),v=typeof w==\"string\"?w.replace(\"%d\",E):w(E,c,S.l,g);break}}if(c)return v;var D=g?y.future:y.past;return typeof D==\"function\"?D(v):D.replace(\"%s\",v)},i.to=function(u,c){return l(u,c,this,!0)},i.from=function(u,c){return l(u,c,this)};var s=function(u){return u.$u?a.utc():a()};i.toNow=function(u){return this.to(s(this),u)},i.fromNow=function(u){return this.from(s(this),u)}}})})(nhe);var Ept=nhe.exports;const Dpt=Yo(Ept);var Apt={exports:{}};(function(e,t){(function(r,n){e.exports=n(hoe)})(oi,function(r){function n(o){return o&&typeof o==\"object\"&&\"default\"in o?o:{default:o}}var a=n(r),i={name:\"zh-cn\",weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),ordinal:function(o,l){return l===\"W\"?o+\"周\":o+\"日\"},weekStart:1,yearStart:4,formats:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日Ah点mm分\",LLLL:\"YYYY年M月D日ddddAh点mm分\",l:\"YYYY/M/D\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日dddd HH:mm\"},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},meridiem:function(o,l){var s=100*o+l;return s<600?\"凌晨\":s<900?\"早上\":s<1100?\"上午\":s<1300?\"中午\":s<1800?\"下午\":\"晚上\"}};return a.default.locale(i,null,!0),i})})(Apt);ma.extend(Dpt);ma.locale(\"zh-cn\");const _pt=\"YYYY-MM-DD HH:mm:ss\";function dK(e,t=\"-\"){if(!e)return t;const r=ma(e);return r.isValid()?r.format(_pt):t}const Tpt=[{title:\"返款ID\",dataIndex:\"refundId\",key:\"refundId\",width:80},{title:\"返款方案\",dataIndex:\"refundScheme\",key:\"refundScheme\",width:100,render:e=>{const t=F3[e];return t?C.jsx(et,{color:t.color,children:t.text}):e}},{title:\"返款状态\",dataIndex:\"refundStatus\",key:\"refundStatus\",width:100,render:e=>{const t=C3[e];return t?C.jsx(et,{color:t.color,children:t.text}):e}},{title:\"追加返款\",dataIndex:\"isAdditional\",key:\"isAdditional\",width:80,render:e=>e?\"是\":\"否\"},{title:\"返款方式\",dataIndex:\"refundMethod\",key:\"refundMethod\",width:100},{title:\"返款金额\",dataIndex:\"amount\",key:\"amount\",width:90},{title:\"币种\",dataIndex:\"currency\",key:\"currency\",width:60},{title:\"实际请款金额\",dataIndex:\"actualAmount\",key:\"actualAmount\",width:110,render:e=>e??\"-\"},{title:\"实际返款币种\",dataIndex:\"actualCurrency\",key:\"actualCurrency\",width:110,render:e=>e??\"-\"},{title:\"汇率\",dataIndex:\"exchangeRate\",key:\"exchangeRate\",width:70,render:e=>e??\"-\"},{title:\"手续费\",dataIndex:\"fee\",key:\"fee\",width:70,render:e=>e??\"-\"},{title:\"是否带手续费返款\",dataIndex:\"includeFee\",key:\"includeFee\",width:130,render:e=>e==null?\"-\":e?\"是\":\"否\"},{title:\"带手续费返款金额\",dataIndex:\"amountWithFee\",key:\"amountWithFee\",width:130,render:e=>e??\"-\"},{title:\"收款账户\",dataIndex:\"receiveAccount\",key:\"receiveAccount\",width:140,render:e=>e??\"-\"},{title:\"收款码\",dataIndex:\"receiveCode\",key:\"receiveCode\",width:100,render:e=>e??\"-\"},{title:\"请款时间\",dataIndex:\"paymentTime\",key:\"paymentTime\",width:150,render:e=>dK(e)},{title:\"返款人\",dataIndex:\"payAccount\",key:\"payAccount\",width:100,render:e=>e??\"-\"},{title:\"返款时间\",dataIndex:\"paymentTime\",key:\"refundTime\",width:150,render:e=>dK(e)}],Ipt=({visible:e,reviewOrderId:t,onCancel:r})=>{const[n,a]=m.useState([]),[i,o]=m.useState(!1);return m.useEffect(()=>{if(!e||!t){a([]);return}o(!0),go.fetchRefunds(t).then(a).finally(()=>o(!1))},[e,t]),C.jsx(an,{title:\"返款详情\",open:e,onCancel:r,onOk:r,width:1200,destroyOnClose:!0,children:C.jsx(mi,{spinning:i,children:C.jsx(Gr,{columns:Tpt,dataSource:n,rowKey:\"refundId\",size:\"small\",pagination:!1,scroll:{x:1600}})})})},kpt=({visible:e,record:t,onCancel:r,onSuccess:n})=>{const[a]=be.useForm(),[i,o]=m.useState([]),[l,s]=m.useState([]),[u,c]=m.useState(null),[d,f]=m.useState(!1),[h,p]=m.useState(!1),[v,g]=m.useState(!1),y=()=>{a.resetFields(),o([]),s([]),c(null),g(!1)},b=()=>{y(),r()},x=async E=>{var D;const w=(D=a.getFieldValue(E))==null?void 0:D.trim();if(!w){vt.warning(E===\"commentId\"?\"请输入评论ID\":\"请输入评论链接\");return}f(!0),g(!0),c(null);try{const A=await go.searchComments({[E]:w});s(A)}catch{vt.error(\"评论查询失败\"),s([])}finally{f(!1)}},F=async E=>{if(!t)return;const w=await a.validateFields();if(i.length===0){vt.warning(\"请上传评论截图\");return}p(!0);try{await go.uploadReply(t.id,{commentId:(u==null?void 0:u.commentId)||w.commentId,commentUrl:(u==null?void 0:u.commentUrl)||w.commentUrl,screenshots:i.map(D=>D.name),rating:Number(w.rating),commentTime:w.commentTime.format(\"YYYY-MM-DD HH:mm:ss\"),bindType:E===\"queue\"?dp.QUEUE_FETCH:dp.MANUAL_UPLOAD}),vt.success(E===\"queue\"?\"已提交排队\":\"提交绑定成功\"),y(),n()}catch{vt.error(E===\"queue\"?\"提交排队失败\":\"提交绑定失败\")}finally{p(!1)}},S=[{title:\"评论ID\",dataIndex:\"commentId\",width:150},{title:\"国家\",dataIndex:\"country\",width:100,render:E=>E||\"-\"},{title:\"品名\",dataIndex:\"productName\",width:150,ellipsis:!0,render:E=>E||\"-\"},{title:\"Profile name\",dataIndex:\"profileName\",width:130,render:E=>E||\"-\"},{title:\"评论时间\",dataIndex:\"commentTime\",width:150}];return C.jsx(an,{title:\"上传回评\",open:e,onCancel:b,width:640,footer:null,destroyOnClose:!0,children:C.jsxs(be,{form:a,preserve:!1,layout:\"vertical\",children:[t&&C.jsx(\"div\",{style:{background:\"#f5f5f5\",padding:16,marginBottom:18},children:C.jsxs(sr,{gutter:[24,12],children:[C.jsxs(Se,{span:12,children:[C.jsx(ji.Text,{type:\"secondary\",children:\"订单号\"}),C.jsx(\"div\",{children:t.orderNo||\"-\"})]}),C.jsxs(Se,{span:12,children:[C.jsx(ji.Text,{type:\"secondary\",children:\"店铺\"}),C.jsx(\"div\",{children:t.shop||\"-\"})]}),C.jsxs(Se,{span:12,children:[C.jsx(ji.Text,{type:\"secondary\",children:\"产品\"}),C.jsx(\"div\",{children:t.product||\"-\"})]}),C.jsxs(Se,{span:12,children:[C.jsx(ji.Text,{type:\"secondary\",children:\"ASIN\"}),C.jsx(\"div\",{children:t.asin||\"-\"})]}),C.jsxs(Se,{span:12,children:[C.jsx(ji.Text,{type:\"secondary\",children:\"国家\"}),C.jsx(\"div\",{children:t.country||\"-\"})]})]})}),C.jsxs(\"div\",{style:{color:\"#8c6d1f\",marginBottom:16,fontSize:13},children:[C.jsx(G0,{style:{color:\"#faad14\",marginRight:6}}),\"若实时获取评论失败,可选择提交排队等待系统自动获取并绑定\"]}),C.jsx(be.Item,{label:\"评论ID\",style:{marginBottom:8},children:C.jsxs(ut.Group,{compact:!0,children:[C.jsx(be.Item,{name:\"commentId\",noStyle:!0,children:C.jsx(ut,{style:{width:\"calc(100% - 76px)\"},placeholder:\"请输入\"})}),C.jsx(ze,{type:\"primary\",ghost:!0,icon:C.jsx(xa,{}),loading:d,onClick:()=>x(\"commentId\"),children:\"查询\"})]})}),C.jsx(ji.Text,{type:\"secondary\",style:{display:\"block\",marginBottom:8,fontSize:12},children:\"请选择对应的评论进行关联,若已关联请忽略\"}),C.jsx(be.Item,{label:\"评论链接\",style:{marginBottom:8},children:C.jsxs(ut.Group,{compact:!0,children:[C.jsx(be.Item,{name:\"commentUrl\",noStyle:!0,children:C.jsx(ut,{style:{width:\"calc(100% - 76px)\"},placeholder:\"请输入评论链接\"})}),C.jsx(ze,{type:\"primary\",ghost:!0,icon:C.jsx(xa,{}),loading:d,onClick:()=>x(\"commentUrl\"),children:\"查询\"})]})}),C.jsx(ji.Text,{type:\"secondary\",style:{display:\"block\",marginBottom:8,fontSize:12},children:\"此查询可以通过评论链接、评论ID实时抓取评论\"}),C.jsx(Gr,{columns:S,dataSource:l,rowKey:\"commentId\",size:\"small\",pagination:!1,loading:d,rowSelection:{type:\"radio\",selectedRowKeys:u?[u.commentId]:[],onChange:(E,w)=>c(w[0]??null)},locale:{emptyText:v?C.jsx(ra,{description:\"暂无数据\"}):C.jsx(ra,{description:\"请先查询评论\"})},style:{marginBottom:16}}),C.jsxs(\"div\",{style:{color:\"#314dcb\",marginBottom:16,fontSize:13},children:[C.jsx(G0,{style:{marginRight:6}}),\"评论截图上传后表示当前订单已评论,请仔细核对评论是否属于当前订单\"]}),C.jsx(be.Item,{label:\"评论截图\",required:!0,children:C.jsxs(J6.Dragger,{fileList:i,onChange:({fileList:E})=>o(E),beforeUpload:()=>!1,accept:\".jpg,.jpeg,.png,.pdf,.mp4\",multiple:!0,style:{minHeight:170},children:[C.jsx(\"p\",{className:\"ant-upload-drag-icon\",children:C.jsx(Krt,{})}),C.jsx(\"p\",{className:\"ant-upload-text\",children:C.jsx(ze,{type:\"primary\",children:\"选择文件\"})}),C.jsx(\"p\",{className:\"ant-upload-hint\",children:\"仅支持 jpg、png、jpeg、pdf、mp4 格式\"})]})}),C.jsx(be.Item,{name:\"rating\",label:\"评分星级\",rules:[{required:!0,message:\"请选择评分星级\"}],children:C.jsx(Qe,{placeholder:\"请选择评分星级\",options:rhe})}),C.jsx(be.Item,{name:\"commentTime\",label:\"评论时间\",rules:[{required:!0,message:\"请选择评论时间\"}],children:C.jsx(Wl,{showTime:!0,style:{width:\"100%\"}})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"center\",gap:12,marginTop:24},children:[C.jsx(ze,{onClick:b,children:\"取消\"}),C.jsx(ze,{loading:h,style:{background:\"#f5a623\",color:\"#fff\",borderColor:\"#f5a623\"},onClick:()=>F(\"queue\"),children:\"提交排队\"}),C.jsx(ze,{type:\"primary\",loading:h,onClick:()=>F(\"bind\"),children:\"提交绑定\"})]})]})})},fK=({visible:e,record:t,mode:r=\"upload\",onCancel:n,onSuccess:a})=>{const[i]=be.useForm(),[o,l]=m.useState([]),[s,u]=m.useState(null),[c,d]=m.useState(!1),[f,h]=m.useState(!1),[p,v]=m.useState(!1),g=r===\"change\",y=()=>{i.resetFields(),l([]),u(null),d(!1),h(!1),v(!1)},b=()=>{y(),n()},x=async()=>{var w;const E=(w=i.getFieldValue(\"orderNo\"))==null?void 0:w.trim();if(!E){vt.warning(\"请输入订单号\");return}h(!0),d(!0),u(null);try{const D=await go.searchOrders({orderNo:E});l(D)}catch{vt.error(\"订单查询失败\"),l([])}finally{h(!1)}},F=async()=>{if(!t)return;const E=await i.validateFields();if(!s){vt.warning(\"请选择要绑定的订单\");return}v(!0);try{g?(await go.changeOrder(t.id,{orderNo:s.orderNo,reason:E.reason}),vt.success(\"更换订单成功\")):(await go.uploadOrder(t.id,{orderNo:s.orderNo}),vt.success(\"上传订单成功\")),y(),a()}catch{vt.error(g?\"更换订单失败\":\"上传订单失败\")}finally{v(!1)}},S=[{title:\"订单号\",dataIndex:\"orderNo\",width:170},{title:\"店铺\",dataIndex:\"shop\",width:140},{title:\"产品\",dataIndex:\"product\",width:160,ellipsis:!0},{title:\"sku\",dataIndex:\"sku\",width:120,render:E=>E||\"-\"}];return C.jsx(an,{title:g?\"更换订单\":\"上传订单\",open:e,onCancel:b,width:540,destroyOnClose:!0,footer:[C.jsx(ze,{onClick:b,children:\"取消\"},\"cancel\"),C.jsx(ze,{type:\"primary\",loading:p,onClick:F,children:\"确定\"},\"submit\")],children:C.jsxs(be,{form:i,preserve:!1,layout:\"vertical\",children:[C.jsx(be.Item,{label:\"订单号\",required:!0,style:{marginBottom:4},children:C.jsxs(ut.Group,{compact:!0,children:[C.jsx(be.Item,{name:\"orderNo\",noStyle:!0,rules:[{required:!0,message:\"请输入订单号\"}],initialValue:(t==null?void 0:t.orderNo)||void 0,children:C.jsx(ut,{style:{width:\"calc(100% - 76px)\"},placeholder:\"请输入订单号\",onPressEnter:x})}),C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),loading:f,onClick:x,children:\"查询\"})]})}),C.jsx(ji.Text,{type:\"secondary\",style:{display:\"block\",marginBottom:8,fontSize:12},children:\"请查询并勾选订单进行绑定\"}),C.jsx(Gr,{columns:S,dataSource:o,rowKey:\"orderNo\",loading:f,size:\"small\",pagination:!1,rowSelection:{type:\"radio\",selectedRowKeys:s?[s.orderNo]:[],onChange:(E,w)=>u(w[0]??null)},locale:{emptyText:c?C.jsx(ra,{description:\"暂未查询到订单,请稍后重试或确认订单号是否正确\"}):C.jsx(ra,{description:\"请输入订单号后查询\"})},style:{marginBottom:g?16:0}}),g&&C.jsx(be.Item,{label:\"更换原因\",name:\"reason\",rules:[{required:!0,message:\"请输入更换原因\"}],children:C.jsx(ut.TextArea,{rows:3,maxLength:500,showCount:!0,placeholder:\"请输入更换原因\"})})]})})},Rpt=({visible:e,record:t,onCancel:r,onSuccess:n})=>{const[a]=be.useForm(),[i,o]=m.useState(!1);m.useEffect(()=>{!e||!t||a.setFieldsValue({orderNo:t.orderNo,shop:t.shop,startTime:t.startTime?ma(t.startTime):void 0,reason:void 0})},[a,t,e]);const l=async()=>{var u,c;if(!t)return;const s=await a.validateFields();o(!0);try{await go.alterOrder(t.id,{orderNo:s.orderNo.trim(),shop:(u=s.shop)==null?void 0:u.trim(),startTime:(c=s.startTime)==null?void 0:c.format(\"YYYY-MM-DD HH:mm:ss\")}),vt.success(\"更改订单成功\"),a.resetFields(),n()}catch{vt.error(\"更改订单失败\")}finally{o(!1)}};return C.jsx(an,{title:\"更改订单\",open:e,onCancel:r,onOk:l,confirmLoading:i,destroyOnClose:!0,width:520,children:C.jsxs(be,{form:a,layout:\"vertical\",preserve:!1,children:[C.jsx(be.Item,{label:\"订单号\",name:\"orderNo\",rules:[{required:!0,message:\"请输入订单号\"}],children:C.jsx(ut,{placeholder:\"请输入订单号\"})}),C.jsx(be.Item,{label:\"店铺\",name:\"shop\",children:C.jsx(ut,{placeholder:\"请输入店铺\"})}),C.jsx(be.Item,{label:\"订购时间\",name:\"startTime\",children:C.jsx(Wl,{showTime:!0,style:{width:\"100%\"}})}),C.jsx(be.Item,{label:\"更改原因\",name:\"reason\",rules:[{required:!0,message:\"请输入更改原因\"}],children:C.jsx(ut.TextArea,{rows:3,maxLength:500,showCount:!0,placeholder:\"请输入更改原因\"})})]})})},Mpt=({visible:e,record:t,onCancel:r,onSuccess:n})=>{const[a]=be.useForm(),[i,o]=m.useState([]),l=async c=>{try{await a.validateFields(),vt.success(c===\"queue\"?\"已提交排队\":\"提交绑定成功\"),a.resetFields(),n()}catch{}},s=()=>{o([{commentId:\"R3L8K2M9N1P2\",rating:\"5\",productName:(t==null?void 0:t.product)||\"\",profileName:\"Amazon Customer\",commentTime:\"2026-05-20 14:30:00\"}])},u=[{title:\"评论ID\",dataIndex:\"commentId\",key:\"commentId\"},{title:\"星级\",dataIndex:\"rating\",key:\"rating\"},{title:\"品名\",dataIndex:\"productName\",key:\"productName\"},{title:\"Profile name\",dataIndex:\"profileName\",key:\"profileName\"},{title:\"评论时间\",dataIndex:\"commentTime\",key:\"commentTime\"}];return C.jsx(an,{title:\"回评确认\",open:e,onCancel:r,width:720,footer:null,destroyOnClose:!0,children:C.jsxs(be,{form:a,layout:\"vertical\",preserve:!1,children:[C.jsx(be.Item,{label:\"ASIN:\",children:C.jsx(ut,{value:(t==null?void 0:t.asin)||\"\",disabled:!0})}),C.jsx(be.Item,{label:\"国家:\",children:C.jsx(ut,{value:(t==null?void 0:t.country)||\"\",disabled:!0})}),C.jsx(be.Item,{label:\"Push ID\",children:C.jsx(ut,{placeholder:\"请输入Push ID\"})}),C.jsx(\"div\",{style:{color:\"#faad14\",marginBottom:16,fontSize:13},children:C.jsx(\"strong\",{children:\"若实时获取评论失败,可选择提交排队等待系统自动获取并绑定\"})}),C.jsx(be.Item,{label:\"评论ID\",children:C.jsx(ut.Search,{placeholder:\"请输入\",enterButton:C.jsxs(C.Fragment,{children:[C.jsx(xa,{}),\" 查询\"]}),onSearch:s})}),C.jsx(\"div\",{style:{color:\"#999\",fontSize:12,marginTop:-12,marginBottom:8},children:\"请选择对应的评论进行关联,若已关联请忽略\"}),C.jsx(be.Item,{label:\"评论链接\",children:C.jsx(ut.Search,{placeholder:\"请输入评论链接\",enterButton:C.jsxs(C.Fragment,{children:[C.jsx(xa,{}),\" 查询\"]}),onSearch:s})}),C.jsx(\"div\",{style:{color:\"#999\",fontSize:12,marginTop:-12,marginBottom:8},children:\"此查询可以通过评论链接、评论ID实时抓取评论\"}),C.jsx(Gr,{columns:u,dataSource:i,rowKey:\"commentId\",size:\"small\",pagination:!1,locale:{emptyText:\"暂无数据\"},style:{marginBottom:16}}),C.jsx(be.Item,{name:\"rating\",label:\"评分星级\",rules:[{required:!0,message:\"请选择评分星级\"}],children:C.jsx(ut,{placeholder:\"请选择评分星级\"})}),C.jsx(be.Item,{name:\"commentTime\",label:\"评论时间\",rules:[{required:!0,message:\"请选择评论时间\"}],children:C.jsx(Wl,{showTime:!0,style:{width:\"100%\"}})}),C.jsx(be.Item,{name:\"meetsRequirement\",label:\"回评要求\",rules:[{required:!0,message:\"请选择\"}],children:C.jsxs(Ti.Group,{children:[C.jsx(Ti,{value:!0,children:\"符合\"}),C.jsx(Ti,{value:!1,children:\"不符合\"})]})}),C.jsx(be.Item,{name:\"reason\",label:\"原因\",children:C.jsx(ut.TextArea,{rows:4,placeholder:\"请输入原因\",showCount:!0,maxLength:5e3})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"flex-end\",gap:8,marginTop:24},children:[C.jsx(ze,{onClick:r,children:\"取消\"}),C.jsx(ze,{type:\"primary\",danger:!0,onClick:()=>l(\"queue\"),children:\"提交排队\"}),C.jsx(ze,{type:\"primary\",onClick:()=>l(\"bind\"),children:\"提交绑定\"})]})]})})},Ppt=({visible:e,record:t,onCancel:r,onSuccess:n})=>{const[a]=be.useForm(),i=async()=>{try{await a.validateFields(),vt.success(\"审核提交成功\"),a.resetFields(),n()}catch{}},o=t?[{key:\"1\",refundAmount:\"$50.00\",exceedReason:`Cashback $50 ASIN: ${t.asin||\"-\"}`,audit:null,auditOpinion:\"\"}]:[],l=[{title:\"返款金额\",dataIndex:\"refundAmount\",key:\"refundAmount\",width:100},{title:\"超额说明\",dataIndex:\"exceedReason\",key:\"exceedReason\"},{title:\"审核\",dataIndex:\"audit\",key:\"audit\",width:120,render:()=>C.jsx(be.Item,{name:\"auditResult\",rules:[{required:!0}],style:{margin:0},children:C.jsxs(Ti.Group,{children:[C.jsx(Ti,{value:\"pass\",children:\"通过\"}),C.jsx(Ti,{value:\"reject\",children:\"不通过\"})]})})},{title:\"审核意见\",dataIndex:\"auditOpinion\",key:\"auditOpinion\",render:()=>C.jsx(be.Item,{name:\"auditOpinion\",style:{margin:0},children:C.jsx(ut.TextArea,{rows:3,placeholder:\"请输入审核意见\",showCount:!0,maxLength:200})})}];return C.jsx(an,{title:\"返款超额审核\",open:e,onCancel:r,width:800,footer:[C.jsx(ze,{onClick:r,children:\"取消\"},\"cancel\"),C.jsx(ze,{type:\"primary\",onClick:i,children:\"确定\"},\"submit\")],destroyOnClose:!0,children:C.jsx(be,{form:a,preserve:!1,children:C.jsx(Gr,{columns:l,dataSource:o,pagination:!1,bordered:!0,size:\"small\"})})})},Opt=({visible:e,record:t,onCancel:r,onSuccess:n})=>{const[a]=be.useForm(),i=async()=>{try{await a.validateFields(),vt.success(\"账号审核完成\"),a.resetFields(),n()}catch{}};return C.jsx(an,{title:\"账号审核\",open:e,onCancel:r,width:600,footer:[C.jsx(ze,{onClick:r,children:\"取消\"},\"cancel\"),C.jsx(ze,{type:\"primary\",onClick:i,children:\"确定\"},\"submit\")],destroyOnClose:!0,children:C.jsxs(be,{form:a,layout:\"vertical\",preserve:!1,children:[C.jsxs(\"div\",{style:{marginBottom:16,padding:12,background:\"#f5f5f5\",borderRadius:4},children:[C.jsxs(\"div\",{children:[C.jsx(\"strong\",{children:\"客户ID\"}),(t==null?void 0:t.customerId)||\"-\"]}),C.jsxs(\"div\",{children:[C.jsx(\"strong\",{children:\"客户名称:\"}),(t==null?void 0:t.customerName)||\"-\"]}),C.jsxs(\"div\",{children:[C.jsx(\"strong\",{children:\"售后编码:\"}),(t==null?void 0:t.afterSaleCode)||\"-\"]})]}),C.jsx(be.Item,{name:\"auditResult\",label:\"审核结果\",rules:[{required:!0,message:\"请选择审核结果\"}],children:C.jsxs(Ti.Group,{children:[C.jsx(Ti,{value:\"pass\",children:\"通过\"}),C.jsx(Ti,{value:\"reject\",children:\"不通过\"})]})}),C.jsx(be.Item,{name:\"remark\",label:\"审核备注\",children:C.jsx(ut.TextArea,{rows:4,placeholder:\"请输入审核备注\",showCount:!0,maxLength:500})})]})})},Bpt=[{label:\"Jhona Ver\",value:\"Jhona Ver\"},{label:\"Warren Borinaga\",value:\"Warren Borinaga\"},{label:\"Ryaven Dela Cruz\",value:\"Ryaven Dela Cruz\"},{label:\"Alicia Mae Alarilla\",value:\"Alicia Mae Alarilla\"},{label:\"RONALD TORRES\",value:\"RONALD TORRES\"}],Npt=({visible:e,record:t,onCancel:r,onSuccess:n})=>{const[a]=be.useForm(),i=async()=>{try{await a.validateFields(),vt.success(\"更换申请人成功\"),a.resetFields(),n()}catch{}};return C.jsx(an,{title:\"更换申请人\",open:e,onCancel:r,width:500,footer:[C.jsx(ze,{onClick:r,children:\"取消\"},\"cancel\"),C.jsx(ze,{type:\"primary\",onClick:i,children:\"确定\"},\"submit\")],destroyOnClose:!0,children:C.jsxs(be,{form:a,layout:\"vertical\",preserve:!1,children:[C.jsx(be.Item,{name:\"applicant\",label:\"申请人\",rules:[{required:!0,message:\"请选择申请人\"}],children:C.jsx(Qe,{placeholder:\"请选择申请人\",options:Bpt,showSearch:!0,allowClear:!0})}),C.jsx(be.Item,{name:\"reason\",label:\"更换原因\",rules:[{required:!0,message:\"请输入更换原因\"}],children:C.jsx(ut.TextArea,{rows:4,placeholder:\"请输入更换原因\",showCount:!0,maxLength:5e3})})]})})},$pt=({visible:e,record:t,onCancel:r,onSuccess:n})=>{const[a]=be.useForm(),i=async()=>{try{await a.validateFields(),vt.success(\"备注保存成功\"),a.resetFields(),n()}catch{}};return C.jsx(an,{title:\"备注\",open:e,onCancel:r,width:500,footer:[C.jsx(ze,{onClick:r,children:\"取消\"},\"cancel\"),C.jsx(ze,{type:\"primary\",onClick:i,children:\"确定\"},\"submit\")],destroyOnClose:!0,children:C.jsx(be,{form:a,layout:\"vertical\",preserve:!1,children:C.jsx(be.Item,{name:\"remark\",label:\"备注\",rules:[{required:!0,message:\"请输入备注\"}],children:C.jsx(ut.TextArea,{rows:6,placeholder:\"请输入备注\",showCount:!0,maxLength:5e3})})})})},Lpt=({visible:e,afterSaleCode:t,onCancel:r})=>{const n=Ia(),a={userName:\"buba00\",userId:\"200235449\",country:\"United Kingdom\",phone:\"-\",email:\"-\",userType:\"APP用户\",userAddress:\"-\",joyhubId:\"22114554\",joyhubNickname:\"buba00\",appRegisterTime:\"2026-05-21 07:02:09\",appLastOnlineTime:\"2026-05-22 23:08:24\",appBoundProducts:\"红颜知己\",appActivityCount:\"-\",emailCode:\"-\",totalOrders:\"206-9778136-6488364 (订单1)\",replyCount:1,reviewCount:0},i={status:\"已完成\",callNumber:\"-\",对接账号:\"2066\",userEmail:\"-\",userEmailRemark:\"-\",orderQueryRemark:\"-\",consultOrder:\"206-9778136-6488364\",shop:\"可用*UK2、UK4*AM-G147-UK / MaiDaXingXuan\",problemProduct:\"-\",problemAttachment:\"-\",solution:\"回评(红颜知己-紫色-新APP进行中\",solutionRemark:\"-\",refundAccount1:\"-\",refundAccount1Remark:\"-\",visitTime:\"-\",visitRemark:\"-\",freeTimeSlot:\"-\",freeTimeRemark:\"-\",csStaff:\"Jhona Ver\",serviceTime:\"2026-05-23 11:10:45\"},o={orderNo:\"206-9778136-6488364\",product:\"ROSELLA 2 / 红颜知己-紫色-新APP\",asin:\"B0FS35RJ9Q\",msku:\"2Q-SABN-MAGW\",quantity:1,unitPrice:\"£ 13.32\",title:\"Lolitree AI Sync Rose Toy Clit Sucker, Comfort-Fit Flat-Rim, 10 Sucking Vibrating Modes Nipple Clitorise Stimulator Sucker Adult Toys, Female Sex Toyscouples for Women Vibrabrat, Silent Pleasure\",recipient:\"Hanna Wegrowska\",country:\"Britain\",totalAmount:\"£ 15.99\",trackingNo:\"-\",shop:\"可用*UK2、UK4*AM-G147-UK / MaiDaXingXuan\",address:\"LONDON GB\",zipCode:\"N9 7BD\",orderTime:\"2026-05-19 18:55:10\"},l=()=>{n(`/cs/chat-record?customerId=${a.userId}`)};return C.jsxs(an,{title:\"售后信息详情\",open:e,onCancel:r,width:1e3,footer:null,destroyOnClose:!0,children:[C.jsxs(\"div\",{style:{marginBottom:24},children:[C.jsx(\"h4\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8,marginBottom:16},children:\"用户信息\"}),C.jsxs(Ne,{bordered:!0,size:\"small\",column:3,children:[C.jsx(Ne.Item,{label:\"用户姓名\",children:a.userName}),C.jsx(Ne.Item,{label:\"用户ID\",children:a.userId}),C.jsx(Ne.Item,{label:\"所在国家\",children:a.country}),C.jsx(Ne.Item,{label:\"电话\",children:a.phone}),C.jsx(Ne.Item,{label:\"邮箱\",children:a.email}),C.jsx(Ne.Item,{label:\"类型\",children:a.userType}),C.jsx(Ne.Item,{label:\"用户地址\",children:a.userAddress}),C.jsx(Ne.Item,{label:\"JOYHUB的ID\",children:a.joyhubId}),C.jsx(Ne.Item,{label:\"JOYHUB 昵称\",children:a.joyhubNickname}),C.jsx(Ne.Item,{label:\"APP注册时间\",children:a.appRegisterTime}),C.jsx(Ne.Item,{label:\"APP最近上线时间\",children:a.appLastOnlineTime}),C.jsx(Ne.Item,{label:\"APP绑定产品\",children:a.appBoundProducts}),C.jsx(Ne.Item,{label:\"APP参与活动数\",children:a.appActivityCount}),C.jsx(Ne.Item,{label:\"APP参与推送\",children:a.emailCode}),C.jsx(Ne.Item,{label:\"邮箱编码\",children:a.emailCode}),C.jsx(Ne.Item,{label:\"历史订单\",children:a.totalOrders}),C.jsx(Ne.Item,{label:\"回评数\",children:a.replyCount}),C.jsx(Ne.Item,{label:\"测评数\",children:a.reviewCount})]})]}),C.jsxs(\"div\",{style:{marginBottom:24},children:[C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:16},children:[C.jsxs(\"h4\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8,margin:0},children:[\"售后服务详情 \",C.jsx(et,{color:\"success\",children:i.status})]}),C.jsx(ze,{type:\"primary\",size:\"small\",icon:C.jsx(n3,{}),onClick:l,children:\"查看客服记录\"})]}),C.jsxs(Ne,{bordered:!0,size:\"small\",column:2,children:[C.jsx(Ne.Item,{label:\"来电号码\",children:i.callNumber}),C.jsx(Ne.Item,{label:\"对接账号\",children:i.对接账号}),C.jsx(Ne.Item,{label:\"用户邮箱\",children:i.userEmail}),C.jsx(Ne.Item,{label:\"用户邮箱备注\",children:i.userEmailRemark}),C.jsx(Ne.Item,{label:\"订单查询备注\",children:i.orderQueryRemark}),C.jsx(Ne.Item,{label:\"咨询订单1\",children:C.jsx(\"a\",{children:i.consultOrder})}),C.jsx(Ne.Item,{label:\"所属店铺\",children:i.shop}),C.jsx(Ne.Item,{label:\"问题产品\",children:i.problemProduct}),C.jsx(Ne.Item,{label:\"问题记录附件\",children:i.problemAttachment}),C.jsx(Ne.Item,{label:\"解决方案\",children:i.solution}),C.jsx(Ne.Item,{label:\"解决方案备注\",children:i.solutionRemark}),C.jsx(Ne.Item,{label:\"退款账户1\",children:i.refundAccount1}),C.jsx(Ne.Item,{label:\"退款账户1备注\",children:i.refundAccount1Remark}),C.jsx(Ne.Item,{label:\"回访时间\",children:i.visitTime}),C.jsx(Ne.Item,{label:\"回访时间备注\",children:i.visitRemark}),C.jsx(Ne.Item,{label:\"空闲时间段\",children:i.freeTimeSlot}),C.jsx(Ne.Item,{label:\"空闲时间段备注\",children:i.freeTimeRemark}),C.jsx(Ne.Item,{label:\"客服人员\",children:i.csStaff}),C.jsx(Ne.Item,{label:\"服务时间\",children:i.serviceTime})]})]}),C.jsx(wp,{}),C.jsxs(\"div\",{style:{marginBottom:24},children:[C.jsx(\"h4\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8,marginBottom:16},children:\"咨询订单信息\"}),C.jsxs(\"div\",{style:{border:\"1px solid #d9d9d9\",borderRadius:4,padding:16},children:[C.jsxs(\"div\",{children:[C.jsx(\"strong\",{children:\"订单号:\"}),o.orderNo]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"产品:\"}),C.jsx(et,{color:\"success\",children:\"Shipped\"}),C.jsx(et,{color:\"blue\",children:\"APP回评\"}),C.jsx(\"br\",{}),o.product,C.jsx(\"br\",{}),C.jsx(et,{color:\"success\",children:\"在售\"}),C.jsx(et,{children:\"回评订单 (1)\"})]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"ASIN\"}),o.asin]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"MSKU\"}),o.msku]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"数量:\"}),o.quantity]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"单价:\"}),o.unitPrice]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"标题:\"}),o.title]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"收件人:\"}),o.recipient]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"国家:\"}),o.country]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"总金额:\"}),o.totalAmount]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"运单号:\"}),o.trackingNo]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"店铺:\"}),o.shop]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"地址:\"}),o.address]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"邮编:\"}),o.zipCode]}),C.jsx(wp,{style:{margin:\"12px 0\"}}),C.jsxs(\"div\",{children:[C.jsx(\"strong\",{children:\"商品下单\"}),\" \",o.orderTime]})]})]}),C.jsxs(\"div\",{children:[C.jsx(\"h4\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8,marginBottom:16},children:\"数据日志\"}),C.jsx(q6,{items:[{children:\"2026-05-23 11:10:45 / Jhona Ver 创建\"}]})]})]})},hK={},jpt=new Set([\"startTimeRange\",\"replyTimeRange\",\"completedTimeRange\",\"commentTimeRange\",\"refundTimeRange\",\"replyUploadTimeRange\",\"replyConfirmTimeRange\",\"orderTimeRange\",\"returnTimeRange\"]),zpt={startTimeRange:\"startTime\",replyTimeRange:\"replyTime\",completedTimeRange:\"completedTime\",commentTimeRange:\"commentTime\",refundTimeRange:\"refundTime\",replyUploadTimeRange:\"replyUploadTime\",replyConfirmTimeRange:\"replyConfirmTime\",orderTimeRange:\"orderTime\",returnTimeRange:\"returnTime\"};function Hpt(){const e=La(),{list:t,total:r,loading:n}=da(v=>v.reviewOrder),[a,i]=m.useState(hK),[o,l]=m.useState(1),[s,u]=m.useState(20),c=m.useCallback((v,g,y)=>{const b={};return Object.keys(v).forEach(x=>{const F=v[x];if(!(F===\"\"||F===void 0||F===null)){if(Array.isArray(F)){if(jpt.has(x)){if(F.length===2&&F[0]&&F[1]){const S=zpt[x]||x.replace(\"Range\",\"\");b[`${S}Start`]=typeof F[0]==\"string\"?F[0].replace(\"T\",\" \").substring(0,19):F[0],b[`${S}End`]=typeof F[1]==\"string\"?F[1].replace(\"T\",\" \").substring(0,19):F[1]}return}b[x]=F.join(\",\");return}if(typeof F==\"boolean\"){b[x]=String(F);return}b[x]=F}}),{page:g,pageSize:y,filters:v,...b}},[]),d=m.useCallback((v,g,y)=>{const S=c(v??a,g??o,y??s);e(bw(S))},[e,a,o,s,c]),f=m.useCallback((v,g)=>{i(y=>({...y,[v]:g}))},[]),h=m.useCallback(()=>{i(hK),l(1)},[]),p=m.useCallback((v,g)=>{l(v),u(g)},[]);return m.useEffect(()=>{d()},[]),{list:t,total:r,loading:n,filters:a,page:o,pageSize:s,fetchList:d,updateFilter:f,resetFilters:h,changePage:p}}const Vpt={operator:[\"create\",\"uploadOrder\",\"uploadReply\",\"changeOrder\",\"alterOrder\",\"transfer\",\"changeApplicant\",\"paymentRequest\",\"export\"],viewer:[\"export\"],auditor:[\"serviceAudit\",\"export\",\"paymentRequest\"]};function Wpt(){try{const e=localStorage.getItem(\"user_info\");if(e)return JSON.parse(e).role??\"viewer\"}catch{}return\"viewer\"}function Gpt(){const e=Wpt();return{hasPermission:r=>e===\"admin\"?!0:(Vpt[e]??[]).includes(r),role:e}}const Upt=()=>{const e=Ia(),{hasPermission:t}=Gpt(),{list:r,total:n,loading:a,filters:i,page:o,pageSize:l,fetchList:s,updateFilter:u,resetFilters:c,changePage:d}=Hpt(),[f,h]=m.useState([]),[p,v]=m.useState([]),[g,y]=m.useState(!1),[b,x]=m.useState(null),[F,S]=m.useState(!1),[E,w]=m.useState(null),[D,A]=m.useState(!1),[_,I]=m.useState(!1),[M,T]=m.useState(!1),[k,R]=m.useState(!1),[P,B]=m.useState(!1),[N,O]=m.useState(!1),[z,W]=m.useState(!1),[L,j]=m.useState(!1),[H,V]=m.useState(!1),[U,Q]=m.useState(null),[K,Y]=m.useState(!1),[ee,J]=m.useState(null),[X,ce]=m.useState(null),oe=m.useCallback(Fe=>{Fe(!1),h([]),v([]),s()},[s]),ue=m.useCallback(Fe=>{w(Fe),S(!0)},[]),ie=m.useCallback(()=>{s(i,1,l)},[s,i,l]),fe=m.useCallback(()=>{c(),s(void 0,1,20)},[c,s]),xe=m.useCallback((Fe,me)=>{d(Fe,me),s(void 0,Fe,me)},[d,s]),Ee=m.useCallback((Fe,me)=>{h(Fe),v(me)},[]),De=m.useCallback(Fe=>{if(!t(Fe)){vt.warning(\"没有操作权限\");return}switch(Fe){case\"create\":e(\"/review-order/create\");break;case\"export\":vt.info(\"导出功能开发中\");break;case\"batchDelete\":vt.success(`已删除 ${f.length} 条记录`),h([]),v([]),s();break;case\"uploadReply\":R(!0);break;case\"replyConfirm\":B(!0);break;case\"refundExceedAudit\":O(!0);break;case\"changeApplicant\":j(!0);break;default:vt.info(`操作「${Fe}」功能开发中,已选 ${f.length} 条`)}},[t,e,f,s,p]),ye=m.useCallback((Fe,me)=>{switch(ce(me),Fe){case\"detail\":x(me),y(!0);break;case\"productDetail\":e(`/review-product/detail/${me.productId??me.id%30+1}`);break;case\"uploadOrder\":A(!0);break;case\"changeOrder\":I(!0);break;case\"alterOrder\":T(!0);break;case\"transferFree\":an.confirm({title:\"确认转免评\",content:\"转免评后将按免评单规则处理,请确认是否继续。\",okText:\"确定\",cancelText:\"取消\",onOk:async()=>{vt.success(\"已转免评\"),s()}});break;case\"edit\":e(`/review-order/edit/${me.id}`);break;case\"refundDetail\":ue(me.id);break;case\"uploadReply\":R(!0);break;case\"replyConfirm\":B(!0);break;case\"refundExceedAudit\":O(!0);break;case\"accountAudit\":W(!0);break;case\"revoke\":vt.info(\"撤销功能开发中\");break;case\"changeApplicant\":j(!0);break;case\"remind\":vt.success(\"提醒已发送\");break;case\"remark\":Q(me),V(!0);break;case\"afterSale\":J(me.afterSaleCode),Y(!0);break}},[s,e,ue]),we=m.useCallback((Fe,me)=>{u(Fe,me)},[u]);return C.jsxs(\"div\",{style:{padding:16},children:[C.jsx(\"h2\",{style:{margin:\"0 0 16px 0\"},children:\"回评订单管理\"}),C.jsx(Cpt,{filters:i,onFilterChange:we,onSearch:ie,onReset:fe}),C.jsx(Fpt,{selectedRowKeys:f,selectedRows:p,onAction:De}),C.jsx(Spt,{data:r,total:n,loading:a,page:o,pageSize:l,selectedRowKeys:f,onPageChange:xe,onSelectChange:Ee,onRowAction:ye}),C.jsx(wpt,{visible:g,record:b,onClose:()=>y(!1)}),C.jsx(Ipt,{visible:F,reviewOrderId:E,onCancel:()=>S(!1)}),C.jsx(fK,{visible:D,record:X,mode:\"upload\",onCancel:()=>A(!1),onSuccess:()=>oe(A)}),C.jsx(fK,{visible:_,record:X,mode:\"change\",onCancel:()=>I(!1),onSuccess:()=>oe(I)}),C.jsx(Rpt,{visible:M,record:X,onCancel:()=>T(!1),onSuccess:()=>oe(T)}),C.jsx(kpt,{visible:k,record:X,onCancel:()=>R(!1),onSuccess:()=>oe(R)}),C.jsx(Mpt,{visible:P,record:X,onCancel:()=>B(!1),onSuccess:()=>oe(B)}),C.jsx(Ppt,{visible:N,record:X,onCancel:()=>O(!1),onSuccess:()=>oe(O)}),C.jsx(Opt,{visible:z,record:X,onCancel:()=>W(!1),onSuccess:()=>oe(W)}),C.jsx(Npt,{visible:L,record:X,onCancel:()=>j(!1),onSuccess:()=>oe(j)}),C.jsx($pt,{visible:H,record:U,onCancel:()=>V(!1),onSuccess:()=>{V(!1),Q(null),s()}}),C.jsx(Lpt,{visible:K,afterSaleCode:ee,onCancel:()=>Y(!1)})]})},Kpt=Object.freeze(Object.defineProperty({__proto__:null,default:Upt},Symbol.toStringTag,{value:\"Module\"})),Ypt=({username:e})=>{var c,d;const[t,r]=m.useState(null),[n,a]=m.useState(!1);if(m.useEffect(()=>{if(!e||e.trim()===\"\"){r(null);return}let f=!1;return a(!0),go.searchUsers({keyword:e}).then(h=>{f||r(h.length>0?h[0]:null)}).catch(()=>{f||r(null)}).finally(()=>{f||a(!1)}),()=>{f=!0}},[e]),!e||e.trim()===\"\")return C.jsx(hr,{title:\"用户信息\",size:\"small\",children:C.jsx(ra,{description:\"请输入测评用户名\",image:ra.PRESENTED_IMAGE_SIMPLE})});if(n)return C.jsx(hr,{title:\"用户信息\",size:\"small\",children:C.jsx(\"div\",{style:{textAlign:\"center\",padding:24},children:C.jsx(mi,{})})});if(!t)return C.jsx(hr,{title:\"用户信息\",size:\"small\",children:C.jsx(ra,{description:\"未找到匹配的用户\",image:ra.PRESENTED_IMAGE_SIMPLE})});const i=t.totalOrders||0,o=t.reviewCount||0,l=t.replyCount||0,s=i>0?Math.round(l/i*100):0,u=i>0?Math.round(o/i*100):0;return C.jsxs(hr,{title:\"用户信息\",size:\"small\",style:{marginBottom:16},children:[(t.isBlacklisted||t.isHighRisk)&&C.jsx(ox,{type:\"error\",showIcon:!0,icon:C.jsx(sde,{}),message:t.isBlacklisted?\"该用户已被拉黑\":\"该用户为高风险用户\",style:{marginBottom:12}}),C.jsxs(Ne,{column:1,size:\"small\",bordered:!0,children:[C.jsx(Ne.Item,{label:\"用户名\",children:t.userName||\"-\"}),C.jsx(Ne.Item,{label:\"Joyhub ID\",children:t.joyhubId||\"-\"}),C.jsx(Ne.Item,{label:\"标签\",children:t.userType?C.jsx(et,{color:\"blue\",children:t.userType}):\"-\"})]}),t.otherContacts&&t.otherContacts.length>0&&C.jsxs(\"div\",{style:{marginTop:12},children:[C.jsx(\"div\",{style:{fontWeight:500,marginBottom:4},children:\"联系方式\"}),t.otherContacts.map((f,h)=>C.jsxs(\"div\",{style:{marginBottom:2},children:[C.jsx(et,{children:f.type}),C.jsx(\"span\",{children:f.value})]},h))]}),C.jsxs(\"div\",{style:{marginTop:12},children:[C.jsx(\"div\",{style:{fontWeight:500,marginBottom:4},children:\"额度信息\"}),C.jsxs(\"span\",{children:[\"已用 \",o,\" / 总量 \",i]})]}),C.jsxs(\"div\",{style:{marginTop:12},children:[C.jsx(\"div\",{style:{fontWeight:500,marginBottom:8},children:\"订单统计\"}),C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"span\",{style:{fontSize:12,color:\"#666\"},children:\"订单完成率\"}),C.jsx(Es,{percent:s,size:\"small\"})]}),C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"span\",{style:{fontSize:12,color:\"#666\"},children:\"留评率\"}),C.jsx(Es,{percent:u,size:\"small\",strokeColor:\"#52c41a\"})]})]}),C.jsxs(\"div\",{style:{marginTop:12},children:[C.jsx(\"span\",{style:{fontWeight:500,marginRight:8},children:\"资质状态:\"}),t.qualificationStatus?C.jsx(et,{color:((c=oK[t.qualificationStatus])==null?void 0:c.color)||\"default\",children:((d=oK[t.qualificationStatus])==null?void 0:d.text)||t.qualificationStatus}):C.jsx(\"span\",{children:\"-\"})]})]})},qpt=({onProductSelect:e,defaultProductId:t})=>{const[r,n]=m.useState([]),[a,i]=m.useState(!1),[o,l]=m.useState(t);m.useEffect(()=>{t!==void 0&&l(t)},[t]);const s=d=>{if(!d||d.trim()===\"\"){n([]);return}i(!0),go.fetchProducts({page:1,pageSize:20,keyword:d}).then(f=>{n(f.list)}).catch(()=>{n([])}).finally(()=>{i(!1)})},u=d=>{l(d);const f=r.find(h=>h.id===d);f&&e(f)},c=[{title:\"选择\",dataIndex:\"id\",width:60,render:d=>C.jsx(Ti,{checked:o===d})},{title:\"产品名\",dataIndex:\"name\",width:140,ellipsis:!0},{title:\"ASIN\",dataIndex:\"asin\",width:100},{title:\"类目\",dataIndex:\"category\",width:80,render:d=>d||\"-\"},{title:\"推广级别\",dataIndex:\"promoLevel\",width:80,render:d=>d||\"-\"},{title:\"状态\",dataIndex:\"status\",width:70,render:d=>{const f=ppt[d];return f?C.jsx(et,{color:f.color,children:f.text}):d}},{title:\"关联国家\",dataIndex:\"countries\",width:120,render:d=>d&&d.length>0?d.slice(0,3).map(f=>C.jsx(et,{children:f},f)):\"-\"}];return C.jsxs(hr,{title:\"产品选择\",size:\"small\",style:{marginBottom:16},children:[C.jsx(ut.Search,{placeholder:\"输入产品名或 ASIN 搜索\",allowClear:!0,enterButton:C.jsx(xa,{}),onSearch:s,style:{marginBottom:12}}),r.length===0&&!a?C.jsx(ra,{description:\"搜索产品\",image:ra.PRESENTED_IMAGE_SIMPLE}):C.jsx(Gr,{rowKey:\"id\",columns:c,dataSource:r,loading:a,size:\"small\",pagination:!1,scroll:{y:260},onRow:d=>({onClick:()=>u(d.id),style:{cursor:\"pointer\"}})})]})},Xpt=({username:e})=>{const t=Ia(),[r,n]=m.useState([]),[a,i]=m.useState(!1);m.useEffect(()=>{if(!e||e.trim()===\"\"){n([]);return}let l=!1;return i(!0),go.fetchList({page:1,pageSize:5,filters:{searchKeyword:e}}).then(s=>{l||n(s.list)}).catch(()=>{l||n([])}).finally(()=>{l||i(!1)}),()=>{l=!0}},[e]);const o=[{title:\"ID\",dataIndex:\"id\",width:50},{title:\"产品\",dataIndex:\"product\",width:100,ellipsis:!0},{title:\"ASIN\",dataIndex:\"asin\",width:90},{title:\"回评单状态\",dataIndex:\"replyOrderStatus\",width:100,render:l=>{if(!l)return\"-\";const s=HB[l];return s?C.jsx(et,{color:s.color,children:s.text}):l}},{title:\"评论状态\",dataIndex:\"commentStatus\",width:80,render:l=>{if(!l)return\"-\";const s=VB[l];return s?C.jsx(et,{color:s.color,children:s.text}):l}},{title:\"回评时间\",dataIndex:\"replyTime\",width:120,render:l=>l||\"-\"}];return!e||e.trim()===\"\"?C.jsx(hr,{title:\"历史订单\",size:\"small\",children:C.jsx(ra,{description:\"请输入客户名\",image:ra.PRESENTED_IMAGE_SIMPLE})}):a?C.jsx(hr,{title:\"历史订单\",size:\"small\",children:C.jsx(\"div\",{style:{textAlign:\"center\",padding:24},children:C.jsx(mi,{})})}):C.jsx(hr,{title:\"历史订单\",size:\"small\",children:r.length===0?C.jsx(ra,{description:\"暂无历史订单\",image:ra.PRESENTED_IMAGE_SIMPLE}):C.jsx(Gr,{rowKey:\"id\",columns:o,dataSource:r,size:\"small\",pagination:!1,scroll:{y:260},onRow:l=>({onClick:()=>t(`/review-order/edit/${l.id}`),style:{cursor:\"pointer\"}})})})},Jpt=()=>{const{id:e}=$g(),t=!!e,r=Ia(),n=La(),{currentReviewOrder:a,loading:i}=da(v=>v.reviewOrder),[o]=be.useForm(),[l,s]=m.useState(!1),u=be.useWatch(\"customerName\",o)||\"\";m.useEffect(()=>(t&&e&&n(xw(Number(e))),()=>{n(KQe())}),[n,e,t]),m.useEffect(()=>{t&&a&&o.setFieldsValue({customerName:a.customerName,customerId:a.customerId,channel:a.channel,country:a.country,applicant:a.applicant,operators:a.operators,product:a.product,asin:a.asin,category:a.category,shop:a.shop,orderNo:a.orderNo,reviewCount:a.reviewCount,refundScheme:a.refundScheme,remark:a.remark})},[t,a,o]);const c=m.useCallback(v=>{o.setFieldsValue({product:v.name,asin:v.asin,category:v.category})},[o]),d=m.useCallback(async()=>{try{const v=await o.validateFields();s(!0);const g={channel:v.channel,customerId:v.customerId||\"\",customerName:v.customerName||null,country:v.country||null,asin:v.asin||\"\",product:v.product||\"\",category:v.category||null,shop:v.shop||null,orderNo:v.orderNo||null,applicant:v.applicant||\"\",operators:v.operators||null,remark:v.remark||null,refundScheme:v.refundScheme||null};t&&e?(await n(Fw({id:Number(e),data:g})),vt.success(\"编辑成功\")):(await n(Cw(g)),vt.success(\"新增成功\")),r(\"/review-order\")}catch(v){if(v&&typeof v==\"object\"&&\"errorFields\"in v)return;vt.error(t?\"编辑失败\":\"新增失败\")}finally{s(!1)}},[o,t,e,n,r]),f=m.useCallback(()=>{r(\"/review-order\")},[r]),h=t&&i&&!a,p=t?\"编辑回评订单\":\"新增回评订单\";return C.jsxs(\"div\",{style:{padding:16},children:[C.jsx(\"div\",{style:{marginBottom:16},children:C.jsx(k6,{items:[{title:\"回评订单管理\"},{title:p}]})}),C.jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",marginBottom:16},children:[C.jsx(\"h2\",{style:{margin:0},children:p}),C.jsx(ze,{icon:C.jsx(_m,{}),onClick:f,children:\"返回\"})]}),h?C.jsx(\"div\",{style:{textAlign:\"center\",padding:80},children:C.jsx(mi,{size:\"large\"})}):C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:14,children:C.jsxs(be,{form:o,layout:\"vertical\",initialValues:{reviewCount:1},children:[C.jsxs(hr,{title:\"客户信息\",size:\"small\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"客户名\",name:\"customerName\",rules:[{required:!0,message:\"请输入客户名\"}],children:C.jsx(ut,{placeholder:\"输入客户名搜索\",allowClear:!0})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"客户ID\",name:\"customerId\",rules:[{required:!0,message:\"请输入客户ID\"}],children:C.jsx(ut,{placeholder:\"输入客户ID\",allowClear:!0})})})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"售后来源\",name:\"channel\",rules:[{required:!0,message:\"请选择售后来源\"}],children:C.jsx(Qe,{placeholder:\"选择售后来源\",options:Zfe})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"国家\",name:\"country\",rules:[{required:!0,message:\"请选择国家\"}],children:C.jsx(Qe,{placeholder:\"选择国家\",options:Qfe})})})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"申请人\",name:\"applicant\",rules:[{required:!0,message:\"请输入申请人\"}],children:C.jsx(ut,{placeholder:\"输入申请人\"})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"运营人员\",name:\"operators\",children:C.jsx(ut,{placeholder:\"输入运营人员(选填)\"})})})]})]}),C.jsxs(hr,{title:\"测评信息\",size:\"small\",style:{marginBottom:16},children:[C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"产品\",name:\"product\",rules:[{required:!0,message:\"请在右侧选择产品\"}],children:C.jsx(ut,{placeholder:\"请在右侧选择产品\",readOnly:!0})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"ASIN\",name:\"asin\",children:C.jsx(ut,{readOnly:!0})})})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"类目\",name:\"category\",children:C.jsx(ut,{readOnly:!0})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"店铺\",name:\"shop\",children:C.jsx(ut,{placeholder:\"输入店铺(选填)\"})})})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"测评次数\",name:\"reviewCount\",rules:[{required:!0,message:\"请输入测评次数\"}],children:C.jsx(vn,{min:1,max:99,style:{width:\"100%\"}})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"订单号\",name:\"orderNo\",children:C.jsx(ut,{placeholder:\"输入订单号(选填)\"})})})]}),C.jsx(sr,{gutter:16,children:C.jsx(Se,{span:12,children:C.jsx(be.Item,{label:\"是否自助返款\",name:\"refundScheme\",children:C.jsx(Qe,{placeholder:\"选择返款方式\",options:the,allowClear:!0})})})}),C.jsx(be.Item,{label:\"备注\",name:\"remark\",children:C.jsx(ut.TextArea,{rows:3,placeholder:\"输入备注(选填)\"})})]}),C.jsx(\"div\",{style:{textAlign:\"right\"},children:C.jsxs(Qt,{children:[C.jsx(ze,{onClick:f,children:\"取消\"}),C.jsx(ze,{type:\"primary\",loading:l,onClick:d,children:\"保存\"})]})})]})}),C.jsxs(Se,{span:10,children:[C.jsx(Ypt,{username:u}),C.jsx(qpt,{onProductSelect:c}),C.jsx(Xpt,{username:u})]})]})]})},Zpt=Object.freeze(Object.defineProperty({__proto__:null,default:Jpt},Symbol.toStringTag,{value:\"Module\"})),Qpt=()=>{const e=La(),{list:t,total:r}=da(d=>d.ticket),n=da(d=>d.ticket.stats),[a,i]=m.useState(\"all\");m.useEffect(()=>{e(Ap()),e(uB())},[e]);const o=m.useMemo(()=>[{name:\"keyword\",label:\"关键词\",type:\"input\",placeholder:\"工单标题/ID搜索\"},{name:\"priority\",label:\"优先级\",type:\"select\",placeholder:\"选择优先级\",options:[{label:\"低\",value:\"low\"},{label:\"中\",value:\"medium\"},{label:\"高\",value:\"high\"},{label:\"紧急\",value:\"urgent\"}]},{name:\"promiseStatus\",label:\"答应配合\",type:\"select\",placeholder:\"选择状态\",options:[{label:\"待确认\",value:\"pending\"},{label:\"已确认\",value:\"confirmed\"},{label:\"已拒绝\",value:\"declined\"},{label:\"已过期\",value:\"expired\"},{label:\"已取消\",value:\"cancelled\"}]},{name:\"category\",label:\"分类\",type:\"select\",placeholder:\"选择分类\",options:[{label:\"评价问题\",value:\"review_issue\"},{label:\"退款问题\",value:\"refund_issue\"},{label:\"物流问题\",value:\"shipping_issue\"},{label:\"产品质量\",value:\"product_quality\"},{label:\"其他\",value:\"other\"}]}],[]),l=m.useMemo(()=>[{title:\"工单标题\",dataIndex:\"title\",key:\"title\",width:200,ellipsis:!0,render:d=>C.jsx(\"a\",{children:d})},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:90,render:d=>C.jsx(uu,{status:d,type:\"ticket\"})},{title:\"优先级\",dataIndex:\"priority\",key:\"priority\",width:80,render:d=>C.jsx(et,{color:d===\"urgent\"?\"red\":d===\"high\"?\"orange\":d===\"medium\"?\"blue\":\"default\",children:d===\"urgent\"?\"紧急\":d===\"high\"?\"高\":d===\"medium\"?\"中\":\"低\"})},{title:\"分类\",dataIndex:\"category\",key:\"category\",width:100},{title:\"真实人\",dataIndex:\"reviewerName\",key:\"reviewerName\",width:100,render:d=>d||\"-\"},{title:\"处理人\",dataIndex:\"assigneeName\",key:\"assigneeName\",width:100,render:d=>d||C.jsx(et,{children:\"未分配\"})},{title:\"答应配合\",dataIndex:\"promiseStatus\",key:\"promiseStatus\",width:100,render:d=>C.jsx(uu,{status:d,statusMap:{pending:{label:\"待确认\",color:\"default\"},confirmed:{label:\"已确认\",color:\"success\"},declined:{label:\"已拒绝\",color:\"error\"},expired:{label:\"已过期\",color:\"default\"},cancelled:{label:\"已取消\",color:\"default\"}}})},{title:\"创建时间\",dataIndex:\"createdAt\",key:\"createdAt\",width:140,render:d=>d?new Date(d).toLocaleString(\"zh-CN\"):\"-\"},{title:\"操作\",key:\"actions\",width:180,render:(d,f)=>C.jsxs(Qt,{size:\"small\",children:[C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{}),children:\"详情\"}),f.status===\"pending\"&&C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Sat,{}),onClick:()=>vt.info(\"分配处理人\"),children:\"分配\"}),f.status===\"in_progress\"&&C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(yx,{}),onClick:()=>vt.info(\"标记为已解决\"),children:\"解决\"})]})}],[]),s=m.useCallback(async d=>(e(xce({page:d.page,pageSize:d.pageSize})),{list:t,total:r}),[e,t,r]),u=n?C.jsxs(sr,{gutter:16,style:{marginBottom:16},children:[C.jsx(Se,{span:4,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"总工单\",value:n.total})})}),C.jsx(Se,{span:4,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"待处理\",value:n.pending,valueStyle:{color:\"#faad14\"}})})}),C.jsx(Se,{span:4,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"处理中\",value:n.inProgress,valueStyle:{color:\"#1890ff\"}})})}),C.jsx(Se,{span:4,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"已解决\",value:n.resolved,valueStyle:{color:\"#52c41a\"}})})}),C.jsx(Se,{span:4,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"已关闭\",value:n.closed})})}),C.jsx(Se,{span:4,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"满意度\",value:n.satisfactionRate,suffix:\"%\",valueStyle:{color:n.satisfactionRate>=80?\"#52c41a\":\"#faad14\"}})})})]}):null,c=[{key:\"all\",label:\"全部\"},{key:\"pending\",label:\"待处理\"},{key:\"assigned\",label:\"已分配\"},{key:\"in_progress\",label:\"处理中\"},{key:\"resolved\",label:\"已解决\"},{key:\"closed\",label:\"已关闭\"},{key:\"reopened\",label:\"已重开\"}];return C.jsxs(\"div\",{children:[u,C.jsxs(hr,{children:[C.jsx(Ig,{activeKey:a,onChange:d=>{i(d),e(wG(d!==\"all\"?{status:d}:{})),e(Ap())},items:c,style:{marginBottom:16}}),C.jsx(Pm,{columns:l,filters:o,onFetch:s,exportable:!0,exportFilename:\"工单列表\",rowKey:\"id\",autoFetch:!1,toolbarExtra:C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),children:\"新建工单\"})})]})]})},emt=Object.freeze(Object.defineProperty({__proto__:null,default:Qpt},Symbol.toStringTag,{value:\"Module\"}));function tmt(e){return!e||e.length<7?e:e.slice(0,3)+\"****\"+e.slice(-4)}function rmt(e){if(!e||!e.includes(\"@\"))return e;const[t,r]=e.split(\"@\");return t.length<=1?`${t}@${r}`:t[0]+\"****@\"+r}function nmt(e){if(!e||e.length<=1)return e;if(/[\\u4e00-\\u9fa5]/.test(e))return e[0]+\"*\".repeat(e.length-1);const t=e.split(\" \");if(t.length>=2){const r=t[0],n=t.slice(1).join(\" \");return r[0]+\"*** \"+n}return e[0]+\"*\".repeat(e.length-1)}const{Text:aT}=ji,amt={phone:tmt,email:rmt,name:nmt},ahe=({value:e,type:t,revealable:r=!0,revealOn:n=\"hover\"})=>{const[a,i]=m.useState(!1),o=amt[t](e),l=a?e:o,s=m.useCallback(()=>{r&&!a&&(i(!0),setTimeout(()=>i(!1),5e3))},[r,a]);return r?n===\"click\"?C.jsx(Dr,{title:a?\"点击隐藏\":\"点击查看\",children:C.jsx(aT,{style:{cursor:\"pointer\"},onClick:s,copyable:a?{text:e}:!1,children:l})}):C.jsx(Dr,{title:a?e:\"悬停查看\",children:C.jsx(aT,{style:{cursor:\"pointer\"},onMouseEnter:s,onMouseLeave:()=>i(!1),copyable:a?{text:e}:!1,children:l})}):C.jsx(aT,{children:o})},imt=()=>{const e=La(),{conversations:t,activeConversationId:r,messages:n,quickReplies:a,loading:i}=da(w=>w.chat),[o,l]=m.useState(\"\"),[s,u]=m.useState(\"\"),[c,d]=m.useState(\"all\"),f=m.useRef(null),[h]=mB(),p=h.get(\"readOnly\")===\"true\",v=h.get(\"customerId\");m.useEffect(()=>{e(qy()),e(Fce())},[e]),m.useEffect(()=>{r&&e(cB({conversationId:r}))},[e,r]),m.useEffect(()=>{var w;(w=f.current)==null||w.scrollIntoView({behavior:\"smooth\"})},[n,r]),m.useEffect(()=>{if(p&&v&&t.length>0){const w=t.find(D=>D.customerId===v);w&&e(XE(w.id))}},[p,v,t,e]);const g=m.useMemo(()=>r?n[r]||[]:[],[n,r]),y=m.useMemo(()=>t.find(w=>w.id===r)||null,[t,r]),b=m.useMemo(()=>{let w=t;if(c!==\"all\"&&(w=w.filter(D=>D.status===c)),s){const D=s.toLowerCase();w=w.filter(A=>A.reviewerName.toLowerCase().includes(D))}return w},[t,c,s]),x=m.useCallback(w=>{e(XE(w.id))},[e]),F=m.useCallback(()=>{!o.trim()||!r||(e(Cce({conversationId:r,content:o.trim()})),l(\"\"))},[e,r,o]),S=m.useCallback(w=>{l(w)},[]),E=m.useCallback(w=>{const D=w.senderType===\"agent\";return w.senderType===\"system\"?C.jsx(\"div\",{style:{textAlign:\"center\",margin:\"8px 0\"},children:C.jsx(et,{color:\"default\",style:{fontSize:12},children:w.content})},w.id):w.type===\"card\"&&w.card?C.jsx(\"div\",{style:{display:\"flex\",justifyContent:D?\"flex-end\":\"flex-start\",margin:\"8px 0\"},children:C.jsx(hr,{size:\"small\",style:{maxWidth:300,backgroundColor:D?\"#1890ff\":\"#f5f5f5\",color:D?\"#fff\":\"#333\"},title:C.jsx(\"span\",{style:{color:D?\"#fff\":void 0},children:w.card.title}),children:C.jsx(\"p\",{style:{margin:0,color:D?\"rgba(255,255,255,0.85)\":\"#666\"},children:w.card.description})})},w.id):C.jsx(\"div\",{style:{display:\"flex\",justifyContent:D?\"flex-end\":\"flex-start\",margin:\"8px 0\"},children:C.jsxs(\"div\",{style:{maxWidth:\"70%\",padding:\"8px 12px\",borderRadius:8,backgroundColor:D?\"#1890ff\":\"#f0f0f0\",color:D?\"#fff\":\"#333\",fontSize:14,wordBreak:\"break-word\"},children:[C.jsx(\"div\",{children:w.content}),C.jsx(\"div\",{style:{fontSize:11,color:D?\"rgba(255,255,255,0.65)\":\"#999\",marginTop:4,textAlign:D?\"right\":\"left\"},children:new Date(w.timestamp).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"})})]})},w.id)},[]);return C.jsxs(\"div\",{style:{display:\"flex\",height:\"calc(100vh - 64px - 48px)\",gap:0,backgroundColor:\"#fff\",border:\"1px solid #f0f0f0\",borderRadius:8,overflow:\"hidden\"},children:[p&&C.jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,right:0,zIndex:100},children:C.jsx(ox,{message:\"只读模式 — 仅可查看客服聊天记录,无法发送消息\",type:\"info\",showIcon:!0,icon:C.jsx(Zo,{}),banner:!0,closable:!1})}),C.jsxs(\"div\",{style:{width:240,borderRight:\"1px solid #f0f0f0\",display:\"flex\",flexDirection:\"column\"},children:[C.jsxs(\"div\",{style:{padding:\"12px 12px 8px\"},children:[C.jsx(ut,{prefix:C.jsx(xa,{}),placeholder:\"搜索会话\",size:\"small\",value:s,onChange:w=>u(w.target.value),allowClear:!0}),C.jsx(\"div\",{style:{marginTop:8,display:\"flex\",gap:4},children:[\"all\",\"active\",\"pending\",\"closed\"].map(w=>C.jsx(ze,{size:\"small\",type:c===w?\"primary\":\"default\",onClick:()=>d(w),children:w===\"all\"?\"全部\":w===\"active\"?\"活跃\":w===\"pending\"?\"待处理\":\"已关闭\"},w))})]}),C.jsx(\"div\",{style:{flex:1,overflow:\"auto\"},children:C.jsx(tc,{dataSource:b,loading:i,renderItem:w=>C.jsx(tc.Item,{onClick:()=>x(w),style:{padding:\"12px 16px\",cursor:\"pointer\",backgroundColor:r===w.id?\"#e6f7ff\":\"transparent\"},children:C.jsx(tc.Item.Meta,{avatar:C.jsx(E6,{children:w.reviewerName.charAt(0)}),title:C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\"},children:[C.jsx(\"span\",{style:{fontSize:14},children:w.reviewerName}),C.jsx(D6,{count:w.unreadCount,size:\"small\"})]}),description:C.jsxs(\"div\",{children:[C.jsx(\"div\",{style:{fontSize:12,color:\"#999\",overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:w.lastMessage}),C.jsx(\"div\",{style:{fontSize:11,color:\"#bbb\"},children:w.lastMessageTime?new Date(w.lastMessageTime).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"}):\"\"})]})})})})})]}),C.jsx(\"div\",{style:{flex:1,display:\"flex\",flexDirection:\"column\"},children:y?C.jsxs(C.Fragment,{children:[C.jsxs(\"div\",{style:{padding:\"12px 16px\",borderBottom:\"1px solid #f0f0f0\",fontWeight:500},children:[y.reviewerName,C.jsx(et,{color:y.status===\"active\"?\"success\":\"default\",style:{marginLeft:8},children:y.status===\"active\"?\"活跃\":y.status===\"pending\"?\"待处理\":\"已关闭\"}),y.customerId&&C.jsxs(et,{style:{marginLeft:8},children:[\"用户ID: \",y.customerId]})]}),C.jsxs(\"div\",{style:{flex:1,overflow:\"auto\",padding:\"16px\"},children:[g.map(E),C.jsx(\"div\",{ref:f})]}),a.length>0&&!p&&C.jsx(\"div\",{style:{padding:\"4px 16px\",borderTop:\"1px solid #f5f5f5\",display:\"flex\",gap:4,flexWrap:\"wrap\"},children:a.slice(0,6).map(w=>C.jsx(et,{color:\"blue\",style:{cursor:\"pointer\"},onClick:()=>S(w.content),children:w.title},w.id))}),C.jsx(\"div\",{style:{padding:\"12px 16px\",borderTop:\"1px solid #f0f0f0\",display:\"flex\",gap:8},children:p?C.jsx(\"div\",{style:{flex:1,textAlign:\"center\",color:\"#999\",padding:\"8px 0\"},children:\"只读模式 — 无法发送消息\"}):C.jsxs(C.Fragment,{children:[C.jsx(ut.TextArea,{value:o,onChange:w=>l(w.target.value),onPressEnter:w=>{w.shiftKey||(w.preventDefault(),F())},placeholder:\"输入消息Enter发送Shift+Enter换行\",autoSize:{minRows:1,maxRows:4},style:{flex:1}}),C.jsx(ze,{type:\"primary\",icon:C.jsx(Tp,{}),onClick:F,disabled:!o.trim(),children:\"发送\"})]})})]}):C.jsx(\"div\",{style:{flex:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#999\"},children:p&&v?\"未找到该用户的客服聊天记录\":\"请选择一个会话开始聊天\"})}),C.jsx(\"div\",{style:{width:300,borderLeft:\"1px solid #f0f0f0\",overflow:\"auto\",padding:16},children:y?C.jsxs(C.Fragment,{children:[C.jsxs(hr,{size:\"small\",title:\"用户信息\",style:{marginBottom:12},children:[C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"strong\",{children:\"姓名:\"}),C.jsx(ahe,{value:y.reviewerName,type:\"name\",revealOn:\"click\"})]}),C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"strong\",{children:\"ID\"}),y.reviewerId]}),y.customerId&&C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"strong\",{children:\"用户ID\"}),y.customerId]}),C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"strong\",{children:\"风险等级:\"}),C.jsx(PD,{level:kn.Low,showAssociation:!1})]})]}),C.jsx(hr,{size:\"small\",title:\"订单信息\",style:{marginBottom:12},children:C.jsx(\"p\",{style:{color:\"#999\"},children:\"暂无关联订单\"})}),C.jsx(hr,{size:\"small\",title:\"操作\",style:{marginBottom:12},children:C.jsxs(Qt,{direction:\"vertical\",style:{width:\"100%\"},children:[C.jsx(ze,{size:\"small\",block:!0,children:\"查看详情\"}),C.jsx(ze,{size:\"small\",block:!0,children:\"OA登记\"})]})})]}):C.jsx(\"div\",{style:{color:\"#999\",textAlign:\"center\",marginTop:40},children:\"选择会话查看用户信息\"})})]})},omt=Object.freeze(Object.defineProperty({__proto__:null,default:imt},Symbol.toStringTag,{value:\"Module\"})),lmt=()=>{const e=La(),{conversations:t,activeConversationId:r,messages:n,loading:a}=da(y=>y.chat),[i,o]=m.useState(\"\"),[l,s]=m.useState(\"all\"),u=m.useRef(null),[c]=mB(),d=c.get(\"customerId\");m.useEffect(()=>{e(qy())},[e]),m.useEffect(()=>{r&&e(cB({conversationId:r}))},[e,r]),m.useEffect(()=>{var y;(y=u.current)==null||y.scrollIntoView({behavior:\"smooth\"})},[n,r]),m.useEffect(()=>{if(d&&t.length>0){const y=t.find(b=>b.customerId===d);y&&e(XE(y.id))}},[d,t,e]);const f=m.useMemo(()=>r?n[r]||[]:[],[n,r]),h=m.useMemo(()=>t.find(y=>y.id===r)||null,[t,r]),p=m.useMemo(()=>{let y=t;if(l!==\"all\"&&(y=y.filter(b=>b.status===l)),i){const b=i.toLowerCase();y=y.filter(x=>x.reviewerName.toLowerCase().includes(b))}return d&&(y=y.filter(b=>b.customerId===d)),y},[t,l,i,d]),v=m.useCallback(y=>{e(XE(y.id))},[e]),g=m.useCallback(y=>{const b=y.senderType===\"agent\";return y.senderType===\"system\"?C.jsx(\"div\",{style:{textAlign:\"center\",margin:\"8px 0\"},children:C.jsx(et,{color:\"default\",style:{fontSize:12},children:y.content})},y.id):y.type===\"card\"&&y.card?C.jsx(\"div\",{style:{display:\"flex\",justifyContent:b?\"flex-end\":\"flex-start\",margin:\"8px 0\"},children:C.jsx(hr,{size:\"small\",style:{maxWidth:300,backgroundColor:b?\"#1890ff\":\"#f5f5f5\",color:b?\"#fff\":\"#333\"},title:C.jsx(\"span\",{style:{color:b?\"#fff\":void 0},children:y.card.title}),children:C.jsx(\"p\",{style:{margin:0,color:b?\"rgba(255,255,255,0.85)\":\"#666\"},children:y.card.description})})},y.id):C.jsx(\"div\",{style:{display:\"flex\",justifyContent:b?\"flex-end\":\"flex-start\",margin:\"8px 0\"},children:C.jsxs(\"div\",{style:{maxWidth:\"70%\",padding:\"8px 12px\",borderRadius:8,backgroundColor:b?\"#1890ff\":\"#f0f0f0\",color:b?\"#fff\":\"#333\",fontSize:14,wordBreak:\"break-word\"},children:[C.jsx(\"div\",{children:y.content}),C.jsx(\"div\",{style:{fontSize:11,color:b?\"rgba(255,255,255,0.65)\":\"#999\",marginTop:4,textAlign:b?\"right\":\"left\"},children:new Date(y.timestamp).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"})})]})},y.id)},[]);return C.jsxs(\"div\",{style:{position:\"relative\"},children:[C.jsx(ox,{message:\"只读模式 — 仅可查看客服聊天记录,无法发送消息\",type:\"info\",showIcon:!0,icon:C.jsx(Zo,{}),banner:!0,closable:!1}),C.jsxs(\"div\",{style:{display:\"flex\",height:\"calc(100vh - 64px - 48px - 40px)\",gap:0,backgroundColor:\"#fff\",border:\"1px solid #f0f0f0\",borderRadius:8,overflow:\"hidden\"},children:[C.jsxs(\"div\",{style:{width:240,borderRight:\"1px solid #f0f0f0\",display:\"flex\",flexDirection:\"column\"},children:[C.jsxs(\"div\",{style:{padding:\"12px 12px 8px\"},children:[C.jsx(ut,{prefix:C.jsx(xa,{}),placeholder:\"搜索会话\",size:\"small\",value:i,onChange:y=>o(y.target.value),allowClear:!0}),C.jsx(\"div\",{style:{marginTop:8,display:\"flex\",gap:4},children:[\"all\",\"active\",\"pending\",\"closed\"].map(y=>C.jsx(ze,{size:\"small\",type:l===y?\"primary\":\"default\",onClick:()=>s(y),children:y===\"all\"?\"全部\":y===\"active\"?\"活跃\":y===\"pending\"?\"待处理\":\"已关闭\"},y))})]}),C.jsx(\"div\",{style:{flex:1,overflow:\"auto\"},children:C.jsx(tc,{dataSource:p,loading:a,renderItem:y=>C.jsx(tc.Item,{onClick:()=>v(y),style:{padding:\"12px 16px\",cursor:\"pointer\",backgroundColor:r===y.id?\"#e6f7ff\":\"transparent\"},children:C.jsx(tc.Item.Meta,{avatar:C.jsx(E6,{children:y.reviewerName.charAt(0)}),title:C.jsx(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\"},children:C.jsx(\"span\",{style:{fontSize:14},children:y.reviewerName})}),description:C.jsxs(\"div\",{children:[C.jsx(\"div\",{style:{fontSize:12,color:\"#999\",overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:y.lastMessage}),C.jsx(\"div\",{style:{fontSize:11,color:\"#bbb\"},children:y.lastMessageTime?new Date(y.lastMessageTime).toLocaleTimeString(\"zh-CN\",{hour:\"2-digit\",minute:\"2-digit\"}):\"\"})]})})})})})]}),C.jsx(\"div\",{style:{flex:1,display:\"flex\",flexDirection:\"column\"},children:h?C.jsxs(C.Fragment,{children:[C.jsxs(\"div\",{style:{padding:\"12px 16px\",borderBottom:\"1px solid #f0f0f0\",fontWeight:500},children:[h.reviewerName,C.jsx(et,{color:h.status===\"active\"?\"success\":\"default\",style:{marginLeft:8},children:h.status===\"active\"?\"活跃\":h.status===\"pending\"?\"待处理\":\"已关闭\"}),h.customerId&&C.jsxs(et,{style:{marginLeft:8},children:[\"用户ID: \",h.customerId]})]}),C.jsxs(\"div\",{style:{flex:1,overflow:\"auto\",padding:\"16px\"},children:[f.map(g),C.jsx(\"div\",{ref:u})]}),C.jsx(\"div\",{style:{padding:\"12px 16px\",borderTop:\"1px solid #f0f0f0\",display:\"flex\",gap:8},children:C.jsx(\"div\",{style:{flex:1,textAlign:\"center\",color:\"#999\",padding:\"8px 0\"},children:\"只读模式 — 无法发送消息\"})})]}):C.jsx(\"div\",{style:{flex:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#999\"},children:d?\"未找到该用户的客服聊天记录\":\"请选择一个会话查看聊天记录\"})}),C.jsx(\"div\",{style:{width:300,borderLeft:\"1px solid #f0f0f0\",overflow:\"auto\",padding:16},children:h?C.jsxs(C.Fragment,{children:[C.jsxs(hr,{size:\"small\",title:\"用户信息\",style:{marginBottom:12},children:[C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"strong\",{children:\"姓名:\"}),C.jsx(ahe,{value:h.reviewerName,type:\"name\",revealOn:\"click\"})]}),C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"strong\",{children:\"ID\"}),h.reviewerId]}),h.customerId&&C.jsxs(\"div\",{style:{marginBottom:8},children:[C.jsx(\"strong\",{children:\"用户ID\"}),h.customerId]})]}),C.jsx(hr,{size:\"small\",title:\"订单信息\",style:{marginBottom:12},children:C.jsx(\"p\",{style:{color:\"#999\"},children:\"暂无关联订单\"})})]}):C.jsx(\"div\",{style:{color:\"#999\",textAlign:\"center\",marginTop:40},children:\"选择会话查看用户信息\"})})]})]})},smt=Object.freeze(Object.defineProperty({__proto__:null,default:lmt},Symbol.toStringTag,{value:\"Module\"}));class umt{constructor(t){Tu(this,\"definition\");Tu(this,\"onTransitionCallbacks\",[]);this.definition=t}onTransition(t){this.onTransitionCallbacks.push(t)}canTransit(t,r,n){const a=this.findTransition(t,r);return!(!a||a.guard&&!a.guard(n))}transit(t,r,n){const a=this.findTransition(t,r);return!a||a.guard&&!a.guard(n)?null:(this.onTransitionCallbacks.forEach(i=>{try{i(t,a.to,r,n)}catch(o){console.error(\"[StateMachine] Transition callback error:\",o)}}),a.to)}getAvailableTransitions(t){return this.definition.transitions.filter(r=>r.from.includes(t)).map(r=>({action:r.action,to:r.to}))}getInitialState(){return this.definition.initial}findTransition(t,r){return this.definition.transitions.find(n=>n.from.includes(t)&&n.action===r)}}const iT={pending:{label:\"待确认\",color:\"default\"},confirmed:{label:\"已确认\",color:\"success\"},declined:{label:\"已拒绝\",color:\"error\"},expired:{label:\"已过期\",color:\"default\"},cancelled:{label:\"已取消\",color:\"default\"}},oT=new umt(hht),cmt=()=>{const e=La(),{list:t,total:r}=da(x=>x.ticket),[n,a]=m.useState(!1),[i,o]=m.useState(null),[l,s]=m.useState(\"\"),[u]=be.useForm();m.useEffect(()=>{e(Ap()),e(uB())},[e]);const c=m.useMemo(()=>[{name:\"keyword\",label:\"关键词\",type:\"input\",placeholder:\"工单标题/真实人搜索\"},{name:\"promiseStatus\",label:\"答应配合状态\",type:\"select\",placeholder:\"选择状态\",options:[{label:\"待确认\",value:\"pending\"},{label:\"已确认\",value:\"confirmed\"},{label:\"已拒绝\",value:\"declined\"},{label:\"已过期\",value:\"expired\"},{label:\"已取消\",value:\"cancelled\"}]},{name:\"priority\",label:\"优先级\",type:\"select\",placeholder:\"选择优先级\",options:[{label:\"低\",value:\"low\"},{label:\"中\",value:\"medium\"},{label:\"高\",value:\"high\"},{label:\"紧急\",value:\"urgent\"}]}],[]),d=m.useCallback((x,F)=>oT.canTransit(x,F),[]),f=m.useCallback(x=>oT.getAvailableTransitions(x),[]),h=m.useCallback((x,F)=>{var S;if(!d(x.promiseStatus,F)){vt.warning(`当前状态 \"${((S=iT[x.promiseStatus])==null?void 0:S.label)||x.promiseStatus}\" 不支持此操作`);return}o(x),s(F),a(!0)},[d]),p=m.useCallback(async()=>{var S;if(!i||!l||!await u.validateFields().catch(()=>null))return;const F=oT.transit(i.promiseStatus,l);F&&(vt.success(`答应配合状态已更新为:${((S=iT[F])==null?void 0:S.label)||F}`),e(Ap())),a(!1),o(null),s(\"\"),u.resetFields()},[i,l,u,e]),v=m.useMemo(()=>[{title:\"工单标题\",dataIndex:\"title\",key:\"title\",width:200,ellipsis:!0},{title:\"真实人\",dataIndex:\"reviewerName\",key:\"reviewerName\",width:100,render:x=>x||\"-\"},{title:\"优先级\",dataIndex:\"priority\",key:\"priority\",width:80,render:x=>C.jsx(et,{color:x===\"urgent\"?\"red\":x===\"high\"?\"orange\":x===\"medium\"?\"blue\":\"default\",children:x===\"urgent\"?\"紧急\":x===\"high\"?\"高\":x===\"medium\"?\"中\":\"低\"})},{title:\"答应配合状态\",dataIndex:\"promiseStatus\",key:\"promiseStatus\",width:120,render:x=>C.jsx(uu,{status:x,statusMap:iT})},{title:\"截止日期\",dataIndex:\"promiseDeadline\",key:\"promiseDeadline\",width:120,render:x=>{if(!x)return\"-\";const F=new Date(x)<new Date;return C.jsxs(Qt,{children:[C.jsx(\"span\",{style:{color:F?\"#ff4d4f\":void 0},children:new Date(x).toLocaleDateString(\"zh-CN\")}),F&&C.jsx(Ble,{style:{color:\"#ff4d4f\"}})]})}},{title:\"关联计划\",dataIndex:\"planType\",key:\"planType\",width:90,render:x=>x?C.jsx(uu,{status:x,type:\"plan\"}):\"-\"},{title:\"ASIN\",dataIndex:\"asin\",key:\"asin\",width:110,render:x=>x||\"-\"},{title:\"创建时间\",dataIndex:\"createdAt\",key:\"createdAt\",width:140,render:x=>x?new Date(x).toLocaleString(\"zh-CN\"):\"-\"},{title:\"操作\",key:\"actions\",width:200,render:(x,F)=>{const S=f(F.promiseStatus);return C.jsxs(Qt,{size:\"small\",children:[S.some(E=>E.action===\"confirm\")&&C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(yx,{}),onClick:()=>h(F,\"confirm\"),children:\"确认\"}),S.some(E=>E.action===\"decline\")&&C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,icon:C.jsx(wu,{}),onClick:()=>h(F,\"decline\"),children:\"拒绝\"}),S.some(E=>E.action===\"cancel\")&&C.jsx(ze,{type:\"link\",size:\"small\",onClick:()=>h(F,\"cancel\"),children:\"取消\"}),F.promiseStatus===\"expired\"&&C.jsx(et,{color:\"default\",children:\"已过期\"})]})}}],[h,f]),g=m.useCallback(async x=>(e(xce({page:x.page,pageSize:x.pageSize})),{list:t,total:r}),[e,t,r]),y=m.useMemo(()=>{const x=t.filter(w=>w.promiseStatus===\"pending\").length,F=t.filter(w=>w.promiseStatus===\"confirmed\").length,S=t.filter(w=>w.promiseStatus===\"declined\").length,E=t.filter(w=>w.promiseStatus===\"expired\").length;return C.jsxs(sr,{gutter:16,style:{marginBottom:16},children:[C.jsx(Se,{span:6,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"待确认\",value:x,valueStyle:{color:\"#faad14\"}})})}),C.jsx(Se,{span:6,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"已确认\",value:F,valueStyle:{color:\"#52c41a\"}})})}),C.jsx(Se,{span:6,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"已拒绝\",value:S,valueStyle:{color:\"#ff4d4f\"}})})}),C.jsx(Se,{span:6,children:C.jsx(hr,{size:\"small\",children:C.jsx(nl,{title:\"已过期\",value:E,valueStyle:{color:\"#999\"}})})})]})},[t]),b=()=>{switch(l){case\"confirm\":return\"确认答应配合\";case\"decline\":return\"拒绝答应配合\";case\"cancel\":return\"取消答应配合\";case\"expire\":return\"标记为已过期\";default:return\"操作\"}};return C.jsxs(\"div\",{children:[y,C.jsx(Pm,{columns:v,filters:c,onFetch:g,exportable:!0,exportFilename:\"答应配合跟踪\",rowKey:\"id\",autoFetch:!1}),C.jsx(an,{title:b(),open:n,onCancel:()=>{a(!1),o(null),s(\"\"),u.resetFields()},onOk:p,children:C.jsxs(be,{form:u,layout:\"vertical\",children:[C.jsx(be.Item,{label:\"工单\",children:i==null?void 0:i.title}),C.jsx(be.Item,{label:\"真实人\",children:(i==null?void 0:i.reviewerName)||\"-\"}),C.jsx(be.Item,{name:\"reason\",label:\"原因\",rules:[{required:!0,message:\"请输入原因\"}],children:C.jsx(ut.TextArea,{rows:4,placeholder:`请输入${l===\"confirm\"?\"确认\":l===\"decline\"?\"拒绝\":\"取消\"}原因`})})]})})]})},dmt=Object.freeze(Object.defineProperty({__proto__:null,default:cmt},Symbol.toStringTag,{value:\"Module\"})),pK={draft:{label:\"草稿\",color:\"default\"},scheduled:{label:\"已排期\",color:\"processing\"},sending:{label:\"发送中\",color:\"processing\"},completed:{label:\"已完成\",color:\"success\"},failed:{label:\"失败\",color:\"error\"},cancelled:{label:\"已取消\",color:\"default\"}},fmt=()=>{const e=La(),{pushTasks:t,pushTaskTotal:r}=da(u=>u.channel),[n,a]=m.useState(!1),[i]=be.useForm();m.useEffect(()=>{e(Xy({page:1,pageSize:20,sortBy:\"createdAt\",sortOrder:\"descend\"}))},[e]);const o=m.useMemo(()=>[{name:\"keyword\",label:\"关键词\",type:\"input\",placeholder:\"任务名/计划搜索\"},{name:\"channel\",label:\"渠道\",type:\"select\",placeholder:\"选择渠道\",options:Object.values(Ln).map(u=>{var c;return{label:((c=rT[u])==null?void 0:c.label)||u,value:u}})},{name:\"status\",label:\"状态\",type:\"select\",placeholder:\"选择状态\",options:Object.entries(pK).map(([u,c])=>({label:c.label,value:u}))}],[]),l=m.useMemo(()=>[{title:\"任务名称\",dataIndex:\"planTitle\",key:\"planTitle\",width:200,ellipsis:!0},{title:\"渠道\",dataIndex:\"channel\",key:\"channel\",width:100,render:u=>C.jsx(uu,{status:u,statusMap:Object.fromEntries(Object.entries(rT).map(([c,d])=>[c,{label:d.label,color:d.color}]))})},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:100,render:u=>C.jsx(uu,{status:u,statusMap:pK})},{title:\"目标\",dataIndex:\"targetCount\",key:\"targetCount\",width:80},{title:\"成功\",dataIndex:\"successCount\",key:\"successCount\",width:80},{title:\"失败\",dataIndex:\"failCount\",key:\"failCount\",width:80},{title:\"创建人\",dataIndex:\"createdByName\",key:\"createdByName\",width:100},{title:\"创建时间\",dataIndex:\"createdAt\",key:\"createdAt\",width:140,render:u=>u?new Date(u).toLocaleString(\"zh-CN\"):\"-\"}],[]),s=m.useCallback(async u=>(e(Xy({page:u.page,pageSize:u.pageSize,sortBy:u.sortBy,sortOrder:u.sortOrder})),{list:t,total:r}),[e,t,r]);return C.jsxs(C.Fragment,{children:[C.jsx(Pm,{columns:l,filters:o,onFetch:s,exportable:!0,exportFilename:\"推送任务\",rowKey:\"id\",autoFetch:!1,toolbarExtra:C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>a(!0),children:\"新建推送\"})}),C.jsx(an,{title:\"新建推送任务\",open:n,onCancel:()=>a(!1),onOk:()=>{a(!1),i.resetFields(),vt.success(\"推送任务已创建\")},children:C.jsxs(be,{form:i,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"channel\",label:\"渠道类型\",rules:[{required:!0,message:\"请选择渠道\"}],children:C.jsx(Qe,{options:Object.values(Ln).map(u=>{var c;return{label:((c=rT[u])==null?void 0:c.label)||u,value:u}}),placeholder:\"选择渠道\"})}),C.jsx(be.Item,{name:\"content\",label:\"推送内容\",rules:[{required:!0,message:\"请输入推送内容\"}],children:C.jsx(ut.TextArea,{rows:4,placeholder:\"推送内容\"})}),C.jsx(be.Item,{name:\"remark\",label:\"备注\",children:C.jsx(ut,{placeholder:\"备注\"})})]})})]})},hmt=Object.freeze(Object.defineProperty({__proto__:null,default:fmt},Symbol.toStringTag,{value:\"Module\"})),Sw={review:{label:\"测评\",color:\"blue\"},reply:{label:\"回评\",color:\"green\"},ad:{label:\"广告\",color:\"orange\"},activity:{label:\"活动\",color:\"purple\"},edm:{label:\"EDM\",color:\"cyan\"},system:{label:\"系统\",color:\"default\"},yipai:{label:\"易派\",color:\"magenta\"},other:{label:\"其他\",color:\"default\"}},ww={brand_account:\"用户所属品牌账号\",custom_account:\"自行选择账号\"},Ew={US:\"美国\",JP:\"日本\",DE:\"德国\",CA:\"加拿大\",UK:\"英国\",IT:\"意大利\",FR:\"法国\",ES:\"西班牙\"},pmt={P0:\"red\",P1:\"orange\",P2:\"blue\",P3:\"default\"},S3={card:\"新卡片\",text:\"文字\",image:\"图片\"},mmt=[{label:\"卡片\",value:\"卡片\"},{label:\"文字\",value:\"文字\"},{label:\"图片\",value:\"图片\"},{label:\"卡片+文字\",value:\"卡片+文字\"},{label:\"卡片+图片\",value:\"卡片+图片\"},{label:\"文字+图片\",value:\"文字+图片\"},{label:\"卡片+文字+图片\",value:\"卡片+文字+图片\"}],ro=e=>e==null?\"---\":e.toLocaleString(),vmt=()=>{const[e,t]=m.useState([]),[r,n]=m.useState(!1),[a,i]=m.useState(0),[o,l]=m.useState({}),[s,u]=m.useState(1),[c,d]=m.useState(10),[f,h]=m.useState([]),[p,v]=m.useState(\"name\"),[g,y]=m.useState(\"\"),[b,x]=m.useState(),[F,S]=m.useState(),[E,w]=m.useState(),[D,A]=m.useState(),[_,I]=m.useState(),[M,T]=m.useState(),[k,R]=m.useState(null),[P,B]=m.useState([]),[N,O]=m.useState([]),[z,W]=m.useState([]),[L,j]=m.useState([]),[H,V]=m.useState([]),[U,Q]=m.useState([]),[K,Y]=m.useState([]),[ee,J]=m.useState(!1),[X,ce]=m.useState(null),oe=m.useCallback(async()=>{var me,Me;n(!0);try{const je={page:s,pageSize:c,searchField:p,keyword:g||void 0,pushForm:b,status:F,pushMethod:E,pushType:D,site:_,priority:M,triggerCountMin:P[0],triggerCountMax:P[1],pushCountMin:N[0],pushCountMax:N[1],listExposureMin:z[0],listExposureMax:z[1],contentExposureMin:L[0],contentExposureMax:L[1],clickCountMin:H[0],clickCountMax:H[1],jumpCountMin:U[0],jumpCountMax:U[1],replyCountMin:K[0],replyCountMax:K[1],createdAtStart:(me=k==null?void 0:k[0])==null?void 0:me.toISOString(),createdAtEnd:(Me=k==null?void 0:k[1])==null?void 0:Me.toISOString()},lt=await Or(\"/im-pushes\",je);t(lt.list),i(lt.total),l(lt.totals||{})}catch{vt.error(\"获取IM推送列表失败\")}finally{n(!1)}},[s,c,p,g,b,F,E,D,_,M,k,P,N,z,L,H,U,K]);m.useEffect(()=>{oe()},[oe]);const ue=m.useCallback(()=>{v(\"name\"),y(\"\"),x(void 0),S(void 0),w(void 0),A(void 0),I(void 0),T(void 0),R(null),B([]),O([]),W([]),j([]),V([]),Q([]),Y([]),u(1)},[]),ie=m.useCallback(async me=>{try{await fr(`/im-pushes/${me.id}/copy`),vt.success(\"复制成功,已生成新推送\"),oe()}catch{vt.error(\"复制失败\")}},[oe]),fe=m.useCallback(me=>{an.confirm({title:\"确认下架\",content:`下架后推送「${me.name}」将不再触发新的推送,已发送的消息不会被撤回。`,okText:\"确认下架\",okType:\"danger\",cancelText:\"取消\",onOk:async()=>{try{await fr(`/im-pushes/${me.id}/off-shelf`),vt.success(\"下架成功\"),oe()}catch{vt.error(\"下架失败\")}}})},[oe]),xe=m.useCallback(async me=>{try{await fr(`/im-pushes/${me.id}/re-shelf`),vt.success(\"上架成功\"),oe()}catch{vt.error(\"上架失败\")}},[oe]),Ee=m.useCallback(async(me,Me)=>{try{const je={...me,contents:Me,pushForm:[...new Set(Me.map(lt=>{switch(lt.formType){case\"card\":return\"卡片\";case\"text\":return\"文字\";case\"image\":return\"图片\"}}))].join(\"+\")};X?(await Go(`/im-pushes/${X.id}`,je),vt.success(\"编辑成功\")):(await fr(\"/im-pushes\",je),vt.success(\"新增成功\")),J(!1),ce(null),oe()}catch{vt.error(\"保存失败\")}},[X,oe]),De=m.useMemo(()=>[{title:\"ID\",dataIndex:\"id\",key:\"id\",width:70,fixed:\"left\",sorter:!0},{title:\"推送名称\",dataIndex:\"name\",key:\"name\",width:200,fixed:\"left\",ellipsis:!0,render:me=>C.jsx(Dr,{title:me,children:C.jsx(\"span\",{children:me})})},{title:\"关联测评计划ID\",dataIndex:\"reviewPlanId\",key:\"reviewPlanId\",width:140,render:me=>me?C.jsx(et,{color:\"blue\",children:me}):\"-\"},{title:\"推送类型\",dataIndex:\"pushType\",key:\"pushType\",width:90,render:me=>{const Me=Sw[me];return C.jsx(et,{color:(Me==null?void 0:Me.color)||\"default\",children:(Me==null?void 0:Me.label)||me})}},{title:\"推送形式\",dataIndex:\"pushForm\",key:\"pushForm\",width:120,render:me=>C.jsx(et,{children:me})},{title:\"样式预览\",key:\"preview\",width:90,render:(me,Me)=>{var lt;const je=(lt=Me.contents)==null?void 0:lt[0];return je?je.formType===\"image\"&&je.thumbnailUrl?C.jsx(\"img\",{src:je.thumbnailUrl,alt:\"preview\",style:{width:48,height:36,objectFit:\"cover\",borderRadius:4}}):C.jsx(Dr,{title:je.content,children:C.jsx(\"span\",{style:{maxWidth:80,display:\"inline-block\",overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:je.content})}):C.jsx(\"span\",{style:{color:\"#999\"},children:\"---\"})}},{title:\"站点\",dataIndex:\"site\",key:\"site\",width:80,render:me=>Ew[me]||me},{title:\"触发数\",dataIndex:\"triggerCount\",key:\"triggerCount\",width:90,sorter:!0,render:me=>ro(me)},{title:\"推送数\",dataIndex:\"pushCount\",key:\"pushCount\",width:90,sorter:!0,render:me=>ro(me)},{title:\"到达数\",dataIndex:\"arriveCount\",key:\"arriveCount\",width:90,sorter:!0,render:me=>ro(me)},{title:\"列表级曝光\",dataIndex:\"listExposureCount\",key:\"listExposureCount\",width:110,sorter:!0,render:me=>ro(me)},{title:\"内容级曝光\",dataIndex:\"contentExposureCount\",key:\"contentExposureCount\",width:110,sorter:!0,render:me=>ro(me)},{title:\"点击数\",dataIndex:\"clickCount\",key:\"clickCount\",width:90,sorter:!0,render:me=>ro(me)},{title:\"跳转数\",dataIndex:\"jumpCount\",key:\"jumpCount\",width:90,sorter:!0,render:me=>ro(me)},{title:\"回复数\",dataIndex:\"replyCount\",key:\"replyCount\",width:90,sorter:!0,render:me=>ro(me)},{title:\"下架时间\",dataIndex:\"offShelfAt\",key:\"offShelfAt\",width:160,sorter:!0,render:me=>me?ma(me).format(\"YYYY-MM-DD HH:mm\"):\"---\"},{title:\"推送方式\",dataIndex:\"pushMethod\",key:\"pushMethod\",width:140,render:me=>ww[me]||me},{title:\"创建人\",dataIndex:\"createdBy\",key:\"createdBy\",width:100},{title:\"创建时间\",dataIndex:\"createdAt\",key:\"createdAt\",width:160,sorter:!0,render:me=>ma(me).format(\"YYYY-MM-DD HH:mm\")},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:90,fixed:\"right\",render:me=>C.jsx(et,{color:me===\"active\"?\"success\":\"default\",children:me===\"active\"?\"已上架\":\"已下架\"})},{title:\"操作\",key:\"actions\",width:180,fixed:\"right\",render:(me,Me)=>C.jsxs(Qt,{size:4,children:[C.jsx(ze,{type:\"link\",size:\"small\",style:{color:\"#1890ff\",padding:0},onClick:()=>{ce(Me),J(!0)},children:\"编辑\"}),C.jsx(ze,{type:\"link\",size:\"small\",style:{color:\"#1890ff\",padding:0},onClick:()=>ie(Me),children:\"复制\"}),Me.status===\"active\"?C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,style:{padding:0},onClick:()=>fe(Me),children:\"下架\"}):C.jsx(ze,{type:\"link\",size:\"small\",style:{color:\"#52c41a\",padding:0},onClick:()=>xe(Me),children:\"上架\"})]})}],[ie,fe,xe]),ye=m.useCallback(me=>{var Me,je;return C.jsxs(\"div\",{style:{padding:\"8px 16px\"},children:[C.jsxs(sr,{gutter:[24,12],children:[C.jsxs(Se,{span:12,children:[C.jsx(\"div\",{style:{marginBottom:8},children:C.jsx(\"span\",{style:{fontWeight:600,marginRight:8},children:\"基础信息\"})}),C.jsxs(\"div\",{style:{fontSize:13,lineHeight:\"26px\"},children:[C.jsxs(\"div\",{children:[\"推送名称:\",me.name]}),C.jsxs(\"div\",{children:[\"推送方式:\",ww[me.pushMethod]]}),C.jsxs(\"div\",{children:[\"推送类型:\",(Me=Sw[me.pushType])==null?void 0:Me.label]}),C.jsxs(\"div\",{children:[\"优先级:\",C.jsx(et,{color:pmt[me.priority],children:me.priority})]}),C.jsxs(\"div\",{children:[\"站点:\",Ew[me.site]]}),C.jsxs(\"div\",{children:[\"产品:\",(je=me.products)==null?void 0:je.map(lt=>C.jsx(et,{children:lt},lt))]}),C.jsxs(\"div\",{children:[\"间隔时间:\",me.hasInterval?`${me.intervalDays}天`:\"未设置\"]}),C.jsxs(\"div\",{children:[\"卡片描述:\",me.cardDescription]})]})]}),C.jsxs(Se,{span:12,children:[C.jsx(\"div\",{style:{marginBottom:8},children:C.jsx(\"span\",{style:{fontWeight:600,marginRight:8},children:\"最近操作\"})}),C.jsxs(\"div\",{style:{fontSize:13,lineHeight:\"26px\"},children:[C.jsxs(\"div\",{children:[\"最后操作人:\",me.lastOperator||\"---\"]}),C.jsxs(\"div\",{children:[\"最后操作时间:\",me.lastOperatedAt?ma(me.lastOperatedAt).format(\"YYYY-MM-DD HH:mm:ss\"):\"---\"]}),C.jsxs(\"div\",{children:[\"创建人:\",me.createdBy]}),C.jsxs(\"div\",{children:[\"创建时间:\",ma(me.createdAt).format(\"YYYY-MM-DD HH:mm:ss\")]}),me.offShelfAt&&C.jsxs(\"div\",{children:[\"下架时间:\",ma(me.offShelfAt).format(\"YYYY-MM-DD HH:mm:ss\")]})]})]})]}),C.jsx(wp,{style:{margin:\"12px 0\"}}),C.jsx(\"div\",{style:{marginBottom:8},children:C.jsx(\"span\",{style:{fontWeight:600},children:\"内容明细\"})}),C.jsx(Gr,{dataSource:me.contents,rowKey:\"id\",size:\"small\",pagination:!1,columns:[{title:\"形式\",dataIndex:\"formType\",key:\"formType\",width:80,render:lt=>S3[lt]||lt},{title:\"样式\",dataIndex:\"style\",key:\"style\",width:100},{title:\"内容\",dataIndex:\"content\",key:\"content\",ellipsis:!0,render:(lt,tt)=>tt.formType===\"image\"&&tt.imageUrl?C.jsx(\"img\",{src:tt.thumbnailUrl||tt.imageUrl,alt:\"img\",style:{maxWidth:80,maxHeight:50,borderRadius:4}}):lt},{title:\"操作\",key:\"op\",width:60,render:()=>C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{})})}]})]})},[]),we=m.useCallback(()=>C.jsx(Gr.Summary,{fixed:!0,children:C.jsxs(Gr.Summary.Row,{children:[C.jsx(Gr.Summary.Cell,{index:0,colSpan:7,align:\"right\",children:C.jsx(\"span\",{style:{fontWeight:600},children:\"总计\"})}),C.jsx(Gr.Summary.Cell,{index:7,children:ro(o.triggerCount||null)}),C.jsx(Gr.Summary.Cell,{index:8,children:ro(o.pushCount||null)}),C.jsx(Gr.Summary.Cell,{index:9,children:ro(o.arriveCount||null)}),C.jsx(Gr.Summary.Cell,{index:10,children:ro(o.listExposureCount||null)}),C.jsx(Gr.Summary.Cell,{index:11,children:ro(o.contentExposureCount||null)}),C.jsx(Gr.Summary.Cell,{index:12,children:ro(o.clickCount||null)}),C.jsx(Gr.Summary.Cell,{index:13,children:ro(o.jumpCount||null)}),C.jsx(Gr.Summary.Cell,{index:14,children:ro(o.replyCount||null)}),C.jsx(Gr.Summary.Cell,{index:15,colSpan:7})]})}),[o]),Fe=m.useCallback(({value:me,onChange:Me})=>C.jsxs(Qt.Compact,{style:{display:\"flex\"},children:[C.jsx(vn,{placeholder:\"最小\",min:0,size:\"small\",style:{width:80},value:me[0],onChange:je=>Me([je??void 0,me[1]])}),C.jsx(\"span\",{style:{lineHeight:\"24px\"},children:\"-\"}),C.jsx(vn,{placeholder:\"最大\",min:0,size:\"small\",style:{width:80},value:me[1],onChange:je=>Me([me[0],je??void 0])})]}),[]);return C.jsxs(\"div\",{style:{padding:20},children:[C.jsx(hr,{size:\"small\",style:{marginBottom:16},children:C.jsxs(sr,{gutter:[12,12],align:\"middle\",children:[C.jsx(Se,{children:C.jsxs(Qt.Compact,{children:[C.jsx(Qe,{value:p,onChange:v,style:{width:110},options:[{label:\"ID\",value:\"id\"},{label:\"推送名称\",value:\"name\"},{label:\"创建人\",value:\"creator\"}]}),C.jsx(ut,{placeholder:\"请输入\",value:g,onChange:me=>y(me.target.value),onPressEnter:()=>{u(1),oe()},style:{width:180},prefix:C.jsx(xa,{})})]})}),C.jsx(Se,{children:C.jsx(Qe,{placeholder:\"推送形式\",allowClear:!0,style:{width:130},value:b,onChange:x,options:mmt})}),C.jsx(Se,{children:C.jsx(Qe,{placeholder:\"推送状态\",allowClear:!0,style:{width:110},value:F,onChange:S,options:[{label:\"已上架\",value:\"active\"},{label:\"已下架\",value:\"inactive\"}]})}),C.jsx(Se,{children:C.jsx(Qe,{placeholder:\"推送方式\",allowClear:!0,style:{width:150},value:E,onChange:w,options:Object.entries(ww).map(([me,Me])=>({label:Me,value:me}))})}),C.jsx(Se,{children:C.jsx(Qe,{placeholder:\"推送类型\",allowClear:!0,style:{width:100},value:D,onChange:A,options:Object.entries(Sw).map(([me,Me])=>({label:Me.label,value:me}))})}),C.jsx(Se,{children:C.jsx(Qe,{placeholder:\"站点\",allowClear:!0,style:{width:100},value:_,onChange:I,options:Object.entries(Ew).map(([me,Me])=>({label:Me,value:me}))})}),C.jsx(Se,{children:C.jsx(Qe,{placeholder:\"优先级\",allowClear:!0,style:{width:90},value:M,onChange:T,options:ihe.map(me=>({label:me,value:me}))})}),C.jsx(Se,{children:C.jsx(Wl.RangePicker,{placeholder:[\"创建开始\",\"创建结束\"],style:{width:240},value:k,onChange:me=>R(me)})}),C.jsx(Se,{span:24,children:C.jsxs(sr,{gutter:[12,8],children:[C.jsx(Se,{children:C.jsx(\"span\",{style:{fontSize:12,color:\"#999\",lineHeight:\"24px\"},children:\"指标筛选:\"})}),C.jsx(Se,{children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{style:{fontSize:12},children:\"触发数\"}),C.jsx(Fe,{value:P,onChange:B})]})}),C.jsx(Se,{children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{style:{fontSize:12},children:\"推送数\"}),C.jsx(Fe,{value:N,onChange:O})]})}),C.jsx(Se,{children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{style:{fontSize:12},children:\"列表级曝光\"}),C.jsx(Fe,{value:z,onChange:W})]})}),C.jsx(Se,{children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{style:{fontSize:12},children:\"内容级曝光\"}),C.jsx(Fe,{value:L,onChange:j})]})}),C.jsx(Se,{children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{style:{fontSize:12},children:\"点击数\"}),C.jsx(Fe,{value:H,onChange:V})]})}),C.jsx(Se,{children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{style:{fontSize:12},children:\"跳转数\"}),C.jsx(Fe,{value:U,onChange:Q})]})}),C.jsx(Se,{children:C.jsxs(Qt,{size:4,children:[C.jsx(\"span\",{style:{fontSize:12},children:\"回复数\"}),C.jsx(Fe,{value:K,onChange:Y})]})})]})}),C.jsx(Se,{flex:\"auto\"}),C.jsx(Se,{children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:()=>{u(1),oe()},children:\"查询\"}),C.jsx(ze,{icon:C.jsx(Sm,{}),onClick:ue,children:\"重置\"})]})})]})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:12},children:[C.jsx(ji.Title,{level:4,style:{margin:0},children:\"新IM推送\"}),C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>{ce(null),J(!0)},children:\"新建\"})]}),C.jsx(Gr,{columns:De,dataSource:e,rowKey:\"id\",loading:r,scroll:{x:2940},size:\"middle\",expandable:{expandedRowKeys:f,onExpandedRowsChange:me=>h(me),expandedRowRender:ye},pagination:{current:s,pageSize:c,total:a,showSizeChanger:!0,showQuickJumper:!0,pageSizeOptions:[\"10\",\"20\",\"50\"],showTotal:me=>`共 ${me} 条`,onChange:(me,Me)=>{u(me),d(Me)}},summary:we}),C.jsx(gmt,{open:ee,editingPush:X,onClose:()=>{J(!1),ce(null)},onSave:Ee})]})},gmt=({open:e,editingPush:t,onClose:r,onSave:n})=>{const[a]=be.useForm(),[i,o]=m.useState([]),[l,s]=m.useState(!1),[u,c]=m.useState(null),[d,f]=m.useState(!1);m.useEffect(()=>{e&&(t?(a.setFieldsValue({reviewPlanId:t.reviewPlanId,name:t.name,pushMethod:t.pushMethod,pushType:t.pushType,priority:t.priority,site:t.site,products:t.products,hasInterval:t.hasInterval,intervalDays:t.intervalDays,cardDescription:t.cardDescription}),o([...t.contents])):(a.resetFields(),a.setFieldsValue({pushMethod:\"brand_account\",priority:\"P1\"}),o([])))},[e,t,a]);const h=m.useCallback(g=>{u!==null?(o(y=>{const b=[...y];return b[u]={...g,sortOrder:u+1},b}),c(null)):o(y=>[...y,{...g,sortOrder:y.length+1}])},[u]),p=m.useCallback(g=>{i.length<=1?an.confirm({title:\"确认删除\",content:\"推送至少需要保留一条内容,删除后无法恢复。\",okText:\"仍然删除\",okType:\"danger\",cancelText:\"取消\",onOk:()=>{o(y=>y.filter((b,x)=>x!==g).map((b,x)=>({...b,sortOrder:x+1})))}}):o(y=>y.filter((b,x)=>x!==g).map((b,x)=>({...b,sortOrder:x+1})))},[i.length]),v=m.useCallback(async()=>{try{const g=await a.validateFields();if(i.length===0){vt.warning(\"请至少添加一条内容\");return}if(g.hasInterval&&(!g.intervalDays||g.intervalDays<1)){vt.warning(\"间隔时间必须大于等于1天\");return}n(g,i)}catch{}},[a,i,n]);return C.jsxs(C.Fragment,{children:[C.jsx(an,{title:t?\"编辑推送\":\"新增推送\",open:e,onCancel:r,width:720,footer:[C.jsx(ze,{icon:C.jsx(Zo,{}),onClick:()=>f(!0),children:\"预览\"},\"preview\"),C.jsx(ze,{onClick:r,children:\"取消\"},\"cancel\"),C.jsx(ze,{type:\"primary\",onClick:v,children:\"确定\"},\"ok\")],destroyOnClose:!0,children:C.jsxs(be,{form:a,layout:\"vertical\",children:[C.jsx(wp,{orientation:\"left\",plain:!0,children:\"基础信息\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"name\",label:\"推送名称\",rules:[{required:!0,message:\"请输入事件名称\"}],children:C.jsx(ut,{placeholder:\"请输入事件名称\"})})}),C.jsx(Se,{span:12,children:C.jsx(be.Item,{name:\"pushMethod\",label:\"IM 推送方式\",rules:[{required:!0,message:\"请选择推送方式\"}],children:C.jsx(Qe,{options:Object.entries(ww).map(([g,y])=>({label:y,value:g}))})})})]}),C.jsx(be.Item,{name:\"reviewPlanId\",label:\"关联测评计划ID\",children:C.jsx(ut,{placeholder:\"请输入关联测评计划ID例如 RP0001\"})}),C.jsx(wp,{orientation:\"left\",plain:!0,children:\"推送属性\"}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"pushType\",label:\"推送类型\",rules:[{required:!0,message:\"请选择推送类型\"}],children:C.jsx(Qe,{options:Object.entries(Sw).map(([g,y])=>({label:y.label,value:g}))})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"priority\",label:\"优先级\",rules:[{required:!0,message:\"请选择优先级\"}],children:C.jsx(Qe,{options:ihe.map(g=>({label:g,value:g}))})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"site\",label:\"站点\",rules:[{required:!0,message:\"请选择站点\"}],children:C.jsx(Qe,{options:Object.entries(Ew).map(([g,y])=>({label:y,value:g}))})})})]}),C.jsxs(sr,{gutter:16,children:[C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"products\",label:\"产品\",children:C.jsx(Qe,{mode:\"multiple\",placeholder:\"选择产品\",options:xmt.map(g=>({label:g,value:g}))})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"hasInterval\",label:\"设置间隔时间\",valuePropName:\"checked\",children:C.jsx(Qe,{options:[{label:\"是\",value:!0},{label:\"否\",value:!1}],placeholder:\"是否设置\"})})}),C.jsx(Se,{span:8,children:C.jsx(be.Item,{name:\"intervalDays\",label:\"间隔时间(天)\",children:C.jsx(vn,{min:1,style:{width:\"100%\"},placeholder:\"最小1天\"})})})]}),C.jsx(wp,{orientation:\"left\",plain:!0,children:\"推送信息\"}),C.jsx(be.Item,{name:\"cardDescription\",label:\"卡片描述\",rules:[{required:!0,message:\"请输入卡片描述\"}],children:C.jsx(ut.TextArea,{rows:3,placeholder:\"用于描述推送内容或运营目的\"})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:8},children:[C.jsx(\"span\",{style:{fontWeight:600},children:\"选择样式\"}),C.jsx(Qt,{children:C.jsx(\"a\",{style:{fontSize:12},children:\"样式建议和规范\"})})]}),C.jsx(Gr,{dataSource:i,rowKey:\"id\",size:\"small\",pagination:!1,columns:[{title:\"形式\",dataIndex:\"formType\",key:\"formType\",width:80,render:g=>S3[g]||g},{title:\"样式\",dataIndex:\"style\",key:\"style\",width:100},{title:\"内容\",dataIndex:\"content\",key:\"content\",ellipsis:!0,render:(g,y)=>y.formType===\"image\"&&y.thumbnailUrl?C.jsx(\"img\",{src:y.thumbnailUrl,alt:\"img\",style:{maxWidth:60,maxHeight:40,borderRadius:4}}):C.jsx(Dr,{title:g,children:C.jsx(\"span\",{children:g})})},{title:\"操作\",key:\"op\",width:100,render:(g,y,b)=>C.jsxs(Qt,{size:4,children:[C.jsx(ze,{type:\"link\",size:\"small\",style:{color:\"#1890ff\",padding:0},onClick:()=>{c(b),s(!0)},children:\"编辑\"}),C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,style:{padding:0},onClick:()=>p(b),children:\"删除\"})]})}]}),C.jsx(ze,{type:\"dashed\",block:!0,icon:C.jsx(Do,{}),style:{marginTop:8},onClick:()=>{c(null),s(!0)},children:\"添加新内容\"})]})}),C.jsx(ymt,{open:l,editingContent:u!==null?i[u]:null,onSave:h,onClose:()=>{s(!1),c(null)}}),C.jsx(bmt,{open:d,contents:i,onClose:()=>f(!1)})]})},ymt=({open:e,editingContent:t,onSave:r,onClose:n})=>{const[a,i]=m.useState(\"form\"),[o,l]=m.useState(\"card\"),[s,u]=m.useState(\"\"),[c,d]=m.useState(\"\"),[f,h]=m.useState(\"\"),[p,v]=m.useState(\"\");m.useEffect(()=>{e&&(t?(i(\"config\"),l(t.formType),u(t.style),t.formType===\"image\"&&(h(t.imageUrl||\"\"),v(t.thumbnailUrl||\"\")),d(t.content)):(i(\"form\"),l(\"card\"),u(\"\"),d(\"\"),h(\"\"),v(\"\")))},[e,t]);const g=m.useCallback(()=>{if(!o||!s){vt.warning(\"请选择内容形式和样式\");return}if(o!==\"image\"&&!c){vt.warning(\"请输入内容\");return}if(o===\"image\"&&!f){vt.warning(\"请上传图片\");return}const b={id:(t==null?void 0:t.id)||`c_new_${Date.now()}`,formType:o,style:s,content:o===\"image\"?c||`image_${Date.now()}.png`:c,imageUrl:o===\"image\"?f:void 0,thumbnailUrl:o===\"image\"?p:void 0,sortOrder:(t==null?void 0:t.sortOrder)||0,createdAt:(t==null?void 0:t.createdAt)||new Date().toISOString(),updatedAt:new Date().toISOString()};r(b),n()},[o,s,c,f,p,t,r,n]),y={card:[\"气泡卡片\",\"图文卡片\",\"按钮卡片\",\"列表卡片\"],text:[\"气泡\",\"纯文本\",\"富文本\"],image:[\"单图\",\"双图\",\"九宫格\"]};return C.jsx(an,{title:t?\"编辑内容\":\"添加新内容\",open:e,onCancel:n,onOk:a===\"form\"?()=>i(\"config\"):g,okText:a===\"form\"?\"确定\":\"保存\",width:480,destroyOnClose:!0,children:a===\"form\"?C.jsxs(\"div\",{style:{padding:\"20px 0\"},children:[C.jsx(\"div\",{style:{marginBottom:12},children:\"选择内容形式:\"}),C.jsx(Qt,{direction:\"vertical\",style:{width:\"100%\"},children:[\"card\",\"text\",\"image\"].map(b=>C.jsxs(\"div\",{onClick:()=>l(b),style:{padding:\"12px 16px\",border:`2px solid ${o===b?\"#1890ff\":\"#d9d9d9\"}`,borderRadius:8,cursor:\"pointer\",background:o===b?\"#e6f7ff\":\"#fff\"},children:[C.jsx(\"span\",{style:{fontWeight:600},children:S3[b]}),C.jsxs(\"div\",{style:{fontSize:12,color:\"#999\",marginTop:4},children:[b===\"card\"&&\"IM内以卡片形式展示可包含图片或按钮\",b===\"text\"&&\"纯文本或气泡形式展示\",b===\"image\"&&\"以图片形式展示,支持拖拽上传\"]})]},b))})]}):C.jsx(\"div\",{style:{padding:\"12px 0\"},children:C.jsxs(be,{layout:\"vertical\",children:[C.jsx(be.Item,{label:\"形式\",children:C.jsx(ut,{disabled:!0,value:S3[o]})}),C.jsx(be.Item,{label:\"样式\",children:C.jsx(Qe,{value:s||void 0,onChange:u,placeholder:\"请选择样式\",options:y[o].map(b=>({label:b,value:b}))})}),o===\"image\"?C.jsxs(C.Fragment,{children:[C.jsx(be.Item,{label:\"图片\",children:C.jsx(\"div\",{style:{border:\"1px dashed #d9d9d9\",borderRadius:8,padding:20,textAlign:\"center\",cursor:\"pointer\",background:\"#fafafa\"},onClick:()=>{const b=Math.floor(Math.random()*1e4);h(`https://picsum.photos/seed/${b}/400/300`),v(`https://picsum.photos/seed/${b}/80/60`),vt.success(\"图片上传成功Mock\")},children:f?C.jsx(\"img\",{src:p||f,alt:\"preview\",style:{maxWidth:200,borderRadius:4}}):C.jsxs(\"div\",{children:[C.jsx(Do,{style:{fontSize:32,color:\"#999\"}}),C.jsx(\"div\",{style:{marginTop:8,color:\"#666\"},children:\"点击或拖拽上传图片\"}),C.jsx(\"div\",{style:{fontSize:12,color:\"#999\",marginTop:4},children:\"支持PNG、JPG、JPEG、GIF图片最多上传1份单份文件大小不超过 5 MB\"})]})})}),C.jsx(be.Item,{label:\"图片说明\",children:C.jsx(ut,{value:c,onChange:b=>d(b.target.value),placeholder:\"可选图片描述\"})})]}):C.jsx(be.Item,{label:\"内容\",children:C.jsx(ut.TextArea,{rows:4,value:c,onChange:b=>d(b.target.value),placeholder:\"请输入推送内容\"})})]})})})},bmt=({open:e,contents:t,onClose:r})=>C.jsx(an,{title:\"IM 推送预览\",open:e,onCancel:r,footer:null,width:400,children:C.jsx(\"div\",{style:{background:\"#f5f5f5\",borderRadius:12,padding:16,maxWidth:360,margin:\"0 auto\"},children:t.length===0?C.jsx(\"div\",{style:{textAlign:\"center\",color:\"#999\",padding:20},children:\"暂无内容\"}):t.map((n,a)=>C.jsxs(\"div\",{style:{marginBottom:a<t.length-1?8:0},children:[n.formType===\"card\"&&C.jsxs(\"div\",{style:{background:\"#fff\",borderRadius:8,padding:12,boxShadow:\"0 1px 2px rgba(0,0,0,0.1)\"},children:[C.jsxs(\"div\",{style:{fontSize:12,color:\"#999\",marginBottom:4},children:[\"卡片 · \",n.style]}),C.jsx(\"div\",{style:{fontSize:14},children:n.content})]}),n.formType===\"text\"&&C.jsx(\"div\",{style:{background:\"#95ec69\",borderRadius:12,padding:\"8px 12px\",display:\"inline-block\",maxWidth:\"100%\"},children:C.jsx(\"div\",{style:{fontSize:14,whiteSpace:\"pre-wrap\"},children:n.content})}),n.formType===\"image\"&&n.imageUrl&&C.jsx(\"div\",{style:{textAlign:\"center\"},children:C.jsx(\"img\",{src:n.imageUrl,alt:\"preview\",style:{maxWidth:\"100%\",borderRadius:8}})})]},n.id||a))})}),xmt=[\"海象\",\"阿萝拉\",\"Joyhub\",\"NexiGo\",\"MiiR\",\"Ember\",\"AeroPress\",\"Kinto\",\"POVISON\",\"YITAHOME\",\"Aodesite\",\"Homrest\",\"P PURLOVE\",\"LINSY\",\"DHP\"],ihe=[\"P0\",\"P1\",\"P2\",\"P3\"],Cmt=Object.freeze(Object.defineProperty({__proto__:null,default:vmt},Symbol.toStringTag,{value:\"Module\"})),{RangePicker:Fmt}=Wl,Smt={active:{label:\"已上架\",color:\"success\"},inactive:{label:\"已下架\",color:\"default\"}},wmt={internal:{label:\"内部跳转\",color:\"blue\"},external:{label:\"外部跳转\",color:\"purple\"}},Emt=({open:e,onClose:t,visibleFields:r,onSave:n})=>{const a=[{key:\"id\",label:\"卡片ID\",required:!0},{key:\"name\",label:\"卡片名称\",required:!1},{key:\"description\",label:\"卡片描述\",required:!1},{key:\"imageUrl\",label:\"图片\",required:!0},{key:\"linkUrl\",label:\"链接地址\",required:!0},{key:\"jumpType\",label:\"跳转方式\",required:!1},{key:\"notes\",label:\"备注\",required:!1},{key:\"pushCount\",label:\"推送次数\",required:!1},{key:\"exposureCount\",label:\"曝光次数\",required:!1},{key:\"clickCount\",label:\"点击次数\",required:!1},{key:\"clickRate\",label:\"点击率\",required:!1},{key:\"createdBy\",label:\"创建人\",required:!1},{key:\"createdAt\",label:\"创建时间\",required:!1},{key:\"status\",label:\"状态\",required:!0}],[i,o]=m.useState(r);return m.useEffect(()=>{e&&o(r)},[e,r]),C.jsxs(an,{title:\"字段管理\",open:e,onCancel:t,onOk:()=>{n(i),t()},width:500,children:[C.jsx(\"p\",{style:{marginBottom:12,color:\"#666\"},children:\"选择列表展示字段(带 * 为必选):\"}),C.jsx(Qt,{wrap:!0,children:a.map(l=>C.jsxs(et.CheckableTag,{checked:i.includes(l.key),onChange:s=>{l.required&&!s||o(s?[...i,l.key]:i.filter(u=>u!==l.key))},children:[l.required&&\"* \",l.label]},l.key))})]})},Dmt=({open:e,onClose:t,onSuccess:r})=>{const[n]=be.useForm(),[a,i]=m.useState(!1),o=m.useCallback(async()=>{try{const l=await n.validateFields();i(!0),await fr(\"/im-cards\",{...l,imageUrl:l.imageUrl||`https://picsum.photos/seed/${Date.now()}/400/200`,thumbnailUrl:l.thumbnailUrl||`https://picsum.photos/seed/${Date.now()}/100/50`}),vt.success(\"卡片创建成功\"),n.resetFields(),r()}catch{}finally{i(!1)}},[n,r]);return C.jsx(an,{title:\"新增卡片\",open:e,onCancel:()=>{n.resetFields(),t()},onOk:o,confirmLoading:a,width:560,destroyOnClose:!0,children:C.jsxs(be,{form:n,layout:\"vertical\",initialValues:{jumpType:\"internal\"},children:[C.jsx(be.Item,{name:\"name\",label:\"卡片名称\",rules:[{required:!0,message:\"请输入卡片名称\"},{max:50,message:\"最多50字符\"}],children:C.jsx(ut,{placeholder:\"请输入卡片名称\",maxLength:50,showCount:!0})}),C.jsx(be.Item,{name:\"description\",label:\"卡片描述\",rules:[{required:!0,message:\"请输入卡片描述\"},{max:30,message:\"最多30字符\"}],children:C.jsx(ut,{placeholder:\"请输入卡片描述\",maxLength:30,showCount:!0})}),C.jsxs(be.Item,{name:\"imageFile\",label:\"上传图片\",rules:[{required:!0,message:\"请上传图片\"}],children:[C.jsx(J6,{accept:\".jpg,.jpeg,.png,.gif\",maxCount:1,beforeUpload:()=>!1,listType:\"picture\",children:C.jsx(ze,{children:\"点击上传\"})}),C.jsx(\"div\",{style:{color:\"#999\",fontSize:12,marginTop:4},children:\"只能上传jpg/png/gif格式文件单个文件不能超过1M\"})]}),C.jsx(be.Item,{name:\"linkUrl\",label:\"绑定链接\",rules:[{required:!0,message:\"请输入绑定链接\"},{pattern:/^https?:\\/\\/.+/,message:\"请输入合法链接以http://或https://开头)\"}],children:C.jsx(ut,{placeholder:\"请输入绑定链接,如 https://events.joyhub.net/active-gift/xxx\"})}),C.jsx(be.Item,{name:\"jumpType\",label:\"跳转方式\",rules:[{required:!0,message:\"请选择跳转方式\"}],children:C.jsx(Qe,{options:[{label:\"内部跳转\",value:\"internal\"},{label:\"外部跳转\",value:\"external\"}]})}),C.jsx(be.Item,{name:\"notes\",label:\"备注\",rules:[{max:300,message:\"最多300字符\"}],children:C.jsx(ut.TextArea,{placeholder:\"请输入备注\",maxLength:300,showCount:!0,rows:3})})]})})},Amt=()=>{const[e,t]=m.useState([]),[r,n]=m.useState(!1),[a,i]=m.useState(0),[o,l]=m.useState({page:1,pageSize:10}),[s,u]=m.useState(!1),[c,d]=m.useState(!1),[f,h]=m.useState([\"id\",\"name\",\"description\",\"imageUrl\",\"linkUrl\",\"jumpType\",\"notes\",\"pushCount\",\"exposureCount\",\"clickCount\",\"clickRate\",\"createdBy\",\"createdAt\",\"status\"]),[p,v]=m.useState(\"name\"),[g,y]=m.useState(\"\"),[b,x]=m.useState(),[F,S]=m.useState([]),[E,w]=m.useState([]),[D,A]=m.useState([]),[_,I]=m.useState([]),M=m.useCallback(async O=>{n(!0);try{const z=await Or(\"/im-cards\",{page:o.page,pageSize:o.pageSize,...O});t(z.list||[]),i(z.total||0)}catch{vt.error(\"获取卡片列表失败\")}finally{n(!1)}},[o]);m.useEffect(()=>{const O={};p&&g&&(O.searchField=p,O.keyword=g),b&&(O.status=b),F[0]!==void 0&&(O.exposureMin=String(F[0])),F[1]!==void 0&&(O.exposureMax=String(F[1])),E[0]!==void 0&&(O.clickCountMin=String(E[0])),E[1]!==void 0&&(O.clickCountMax=String(E[1])),D[0]!==void 0&&(O.clickRateMin=String(D[0])),D[1]!==void 0&&(O.clickRateMax=String(D[1])),_[0]&&(O.createdAtStart=_[0]),_[1]&&(O.createdAtEnd=_[1]),M(O)},[o,M]);const T=()=>{l(O=>({...O,page:1}))},k=()=>{v(\"name\"),y(\"\"),x(void 0),S([]),w([]),A([]),I([]),l(O=>({...O,page:1}))},R=m.useCallback(async O=>{an.confirm({title:\"确认下架\",content:\"下架后该卡片将不再被新的IM推送引用是否确认\",okText:\"确认下架\",cancelText:\"取消\",onOk:async()=>{await Go(`/im-cards/${O}/off-shelf`,{reason:\"运营下架\"}),vt.success(\"下架成功\"),M()}})},[M]),P=m.useCallback(async O=>{await Go(`/im-cards/${O}/on-shelf`),vt.success(\"上架成功\"),M()},[M]),B=m.useMemo(()=>[{key:\"id\",title:\"卡片ID\",dataIndex:\"id\",width:80,fixed:\"left\"},{key:\"name\",title:\"卡片名称\",dataIndex:\"name\",width:140,ellipsis:!0,render:O=>C.jsx(Dr,{title:O,children:O})},{key:\"description\",title:\"卡片描述\",dataIndex:\"description\",width:120,ellipsis:!0,render:O=>C.jsx(Dr,{title:O,children:O})},{key:\"imageUrl\",title:\"图片\",dataIndex:\"imageUrl\",width:100,render:(O,z)=>C.jsx(r2,{src:z.thumbnailUrl||O,width:60,height:30,style:{objectFit:\"cover\",borderRadius:4},preview:{src:O}})},{key:\"linkUrl\",title:\"链接地址\",dataIndex:\"linkUrl\",width:200,ellipsis:!0,render:O=>C.jsx(Dr,{title:O,children:C.jsx(\"a\",{href:O,target:\"_blank\",rel:\"noopener noreferrer\",style:{color:\"#1890ff\"},children:O})})},{key:\"jumpType\",title:\"跳转方式\",dataIndex:\"jumpType\",width:100,render:O=>{const z=wmt[O];return C.jsx(et,{color:z==null?void 0:z.color,children:(z==null?void 0:z.label)||O})}},{key:\"notes\",title:\"备注\",dataIndex:\"notes\",width:120,ellipsis:!0,render:O=>O?C.jsx(Dr,{title:O,children:O}):C.jsx(\"span\",{style:{color:\"#ccc\"},children:\"--\"})},{key:\"pushCount\",title:\"推送次数\",dataIndex:\"pushCount\",width:90,align:\"right\",render:O=>(O==null?void 0:O.toLocaleString())??\"--\"},{key:\"exposureCount\",title:\"曝光次数\",dataIndex:\"exposureCount\",width:90,align:\"right\",render:O=>(O==null?void 0:O.toLocaleString())??\"--\"},{key:\"clickCount\",title:\"点击次数\",dataIndex:\"clickCount\",width:90,align:\"right\",render:O=>(O==null?void 0:O.toLocaleString())??\"--\"},{key:\"clickRate\",title:\"点击率\",dataIndex:\"clickRate\",width:90,align:\"right\",render:O=>O!=null?`${O.toFixed(2)}%`:\"--\"},{key:\"createdBy\",title:\"创建人\",dataIndex:\"createdBy\",width:90},{key:\"createdAt\",title:\"创建时间\",dataIndex:\"createdAt\",width:160,render:O=>O?new Date(O).toLocaleString(\"zh-CN\"):\"--\"},{key:\"status\",title:\"状态\",dataIndex:\"status\",width:80,fixed:\"right\",render:O=>{const z=Smt[O];return C.jsx(et,{color:z==null?void 0:z.color,children:(z==null?void 0:z.label)||O})}}],[]),N=m.useMemo(()=>{const O=B.filter(z=>f.includes(z.key));return O.push({key:\"actions\",title:\"操作\",width:80,fixed:\"right\",render:(z,W)=>W.status===\"active\"?C.jsx(ze,{type:\"link\",size:\"small\",onClick:()=>R(W.id),children:\"下架\"}):C.jsx(ze,{type:\"link\",size:\"small\",onClick:()=>P(W.id),children:\"上架\"})}),O},[B,f,R,P]);return C.jsxs(\"div\",{children:[C.jsx(\"div\",{style:{background:\"#fff\",padding:16,borderRadius:8,marginBottom:16},children:C.jsxs(sr,{gutter:[12,12],align:\"middle\",children:[C.jsx(Se,{children:C.jsxs(Qt,{children:[C.jsx(Qe,{value:p,onChange:v,style:{width:120},options:[{label:\"卡片ID\",value:\"id\"},{label:\"卡片名称\",value:\"name\"},{label:\"卡片描述\",value:\"description\"},{label:\"链接地址\",value:\"linkUrl\"},{label:\"创建人\",value:\"creator\"}]}),C.jsx(ut,{placeholder:\"请输入\",value:g,onChange:O=>y(O.target.value),onPressEnter:T,style:{width:160},prefix:C.jsx(xa,{})})]})}),C.jsx(Se,{children:C.jsxs(Qt,{children:[C.jsx(\"span\",{style:{fontSize:12,color:\"#666\"},children:\"曝光次数\"}),C.jsx(vn,{placeholder:\"最小\",value:F[0],onChange:O=>S([O??void 0,F[1]]),style:{width:80},min:0}),C.jsx(\"span\",{children:\"-\"}),C.jsx(vn,{placeholder:\"最大\",value:F[1],onChange:O=>S([F[0],O??void 0]),style:{width:80},min:0})]})}),C.jsx(Se,{children:C.jsxs(Qt,{children:[C.jsx(\"span\",{style:{fontSize:12,color:\"#666\"},children:\"点击次数\"}),C.jsx(vn,{placeholder:\"最小\",value:E[0],onChange:O=>w([O??void 0,E[1]]),style:{width:80},min:0}),C.jsx(\"span\",{children:\"-\"}),C.jsx(vn,{placeholder:\"最大\",value:E[1],onChange:O=>w([E[0],O??void 0]),style:{width:80},min:0})]})}),C.jsx(Se,{children:C.jsxs(Qt,{children:[C.jsx(\"span\",{style:{fontSize:12,color:\"#666\"},children:\"点击率%\"}),C.jsx(vn,{placeholder:\"最小\",value:D[0],onChange:O=>A([O??void 0,D[1]]),style:{width:80},min:0}),C.jsx(\"span\",{children:\"-\"}),C.jsx(vn,{placeholder:\"最大\",value:D[1],onChange:O=>A([D[0],O??void 0]),style:{width:80},min:0})]})}),C.jsx(Se,{children:C.jsx(Qe,{placeholder:\"状态\",value:b,onChange:x,allowClear:!0,style:{width:120},options:[{label:\"已上架\",value:\"active\"},{label:\"已下架\",value:\"inactive\"}]})}),C.jsx(Se,{children:C.jsx(Fmt,{placeholder:[\"创建开始\",\"创建截止\"],onChange:(O,z)=>I(z)})}),C.jsx(Se,{children:C.jsxs(Qt,{children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(xa,{}),onClick:T,children:\"查询\"}),C.jsx(ze,{icon:C.jsx(Sm,{}),onClick:k,children:\"重置\"})]})})]})}),C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:12},children:[C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>u(!0),children:\"新增\"}),C.jsx(ze,{icon:C.jsx(bB,{}),onClick:()=>d(!0),children:\"字段管理\"})]}),C.jsx(Gr,{columns:N,dataSource:e,rowKey:\"id\",loading:r,scroll:{x:1600},pagination:{current:o.page,pageSize:o.pageSize,total:a,showSizeChanger:!0,showQuickJumper:!0,showTotal:O=>`共 ${O} 条`,onChange:(O,z)=>l({page:O,pageSize:z})},size:\"middle\"}),C.jsx(Dmt,{open:s,onClose:()=>u(!1),onSuccess:()=>M()}),C.jsx(Emt,{open:c,onClose:()=>d(!1),visibleFields:f,onSave:h})]})},_mt=Object.freeze(Object.defineProperty({__proto__:null,default:Amt},Symbol.toStringTag,{value:\"Module\"})),mK={wechat:{label:\"微信\",color:\"success\"},whatsapp:{label:\"WhatsApp\",color:\"processing\"},line:{label:\"LINE\",color:\"green\"},telegram:{label:\"Telegram\",color:\"blue\"}},Tmt=()=>{const e=La(),{imConfigs:t}=da(u=>u.channel),[r,n]=m.useState(!1),[a,i]=m.useState(null),[o]=be.useForm();m.useEffect(()=>{e(wce())},[e]);const l=m.useMemo(()=>[{title:\"名称\",dataIndex:\"name\",key:\"name\",width:140},{title:\"平台\",dataIndex:\"platform\",key:\"platform\",width:100,render:u=>{const c=mK[u];return C.jsx(et,{color:(c==null?void 0:c.color)||\"default\",children:(c==null?void 0:c.label)||u})}},{title:\"Webhook URL\",dataIndex:\"webhookUrl\",key:\"webhookUrl\",width:200,ellipsis:!0},{title:\"App Key\",dataIndex:\"appKey\",key:\"appKey\",width:140,ellipsis:!0},{title:\"日限额\",dataIndex:\"dailyLimit\",key:\"dailyLimit\",width:90},{title:\"今日已发\",dataIndex:\"sentToday\",key:\"sentToday\",width:90,render:(u,c)=>C.jsx(\"span\",{style:{color:u>=c.dailyLimit?\"#ff4d4f\":void 0},children:u})},{title:\"状态\",dataIndex:\"enabled\",key:\"enabled\",width:80,render:u=>C.jsx(et,{color:u?\"success\":\"default\",children:u?\"启用\":\"禁用\"})},{title:\"操作\",key:\"actions\",width:100,render:(u,c)=>C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(od,{}),onClick:()=>{i(c),o.setFieldsValue(c),n(!0)},children:\"编辑\"})}],[o]),s=m.useCallback(()=>{n(!1),i(null),o.resetFields(),vt.success(a?\"配置已更新\":\"配置已创建\")},[a,o]);return C.jsxs(C.Fragment,{children:[C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:16},children:[C.jsx(\"h3\",{style:{margin:0},children:\"IM 推送配置\"}),C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>{i(null),o.resetFields(),n(!0)},children:\"新增配置\"})]}),C.jsx(Gr,{columns:l,dataSource:t,rowKey:\"id\",pagination:!1,size:\"middle\"}),C.jsx(an,{title:a?\"编辑 IM 配置\":\"新增 IM 配置\",open:r,onCancel:()=>{n(!1),i(null),o.resetFields()},onOk:s,children:C.jsxs(be,{form:o,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"name\",label:\"名称\",rules:[{required:!0,message:\"请输入名称\"}],children:C.jsx(ut,{placeholder:\"配置名称\"})}),C.jsx(be.Item,{name:\"platform\",label:\"平台\",rules:[{required:!0,message:\"请选择平台\"}],children:C.jsx(Qe,{options:Object.entries(mK).map(([u,c])=>({label:c.label,value:u})),placeholder:\"选择平台\"})}),C.jsx(be.Item,{name:\"webhookUrl\",label:\"Webhook URL\",rules:[{required:!0,message:\"请输入 Webhook URL\"}],children:C.jsx(ut,{placeholder:\"https://...\"})}),C.jsx(be.Item,{name:\"appKey\",label:\"App Key\",rules:[{required:!0,message:\"请输入 App Key\"}],children:C.jsx(ut,{placeholder:\"App Key\"})}),C.jsx(be.Item,{name:\"dailyLimit\",label:\"日限额\",initialValue:1e3,children:C.jsx(vn,{min:1,style:{width:\"100%\"}})}),C.jsx(be.Item,{name:\"enabled\",label:\"启用\",valuePropName:\"checked\",initialValue:!0,children:C.jsx(G6,{})})]})})]})},Imt=()=>{const e=La(),{edmConfigs:t}=da(h=>h.channel),[r,n]=m.useState(!1),[a,i]=m.useState(!1),[o,l]=m.useState(null),[s,u]=m.useState(\"\"),[c]=be.useForm();m.useEffect(()=>{e(Ece())},[e]);const d=m.useMemo(()=>[{title:\"名称\",dataIndex:\"name\",key:\"name\",width:140},{title:\"发件人\",dataIndex:\"senderEmail\",key:\"senderEmail\",width:180,ellipsis:!0},{title:\"发件人名称\",dataIndex:\"senderName\",key:\"senderName\",width:120},{title:\"SMTP\",dataIndex:\"smtpHost\",key:\"smtpHost\",width:140},{title:\"端口\",dataIndex:\"smtpPort\",key:\"smtpPort\",width:70},{title:\"日限额\",dataIndex:\"dailyLimit\",key:\"dailyLimit\",width:90},{title:\"今日已发\",dataIndex:\"sentToday\",key:\"sentToday\",width:90,render:(h,p)=>C.jsx(\"span\",{style:{color:h>=p.dailyLimit?\"#ff4d4f\":void 0},children:h})},{title:\"状态\",dataIndex:\"enabled\",key:\"enabled\",width:80,render:h=>C.jsx(et,{color:h?\"success\":\"default\",children:h?\"启用\":\"禁用\"})},{title:\"操作\",key:\"actions\",width:160,render:(h,p)=>C.jsxs(Qt,{size:\"small\",children:[C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(od,{}),onClick:()=>{l(p),c.setFieldsValue(p),n(!0)},children:\"编辑\"}),C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{}),onClick:()=>{u(`预览 ${p.name} 的邮件模板内容`),i(!0)},children:\"预览\"})]})}],[c]),f=m.useCallback(()=>{n(!1),l(null),c.resetFields(),vt.success(o?\"配置已更新\":\"配置已创建\")},[o,c]);return C.jsxs(C.Fragment,{children:[C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",marginBottom:16},children:[C.jsx(\"h3\",{style:{margin:0},children:\"EDM 邮件配置\"}),C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>{l(null),c.resetFields(),n(!0)},children:\"新增配置\"})]}),C.jsx(Gr,{columns:d,dataSource:t,rowKey:\"id\",pagination:!1,size:\"middle\"}),C.jsx(an,{title:o?\"编辑 EDM 配置\":\"新增 EDM 配置\",open:r,onCancel:()=>{n(!1),l(null),c.resetFields()},onOk:f,width:640,children:C.jsxs(be,{form:c,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"name\",label:\"名称\",rules:[{required:!0,message:\"请输入名称\"}],children:C.jsx(ut,{placeholder:\"EDM 配置名称\"})}),C.jsxs(Qt,{style:{width:\"100%\"},size:16,children:[C.jsx(be.Item,{name:\"senderEmail\",label:\"发件人邮箱\",rules:[{required:!0,message:\"请输入\"}],style:{width:300},children:C.jsx(ut,{placeholder:\"sender@example.com\"})}),C.jsx(be.Item,{name:\"senderName\",label:\"发件人名称\",rules:[{required:!0,message:\"请输入\"}],style:{width:300},children:C.jsx(ut,{placeholder:\"发件人名称\"})})]}),C.jsx(be.Item,{name:\"replyTo\",label:\"回复地址\",children:C.jsx(ut,{placeholder:\"reply@example.com\"})}),C.jsxs(Qt,{style:{width:\"100%\"},size:16,children:[C.jsx(be.Item,{name:\"smtpHost\",label:\"SMTP 服务器\",rules:[{required:!0,message:\"请输入\"}],style:{width:300},children:C.jsx(ut,{placeholder:\"smtp.example.com\"})}),C.jsx(be.Item,{name:\"smtpPort\",label:\"端口\",initialValue:465,style:{width:300},children:C.jsx(vn,{min:1,max:65535,style:{width:\"100%\"}})})]}),C.jsx(be.Item,{name:\"dailyLimit\",label:\"日限额\",initialValue:500,children:C.jsx(vn,{min:1,style:{width:\"100%\"}})}),C.jsx(be.Item,{name:\"enabled\",label:\"启用\",valuePropName:\"checked\",initialValue:!0,children:C.jsx(G6,{})})]})}),C.jsx(an,{title:\"邮件模板预览\",open:a,onCancel:()=>i(!1),footer:null,width:600,children:C.jsx(\"div\",{style:{padding:24,backgroundColor:\"#f5f5f5\",borderRadius:8,minHeight:200},children:C.jsx(\"div\",{style:{backgroundColor:\"#fff\",padding:24,borderRadius:4},children:C.jsx(\"p\",{children:s})})})})]})},kmt=()=>C.jsx(Ig,{defaultActiveKey:\"im\",items:[{key:\"im\",label:\"IM 配置\",children:C.jsx(Tmt,{})},{key:\"edm\",label:\"EDM 配置\",children:C.jsx(Imt,{})}]}),Rmt=Object.freeze(Object.defineProperty({__proto__:null,default:kmt},Symbol.toStringTag,{value:\"Module\"})),vK={open:{label:\"待处理\",color:\"default\"},investigating:{label:\"调查中\",color:\"processing\"},confirmed:{label:\"已确认\",color:\"error\"},dismissed:{label:\"已驳回\",color:\"default\"},resolved:{label:\"已解决\",color:\"success\"}},Mmt={refund_fraud:\"退款欺诈\",fake_review:\"虚假评价\",account_sharing:\"账号共享\",policy_violation:\"政策违规\",other:\"其他\"},Pmt=()=>{const e=La(),{events:t,eventTotal:r,eventFilters:n,pagination:a}=da(s=>s.risk);m.useEffect(()=>{e(Jy({page:a.page,pageSize:a.pageSize,sortBy:\"createdAt\",sortOrder:\"descend\",filters:n}))},[e,a,n]);const i=m.useMemo(()=>[{name:\"keyword\",label:\"关键词\",type:\"input\",placeholder:\"真实人姓名/编号\"},{name:\"riskLevel\",label:\"风险等级\",type:\"select\",placeholder:\"选择风险等级\",options:[{label:\"无风险\",value:\"none\"},{label:\"低风险\",value:\"low\"},{label:\"中风险\",value:\"medium\"},{label:\"高风险\",value:\"high\"},{label:\"严重风险\",value:\"critical\"}]},{name:\"association\",label:\"关联类型\",type:\"select\",placeholder:\"选择关联类型\",options:[{label:\"强关联\",value:\"strong\"},{label:\"弱关联\",value:\"weak\"}]},{name:\"status\",label:\"状态\",type:\"select\",placeholder:\"选择状态\",options:Object.entries(vK).map(([s,u])=>({label:u.label,value:s}))}],[]),o=m.useMemo(()=>[{title:\"真实人\",dataIndex:\"reviewerName\",key:\"reviewerName\",width:100},{title:\"编号\",dataIndex:\"reviewerCode\",key:\"reviewerCode\",width:100},{title:\"风险等级\",dataIndex:\"riskLevel\",key:\"riskLevel\",width:130,render:(s,u)=>C.jsx(PD,{level:s,association:u.association,showAssociation:!0,flashing:!0})},{title:\"事件类型\",dataIndex:\"eventType\",key:\"eventType\",width:110,render:s=>C.jsx(et,{children:Mmt[s]||s})},{title:\"标题\",dataIndex:\"title\",key:\"title\",width:200,ellipsis:!0},{title:\"状态\",dataIndex:\"status\",key:\"status\",width:90,render:s=>C.jsx(uu,{status:s,statusMap:vK})},{title:\"负责人\",dataIndex:\"assignedName\",key:\"assignedName\",width:100,render:s=>s||\"-\"},{title:\"创建时间\",dataIndex:\"createdAt\",key:\"createdAt\",width:140,render:s=>s?new Date(s).toLocaleString(\"zh-CN\"):\"-\"},{title:\"操作\",key:\"actions\",width:220,render:(s,u)=>C.jsxs(Qt,{size:\"small\",children:[C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{}),children:\"详情\"}),u.status===\"open\"&&C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,icon:C.jsx(sde,{}),onClick:()=>vt.info(`确认诈骗: ${u.id}`),children:\"确认诈骗\"}),[\"open\",\"investigating\"].includes(u.status)&&C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(yB,{}),onClick:()=>vt.info(`标记误报: ${u.id}`),children:\"误报\"})]})}],[]),l=m.useCallback(async s=>(e(Jy({page:s.page,pageSize:s.pageSize,sortBy:s.sortBy,sortOrder:s.sortOrder,filters:s.filters})),{list:t,total:r}),[e,t,r]);return C.jsx(Pm,{columns:o,filters:i,onFetch:l,exportable:!0,exportFilename:\"风险事件\",rowKey:\"id\",autoFetch:!1})},Omt=Object.freeze(Object.defineProperty({__proto__:null,default:Pmt},Symbol.toStringTag,{value:\"Module\"})),Bmt=()=>{const e=La(),{blacklist:t,blacklistTotal:r,pagination:n}=da(c=>c.risk),[a,i]=m.useState(!1),[o]=be.useForm();m.useEffect(()=>{e(mM({page:n.page,pageSize:n.pageSize}))},[e,n]);const l=m.useMemo(()=>[{name:\"keyword\",label:\"关键词\",type:\"input\",placeholder:\"姓名/编号搜索\"},{name:\"riskLevel\",label:\"风险等级\",type:\"select\",options:[{label:\"低风险\",value:\"low\"},{label:\"中风险\",value:\"medium\"},{label:\"高风险\",value:\"high\"},{label:\"严重风险\",value:\"critical\"}]},{name:\"source\",label:\"来源\",type:\"select\",options:[{label:\"自动\",value:\"auto\"},{label:\"手动\",value:\"manual\"}]}],[]),s=m.useMemo(()=>[{title:\"真实人\",dataIndex:\"reviewerName\",key:\"reviewerName\",width:100},{title:\"编号\",dataIndex:\"reviewerCode\",key:\"reviewerCode\",width:100},{title:\"风险等级\",dataIndex:\"riskLevel\",key:\"riskLevel\",width:120,render:c=>C.jsx(PD,{level:c,showAssociation:!1})},{title:\"原因\",dataIndex:\"reason\",key:\"reason\",width:200,ellipsis:!0},{title:\"来源\",dataIndex:\"source\",key:\"source\",width:80,render:c=>C.jsx(et,{color:c===\"auto\"?\"blue\":\"orange\",children:c===\"auto\"?\"自动\":\"手动\"})},{title:\"添加人\",dataIndex:\"addedByName\",key:\"addedByName\",width:100},{title:\"状态\",dataIndex:\"isActive\",key:\"isActive\",width:80,render:c=>C.jsx(uu,{status:c?\"active\":\"inactive\",statusMap:{active:{label:\"生效中\",color:\"error\"},inactive:{label:\"已移除\",color:\"default\"}}})},{title:\"添加时间\",dataIndex:\"addedAt\",key:\"addedAt\",width:140,render:c=>c?new Date(c).toLocaleString(\"zh-CN\"):\"-\"},{title:\"操作\",key:\"actions\",width:100,render:(c,d)=>d.isActive?C.jsx(ze,{type:\"link\",size:\"small\",danger:!0,icon:C.jsx(Ix,{}),onClick:()=>vt.info(`移除黑名单: ${d.id}`),children:\"移除\"}):null}],[]),u=m.useCallback(async c=>(e(mM({page:c.page,pageSize:c.pageSize,...c.filters})),{list:t,total:r}),[e,t,r]);return C.jsxs(C.Fragment,{children:[C.jsx(Pm,{columns:s,filters:l,onFetch:u,exportable:!0,exportFilename:\"黑名单\",rowKey:\"id\",autoFetch:!1,toolbarExtra:C.jsx(ze,{type:\"primary\",icon:C.jsx(Do,{}),onClick:()=>i(!0),children:\"新增黑名单\"})}),C.jsx(an,{title:\"新增黑名单\",open:a,onCancel:()=>i(!1),onOk:()=>{i(!1),o.resetFields(),vt.success(\"已添加到黑名单\")},children:C.jsxs(be,{form:o,layout:\"vertical\",children:[C.jsx(be.Item,{name:\"reviewerId\",label:\"真实人ID\",rules:[{required:!0,message:\"请输入\"}],children:C.jsx(ut,{placeholder:\"真实人ID或编号\"})}),C.jsx(be.Item,{name:\"reason\",label:\"原因\",rules:[{required:!0,message:\"请输入原因\"}],children:C.jsx(ut.TextArea,{rows:3,placeholder:\"加入黑名单的原因\"})}),C.jsx(be.Item,{name:\"riskLevel\",label:\"风险等级\",rules:[{required:!0,message:\"请选择\"}],children:C.jsx(Qe,{options:[{label:\"低风险\",value:\"low\"},{label:\"中风险\",value:\"medium\"},{label:\"高风险\",value:\"high\"},{label:\"严重风险\",value:\"critical\"}],placeholder:\"选择风险等级\"})})]})})]})},Nmt=Object.freeze(Object.defineProperty({__proto__:null,default:Bmt},Symbol.toStringTag,{value:\"Module\"})),$mt=()=>{const e=La(),{refundComparisons:t}=da(u=>u.risk),[r,n]=m.useState(!1),[a,i]=m.useState(null);m.useEffect(()=>{e(vM({page:1,pageSize:20}))},[e]);const o=m.useMemo(()=>[{name:\"keyword\",label:\"关键词\",type:\"input\",placeholder:\"真实人/ASIN搜索\"}],[]),l=m.useMemo(()=>[{title:\"真实人\",dataIndex:\"reviewerName\",key:\"reviewerName\",width:100},{title:\"ASIN\",dataIndex:\"asin\",key:\"asin\",width:120},{title:\"商品\",dataIndex:\"productName\",key:\"productName\",width:180,ellipsis:!0},{title:\"订单金额\",dataIndex:\"orderAmount\",key:\"orderAmount\",width:90,render:u=>`¥${u.toFixed(2)}`},{title:\"退款金额\",dataIndex:\"refundAmount\",key:\"refundAmount\",width:90,render:u=>C.jsxs(\"span\",{style:{color:\"#ff4d4f\"},children:[\"¥\",u.toFixed(2)]})},{title:\"评价先于退款\",dataIndex:\"reviewSubmittedBeforeRefund\",key:\"reviewSubmittedBeforeRefund\",width:110,render:u=>u?C.jsx(et,{color:\"error\",children:\"双重退款\"}):C.jsx(et,{color:\"default\",children:\"正常\"})},{title:\"风险分\",dataIndex:\"riskScore\",key:\"riskScore\",width:80,render:u=>C.jsx(\"span\",{style:{color:u>=80?\"#cf1322\":u>=60?\"#ff4d4f\":u>=40?\"#faad14\":\"#52c41a\",fontWeight:600},children:u})},{title:\"标记时间\",dataIndex:\"flaggedAt\",key:\"flaggedAt\",width:140,render:u=>u?new Date(u).toLocaleString(\"zh-CN\"):\"-\"},{title:\"操作\",key:\"actions\",width:80,render:(u,c)=>C.jsx(ze,{type:\"link\",size:\"small\",icon:C.jsx(Zo,{}),onClick:()=>{i(c),n(!0)},children:\"详情\"})}],[]),s=m.useCallback(async u=>(e(vM(u)),{list:t,total:t.length}),[e,t]);return C.jsxs(C.Fragment,{children:[C.jsx(Pm,{columns:l,filters:o,onFetch:s,exportable:!0,exportFilename:\"退款比对\",rowKey:\"id\",autoFetch:!1}),C.jsx(RO,{title:\"退款比对详情\",open:r,onClose:()=>n(!1),width:480,children:a&&C.jsxs(Ne,{bordered:!0,column:1,size:\"small\",children:[C.jsx(Ne.Item,{label:\"真实人\",children:a.reviewerName}),C.jsx(Ne.Item,{label:\"ASIN\",children:a.asin}),C.jsx(Ne.Item,{label:\"商品名称\",children:a.productName}),C.jsx(Ne.Item,{label:\"订单日期\",children:new Date(a.orderDate).toLocaleDateString(\"zh-CN\")}),C.jsxs(Ne.Item,{label:\"订单金额\",children:[\"¥\",a.orderAmount.toFixed(2)]}),C.jsx(Ne.Item,{label:\"退款日期\",children:new Date(a.refundDate).toLocaleDateString(\"zh-CN\")}),C.jsxs(Ne.Item,{label:\"退款金额\",children:[\"¥\",a.refundAmount.toFixed(2)]}),C.jsx(Ne.Item,{label:\"评价先于退款\",children:a.reviewSubmittedBeforeRefund?C.jsx(et,{color:\"error\",children:\"双重退款\"}):C.jsx(et,{children:\"正常\"})}),a.reviewSubmittedAt&&C.jsx(Ne.Item,{label:\"评价提交时间\",children:new Date(a.reviewSubmittedAt).toLocaleString(\"zh-CN\")}),C.jsx(Ne.Item,{label:\"风险分\",children:a.riskScore})]})})]})},Lmt=Object.freeze(Object.defineProperty({__proto__:null,default:$mt},Symbol.toStringTag,{value:\"Module\"}));/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */var kM=function(e,t){return kM=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(r[a]=n[a])},kM(e,t)};function Re(e,t){if(typeof t!=\"function\"&&t!==null)throw new TypeError(\"Class extends value \"+String(t)+\" is not a constructor or null\");kM(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}var ib=function(){return ib=Object.assign||function(t){for(var r,n=1,a=arguments.length;n<a;n++){r=arguments[n];for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i])}return t},ib.apply(this,arguments)};function jmt(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var a=0,n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r}function gK(e,t,r,n){function a(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function l(c){try{u(n.next(c))}catch(d){o(d)}}function s(c){try{u(n.throw(c))}catch(d){o(d)}}function u(c){c.done?i(c.value):a(c.value).then(l,s)}u((n=n.apply(e,[])).next())})}function yK(e,t){var r={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},n,a,i,o;return o={next:l(0),throw:l(1),return:l(2)},typeof Symbol==\"function\"&&(o[Symbol.iterator]=function(){return this}),o;function l(u){return function(c){return s([u,c])}}function s(u){if(n)throw new TypeError(\"Generator is already executing.\");for(;r;)try{if(n=1,a&&(i=u[0]&2?a.return:u[0]?a.throw||((i=a.return)&&i.call(a),0):a.next)&&!(i=i.call(a,u[1])).done)return i;switch(a=0,i&&(u=[u[0]&2,i.value]),u[0]){case 0:case 1:i=u;break;case 4:return r.label++,{value:u[1],done:!1};case 5:r.label++,a=u[1],u=[0];continue;case 7:u=r.ops.pop(),r.trys.pop();continue;default:if(i=r.trys,!(i=i.length>0&&i[i.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!i||u[1]>i[0]&&u[1]<i[3])){r.label=u[1];break}if(u[0]===6&&r.label<i[1]){r.label=i[1],i=u;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(u);break}i[2]&&r.ops.pop(),r.trys.pop();continue}u=t.call(e,r)}catch(c){u=[6,c],a=0}finally{n=i=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}var zmt=function(){function e(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return e}(),Hmt=function(){function e(){this.browser=new zmt,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<\"u\"}return e}(),zr=new Hmt;typeof wx==\"object\"&&typeof wx.getSystemInfoSync==\"function\"?(zr.wxa=!0,zr.touchEventsSupported=!0):typeof document>\"u\"&&typeof self<\"u\"?zr.worker=!0:!zr.hasGlobalWindow||\"Deno\"in window?(zr.node=!0,zr.svgSupported=!0):Vmt(navigator.userAgent,zr);function Vmt(e,t){var r=t.browser,n=e.match(/Firefox\\/([\\d.]+)/),a=e.match(/MSIE\\s([\\d.]+)/)||e.match(/Trident\\/.+?rv:(([\\d.]+))/),i=e.match(/Edge?\\/([\\d.]+)/),o=/micromessenger/i.test(e);n&&(r.firefox=!0,r.version=n[1]),a&&(r.ie=!0,r.version=a[1]),i&&(r.edge=!0,r.version=i[1],r.newEdge=+i[1].split(\".\")[0]>18),o&&(r.weChat=!0),t.svgSupported=typeof SVGRect<\"u\",t.touchEventsSupported=\"ontouchstart\"in window&&!r.ie&&!r.edge,t.pointerEventsSupported=\"onpointerdown\"in window&&(r.edge||r.ie&&+r.version>=11),t.domSupported=typeof document<\"u\";var l=document.documentElement.style;t.transform3dSupported=(r.ie&&\"transition\"in l||r.edge||\"WebKitCSSMatrix\"in window&&\"m11\"in new WebKitCSSMatrix||\"MozPerspective\"in l)&&!(\"OTransition\"in l),t.transformSupported=t.transform3dSupported||r.ie&&+r.version>=9}var WB=12,ohe=\"sans-serif\",Kf=WB+\"px \"+ohe,Wmt=20,Gmt=100,Umt=\"007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\\\\\WQb\\\\0FWLg\\\\bWb\\\\WQ\\\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\\\FFF5.5N\";function Kmt(e){var t={};if(typeof JSON>\"u\")return t;for(var r=0;r<e.length;r++){var n=String.fromCharCode(r+32),a=(e.charCodeAt(r)-Wmt)/Gmt;t[n]=a}return t}var Ymt=Kmt(Umt),xu={createCanvas:function(){return typeof document<\"u\"&&document.createElement(\"canvas\")},measureText:function(){var e,t;return function(r,n){if(!e){var a=xu.createCanvas();e=a&&a.getContext(\"2d\")}if(e)return t!==n&&(t=e.font=n||Kf),e.measureText(r);r=r||\"\",n=n||Kf;var i=/((?:\\d+)?\\.?\\d*)px/.exec(n),o=i&&+i[1]||WB,l=0;if(n.indexOf(\"mono\")>=0)l=o*r.length;else for(var s=0;s<r.length;s++){var u=Ymt[r[s]];l+=u==null?o:u*o}return{width:l}}}(),loadImage:function(e,t,r){var n=new Image;return n.onload=t,n.onerror=r,n.src=e,n}};function lhe(e){for(var t in xu)e[t]&&(xu[t]=e[t])}var she=Ds([\"Function\",\"RegExp\",\"Date\",\"Error\",\"CanvasGradient\",\"CanvasPattern\",\"Image\",\"Canvas\"],function(e,t){return e[\"[object \"+t+\"]\"]=!0,e},{}),uhe=Ds([\"Int8\",\"Uint8\",\"Uint8Clamped\",\"Int16\",\"Uint16\",\"Int32\",\"Uint32\",\"Float32\",\"Float64\"],function(e,t){return e[\"[object \"+t+\"Array]\"]=!0,e},{}),Vg=Object.prototype.toString,OD=Array.prototype,qmt=OD.forEach,Xmt=OD.filter,GB=OD.slice,Jmt=OD.map,bK=(function(){}).constructor,NF=bK?bK.prototype:null,UB=\"__proto__\",Zmt=2311;function KB(){return Zmt++}function BD(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];typeof console<\"u\"&&console.error.apply(console,e)}function lr(e){if(e==null||typeof e!=\"object\")return e;var t=e,r=Vg.call(e);if(r===\"[object Array]\"){if(!E0(e)){t=[];for(var n=0,a=e.length;n<a;n++)t[n]=lr(e[n])}}else if(uhe[r]){if(!E0(e)){var i=e.constructor;if(i.from)t=i.from(e);else{t=new i(e.length);for(var n=0,a=e.length;n<a;n++)t[n]=e[n]}}}else if(!she[r]&&!E0(e)&&!rm(e)){t={};for(var o in e)e.hasOwnProperty(o)&&o!==UB&&(t[o]=lr(e[o]))}return t}function Er(e,t,r){if(!ir(t)||!ir(e))return r?lr(t):e;for(var n in t)if(t.hasOwnProperty(n)&&n!==UB){var a=e[n],i=t[n];ir(i)&&ir(a)&&!nt(i)&&!nt(a)&&!rm(i)&&!rm(a)&&!RM(i)&&!RM(a)&&!E0(i)&&!E0(a)?Er(a,i,r):(r||!(n in e))&&(e[n]=lr(t[n]))}return e}function ND(e,t){for(var r=e[0],n=1,a=e.length;n<a;n++)r=Er(r,e[n],t);return r}function Xe(e,t){if(Object.assign)Object.assign(e,t);else for(var r in t)t.hasOwnProperty(r)&&r!==UB&&(e[r]=t[r]);return e}function rr(e,t,r){for(var n=Ur(t),a=0,i=n.length;a<i;a++){var o=n[a];(r?t[o]!=null:e[o]==null)&&(e[o]=t[o])}return e}var Qmt=xu.createCanvas;function Mr(e,t){if(e){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r}return-1}function YB(e,t){var r=e.prototype;function n(){}n.prototype=t.prototype,e.prototype=new n;for(var a in r)r.hasOwnProperty(a)&&(e.prototype[a]=r[a]);e.prototype.constructor=e,e.superClass=t}function Ca(e,t,r){if(e=\"prototype\"in e?e.prototype:e,t=\"prototype\"in t?t.prototype:t,Object.getOwnPropertyNames)for(var n=Object.getOwnPropertyNames(t),a=0;a<n.length;a++){var i=n[a];i!==\"constructor\"&&(r?t[i]!=null:e[i]==null)&&(e[i]=t[i])}else rr(e,t,r)}function Yi(e){return!e||typeof e==\"string\"?!1:typeof e.length==\"number\"}function q(e,t,r){if(e&&t)if(e.forEach&&e.forEach===qmt)e.forEach(t,r);else if(e.length===+e.length)for(var n=0,a=e.length;n<a;n++)t.call(r,e[n],n,e);else for(var i in e)e.hasOwnProperty(i)&&t.call(r,e[i],i,e)}function ot(e,t,r){if(!e)return[];if(!t)return $D(e);if(e.map&&e.map===Jmt)return e.map(t,r);for(var n=[],a=0,i=e.length;a<i;a++)n.push(t.call(r,e[a],a,e));return n}function Ds(e,t,r,n){if(e&&t){for(var a=0,i=e.length;a<i;a++)r=t.call(n,r,e[a],a,e);return r}}function hn(e,t,r){if(!e)return[];if(!t)return $D(e);if(e.filter&&e.filter===Xmt)return e.filter(t,r);for(var n=[],a=0,i=e.length;a<i;a++)t.call(r,e[a],a,e)&&n.push(e[a]);return n}function che(e,t,r){if(e&&t){for(var n=0,a=e.length;n<a;n++)if(t.call(r,e[n],n,e))return e[n]}}function Ur(e){if(!e)return[];if(Object.keys)return Object.keys(e);var t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r);return t}function evt(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];return function(){return e.apply(t,r.concat(GB.call(arguments)))}}var Pt=NF&&er(NF.bind)?NF.call.bind(NF.bind):evt;function wr(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return function(){return e.apply(this,t.concat(GB.call(arguments)))}}function nt(e){return Array.isArray?Array.isArray(e):Vg.call(e)===\"[object Array]\"}function er(e){return typeof e==\"function\"}function At(e){return typeof e==\"string\"}function w3(e){return Vg.call(e)===\"[object String]\"}function nn(e){return typeof e==\"number\"}function ir(e){var t=typeof e;return t===\"function\"||!!e&&t===\"object\"}function RM(e){return!!she[Vg.call(e)]}function Uo(e){return!!uhe[Vg.call(e)]}function rm(e){return typeof e==\"object\"&&typeof e.nodeType==\"number\"&&typeof e.ownerDocument==\"object\"}function qx(e){return e.colorStops!=null}function dhe(e){return e.image!=null}function fhe(e){return Vg.call(e)===\"[object RegExp]\"}function rg(e){return e!==e}function ui(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var r=0,n=e.length;r<n;r++)if(e[r]!=null)return e[r]}function Fr(e,t){return e??t}function cu(e,t,r){return e??t??r}function $D(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return GB.apply(e,t)}function LD(e){if(typeof e==\"number\")return[e,e,e,e];var t=e.length;return t===2?[e[0],e[1],e[0],e[1]]:t===3?[e[0],e[1],e[2],e[1]]:e}function Fo(e,t){if(!e)throw new Error(t)}function vs(e){return e==null?null:typeof e.trim==\"function\"?e.trim():e.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\"\")}var hhe=\"__ec_primitive__\";function C2(e){e[hhe]=!0}function E0(e){return e[hhe]}var tvt=function(){function e(){this.data={}}return e.prototype.delete=function(t){var r=this.has(t);return r&&delete this.data[t],r},e.prototype.has=function(t){return this.data.hasOwnProperty(t)},e.prototype.get=function(t){return this.data[t]},e.prototype.set=function(t,r){return this.data[t]=r,this},e.prototype.keys=function(){return Ur(this.data)},e.prototype.forEach=function(t){var r=this.data;for(var n in r)r.hasOwnProperty(n)&&t(r[n],n)},e}(),phe=typeof Map==\"function\";function rvt(){return phe?new Map:new tvt}var mhe=function(){function e(t){var r=nt(t);this.data=rvt();var n=this;t instanceof e?t.each(a):t&&q(t,a);function a(i,o){r?n.set(i,o):n.set(o,i)}}return e.prototype.hasKey=function(t){return this.data.has(t)},e.prototype.get=function(t){return this.data.get(t)},e.prototype.set=function(t,r){return this.data.set(t,r),r},e.prototype.each=function(t,r){this.data.forEach(function(n,a){t.call(r,n,a)})},e.prototype.keys=function(){var t=this.data.keys();return phe?Array.from(t):t},e.prototype.removeKey=function(t){this.data.delete(t)},e}();function Gt(e){return new mhe(e)}function ng(e,t){for(var r=new e.constructor(e.length+t.length),n=0;n<e.length;n++)r[n]=e[n];for(var a=e.length,n=0;n<t.length;n++)r[n+a]=t[n];return r}function Xx(e,t){var r;if(Object.create)r=Object.create(e);else{var n=function(){};n.prototype=e,r=new n}return t&&Xe(r,t),r}function qB(e){var t=e.style;t.webkitUserSelect=\"none\",t.userSelect=\"none\",t.webkitTapHighlightColor=\"rgba(0,0,0,0)\",t[\"-webkit-touch-callout\"]=\"none\"}function $t(e,t){return e.hasOwnProperty(t)}function ga(){}var ob=180/Math.PI;const nvt=Object.freeze(Object.defineProperty({__proto__:null,HashMap:mhe,RADIAN_TO_DEGREE:ob,assert:Fo,bind:Pt,clone:lr,concatArray:ng,createCanvas:Qmt,createHashMap:Gt,createObject:Xx,curry:wr,defaults:rr,disableUserSelect:qB,each:q,eqNaN:rg,extend:Xe,filter:hn,find:che,guid:KB,hasOwn:$t,indexOf:Mr,inherits:YB,isArray:nt,isArrayLike:Yi,isBuiltInObject:RM,isDom:rm,isFunction:er,isGradientObject:qx,isImagePatternObject:dhe,isNumber:nn,isObject:ir,isPrimitive:E0,isRegExp:fhe,isString:At,isStringSafe:w3,isTypedArray:Uo,keys:Ur,logError:BD,map:ot,merge:Er,mergeAll:ND,mixin:Ca,noop:ga,normalizeCssArray:LD,reduce:Ds,retrieve:ui,retrieve2:Fr,retrieve3:cu,setAsPrimitive:C2,slice:$D,trim:vs},Symbol.toStringTag,{value:\"Module\"}));function oh(e,t){return e==null&&(e=0),t==null&&(t=0),[e,t]}function lo(e,t){return e[0]=t[0],e[1]=t[1],e}function ac(e){return[e[0],e[1]]}function vhe(e,t,r){return e[0]=t,e[1]=r,e}function MM(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e}function E3(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e}function df(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e}function F2(e){return Math.sqrt(XB(e))}var avt=F2;function XB(e){return e[0]*e[0]+e[1]*e[1]}var ivt=XB;function ovt(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e}function lvt(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e}function svt(e,t){return e[0]*t[0]+e[1]*t[1]}function lb(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e}function Om(e,t){var r=F2(t);return r===0?(e[0]=0,e[1]=0):(e[0]=t[0]/r,e[1]=t[1]/r),e}function D3(e,t){return Math.sqrt((e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1]))}var jc=D3;function ghe(e,t){return(e[0]-t[0])*(e[0]-t[0])+(e[1]-t[1])*(e[1]-t[1])}var _f=ghe;function uvt(e,t){return e[0]=-t[0],e[1]=-t[1],e}function sb(e,t,r,n){return e[0]=t[0]+n*(r[0]-t[0]),e[1]=t[1]+n*(r[1]-t[1]),e}function Ii(e,t,r){var n=t[0],a=t[1];return e[0]=r[0]*n+r[2]*a+r[4],e[1]=r[1]*n+r[3]*a+r[5],e}function zc(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e}function Hc(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e}const cvt=Object.freeze(Object.defineProperty({__proto__:null,add:MM,applyTransform:Ii,clone:ac,copy:lo,create:oh,dist:jc,distSquare:_f,distance:D3,distanceSquare:ghe,div:lvt,dot:svt,len:F2,lenSquare:XB,length:avt,lengthSquare:ivt,lerp:sb,max:Hc,min:zc,mul:ovt,negate:uvt,normalize:Om,scale:lb,scaleAndAdd:E3,set:vhe,sub:df},Symbol.toStringTag,{value:\"Module\"}));var uv=function(){function e(t,r){this.target=t,this.topTarget=r&&r.topTarget}return e}(),dvt=function(){function e(t){this.handler=t,t.on(\"mousedown\",this._dragStart,this),t.on(\"mousemove\",this._drag,this),t.on(\"mouseup\",this._dragEnd,this)}return e.prototype._dragStart=function(t){for(var r=t.target;r&&!r.draggable;)r=r.parent||r.__hostTarget;r&&(this._draggingTarget=r,r.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new uv(r,t),\"dragstart\",t.event))},e.prototype._drag=function(t){var r=this._draggingTarget;if(r){var n=t.offsetX,a=t.offsetY,i=n-this._x,o=a-this._y;this._x=n,this._y=a,r.drift(i,o,t),this.handler.dispatchToElement(new uv(r,t),\"drag\",t.event);var l=this.handler.findHover(n,a,r).target,s=this._dropTarget;this._dropTarget=l,r!==l&&(s&&l!==s&&this.handler.dispatchToElement(new uv(s,t),\"dragleave\",t.event),l&&l!==s&&this.handler.dispatchToElement(new uv(l,t),\"dragenter\",t.event))}},e.prototype._dragEnd=function(t){var r=this._draggingTarget;r&&(r.dragging=!1),this.handler.dispatchToElement(new uv(r,t),\"dragend\",t.event),this._dropTarget&&this.handler.dispatchToElement(new uv(this._dropTarget,t),\"drop\",t.event),this._draggingTarget=null,this._dropTarget=null},e}(),Rs=function(){function e(t){t&&(this._$eventProcessor=t)}return e.prototype.on=function(t,r,n,a){this._$handlers||(this._$handlers={});var i=this._$handlers;if(typeof r==\"function\"&&(a=n,n=r,r=null),!n||!t)return this;var o=this._$eventProcessor;r!=null&&o&&o.normalizeQuery&&(r=o.normalizeQuery(r)),i[t]||(i[t]=[]);for(var l=0;l<i[t].length;l++)if(i[t][l].h===n)return this;var s={h:n,query:r,ctx:a||this,callAtLast:n.zrEventfulCallAtLast},u=i[t].length-1,c=i[t][u];return c&&c.callAtLast?i[t].splice(u,0,s):i[t].push(s),this},e.prototype.isSilent=function(t){var r=this._$handlers;return!r||!r[t]||!r[t].length},e.prototype.off=function(t,r){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(r){if(n[t]){for(var a=[],i=0,o=n[t].length;i<o;i++)n[t][i].h!==r&&a.push(n[t][i]);n[t]=a}n[t]&&n[t].length===0&&delete n[t]}else delete n[t];return this},e.prototype.trigger=function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];if(!this._$handlers)return this;var a=this._$handlers[t],i=this._$eventProcessor;if(a)for(var o=r.length,l=a.length,s=0;s<l;s++){var u=a[s];if(!(i&&i.filter&&u.query!=null&&!i.filter(t,u.query)))switch(o){case 0:u.h.call(u.ctx);break;case 1:u.h.call(u.ctx,r[0]);break;case 2:u.h.call(u.ctx,r[0],r[1]);break;default:u.h.apply(u.ctx,r);break}}return i&&i.afterTrigger&&i.afterTrigger(t),this},e.prototype.triggerWithContext=function(t){for(var r=[],n=1;n<arguments.length;n++)r[n-1]=arguments[n];if(!this._$handlers)return this;var a=this._$handlers[t],i=this._$eventProcessor;if(a)for(var o=r.length,l=r[o-1],s=a.length,u=0;u<s;u++){var c=a[u];if(!(i&&i.filter&&c.query!=null&&!i.filter(t,c.query)))switch(o){case 0:c.h.call(l);break;case 1:c.h.call(l,r[0]);break;case 2:c.h.call(l,r[0],r[1]);break;default:c.h.apply(l,r.slice(1,o-1));break}}return i&&i.afterTrigger&&i.afterTrigger(t),this},e}(),fvt=Math.log(2);function PM(e,t,r,n,a,i){var o=n+\"-\"+a,l=e.length;if(i.hasOwnProperty(o))return i[o];if(t===1){var s=Math.round(Math.log((1<<l)-1&~a)/fvt);return e[r][s]}for(var u=n|1<<r,c=r+1;n&1<<c;)c++;for(var d=0,f=0,h=0;f<l;f++){var p=1<<f;p&a||(d+=(h%2?-1:1)*e[r][f]*PM(e,t-1,c,u,a|p,i),h++)}return i[o]=d,d}function xK(e,t){var r=[[e[0],e[1],1,0,0,0,-t[0]*e[0],-t[0]*e[1]],[0,0,0,e[0],e[1],1,-t[1]*e[0],-t[1]*e[1]],[e[2],e[3],1,0,0,0,-t[2]*e[2],-t[2]*e[3]],[0,0,0,e[2],e[3],1,-t[3]*e[2],-t[3]*e[3]],[e[4],e[5],1,0,0,0,-t[4]*e[4],-t[4]*e[5]],[0,0,0,e[4],e[5],1,-t[5]*e[4],-t[5]*e[5]],[e[6],e[7],1,0,0,0,-t[6]*e[6],-t[6]*e[7]],[0,0,0,e[6],e[7],1,-t[7]*e[6],-t[7]*e[7]]],n={},a=PM(r,8,0,0,0,n);if(a!==0){for(var i=[],o=0;o<8;o++)for(var l=0;l<8;l++)i[l]==null&&(i[l]=0),i[l]+=((o+l)%2?-1:1)*PM(r,7,o===0?1:0,1<<o,1<<l,n)/a*t[o];return function(s,u,c){var d=u*i[6]+c*i[7]+1;s[0]=(u*i[0]+c*i[1]+i[2])/d,s[1]=(u*i[3]+c*i[4]+i[5])/d}}}var CK=\"___zrEVENTSAVED\",lT=[];function hvt(e,t,r,n,a){return OM(lT,t,n,a,!0)&&OM(e,r,lT[0],lT[1])}function OM(e,t,r,n,a){if(t.getBoundingClientRect&&zr.domSupported&&!yhe(t)){var i=t[CK]||(t[CK]={}),o=pvt(t,i),l=mvt(o,i,a);if(l)return l(e,r,n),!0}return!1}function pvt(e,t){var r=t.markers;if(r)return r;r=t.markers=[];for(var n=[\"left\",\"right\"],a=[\"top\",\"bottom\"],i=0;i<4;i++){var o=document.createElement(\"div\"),l=o.style,s=i%2,u=(i>>1)%2;l.cssText=[\"position: absolute\",\"visibility: hidden\",\"padding: 0\",\"margin: 0\",\"border-width: 0\",\"user-select: none\",\"width:0\",\"height:0\",n[s]+\":0\",a[u]+\":0\",n[1-s]+\":auto\",a[1-u]+\":auto\",\"\"].join(\"!important;\"),e.appendChild(o),r.push(o)}return r}function mvt(e,t,r){for(var n=r?\"invTrans\":\"trans\",a=t[n],i=t.srcCoords,o=[],l=[],s=!0,u=0;u<4;u++){var c=e[u].getBoundingClientRect(),d=2*u,f=c.left,h=c.top;o.push(f,h),s=s&&i&&f===i[d]&&h===i[d+1],l.push(e[u].offsetLeft,e[u].offsetTop)}return s&&a?a:(t.srcCoords=o,t[n]=r?xK(l,o):xK(o,l))}function yhe(e){return e.nodeName.toUpperCase()===\"CANVAS\"}var vvt=/([&<>\"'])/g,gvt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"};function po(e){return e==null?\"\":(e+\"\").replace(vvt,function(t,r){return gvt[r]})}var yvt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sT=[],bvt=zr.browser.firefox&&+zr.browser.version.split(\".\")[0]<39;function BM(e,t,r,n){return r=r||{},n?FK(e,t,r):bvt&&t.layerX!=null&&t.layerX!==t.offsetX?(r.zrX=t.layerX,r.zrY=t.layerY):t.offsetX!=null?(r.zrX=t.offsetX,r.zrY=t.offsetY):FK(e,t,r),r}function FK(e,t,r){if(zr.domSupported&&e.getBoundingClientRect){var n=t.clientX,a=t.clientY;if(yhe(e)){var i=e.getBoundingClientRect();r.zrX=n-i.left,r.zrY=a-i.top;return}else if(OM(sT,e,n,a)){r.zrX=sT[0],r.zrY=sT[1];return}}r.zrX=r.zrY=0}function JB(e){return e||window.event}function ns(e,t,r){if(t=JB(t),t.zrX!=null)return t;var n=t.type,a=n&&n.indexOf(\"touch\")>=0;if(a){var o=n!==\"touchend\"?t.targetTouches[0]:t.changedTouches[0];o&&BM(e,o,t,r)}else{BM(e,t,t,r);var i=xvt(t);t.zrDelta=i?i/120:-(t.detail||0)/3}var l=t.button;return t.which==null&&l!==void 0&&yvt.test(t.type)&&(t.which=l&1?1:l&2?3:l&4?2:0),t}function xvt(e){var t=e.wheelDelta;if(t)return t;var r=e.deltaX,n=e.deltaY;if(r==null||n==null)return t;var a=Math.abs(n!==0?n:r),i=n>0?-1:n<0?1:r>0?-1:1;return 3*a*i}function NM(e,t,r,n){e.addEventListener(t,r,n)}function Cvt(e,t,r,n){e.removeEventListener(t,r,n)}var dd=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0};function SK(e){return e.which===2||e.which===3}var Fvt=function(){function e(){this._track=[]}return e.prototype.recognize=function(t,r,n){return this._doTrack(t,r,n),this._recognize(t)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(t,r,n){var a=t.touches;if(a){for(var i={points:[],touches:[],target:r,event:t},o=0,l=a.length;o<l;o++){var s=a[o],u=BM(n,s,{});i.points.push([u.zrX,u.zrY]),i.touches.push(s)}this._track.push(i)}},e.prototype._recognize=function(t){for(var r in uT)if(uT.hasOwnProperty(r)){var n=uT[r](this._track,t);if(n)return n}},e}();function wK(e){var t=e[1][0]-e[0][0],r=e[1][1]-e[0][1];return Math.sqrt(t*t+r*r)}function Svt(e){return[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]}var uT={pinch:function(e,t){var r=e.length;if(r){var n=(e[r-1]||{}).points,a=(e[r-2]||{}).points||n;if(a&&a.length>1&&n&&n.length>1){var i=wK(n)/wK(a);!isFinite(i)&&(i=1),t.pinchScale=i;var o=Svt(n);return t.pinchX=o[0],t.pinchY=o[1],{type:\"pinch\",target:e[0].target,event:t}}}}};function hl(){return[1,0,0,1,0,0]}function Jx(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function jD(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function ic(e,t,r){var n=t[0]*r[0]+t[2]*r[1],a=t[1]*r[0]+t[3]*r[1],i=t[0]*r[2]+t[2]*r[3],o=t[1]*r[2]+t[3]*r[3],l=t[0]*r[4]+t[2]*r[5]+t[4],s=t[1]*r[4]+t[3]*r[5]+t[5];return e[0]=n,e[1]=a,e[2]=i,e[3]=o,e[4]=l,e[5]=s,e}function Cu(e,t,r){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+r[0],e[5]=t[5]+r[1],e}function lh(e,t,r,n){n===void 0&&(n=[0,0]);var a=t[0],i=t[2],o=t[4],l=t[1],s=t[3],u=t[5],c=Math.sin(r),d=Math.cos(r);return e[0]=a*d+l*c,e[1]=-a*c+l*d,e[2]=i*d+s*c,e[3]=-i*c+d*s,e[4]=d*(o-n[0])+c*(u-n[1])+n[0],e[5]=d*(u-n[1])-c*(o-n[0])+n[1],e}function zD(e,t,r){var n=r[0],a=r[1];return e[0]=t[0]*n,e[1]=t[1]*a,e[2]=t[2]*n,e[3]=t[3]*a,e[4]=t[4]*n,e[5]=t[5]*a,e}function Bm(e,t){var r=t[0],n=t[2],a=t[4],i=t[1],o=t[3],l=t[5],s=r*o-i*n;return s?(s=1/s,e[0]=o*s,e[1]=-i*s,e[2]=-n*s,e[3]=r*s,e[4]=(n*l-o*a)*s,e[5]=(i*a-r*l)*s,e):null}function bhe(e){var t=hl();return jD(t,e),t}const wvt=Object.freeze(Object.defineProperty({__proto__:null,clone:bhe,copy:jD,create:hl,identity:Jx,invert:Bm,mul:ic,rotate:lh,scale:zD,translate:Cu},Symbol.toStringTag,{value:\"Module\"}));var Ar=function(){function e(t,r){this.x=t||0,this.y=r||0}return e.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(t,r){return this.x=t,this.y=r,this},e.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},e.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.prototype.scale=function(t){this.x*=t,this.y*=t},e.prototype.scaleAndAdd=function(t,r){this.x+=t.x*r,this.y+=t.y*r},e.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.prototype.dot=function(t){return this.x*t.x+this.y*t.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},e.prototype.distance=function(t){var r=this.x-t.x,n=this.y-t.y;return Math.sqrt(r*r+n*n)},e.prototype.distanceSquare=function(t){var r=this.x-t.x,n=this.y-t.y;return r*r+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(t){if(t){var r=this.x,n=this.y;return this.x=t[0]*r+t[2]*n+t[4],this.y=t[1]*r+t[3]*n+t[5],this}},e.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},e.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},e.set=function(t,r,n){t.x=r,t.y=n},e.copy=function(t,r){t.x=r.x,t.y=r.y},e.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},e.lenSquare=function(t){return t.x*t.x+t.y*t.y},e.dot=function(t,r){return t.x*r.x+t.y*r.y},e.add=function(t,r,n){t.x=r.x+n.x,t.y=r.y+n.y},e.sub=function(t,r,n){t.x=r.x-n.x,t.y=r.y-n.y},e.scale=function(t,r,n){t.x=r.x*n,t.y=r.y*n},e.scaleAndAdd=function(t,r,n,a){t.x=r.x+n.x*a,t.y=r.y+n.y*a},e.lerp=function(t,r,n,a){var i=1-a;t.x=i*r.x+a*n.x,t.y=i*r.y+a*n.y},e}(),$F=Math.min,LF=Math.max,yh=new Ar,bh=new Ar,xh=new Ar,Ch=new Ar,T1=new Ar,I1=new Ar,Ir=function(){function e(t,r,n,a){n<0&&(t=t+n,n=-n),a<0&&(r=r+a,a=-a),this.x=t,this.y=r,this.width=n,this.height=a}return e.prototype.union=function(t){var r=$F(t.x,this.x),n=$F(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=LF(t.x+t.width,this.x+this.width)-r:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=LF(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=r,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(t){var r=this,n=t.width/r.width,a=t.height/r.height,i=hl();return Cu(i,i,[-r.x,-r.y]),zD(i,i,[n,a]),Cu(i,i,[t.x,t.y]),i},e.prototype.intersect=function(t,r){if(!t)return!1;t instanceof e||(t=e.create(t));var n=this,a=n.x,i=n.x+n.width,o=n.y,l=n.y+n.height,s=t.x,u=t.x+t.width,c=t.y,d=t.y+t.height,f=!(i<s||u<a||l<c||d<o);if(r){var h=1/0,p=0,v=Math.abs(i-s),g=Math.abs(u-a),y=Math.abs(l-c),b=Math.abs(d-o),x=Math.min(v,g),F=Math.min(y,b);i<s||u<a?x>p&&(p=x,v<g?Ar.set(I1,-v,0):Ar.set(I1,g,0)):x<h&&(h=x,v<g?Ar.set(T1,v,0):Ar.set(T1,-g,0)),l<c||d<o?F>p&&(p=F,y<b?Ar.set(I1,0,-y):Ar.set(I1,0,b)):x<h&&(h=x,y<b?Ar.set(T1,0,y):Ar.set(T1,0,-b))}return r&&Ar.copy(r,f?T1:I1),f},e.prototype.contain=function(t,r){var n=this;return t>=n.x&&t<=n.x+n.width&&r>=n.y&&r<=n.y+n.height},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(t){e.copy(this,t)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t.x,t.y,t.width,t.height)},e.copy=function(t,r){t.x=r.x,t.y=r.y,t.width=r.width,t.height=r.height},e.applyTransform=function(t,r,n){if(!n){t!==r&&e.copy(t,r);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var a=n[0],i=n[3],o=n[4],l=n[5];t.x=r.x*a+o,t.y=r.y*i+l,t.width=r.width*a,t.height=r.height*i,t.width<0&&(t.x+=t.width,t.width=-t.width),t.height<0&&(t.y+=t.height,t.height=-t.height);return}yh.x=xh.x=r.x,yh.y=Ch.y=r.y,bh.x=Ch.x=r.x+r.width,bh.y=xh.y=r.y+r.height,yh.transform(n),Ch.transform(n),bh.transform(n),xh.transform(n),t.x=$F(yh.x,bh.x,xh.x,Ch.x),t.y=$F(yh.y,bh.y,xh.y,Ch.y);var s=LF(yh.x,bh.x,xh.x,Ch.x),u=LF(yh.y,bh.y,xh.y,Ch.y);t.width=s-t.x,t.height=u-t.y},e}(),xhe=\"silent\";function Evt(e,t,r){return{type:e,event:r,target:t.target,topTarget:t.topTarget,cancelBubble:!1,offsetX:r.zrX,offsetY:r.zrY,gestureEvent:r.gestureEvent,pinchX:r.pinchX,pinchY:r.pinchY,pinchScale:r.pinchScale,wheelDelta:r.zrDelta,zrByTouch:r.zrByTouch,which:r.which,stop:Dvt}}function Dvt(){dd(this.event)}var Avt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.handler=null,r}return t.prototype.dispose=function(){},t.prototype.setCursor=function(){},t}(Rs),k1=function(){function e(t,r){this.x=t,this.y=r}return e}(),_vt=[\"click\",\"dblclick\",\"mousewheel\",\"mouseout\",\"mouseup\",\"mousedown\",\"mousemove\",\"contextmenu\"],cT=new Ir(0,0,0,0),Che=function(e){Re(t,e);function t(r,n,a,i,o){var l=e.call(this)||this;return l._hovered=new k1(0,0),l.storage=r,l.painter=n,l.painterRoot=i,l._pointerSize=o,a=a||new Avt,l.proxy=null,l.setHandlerProxy(a),l._draggingMgr=new dvt(l),l}return t.prototype.setHandlerProxy=function(r){this.proxy&&this.proxy.dispose(),r&&(q(_vt,function(n){r.on&&r.on(n,this[n],this)},this),r.handler=this),this.proxy=r},t.prototype.mousemove=function(r){var n=r.zrX,a=r.zrY,i=Fhe(this,n,a),o=this._hovered,l=o.target;l&&!l.__zr&&(o=this.findHover(o.x,o.y),l=o.target);var s=this._hovered=i?new k1(n,a):this.findHover(n,a),u=s.target,c=this.proxy;c.setCursor&&c.setCursor(u?u.cursor:\"default\"),l&&u!==l&&this.dispatchToElement(o,\"mouseout\",r),this.dispatchToElement(s,\"mousemove\",r),u&&u!==l&&this.dispatchToElement(s,\"mouseover\",r)},t.prototype.mouseout=function(r){var n=r.zrEventControl;n!==\"only_globalout\"&&this.dispatchToElement(this._hovered,\"mouseout\",r),n!==\"no_globalout\"&&this.trigger(\"globalout\",{type:\"globalout\",event:r})},t.prototype.resize=function(){this._hovered=new k1(0,0)},t.prototype.dispatch=function(r,n){var a=this[r];a&&a.call(this,n)},t.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},t.prototype.setCursorStyle=function(r){var n=this.proxy;n.setCursor&&n.setCursor(r)},t.prototype.dispatchToElement=function(r,n,a){r=r||{};var i=r.target;if(!(i&&i.silent)){for(var o=\"on\"+n,l=Evt(n,r,a);i&&(i[o]&&(l.cancelBubble=!!i[o].call(i,l)),i.trigger(n,l),i=i.__hostTarget?i.__hostTarget:i.parent,!l.cancelBubble););l.cancelBubble||(this.trigger(n,l),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer(function(s){typeof s[o]==\"function\"&&s[o].call(s,l),s.trigger&&s.trigger(n,l)}))}},t.prototype.findHover=function(r,n,a){var i=this.storage.getDisplayList(),o=new k1(r,n);if(EK(i,o,r,n,a),this._pointerSize&&!o.target){for(var l=[],s=this._pointerSize,u=s/2,c=new Ir(r-u,n-u,s,s),d=i.length-1;d>=0;d--){var f=i[d];f!==a&&!f.ignore&&!f.ignoreCoarsePointer&&(!f.parent||!f.parent.ignoreCoarsePointer)&&(cT.copy(f.getBoundingRect()),f.transform&&cT.applyTransform(f.transform),cT.intersect(c)&&l.push(f))}if(l.length)for(var h=4,p=Math.PI/12,v=Math.PI*2,g=0;g<u;g+=h)for(var y=0;y<v;y+=p){var b=r+g*Math.cos(y),x=n+g*Math.sin(y);if(EK(l,o,b,x,a),o.target)return o}}return o},t.prototype.processGesture=function(r,n){this._gestureMgr||(this._gestureMgr=new Fvt);var a=this._gestureMgr;n===\"start\"&&a.clear();var i=a.recognize(r,this.findHover(r.zrX,r.zrY,null).target,this.proxy.dom);if(n===\"end\"&&a.clear(),i){var o=i.type;r.gestureEvent=o;var l=new k1;l.target=i.target,this.dispatchToElement(l,o,i.event)}},t}(Rs);q([\"click\",\"mousedown\",\"mouseup\",\"mousewheel\",\"dblclick\",\"contextmenu\"],function(e){Che.prototype[e]=function(t){var r=t.zrX,n=t.zrY,a=Fhe(this,r,n),i,o;if((e!==\"mouseup\"||!a)&&(i=this.findHover(r,n),o=i.target),e===\"mousedown\")this._downEl=o,this._downPoint=[t.zrX,t.zrY],this._upEl=o;else if(e===\"mouseup\")this._upEl=o;else if(e===\"click\"){if(this._downEl!==this._upEl||!this._downPoint||jc(this._downPoint,[t.zrX,t.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,e,t)}});function Tvt(e,t,r){if(e[e.rectHover?\"rectContain\":\"contain\"](t,r)){for(var n=e,a=void 0,i=!1;n;){if(n.ignoreClip&&(i=!0),!i){var o=n.getClipPath();if(o&&!o.contain(t,r))return!1}n.silent&&(a=!0);var l=n.__hostTarget;n=l||n.parent}return a?xhe:!0}return!1}function EK(e,t,r,n,a){for(var i=e.length-1;i>=0;i--){var o=e[i],l=void 0;if(o!==a&&!o.ignore&&(l=Tvt(o,r,n))&&(!t.topTarget&&(t.topTarget=o),l!==xhe)){t.target=o;break}}}function Fhe(e,t,r){var n=e.painter;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}var She=32,R1=7;function Ivt(e){for(var t=0;e>=She;)t|=e&1,e>>=1;return e+t}function DK(e,t,r,n){var a=t+1;if(a===r)return 1;if(n(e[a++],e[t])<0){for(;a<r&&n(e[a],e[a-1])<0;)a++;kvt(e,t,a)}else for(;a<r&&n(e[a],e[a-1])>=0;)a++;return a-t}function kvt(e,t,r){for(r--;t<r;){var n=e[t];e[t++]=e[r],e[r--]=n}}function AK(e,t,r,n,a){for(n===t&&n++;n<r;n++){for(var i=e[n],o=t,l=n,s;o<l;)s=o+l>>>1,a(i,e[s])<0?l=s:o=s+1;var u=n-o;switch(u){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;u>0;)e[o+u]=e[o+u-1],u--}e[o]=i}}function dT(e,t,r,n,a,i){var o=0,l=0,s=1;if(i(e,t[r+a])>0){for(l=n-a;s<l&&i(e,t[r+a+s])>0;)o=s,s=(s<<1)+1,s<=0&&(s=l);s>l&&(s=l),o+=a,s+=a}else{for(l=a+1;s<l&&i(e,t[r+a-s])<=0;)o=s,s=(s<<1)+1,s<=0&&(s=l);s>l&&(s=l);var u=o;o=a-s,s=a-u}for(o++;o<s;){var c=o+(s-o>>>1);i(e,t[r+c])>0?o=c+1:s=c}return s}function fT(e,t,r,n,a,i){var o=0,l=0,s=1;if(i(e,t[r+a])<0){for(l=a+1;s<l&&i(e,t[r+a-s])<0;)o=s,s=(s<<1)+1,s<=0&&(s=l);s>l&&(s=l);var u=o;o=a-s,s=a-u}else{for(l=n-a;s<l&&i(e,t[r+a+s])>=0;)o=s,s=(s<<1)+1,s<=0&&(s=l);s>l&&(s=l),o+=a,s+=a}for(o++;o<s;){var c=o+(s-o>>>1);i(e,t[r+c])<0?s=c:o=c+1}return s}function Rvt(e,t){var r=R1,n,a,i=0,o=[];n=[],a=[];function l(h,p){n[i]=h,a[i]=p,i+=1}function s(){for(;i>1;){var h=i-2;if(h>=1&&a[h-1]<=a[h]+a[h+1]||h>=2&&a[h-2]<=a[h]+a[h-1])a[h-1]<a[h+1]&&h--;else if(a[h]>a[h+1])break;c(h)}}function u(){for(;i>1;){var h=i-2;h>0&&a[h-1]<a[h+1]&&h--,c(h)}}function c(h){var p=n[h],v=a[h],g=n[h+1],y=a[h+1];a[h]=v+y,h===i-3&&(n[h+1]=n[h+2],a[h+1]=a[h+2]),i--;var b=fT(e[g],e,p,v,0,t);p+=b,v-=b,v!==0&&(y=dT(e[p+v-1],e,g,y,y-1,t),y!==0&&(v<=y?d(p,v,g,y):f(p,v,g,y)))}function d(h,p,v,g){var y=0;for(y=0;y<p;y++)o[y]=e[h+y];var b=0,x=v,F=h;if(e[F++]=e[x++],--g===0){for(y=0;y<p;y++)e[F+y]=o[b+y];return}if(p===1){for(y=0;y<g;y++)e[F+y]=e[x+y];e[F+g]=o[b];return}for(var S=r,E,w,D;;){E=0,w=0,D=!1;do if(t(e[x],o[b])<0){if(e[F++]=e[x++],w++,E=0,--g===0){D=!0;break}}else if(e[F++]=o[b++],E++,w=0,--p===1){D=!0;break}while((E|w)<S);if(D)break;do{if(E=fT(e[x],o,b,p,0,t),E!==0){for(y=0;y<E;y++)e[F+y]=o[b+y];if(F+=E,b+=E,p-=E,p<=1){D=!0;break}}if(e[F++]=e[x++],--g===0){D=!0;break}if(w=dT(o[b],e,x,g,0,t),w!==0){for(y=0;y<w;y++)e[F+y]=e[x+y];if(F+=w,x+=w,g-=w,g===0){D=!0;break}}if(e[F++]=o[b++],--p===1){D=!0;break}S--}while(E>=R1||w>=R1);if(D)break;S<0&&(S=0),S+=2}if(r=S,r<1&&(r=1),p===1){for(y=0;y<g;y++)e[F+y]=e[x+y];e[F+g]=o[b]}else{if(p===0)throw new Error;for(y=0;y<p;y++)e[F+y]=o[b+y]}}function f(h,p,v,g){var y=0;for(y=0;y<g;y++)o[y]=e[v+y];var b=h+p-1,x=g-1,F=v+g-1,S=0,E=0;if(e[F--]=e[b--],--p===0){for(S=F-(g-1),y=0;y<g;y++)e[S+y]=o[y];return}if(g===1){for(F-=p,b-=p,E=F+1,S=b+1,y=p-1;y>=0;y--)e[E+y]=e[S+y];e[F]=o[x];return}for(var w=r;;){var D=0,A=0,_=!1;do if(t(o[x],e[b])<0){if(e[F--]=e[b--],D++,A=0,--p===0){_=!0;break}}else if(e[F--]=o[x--],A++,D=0,--g===1){_=!0;break}while((D|A)<w);if(_)break;do{if(D=p-fT(o[x],e,h,p,p-1,t),D!==0){for(F-=D,b-=D,p-=D,E=F+1,S=b+1,y=D-1;y>=0;y--)e[E+y]=e[S+y];if(p===0){_=!0;break}}if(e[F--]=o[x--],--g===1){_=!0;break}if(A=g-dT(e[b],o,0,g,g-1,t),A!==0){for(F-=A,x-=A,g-=A,E=F+1,S=x+1,y=0;y<A;y++)e[E+y]=o[S+y];if(g<=1){_=!0;break}}if(e[F--]=e[b--],--p===0){_=!0;break}w--}while(D>=R1||A>=R1);if(_)break;w<0&&(w=0),w+=2}if(r=w,r<1&&(r=1),g===1){for(F-=p,b-=p,E=F+1,S=b+1,y=p-1;y>=0;y--)e[E+y]=e[S+y];e[F]=o[x]}else{if(g===0)throw new Error;for(S=F-(g-1),y=0;y<g;y++)e[S+y]=o[y]}}return{mergeRuns:s,forceMergeRuns:u,pushRun:l}}function Dw(e,t,r,n){r||(r=0),n||(n=e.length);var a=n-r;if(!(a<2)){var i=0;if(a<She){i=DK(e,r,n,t),AK(e,r,n,r+i,t);return}var o=Rvt(e,t),l=Ivt(a);do{if(i=DK(e,r,n,t),i<l){var s=a;s>l&&(s=l),AK(e,r,r+s,r+i,t),i=s}o.pushRun(r,i),o.mergeRuns(),a-=i,r+=i}while(a!==0);o.forceMergeRuns()}}var _l=1,yy=2,Bv=4,_K=!1;function hT(){_K||(_K=!0,console.warn(\"z / z2 / zlevel of displayable is invalid, which may cause unexpected errors\"))}function TK(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var Mvt=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=TK}return e.prototype.traverse=function(t,r){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,r)},e.prototype.getDisplayList=function(t,r){r=r||!1;var n=this._displayList;return(t||!n.length)&&this.updateDisplayList(r),n},e.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var r=this._roots,n=this._displayList,a=0,i=r.length;a<i;a++)this._updateAndAddDisplayable(r[a],null,t);n.length=this._displayListLen,Dw(n,TK)},e.prototype._updateAndAddDisplayable=function(t,r,n){if(!(t.ignore&&!n)){t.beforeUpdate(),t.update(),t.afterUpdate();var a=t.getClipPath();if(t.ignoreClip)r=null;else if(a){r?r=r.slice():r=[];for(var i=a,o=t;i;)i.parent=o,i.updateTransform(),r.push(i),o=i,i=i.getClipPath()}if(t.childrenRef){for(var l=t.childrenRef(),s=0;s<l.length;s++){var u=l[s];t.__dirty&&(u.__dirty|=_l),this._updateAndAddDisplayable(u,r,n)}t.__dirty=0}else{var c=t;r&&r.length?c.__clipPaths=r:c.__clipPaths&&c.__clipPaths.length>0&&(c.__clipPaths=[]),isNaN(c.z)&&(hT(),c.z=0),isNaN(c.z2)&&(hT(),c.z2=0),isNaN(c.zlevel)&&(hT(),c.zlevel=0),this._displayList[this._displayListLen++]=c}var d=t.getDecalElement&&t.getDecalElement();d&&this._updateAndAddDisplayable(d,r,n);var f=t.getTextGuideLine();f&&this._updateAndAddDisplayable(f,r,n);var h=t.getTextContent();h&&this._updateAndAddDisplayable(h,r,n)}},e.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},e.prototype.delRoot=function(t){if(t instanceof Array){for(var r=0,n=t.length;r<n;r++)this.delRoot(t[r]);return}var a=Mr(this._roots,t);a>=0&&this._roots.splice(a,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),A3;A3=zr.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)};var ub={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:Math.pow(1024,e-1)},exponentialOut:function(e){return e===1?1:1-Math.pow(2,-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),-(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)))},elasticOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),r*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/n)+1)},elasticInOut:function(e){var t,r=.1,n=.4;return e===0?0:e===1?1:(!r||r<1?(r=1,t=n/4):t=n*Math.asin(1/r)/(2*Math.PI),(e*=2)<1?-.5*(r*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)):r*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/n)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-ub.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?ub.bounceIn(e*2)*.5:ub.bounceOut(e*2-1)*.5+.5}},jF=Math.pow,Tf=Math.sqrt,_3=1e-8,whe=1e-4,IK=Tf(3),zF=1/3,Uu=oh(),fs=oh(),D0=oh();function ff(e){return e>-_3&&e<_3}function Ehe(e){return e>_3||e<-_3}function ii(e,t,r,n,a){var i=1-a;return i*i*(i*e+3*a*t)+a*a*(a*n+3*i*r)}function kK(e,t,r,n,a){var i=1-a;return 3*(((t-e)*i+2*(r-t)*a)*i+(n-r)*a*a)}function T3(e,t,r,n,a,i){var o=n+3*(t-r)-e,l=3*(r-t*2+e),s=3*(t-e),u=e-a,c=l*l-3*o*s,d=l*s-9*o*u,f=s*s-3*l*u,h=0;if(ff(c)&&ff(d))if(ff(l))i[0]=0;else{var p=-s/l;p>=0&&p<=1&&(i[h++]=p)}else{var v=d*d-4*c*f;if(ff(v)){var g=d/c,p=-l/o+g,y=-g/2;p>=0&&p<=1&&(i[h++]=p),y>=0&&y<=1&&(i[h++]=y)}else if(v>0){var b=Tf(v),x=c*l+1.5*o*(-d+b),F=c*l+1.5*o*(-d-b);x<0?x=-jF(-x,zF):x=jF(x,zF),F<0?F=-jF(-F,zF):F=jF(F,zF);var p=(-l-(x+F))/(3*o);p>=0&&p<=1&&(i[h++]=p)}else{var S=(2*c*l-3*o*d)/(2*Tf(c*c*c)),E=Math.acos(S)/3,w=Tf(c),D=Math.cos(E),p=(-l-2*w*D)/(3*o),y=(-l+w*(D+IK*Math.sin(E)))/(3*o),A=(-l+w*(D-IK*Math.sin(E)))/(3*o);p>=0&&p<=1&&(i[h++]=p),y>=0&&y<=1&&(i[h++]=y),A>=0&&A<=1&&(i[h++]=A)}}return h}function Dhe(e,t,r,n,a){var i=6*r-12*t+6*e,o=9*t+3*n-3*e-9*r,l=3*t-3*e,s=0;if(ff(o)){if(Ehe(i)){var u=-l/i;u>=0&&u<=1&&(a[s++]=u)}}else{var c=i*i-4*o*l;if(ff(c))a[0]=-i/(2*o);else if(c>0){var d=Tf(c),u=(-i+d)/(2*o),f=(-i-d)/(2*o);u>=0&&u<=1&&(a[s++]=u),f>=0&&f<=1&&(a[s++]=f)}}return s}function Yf(e,t,r,n,a,i){var o=(t-e)*a+e,l=(r-t)*a+t,s=(n-r)*a+r,u=(l-o)*a+o,c=(s-l)*a+l,d=(c-u)*a+u;i[0]=e,i[1]=o,i[2]=u,i[3]=d,i[4]=d,i[5]=c,i[6]=s,i[7]=n}function Ahe(e,t,r,n,a,i,o,l,s,u,c){var d,f=.005,h=1/0,p,v,g,y;Uu[0]=s,Uu[1]=u;for(var b=0;b<1;b+=.05)fs[0]=ii(e,r,a,o,b),fs[1]=ii(t,n,i,l,b),g=_f(Uu,fs),g<h&&(d=b,h=g);h=1/0;for(var x=0;x<32&&!(f<whe);x++)p=d-f,v=d+f,fs[0]=ii(e,r,a,o,p),fs[1]=ii(t,n,i,l,p),g=_f(fs,Uu),p>=0&&g<h?(d=p,h=g):(D0[0]=ii(e,r,a,o,v),D0[1]=ii(t,n,i,l,v),y=_f(D0,Uu),v<=1&&y<h?(d=v,h=y):f*=.5);return c&&(c[0]=ii(e,r,a,o,d),c[1]=ii(t,n,i,l,d)),Tf(h)}function Pvt(e,t,r,n,a,i,o,l,s){for(var u=e,c=t,d=0,f=1/s,h=1;h<=s;h++){var p=h*f,v=ii(e,r,a,o,p),g=ii(t,n,i,l,p),y=v-u,b=g-c;d+=Math.sqrt(y*y+b*b),u=v,c=g}return d}function Fi(e,t,r,n){var a=1-n;return a*(a*e+2*n*t)+n*n*r}function $M(e,t,r,n){return 2*((1-n)*(t-e)+n*(r-t))}function Ovt(e,t,r,n,a){var i=e-2*t+r,o=2*(t-e),l=e-n,s=0;if(ff(i)){if(Ehe(o)){var u=-l/o;u>=0&&u<=1&&(a[s++]=u)}}else{var c=o*o-4*i*l;if(ff(c)){var u=-o/(2*i);u>=0&&u<=1&&(a[s++]=u)}else if(c>0){var d=Tf(c),u=(-o+d)/(2*i),f=(-o-d)/(2*i);u>=0&&u<=1&&(a[s++]=u),f>=0&&f<=1&&(a[s++]=f)}}return s}function _he(e,t,r){var n=e+r-2*t;return n===0?.5:(e-t)/n}function S2(e,t,r,n,a){var i=(t-e)*n+e,o=(r-t)*n+t,l=(o-i)*n+i;a[0]=e,a[1]=i,a[2]=l,a[3]=l,a[4]=o,a[5]=r}function The(e,t,r,n,a,i,o,l,s){var u,c=.005,d=1/0;Uu[0]=o,Uu[1]=l;for(var f=0;f<1;f+=.05){fs[0]=Fi(e,r,a,f),fs[1]=Fi(t,n,i,f);var h=_f(Uu,fs);h<d&&(u=f,d=h)}d=1/0;for(var p=0;p<32&&!(c<whe);p++){var v=u-c,g=u+c;fs[0]=Fi(e,r,a,v),fs[1]=Fi(t,n,i,v);var h=_f(fs,Uu);if(v>=0&&h<d)u=v,d=h;else{D0[0]=Fi(e,r,a,g),D0[1]=Fi(t,n,i,g);var y=_f(D0,Uu);g<=1&&y<d?(u=g,d=y):c*=.5}}return s&&(s[0]=Fi(e,r,a,u),s[1]=Fi(t,n,i,u)),Tf(d)}function Bvt(e,t,r,n,a,i,o){for(var l=e,s=t,u=0,c=1/o,d=1;d<=o;d++){var f=d*c,h=Fi(e,r,a,f),p=Fi(t,n,i,f),v=h-l,g=p-s;u+=Math.sqrt(v*v+g*g),l=h,s=p}return u}var Nvt=/cubic-bezier\\(([0-9,\\.e ]+)\\)/;function ZB(e){var t=e&&Nvt.exec(e);if(t){var r=t[1].split(\",\"),n=+vs(r[0]),a=+vs(r[1]),i=+vs(r[2]),o=+vs(r[3]);if(isNaN(n+a+i+o))return;var l=[];return function(s){return s<=0?0:s>=1?1:T3(0,n,i,1,s,l)&&ii(0,a,o,1,l[0])}}}var $vt=function(){function e(t){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=t.loop||!1,this.onframe=t.onframe||ga,this.ondestroy=t.ondestroy||ga,this.onrestart=t.onrestart||ga,t.easing&&this.setEasing(t.easing)}return e.prototype.step=function(t,r){if(this._inited||(this._startTime=t+this._delay,this._inited=!0),this._paused){this._pausedTime+=r;return}var n=this._life,a=t-this._startTime-this._pausedTime,i=a/n;i<0&&(i=0),i=Math.min(i,1);var o=this.easingFunc,l=o?o(i):i;if(this.onframe(l),i===1)if(this.loop){var s=a%n;this._startTime=t-s,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(t){this.easing=t,this.easingFunc=er(t)?t:ub[t]||ZB(t)},e}(),Ihe=function(){function e(t){this.value=t}return e}(),Lvt=function(){function e(){this._len=0}return e.prototype.insert=function(t){var r=new Ihe(t);return this.insertEntry(r),r},e.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},e.prototype.remove=function(t){var r=t.prev,n=t.next;r?r.next=n:this.head=n,n?n.prev=r:this.tail=r,t.next=t.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),Zx=function(){function e(t){this._list=new Lvt,this._maxSize=10,this._map={},this._maxSize=t}return e.prototype.put=function(t,r){var n=this._list,a=this._map,i=null;if(a[t]==null){var o=n.len(),l=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete a[s.key],i=s.value,this._lastRemovedEntry=s}l?l.value=r:l=new Ihe(r),l.key=t,n.insertEntry(l),a[t]=l}return i},e.prototype.get=function(t){var r=this._map[t],n=this._list;if(r!=null)return r!==n.tail&&(n.remove(r),n.insertEntry(r)),r.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),RK={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function du(e){return e=Math.round(e),e<0?0:e>255?255:e}function jvt(e){return e=Math.round(e),e<0?0:e>360?360:e}function w2(e){return e<0?0:e>1?1:e}function pT(e){var t=e;return t.length&&t.charAt(t.length-1)===\"%\"?du(parseFloat(t)/100*255):du(parseInt(t,10))}function kp(e){var t=e;return t.length&&t.charAt(t.length-1)===\"%\"?w2(parseFloat(t)/100):w2(parseFloat(t))}function mT(e,t,r){return r<0?r+=1:r>1&&(r-=1),r*6<1?e+(t-e)*r*6:r*2<1?t:r*3<2?e+(t-e)*(2/3-r)*6:e}function hf(e,t,r){return e+(t-e)*r}function rs(e,t,r,n,a){return e[0]=t,e[1]=r,e[2]=n,e[3]=a,e}function LM(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var khe=new Zx(20),HF=null;function cv(e,t){HF&&LM(HF,t),HF=khe.put(e,HF||t.slice())}function Ho(e,t){if(e){t=t||[];var r=khe.get(e);if(r)return LM(t,r);e=e+\"\";var n=e.replace(/ /g,\"\").toLowerCase();if(n in RK)return LM(t,RK[n]),cv(e,t),t;var a=n.length;if(n.charAt(0)===\"#\"){if(a===4||a===5){var i=parseInt(n.slice(1,4),16);if(!(i>=0&&i<=4095)){rs(t,0,0,0,1);return}return rs(t,(i&3840)>>4|(i&3840)>>8,i&240|(i&240)>>4,i&15|(i&15)<<4,a===5?parseInt(n.slice(4),16)/15:1),cv(e,t),t}else if(a===7||a===9){var i=parseInt(n.slice(1,7),16);if(!(i>=0&&i<=16777215)){rs(t,0,0,0,1);return}return rs(t,(i&16711680)>>16,(i&65280)>>8,i&255,a===9?parseInt(n.slice(7),16)/255:1),cv(e,t),t}return}var o=n.indexOf(\"(\"),l=n.indexOf(\")\");if(o!==-1&&l+1===a){var s=n.substr(0,o),u=n.substr(o+1,l-(o+1)).split(\",\"),c=1;switch(s){case\"rgba\":if(u.length!==4)return u.length===3?rs(t,+u[0],+u[1],+u[2],1):rs(t,0,0,0,1);c=kp(u.pop());case\"rgb\":if(u.length>=3)return rs(t,pT(u[0]),pT(u[1]),pT(u[2]),u.length===3?c:kp(u[3])),cv(e,t),t;rs(t,0,0,0,1);return;case\"hsla\":if(u.length!==4){rs(t,0,0,0,1);return}return u[3]=kp(u[3]),jM(u,t),cv(e,t),t;case\"hsl\":if(u.length!==3){rs(t,0,0,0,1);return}return jM(u,t),cv(e,t),t;default:return}}rs(t,0,0,0,1)}}function jM(e,t){var r=(parseFloat(e[0])%360+360)%360/360,n=kp(e[1]),a=kp(e[2]),i=a<=.5?a*(n+1):a+n-a*n,o=a*2-i;return t=t||[],rs(t,du(mT(o,i,r+1/3)*255),du(mT(o,i,r)*255),du(mT(o,i,r-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function zvt(e){if(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),i=Math.max(t,r,n),o=i-a,l=(i+a)/2,s,u;if(o===0)s=0,u=0;else{l<.5?u=o/(i+a):u=o/(2-i-a);var c=((i-t)/6+o/2)/o,d=((i-r)/6+o/2)/o,f=((i-n)/6+o/2)/o;t===i?s=f-d:r===i?s=1/3+c-f:n===i&&(s=2/3+d-c),s<0&&(s+=1),s>1&&(s-=1)}var h=[s*360,u,l];return e[3]!=null&&h.push(e[3]),h}}function I3(e,t){var r=Ho(e);if(r){for(var n=0;n<3;n++)t<0?r[n]=r[n]*(1-t)|0:r[n]=(255-r[n])*t+r[n]|0,r[n]>255?r[n]=255:r[n]<0&&(r[n]=0);return fu(r,r.length===4?\"rgba\":\"rgb\")}}function Hvt(e){var t=Ho(e);if(t)return((1<<24)+(t[0]<<16)+(t[1]<<8)+ +t[2]).toString(16).slice(1)}function cb(e,t,r){if(!(!(t&&t.length)||!(e>=0&&e<=1))){r=r||[];var n=e*(t.length-1),a=Math.floor(n),i=Math.ceil(n),o=t[a],l=t[i],s=n-a;return r[0]=du(hf(o[0],l[0],s)),r[1]=du(hf(o[1],l[1],s)),r[2]=du(hf(o[2],l[2],s)),r[3]=w2(hf(o[3],l[3],s)),r}}var Vvt=cb;function QB(e,t,r){if(!(!(t&&t.length)||!(e>=0&&e<=1))){var n=e*(t.length-1),a=Math.floor(n),i=Math.ceil(n),o=Ho(t[a]),l=Ho(t[i]),s=n-a,u=fu([du(hf(o[0],l[0],s)),du(hf(o[1],l[1],s)),du(hf(o[2],l[2],s)),w2(hf(o[3],l[3],s))],\"rgba\");return r?{color:u,leftIndex:a,rightIndex:i,value:n}:u}}var Wvt=QB;function A0(e,t,r,n){var a=Ho(e);if(e)return a=zvt(a),t!=null&&(a[0]=jvt(t)),r!=null&&(a[1]=kp(r)),n!=null&&(a[2]=kp(n)),fu(jM(a),\"rgba\")}function E2(e,t){var r=Ho(e);if(r&&t!=null)return r[3]=w2(t),fu(r,\"rgba\")}function fu(e,t){if(!(!e||!e.length)){var r=e[0]+\",\"+e[1]+\",\"+e[2];return(t===\"rgba\"||t===\"hsva\"||t===\"hsla\")&&(r+=\",\"+e[3]),t+\"(\"+r+\")\"}}function D2(e,t){var r=Ho(e);return r?(.299*r[0]+.587*r[1]+.114*r[2])*r[3]/255+(1-r[3])*t:0}function Gvt(){return fu([Math.round(Math.random()*255),Math.round(Math.random()*255),Math.round(Math.random()*255)],\"rgb\")}var MK=new Zx(100);function k3(e){if(At(e)){var t=MK.get(e);return t||(t=I3(e,-.1),MK.put(e,t)),t}else if(qx(e)){var r=Xe({},e);return r.colorStops=ot(e.colorStops,function(n){return{offset:n.offset,color:I3(n.color,-.1)}}),r}return e}const Uvt=Object.freeze(Object.defineProperty({__proto__:null,fastLerp:cb,fastMapToColor:Vvt,lerp:QB,lift:I3,liftColor:k3,lum:D2,mapToColor:Wvt,modifyAlpha:E2,modifyHSL:A0,parse:Ho,random:Gvt,stringify:fu,toHex:Hvt},Symbol.toStringTag,{value:\"Module\"}));var R3=Math.round;function A2(e){var t;if(!e||e===\"transparent\")e=\"none\";else if(typeof e==\"string\"&&e.indexOf(\"rgba\")>-1){var r=Ho(e);r&&(e=\"rgb(\"+r[0]+\",\"+r[1]+\",\"+r[2]+\")\",t=r[3])}return{color:e,opacity:t??1}}var PK=1e-4;function pf(e){return e<PK&&e>-PK}function VF(e){return R3(e*1e3)/1e3}function zM(e){return R3(e*1e4)/1e4}function Kvt(e){return\"matrix(\"+VF(e[0])+\",\"+VF(e[1])+\",\"+VF(e[2])+\",\"+VF(e[3])+\",\"+zM(e[4])+\",\"+zM(e[5])+\")\"}var Yvt={left:\"start\",right:\"end\",center:\"middle\",middle:\"middle\"};function qvt(e,t,r){return r===\"top\"?e+=t/2:r===\"bottom\"&&(e-=t/2),e}function Xvt(e){return e&&(e.shadowBlur||e.shadowOffsetX||e.shadowOffsetY)}function Jvt(e){var t=e.style,r=e.getGlobalScale();return[t.shadowColor,(t.shadowBlur||0).toFixed(2),(t.shadowOffsetX||0).toFixed(2),(t.shadowOffsetY||0).toFixed(2),r[0],r[1]].join(\",\")}function Rhe(e){return e&&!!e.image}function Zvt(e){return e&&!!e.svgElement}function eN(e){return Rhe(e)||Zvt(e)}function Mhe(e){return e.type===\"linear\"}function Phe(e){return e.type===\"radial\"}function Ohe(e){return e&&(e.type===\"linear\"||e.type===\"radial\")}function HD(e){return\"url(#\"+e+\")\"}function Bhe(e){var t=e.getGlobalScale(),r=Math.max(t[0],t[1]);return Math.max(Math.ceil(Math.log(r)/Math.log(10)),1)}function Nhe(e){var t=e.x||0,r=e.y||0,n=(e.rotation||0)*ob,a=Fr(e.scaleX,1),i=Fr(e.scaleY,1),o=e.skewX||0,l=e.skewY||0,s=[];return(t||r)&&s.push(\"translate(\"+t+\"px,\"+r+\"px)\"),n&&s.push(\"rotate(\"+n+\")\"),(a!==1||i!==1)&&s.push(\"scale(\"+a+\",\"+i+\")\"),(o||l)&&s.push(\"skew(\"+R3(o*ob)+\"deg, \"+R3(l*ob)+\"deg)\"),s.join(\" \")}var Qvt=function(){return zr.hasGlobalWindow&&er(window.btoa)?function(e){return window.btoa(unescape(encodeURIComponent(e)))}:typeof Buffer<\"u\"?function(e){return Buffer.from(e).toString(\"base64\")}:function(e){return null}}(),HM=Array.prototype.slice;function Mc(e,t,r){return(t-e)*r+e}function vT(e,t,r,n){for(var a=t.length,i=0;i<a;i++)e[i]=Mc(t[i],r[i],n);return e}function e0t(e,t,r,n){for(var a=t.length,i=a&&t[0].length,o=0;o<a;o++){e[o]||(e[o]=[]);for(var l=0;l<i;l++)e[o][l]=Mc(t[o][l],r[o][l],n)}return e}function WF(e,t,r,n){for(var a=t.length,i=0;i<a;i++)e[i]=t[i]+r[i]*n;return e}function OK(e,t,r,n){for(var a=t.length,i=a&&t[0].length,o=0;o<a;o++){e[o]||(e[o]=[]);for(var l=0;l<i;l++)e[o][l]=t[o][l]+r[o][l]*n}return e}function t0t(e,t){for(var r=e.length,n=t.length,a=r>n?t:e,i=Math.min(r,n),o=a[i-1]||{color:[0,0,0,0],offset:0},l=i;l<Math.max(r,n);l++)a.push({offset:o.offset,color:o.color.slice()})}function r0t(e,t,r){var n=e,a=t;if(!(!n.push||!a.push)){var i=n.length,o=a.length;if(i!==o){var l=i>o;if(l)n.length=o;else for(var s=i;s<o;s++)n.push(r===1?a[s]:HM.call(a[s]))}for(var u=n[0]&&n[0].length,s=0;s<n.length;s++)if(r===1)isNaN(n[s])&&(n[s]=a[s]);else for(var c=0;c<u;c++)isNaN(n[s][c])&&(n[s][c]=a[s][c])}}function db(e){if(Yi(e)){var t=e.length;if(Yi(e[0])){for(var r=[],n=0;n<t;n++)r.push(HM.call(e[n]));return r}return HM.call(e)}return e}function Aw(e){return e[0]=Math.floor(e[0])||0,e[1]=Math.floor(e[1])||0,e[2]=Math.floor(e[2])||0,e[3]=e[3]==null?1:e[3],\"rgba(\"+e.join(\",\")+\")\"}function n0t(e){return Yi(e&&e[0])?2:1}var GF=0,_w=1,$he=2,by=3,VM=4,WM=5,BK=6;function NK(e){return e===VM||e===WM}function UF(e){return e===_w||e===$he}var M1=[0,0,0,0],a0t=function(){function e(t){this.keyframes=[],this.discrete=!1,this._invalid=!1,this._needsSort=!1,this._lastFr=0,this._lastFrP=0,this.propName=t}return e.prototype.isFinished=function(){return this._finished},e.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},e.prototype.needsAnimate=function(){return this.keyframes.length>=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(t,r,n){this._needsSort=!0;var a=this.keyframes,i=a.length,o=!1,l=BK,s=r;if(Yi(r)){var u=n0t(r);l=u,(u===1&&!nn(r[0])||u===2&&!nn(r[0][0]))&&(o=!0)}else if(nn(r)&&!rg(r))l=GF;else if(At(r))if(!isNaN(+r))l=GF;else{var c=Ho(r);c&&(s=c,l=by)}else if(qx(r)){var d=Xe({},s);d.colorStops=ot(r.colorStops,function(h){return{offset:h.offset,color:Ho(h.color)}}),Mhe(r)?l=VM:Phe(r)&&(l=WM),s=d}i===0?this.valType=l:(l!==this.valType||l===BK)&&(o=!0),this.discrete=this.discrete||o;var f={time:t,value:s,rawValue:r,percent:0};return n&&(f.easing=n,f.easingFunc=er(n)?n:ub[n]||ZB(n)),a.push(f),f},e.prototype.prepare=function(t,r){var n=this.keyframes;this._needsSort&&n.sort(function(v,g){return v.time-g.time});for(var a=this.valType,i=n.length,o=n[i-1],l=this.discrete,s=UF(a),u=NK(a),c=0;c<i;c++){var d=n[c],f=d.value,h=o.value;d.percent=d.time/t,l||(s&&c!==i-1?r0t(f,h,a):u&&t0t(f.colorStops,h.colorStops))}if(!l&&a!==WM&&r&&this.needsAnimate()&&r.needsAnimate()&&a===r.valType&&!r._finished){this._additiveTrack=r;for(var p=n[0].value,c=0;c<i;c++)a===GF?n[c].additiveValue=n[c].value-p:a===by?n[c].additiveValue=WF([],n[c].value,p,-1):UF(a)&&(n[c].additiveValue=a===_w?WF([],n[c].value,p,-1):OK([],n[c].value,p,-1))}},e.prototype.step=function(t,r){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n=this._additiveTrack!=null,a=n?\"additiveValue\":\"value\",i=this.valType,o=this.keyframes,l=o.length,s=this.propName,u=i===by,c,d=this._lastFr,f=Math.min,h,p;if(l===1)h=p=o[0];else{if(r<0)c=0;else if(r<this._lastFrP){var v=f(d+1,l-1);for(c=v;c>=0&&!(o[c].percent<=r);c--);c=f(c,l-2)}else{for(c=d;c<l&&!(o[c].percent>r);c++);c=f(c-1,l-2)}p=o[c+1],h=o[c]}if(h&&p){this._lastFr=c,this._lastFrP=r;var g=p.percent-h.percent,y=g===0?1:f((r-h.percent)/g,1);p.easingFunc&&(y=p.easingFunc(y));var b=n?this._additiveValue:u?M1:t[s];if((UF(i)||u)&&!b&&(b=this._additiveValue=[]),this.discrete)t[s]=y<1?h.rawValue:p.rawValue;else if(UF(i))i===_w?vT(b,h[a],p[a],y):e0t(b,h[a],p[a],y);else if(NK(i)){var x=h[a],F=p[a],S=i===VM;t[s]={type:S?\"linear\":\"radial\",x:Mc(x.x,F.x,y),y:Mc(x.y,F.y,y),colorStops:ot(x.colorStops,function(w,D){var A=F.colorStops[D];return{offset:Mc(w.offset,A.offset,y),color:Aw(vT([],w.color,A.color,y))}}),global:F.global},S?(t[s].x2=Mc(x.x2,F.x2,y),t[s].y2=Mc(x.y2,F.y2,y)):t[s].r=Mc(x.r,F.r,y)}else if(u)vT(b,h[a],p[a],y),n||(t[s]=Aw(b));else{var E=Mc(h[a],p[a],y);n?this._additiveValue=E:t[s]=E}n&&this._addToTarget(t)}}},e.prototype._addToTarget=function(t){var r=this.valType,n=this.propName,a=this._additiveValue;r===GF?t[n]=t[n]+a:r===by?(Ho(t[n],M1),WF(M1,M1,a,1),t[n]=Aw(M1)):r===_w?WF(t[n],t[n],a,1):r===$he&&OK(t[n],t[n],a,1)},e}(),tN=function(){function e(t,r,n,a){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=t,this._loop=r,r&&a){BD(\"Can' use additive animation on looped animation.\");return}this._additiveAnimators=a,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(t){this._target=t},e.prototype.when=function(t,r,n){return this.whenWithKeys(t,r,Ur(r),n)},e.prototype.whenWithKeys=function(t,r,n,a){for(var i=this._tracks,o=0;o<n.length;o++){var l=n[o],s=i[l];if(!s){s=i[l]=new a0t(l);var u=void 0,c=this._getAdditiveTrack(l);if(c){var d=c.keyframes,f=d[d.length-1];u=f&&f.value,c.valType===by&&u&&(u=Aw(u))}else u=this._target[l];if(u==null)continue;t>0&&s.addKeyframe(0,db(u),a),this._trackKeys.push(l)}s.addKeyframe(t,db(r[l]),a)}return this._maxTime=Math.max(this._maxTime,t),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(t){return this._maxTime=t,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneCbs;if(t)for(var r=t.length,n=0;n<r;n++)t[n].call(this)},e.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,r=this._abortedCbs;if(t&&t.removeClip(this._clip),this._clip=null,r)for(var n=0;n<r.length;n++)r[n].call(this)},e.prototype._setTracksFinished=function(){for(var t=this._tracks,r=this._trackKeys,n=0;n<r.length;n++)t[r[n]].setFinished()},e.prototype._getAdditiveTrack=function(t){var r,n=this._additiveAnimators;if(n)for(var a=0;a<n.length;a++){var i=n[a].getTrack(t);i&&(r=i)}return r},e.prototype.start=function(t){if(!(this._started>0)){this._started=1;for(var r=this,n=[],a=this._maxTime||0,i=0;i<this._trackKeys.length;i++){var o=this._trackKeys[i],l=this._tracks[o],s=this._getAdditiveTrack(o),u=l.keyframes,c=u.length;if(l.prepare(a,s),l.needsAnimate())if(!this._allowDiscrete&&l.discrete){var d=u[c-1];d&&(r._target[l.propName]=d.rawValue),l.setFinished()}else n.push(l)}if(n.length||this._force){var f=new $vt({life:a,loop:this._loop,delay:this._delay||0,onframe:function(h){r._started=2;var p=r._additiveAnimators;if(p){for(var v=!1,g=0;g<p.length;g++)if(p[g]._clip){v=!0;break}v||(r._additiveAnimators=null)}for(var g=0;g<n.length;g++)n[g].step(r._target,h);var y=r._onframeCbs;if(y)for(var g=0;g<y.length;g++)y[g](r._target,h)},ondestroy:function(){r._doneCallback()}});this._clip=f,this.animation&&this.animation.addClip(f),t&&f.setEasing(t)}else this._doneCallback();return this}},e.prototype.stop=function(t){if(this._clip){var r=this._clip;t&&r.onframe(1),this._abortedCallback()}},e.prototype.delay=function(t){return this._delay=t,this},e.prototype.during=function(t){return t&&(this._onframeCbs||(this._onframeCbs=[]),this._onframeCbs.push(t)),this},e.prototype.done=function(t){return t&&(this._doneCbs||(this._doneCbs=[]),this._doneCbs.push(t)),this},e.prototype.aborted=function(t){return t&&(this._abortedCbs||(this._abortedCbs=[]),this._abortedCbs.push(t)),this},e.prototype.getClip=function(){return this._clip},e.prototype.getTrack=function(t){return this._tracks[t]},e.prototype.getTracks=function(){var t=this;return ot(this._trackKeys,function(r){return t._tracks[r]})},e.prototype.stopTracks=function(t,r){if(!t.length||!this._clip)return!0;for(var n=this._tracks,a=this._trackKeys,i=0;i<t.length;i++){var o=n[t[i]];o&&!o.isFinished()&&(r?o.step(this._target,1):this._started===1&&o.step(this._target,0),o.setFinished())}for(var l=!0,i=0;i<a.length;i++)if(!n[a[i]].isFinished()){l=!1;break}return l&&this._abortedCallback(),l},e.prototype.saveTo=function(t,r,n){if(t){r=r||this._trackKeys;for(var a=0;a<r.length;a++){var i=r[a],o=this._tracks[i];if(!(!o||o.isFinished())){var l=o.keyframes,s=l[n?0:l.length-1];s&&(t[i]=db(s.rawValue))}}}},e.prototype.__changeFinalValue=function(t,r){r=r||Ur(t);for(var n=0;n<r.length;n++){var a=r[n],i=this._tracks[a];if(i){var o=i.keyframes;if(o.length>1){var l=o.pop();i.addKeyframe(l.time,t[a]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},e}();function i0(){return new Date().getTime()}var i0t=function(e){Re(t,e);function t(r){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,r=r||{},n.stage=r.stage||{},n}return t.prototype.addClip=function(r){r.animation&&this.removeClip(r),this._head?(this._tail.next=r,r.prev=this._tail,r.next=null,this._tail=r):this._head=this._tail=r,r.animation=this},t.prototype.addAnimator=function(r){r.animation=this;var n=r.getClip();n&&this.addClip(n)},t.prototype.removeClip=function(r){if(r.animation){var n=r.prev,a=r.next;n?n.next=a:this._head=a,a?a.prev=n:this._tail=n,r.next=r.prev=r.animation=null}},t.prototype.removeAnimator=function(r){var n=r.getClip();n&&this.removeClip(n),r.animation=null},t.prototype.update=function(r){for(var n=i0()-this._pausedTime,a=n-this._time,i=this._head;i;){var o=i.next,l=i.step(n,a);l&&(i.ondestroy(),this.removeClip(i)),i=o}this._time=n,r||(this.trigger(\"frame\",a),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var r=this;this._running=!0;function n(){r._running&&(A3(n),!r._paused&&r.update())}A3(n)},t.prototype.start=function(){this._running||(this._time=i0(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||(this._pauseStart=i0(),this._paused=!0)},t.prototype.resume=function(){this._paused&&(this._pausedTime+=i0()-this._pauseStart,this._paused=!1)},t.prototype.clear=function(){for(var r=this._head;r;){var n=r.next;r.prev=r.next=r.animation=null,r=n}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(r,n){n=n||{},this.start();var a=new tN(r,n.loop);return this.addAnimator(a),a},t}(Rs),o0t=300,gT=zr.domSupported,yT=function(){var e=[\"click\",\"dblclick\",\"mousewheel\",\"wheel\",\"mouseout\",\"mouseup\",\"mousedown\",\"mousemove\",\"contextmenu\"],t=[\"touchstart\",\"touchend\",\"touchmove\"],r={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},n=ot(e,function(a){var i=a.replace(\"mouse\",\"pointer\");return r.hasOwnProperty(i)?i:a});return{mouse:e,touch:t,pointer:n}}(),$K={mouse:[\"mousemove\",\"mouseup\"],pointer:[\"pointermove\",\"pointerup\"]},LK=!1;function GM(e){var t=e.pointerType;return t===\"pen\"||t===\"touch\"}function l0t(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function bT(e){e&&(e.zrByTouch=!0)}function s0t(e,t){return ns(e.dom,new u0t(e,t),!0)}function Lhe(e,t){for(var r=t,n=!1;r&&r.nodeType!==9&&!(n=r.domBelongToZr||r!==t&&r===e.painterRoot);)r=r.parentNode;return n}var u0t=function(){function e(t,r){this.stopPropagation=ga,this.stopImmediatePropagation=ga,this.preventDefault=ga,this.type=r.type,this.target=this.currentTarget=t.dom,this.pointerType=r.pointerType,this.clientX=r.clientX,this.clientY=r.clientY}return e}(),Gs={mousedown:function(e){e=ns(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger(\"mousedown\",e)},mousemove:function(e){e=ns(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger(\"mousemove\",e)},mouseup:function(e){e=ns(this.dom,e),this.__togglePointerCapture(!1),this.trigger(\"mouseup\",e)},mouseout:function(e){e=ns(this.dom,e);var t=e.toElement||e.relatedTarget;Lhe(this,t)||(this.__pointerCapturing&&(e.zrEventControl=\"no_globalout\"),this.trigger(\"mouseout\",e))},wheel:function(e){LK=!0,e=ns(this.dom,e),this.trigger(\"mousewheel\",e)},mousewheel:function(e){LK||(e=ns(this.dom,e),this.trigger(\"mousewheel\",e))},touchstart:function(e){e=ns(this.dom,e),bT(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,\"start\"),Gs.mousemove.call(this,e),Gs.mousedown.call(this,e)},touchmove:function(e){e=ns(this.dom,e),bT(e),this.handler.processGesture(e,\"change\"),Gs.mousemove.call(this,e)},touchend:function(e){e=ns(this.dom,e),bT(e),this.handler.processGesture(e,\"end\"),Gs.mouseup.call(this,e),+new Date-+this.__lastTouchMoment<o0t&&Gs.click.call(this,e)},pointerdown:function(e){Gs.mousedown.call(this,e)},pointermove:function(e){GM(e)||Gs.mousemove.call(this,e)},pointerup:function(e){Gs.mouseup.call(this,e)},pointerout:function(e){GM(e)||Gs.mouseout.call(this,e)}};q([\"click\",\"dblclick\",\"contextmenu\"],function(e){Gs[e]=function(t){t=ns(this.dom,t),this.trigger(e,t)}});var UM={pointermove:function(e){GM(e)||UM.mousemove.call(this,e)},pointerup:function(e){UM.mouseup.call(this,e)},mousemove:function(e){this.trigger(\"mousemove\",e)},mouseup:function(e){var t=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger(\"mouseup\",e),t&&(e.zrEventControl=\"only_globalout\",this.trigger(\"mouseout\",e))}};function c0t(e,t){var r=t.domHandlers;zr.pointerEventsSupported?q(yT.pointer,function(n){Tw(t,n,function(a){r[n].call(e,a)})}):(zr.touchEventsSupported&&q(yT.touch,function(n){Tw(t,n,function(a){r[n].call(e,a),l0t(t)})}),q(yT.mouse,function(n){Tw(t,n,function(a){a=JB(a),t.touching||r[n].call(e,a)})}))}function d0t(e,t){zr.pointerEventsSupported?q($K.pointer,r):zr.touchEventsSupported||q($K.mouse,r);function r(n){function a(i){i=JB(i),Lhe(e,i.target)||(i=s0t(e,i),t.domHandlers[n].call(e,i))}Tw(t,n,a,{capture:!0})}}function Tw(e,t,r,n){e.mounted[t]=r,e.listenerOpts[t]=n,NM(e.domTarget,t,r,n)}function xT(e){var t=e.mounted;for(var r in t)t.hasOwnProperty(r)&&Cvt(e.domTarget,r,t[r],e.listenerOpts[r]);e.mounted={}}var jK=function(){function e(t,r){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=r}return e}(),f0t=function(e){Re(t,e);function t(r,n){var a=e.call(this)||this;return a.__pointerCapturing=!1,a.dom=r,a.painterRoot=n,a._localHandlerScope=new jK(r,Gs),gT&&(a._globalHandlerScope=new jK(document,UM)),c0t(a,a._localHandlerScope),a}return t.prototype.dispose=function(){xT(this._localHandlerScope),gT&&xT(this._globalHandlerScope)},t.prototype.setCursor=function(r){this.dom.style&&(this.dom.style.cursor=r||\"default\")},t.prototype.__togglePointerCapture=function(r){if(this.__mayPointerCapture=null,gT&&+this.__pointerCapturing^+r){this.__pointerCapturing=r;var n=this._globalHandlerScope;r?d0t(this,n):xT(n)}},t}(Rs),jhe=1;zr.hasGlobalWindow&&(jhe=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var M3=jhe,KM=.4,YM=\"#333\",qM=\"#ccc\",h0t=\"#eee\",zK=Jx,HK=5e-5;function Fh(e){return e>HK||e<-HK}var Sh=[],dv=[],CT=hl(),FT=Math.abs,Vc=function(){function e(){}return e.prototype.getLocalTransform=function(t){return e.getLocalTransform(this,t)},e.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},e.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},e.prototype.setSkew=function(t){this.skewX=t[0],this.skewY=t[1]},e.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},e.prototype.needLocalTransform=function(){return Fh(this.rotation)||Fh(this.x)||Fh(this.y)||Fh(this.scaleX-1)||Fh(this.scaleY-1)||Fh(this.skewX)||Fh(this.skewY)},e.prototype.updateTransform=function(){var t=this.parent&&this.parent.transform,r=this.needLocalTransform(),n=this.transform;if(!(r||t)){n&&(zK(n),this.invTransform=null);return}n=n||hl(),r?this.getLocalTransform(n):zK(n),t&&(r?ic(n,t,n):jD(n,t)),this.transform=n,this._resolveGlobalScaleRatio(n)},e.prototype._resolveGlobalScaleRatio=function(t){var r=this.globalScaleRatio;if(r!=null&&r!==1){this.getGlobalScale(Sh);var n=Sh[0]<0?-1:1,a=Sh[1]<0?-1:1,i=((Sh[0]-n)*r+n)/Sh[0]||0,o=((Sh[1]-a)*r+a)/Sh[1]||0;t[0]*=i,t[1]*=i,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||hl(),Bm(this.invTransform,t)},e.prototype.getComputedTransform=function(){for(var t=this,r=[];t;)r.push(t),t=t.parent;for(;t=r.pop();)t.updateTransform();return this.transform},e.prototype.setLocalTransform=function(t){if(t){var r=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3],a=Math.atan2(t[1],t[0]),i=Math.PI/2+a-Math.atan2(t[3],t[2]);n=Math.sqrt(n)*Math.cos(i),r=Math.sqrt(r),this.skewX=i,this.skewY=0,this.rotation=-a,this.x=+t[4],this.y=+t[5],this.scaleX=r,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,r=this.transform;t&&t.transform&&(t.invTransform=t.invTransform||hl(),ic(dv,t.invTransform,r),r=dv);var n=this.originX,a=this.originY;(n||a)&&(CT[4]=n,CT[5]=a,ic(dv,r,CT),dv[4]-=n,dv[5]-=a,r=dv),this.setLocalTransform(r)}},e.prototype.getGlobalScale=function(t){var r=this.transform;return t=t||[],r?(t[0]=Math.sqrt(r[0]*r[0]+r[1]*r[1]),t[1]=Math.sqrt(r[2]*r[2]+r[3]*r[3]),r[0]<0&&(t[0]=-t[0]),r[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},e.prototype.transformCoordToLocal=function(t,r){var n=[t,r],a=this.invTransform;return a&&Ii(n,n,a),n},e.prototype.transformCoordToGlobal=function(t,r){var n=[t,r],a=this.transform;return a&&Ii(n,n,a),n},e.prototype.getLineScale=function(){var t=this.transform;return t&&FT(t[0]-1)>1e-10&&FT(t[3]-1)>1e-10?Math.sqrt(FT(t[0]*t[3]-t[2]*t[1])):1},e.prototype.copyTransform=function(t){zhe(this,t)},e.getLocalTransform=function(t,r){r=r||[];var n=t.originX||0,a=t.originY||0,i=t.scaleX,o=t.scaleY,l=t.anchorX,s=t.anchorY,u=t.rotation||0,c=t.x,d=t.y,f=t.skewX?Math.tan(t.skewX):0,h=t.skewY?Math.tan(-t.skewY):0;if(n||a||l||s){var p=n+l,v=a+s;r[4]=-p*i-f*v*o,r[5]=-v*o-h*p*i}else r[4]=r[5]=0;return r[0]=i,r[3]=o,r[1]=h*i,r[2]=f*o,u&&lh(r,r,u),r[4]+=n+c,r[5]+=a+d,r},e.initDefaultProps=function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0}(),e}(),mc=[\"x\",\"y\",\"originX\",\"originY\",\"anchorX\",\"anchorY\",\"rotation\",\"scaleX\",\"scaleY\",\"skewX\",\"skewY\"];function zhe(e,t){for(var r=0;r<mc.length;r++){var n=mc[r];e[n]=t[n]}}var VK={};function Bl(e,t){t=t||Kf;var r=VK[t];r||(r=VK[t]=new Zx(500));var n=r.get(e);return n==null&&(n=xu.measureText(e,t).width,r.put(e,n)),n}function WK(e,t,r,n){var a=Bl(e,t),i=VD(t),o=xy(0,a,r),l=Nv(0,i,n),s=new Ir(o,l,a,i);return s}function Qx(e,t,r,n){var a=((e||\"\")+\"\").split(`\n`),i=a.length;if(i===1)return WK(a[0],t,r,n);for(var o=new Ir(0,0,0,0),l=0;l<a.length;l++){var s=WK(a[l],t,r,n);l===0?o.copy(s):o.union(s)}return o}function xy(e,t,r){return r===\"right\"?e-=t:r===\"center\"&&(e-=t/2),e}function Nv(e,t,r){return r===\"middle\"?e-=t/2:r===\"bottom\"&&(e-=t),e}function VD(e){return Bl(\"国\",e)}function Fu(e,t){return typeof e==\"string\"?e.lastIndexOf(\"%\")>=0?parseFloat(e)/100*t:parseFloat(e):e}function P3(e,t,r){var n=t.position||\"inside\",a=t.distance!=null?t.distance:5,i=r.height,o=r.width,l=i/2,s=r.x,u=r.y,c=\"left\",d=\"top\";if(n instanceof Array)s+=Fu(n[0],r.width),u+=Fu(n[1],r.height),c=null,d=null;else switch(n){case\"left\":s-=a,u+=l,c=\"right\",d=\"middle\";break;case\"right\":s+=a+o,u+=l,d=\"middle\";break;case\"top\":s+=o/2,u-=a,c=\"center\",d=\"bottom\";break;case\"bottom\":s+=o/2,u+=i+a,c=\"center\";break;case\"inside\":s+=o/2,u+=l,c=\"center\",d=\"middle\";break;case\"insideLeft\":s+=a,u+=l,d=\"middle\";break;case\"insideRight\":s+=o-a,u+=l,c=\"right\",d=\"middle\";break;case\"insideTop\":s+=o/2,u+=a,c=\"center\";break;case\"insideBottom\":s+=o/2,u+=i-a,c=\"center\",d=\"bottom\";break;case\"insideTopLeft\":s+=a,u+=a;break;case\"insideTopRight\":s+=o-a,u+=a,c=\"right\";break;case\"insideBottomLeft\":s+=a,u+=i-a,d=\"bottom\";break;case\"insideBottomRight\":s+=o-a,u+=i-a,c=\"right\",d=\"bottom\";break}return e=e||{},e.x=s,e.y=u,e.align=c,e.verticalAlign=d,e}var ST=\"__zr_normal__\",wT=mc.concat([\"ignore\"]),p0t=Ds(mc,function(e,t){return e[t]=!0,e},{ignore:!1}),fv={},m0t=new Ir(0,0,0,0),WD=function(){function e(t){this.id=KB(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return e.prototype._init=function(t){this.attr(t)},e.prototype.drift=function(t,r,n){switch(this.draggable){case\"horizontal\":r=0;break;case\"vertical\":t=0;break}var a=this.transform;a||(a=this.transform=[1,0,0,1,0,0]),a[4]+=t,a[5]+=r,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(t){var r=this._textContent;if(r&&(!r.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,a=n.local,i=r.innerTransformable,o=void 0,l=void 0,s=!1;i.parent=a?this:null;var u=!1;if(i.copyTransform(r),n.position!=null){var c=m0t;n.layoutRect?c.copy(n.layoutRect):c.copy(this.getBoundingRect()),a||c.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(fv,n,c):P3(fv,n,c),i.x=fv.x,i.y=fv.y,o=fv.align,l=fv.verticalAlign;var d=n.origin;if(d&&n.rotation!=null){var f=void 0,h=void 0;d===\"center\"?(f=c.width*.5,h=c.height*.5):(f=Fu(d[0],c.width),h=Fu(d[1],c.height)),u=!0,i.originX=-i.x+f+(a?0:c.x),i.originY=-i.y+h+(a?0:c.y)}}n.rotation!=null&&(i.rotation=n.rotation);var p=n.offset;p&&(i.x+=p[0],i.y+=p[1],u||(i.originX=-p[0],i.originY=-p[1]));var v=n.inside==null?typeof n.position==\"string\"&&n.position.indexOf(\"inside\")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,b=void 0,x=void 0;v&&this.canBeInsideText()?(y=n.insideFill,b=n.insideStroke,(y==null||y===\"auto\")&&(y=this.getInsideTextFill()),(b==null||b===\"auto\")&&(b=this.getInsideTextStroke(y),x=!0)):(y=n.outsideFill,b=n.outsideStroke,(y==null||y===\"auto\")&&(y=this.getOutsideFill()),(b==null||b===\"auto\")&&(b=this.getOutsideStroke(y),x=!0)),y=y||\"#000\",(y!==g.fill||b!==g.stroke||x!==g.autoStroke||o!==g.align||l!==g.verticalAlign)&&(s=!0,g.fill=y,g.stroke=b,g.autoStroke=x,g.align=o,g.verticalAlign=l,r.setDefaultTextStyle(g)),r.__dirty|=_l,s&&r.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return\"#fff\"},e.prototype.getInsideTextStroke=function(t){return\"#000\"},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?qM:YM},e.prototype.getOutsideStroke=function(t){var r=this.__zr&&this.__zr.getBackgroundColor(),n=typeof r==\"string\"&&Ho(r);n||(n=[255,255,255,1]);for(var a=n[3],i=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*a+(i?0:255)*(1-a);return n[3]=1,fu(n,\"rgba\")},e.prototype.traverse=function(t,r){},e.prototype.attrKV=function(t,r){t===\"textConfig\"?this.setTextConfig(r):t===\"textContent\"?this.setTextContent(r):t===\"clipPath\"?this.setClipPath(r):t===\"extra\"?(this.extra=this.extra||{},Xe(this.extra,r)):this[t]=r},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(t,r){if(typeof t==\"string\")this.attrKV(t,r);else if(ir(t))for(var n=t,a=Ur(n),i=0;i<a.length;i++){var o=a[i];this.attrKV(o,t[o])}return this.markRedraw(),this},e.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var r=this._normalState,n=0;n<this.animators.length;n++){var a=this.animators[n],i=a.__fromStateTransition;if(!(a.getLoop()||i&&i!==ST)){var o=a.targetName,l=o?r[o]:r;a.saveTo(l)}}},e.prototype._innerSaveToNormal=function(t){var r=this._normalState;r||(r=this._normalState={}),t.textConfig&&!r.textConfig&&(r.textConfig=this.textConfig),this._savePrimaryToNormal(t,r,wT)},e.prototype._savePrimaryToNormal=function(t,r,n){for(var a=0;a<n.length;a++){var i=n[a];t[i]!=null&&!(i in r)&&(r[i]=this[i])}},e.prototype.hasState=function(){return this.currentStates.length>0},e.prototype.getState=function(t){return this.states[t]},e.prototype.ensureState=function(t){var r=this.states;return r[t]||(r[t]={}),r[t]},e.prototype.clearStates=function(t){this.useState(ST,!1,t)},e.prototype.useState=function(t,r,n,a){var i=t===ST,o=this.hasState();if(!(!o&&i)){var l=this.currentStates,s=this.stateTransition;if(!(Mr(l,t)>=0&&(r||l.length===1))){var u;if(this.stateProxy&&!i&&(u=this.stateProxy(t)),u||(u=this.states&&this.states[t]),!u&&!i){BD(\"State \"+t+\" not exists.\");return}i||this.saveCurrentToNormalState(u);var c=!!(u&&u.hoverLayer||a);c&&this._toggleHoverLayerFlag(!0),this._applyStateObj(t,u,this._normalState,r,!n&&!this.__inHover&&s&&s.duration>0,s);var d=this._textContent,f=this._textGuide;return d&&d.useState(t,r,n,c),f&&f.useState(t,r,n,c),i?(this.currentStates=[],this._normalState={}):r?this.currentStates.push(t):this.currentStates=[t],this._updateAnimationTargets(),this.markRedraw(),!c&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~_l),u}}},e.prototype.useStates=function(t,r,n){if(!t.length)this.clearStates();else{var a=[],i=this.currentStates,o=t.length,l=o===i.length;if(l){for(var s=0;s<o;s++)if(t[s]!==i[s]){l=!1;break}}if(l)return;for(var s=0;s<o;s++){var u=t[s],c=void 0;this.stateProxy&&(c=this.stateProxy(u,t)),c||(c=this.states[u]),c&&a.push(c)}var d=a[o-1],f=!!(d&&d.hoverLayer||n);f&&this._toggleHoverLayerFlag(!0);var h=this._mergeStates(a),p=this.stateTransition;this.saveCurrentToNormalState(h),this._applyStateObj(t.join(\",\"),h,this._normalState,!1,!r&&!this.__inHover&&p&&p.duration>0,p);var v=this._textContent,g=this._textGuide;v&&v.useStates(t,r,f),g&&g.useStates(t,r,f),this._updateAnimationTargets(),this.currentStates=t.slice(),this.markRedraw(),!f&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~_l)}},e.prototype.isSilent=function(){for(var t=this.silent,r=this.parent;!t&&r;){if(r.silent){t=!0;break}r=r.parent}return t},e.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var r=this.animators[t];r.targetName&&r.changeTarget(this[r.targetName])}},e.prototype.removeState=function(t){var r=Mr(this.currentStates,t);if(r>=0){var n=this.currentStates.slice();n.splice(r,1),this.useStates(n)}},e.prototype.replaceState=function(t,r,n){var a=this.currentStates.slice(),i=Mr(a,t),o=Mr(a,r)>=0;i>=0?o?a.splice(i,1):a[i]=r:n&&!o&&a.push(r),this.useStates(a)},e.prototype.toggleState=function(t,r){r?this.useState(t,!0):this.removeState(t)},e.prototype._mergeStates=function(t){for(var r={},n,a=0;a<t.length;a++){var i=t[a];Xe(r,i),i.textConfig&&(n=n||{},Xe(n,i.textConfig))}return n&&(r.textConfig=n),r},e.prototype._applyStateObj=function(t,r,n,a,i,o){var l=!(r&&a);r&&r.textConfig?(this.textConfig=Xe({},a?this.textConfig:n.textConfig),Xe(this.textConfig,r.textConfig)):l&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},u=!1,c=0;c<wT.length;c++){var d=wT[c],f=i&&p0t[d];r&&r[d]!=null?f?(u=!0,s[d]=r[d]):this[d]=r[d]:l&&n[d]!=null&&(f?(u=!0,s[d]=n[d]):this[d]=n[d])}if(!i)for(var c=0;c<this.animators.length;c++){var h=this.animators[c],p=h.targetName;h.getLoop()||h.__changeFinalValue(p?(r||n)[p]:r||n)}u&&this._transitionState(t,s,o)},e.prototype._attachComponent=function(t){if(!(t.__zr&&!t.__hostTarget)&&t!==this){var r=this.__zr;r&&t.addSelfToZr(r),t.__zr=r,t.__hostTarget=this}},e.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},e.prototype.getClipPath=function(){return this._clipPath},e.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},e.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},e.prototype.getTextContent=function(){return this._textContent},e.prototype.setTextContent=function(t){var r=this._textContent;r!==t&&(r&&r!==t&&this.removeTextContent(),t.innerTransformable=new Vc,this._attachComponent(t),this._textContent=t,this.markRedraw())},e.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),Xe(this.textConfig,t),this.markRedraw()},e.prototype.removeTextConfig=function(){this.textConfig=null,this.markRedraw()},e.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.innerTransformable=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},e.prototype.getTextGuideLine=function(){return this._textGuide},e.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},e.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},e.prototype.markRedraw=function(){this.__dirty|=_l;var t=this.__zr;t&&(this.__inHover?t.refreshHover():t.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},e.prototype.dirty=function(){this.markRedraw()},e.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var r=this._textContent,n=this._textGuide;r&&(r.__inHover=t),n&&(n.__inHover=t)},e.prototype.addSelfToZr=function(t){if(this.__zr!==t){this.__zr=t;var r=this.animators;if(r)for(var n=0;n<r.length;n++)t.animation.addAnimator(r[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)}},e.prototype.removeSelfFromZr=function(t){if(this.__zr){this.__zr=null;var r=this.animators;if(r)for(var n=0;n<r.length;n++)t.animation.removeAnimator(r[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)}},e.prototype.animate=function(t,r,n){var a=t?this[t]:this,i=new tN(a,r,n);return t&&(i.targetName=t),this.addAnimator(i,t),i},e.prototype.addAnimator=function(t,r){var n=this.__zr,a=this;t.during(function(){a.updateDuringAnimation(r)}).done(function(){var i=a.animators,o=Mr(i,t);o>=0&&i.splice(o,1)}),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(t){this.markRedraw()},e.prototype.stopAnimation=function(t,r){for(var n=this.animators,a=n.length,i=[],o=0;o<a;o++){var l=n[o];!t||t===l.scope?l.stop(r):i.push(l)}return this.animators=i,this},e.prototype.animateTo=function(t,r,n){ET(this,t,r,n)},e.prototype.animateFrom=function(t,r,n){ET(this,t,r,n,!0)},e.prototype._transitionState=function(t,r,n,a){for(var i=ET(this,r,n,a),o=0;o<i.length;o++)i[o].__fromStateTransition=t},e.prototype.getBoundingRect=function(){return null},e.prototype.getPaintRect=function(){return null},e.initDefaultProps=function(){var t=e.prototype;t.type=\"element\",t.name=\"\",t.ignore=t.silent=t.isGroup=t.draggable=t.dragging=t.ignoreClip=t.__inHover=!1,t.__dirty=_l;function r(n,a,i,o){Object.defineProperty(t,n,{get:function(){if(!this[a]){var s=this[a]=[];l(this,s)}return this[a]},set:function(s){this[i]=s[0],this[o]=s[1],this[a]=s,l(this,s)}});function l(s,u){Object.defineProperty(u,0,{get:function(){return s[i]},set:function(c){s[i]=c}}),Object.defineProperty(u,1,{get:function(){return s[o]},set:function(c){s[o]=c}})}}Object.defineProperty&&(r(\"position\",\"_legacyPos\",\"x\",\"y\"),r(\"scale\",\"_legacyScale\",\"scaleX\",\"scaleY\"),r(\"origin\",\"_legacyOrigin\",\"originX\",\"originY\"))}(),e}();Ca(WD,Rs);Ca(WD,Vc);function ET(e,t,r,n,a){r=r||{};var i=[];Hhe(e,\"\",e,t,r,n,i,a);var o=i.length,l=!1,s=r.done,u=r.aborted,c=function(){l=!0,o--,o<=0&&(l?s&&s():u&&u())},d=function(){o--,o<=0&&(l?s&&s():u&&u())};o||s&&s(),i.length>0&&r.during&&i[0].during(function(p,v){r.during(v)});for(var f=0;f<i.length;f++){var h=i[f];c&&h.done(c),d&&h.aborted(d),r.force&&h.duration(r.duration),h.start(r.easing)}return i}function DT(e,t,r){for(var n=0;n<r;n++)e[n]=t[n]}function v0t(e){return Yi(e[0])}function g0t(e,t,r){if(Yi(t[r]))if(Yi(e[r])||(e[r]=[]),Uo(t[r])){var n=t[r].length;e[r].length!==n&&(e[r]=new t[r].constructor(n),DT(e[r],t[r],n))}else{var a=t[r],i=e[r],o=a.length;if(v0t(a))for(var l=a[0].length,s=0;s<o;s++)i[s]?DT(i[s],a[s],l):i[s]=Array.prototype.slice.call(a[s]);else DT(i,a,o);i.length=a.length}else e[r]=t[r]}function y0t(e,t){return e===t||Yi(e)&&Yi(t)&&b0t(e,t)}function b0t(e,t){var r=e.length;if(r!==t.length)return!1;for(var n=0;n<r;n++)if(e[n]!==t[n])return!1;return!0}function Hhe(e,t,r,n,a,i,o,l){for(var s=Ur(n),u=a.duration,c=a.delay,d=a.additive,f=a.setToFinal,h=!ir(i),p=e.animators,v=[],g=0;g<s.length;g++){var y=s[g],b=n[y];if(b!=null&&r[y]!=null&&(h||i[y]))if(ir(b)&&!Yi(b)&&!qx(b)){if(t){l||(r[y]=b,e.updateDuringAnimation(t));continue}Hhe(e,y,r[y],b,a,i&&i[y],o,l)}else v.push(y);else l||(r[y]=b,e.updateDuringAnimation(t),v.push(y))}var x=v.length;if(!d&&x)for(var F=0;F<p.length;F++){var S=p[F];if(S.targetName===t){var E=S.stopTracks(v);if(E){var w=Mr(p,S);p.splice(w,1)}}}if(a.force||(v=hn(v,function(I){return!y0t(n[I],r[I])}),x=v.length),x>0||a.force&&!o.length){var D=void 0,A=void 0,_=void 0;if(l){A={},f&&(D={});for(var F=0;F<x;F++){var y=v[F];A[y]=r[y],f?D[y]=n[y]:r[y]=n[y]}}else if(f){_={};for(var F=0;F<x;F++){var y=v[F];_[y]=db(r[y]),g0t(r,n,y)}}var S=new tN(r,!1,!1,d?hn(p,function(M){return M.targetName===t}):null);S.targetName=t,a.scope&&(S.scope=a.scope),f&&D&&S.whenWithKeys(0,D,v),_&&S.whenWithKeys(0,_,v),S.whenWithKeys(u??500,l?A:n,v).delay(c||0),e.addAnimator(S,t),o.push(S)}}var pr=function(e){Re(t,e);function t(r){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(r){return this._children[r]},t.prototype.childOfName=function(r){for(var n=this._children,a=0;a<n.length;a++)if(n[a].name===r)return n[a]},t.prototype.childCount=function(){return this._children.length},t.prototype.add=function(r){return r&&r!==this&&r.parent!==this&&(this._children.push(r),this._doAdd(r)),this},t.prototype.addBefore=function(r,n){if(r&&r!==this&&r.parent!==this&&n&&n.parent===this){var a=this._children,i=a.indexOf(n);i>=0&&(a.splice(i,0,r),this._doAdd(r))}return this},t.prototype.replace=function(r,n){var a=Mr(this._children,r);return a>=0&&this.replaceAt(n,a),this},t.prototype.replaceAt=function(r,n){var a=this._children,i=a[n];if(r&&r!==this&&r.parent!==this&&r!==i){a[n]=r,i.parent=null;var o=this.__zr;o&&i.removeSelfFromZr(o),this._doAdd(r)}return this},t.prototype._doAdd=function(r){r.parent&&r.parent.remove(r),r.parent=this;var n=this.__zr;n&&n!==r.__zr&&r.addSelfToZr(n),n&&n.refresh()},t.prototype.remove=function(r){var n=this.__zr,a=this._children,i=Mr(a,r);return i<0?this:(a.splice(i,1),r.parent=null,n&&r.removeSelfFromZr(n),n&&n.refresh(),this)},t.prototype.removeAll=function(){for(var r=this._children,n=this.__zr,a=0;a<r.length;a++){var i=r[a];n&&i.removeSelfFromZr(n),i.parent=null}return r.length=0,this},t.prototype.eachChild=function(r,n){for(var a=this._children,i=0;i<a.length;i++){var o=a[i];r.call(n,o,i)}return this},t.prototype.traverse=function(r,n){for(var a=0;a<this._children.length;a++){var i=this._children[a],o=r.call(n,i);i.isGroup&&!o&&i.traverse(r,n)}return this},t.prototype.addSelfToZr=function(r){e.prototype.addSelfToZr.call(this,r);for(var n=0;n<this._children.length;n++){var a=this._children[n];a.addSelfToZr(r)}},t.prototype.removeSelfFromZr=function(r){e.prototype.removeSelfFromZr.call(this,r);for(var n=0;n<this._children.length;n++){var a=this._children[n];a.removeSelfFromZr(r)}},t.prototype.getBoundingRect=function(r){for(var n=new Ir(0,0,0,0),a=r||this._children,i=[],o=null,l=0;l<a.length;l++){var s=a[l];if(!(s.ignore||s.invisible)){var u=s.getBoundingRect(),c=s.getLocalTransform(i);c?(Ir.applyTransform(n,u,c),o=o||n.clone(),o.union(n)):(o=o||u.clone(),o.union(u))}}return o||n},t}(WD);pr.prototype.type=\"group\";/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/var Iw={},fp={};function x0t(e){delete fp[e]}function C0t(e){if(!e)return!1;if(typeof e==\"string\")return D2(e,1)<KM;if(e.colorStops){for(var t=e.colorStops,r=0,n=t.length,a=0;a<n;a++)r+=D2(t[a].color,1);return r/=n,r<KM}return!1}var F0t=function(){function e(t,r,n){var a=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=r,this.id=t;var i=new Mvt,o=n.renderer||\"canvas\";Iw[o]||(o=Ur(Iw)[0]),n.useDirtyRect=n.useDirtyRect==null?!1:n.useDirtyRect;var l=new Iw[o](r,i,n,t),s=n.ssr||l.ssrOnly;this.storage=i,this.painter=l;var u=!zr.node&&!zr.worker&&!s?new f0t(l.getViewportRoot(),l.root):null,c=n.useCoarsePointer,d=c==null||c===\"auto\"?zr.touchEventsSupported:!!c,f=44,h;d&&(h=Fr(n.pointerSize,f)),this.handler=new Che(i,l,u,l.root,h),this.animation=new i0t({stage:{update:s?null:function(){return a._flush(!0)}}}),s||this.animation.start()}return e.prototype.add=function(t){this._disposed||!t||(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},e.prototype.remove=function(t){this._disposed||!t||(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},e.prototype.configLayer=function(t,r){this._disposed||(this.painter.configLayer&&this.painter.configLayer(t,r),this.refresh())},e.prototype.setBackgroundColor=function(t){this._disposed||(this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=C0t(t))},e.prototype.getBackgroundColor=function(){return this._backgroundColor},e.prototype.setDarkMode=function(t){this._darkMode=t},e.prototype.isDarkMode=function(){return this._darkMode},e.prototype.refreshImmediately=function(t){this._disposed||(t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1)},e.prototype.refresh=function(){this._disposed||(this._needsRefresh=!0,this.animation.start())},e.prototype.flush=function(){this._disposed||this._flush(!1)},e.prototype._flush=function(t){var r,n=i0();this._needsRefresh&&(r=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(r=!0,this.refreshHoverImmediately());var a=i0();r?(this._stillFrameAccum=0,this.trigger(\"rendered\",{elapsedTime:a-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},e.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._disposed||(this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.getType()===\"canvas\"&&this.painter.refreshHover())},e.prototype.resize=function(t){this._disposed||(t=t||{},this.painter.resize(t.width,t.height),this.handler.resize())},e.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},e.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},e.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},e.prototype.setCursorStyle=function(t){this._disposed||this.handler.setCursorStyle(t)},e.prototype.findHover=function(t,r){if(!this._disposed)return this.handler.findHover(t,r)},e.prototype.on=function(t,r,n){return this._disposed||this.handler.on(t,r,n),this},e.prototype.off=function(t,r){this._disposed||this.handler.off(t,r)},e.prototype.trigger=function(t,r){this._disposed||this.handler.trigger(t,r)},e.prototype.clear=function(){if(!this._disposed){for(var t=this.storage.getRoots(),r=0;r<t.length;r++)t[r]instanceof pr&&t[r].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()}},e.prototype.dispose=function(){this._disposed||(this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,this._disposed=!0,x0t(this.id))},e}();function XM(e,t){var r=new F0t(KB(),e,t);return fp[r.id]=r,r}function S0t(e){e.dispose()}function w0t(){for(var e in fp)fp.hasOwnProperty(e)&&fp[e].dispose();fp={}}function E0t(e){return fp[e]}function Vhe(e,t){Iw[e]=t}var JM;function Whe(e){if(typeof JM==\"function\")return JM(e)}function Ghe(e){JM=e}var D0t=\"5.6.1\";const A0t=Object.freeze(Object.defineProperty({__proto__:null,dispose:S0t,disposeAll:w0t,getElementSSRData:Whe,getInstance:E0t,init:XM,registerPainter:Vhe,registerSSRDataGetter:Ghe,version:D0t},Symbol.toStringTag,{value:\"Module\"}));var GK=1e-4,Uhe=20;function _0t(e){return e.replace(/^\\s+|\\s+$/g,\"\")}function yn(e,t,r,n){var a=t[0],i=t[1],o=r[0],l=r[1],s=i-a,u=l-o;if(s===0)return u===0?o:(o+l)/2;if(n)if(s>0){if(e<=a)return o;if(e>=i)return l}else{if(e>=a)return o;if(e<=i)return l}else{if(e===a)return o;if(e===i)return l}return(e-a)/s*u+o}function Ft(e,t){switch(e){case\"center\":case\"middle\":e=\"50%\";break;case\"left\":case\"top\":e=\"0%\";break;case\"right\":case\"bottom\":e=\"100%\";break}return At(e)?_0t(e).match(/%$/)?parseFloat(e)/100*t:parseFloat(e):e==null?NaN:+e}function fa(e,t,r){return t==null&&(t=10),t=Math.min(Math.max(0,t),Uhe),e=(+e).toFixed(t),r?e:+e}function Ml(e){return e.sort(function(t,r){return t-r}),e}function tu(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,r=0;r<15;r++,t*=10)if(Math.round(e*t)/t===e)return r}return Khe(e)}function Khe(e){var t=e.toString().toLowerCase(),r=t.indexOf(\"e\"),n=r>0?+t.slice(r+1):0,a=r>0?r:t.length,i=t.indexOf(\".\"),o=i<0?0:a-1-i;return Math.max(0,o-n)}function rN(e,t){var r=Math.log,n=Math.LN10,a=Math.floor(r(e[1]-e[0])/n),i=Math.round(r(Math.abs(t[1]-t[0]))/n),o=Math.min(Math.max(-a+i,0),20);return isFinite(o)?o:20}function T0t(e,t,r){if(!e[t])return 0;var n=Yhe(e,r);return n[t]||0}function Yhe(e,t){var r=Ds(e,function(h,p){return h+(isNaN(p)?0:p)},0);if(r===0)return[];for(var n=Math.pow(10,t),a=ot(e,function(h){return(isNaN(h)?0:h)/r*n*100}),i=n*100,o=ot(a,function(h){return Math.floor(h)}),l=Ds(o,function(h,p){return h+p},0),s=ot(a,function(h,p){return h-o[p]});l<i;){for(var u=Number.NEGATIVE_INFINITY,c=null,d=0,f=s.length;d<f;++d)s[d]>u&&(u=s[d],c=d);++o[c],s[c]=0,++l}return ot(o,function(h){return h/n})}function I0t(e,t){var r=Math.max(tu(e),tu(t)),n=e+t;return r>Uhe?n:fa(n,r)}var ZM=9007199254740991;function nN(e){var t=Math.PI*2;return(e%t+t)%t}function ag(e){return e>-GK&&e<GK}var k0t=/^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;function jl(e){if(e instanceof Date)return e;if(At(e)){var t=k0t.exec(e);if(!t)return new Date(NaN);if(t[8]){var r=+t[4]||0;return t[8].toUpperCase()!==\"Z\"&&(r-=+t[8].slice(0,3)),new Date(Date.UTC(+t[1],+(t[2]||1)-1,+t[3]||1,r,+(t[5]||0),+t[6]||0,t[7]?+t[7].substring(0,3):0))}else return new Date(+t[1],+(t[2]||1)-1,+t[3]||1,+t[4]||0,+(t[5]||0),+t[6]||0,t[7]?+t[7].substring(0,3):0)}else if(e==null)return new Date(NaN);return new Date(Math.round(e))}function qhe(e){return Math.pow(10,GD(e))}function GD(e){if(e===0)return 0;var t=Math.floor(Math.log(e)/Math.LN10);return e/Math.pow(10,t)>=10&&t++,t}function aN(e,t){var r=GD(e),n=Math.pow(10,r),a=e/n,i;return t?a<1.5?i=1:a<2.5?i=2:a<4?i=3:a<7?i=5:i=10:a<1?i=1:a<2?i=2:a<3?i=3:a<5?i=5:i=10,e=i*n,r>=-20?+e.toFixed(r<0?-r:0):e}function kw(e,t){var r=(e.length-1)*t+1,n=Math.floor(r),a=+e[n-1],i=r-n;return i?a+i*(e[n]-a):a}function QM(e){e.sort(function(s,u){return l(s,u,0)?-1:1});for(var t=-1/0,r=1,n=0;n<e.length;){for(var a=e[n].interval,i=e[n].close,o=0;o<2;o++)a[o]<=t&&(a[o]=t,i[o]=o?1:1-r),t=a[o],r=i[o];a[0]===a[1]&&i[0]*i[1]!==1?e.splice(n,1):n++}return e;function l(s,u,c){return s.interval[c]<u.interval[c]||s.interval[c]===u.interval[c]&&(s.close[c]-u.close[c]===(c?-1:1)||!c&&l(s,u,1))}}function vc(e){var t=parseFloat(e);return t==e&&(t!==0||!At(e)||e.indexOf(\"x\")<=0)?t:NaN}function iN(e){return!isNaN(vc(e))}function Xhe(){return Math.round(Math.random()*9)}function Jhe(e,t){return t===0?e:Jhe(t,e%t)}function UK(e,t){return e==null?t:t==null?e:e*t/Jhe(e,t)}function bn(e){throw new Error(e)}function KK(e,t,r){return(t-e)*r+e}var Zhe=\"series\\0\",Qhe=\"\\0_ec_\\0\";function An(e){return e instanceof Array?e:e==null?[]:[e]}function nm(e,t,r){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var n=0,a=r.length;n<a;n++){var i=r[n];!e.emphasis[t].hasOwnProperty(i)&&e[t].hasOwnProperty(i)&&(e.emphasis[t][i]=e[t][i])}}}var YK=[\"fontStyle\",\"fontWeight\",\"fontSize\",\"fontFamily\",\"rich\",\"tag\",\"color\",\"textBorderColor\",\"textBorderWidth\",\"width\",\"height\",\"lineHeight\",\"align\",\"verticalAlign\",\"baseline\",\"shadowColor\",\"shadowBlur\",\"shadowOffsetX\",\"shadowOffsetY\",\"textShadowColor\",\"textShadowBlur\",\"textShadowOffsetX\",\"textShadowOffsetY\",\"backgroundColor\",\"borderColor\",\"borderWidth\",\"borderRadius\",\"padding\"];function Wg(e){return ir(e)&&!nt(e)&&!(e instanceof Date)?e.value:e}function R0t(e){return ir(e)&&!(e instanceof Array)}function epe(e,t,r){var n=r===\"normalMerge\",a=r===\"replaceMerge\",i=r===\"replaceAll\";e=e||[],t=(t||[]).slice();var o=Gt();q(t,function(s,u){if(!ir(s)){t[u]=null;return}});var l=M0t(e,o,r);return(n||a)&&P0t(l,e,o,t),n&&O0t(l,t),n||a?B0t(l,t,a):i&&N0t(l,t),$0t(l),l}function M0t(e,t,r){var n=[];if(r===\"replaceAll\")return n;for(var a=0;a<e.length;a++){var i=e[a];i&&i.id!=null&&t.set(i.id,a),n.push({existing:r===\"replaceMerge\"||_2(i)?null:i,newOption:null,keyInfo:null,brandNew:null})}return n}function P0t(e,t,r,n){q(n,function(a,i){if(!(!a||a.id==null)){var o=fb(a.id),l=r.get(o);if(l!=null){var s=e[l];Fo(!s.newOption,'Duplicated option on id \"'+o+'\".'),s.newOption=a,s.existing=t[l],n[i]=null}}})}function O0t(e,t){q(t,function(r,n){if(!(!r||r.name==null))for(var a=0;a<e.length;a++){var i=e[a].existing;if(!e[a].newOption&&i&&(i.id==null||r.id==null)&&!_2(r)&&!_2(i)&&tpe(\"name\",i,r)){e[a].newOption=r,t[n]=null;return}}})}function B0t(e,t,r){q(t,function(n){if(n){for(var a,i=0;(a=e[i])&&(a.newOption||_2(a.existing)||a.existing&&n.id!=null&&!tpe(\"id\",n,a.existing));)i++;a?(a.newOption=n,a.brandNew=r):e.push({newOption:n,brandNew:r,existing:null,keyInfo:null}),i++}})}function N0t(e,t){q(t,function(r){e.push({newOption:r,brandNew:!0,existing:null,keyInfo:null})})}function $0t(e){var t=Gt();q(e,function(r){var n=r.existing;n&&t.set(n.id,r)}),q(e,function(r){var n=r.newOption;Fo(!n||n.id==null||!t.get(n.id)||t.get(n.id)===r,\"id duplicates: \"+(n&&n.id)),n&&n.id!=null&&t.set(n.id,r),!r.keyInfo&&(r.keyInfo={})}),q(e,function(r,n){var a=r.existing,i=r.newOption,o=r.keyInfo;if(ir(i)){if(o.name=i.name!=null?fb(i.name):a?a.name:Zhe+n,a)o.id=fb(a.id);else if(i.id!=null)o.id=fb(i.id);else{var l=0;do o.id=\"\\0\"+o.name+\"\\0\"+l++;while(t.get(o.id))}t.set(o.id,r)}})}function tpe(e,t,r){var n=qa(t[e],null),a=qa(r[e],null);return n!=null&&a!=null&&n===a}function fb(e){return qa(e,\"\")}function qa(e,t){return e==null?t:At(e)?e:nn(e)||w3(e)?e+\"\":t}function oN(e){var t=e.name;return!!(t&&t.indexOf(Zhe))}function _2(e){return e&&e.id!=null&&fb(e.id).indexOf(Qhe)===0}function L0t(e){return Qhe+e}function j0t(e,t,r){q(e,function(n){var a=n.newOption;ir(a)&&(n.keyInfo.mainType=t,n.keyInfo.subType=z0t(t,a,n.existing,r))})}function z0t(e,t,r,n){var a=t.type?t.type:r?r.subType:n.determineSubType(e,t);return a}function H0t(e,t){var r={},n={};return a(e||[],r),a(t||[],n,r),[i(r),i(n)];function a(o,l,s){for(var u=0,c=o.length;u<c;u++){var d=qa(o[u].seriesId,null);if(d==null)return;for(var f=An(o[u].dataIndex),h=s&&s[d],p=0,v=f.length;p<v;p++){var g=f[p];h&&h[g]?h[g]=null:(l[d]||(l[d]={}))[g]=1}}}function i(o,l){var s=[];for(var u in o)if(o.hasOwnProperty(u)&&o[u]!=null)if(l)s.push(+u);else{var c=i(o[u],!0);c.length&&s.push({seriesId:u,dataIndex:c})}return s}}function am(e,t){if(t.dataIndexInside!=null)return t.dataIndexInside;if(t.dataIndex!=null)return nt(t.dataIndex)?ot(t.dataIndex,function(r){return e.indexOfRawIndex(r)}):e.indexOfRawIndex(t.dataIndex);if(t.name!=null)return nt(t.name)?ot(t.name,function(r){return e.indexOfName(r)}):e.indexOfName(t.name)}function rn(){var e=\"__ec_inner_\"+V0t++;return function(t){return t[e]||(t[e]={})}}var V0t=Xhe();function hb(e,t,r){var n=lN(t,r),a=n.mainTypeSpecified,i=n.queryOptionMap,o=n.others,l=o,s=r?r.defaultMainType:null;return!a&&s&&i.set(s,{}),i.each(function(u,c){var d=eC(e,c,u,{useDefault:s===c,enableAll:r&&r.enableAll!=null?r.enableAll:!0,enableNone:r&&r.enableNone!=null?r.enableNone:!0});l[c+\"Models\"]=d.models,l[c+\"Model\"]=d.models[0]}),l}function lN(e,t){var r;if(At(e)){var n={};n[e+\"Index\"]=0,r=n}else r=e;var a=Gt(),i={},o=!1;return q(r,function(l,s){if(s===\"dataIndex\"||s===\"dataIndexInside\"){i[s]=l;return}var u=s.match(/^(\\w+)(Index|Id|Name)$/)||[],c=u[1],d=(u[2]||\"\").toLowerCase();if(!(!c||!d||t&&t.includeMainTypes&&Mr(t.includeMainTypes,c)<0)){o=o||!!c;var f=a.get(c)||a.set(c,{});f[d]=l}}),{mainTypeSpecified:o,queryOptionMap:a,others:i}}var Oa={useDefault:!0,enableAll:!1,enableNone:!1},W0t={useDefault:!1,enableAll:!0,enableNone:!0};function eC(e,t,r,n){n=n||Oa;var a=r.index,i=r.id,o=r.name,l={models:null,specified:a!=null||i!=null||o!=null};if(!l.specified){var s=void 0;return l.models=n.useDefault&&(s=e.getComponent(t))?[s]:[],l}return a===\"none\"||a===!1?(Fo(n.enableNone,'`\"none\"` or `false` is not a valid value on index option.'),l.models=[],l):(a===\"all\"&&(Fo(n.enableAll,'`\"all\"` is not a valid value on index option.'),a=i=o=null),l.models=e.queryComponents({mainType:t,index:a,id:i,name:o}),l)}function rpe(e,t,r){e.setAttribute?e.setAttribute(t,r):e[t]=r}function G0t(e,t){return e.getAttribute?e.getAttribute(t):e[t]}function U0t(e){return e===\"auto\"?zr.domSupported?\"html\":\"richText\":e||\"html\"}function eP(e,t){var r=Gt(),n=[];return q(e,function(a){var i=t(a);(r.get(i)||(n.push(i),r.set(i,[]))).push(a)}),{keys:n,buckets:r}}function npe(e,t,r,n,a){var i=t==null||t===\"auto\";if(n==null)return n;if(nn(n)){var o=KK(r||0,n,a);return fa(o,i?Math.max(tu(r||0),tu(n)):t)}else{if(At(n))return a<1?r:n;for(var l=[],s=r,u=n,c=Math.max(s?s.length:0,u.length),d=0;d<c;++d){var f=e.getDimensionInfo(d);if(f&&f.type===\"ordinal\")l[d]=(a<1&&s?s:u)[d];else{var h=s&&s[d]?s[d]:0,p=u[d],o=KK(h,p,a);l[d]=fa(o,i?Math.max(tu(h),tu(p)):t)}}return l}}var K0t=\".\",wh=\"___EC__COMPONENT__CONTAINER___\",ape=\"___EC__EXTENDED_CLASS___\";function Xu(e){var t={main:\"\",sub:\"\"};if(e){var r=e.split(K0t);t.main=r[0]||\"\",t.sub=r[1]||\"\"}return t}function Y0t(e){Fo(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),'componentType \"'+e+'\" illegal')}function q0t(e){return!!(e&&e[ape])}function sN(e,t){e.$constructor=e,e.extend=function(r){var n=this,a;return X0t(n)?a=function(i){Re(o,i);function o(){return i.apply(this,arguments)||this}return o}(n):(a=function(){(r.$constructor||n).apply(this,arguments)},YB(a,this)),Xe(a.prototype,r),a[ape]=!0,a.extend=this.extend,a.superCall=Q0t,a.superApply=egt,a.superClass=n,a}}function X0t(e){return er(e)&&/^class\\s/.test(Function.prototype.toString.call(e))}function ipe(e,t){e.extend=t.extend}var J0t=Math.round(Math.random()*10);function Z0t(e){var t=[\"__\\0is_clz\",J0t++].join(\"_\");e.prototype[t]=!0,e.isInstance=function(r){return!!(r&&r[t])}}function Q0t(e,t){for(var r=[],n=2;n<arguments.length;n++)r[n-2]=arguments[n];return this.superClass.prototype[t].apply(e,r)}function egt(e,t,r){return this.superClass.prototype[t].apply(e,r)}function UD(e){var t={};e.registerClass=function(n){var a=n.type||n.prototype.type;if(a){Y0t(a),n.prototype.type=a;var i=Xu(a);if(!i.sub)t[i.main]=n;else if(i.sub!==wh){var o=r(i);o[i.sub]=n}}return n},e.getClass=function(n,a,i){var o=t[n];if(o&&o[wh]&&(o=a?o[a]:null),i&&!o)throw new Error(a?\"Component \"+n+\".\"+(a||\"\")+\" is used but not imported.\":n+\".type should be specified.\");return o},e.getClassesByMainType=function(n){var a=Xu(n),i=[],o=t[a.main];return o&&o[wh]?q(o,function(l,s){s!==wh&&i.push(l)}):i.push(o),i},e.hasClass=function(n){var a=Xu(n);return!!t[a.main]},e.getAllClassMainTypes=function(){var n=[];return q(t,function(a,i){n.push(i)}),n},e.hasSubTypes=function(n){var a=Xu(n),i=t[a.main];return i&&i[wh]};function r(n){var a=t[n.main];return(!a||!a[wh])&&(a=t[n.main]={},a[wh]=!0),a}}function im(e,t){for(var r=0;r<e.length;r++)e[r][1]||(e[r][1]=e[r][0]);return t=t||!1,function(n,a,i){for(var o={},l=0;l<e.length;l++){var s=e[l][1];if(!(a&&Mr(a,s)>=0||i&&Mr(i,s)<0)){var u=n.getShallow(s,t);u!=null&&(o[e[l][0]]=u)}}return o}}var tgt=[[\"fill\",\"color\"],[\"shadowBlur\"],[\"shadowOffsetX\"],[\"shadowOffsetY\"],[\"opacity\"],[\"shadowColor\"]],rgt=im(tgt),ngt=function(){function e(){}return e.prototype.getAreaStyle=function(t,r){return rgt(this,t,r)},e}(),tP=new Zx(50);function agt(e){if(typeof e==\"string\"){var t=tP.get(e);return t&&t.image}else return e}function uN(e,t,r,n,a){if(e)if(typeof e==\"string\"){if(t&&t.__zrImageSrc===e||!r)return t;var i=tP.get(e),o={hostEl:r,cb:n,cbPayload:a};return i?(t=i.image,!KD(t)&&i.pending.push(o)):(t=xu.loadImage(e,qK,qK),t.__zrImageSrc=e,tP.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e;else return t}function qK(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t<e.pending.length;t++){var r=e.pending[t],n=r.cb;n&&n(this,r.cbPayload),r.hostEl.dirty()}e.pending.length=0}function KD(e){return e&&e.width&&e.height}var AT=/\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;function igt(e,t,r,n,a){var i={};return ope(i,e,t,r,n,a),i.text}function ope(e,t,r,n,a,i){if(!r){e.text=\"\",e.isTruncated=!1;return}var o=(t+\"\").split(`\n`);i=lpe(r,n,a,i);for(var l=!1,s={},u=0,c=o.length;u<c;u++)spe(s,o[u],i),o[u]=s.textLine,l=l||s.isTruncated;e.text=o.join(`\n`),e.isTruncated=l}function lpe(e,t,r,n){n=n||{};var a=Xe({},n);a.font=t,r=Fr(r,\"...\"),a.maxIterations=Fr(n.maxIterations,2);var i=a.minChar=Fr(n.minChar,0);a.cnCharWidth=Bl(\"国\",t);var o=a.ascCharWidth=Bl(\"a\",t);a.placeholder=Fr(n.placeholder,\"\");for(var l=e=Math.max(0,e-1),s=0;s<i&&l>=o;s++)l-=o;var u=Bl(r,t);return u>l&&(r=\"\",u=0),l=e-u,a.ellipsis=r,a.ellipsisWidth=u,a.contentWidth=l,a.containerWidth=e,a}function spe(e,t,r){var n=r.containerWidth,a=r.font,i=r.contentWidth;if(!n){e.textLine=\"\",e.isTruncated=!1;return}var o=Bl(t,a);if(o<=n){e.textLine=t,e.isTruncated=!1;return}for(var l=0;;l++){if(o<=i||l>=r.maxIterations){t+=r.ellipsis;break}var s=l===0?ogt(t,i,r.ascCharWidth,r.cnCharWidth):o>0?Math.floor(t.length*i/o):0;t=t.substr(0,s),o=Bl(t,a)}t===\"\"&&(t=r.placeholder),e.textLine=t,e.isTruncated=!0}function ogt(e,t,r,n){for(var a=0,i=0,o=e.length;i<o&&a<t;i++){var l=e.charCodeAt(i);a+=0<=l&&l<=127?r:n}return i}function lgt(e,t){e!=null&&(e+=\"\");var r=t.overflow,n=t.padding,a=t.font,i=r===\"truncate\",o=VD(a),l=Fr(t.lineHeight,o),s=!!t.backgroundColor,u=t.lineOverflow===\"truncate\",c=!1,d=t.width,f;d!=null&&(r===\"break\"||r===\"breakAll\")?f=e?upe(e,t.font,d,r===\"breakAll\",0).lines:[]:f=e?e.split(`\n`):[];var h=f.length*l,p=Fr(t.height,h);if(h>p&&u){var v=Math.floor(p/l);c=c||f.length>v,f=f.slice(0,v)}if(e&&i&&d!=null)for(var g=lpe(d,a,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),y={},b=0;b<f.length;b++)spe(y,f[b],g),f[b]=y.textLine,c=c||y.isTruncated;for(var x=p,F=0,b=0;b<f.length;b++)F=Math.max(Bl(f[b],a),F);d==null&&(d=F);var S=F;return n&&(x+=n[0]+n[2],S+=n[1]+n[3],d+=n[1]+n[3]),s&&(S=d),{lines:f,height:p,outerWidth:S,outerHeight:x,lineHeight:l,calculatedLineHeight:o,contentWidth:F,contentHeight:h,width:d,isTruncated:c}}var sgt=function(){function e(){}return e}(),XK=function(){function e(t){this.tokens=[],t&&(this.tokens=t)}return e}(),ugt=function(){function e(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[],this.isTruncated=!1}return e}();function cgt(e,t){var r=new ugt;if(e!=null&&(e+=\"\"),!e)return r;for(var n=t.width,a=t.height,i=t.overflow,o=(i===\"break\"||i===\"breakAll\")&&n!=null?{width:n,accumWidth:0,breakAll:i===\"breakAll\"}:null,l=AT.lastIndex=0,s;(s=AT.exec(e))!=null;){var u=s.index;u>l&&_T(r,e.substring(l,u),t,o),_T(r,s[2],t,o,s[1]),l=AT.lastIndex}l<e.length&&_T(r,e.substring(l,e.length),t,o);var c=[],d=0,f=0,h=t.padding,p=i===\"truncate\",v=t.lineOverflow===\"truncate\",g={};function y(z,W,L){z.width=W,z.lineHeight=L,d+=L,f=Math.max(f,W)}e:for(var b=0;b<r.lines.length;b++){for(var x=r.lines[b],F=0,S=0,E=0;E<x.tokens.length;E++){var w=x.tokens[E],D=w.styleName&&t.rich[w.styleName]||{},A=w.textPadding=D.padding,_=A?A[1]+A[3]:0,I=w.font=D.font||t.font;w.contentHeight=VD(I);var M=Fr(D.height,w.contentHeight);if(w.innerHeight=M,A&&(M+=A[0]+A[2]),w.height=M,w.lineHeight=cu(D.lineHeight,t.lineHeight,M),w.align=D&&D.align||t.align,w.verticalAlign=D&&D.verticalAlign||\"middle\",v&&a!=null&&d+w.lineHeight>a){var T=r.lines.length;E>0?(x.tokens=x.tokens.slice(0,E),y(x,S,F),r.lines=r.lines.slice(0,b+1)):r.lines=r.lines.slice(0,b),r.isTruncated=r.isTruncated||r.lines.length<T;break e}var k=D.width,R=k==null||k===\"auto\";if(typeof k==\"string\"&&k.charAt(k.length-1)===\"%\")w.percentWidth=k,c.push(w),w.contentWidth=Bl(w.text,I);else{if(R){var P=D.backgroundColor,B=P&&P.image;B&&(B=agt(B),KD(B)&&(w.width=Math.max(w.width,B.width*M/B.height)))}var N=p&&n!=null?n-S:null;N!=null&&N<w.width?!R||N<_?(w.text=\"\",w.width=w.contentWidth=0):(ope(g,w.text,N-_,I,t.ellipsis,{minChar:t.truncateMinChar}),w.text=g.text,r.isTruncated=r.isTruncated||g.isTruncated,w.width=w.contentWidth=Bl(w.text,I)):w.contentWidth=Bl(w.text,I)}w.width+=_,S+=w.width,D&&(F=Math.max(F,w.lineHeight))}y(x,S,F)}r.outerWidth=r.width=Fr(n,f),r.outerHeight=r.height=Fr(a,d),r.contentHeight=d,r.contentWidth=f,h&&(r.outerWidth+=h[1]+h[3],r.outerHeight+=h[0]+h[2]);for(var b=0;b<c.length;b++){var w=c[b],O=w.percentWidth;w.width=parseInt(O,10)/100*r.width}return r}function _T(e,t,r,n,a){var i=t===\"\",o=a&&r.rich[a]||{},l=e.lines,s=o.font||r.font,u=!1,c,d;if(n){var f=o.padding,h=f?f[1]+f[3]:0;if(o.width!=null&&o.width!==\"auto\"){var p=Fu(o.width,n.width)+h;l.length>0&&p+n.accumWidth>n.width&&(c=t.split(`\n`),u=!0),n.accumWidth=p}else{var v=upe(t,s,n.width,n.breakAll,n.accumWidth);n.accumWidth=v.accumWidth+h,d=v.linesWidths,c=v.lines}}else c=t.split(`\n`);for(var g=0;g<c.length;g++){var y=c[g],b=new sgt;if(b.styleName=a,b.text=y,b.isLineHolder=!y&&!i,typeof o.width==\"number\"?b.width=o.width:b.width=d?d[g]:Bl(y,s),!g&&!u){var x=(l[l.length-1]||(l[0]=new XK)).tokens,F=x.length;F===1&&x[0].isLineHolder?x[0]=b:(y||!F||i)&&x.push(b)}else l.push(new XK([b]))}}function dgt(e){var t=e.charCodeAt(0);return t>=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var fgt=Ds(\",&?/;] \".split(\"\"),function(e,t){return e[t]=!0,e},{});function hgt(e){return dgt(e)?!!fgt[e]:!0}function upe(e,t,r,n,a){for(var i=[],o=[],l=\"\",s=\"\",u=0,c=0,d=0;d<e.length;d++){var f=e.charAt(d);if(f===`\n`){s&&(l+=s,c+=u),i.push(l),o.push(c),l=\"\",s=\"\",u=0,c=0;continue}var h=Bl(f,t),p=n?!1:!hgt(f);if(i.length?c+h>r:a+c+h>r){c?(l||s)&&(p?(l||(l=s,s=\"\",u=0,c=u),i.push(l),o.push(c-u),s+=f,u+=h,l=\"\",c=u):(s&&(l+=s,s=\"\",u=0),i.push(l),o.push(c),l=f,c=h)):p?(i.push(s),o.push(u),s=f,u=h):(i.push(f),o.push(h));continue}c+=h,p?(s+=f,u+=h):(s&&(l+=s,s=\"\",u=0),l+=f)}return!i.length&&!l&&(l=e,s=\"\",u=0),s&&(l+=s),l&&(i.push(l),o.push(c)),i.length===1&&(c+=a),{accumWidth:c,lines:i,linesWidths:o}}var rP=\"__zr_style_\"+Math.round(Math.random()*10),Rp={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:\"#000\",opacity:1,blend:\"source-over\"},YD={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};Rp[rP]=!0;var JK=[\"z\",\"z2\",\"invisible\"],pgt=[\"invisible\"],As=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype._init=function(r){for(var n=Ur(r),a=0;a<n.length;a++){var i=n[a];i===\"style\"?this.useStyle(r[i]):e.prototype.attrKV.call(this,i,r[i])}this.style||this.useStyle({})},t.prototype.beforeBrush=function(){},t.prototype.afterBrush=function(){},t.prototype.innerBeforeBrush=function(){},t.prototype.innerAfterBrush=function(){},t.prototype.shouldBePainted=function(r,n,a,i){var o=this.transform;if(this.ignore||this.invisible||this.style.opacity===0||this.culling&&mgt(this,r,n)||o&&!o[0]&&!o[3])return!1;if(a&&this.__clipPaths){for(var l=0;l<this.__clipPaths.length;++l)if(this.__clipPaths[l].isZeroArea())return!1}if(i&&this.parent)for(var s=this.parent;s;){if(s.ignore)return!1;s=s.parent}return!0},t.prototype.contain=function(r,n){return this.rectContain(r,n)},t.prototype.traverse=function(r,n){r.call(n,this)},t.prototype.rectContain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect();return i.contain(a[0],a[1])},t.prototype.getPaintRect=function(){var r=this._paintRect;if(!this._paintRect||this.__dirty){var n=this.transform,a=this.getBoundingRect(),i=this.style,o=i.shadowBlur||0,l=i.shadowOffsetX||0,s=i.shadowOffsetY||0;r=this._paintRect||(this._paintRect=new Ir(0,0,0,0)),n?Ir.applyTransform(r,a,n):r.copy(a),(o||l||s)&&(r.width+=o*2+Math.abs(l),r.height+=o*2+Math.abs(s),r.x=Math.min(r.x,r.x+l-o),r.y=Math.min(r.y,r.y+s-o));var u=this.dirtyRectTolerance;r.isZero()||(r.x=Math.floor(r.x-u),r.y=Math.floor(r.y-u),r.width=Math.ceil(r.width+1+u*2),r.height=Math.ceil(r.height+1+u*2))}return r},t.prototype.setPrevPaintRect=function(r){r?(this._prevPaintRect=this._prevPaintRect||new Ir(0,0,0,0),this._prevPaintRect.copy(r)):this._prevPaintRect=null},t.prototype.getPrevPaintRect=function(){return this._prevPaintRect},t.prototype.animateStyle=function(r){return this.animate(\"style\",r)},t.prototype.updateDuringAnimation=function(r){r===\"style\"?this.dirtyStyle():this.markRedraw()},t.prototype.attrKV=function(r,n){r!==\"style\"?e.prototype.attrKV.call(this,r,n):this.style?this.setStyle(n):this.useStyle(n)},t.prototype.setStyle=function(r,n){return typeof r==\"string\"?this.style[r]=n:Xe(this.style,r),this.dirtyStyle(),this},t.prototype.dirtyStyle=function(r){r||this.markRedraw(),this.__dirty|=yy,this._rect&&(this._rect=null)},t.prototype.dirty=function(){this.dirtyStyle()},t.prototype.styleChanged=function(){return!!(this.__dirty&yy)},t.prototype.styleUpdated=function(){this.__dirty&=~yy},t.prototype.createStyle=function(r){return Xx(Rp,r)},t.prototype.useStyle=function(r){r[rP]||(r=this.createStyle(r)),this.__inHover?this.__hoverStyle=r:this.style=r,this.dirtyStyle()},t.prototype.isStyleObject=function(r){return r[rP]},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(r,n,JK)},t.prototype._applyStateObj=function(r,n,a,i,o,l){e.prototype._applyStateObj.call(this,r,n,a,i,o,l);var s=!(n&&i),u;if(n&&n.style?o?i?u=n.style:(u=this._mergeStyle(this.createStyle(),a.style),this._mergeStyle(u,n.style)):(u=this._mergeStyle(this.createStyle(),i?this.style:a.style),this._mergeStyle(u,n.style)):s&&(u=a.style),u)if(o){var c=this.style;if(this.style=this.createStyle(s?{}:c),s)for(var d=Ur(c),f=0;f<d.length;f++){var h=d[f];h in u&&(u[h]=u[h],this.style[h]=c[h])}for(var p=Ur(u),f=0;f<p.length;f++){var h=p[f];this.style[h]=this.style[h]}this._transitionState(r,{style:u},l,this.getAnimationStyleProps())}else this.useStyle(u);for(var v=this.__inHover?pgt:JK,f=0;f<v.length;f++){var h=v[f];n&&n[h]!=null?this[h]=n[h]:s&&a[h]!=null&&(this[h]=a[h])}},t.prototype._mergeStates=function(r){for(var n=e.prototype._mergeStates.call(this,r),a,i=0;i<r.length;i++){var o=r[i];o.style&&(a=a||{},this._mergeStyle(a,o.style))}return a&&(n.style=a),n},t.prototype._mergeStyle=function(r,n){return Xe(r,n),r},t.prototype.getAnimationStyleProps=function(){return YD},t.initDefaultProps=function(){var r=t.prototype;r.type=\"displayable\",r.invisible=!1,r.z=0,r.z2=0,r.zlevel=0,r.culling=!1,r.cursor=\"pointer\",r.rectHover=!1,r.incremental=!1,r._rect=null,r.dirtyRectTolerance=0,r.__dirty=_l|yy}(),t}(WD),TT=new Ir(0,0,0,0),IT=new Ir(0,0,0,0);function mgt(e,t,r){return TT.copy(e.getBoundingRect()),e.transform&&TT.applyTransform(e.transform),IT.width=t,IT.height=r,!TT.intersect(IT)}var al=Math.min,il=Math.max,kT=Math.sin,RT=Math.cos,Eh=Math.PI*2,KF=oh(),YF=oh(),qF=oh();function qD(e,t,r){if(e.length!==0){for(var n=e[0],a=n[0],i=n[0],o=n[1],l=n[1],s=1;s<e.length;s++)n=e[s],a=al(a,n[0]),i=il(i,n[0]),o=al(o,n[1]),l=il(l,n[1]);t[0]=a,t[1]=o,r[0]=i,r[1]=l}}function ZK(e,t,r,n,a,i){a[0]=al(e,r),a[1]=al(t,n),i[0]=il(e,r),i[1]=il(t,n)}var QK=[],eY=[];function vgt(e,t,r,n,a,i,o,l,s,u){var c=Dhe,d=ii,f=c(e,r,a,o,QK);s[0]=1/0,s[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var h=0;h<f;h++){var p=d(e,r,a,o,QK[h]);s[0]=al(p,s[0]),u[0]=il(p,u[0])}f=c(t,n,i,l,eY);for(var h=0;h<f;h++){var v=d(t,n,i,l,eY[h]);s[1]=al(v,s[1]),u[1]=il(v,u[1])}s[0]=al(e,s[0]),u[0]=il(e,u[0]),s[0]=al(o,s[0]),u[0]=il(o,u[0]),s[1]=al(t,s[1]),u[1]=il(t,u[1]),s[1]=al(l,s[1]),u[1]=il(l,u[1])}function ggt(e,t,r,n,a,i,o,l){var s=_he,u=Fi,c=il(al(s(e,r,a),1),0),d=il(al(s(t,n,i),1),0),f=u(e,r,a,c),h=u(t,n,i,d);o[0]=al(e,a,f),o[1]=al(t,i,h),l[0]=il(e,a,f),l[1]=il(t,i,h)}function ygt(e,t,r,n,a,i,o,l,s){var u=zc,c=Hc,d=Math.abs(a-i);if(d%Eh<1e-4&&d>1e-4){l[0]=e-r,l[1]=t-n,s[0]=e+r,s[1]=t+n;return}if(KF[0]=RT(a)*r+e,KF[1]=kT(a)*n+t,YF[0]=RT(i)*r+e,YF[1]=kT(i)*n+t,u(l,KF,YF),c(s,KF,YF),a=a%Eh,a<0&&(a=a+Eh),i=i%Eh,i<0&&(i=i+Eh),a>i&&!o?i+=Eh:a<i&&o&&(a+=Eh),o){var f=i;i=a,a=f}for(var h=0;h<i;h+=Math.PI/2)h>a&&(qF[0]=RT(h)*r+e,qF[1]=kT(h)*n+t,u(l,qF,l),c(s,qF,s))}var Rn={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Dh=[],Ah=[],ku=[],Md=[],Ru=[],Mu=[],MT=Math.min,PT=Math.max,_h=Math.cos,Th=Math.sin,_c=Math.abs,nP=Math.PI,Gd=nP*2,OT=typeof Float32Array<\"u\",P1=[];function BT(e){var t=Math.round(e/nP*1e8)/1e8;return t%2*nP}function cN(e,t){var r=BT(e[0]);r<0&&(r+=Gd);var n=r-e[0],a=e[1];a+=n,!t&&a-r>=Gd?a=r+Gd:t&&r-a>=Gd?a=r-Gd:!t&&r>a?a=r+(Gd-BT(r-a)):t&&r<a&&(a=r-(Gd-BT(a-r))),e[0]=r,e[1]=a}var gc=function(){function e(t){this.dpr=1,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return e.prototype.increaseVersion=function(){this._version++},e.prototype.getVersion=function(){return this._version},e.prototype.setScale=function(t,r,n){n=n||0,n>0&&(this._ux=_c(n/M3/t)||0,this._uy=_c(n/M3/r)||0)},e.prototype.setDPR=function(t){this.dpr=t},e.prototype.setContext=function(t){this._ctx=t},e.prototype.getContext=function(){return this._ctx},e.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},e.prototype.reset=function(){this._saveData&&(this._len=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},e.prototype.moveTo=function(t,r){return this._drawPendingPt(),this.addData(Rn.M,t,r),this._ctx&&this._ctx.moveTo(t,r),this._x0=t,this._y0=r,this._xi=t,this._yi=r,this},e.prototype.lineTo=function(t,r){var n=_c(t-this._xi),a=_c(r-this._yi),i=n>this._ux||a>this._uy;if(this.addData(Rn.L,t,r),this._ctx&&i&&this._ctx.lineTo(t,r),i)this._xi=t,this._yi=r,this._pendingPtDist=0;else{var o=n*n+a*a;o>this._pendingPtDist&&(this._pendingPtX=t,this._pendingPtY=r,this._pendingPtDist=o)}return this},e.prototype.bezierCurveTo=function(t,r,n,a,i,o){return this._drawPendingPt(),this.addData(Rn.C,t,r,n,a,i,o),this._ctx&&this._ctx.bezierCurveTo(t,r,n,a,i,o),this._xi=i,this._yi=o,this},e.prototype.quadraticCurveTo=function(t,r,n,a){return this._drawPendingPt(),this.addData(Rn.Q,t,r,n,a),this._ctx&&this._ctx.quadraticCurveTo(t,r,n,a),this._xi=n,this._yi=a,this},e.prototype.arc=function(t,r,n,a,i,o){this._drawPendingPt(),P1[0]=a,P1[1]=i,cN(P1,o),a=P1[0],i=P1[1];var l=i-a;return this.addData(Rn.A,t,r,n,n,a,l,0,o?0:1),this._ctx&&this._ctx.arc(t,r,n,a,i,o),this._xi=_h(i)*n+t,this._yi=Th(i)*n+r,this},e.prototype.arcTo=function(t,r,n,a,i){return this._drawPendingPt(),this._ctx&&this._ctx.arcTo(t,r,n,a,i),this},e.prototype.rect=function(t,r,n,a){return this._drawPendingPt(),this._ctx&&this._ctx.rect(t,r,n,a),this.addData(Rn.R,t,r,n,a),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(Rn.Z);var t=this._ctx,r=this._x0,n=this._y0;return t&&t.closePath(),this._xi=r,this._yi=n,this},e.prototype.fill=function(t){t&&t.fill(),this.toStatic()},e.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},e.prototype.len=function(){return this._len},e.prototype.setData=function(t){var r=t.length;!(this.data&&this.data.length===r)&&OT&&(this.data=new Float32Array(r));for(var n=0;n<r;n++)this.data[n]=t[n];this._len=r},e.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var r=t.length,n=0,a=this._len,i=0;i<r;i++)n+=t[i].len();OT&&this.data instanceof Float32Array&&(this.data=new Float32Array(a+n));for(var i=0;i<r;i++)for(var o=t[i].data,l=0;l<o.length;l++)this.data[a++]=o[l];this._len=a},e.prototype.addData=function(t,r,n,a,i,o,l,s,u){if(this._saveData){var c=this.data;this._len+arguments.length>c.length&&(this._expandData(),c=this.data);for(var d=0;d<arguments.length;d++)c[this._len++]=arguments[d]}},e.prototype._drawPendingPt=function(){this._pendingPtDist>0&&(this._ctx&&this._ctx.lineTo(this._pendingPtX,this._pendingPtY),this._pendingPtDist=0)},e.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],r=0;r<this._len;r++)t[r]=this.data[r];this.data=t}},e.prototype.toStatic=function(){if(this._saveData){this._drawPendingPt();var t=this.data;t instanceof Array&&(t.length=this._len,OT&&this._len>11&&(this.data=new Float32Array(t)))}},e.prototype.getBoundingRect=function(){ku[0]=ku[1]=Ru[0]=Ru[1]=Number.MAX_VALUE,Md[0]=Md[1]=Mu[0]=Mu[1]=-Number.MAX_VALUE;var t=this.data,r=0,n=0,a=0,i=0,o;for(o=0;o<this._len;){var l=t[o++],s=o===1;switch(s&&(r=t[o],n=t[o+1],a=r,i=n),l){case Rn.M:r=a=t[o++],n=i=t[o++],Ru[0]=a,Ru[1]=i,Mu[0]=a,Mu[1]=i;break;case Rn.L:ZK(r,n,t[o],t[o+1],Ru,Mu),r=t[o++],n=t[o++];break;case Rn.C:vgt(r,n,t[o++],t[o++],t[o++],t[o++],t[o],t[o+1],Ru,Mu),r=t[o++],n=t[o++];break;case Rn.Q:ggt(r,n,t[o++],t[o++],t[o],t[o+1],Ru,Mu),r=t[o++],n=t[o++];break;case Rn.A:var u=t[o++],c=t[o++],d=t[o++],f=t[o++],h=t[o++],p=t[o++]+h;o+=1;var v=!t[o++];s&&(a=_h(h)*d+u,i=Th(h)*f+c),ygt(u,c,d,f,h,p,v,Ru,Mu),r=_h(p)*d+u,n=Th(p)*f+c;break;case Rn.R:a=r=t[o++],i=n=t[o++];var g=t[o++],y=t[o++];ZK(a,i,a+g,i+y,Ru,Mu);break;case Rn.Z:r=a,n=i;break}zc(ku,ku,Ru),Hc(Md,Md,Mu)}return o===0&&(ku[0]=ku[1]=Md[0]=Md[1]=0),new Ir(ku[0],ku[1],Md[0]-ku[0],Md[1]-ku[1])},e.prototype._calculateLength=function(){var t=this.data,r=this._len,n=this._ux,a=this._uy,i=0,o=0,l=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var u=this._pathSegLen,c=0,d=0,f=0;f<r;){var h=t[f++],p=f===1;p&&(i=t[f],o=t[f+1],l=i,s=o);var v=-1;switch(h){case Rn.M:i=l=t[f++],o=s=t[f++];break;case Rn.L:{var g=t[f++],y=t[f++],b=g-i,x=y-o;(_c(b)>n||_c(x)>a||f===r-1)&&(v=Math.sqrt(b*b+x*x),i=g,o=y);break}case Rn.C:{var F=t[f++],S=t[f++],g=t[f++],y=t[f++],E=t[f++],w=t[f++];v=Pvt(i,o,F,S,g,y,E,w,10),i=E,o=w;break}case Rn.Q:{var F=t[f++],S=t[f++],g=t[f++],y=t[f++];v=Bvt(i,o,F,S,g,y,10),i=g,o=y;break}case Rn.A:var D=t[f++],A=t[f++],_=t[f++],I=t[f++],M=t[f++],T=t[f++],k=T+M;f+=1,p&&(l=_h(M)*_+D,s=Th(M)*I+A),v=PT(_,I)*MT(Gd,Math.abs(T)),i=_h(k)*_+D,o=Th(k)*I+A;break;case Rn.R:{l=i=t[f++],s=o=t[f++];var R=t[f++],P=t[f++];v=R*2+P*2;break}case Rn.Z:{var b=l-i,x=s-o;v=Math.sqrt(b*b+x*x),i=l,o=s;break}}v>=0&&(u[d++]=v,c+=v)}return this._pathLen=c,c},e.prototype.rebuildPath=function(t,r){var n=this.data,a=this._ux,i=this._uy,o=this._len,l,s,u,c,d,f,h=r<1,p,v,g=0,y=0,b,x=0,F,S;if(!(h&&(this._pathSegLen||this._calculateLength(),p=this._pathSegLen,v=this._pathLen,b=r*v,!b)))e:for(var E=0;E<o;){var w=n[E++],D=E===1;switch(D&&(u=n[E],c=n[E+1],l=u,s=c),w!==Rn.L&&x>0&&(t.lineTo(F,S),x=0),w){case Rn.M:l=u=n[E++],s=c=n[E++],t.moveTo(u,c);break;case Rn.L:{d=n[E++],f=n[E++];var A=_c(d-u),_=_c(f-c);if(A>a||_>i){if(h){var I=p[y++];if(g+I>b){var M=(b-g)/I;t.lineTo(u*(1-M)+d*M,c*(1-M)+f*M);break e}g+=I}t.lineTo(d,f),u=d,c=f,x=0}else{var T=A*A+_*_;T>x&&(F=d,S=f,x=T)}break}case Rn.C:{var k=n[E++],R=n[E++],P=n[E++],B=n[E++],N=n[E++],O=n[E++];if(h){var I=p[y++];if(g+I>b){var M=(b-g)/I;Yf(u,k,P,N,M,Dh),Yf(c,R,B,O,M,Ah),t.bezierCurveTo(Dh[1],Ah[1],Dh[2],Ah[2],Dh[3],Ah[3]);break e}g+=I}t.bezierCurveTo(k,R,P,B,N,O),u=N,c=O;break}case Rn.Q:{var k=n[E++],R=n[E++],P=n[E++],B=n[E++];if(h){var I=p[y++];if(g+I>b){var M=(b-g)/I;S2(u,k,P,M,Dh),S2(c,R,B,M,Ah),t.quadraticCurveTo(Dh[1],Ah[1],Dh[2],Ah[2]);break e}g+=I}t.quadraticCurveTo(k,R,P,B),u=P,c=B;break}case Rn.A:var z=n[E++],W=n[E++],L=n[E++],j=n[E++],H=n[E++],V=n[E++],U=n[E++],Q=!n[E++],K=L>j?L:j,Y=_c(L-j)>.001,ee=H+V,J=!1;if(h){var I=p[y++];g+I>b&&(ee=H+V*(b-g)/I,J=!0),g+=I}if(Y&&t.ellipse?t.ellipse(z,W,L,j,U,H,ee,Q):t.arc(z,W,K,H,ee,Q),J)break e;D&&(l=_h(H)*L+z,s=Th(H)*j+W),u=_h(ee)*L+z,c=Th(ee)*j+W;break;case Rn.R:l=u=n[E],s=c=n[E+1],d=n[E++],f=n[E++];var X=n[E++],ce=n[E++];if(h){var I=p[y++];if(g+I>b){var oe=b-g;t.moveTo(d,f),t.lineTo(d+MT(oe,X),f),oe-=X,oe>0&&t.lineTo(d+X,f+MT(oe,ce)),oe-=ce,oe>0&&t.lineTo(d+PT(X-oe,0),f+ce),oe-=X,oe>0&&t.lineTo(d,f+PT(ce-oe,0));break e}g+=I}t.rect(d,f,X,ce);break;case Rn.Z:if(h){var I=p[y++];if(g+I>b){var M=(b-g)/I;t.lineTo(u*(1-M)+l*M,c*(1-M)+s*M);break e}g+=I}t.closePath(),u=l,c=s}}},e.prototype.clone=function(){var t=new e,r=this.data;return t.data=r.slice?r.slice():Array.prototype.slice.call(r),t._len=this._len,t},e.CMD=Rn,e.initDefaultProps=function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0}(),e}();function Xd(e,t,r,n,a,i,o){if(a===0)return!1;var l=a,s=0,u=e;if(o>t+l&&o>n+l||o<t-l&&o<n-l||i>e+l&&i>r+l||i<e-l&&i<r-l)return!1;if(e!==r)s=(t-n)/(e-r),u=(e*n-r*t)/(e-r);else return Math.abs(i-e)<=l/2;var c=s*i-o+u,d=c*c/(s*s+1);return d<=l/2*l/2}function bgt(e,t,r,n,a,i,o,l,s,u,c){if(s===0)return!1;var d=s;if(c>t+d&&c>n+d&&c>i+d&&c>l+d||c<t-d&&c<n-d&&c<i-d&&c<l-d||u>e+d&&u>r+d&&u>a+d&&u>o+d||u<e-d&&u<r-d&&u<a-d&&u<o-d)return!1;var f=Ahe(e,t,r,n,a,i,o,l,u,c,null);return f<=d/2}function cpe(e,t,r,n,a,i,o,l,s){if(o===0)return!1;var u=o;if(s>t+u&&s>n+u&&s>i+u||s<t-u&&s<n-u&&s<i-u||l>e+u&&l>r+u&&l>a+u||l<e-u&&l<r-u&&l<a-u)return!1;var c=The(e,t,r,n,a,i,l,s,null);return c<=u/2}var tY=Math.PI*2;function Pl(e){return e%=tY,e<0&&(e+=tY),e}var O1=Math.PI*2;function xgt(e,t,r,n,a,i,o,l,s){if(o===0)return!1;var u=o;l-=e,s-=t;var c=Math.sqrt(l*l+s*s);if(c-u>r||c+u<r)return!1;if(Math.abs(n-a)%O1<1e-4)return!0;if(i){var d=n;n=Pl(a),a=Pl(d)}else n=Pl(n),a=Pl(a);n>a&&(a+=O1);var f=Math.atan2(s,l);return f<0&&(f+=O1),f>=n&&f<=a||f+O1>=n&&f+O1<=a}function Pc(e,t,r,n,a,i){if(i>t&&i>n||i<t&&i<n||n===t)return 0;var o=(i-t)/(n-t),l=n<t?1:-1;(o===1||o===0)&&(l=n<t?.5:-.5);var s=o*(r-e)+e;return s===a?1/0:s>a?l:0}var Pd=gc.CMD,Ih=Math.PI*2,Cgt=1e-4;function Fgt(e,t){return Math.abs(e-t)<Cgt}var Po=[-1,-1,-1],ls=[-1,-1];function Sgt(){var e=ls[0];ls[0]=ls[1],ls[1]=e}function wgt(e,t,r,n,a,i,o,l,s,u){if(u>t&&u>n&&u>i&&u>l||u<t&&u<n&&u<i&&u<l)return 0;var c=T3(t,n,i,l,u,Po);if(c===0)return 0;for(var d=0,f=-1,h=void 0,p=void 0,v=0;v<c;v++){var g=Po[v],y=g===0||g===1?.5:1,b=ii(e,r,a,o,g);b<s||(f<0&&(f=Dhe(t,n,i,l,ls),ls[1]<ls[0]&&f>1&&Sgt(),h=ii(t,n,i,l,ls[0]),f>1&&(p=ii(t,n,i,l,ls[1]))),f===2?g<ls[0]?d+=h<t?y:-y:g<ls[1]?d+=p<h?y:-y:d+=l<p?y:-y:g<ls[0]?d+=h<t?y:-y:d+=l<h?y:-y)}return d}function Egt(e,t,r,n,a,i,o,l){if(l>t&&l>n&&l>i||l<t&&l<n&&l<i)return 0;var s=Ovt(t,n,i,l,Po);if(s===0)return 0;var u=_he(t,n,i);if(u>=0&&u<=1){for(var c=0,d=Fi(t,n,i,u),f=0;f<s;f++){var h=Po[f]===0||Po[f]===1?.5:1,p=Fi(e,r,a,Po[f]);p<o||(Po[f]<u?c+=d<t?h:-h:c+=i<d?h:-h)}return c}else{var h=Po[0]===0||Po[0]===1?.5:1,p=Fi(e,r,a,Po[0]);return p<o?0:i<t?h:-h}}function Dgt(e,t,r,n,a,i,o,l){if(l-=t,l>r||l<-r)return 0;var s=Math.sqrt(r*r-l*l);Po[0]=-s,Po[1]=s;var u=Math.abs(n-a);if(u<1e-4)return 0;if(u>=Ih-1e-4){n=0,a=Ih;var c=i?1:-1;return o>=Po[0]+e&&o<=Po[1]+e?c:0}if(n>a){var d=n;n=a,a=d}n<0&&(n+=Ih,a+=Ih);for(var f=0,h=0;h<2;h++){var p=Po[h];if(p+e>o){var v=Math.atan2(l,p),c=i?1:-1;v<0&&(v=Ih+v),(v>=n&&v<=a||v+Ih>=n&&v+Ih<=a)&&(v>Math.PI/2&&v<Math.PI*1.5&&(c=-c),f+=c)}}return f}function dpe(e,t,r,n,a){for(var i=e.data,o=e.len(),l=0,s=0,u=0,c=0,d=0,f,h,p=0;p<o;){var v=i[p++],g=p===1;switch(v===Pd.M&&p>1&&(r||(l+=Pc(s,u,c,d,n,a))),g&&(s=i[p],u=i[p+1],c=s,d=u),v){case Pd.M:c=i[p++],d=i[p++],s=c,u=d;break;case Pd.L:if(r){if(Xd(s,u,i[p],i[p+1],t,n,a))return!0}else l+=Pc(s,u,i[p],i[p+1],n,a)||0;s=i[p++],u=i[p++];break;case Pd.C:if(r){if(bgt(s,u,i[p++],i[p++],i[p++],i[p++],i[p],i[p+1],t,n,a))return!0}else l+=wgt(s,u,i[p++],i[p++],i[p++],i[p++],i[p],i[p+1],n,a)||0;s=i[p++],u=i[p++];break;case Pd.Q:if(r){if(cpe(s,u,i[p++],i[p++],i[p],i[p+1],t,n,a))return!0}else l+=Egt(s,u,i[p++],i[p++],i[p],i[p+1],n,a)||0;s=i[p++],u=i[p++];break;case Pd.A:var y=i[p++],b=i[p++],x=i[p++],F=i[p++],S=i[p++],E=i[p++];p+=1;var w=!!(1-i[p++]);f=Math.cos(S)*x+y,h=Math.sin(S)*F+b,g?(c=f,d=h):l+=Pc(s,u,f,h,n,a);var D=(n-y)*F/x+y;if(r){if(xgt(y,b,F,S,S+E,w,t,D,a))return!0}else l+=Dgt(y,b,F,S,S+E,w,D,a);s=Math.cos(S+E)*x+y,u=Math.sin(S+E)*F+b;break;case Pd.R:c=s=i[p++],d=u=i[p++];var A=i[p++],_=i[p++];if(f=c+A,h=d+_,r){if(Xd(c,d,f,d,t,n,a)||Xd(f,d,f,h,t,n,a)||Xd(f,h,c,h,t,n,a)||Xd(c,h,c,d,t,n,a))return!0}else l+=Pc(f,d,f,h,n,a),l+=Pc(c,h,c,d,n,a);break;case Pd.Z:if(r){if(Xd(s,u,c,d,t,n,a))return!0}else l+=Pc(s,u,c,d,n,a);s=c,u=d;break}}return!r&&!Fgt(u,d)&&(l+=Pc(s,u,c,d,n,a)||0),l!==0}function Agt(e,t,r){return dpe(e,0,!1,t,r)}function _gt(e,t,r,n){return dpe(e,t,!0,r,n)}var O3=rr({fill:\"#000\",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:\"butt\",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},Rp),Tgt={style:rr({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},YD.style)},NT=mc.concat([\"invisible\",\"culling\",\"z\",\"z2\",\"zlevel\",\"parent\"]),Vr=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.update=function(){var r=this;e.prototype.update.call(this);var n=this.style;if(n.decal){var a=this._decalEl=this._decalEl||new t;a.buildPath===t.prototype.buildPath&&(a.buildPath=function(s){r.buildPath(s,r.shape)}),a.silent=!0;var i=a.style;for(var o in n)i[o]!==n[o]&&(i[o]=n[o]);i.fill=n.fill?n.decal:null,i.decal=null,i.shadowColor=null,n.strokeFirst&&(i.stroke=null);for(var l=0;l<NT.length;++l)a[NT[l]]=this[NT[l]];a.__dirty|=_l}else this._decalEl&&(this._decalEl=null)},t.prototype.getDecalElement=function(){return this._decalEl},t.prototype._init=function(r){var n=Ur(r);this.shape=this.getDefaultShape();var a=this.getDefaultStyle();a&&this.useStyle(a);for(var i=0;i<n.length;i++){var o=n[i],l=r[o];o===\"style\"?this.style?Xe(this.style,l):this.useStyle(l):o===\"shape\"?Xe(this.shape,l):e.prototype.attrKV.call(this,o,l)}this.style||this.useStyle({})},t.prototype.getDefaultStyle=function(){return null},t.prototype.getDefaultShape=function(){return{}},t.prototype.canBeInsideText=function(){return this.hasFill()},t.prototype.getInsideTextFill=function(){var r=this.style.fill;if(r!==\"none\"){if(At(r)){var n=D2(r,0);return n>.5?YM:n>.2?h0t:qM}else if(r)return qM}return YM},t.prototype.getInsideTextStroke=function(r){var n=this.style.fill;if(At(n)){var a=this.__zr,i=!!(a&&a.isDarkMode()),o=D2(r,0)<KM;if(i===o)return n}},t.prototype.buildPath=function(r,n,a){},t.prototype.pathUpdated=function(){this.__dirty&=~Bv},t.prototype.getUpdatedPathProxy=function(r){return!this.path&&this.createPathProxy(),this.path.beginPath(),this.buildPath(this.path,this.shape,r),this.path},t.prototype.createPathProxy=function(){this.path=new gc(!1)},t.prototype.hasStroke=function(){var r=this.style,n=r.stroke;return!(n==null||n===\"none\"||!(r.lineWidth>0))},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!==\"none\"},t.prototype.getBoundingRect=function(){var r=this._rect,n=this.style,a=!r;if(a){var i=!1;this.path||(i=!0,this.createPathProxy());var o=this.path;(i||this.__dirty&Bv)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),r=o.getBoundingRect()}if(this._rect=r,this.hasStroke()&&this.path&&this.path.len()>0){var l=this._rectStroke||(this._rectStroke=r.clone());if(this.__dirty||a){l.copy(r);var s=n.strokeNoScale?this.getLineScale():1,u=n.lineWidth;if(!this.hasFill()){var c=this.strokeContainThreshold;u=Math.max(u,c??4)}s>1e-10&&(l.width+=u/s,l.height+=u/s,l.x-=u/s/2,l.y-=u/s/2)}return l}return r},t.prototype.contain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect(),o=this.style;if(r=a[0],n=a[1],i.contain(r,n)){var l=this.path;if(this.hasStroke()){var s=o.lineWidth,u=o.strokeNoScale?this.getLineScale():1;if(u>1e-10&&(this.hasFill()||(s=Math.max(s,this.strokeContainThreshold)),_gt(l,s/u,r,n)))return!0}if(this.hasFill())return Agt(l,r,n)}return!1},t.prototype.dirtyShape=function(){this.__dirty|=Bv,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},t.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},t.prototype.animateShape=function(r){return this.animate(\"shape\",r)},t.prototype.updateDuringAnimation=function(r){r===\"style\"?this.dirtyStyle():r===\"shape\"?this.dirtyShape():this.markRedraw()},t.prototype.attrKV=function(r,n){r===\"shape\"?this.setShape(n):e.prototype.attrKV.call(this,r,n)},t.prototype.setShape=function(r,n){var a=this.shape;return a||(a=this.shape={}),typeof r==\"string\"?a[r]=n:Xe(a,r),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&Bv)},t.prototype.createStyle=function(r){return Xx(O3,r)},t.prototype._innerSaveToNormal=function(r){e.prototype._innerSaveToNormal.call(this,r);var n=this._normalState;r.shape&&!n.shape&&(n.shape=Xe({},this.shape))},t.prototype._applyStateObj=function(r,n,a,i,o,l){e.prototype._applyStateObj.call(this,r,n,a,i,o,l);var s=!(n&&i),u;if(n&&n.shape?o?i?u=n.shape:(u=Xe({},a.shape),Xe(u,n.shape)):(u=Xe({},i?this.shape:a.shape),Xe(u,n.shape)):s&&(u=a.shape),u)if(o){this.shape=Xe({},this.shape);for(var c={},d=Ur(u),f=0;f<d.length;f++){var h=d[f];typeof u[h]==\"object\"?this.shape[h]=u[h]:c[h]=u[h]}this._transitionState(r,{shape:c},l)}else this.shape=u,this.dirtyShape()},t.prototype._mergeStates=function(r){for(var n=e.prototype._mergeStates.call(this,r),a,i=0;i<r.length;i++){var o=r[i];o.shape&&(a=a||{},this._mergeStyle(a,o.shape))}return a&&(n.shape=a),n},t.prototype.getAnimationStyleProps=function(){return Tgt},t.prototype.isZeroArea=function(){return!1},t.extend=function(r){var n=function(i){Re(o,i);function o(l){var s=i.call(this,l)||this;return r.init&&r.init.call(s,l),s}return o.prototype.getDefaultStyle=function(){return lr(r.style)},o.prototype.getDefaultShape=function(){return lr(r.shape)},o}(t);for(var a in r)typeof r[a]==\"function\"&&(n.prototype[a]=r[a]);return n},t.initDefaultProps=function(){var r=t.prototype;r.type=\"path\",r.strokeContainThreshold=5,r.segmentIgnoreThreshold=0,r.subPixelOptimize=!1,r.autoBatch=!1,r.__dirty=_l|yy|Bv}(),t}(As),Igt=rr({strokeFirst:!0,font:Kf,x:0,y:0,textAlign:\"left\",textBaseline:\"top\",miterLimit:2},O3),ig=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.hasStroke=function(){var r=this.style,n=r.stroke;return n!=null&&n!==\"none\"&&r.lineWidth>0},t.prototype.hasFill=function(){var r=this.style,n=r.fill;return n!=null&&n!==\"none\"},t.prototype.createStyle=function(r){return Xx(Igt,r)},t.prototype.setBoundingRect=function(r){this._rect=r},t.prototype.getBoundingRect=function(){var r=this.style;if(!this._rect){var n=r.text;n!=null?n+=\"\":n=\"\";var a=Qx(n,r.font,r.textAlign,r.textBaseline);if(a.x+=r.x||0,a.y+=r.y||0,this.hasStroke()){var i=r.lineWidth;a.x-=i/2,a.y-=i/2,a.width+=i,a.height+=i}this._rect=a}return this._rect},t.initDefaultProps=function(){var r=t.prototype;r.dirtyRectTolerance=10}(),t}(As);ig.prototype.type=\"tspan\";var kgt=rr({x:0,y:0},Rp),Rgt={style:rr({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},YD.style)};function Mgt(e){return!!(e&&typeof e!=\"string\"&&e.width&&e.height)}var yi=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.createStyle=function(r){return Xx(kgt,r)},t.prototype._getSize=function(r){var n=this.style,a=n[r];if(a!=null)return a;var i=Mgt(n.image)?n.image:this.__image;if(!i)return 0;var o=r===\"width\"?\"height\":\"width\",l=n[o];return l==null?i[r]:i[r]/i[o]*l},t.prototype.getWidth=function(){return this._getSize(\"width\")},t.prototype.getHeight=function(){return this._getSize(\"height\")},t.prototype.getAnimationStyleProps=function(){return Rgt},t.prototype.getBoundingRect=function(){var r=this.style;return this._rect||(this._rect=new Ir(r.x||0,r.y||0,this.getWidth(),this.getHeight())),this._rect},t}(As);yi.prototype.type=\"image\";function Pgt(e,t){var r=t.x,n=t.y,a=t.width,i=t.height,o=t.r,l,s,u,c;a<0&&(r=r+a,a=-a),i<0&&(n=n+i,i=-i),typeof o==\"number\"?l=s=u=c=o:o instanceof Array?o.length===1?l=s=u=c=o[0]:o.length===2?(l=u=o[0],s=c=o[1]):o.length===3?(l=o[0],s=c=o[1],u=o[2]):(l=o[0],s=o[1],u=o[2],c=o[3]):l=s=u=c=0;var d;l+s>a&&(d=l+s,l*=a/d,s*=a/d),u+c>a&&(d=u+c,u*=a/d,c*=a/d),s+u>i&&(d=s+u,s*=i/d,u*=i/d),l+c>i&&(d=l+c,l*=i/d,c*=i/d),e.moveTo(r+l,n),e.lineTo(r+a-s,n),s!==0&&e.arc(r+a-s,n+s,s,-Math.PI/2,0),e.lineTo(r+a,n+i-u),u!==0&&e.arc(r+a-u,n+i-u,u,0,Math.PI/2),e.lineTo(r+c,n+i),c!==0&&e.arc(r+c,n+i-c,c,Math.PI/2,Math.PI),e.lineTo(r,n+l),l!==0&&e.arc(r+l,n+l,l,Math.PI,Math.PI*1.5)}var o0=Math.round;function fpe(e,t,r){if(t){var n=t.x1,a=t.x2,i=t.y1,o=t.y2;e.x1=n,e.x2=a,e.y1=i,e.y2=o;var l=r&&r.lineWidth;return l&&(o0(n*2)===o0(a*2)&&(e.x1=e.x2=hp(n,l,!0)),o0(i*2)===o0(o*2)&&(e.y1=e.y2=hp(i,l,!0))),e}}function hpe(e,t,r){if(t){var n=t.x,a=t.y,i=t.width,o=t.height;e.x=n,e.y=a,e.width=i,e.height=o;var l=r&&r.lineWidth;return l&&(e.x=hp(n,l,!0),e.y=hp(a,l,!0),e.width=Math.max(hp(n+i,l,!1)-e.x,i===0?0:1),e.height=Math.max(hp(a+o,l,!1)-e.y,o===0?0:1)),e}}function hp(e,t,r){if(!t)return e;var n=o0(e*2);return(n+o0(t))%2===0?n/2:(n+(r?1:-1))/2}var Ogt=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),Bgt={},Zr=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new Ogt},t.prototype.buildPath=function(r,n){var a,i,o,l;if(this.subPixelOptimize){var s=hpe(Bgt,n,this.style);a=s.x,i=s.y,o=s.width,l=s.height,s.r=n.r,n=s}else a=n.x,i=n.y,o=n.width,l=n.height;n.r?Pgt(r,n):r.rect(a,i,o,l)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(Vr);Zr.prototype.type=\"rect\";var rY={fill:\"#000\"},nY=2,Ngt={style:rr({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},YD.style)},Jr=function(e){Re(t,e);function t(r){var n=e.call(this)||this;return n.type=\"text\",n._children=[],n._defaultStyle=rY,n.attr(r),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.update=function(){e.prototype.update.call(this),this.styleChanged()&&this._updateSubTexts();for(var r=0;r<this._children.length;r++){var n=this._children[r];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}},t.prototype.updateTransform=function(){var r=this.innerTransformable;r?(r.updateTransform(),r.transform&&(this.transform=r.transform)):e.prototype.updateTransform.call(this)},t.prototype.getLocalTransform=function(r){var n=this.innerTransformable;return n?n.getLocalTransform(r):e.prototype.getLocalTransform.call(this,r)},t.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),e.prototype.getComputedTransform.call(this)},t.prototype._updateSubTexts=function(){this._childCursor=0,jgt(this.style),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},t.prototype.addSelfToZr=function(r){e.prototype.addSelfToZr.call(this,r);for(var n=0;n<this._children.length;n++)this._children[n].__zr=r},t.prototype.removeSelfFromZr=function(r){e.prototype.removeSelfFromZr.call(this,r);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},t.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var r=new Ir(0,0,0,0),n=this._children,a=[],i=null,o=0;o<n.length;o++){var l=n[o],s=l.getBoundingRect(),u=l.getLocalTransform(a);u?(r.copy(s),r.applyTransform(u),i=i||r.clone(),i.union(r)):(i=i||s.clone(),i.union(s))}this._rect=i||r}return this._rect},t.prototype.setDefaultTextStyle=function(r){this._defaultStyle=r||rY},t.prototype.setTextContent=function(r){},t.prototype._mergeStyle=function(r,n){if(!n)return r;var a=n.rich,i=r.rich||a&&{};return Xe(r,n),a&&i?(this._mergeRich(i,a),r.rich=i):i&&(r.rich=i),r},t.prototype._mergeRich=function(r,n){for(var a=Ur(n),i=0;i<a.length;i++){var o=a[i];r[o]=r[o]||{},Xe(r[o],n[o])}},t.prototype.getAnimationStyleProps=function(){return Ngt},t.prototype._getOrCreateChild=function(r){var n=this._children[this._childCursor];return(!n||!(n instanceof r))&&(n=new r),this._children[this._childCursor++]=n,n.__zr=this.__zr,n.parent=this,n},t.prototype._updatePlainTexts=function(){var r=this.style,n=r.font||Kf,a=r.padding,i=cY(r),o=lgt(i,r),l=$T(r),s=!!r.backgroundColor,u=o.outerHeight,c=o.outerWidth,d=o.contentWidth,f=o.lines,h=o.lineHeight,p=this._defaultStyle;this.isTruncated=!!o.isTruncated;var v=r.x||0,g=r.y||0,y=r.align||p.align||\"left\",b=r.verticalAlign||p.verticalAlign||\"top\",x=v,F=Nv(g,o.contentHeight,b);if(l||a){var S=xy(v,c,y),E=Nv(g,u,b);l&&this._renderBackground(r,r,S,E,c,u)}F+=h/2,a&&(x=uY(v,y,a),b===\"top\"?F+=a[0]:b===\"bottom\"&&(F-=a[2]));for(var w=0,D=!1,A=sY(\"fill\"in r?r.fill:(D=!0,p.fill)),_=lY(\"stroke\"in r?r.stroke:!s&&(!p.autoStroke||D)?(w=nY,p.stroke):null),I=r.textShadowBlur>0,M=r.width!=null&&(r.overflow===\"truncate\"||r.overflow===\"break\"||r.overflow===\"breakAll\"),T=o.calculatedLineHeight,k=0;k<f.length;k++){var R=this._getOrCreateChild(ig),P=R.createStyle();R.useStyle(P),P.text=f[k],P.x=x,P.y=F,P.textAlign=y,P.textBaseline=\"middle\",P.opacity=r.opacity,P.strokeFirst=!0,I&&(P.shadowBlur=r.textShadowBlur||0,P.shadowColor=r.textShadowColor||\"transparent\",P.shadowOffsetX=r.textShadowOffsetX||0,P.shadowOffsetY=r.textShadowOffsetY||0),P.stroke=_,P.fill=A,_&&(P.lineWidth=r.lineWidth||w,P.lineDash=r.lineDash,P.lineDashOffset=r.lineDashOffset||0),P.font=n,iY(P,r),F+=h,M&&R.setBoundingRect(new Ir(xy(P.x,d,P.textAlign),Nv(P.y,T,P.textBaseline),d,T))}},t.prototype._updateRichTexts=function(){var r=this.style,n=cY(r),a=cgt(n,r),i=a.width,o=a.outerWidth,l=a.outerHeight,s=r.padding,u=r.x||0,c=r.y||0,d=this._defaultStyle,f=r.align||d.align,h=r.verticalAlign||d.verticalAlign;this.isTruncated=!!a.isTruncated;var p=xy(u,o,f),v=Nv(c,l,h),g=p,y=v;s&&(g+=s[3],y+=s[0]);var b=g+i;$T(r)&&this._renderBackground(r,r,p,v,o,l);for(var x=!!r.backgroundColor,F=0;F<a.lines.length;F++){for(var S=a.lines[F],E=S.tokens,w=E.length,D=S.lineHeight,A=S.width,_=0,I=g,M=b,T=w-1,k=void 0;_<w&&(k=E[_],!k.align||k.align===\"left\");)this._placeToken(k,r,D,y,I,\"left\",x),A-=k.width,I+=k.width,_++;for(;T>=0&&(k=E[T],k.align===\"right\");)this._placeToken(k,r,D,y,M,\"right\",x),A-=k.width,M-=k.width,T--;for(I+=(i-(I-g)-(b-M)-A)/2;_<=T;)k=E[_],this._placeToken(k,r,D,y,I+k.width/2,\"center\",x),I+=k.width,_++;y+=D}},t.prototype._placeToken=function(r,n,a,i,o,l,s){var u=n.rich[r.styleName]||{};u.text=r.text;var c=r.verticalAlign,d=i+a/2;c===\"top\"?d=i+r.height/2:c===\"bottom\"&&(d=i+a-r.height/2);var f=!r.isLineHolder&&$T(u);f&&this._renderBackground(u,n,l===\"right\"?o-r.width:l===\"center\"?o-r.width/2:o,d-r.height/2,r.width,r.height);var h=!!u.backgroundColor,p=r.textPadding;p&&(o=uY(o,l,p),d-=r.height/2-p[0]-r.innerHeight/2);var v=this._getOrCreateChild(ig),g=v.createStyle();v.useStyle(g);var y=this._defaultStyle,b=!1,x=0,F=sY(\"fill\"in u?u.fill:\"fill\"in n?n.fill:(b=!0,y.fill)),S=lY(\"stroke\"in u?u.stroke:\"stroke\"in n?n.stroke:!h&&!s&&(!y.autoStroke||b)?(x=nY,y.stroke):null),E=u.textShadowBlur>0||n.textShadowBlur>0;g.text=r.text,g.x=o,g.y=d,E&&(g.shadowBlur=u.textShadowBlur||n.textShadowBlur||0,g.shadowColor=u.textShadowColor||n.textShadowColor||\"transparent\",g.shadowOffsetX=u.textShadowOffsetX||n.textShadowOffsetX||0,g.shadowOffsetY=u.textShadowOffsetY||n.textShadowOffsetY||0),g.textAlign=l,g.textBaseline=\"middle\",g.font=r.font||Kf,g.opacity=cu(u.opacity,n.opacity,1),iY(g,u),S&&(g.lineWidth=cu(u.lineWidth,n.lineWidth,x),g.lineDash=Fr(u.lineDash,n.lineDash),g.lineDashOffset=n.lineDashOffset||0,g.stroke=S),F&&(g.fill=F);var w=r.contentWidth,D=r.contentHeight;v.setBoundingRect(new Ir(xy(g.x,w,g.textAlign),Nv(g.y,D,g.textBaseline),w,D))},t.prototype._renderBackground=function(r,n,a,i,o,l){var s=r.backgroundColor,u=r.borderWidth,c=r.borderColor,d=s&&s.image,f=s&&!d,h=r.borderRadius,p=this,v,g;if(f||r.lineHeight||u&&c){v=this._getOrCreateChild(Zr),v.useStyle(v.createStyle()),v.style.fill=null;var y=v.shape;y.x=a,y.y=i,y.width=o,y.height=l,y.r=h,v.dirtyShape()}if(f){var b=v.style;b.fill=s||null,b.fillOpacity=Fr(r.fillOpacity,1)}else if(d){g=this._getOrCreateChild(yi),g.onload=function(){p.dirtyStyle()};var x=g.style;x.image=s.image,x.x=a,x.y=i,x.width=o,x.height=l}if(u&&c){var b=v.style;b.lineWidth=u,b.stroke=c,b.strokeOpacity=Fr(r.strokeOpacity,1),b.lineDash=r.borderDash,b.lineDashOffset=r.borderDashOffset||0,v.strokeContainThreshold=0,v.hasFill()&&v.hasStroke()&&(b.strokeFirst=!0,b.lineWidth*=2)}var F=(v||g).style;F.shadowBlur=r.shadowBlur||0,F.shadowColor=r.shadowColor||\"transparent\",F.shadowOffsetX=r.shadowOffsetX||0,F.shadowOffsetY=r.shadowOffsetY||0,F.opacity=cu(r.opacity,n.opacity,1)},t.makeFont=function(r){var n=\"\";return mpe(r)&&(n=[r.fontStyle,r.fontWeight,ppe(r.fontSize),r.fontFamily||\"sans-serif\"].join(\" \")),n&&vs(n)||r.textFont||r.font},t}(As),$gt={left:!0,right:1,center:1},Lgt={top:1,bottom:1,middle:1},aY=[\"fontStyle\",\"fontWeight\",\"fontSize\",\"fontFamily\"];function ppe(e){return typeof e==\"string\"&&(e.indexOf(\"px\")!==-1||e.indexOf(\"rem\")!==-1||e.indexOf(\"em\")!==-1)?e:isNaN(+e)?WB+\"px\":e+\"px\"}function iY(e,t){for(var r=0;r<aY.length;r++){var n=aY[r],a=t[n];a!=null&&(e[n]=a)}}function mpe(e){return e.fontSize!=null||e.fontFamily||e.fontWeight}function jgt(e){return oY(e),q(e.rich,oY),e}function oY(e){if(e){e.font=Jr.makeFont(e);var t=e.align;t===\"middle\"&&(t=\"center\"),e.align=t==null||$gt[t]?t:\"left\";var r=e.verticalAlign;r===\"center\"&&(r=\"middle\"),e.verticalAlign=r==null||Lgt[r]?r:\"top\";var n=e.padding;n&&(e.padding=LD(e.padding))}}function lY(e,t){return e==null||t<=0||e===\"transparent\"||e===\"none\"?null:e.image||e.colorStops?\"#000\":e}function sY(e){return e==null||e===\"none\"?null:e.image||e.colorStops?\"#000\":e}function uY(e,t,r){return t===\"right\"?e-r[1]:t===\"center\"?e+r[3]/2-r[1]/2:e+r[3]}function cY(e){var t=e.text;return t!=null&&(t+=\"\"),t}function $T(e){return!!(e.backgroundColor||e.lineHeight||e.borderWidth&&e.borderColor)}var br=rn(),aP=function(e,t,r,n){if(n){var a=br(n);a.dataIndex=r,a.dataType=t,a.seriesIndex=e,a.ssrType=\"chart\",n.type===\"group\"&&n.traverse(function(i){var o=br(i);o.seriesIndex=e,o.dataIndex=r,o.dataType=t,o.ssrType=\"chart\"})}},dY=1,fY={},vpe=rn(),dN=rn(),fN=0,tC=1,XD=2,Ko=[\"emphasis\",\"blur\",\"select\"],T2=[\"normal\",\"emphasis\",\"blur\",\"select\"],Gg=10,zgt=9,Mp=\"highlight\",Rw=\"downplay\",pb=\"select\",Mw=\"unselect\",mb=\"toggleSelect\";function hv(e){return e!=null&&e!==\"none\"}function JD(e,t,r){e.onHoverStateChange&&(e.hoverState||0)!==r&&e.onHoverStateChange(t),e.hoverState=r}function gpe(e){JD(e,\"emphasis\",XD)}function ype(e){e.hoverState===XD&&JD(e,\"normal\",fN)}function hN(e){JD(e,\"blur\",tC)}function bpe(e){e.hoverState===tC&&JD(e,\"normal\",fN)}function Hgt(e){e.selected=!0}function Vgt(e){e.selected=!1}function hY(e,t,r){t(e,r)}function Ed(e,t,r){hY(e,t,r),e.isGroup&&e.traverse(function(n){hY(n,t,r)})}function B3(e,t){switch(t){case\"emphasis\":e.hoverState=XD;break;case\"normal\":e.hoverState=fN;break;case\"blur\":e.hoverState=tC;break;case\"select\":e.selected=!0}}function Wgt(e,t,r,n){for(var a=e.style,i={},o=0;o<t.length;o++){var l=t[o],s=a[l];i[l]=s??(n&&n[l])}for(var o=0;o<e.animators.length;o++){var u=e.animators[o];u.__fromStateTransition&&u.__fromStateTransition.indexOf(r)<0&&u.targetName===\"style\"&&u.saveTo(i,t)}return i}function Ggt(e,t,r,n){var a=r&&Mr(r,\"select\")>=0,i=!1;if(e instanceof Vr){var o=vpe(e),l=a&&o.selectFill||o.normalFill,s=a&&o.selectStroke||o.normalStroke;if(hv(l)||hv(s)){n=n||{};var u=n.style||{};u.fill===\"inherit\"?(i=!0,n=Xe({},n),u=Xe({},u),u.fill=l):!hv(u.fill)&&hv(l)?(i=!0,n=Xe({},n),u=Xe({},u),u.fill=k3(l)):!hv(u.stroke)&&hv(s)&&(i||(n=Xe({},n),u=Xe({},u)),u.stroke=k3(s)),n.style=u}}if(n&&n.z2==null){i||(n=Xe({},n));var c=e.z2EmphasisLift;n.z2=e.z2+(c??Gg)}return n}function Ugt(e,t,r){if(r&&r.z2==null){r=Xe({},r);var n=e.z2SelectLift;r.z2=e.z2+(n??zgt)}return r}function Kgt(e,t,r){var n=Mr(e.currentStates,t)>=0,a=e.style.opacity,i=n?null:Wgt(e,[\"opacity\"],t,{opacity:1});r=r||{};var o=r.style||{};return o.opacity==null&&(r=Xe({},r),o=Xe({opacity:n?a:i.opacity*.1},o),r.style=o),r}function LT(e,t){var r=this.states[e];if(this.style){if(e===\"emphasis\")return Ggt(this,e,t,r);if(e===\"blur\")return Kgt(this,e,r);if(e===\"select\")return Ugt(this,e,r)}return r}function om(e){e.stateProxy=LT;var t=e.getTextContent(),r=e.getTextGuideLine();t&&(t.stateProxy=LT),r&&(r.stateProxy=LT)}function pY(e,t){!Spe(e,t)&&!e.__highByOuter&&Ed(e,gpe)}function mY(e,t){!Spe(e,t)&&!e.__highByOuter&&Ed(e,ype)}function fd(e,t){e.__highByOuter|=1<<(t||0),Ed(e,gpe)}function hd(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Ed(e,ype)}function xpe(e){Ed(e,hN)}function pN(e){Ed(e,bpe)}function Cpe(e){Ed(e,Hgt)}function Fpe(e){Ed(e,Vgt)}function Spe(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function wpe(e){var t=e.getModel(),r=[],n=[];t.eachComponent(function(a,i){var o=dN(i),l=a===\"series\",s=l?e.getViewOfSeriesModel(i):e.getViewOfComponentModel(i);!l&&n.push(s),o.isBlured&&(s.group.traverse(function(u){bpe(u)}),l&&r.push(i)),o.isBlured=!1}),q(n,function(a){a&&a.toggleBlurSeries&&a.toggleBlurSeries(r,!1,t)})}function iP(e,t,r,n){var a=n.getModel();r=r||\"coordinateSystem\";function i(u,c){for(var d=0;d<c.length;d++){var f=u.getItemGraphicEl(c[d]);f&&pN(f)}}if(e!=null&&!(!t||t===\"none\")){var o=a.getSeriesByIndex(e),l=o.coordinateSystem;l&&l.master&&(l=l.master);var s=[];a.eachSeries(function(u){var c=o===u,d=u.coordinateSystem;d&&d.master&&(d=d.master);var f=d&&l?d===l:c;if(!(r===\"series\"&&!c||r===\"coordinateSystem\"&&!f||t===\"series\"&&c)){var h=n.getViewOfSeriesModel(u);if(h.group.traverse(function(g){g.__highByOuter&&c&&t===\"self\"||hN(g)}),Yi(t))i(u.getData(),t);else if(ir(t))for(var p=Ur(t),v=0;v<p.length;v++)i(u.getData(p[v]),t[p[v]]);s.push(u),dN(u).isBlured=!0}}),a.eachComponent(function(u,c){if(u!==\"series\"){var d=n.getViewOfComponentModel(c);d&&d.toggleBlurSeries&&d.toggleBlurSeries(s,!0,a)}})}}function oP(e,t,r){if(!(e==null||t==null)){var n=r.getModel().getComponent(e,t);if(n){dN(n).isBlured=!0;var a=r.getViewOfComponentModel(n);!a||!a.focusBlurEnabled||a.group.traverse(function(i){hN(i)})}}}function Ygt(e,t,r){var n=e.seriesIndex,a=e.getData(t.dataType);if(a){var i=am(a,t);i=(nt(i)?i[0]:i)||0;var o=a.getItemGraphicEl(i);if(!o)for(var l=a.count(),s=0;!o&&s<l;)o=a.getItemGraphicEl(s++);if(o){var u=br(o);iP(n,u.focus,u.blurScope,r)}else{var c=e.get([\"emphasis\",\"focus\"]),d=e.get([\"emphasis\",\"blurScope\"]);c!=null&&iP(n,c,d,r)}}}function mN(e,t,r,n){var a={focusSelf:!1,dispatchers:null};if(e==null||e===\"series\"||t==null||r==null)return a;var i=n.getModel().getComponent(e,t);if(!i)return a;var o=n.getViewOfComponentModel(i);if(!o||!o.findHighDownDispatchers)return a;for(var l=o.findHighDownDispatchers(r),s,u=0;u<l.length;u++)if(br(l[u]).focus===\"self\"){s=!0;break}return{focusSelf:s,dispatchers:l}}function qgt(e,t,r){var n=br(e),a=mN(n.componentMainType,n.componentIndex,n.componentHighDownName,r),i=a.dispatchers,o=a.focusSelf;i?(o&&oP(n.componentMainType,n.componentIndex,r),q(i,function(l){return pY(l,t)})):(iP(n.seriesIndex,n.focus,n.blurScope,r),n.focus===\"self\"&&oP(n.componentMainType,n.componentIndex,r),pY(e,t))}function Xgt(e,t,r){wpe(r);var n=br(e),a=mN(n.componentMainType,n.componentIndex,n.componentHighDownName,r).dispatchers;a?q(a,function(i){return mY(i,t)}):mY(e,t)}function Jgt(e,t,r){if(sP(t)){var n=t.dataType,a=e.getData(n),i=am(a,t);nt(i)||(i=[i]),e[t.type===mb?\"toggleSelect\":t.type===pb?\"select\":\"unselect\"](i,n)}}function vY(e){var t=e.getAllData();q(t,function(r){var n=r.data,a=r.type;n.eachItemGraphicEl(function(i,o){e.isSelected(o,a)?Cpe(i):Fpe(i)})})}function Zgt(e){var t=[];return e.eachSeries(function(r){var n=r.getAllData();q(n,function(a){a.data;var i=a.type,o=r.getSelectedDataIndices();if(o.length>0){var l={dataIndex:o,seriesIndex:r.seriesIndex};i!=null&&(l.dataType=i),t.push(l)}})}),t}function If(e,t,r){pp(e,!0),Ed(e,om),lP(e,t,r)}function Qgt(e){pp(e,!1)}function sa(e,t,r,n){n?Qgt(e):If(e,t,r)}function lP(e,t,r){var n=br(e);t!=null?(n.focus=t,n.blurScope=r):n.focus&&(n.focus=null)}var gY=[\"emphasis\",\"blur\",\"select\"],e1t={itemStyle:\"getItemStyle\",lineStyle:\"getLineStyle\",areaStyle:\"getAreaStyle\"};function qi(e,t,r,n){r=r||\"itemStyle\";for(var a=0;a<gY.length;a++){var i=gY[a],o=t.getModel([i,r]),l=e.ensureState(i);l.style=n?n(o):o[e1t[r]]()}}function pp(e,t){var r=t===!1,n=e;e.highDownSilentOnTouch&&(n.__highDownSilentOnTouch=e.highDownSilentOnTouch),(!r||n.__highDownDispatcher)&&(n.__highByOuter=n.__highByOuter||0,n.__highDownDispatcher=!r)}function I2(e){return!!(e&&e.__highDownDispatcher)}function t1t(e,t,r){var n=br(e);n.componentMainType=t.mainType,n.componentIndex=t.componentIndex,n.componentHighDownName=r}function r1t(e){var t=fY[e];return t==null&&dY<=32&&(t=fY[e]=dY++),t}function sP(e){var t=e.type;return t===pb||t===Mw||t===mb}function yY(e){var t=e.type;return t===Mp||t===Rw}function n1t(e){var t=vpe(e);t.normalFill=e.style.fill,t.normalStroke=e.style.stroke;var r=e.states.select||{};t.selectFill=r.style&&r.style.fill||null,t.selectStroke=r.style&&r.style.stroke||null}var pv=gc.CMD,a1t=[[],[],[]],bY=Math.sqrt,i1t=Math.atan2;function Epe(e,t){if(t){var r=e.data,n=e.len(),a,i,o,l,s,u,c=pv.M,d=pv.C,f=pv.L,h=pv.R,p=pv.A,v=pv.Q;for(o=0,l=0;o<n;){switch(a=r[o++],l=o,i=0,a){case c:i=1;break;case f:i=1;break;case d:i=3;break;case v:i=2;break;case p:var g=t[4],y=t[5],b=bY(t[0]*t[0]+t[1]*t[1]),x=bY(t[2]*t[2]+t[3]*t[3]),F=i1t(-t[1]/x,t[0]/b);r[o]*=b,r[o++]+=g,r[o]*=x,r[o++]+=y,r[o++]*=b,r[o++]*=x,r[o++]+=F,r[o++]+=F,o+=2,l=o;break;case h:u[0]=r[o++],u[1]=r[o++],Ii(u,u,t),r[l++]=u[0],r[l++]=u[1],u[0]+=r[o++],u[1]+=r[o++],Ii(u,u,t),r[l++]=u[0],r[l++]=u[1]}for(s=0;s<i;s++){var S=a1t[s];S[0]=r[o++],S[1]=r[o++],Ii(S,S,t),r[l++]=S[0],r[l++]=S[1]}}e.increaseVersion()}}var jT=Math.sqrt,XF=Math.sin,JF=Math.cos,B1=Math.PI;function xY(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])}function uP(e,t){return(e[0]*t[0]+e[1]*t[1])/(xY(e)*xY(t))}function CY(e,t){return(e[0]*t[1]<e[1]*t[0]?-1:1)*Math.acos(uP(e,t))}function FY(e,t,r,n,a,i,o,l,s,u,c){var d=s*(B1/180),f=JF(d)*(e-r)/2+XF(d)*(t-n)/2,h=-1*XF(d)*(e-r)/2+JF(d)*(t-n)/2,p=f*f/(o*o)+h*h/(l*l);p>1&&(o*=jT(p),l*=jT(p));var v=(a===i?-1:1)*jT((o*o*(l*l)-o*o*(h*h)-l*l*(f*f))/(o*o*(h*h)+l*l*(f*f)))||0,g=v*o*h/l,y=v*-l*f/o,b=(e+r)/2+JF(d)*g-XF(d)*y,x=(t+n)/2+XF(d)*g+JF(d)*y,F=CY([1,0],[(f-g)/o,(h-y)/l]),S=[(f-g)/o,(h-y)/l],E=[(-1*f-g)/o,(-1*h-y)/l],w=CY(S,E);if(uP(S,E)<=-1&&(w=B1),uP(S,E)>=1&&(w=0),w<0){var D=Math.round(w/B1*1e6)/1e6;w=B1*2+D%2*B1}c.addData(u,b,x,o,l,F,w,d,i)}var o1t=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig,l1t=/-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;function s1t(e){var t=new gc;if(!e)return t;var r=0,n=0,a=r,i=n,o,l=gc.CMD,s=e.match(o1t);if(!s)return t;for(var u=0;u<s.length;u++){for(var c=s[u],d=c.charAt(0),f=void 0,h=c.match(l1t)||[],p=h.length,v=0;v<p;v++)h[v]=parseFloat(h[v]);for(var g=0;g<p;){var y=void 0,b=void 0,x=void 0,F=void 0,S=void 0,E=void 0,w=void 0,D=r,A=n,_=void 0,I=void 0;switch(d){case\"l\":r+=h[g++],n+=h[g++],f=l.L,t.addData(f,r,n);break;case\"L\":r=h[g++],n=h[g++],f=l.L,t.addData(f,r,n);break;case\"m\":r+=h[g++],n+=h[g++],f=l.M,t.addData(f,r,n),a=r,i=n,d=\"l\";break;case\"M\":r=h[g++],n=h[g++],f=l.M,t.addData(f,r,n),a=r,i=n,d=\"L\";break;case\"h\":r+=h[g++],f=l.L,t.addData(f,r,n);break;case\"H\":r=h[g++],f=l.L,t.addData(f,r,n);break;case\"v\":n+=h[g++],f=l.L,t.addData(f,r,n);break;case\"V\":n=h[g++],f=l.L,t.addData(f,r,n);break;case\"C\":f=l.C,t.addData(f,h[g++],h[g++],h[g++],h[g++],h[g++],h[g++]),r=h[g-2],n=h[g-1];break;case\"c\":f=l.C,t.addData(f,h[g++]+r,h[g++]+n,h[g++]+r,h[g++]+n,h[g++]+r,h[g++]+n),r+=h[g-2],n+=h[g-1];break;case\"S\":y=r,b=n,_=t.len(),I=t.data,o===l.C&&(y+=r-I[_-4],b+=n-I[_-3]),f=l.C,D=h[g++],A=h[g++],r=h[g++],n=h[g++],t.addData(f,y,b,D,A,r,n);break;case\"s\":y=r,b=n,_=t.len(),I=t.data,o===l.C&&(y+=r-I[_-4],b+=n-I[_-3]),f=l.C,D=r+h[g++],A=n+h[g++],r+=h[g++],n+=h[g++],t.addData(f,y,b,D,A,r,n);break;case\"Q\":D=h[g++],A=h[g++],r=h[g++],n=h[g++],f=l.Q,t.addData(f,D,A,r,n);break;case\"q\":D=h[g++]+r,A=h[g++]+n,r+=h[g++],n+=h[g++],f=l.Q,t.addData(f,D,A,r,n);break;case\"T\":y=r,b=n,_=t.len(),I=t.data,o===l.Q&&(y+=r-I[_-4],b+=n-I[_-3]),r=h[g++],n=h[g++],f=l.Q,t.addData(f,y,b,r,n);break;case\"t\":y=r,b=n,_=t.len(),I=t.data,o===l.Q&&(y+=r-I[_-4],b+=n-I[_-3]),r+=h[g++],n+=h[g++],f=l.Q,t.addData(f,y,b,r,n);break;case\"A\":x=h[g++],F=h[g++],S=h[g++],E=h[g++],w=h[g++],D=r,A=n,r=h[g++],n=h[g++],f=l.A,FY(D,A,r,n,E,w,x,F,S,f,t);break;case\"a\":x=h[g++],F=h[g++],S=h[g++],E=h[g++],w=h[g++],D=r,A=n,r+=h[g++],n+=h[g++],f=l.A,FY(D,A,r,n,E,w,x,F,S,f,t);break}}(d===\"z\"||d===\"Z\")&&(f=l.Z,t.addData(f),r=a,n=i),o=f}return t.toStatic(),t}var Dpe=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.applyTransform=function(r){},t}(Vr);function Ape(e){return e.setData!=null}function _pe(e,t){var r=s1t(e),n=Xe({},t);return n.buildPath=function(a){if(Ape(a)){a.setData(r.data);var i=a.getContext();i&&a.rebuildPath(i,1)}else{var i=a;r.rebuildPath(i,1)}},n.applyTransform=function(a){Epe(r,a),this.dirtyShape()},n}function Tpe(e,t){return new Dpe(_pe(e,t))}function u1t(e,t){var r=_pe(e,t),n=function(a){Re(i,a);function i(o){var l=a.call(this,o)||this;return l.applyTransform=r.applyTransform,l.buildPath=r.buildPath,l}return i}(Dpe);return n}function c1t(e,t){for(var r=[],n=e.length,a=0;a<n;a++){var i=e[a];r.push(i.getUpdatedPathProxy(!0))}var o=new Vr(t);return o.createPathProxy(),o.buildPath=function(l){if(Ape(l)){l.appendPath(r);var s=l.getContext();s&&l.rebuildPath(s,1)}},o}function vN(e,t){t=t||{};var r=new Vr;return e.shape&&r.setShape(e.shape),r.setStyle(e.style),t.bakeTransform?Epe(r.path,e.getComputedTransform()):t.toLocal?r.setLocalTransform(e.getComputedTransform()):r.copyTransform(e),r.buildPath=e.buildPath,r.applyTransform=r.applyTransform,r.z=e.z,r.z2=e.z2,r.zlevel=e.zlevel,r}var d1t=function(){function e(){this.cx=0,this.cy=0,this.r=0}return e}(),Fc=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new d1t},t.prototype.buildPath=function(r,n){r.moveTo(n.cx+n.r,n.cy),r.arc(n.cx,n.cy,n.r,0,Math.PI*2)},t}(Vr);Fc.prototype.type=\"circle\";var f1t=function(){function e(){this.cx=0,this.cy=0,this.rx=0,this.ry=0}return e}(),rC=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new f1t},t.prototype.buildPath=function(r,n){var a=.5522848,i=n.cx,o=n.cy,l=n.rx,s=n.ry,u=l*a,c=s*a;r.moveTo(i-l,o),r.bezierCurveTo(i-l,o-c,i-u,o-s,i,o-s),r.bezierCurveTo(i+u,o-s,i+l,o-c,i+l,o),r.bezierCurveTo(i+l,o+c,i+u,o+s,i,o+s),r.bezierCurveTo(i-u,o+s,i-l,o+c,i-l,o),r.closePath()},t}(Vr);rC.prototype.type=\"ellipse\";var Ipe=Math.PI,zT=Ipe*2,kh=Math.sin,mv=Math.cos,h1t=Math.acos,no=Math.atan2,SY=Math.abs,vb=Math.sqrt,Cy=Math.max,Pu=Math.min,Vs=1e-4;function p1t(e,t,r,n,a,i,o,l){var s=r-e,u=n-t,c=o-a,d=l-i,f=d*s-c*u;if(!(f*f<Vs))return f=(c*(t-i)-d*(e-a))/f,[e+f*s,t+f*u]}function ZF(e,t,r,n,a,i,o){var l=e-r,s=t-n,u=(o?i:-i)/vb(l*l+s*s),c=u*s,d=-u*l,f=e+c,h=t+d,p=r+c,v=n+d,g=(f+p)/2,y=(h+v)/2,b=p-f,x=v-h,F=b*b+x*x,S=a-i,E=f*v-p*h,w=(x<0?-1:1)*vb(Cy(0,S*S*F-E*E)),D=(E*x-b*w)/F,A=(-E*b-x*w)/F,_=(E*x+b*w)/F,I=(-E*b+x*w)/F,M=D-g,T=A-y,k=_-g,R=I-y;return M*M+T*T>k*k+R*R&&(D=_,A=I),{cx:D,cy:A,x0:-c,y0:-d,x1:D*(a/S-1),y1:A*(a/S-1)}}function m1t(e){var t;if(nt(e)){var r=e.length;if(!r)return e;r===1?t=[e[0],e[0],0,0]:r===2?t=[e[0],e[0],e[1],e[1]]:r===3?t=e.concat(e[2]):t=e}else t=[e,e,e,e];return t}function v1t(e,t){var r,n=Cy(t.r,0),a=Cy(t.r0||0,0),i=n>0,o=a>0;if(!(!i&&!o)){if(i||(n=a,a=0),a>n){var l=n;n=a,a=l}var s=t.startAngle,u=t.endAngle;if(!(isNaN(s)||isNaN(u))){var c=t.cx,d=t.cy,f=!!t.clockwise,h=SY(u-s),p=h>zT&&h%zT;if(p>Vs&&(h=p),!(n>Vs))e.moveTo(c,d);else if(h>zT-Vs)e.moveTo(c+n*mv(s),d+n*kh(s)),e.arc(c,d,n,s,u,!f),a>Vs&&(e.moveTo(c+a*mv(u),d+a*kh(u)),e.arc(c,d,a,u,s,f));else{var v=void 0,g=void 0,y=void 0,b=void 0,x=void 0,F=void 0,S=void 0,E=void 0,w=void 0,D=void 0,A=void 0,_=void 0,I=void 0,M=void 0,T=void 0,k=void 0,R=n*mv(s),P=n*kh(s),B=a*mv(u),N=a*kh(u),O=h>Vs;if(O){var z=t.cornerRadius;z&&(r=m1t(z),v=r[0],g=r[1],y=r[2],b=r[3]);var W=SY(n-a)/2;if(x=Pu(W,y),F=Pu(W,b),S=Pu(W,v),E=Pu(W,g),A=w=Cy(x,F),_=D=Cy(S,E),(w>Vs||D>Vs)&&(I=n*mv(u),M=n*kh(u),T=a*mv(s),k=a*kh(s),h<Ipe)){var L=p1t(R,P,T,k,I,M,B,N);if(L){var j=R-L[0],H=P-L[1],V=I-L[0],U=M-L[1],Q=1/kh(h1t((j*V+H*U)/(vb(j*j+H*H)*vb(V*V+U*U)))/2),K=vb(L[0]*L[0]+L[1]*L[1]);A=Pu(w,(n-K)/(Q+1)),_=Pu(D,(a-K)/(Q-1))}}}if(!O)e.moveTo(c+R,d+P);else if(A>Vs){var Y=Pu(y,A),ee=Pu(b,A),J=ZF(T,k,R,P,n,Y,f),X=ZF(I,M,B,N,n,ee,f);e.moveTo(c+J.cx+J.x0,d+J.cy+J.y0),A<w&&Y===ee?e.arc(c+J.cx,d+J.cy,A,no(J.y0,J.x0),no(X.y0,X.x0),!f):(Y>0&&e.arc(c+J.cx,d+J.cy,Y,no(J.y0,J.x0),no(J.y1,J.x1),!f),e.arc(c,d,n,no(J.cy+J.y1,J.cx+J.x1),no(X.cy+X.y1,X.cx+X.x1),!f),ee>0&&e.arc(c+X.cx,d+X.cy,ee,no(X.y1,X.x1),no(X.y0,X.x0),!f))}else e.moveTo(c+R,d+P),e.arc(c,d,n,s,u,!f);if(!(a>Vs)||!O)e.lineTo(c+B,d+N);else if(_>Vs){var Y=Pu(v,_),ee=Pu(g,_),J=ZF(B,N,I,M,a,-ee,f),X=ZF(R,P,T,k,a,-Y,f);e.lineTo(c+J.cx+J.x0,d+J.cy+J.y0),_<D&&Y===ee?e.arc(c+J.cx,d+J.cy,_,no(J.y0,J.x0),no(X.y0,X.x0),!f):(ee>0&&e.arc(c+J.cx,d+J.cy,ee,no(J.y0,J.x0),no(J.y1,J.x1),!f),e.arc(c,d,a,no(J.cy+J.y1,J.cx+J.x1),no(X.cy+X.y1,X.cx+X.x1),f),Y>0&&e.arc(c+X.cx,d+X.cy,Y,no(X.y1,X.x1),no(X.y0,X.x0),!f))}else e.lineTo(c+B,d+N),e.arc(c,d,a,u,s,f)}e.closePath()}}}var g1t=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0,this.cornerRadius=0}return e}(),So=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new g1t},t.prototype.buildPath=function(r,n){v1t(r,n)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(Vr);So.prototype.type=\"sector\";var y1t=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),Ug=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new y1t},t.prototype.buildPath=function(r,n){var a=n.cx,i=n.cy,o=Math.PI*2;r.moveTo(a+n.r,i),r.arc(a,i,n.r,0,o,!1),r.moveTo(a+n.r0,i),r.arc(a,i,n.r0,0,o,!0)},t}(Vr);Ug.prototype.type=\"ring\";function b1t(e,t,r,n){var a=[],i=[],o=[],l=[],s,u,c,d;if(n){c=[1/0,1/0],d=[-1/0,-1/0];for(var f=0,h=e.length;f<h;f++)zc(c,c,e[f]),Hc(d,d,e[f]);zc(c,c,n[0]),Hc(d,d,n[1])}for(var f=0,h=e.length;f<h;f++){var p=e[f];if(r)s=e[f?f-1:h-1],u=e[(f+1)%h];else if(f===0||f===h-1){a.push(ac(e[f]));continue}else s=e[f-1],u=e[f+1];df(i,u,s),lb(i,i,t);var v=D3(p,s),g=D3(p,u),y=v+g;y!==0&&(v/=y,g/=y),lb(o,i,-v),lb(l,i,g);var b=MM([],p,o),x=MM([],p,l);n&&(Hc(b,b,c),zc(b,b,d),Hc(x,x,c),zc(x,x,d)),a.push(b),a.push(x)}return r&&a.push(a.shift()),a}function kpe(e,t,r){var n=t.smooth,a=t.points;if(a&&a.length>=2){if(n){var i=b1t(a,n,r,t.smoothConstraint);e.moveTo(a[0][0],a[0][1]);for(var o=a.length,l=0;l<(r?o:o-1);l++){var s=i[l*2],u=i[l*2+1],c=a[(l+1)%o];e.bezierCurveTo(s[0],s[1],u[0],u[1],c[0],c[1])}}else{e.moveTo(a[0][0],a[0][1]);for(var l=1,d=a.length;l<d;l++)e.lineTo(a[l][0],a[l][1])}r&&e.closePath()}}var x1t=function(){function e(){this.points=null,this.smooth=0,this.smoothConstraint=null}return e}(),wo=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new x1t},t.prototype.buildPath=function(r,n){kpe(r,n,!0)},t}(Vr);wo.prototype.type=\"polygon\";var C1t=function(){function e(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null}return e}(),To=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new C1t},t.prototype.buildPath=function(r,n){kpe(r,n,!1)},t}(Vr);To.prototype.type=\"polyline\";var F1t={},S1t=function(){function e(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1}return e}(),Xa=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new S1t},t.prototype.buildPath=function(r,n){var a,i,o,l;if(this.subPixelOptimize){var s=fpe(F1t,n,this.style);a=s.x1,i=s.y1,o=s.x2,l=s.y2}else a=n.x1,i=n.y1,o=n.x2,l=n.y2;var u=n.percent;u!==0&&(r.moveTo(a,i),u<1&&(o=a*(1-u)+o*u,l=i*(1-u)+l*u),r.lineTo(o,l))},t.prototype.pointAt=function(r){var n=this.shape;return[n.x1*(1-r)+n.x2*r,n.y1*(1-r)+n.y2*r]},t}(Vr);Xa.prototype.type=\"line\";var Qo=[],w1t=function(){function e(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1}return e}();function wY(e,t,r){var n=e.cpx2,a=e.cpy2;return n!=null||a!=null?[(r?kK:ii)(e.x1,e.cpx1,e.cpx2,e.x2,t),(r?kK:ii)(e.y1,e.cpy1,e.cpy2,e.y2,t)]:[(r?$M:Fi)(e.x1,e.cpx1,e.x2,t),(r?$M:Fi)(e.y1,e.cpy1,e.y2,t)]}var Kg=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new w1t},t.prototype.buildPath=function(r,n){var a=n.x1,i=n.y1,o=n.x2,l=n.y2,s=n.cpx1,u=n.cpy1,c=n.cpx2,d=n.cpy2,f=n.percent;f!==0&&(r.moveTo(a,i),c==null||d==null?(f<1&&(S2(a,s,o,f,Qo),s=Qo[1],o=Qo[2],S2(i,u,l,f,Qo),u=Qo[1],l=Qo[2]),r.quadraticCurveTo(s,u,o,l)):(f<1&&(Yf(a,s,c,o,f,Qo),s=Qo[1],c=Qo[2],o=Qo[3],Yf(i,u,d,l,f,Qo),u=Qo[1],d=Qo[2],l=Qo[3]),r.bezierCurveTo(s,u,c,d,o,l)))},t.prototype.pointAt=function(r){return wY(this.shape,r,!1)},t.prototype.tangentAt=function(r){var n=wY(this.shape,r,!0);return Om(n,n)},t}(Vr);Kg.prototype.type=\"bezier-curve\";var E1t=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),nC=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new E1t},t.prototype.buildPath=function(r,n){var a=n.cx,i=n.cy,o=Math.max(n.r,0),l=n.startAngle,s=n.endAngle,u=n.clockwise,c=Math.cos(l),d=Math.sin(l);r.moveTo(c*o+a,d*o+i),r.arc(a,i,o,l,s,!u)},t}(Vr);nC.prototype.type=\"arc\";var ZD=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"compound\",r}return t.prototype._updatePathDirty=function(){for(var r=this.shape.paths,n=this.shapeChanged(),a=0;a<r.length;a++)n=n||r[a].shapeChanged();n&&this.dirtyShape()},t.prototype.beforeBrush=function(){this._updatePathDirty();for(var r=this.shape.paths||[],n=this.getGlobalScale(),a=0;a<r.length;a++)r[a].path||r[a].createPathProxy(),r[a].path.setScale(n[0],n[1],r[a].segmentIgnoreThreshold)},t.prototype.buildPath=function(r,n){for(var a=n.paths||[],i=0;i<a.length;i++)a[i].buildPath(r,a[i].shape,!0)},t.prototype.afterBrush=function(){for(var r=this.shape.paths||[],n=0;n<r.length;n++)r[n].pathUpdated()},t.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),Vr.prototype.getBoundingRect.call(this)},t}(Vr),Rpe=function(){function e(t){this.colorStops=t||[]}return e.prototype.addColorStop=function(t,r){this.colorStops.push({offset:t,color:r})},e}(),Yg=function(e){Re(t,e);function t(r,n,a,i,o,l){var s=e.call(this,o)||this;return s.x=r??0,s.y=n??0,s.x2=a??1,s.y2=i??0,s.type=\"linear\",s.global=l||!1,s}return t}(Rpe),gN=function(e){Re(t,e);function t(r,n,a,i,o){var l=e.call(this,i)||this;return l.x=r??.5,l.y=n??.5,l.r=a??.5,l.type=\"radial\",l.global=o||!1,l}return t}(Rpe),Rh=[0,0],Mh=[0,0],QF=new Ar,eS=new Ar,N3=function(){function e(t,r){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new Ar;for(var n=0;n<2;n++)this._axes[n]=new Ar;t&&this.fromBoundingRect(t,r)}return e.prototype.fromBoundingRect=function(t,r){var n=this._corners,a=this._axes,i=t.x,o=t.y,l=i+t.width,s=o+t.height;if(n[0].set(i,o),n[1].set(l,o),n[2].set(l,s),n[3].set(i,s),r)for(var u=0;u<4;u++)n[u].transform(r);Ar.sub(a[0],n[1],n[0]),Ar.sub(a[1],n[3],n[0]),a[0].normalize(),a[1].normalize();for(var u=0;u<2;u++)this._origin[u]=a[u].dot(n[0])},e.prototype.intersect=function(t,r){var n=!0,a=!r;return QF.set(1/0,1/0),eS.set(0,0),!this._intersectCheckOneSide(this,t,QF,eS,a,1)&&(n=!1,a)||!this._intersectCheckOneSide(t,this,QF,eS,a,-1)&&(n=!1,a)||a||Ar.copy(r,n?QF:eS),n},e.prototype._intersectCheckOneSide=function(t,r,n,a,i,o){for(var l=!0,s=0;s<2;s++){var u=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,Rh),this._getProjMinMaxOnAxis(s,r._corners,Mh),Rh[1]<Mh[0]||Rh[0]>Mh[1]){if(l=!1,i)return l;var c=Math.abs(Mh[0]-Rh[1]),d=Math.abs(Rh[0]-Mh[1]);Math.min(c,d)>a.len()&&(c<d?Ar.scale(a,u,-c*o):Ar.scale(a,u,d*o))}else if(n){var c=Math.abs(Mh[0]-Rh[1]),d=Math.abs(Rh[0]-Mh[1]);Math.min(c,d)<n.len()&&(c<d?Ar.scale(n,u,c*o):Ar.scale(n,u,-d*o))}}return l},e.prototype._getProjMinMaxOnAxis=function(t,r,n){for(var a=this._axes[t],i=this._origin,o=r[0].dot(a)+i[t],l=o,s=o,u=1;u<r.length;u++){var c=r[u].dot(a)+i[t];l=Math.min(c,l),s=Math.max(c,s)}n[0]=l,n[1]=s},e}(),D1t=[],Mpe=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.notClear=!0,r.incremental=!0,r._displayables=[],r._temporaryDisplayables=[],r._cursor=0,r}return t.prototype.traverse=function(r,n){r.call(n,this)},t.prototype.useStyle=function(){this.style={}},t.prototype.getCursor=function(){return this._cursor},t.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},t.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},t.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},t.prototype.addDisplayable=function(r,n){n?this._temporaryDisplayables.push(r):this._displayables.push(r),this.markRedraw()},t.prototype.addDisplayables=function(r,n){n=n||!1;for(var a=0;a<r.length;a++)this.addDisplayable(r[a],n)},t.prototype.getDisplayables=function(){return this._displayables},t.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},t.prototype.eachPendingDisplayable=function(r){for(var n=this._cursor;n<this._displayables.length;n++)r&&r(this._displayables[n]);for(var n=0;n<this._temporaryDisplayables.length;n++)r&&r(this._temporaryDisplayables[n])},t.prototype.update=function(){this.updateTransform();for(var r=this._cursor;r<this._displayables.length;r++){var n=this._displayables[r];n.parent=this,n.update(),n.parent=null}for(var r=0;r<this._temporaryDisplayables.length;r++){var n=this._temporaryDisplayables[r];n.parent=this,n.update(),n.parent=null}},t.prototype.getBoundingRect=function(){if(!this._rect){for(var r=new Ir(1/0,1/0,-1/0,-1/0),n=0;n<this._displayables.length;n++){var a=this._displayables[n],i=a.getBoundingRect().clone();a.needLocalTransform()&&i.applyTransform(a.getLocalTransform(D1t)),r.union(i)}this._rect=r}return this._rect},t.prototype.contain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect();if(i.contain(a[0],a[1]))for(var o=0;o<this._displayables.length;o++){var l=this._displayables[o];if(l.contain(r,n))return!0}return!1},t}(As),Ppe=rn();function qg(e,t,r,n,a){var i;if(t&&t.ecModel){var o=t.ecModel.getUpdatePayload();i=o&&o.animation}var l=t&&t.isAnimationEnabled(),s=e===\"update\";if(l){var u=void 0,c=void 0,d=void 0;n?(u=Fr(n.duration,200),c=Fr(n.easing,\"cubicOut\"),d=0):(u=t.getShallow(s?\"animationDurationUpdate\":\"animationDuration\"),c=t.getShallow(s?\"animationEasingUpdate\":\"animationEasing\"),d=t.getShallow(s?\"animationDelayUpdate\":\"animationDelay\")),i&&(i.duration!=null&&(u=i.duration),i.easing!=null&&(c=i.easing),i.delay!=null&&(d=i.delay)),er(d)&&(d=d(r,a)),er(u)&&(u=u(r));var f={duration:u||0,delay:d,easing:c};return f}else return null}function yN(e,t,r,n,a,i,o){var l=!1,s;er(a)?(o=i,i=a,a=null):ir(a)&&(i=a.cb,o=a.during,l=a.isFrom,s=a.removeOpt,a=a.dataIndex);var u=e===\"leave\";u||t.stopAnimation(\"leave\");var c=qg(e,n,a,u?s||{}:null,n&&n.getAnimationDelayParams?n.getAnimationDelayParams(t,a):null);if(c&&c.duration>0){var d=c.duration,f=c.delay,h=c.easing,p={duration:d,delay:f||0,easing:h,done:i,force:!!i||!!o,setToFinal:!u,scope:e,during:o};l?t.animateFrom(r,p):t.animateTo(r,p)}else t.stopAnimation(),!l&&t.attr(r),o&&o(1),i&&i()}function cn(e,t,r,n,a,i){yN(\"update\",e,t,r,n,a,i)}function Yn(e,t,r,n,a,i){yN(\"enter\",e,t,r,n,a,i)}function _0(e){if(!e.__zr)return!0;for(var t=0;t<e.animators.length;t++){var r=e.animators[t];if(r.scope===\"leave\")return!0}return!1}function qf(e,t,r,n,a,i){_0(e)||yN(\"leave\",e,t,r,n,a,i)}function EY(e,t,r,n){e.removeTextContent(),e.removeTextGuideLine(),qf(e,{style:{opacity:0}},t,r,n)}function k2(e,t,r){function n(){e.parent&&e.parent.remove(e)}e.isGroup?e.traverse(function(a){a.isGroup||EY(a,t,r,n)}):EY(e,t,r,n)}function Su(e){Ppe(e).oldStyle=e.style}function A1t(e){return Ppe(e).oldStyle}var $3=Math.max,L3=Math.min,cP={};function Ope(e){return Vr.extend(e)}var _1t=u1t;function Bpe(e,t){return _1t(e,t)}function Ms(e,t){cP[e]=t}function QD(e){if(cP.hasOwnProperty(e))return cP[e]}function aC(e,t,r,n){var a=Tpe(e,t);return r&&(n===\"center\"&&(r=Npe(r,a.getBoundingRect())),xN(a,r)),a}function bN(e,t,r){var n=new yi({style:{image:e,x:t.x,y:t.y,width:t.width,height:t.height},onload:function(a){if(r===\"center\"){var i={width:a.width,height:a.height};n.setStyle(Npe(t,i))}}});return n}function Npe(e,t){var r=t.width/t.height,n=e.height*r,a;n<=e.width?a=e.height:(n=e.width,a=n/r);var i=e.x+e.width/2,o=e.y+e.height/2;return{x:i-n/2,y:o-a/2,width:n,height:a}}var Tl=c1t;function xN(e,t){if(e.applyTransform){var r=e.getBoundingRect(),n=r.calculateTransform(t);e.applyTransform(n)}}function og(e,t){return fpe(e,e,{lineWidth:t}),e}function T1t(e){return hpe(e.shape,e.shape,e.style),e}var Pw=hp;function kf(e,t){for(var r=Jx([]);e&&e!==t;)ic(r,e.getLocalTransform(),r),e=e.parent;return r}function hu(e,t,r){return t&&!Yi(t)&&(t=Vc.getLocalTransform(t)),r&&(t=Bm([],t)),Ii([],e,t)}function eA(e,t,r){var n=t[4]===0||t[5]===0||t[0]===0?1:Math.abs(2*t[4]/t[0]),a=t[4]===0||t[5]===0||t[2]===0?1:Math.abs(2*t[4]/t[2]),i=[e===\"left\"?-n:e===\"right\"?n:0,e===\"top\"?-a:e===\"bottom\"?a:0];return i=hu(i,t,r),Math.abs(i[0])>Math.abs(i[1])?i[0]>0?\"right\":\"left\":i[1]>0?\"bottom\":\"top\"}function DY(e){return!e.isGroup}function I1t(e){return e.shape!=null}function iC(e,t,r){if(!e||!t)return;function n(o){var l={};return o.traverse(function(s){DY(s)&&s.anid&&(l[s.anid]=s)}),l}function a(o){var l={x:o.x,y:o.y,rotation:o.rotation};return I1t(o)&&(l.shape=Xe({},o.shape)),l}var i=n(e);t.traverse(function(o){if(DY(o)&&o.anid){var l=i[o.anid];if(l){var s=a(o);o.attr(a(l)),cn(o,s,r,br(o).dataIndex)}}})}function CN(e,t){return ot(e,function(r){var n=r[0];n=$3(n,t.x),n=L3(n,t.x+t.width);var a=r[1];return a=$3(a,t.y),a=L3(a,t.y+t.height),[n,a]})}function $pe(e,t){var r=$3(e.x,t.x),n=L3(e.x+e.width,t.x+t.width),a=$3(e.y,t.y),i=L3(e.y+e.height,t.y+t.height);if(n>=r&&i>=a)return{x:r,y:a,width:n-r,height:i-a}}function Xg(e,t,r){var n=Xe({rectHover:!0},t),a=n.style={strokeNoScale:!0};if(r=r||{x:-1,y:-1,width:2,height:2},e)return e.indexOf(\"image://\")===0?(a.image=e.slice(8),rr(a,r),new yi(n)):aC(e.replace(\"path://\",\"\"),n,r,\"center\")}function Fy(e,t,r,n,a){for(var i=0,o=a[a.length-1];i<a.length;i++){var l=a[i];if(Lpe(e,t,r,n,l[0],l[1],o[0],o[1]))return!0;o=l}}function Lpe(e,t,r,n,a,i,o,l){var s=r-e,u=n-t,c=o-a,d=l-i,f=HT(c,d,s,u);if(k1t(f))return!1;var h=e-a,p=t-i,v=HT(h,p,s,u)/f;if(v<0||v>1)return!1;var g=HT(h,p,c,d)/f;return!(g<0||g>1)}function HT(e,t,r,n){return e*n-r*t}function k1t(e){return e<=1e-6&&e>=-1e-6}function Nm(e){var t=e.itemTooltipOption,r=e.componentModel,n=e.itemName,a=At(t)?{formatter:t}:t,i=r.mainType,o=r.componentIndex,l={componentType:i,name:n,$vars:[\"name\"]};l[i+\"Index\"]=o;var s=e.formatterParamsExtra;s&&q(Ur(s),function(c){$t(l,c)||(l[c]=s[c],l.$vars.push(c))});var u=br(e.el);u.componentMainType=i,u.componentIndex=o,u.tooltipConfig={name:n,option:rr({content:n,encodeHTMLContent:!0,formatterParams:l},a)}}function AY(e,t){var r;e.isGroup&&(r=t(e)),r||e.traverse(t)}function sh(e,t){if(e)if(nt(e))for(var r=0;r<e.length;r++)AY(e[r],t);else AY(e,t)}Ms(\"circle\",Fc);Ms(\"ellipse\",rC);Ms(\"sector\",So);Ms(\"ring\",Ug);Ms(\"polygon\",wo);Ms(\"polyline\",To);Ms(\"rect\",Zr);Ms(\"line\",Xa);Ms(\"bezierCurve\",Kg);Ms(\"arc\",nC);const $m=Object.freeze(Object.defineProperty({__proto__:null,Arc:nC,BezierCurve:Kg,BoundingRect:Ir,Circle:Fc,CompoundPath:ZD,Ellipse:rC,Group:pr,Image:yi,IncrementalDisplayable:Mpe,Line:Xa,LinearGradient:Yg,OrientedBoundingRect:N3,Path:Vr,Point:Ar,Polygon:wo,Polyline:To,RadialGradient:gN,Rect:Zr,Ring:Ug,Sector:So,Text:Jr,applyTransform:hu,clipPointsByRect:CN,clipRectByRect:$pe,createIcon:Xg,extendPath:Bpe,extendShape:Ope,getShapeClass:QD,getTransform:kf,groupTransition:iC,initProps:Yn,isElementRemoved:_0,lineLineIntersect:Lpe,linePolygonIntersect:Fy,makeImage:bN,makePath:aC,mergePath:Tl,registerShape:Ms,removeElement:qf,removeElementWithFadeOut:k2,resizePath:xN,setTooltipConfig:Nm,subPixelOptimize:Pw,subPixelOptimizeLine:og,subPixelOptimizeRect:T1t,transformDirection:eA,traverseElements:sh,updateProps:cn},Symbol.toStringTag,{value:\"Module\"}));var tA={};function jpe(e,t){for(var r=0;r<Ko.length;r++){var n=Ko[r],a=t[n],i=e.ensureState(n);i.style=i.style||{},i.style.text=a}var o=e.currentStates.slice();e.clearStates(!0),e.setStyle({text:t.normal}),e.useStates(o,!0)}function dP(e,t,r){var n=e.labelFetcher,a=e.labelDataIndex,i=e.labelDimIndex,o=t.normal,l;n&&(l=n.getFormattedLabel(a,\"normal\",null,i,o&&o.get(\"formatter\"),r!=null?{interpolatedValue:r}:null)),l==null&&(l=er(e.defaultText)?e.defaultText(a,e,r):e.defaultText);for(var s={normal:l},u=0;u<Ko.length;u++){var c=Ko[u],d=t[c];s[c]=Fr(n?n.getFormattedLabel(a,c,null,i,d&&d.get(\"formatter\")):null,l)}return s}function Xi(e,t,r,n){r=r||tA;for(var a=e instanceof Jr,i=!1,o=0;o<T2.length;o++){var l=t[T2[o]];if(l&&l.getShallow(\"show\")){i=!0;break}}var s=a?e:e.getTextContent();if(i){a||(s||(s=new Jr,e.setTextContent(s)),e.stateProxy&&(s.stateProxy=e.stateProxy));var u=dP(r,t),c=t.normal,d=!!c.getShallow(\"show\"),f=Mn(c,n&&n.normal,r,!1,!a);f.text=u.normal,a||e.setTextConfig(j3(c,r,!1));for(var o=0;o<Ko.length;o++){var h=Ko[o],l=t[h];if(l){var p=s.ensureState(h),v=!!Fr(l.getShallow(\"show\"),d);if(v!==d&&(p.ignore=!v),p.style=Mn(l,n&&n[h],r,!0,!a),p.style.text=u[h],!a){var g=e.ensureState(h);g.textConfig=j3(l,r,!0)}}}s.silent=!!c.getShallow(\"silent\"),s.style.x!=null&&(f.x=s.style.x),s.style.y!=null&&(f.y=s.style.y),s.ignore=!d,s.useStyle(f),s.dirty(),r.enableTextSetter&&(Jg(s).setLabelText=function(y){var b=dP(r,t,y);jpe(s,b)})}else s&&(s.ignore=!0);e.dirty()}function vi(e,t){t=t||\"label\";for(var r={normal:e.getModel(t)},n=0;n<Ko.length;n++){var a=Ko[n];r[a]=e.getModel([a,t])}return r}function Mn(e,t,r,n,a){var i={};return R1t(i,e,r,n,a),t&&Xe(i,t),i}function j3(e,t,r){t=t||{};var n={},a,i=e.getShallow(\"rotate\"),o=Fr(e.getShallow(\"distance\"),r?null:5),l=e.getShallow(\"offset\");return a=e.getShallow(\"position\")||(r?null:\"inside\"),a===\"outside\"&&(a=t.defaultOutsidePosition||\"top\"),a!=null&&(n.position=a),l!=null&&(n.offset=l),i!=null&&(i*=Math.PI/180,n.rotation=i),o!=null&&(n.distance=o),n.outsideFill=e.get(\"color\")===\"inherit\"?t.inheritColor||null:\"auto\",n}function R1t(e,t,r,n,a){r=r||tA;var i=t.ecModel,o=i&&i.option.textStyle,l=M1t(t),s;if(l){s={};for(var u in l)if(l.hasOwnProperty(u)){var c=t.getModel([\"rich\",u]);kY(s[u]={},c,o,r,n,a,!1,!0)}}s&&(e.rich=s);var d=t.get(\"overflow\");d&&(e.overflow=d);var f=t.get(\"minMargin\");f!=null&&(e.margin=f),kY(e,t,o,r,n,a,!0,!1)}function M1t(e){for(var t;e&&e!==e.ecModel;){var r=(e.option||tA).rich;if(r){t=t||{};for(var n=Ur(r),a=0;a<n.length;a++){var i=n[a];t[i]=1}}e=e.parentModel}return t}var _Y=[\"fontStyle\",\"fontWeight\",\"fontSize\",\"fontFamily\",\"textShadowColor\",\"textShadowBlur\",\"textShadowOffsetX\",\"textShadowOffsetY\"],TY=[\"align\",\"lineHeight\",\"width\",\"height\",\"tag\",\"verticalAlign\",\"ellipsis\"],IY=[\"padding\",\"borderWidth\",\"borderRadius\",\"borderDashOffset\",\"backgroundColor\",\"borderColor\",\"shadowColor\",\"shadowBlur\",\"shadowOffsetX\",\"shadowOffsetY\"];function kY(e,t,r,n,a,i,o,l){r=!a&&r||tA;var s=n&&n.inheritColor,u=t.getShallow(\"color\"),c=t.getShallow(\"textBorderColor\"),d=Fr(t.getShallow(\"opacity\"),r.opacity);(u===\"inherit\"||u===\"auto\")&&(s?u=s:u=null),(c===\"inherit\"||c===\"auto\")&&(s?c=s:c=null),i||(u=u||r.color,c=c||r.textBorderColor),u!=null&&(e.fill=u),c!=null&&(e.stroke=c);var f=Fr(t.getShallow(\"textBorderWidth\"),r.textBorderWidth);f!=null&&(e.lineWidth=f);var h=Fr(t.getShallow(\"textBorderType\"),r.textBorderType);h!=null&&(e.lineDash=h);var p=Fr(t.getShallow(\"textBorderDashOffset\"),r.textBorderDashOffset);p!=null&&(e.lineDashOffset=p),!a&&d==null&&!l&&(d=n&&n.defaultOpacity),d!=null&&(e.opacity=d),!a&&!i&&e.fill==null&&n.inheritColor&&(e.fill=n.inheritColor);for(var v=0;v<_Y.length;v++){var g=_Y[v],y=Fr(t.getShallow(g),r[g]);y!=null&&(e[g]=y)}for(var v=0;v<TY.length;v++){var g=TY[v],y=t.getShallow(g);y!=null&&(e[g]=y)}if(e.verticalAlign==null){var b=t.getShallow(\"baseline\");b!=null&&(e.verticalAlign=b)}if(!o||!n.disableBox){for(var v=0;v<IY.length;v++){var g=IY[v],y=t.getShallow(g);y!=null&&(e[g]=y)}var x=t.getShallow(\"borderType\");x!=null&&(e.borderDash=x),(e.backgroundColor===\"auto\"||e.backgroundColor===\"inherit\")&&s&&(e.backgroundColor=s),(e.borderColor===\"auto\"||e.borderColor===\"inherit\")&&s&&(e.borderColor=s)}}function FN(e,t){var r=t&&t.getModel(\"textStyle\");return vs([e.fontStyle||r&&r.getShallow(\"fontStyle\")||\"\",e.fontWeight||r&&r.getShallow(\"fontWeight\")||\"\",(e.fontSize||r&&r.getShallow(\"fontSize\")||12)+\"px\",e.fontFamily||r&&r.getShallow(\"fontFamily\")||\"sans-serif\"].join(\" \"))}var Jg=rn();function zpe(e,t,r,n){if(e){var a=Jg(e);a.prevValue=a.value,a.value=r;var i=t.normal;a.valueAnimation=i.get(\"valueAnimation\"),a.valueAnimation&&(a.precision=i.get(\"precision\"),a.defaultInterpolatedText=n,a.statesModels=t)}}function Hpe(e,t,r,n,a){var i=Jg(e);if(!i.valueAnimation||i.prevValue===i.value)return;var o=i.defaultInterpolatedText,l=Fr(i.interpolatedValue,i.prevValue),s=i.value;function u(c){var d=npe(r,i.precision,l,s,c);i.interpolatedValue=c===1?null:d;var f=dP({labelDataIndex:t,labelFetcher:a,defaultText:o?o(d):d+\"\"},i.statesModels,d);jpe(e,f)}e.percent=0,(i.prevValue==null?Yn:cn)(e,{percent:1},n,t,null,u)}var P1t=[\"textStyle\",\"color\"],VT=[\"fontStyle\",\"fontWeight\",\"fontSize\",\"fontFamily\",\"padding\",\"lineHeight\",\"rich\",\"width\",\"height\",\"overflow\"],WT=new Jr,O1t=function(){function e(){}return e.prototype.getTextColor=function(t){var r=this.ecModel;return this.getShallow(\"color\")||(!t&&r?r.get(P1t):null)},e.prototype.getFont=function(){return FN({fontStyle:this.getShallow(\"fontStyle\"),fontWeight:this.getShallow(\"fontWeight\"),fontSize:this.getShallow(\"fontSize\"),fontFamily:this.getShallow(\"fontFamily\")},this.ecModel)},e.prototype.getTextRect=function(t){for(var r={text:t,verticalAlign:this.getShallow(\"verticalAlign\")||this.getShallow(\"baseline\")},n=0;n<VT.length;n++)r[VT[n]]=this.getShallow(VT[n]);return WT.useStyle(r),WT.update(),WT.getBoundingRect()},e}(),Vpe=[[\"lineWidth\",\"width\"],[\"stroke\",\"color\"],[\"opacity\"],[\"shadowBlur\"],[\"shadowOffsetX\"],[\"shadowOffsetY\"],[\"shadowColor\"],[\"lineDash\",\"type\"],[\"lineDashOffset\",\"dashOffset\"],[\"lineCap\",\"cap\"],[\"lineJoin\",\"join\"],[\"miterLimit\"]],B1t=im(Vpe),N1t=function(){function e(){}return e.prototype.getLineStyle=function(t){return B1t(this,t)},e}(),Wpe=[[\"fill\",\"color\"],[\"stroke\",\"borderColor\"],[\"lineWidth\",\"borderWidth\"],[\"opacity\"],[\"shadowBlur\"],[\"shadowOffsetX\"],[\"shadowOffsetY\"],[\"shadowColor\"],[\"lineDash\",\"borderType\"],[\"lineDashOffset\",\"borderDashOffset\"],[\"lineCap\",\"borderCap\"],[\"lineJoin\",\"borderJoin\"],[\"miterLimit\",\"borderMiterLimit\"]],$1t=im(Wpe),L1t=function(){function e(){}return e.prototype.getItemStyle=function(t,r){return $1t(this,t,r)},e}(),pn=function(){function e(t,r,n){this.parentModel=r,this.ecModel=n,this.option=t}return e.prototype.init=function(t,r,n){},e.prototype.mergeOption=function(t,r){Er(this.option,t,!0)},e.prototype.get=function(t,r){return t==null?this.option:this._doGet(this.parsePath(t),!r&&this.parentModel)},e.prototype.getShallow=function(t,r){var n=this.option,a=n==null?n:n[t];if(a==null&&!r){var i=this.parentModel;i&&(a=i.getShallow(t))}return a},e.prototype.getModel=function(t,r){var n=t!=null,a=n?this.parsePath(t):null,i=n?this._doGet(a):this.option;return r=r||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(a)),new e(i,r,this.ecModel)},e.prototype.isEmpty=function(){return this.option==null},e.prototype.restoreData=function(){},e.prototype.clone=function(){var t=this.constructor;return new t(lr(this.option))},e.prototype.parsePath=function(t){return typeof t==\"string\"?t.split(\".\"):t},e.prototype.resolveParentPath=function(t){return t},e.prototype.isAnimationEnabled=function(){if(!zr.node&&this.option){if(this.option.animation!=null)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},e.prototype._doGet=function(t,r){var n=this.option;if(!t)return n;for(var a=0;a<t.length&&!(t[a]&&(n=n&&typeof n==\"object\"?n[t[a]]:null,n==null));a++);return n==null&&r&&(n=r._doGet(this.resolveParentPath(t),r.parentModel)),n},e}();sN(pn);Z0t(pn);Ca(pn,N1t);Ca(pn,L1t);Ca(pn,ngt);Ca(pn,O1t);var j1t=Math.round(Math.random()*10);function Zg(e){return[e||\"\",j1t++].join(\"_\")}function z1t(e){var t={};e.registerSubTypeDefaulter=function(r,n){var a=Xu(r);t[a.main]=n},e.determineSubType=function(r,n){var a=n.type;if(!a){var i=Xu(r).main;e.hasSubTypes(r)&&t[i]&&(a=t[i](n))}return a}}function H1t(e,t){e.topologicalTravel=function(i,o,l,s){if(!i.length)return;var u=r(o),c=u.graph,d=u.noEntryList,f={};for(q(i,function(b){f[b]=!0});d.length;){var h=d.pop(),p=c[h],v=!!f[h];v&&(l.call(s,h,p.originalDeps.slice()),delete f[h]),q(p.successor,v?y:g)}q(f,function(){var b=\"\";throw new Error(b)});function g(b){c[b].entryCount--,c[b].entryCount===0&&d.push(b)}function y(b){f[b]=!0,g(b)}};function r(i){var o={},l=[];return q(i,function(s){var u=n(o,s),c=u.originalDeps=t(s),d=a(c,i);u.entryCount=d.length,u.entryCount===0&&l.push(s),q(d,function(f){Mr(u.predecessor,f)<0&&u.predecessor.push(f);var h=n(o,f);Mr(h.successor,f)<0&&h.successor.push(s)})}),{graph:o,noEntryList:l}}function n(i,o){return i[o]||(i[o]={predecessor:[],successor:[]}),i[o]}function a(i,o){var l=[];return q(i,function(s){Mr(o,s)>=0&&l.push(s)}),l}}function uh(e,t){return Er(Er({},e,!0),t,!0)}const V1t={time:{month:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthAbbr:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],dayOfWeek:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],dayOfWeekAbbr:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]},legend:{selector:{all:\"All\",inverse:\"Inv\"}},toolbox:{brush:{title:{rect:\"Box Select\",polygon:\"Lasso Select\",lineX:\"Horizontally Select\",lineY:\"Vertically Select\",keep:\"Keep Selections\",clear:\"Clear Selections\"}},dataView:{title:\"Data View\",lang:[\"Data View\",\"Close\",\"Refresh\"]},dataZoom:{title:{zoom:\"Zoom\",back:\"Zoom Reset\"}},magicType:{title:{line:\"Switch to Line Chart\",bar:\"Switch to Bar Chart\",stack:\"Stack\",tiled:\"Tile\"}},restore:{title:\"Restore\"},saveAsImage:{title:\"Save as Image\",lang:[\"Right Click to Save Image\"]}},series:{typeNames:{pie:\"Pie chart\",bar:\"Bar chart\",line:\"Line chart\",scatter:\"Scatter plot\",effectScatter:\"Ripple scatter plot\",radar:\"Radar chart\",tree:\"Tree\",treemap:\"Treemap\",boxplot:\"Boxplot\",candlestick:\"Candlestick\",k:\"K line chart\",heatmap:\"Heat map\",map:\"Map\",parallel:\"Parallel coordinate map\",lines:\"Line graph\",graph:\"Relationship graph\",sankey:\"Sankey diagram\",funnel:\"Funnel chart\",gauge:\"Gauge\",pictorialBar:\"Pictorial bar\",themeRiver:\"Theme River Map\",sunburst:\"Sunburst\",custom:\"Custom chart\",chart:\"Chart\"}},aria:{general:{withTitle:'This is a chart about \"{title}\"',withoutTitle:\"This is a chart\"},series:{single:{prefix:\"\",withName:\" with type {seriesType} named {seriesName}.\",withoutName:\" with type {seriesType}.\"},multiple:{prefix:\". It consists of {seriesCount} series count.\",withName:\" The {seriesId} series is a {seriesType} representing {seriesName}.\",withoutName:\" The {seriesId} series is a {seriesType}.\",separator:{middle:\"\",end:\"\"}}},data:{allData:\"The data is as follows: \",partialData:\"The first {displayCnt} items are: \",withName:\"the data for {name} is {value}\",withoutName:\"{value}\",separator:{middle:\", \",end:\". \"}}}},W1t={time:{month:[\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一月\",\"十二月\"],monthAbbr:[\"1月\",\"2月\",\"3月\",\"4月\",\"5月\",\"6月\",\"7月\",\"8月\",\"9月\",\"10月\",\"11月\",\"12月\"],dayOfWeek:[\"星期日\",\"星期一\",\"星期二\",\"星期三\",\"星期四\",\"星期五\",\"星期六\"],dayOfWeekAbbr:[\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"]},legend:{selector:{all:\"全选\",inverse:\"反选\"}},toolbox:{brush:{title:{rect:\"矩形选择\",polygon:\"圈选\",lineX:\"横向选择\",lineY:\"纵向选择\",keep:\"保持选择\",clear:\"清除选择\"}},dataView:{title:\"数据视图\",lang:[\"数据视图\",\"关闭\",\"刷新\"]},dataZoom:{title:{zoom:\"区域缩放\",back:\"区域缩放还原\"}},magicType:{title:{line:\"切换为折线图\",bar:\"切换为柱状图\",stack:\"切换为堆叠\",tiled:\"切换为平铺\"}},restore:{title:\"还原\"},saveAsImage:{title:\"保存为图片\",lang:[\"右键另存为图片\"]}},series:{typeNames:{pie:\"饼图\",bar:\"柱状图\",line:\"折线图\",scatter:\"散点图\",effectScatter:\"涟漪散点图\",radar:\"雷达图\",tree:\"树图\",treemap:\"矩形树图\",boxplot:\"箱型图\",candlestick:\"K线图\",k:\"K线图\",heatmap:\"热力图\",map:\"地图\",parallel:\"平行坐标图\",lines:\"线图\",graph:\"关系图\",sankey:\"桑基图\",funnel:\"漏斗图\",gauge:\"仪表盘图\",pictorialBar:\"象形柱图\",themeRiver:\"主题河流图\",sunburst:\"旭日图\",custom:\"自定义图表\",chart:\"图表\"}},aria:{general:{withTitle:\"这是一个关于“{title}”的图表。\",withoutTitle:\"这是一个图表,\"},series:{single:{prefix:\"\",withName:\"图表类型是{seriesType},表示{seriesName}。\",withoutName:\"图表类型是{seriesType}。\"},multiple:{prefix:\"它由{seriesCount}个图表系列组成。\",withName:\"第{seriesId}个系列是一个表示{seriesName}的{seriesType}\",withoutName:\"第{seriesId}个系列是一个{seriesType}\",separator:{middle:\"\",end:\"。\"}}},data:{allData:\"其数据是——\",partialData:\"其中,前{displayCnt}项是——\",withName:\"{name}的数据是{value}\",withoutName:\"{value}\",separator:{middle:\"\",end:\"\"}}}};var z3=\"ZH\",SN=\"EN\",T0=SN,Ow={},wN={},Gpe=zr.domSupported?function(){var e=(document.documentElement.lang||navigator.language||navigator.browserLanguage||T0).toUpperCase();return e.indexOf(z3)>-1?z3:T0}():T0;function EN(e,t){e=e.toUpperCase(),wN[e]=new pn(t),Ow[e]=t}function G1t(e){if(At(e)){var t=Ow[e.toUpperCase()]||{};return e===z3||e===SN?lr(t):Er(lr(t),lr(Ow[T0]),!1)}else return Er(lr(e),lr(Ow[T0]),!1)}function fP(e){return wN[e]}function U1t(){return wN[T0]}EN(SN,V1t);EN(z3,W1t);var DN=1e3,AN=DN*60,gb=AN*60,ps=gb*24,RY=ps*365,Sy={year:\"{yyyy}\",month:\"{MMM}\",day:\"{d}\",hour:\"{HH}:{mm}\",minute:\"{HH}:{mm}\",second:\"{HH}:{mm}:{ss}\",millisecond:\"{HH}:{mm}:{ss} {SSS}\",none:\"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}\"},tS=\"{yyyy}-{MM}-{dd}\",MY={year:\"{yyyy}\",month:\"{yyyy}-{MM}\",day:tS,hour:tS+\" \"+Sy.hour,minute:tS+\" \"+Sy.minute,second:tS+\" \"+Sy.second,millisecond:Sy.none},GT=[\"year\",\"month\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"],Upe=[\"year\",\"half-year\",\"quarter\",\"month\",\"week\",\"half-week\",\"day\",\"half-day\",\"quarter-day\",\"hour\",\"minute\",\"second\",\"millisecond\"];function Oo(e,t){return e+=\"\",\"0000\".substr(0,t-e.length)+e}function I0(e){switch(e){case\"half-year\":case\"quarter\":return\"month\";case\"week\":case\"half-week\":return\"day\";case\"half-day\":case\"quarter-day\":return\"hour\";default:return e}}function K1t(e){return e===I0(e)}function Y1t(e){switch(e){case\"year\":case\"month\":return\"day\";case\"millisecond\":return\"millisecond\";default:return\"second\"}}function oC(e,t,r,n){var a=jl(e),i=a[_N(r)](),o=a[k0(r)]()+1,l=Math.floor((o-1)/3)+1,s=a[rA(r)](),u=a[\"get\"+(r?\"UTC\":\"\")+\"Day\"](),c=a[R2(r)](),d=(c-1)%12+1,f=a[nA(r)](),h=a[aA(r)](),p=a[iA(r)](),v=c>=12?\"pm\":\"am\",g=v.toUpperCase(),y=n instanceof pn?n:fP(n||Gpe)||U1t(),b=y.getModel(\"time\"),x=b.get(\"month\"),F=b.get(\"monthAbbr\"),S=b.get(\"dayOfWeek\"),E=b.get(\"dayOfWeekAbbr\");return(t||\"\").replace(/{a}/g,v+\"\").replace(/{A}/g,g+\"\").replace(/{yyyy}/g,i+\"\").replace(/{yy}/g,Oo(i%100+\"\",2)).replace(/{Q}/g,l+\"\").replace(/{MMMM}/g,x[o-1]).replace(/{MMM}/g,F[o-1]).replace(/{MM}/g,Oo(o,2)).replace(/{M}/g,o+\"\").replace(/{dd}/g,Oo(s,2)).replace(/{d}/g,s+\"\").replace(/{eeee}/g,S[u]).replace(/{ee}/g,E[u]).replace(/{e}/g,u+\"\").replace(/{HH}/g,Oo(c,2)).replace(/{H}/g,c+\"\").replace(/{hh}/g,Oo(d+\"\",2)).replace(/{h}/g,d+\"\").replace(/{mm}/g,Oo(f,2)).replace(/{m}/g,f+\"\").replace(/{ss}/g,Oo(h,2)).replace(/{s}/g,h+\"\").replace(/{SSS}/g,Oo(p,3)).replace(/{S}/g,p+\"\")}function q1t(e,t,r,n,a){var i=null;if(At(r))i=r;else if(er(r))i=r(e.value,t,{level:e.level});else{var o=Xe({},Sy);if(e.level>0)for(var l=0;l<GT.length;++l)o[GT[l]]=\"{primary|\"+o[GT[l]]+\"}\";var s=r?r.inherit===!1?r:rr(r,o):o,u=Kpe(e.value,a);if(s[u])i=s[u];else if(s.inherit){for(var c=Upe.indexOf(u),l=c-1;l>=0;--l)if(s[u]){i=s[u];break}i=i||o.none}if(nt(i)){var d=e.level==null?0:e.level>=0?e.level:i.length+e.level;d=Math.min(d,i.length-1),i=i[d]}}return oC(new Date(e.value),i,a,n)}function Kpe(e,t){var r=jl(e),n=r[k0(t)]()+1,a=r[rA(t)](),i=r[R2(t)](),o=r[nA(t)](),l=r[aA(t)](),s=r[iA(t)](),u=s===0,c=u&&l===0,d=c&&o===0,f=d&&i===0,h=f&&a===1,p=h&&n===1;return p?\"year\":h?\"month\":f?\"day\":d?\"hour\":c?\"minute\":u?\"second\":\"millisecond\"}function PY(e,t,r){var n=nn(e)?jl(e):e;switch(t=t||Kpe(e,r),t){case\"year\":return n[_N(r)]();case\"half-year\":return n[k0(r)]()>=6?1:0;case\"quarter\":return Math.floor((n[k0(r)]()+1)/4);case\"month\":return n[k0(r)]();case\"day\":return n[rA(r)]();case\"half-day\":return n[R2(r)]()/24;case\"hour\":return n[R2(r)]();case\"minute\":return n[nA(r)]();case\"second\":return n[aA(r)]();case\"millisecond\":return n[iA(r)]()}}function _N(e){return e?\"getUTCFullYear\":\"getFullYear\"}function k0(e){return e?\"getUTCMonth\":\"getMonth\"}function rA(e){return e?\"getUTCDate\":\"getDate\"}function R2(e){return e?\"getUTCHours\":\"getHours\"}function nA(e){return e?\"getUTCMinutes\":\"getMinutes\"}function aA(e){return e?\"getUTCSeconds\":\"getSeconds\"}function iA(e){return e?\"getUTCMilliseconds\":\"getMilliseconds\"}function X1t(e){return e?\"setUTCFullYear\":\"setFullYear\"}function Ype(e){return e?\"setUTCMonth\":\"setMonth\"}function qpe(e){return e?\"setUTCDate\":\"setDate\"}function Xpe(e){return e?\"setUTCHours\":\"setHours\"}function Jpe(e){return e?\"setUTCMinutes\":\"setMinutes\"}function Zpe(e){return e?\"setUTCSeconds\":\"setSeconds\"}function Qpe(e){return e?\"setUTCMilliseconds\":\"setMilliseconds\"}function J1t(e,t,r,n,a,i,o,l){var s=new Jr({style:{text:e,font:t,align:r,verticalAlign:n,padding:a,rich:i,overflow:o?\"truncate\":null,lineHeight:l}});return s.getBoundingRect()}function TN(e){if(!iN(e))return At(e)?e:\"-\";var t=(e+\"\").split(\".\");return t[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g,\"$1,\")+(t.length>1?\".\"+t[1]:\"\")}function IN(e,t){return e=(e||\"\").toLowerCase().replace(/-(.)/g,function(r,n){return n.toUpperCase()}),t&&e&&(e=e.charAt(0).toUpperCase()+e.slice(1)),e}var Lm=LD;function hP(e,t,r){var n=\"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}\";function a(c){return c&&vs(c)?c:\"-\"}function i(c){return!!(c!=null&&!isNaN(c)&&isFinite(c))}var o=t===\"time\",l=e instanceof Date;if(o||l){var s=o?jl(e):e;if(isNaN(+s)){if(l)return\"-\"}else return oC(s,n,r)}if(t===\"ordinal\")return w3(e)?a(e):nn(e)&&i(e)?e+\"\":\"-\";var u=vc(e);return i(u)?TN(u):w3(e)?a(e):typeof e==\"boolean\"?e+\"\":\"-\"}var OY=[\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\"],UT=function(e,t){return\"{\"+e+(t??\"\")+\"}\"};function kN(e,t,r){nt(t)||(t=[t]);var n=t.length;if(!n)return\"\";for(var a=t[0].$vars||[],i=0;i<a.length;i++){var o=OY[i];e=e.replace(UT(o),UT(o,0))}for(var l=0;l<n;l++)for(var s=0;s<a.length;s++){var u=t[l][a[s]];e=e.replace(UT(OY[s],l),r?po(u):u)}return e}function Z1t(e,t,r){return q(t,function(n,a){e=e.replace(\"{\"+a+\"}\",n)}),e}function eme(e,t){var r=At(e)?{color:e,extraCssText:t}:e||{},n=r.color,a=r.type;t=r.extraCssText;var i=r.renderMode||\"html\";if(!n)return\"\";if(i===\"html\")return a===\"subItem\"?'<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+po(n)+\";\"+(t||\"\")+'\"></span>':'<span style=\"display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+po(n)+\";\"+(t||\"\")+'\"></span>';var o=r.markerId||\"markerX\";return{renderMode:i,content:\"{\"+o+\"|} \",style:a===\"subItem\"?{width:4,height:4,borderRadius:2,backgroundColor:n}:{width:10,height:10,borderRadius:5,backgroundColor:n}}}function Q1t(e,t,r){(e===\"week\"||e===\"month\"||e===\"quarter\"||e===\"half-year\"||e===\"year\")&&(e=`MM-dd\nyyyy`);var n=jl(t),a=r?\"getUTC\":\"get\",i=n[a+\"FullYear\"](),o=n[a+\"Month\"]()+1,l=n[a+\"Date\"](),s=n[a+\"Hours\"](),u=n[a+\"Minutes\"](),c=n[a+\"Seconds\"](),d=n[a+\"Milliseconds\"]();return e=e.replace(\"MM\",Oo(o,2)).replace(\"M\",o).replace(\"yyyy\",i).replace(\"yy\",Oo(i%100+\"\",2)).replace(\"dd\",Oo(l,2)).replace(\"d\",l).replace(\"hh\",Oo(s,2)).replace(\"h\",s).replace(\"mm\",Oo(u,2)).replace(\"m\",u).replace(\"ss\",Oo(c,2)).replace(\"s\",c).replace(\"SSS\",Oo(d,3)),e}function eyt(e){return e&&e.charAt(0).toUpperCase()+e.substr(1)}function lm(e,t){return t=t||\"transparent\",At(e)?e:ir(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function H3(e,t){if(t===\"_blank\"||t===\"blank\"){var r=window.open();r.opener=null,r.location.href=e}else window.open(e,t)}var Bw=q,tme=[\"left\",\"right\",\"top\",\"bottom\",\"width\",\"height\"],mp=[[\"width\",\"left\",\"right\"],[\"height\",\"top\",\"bottom\"]];function RN(e,t,r,n,a){var i=0,o=0;n==null&&(n=1/0),a==null&&(a=1/0);var l=0;t.eachChild(function(s,u){var c=s.getBoundingRect(),d=t.childAt(u+1),f=d&&d.getBoundingRect(),h,p;if(e===\"horizontal\"){var v=c.width+(f?-f.x+c.x:0);h=i+v,h>n||s.newline?(i=0,h=v,o+=l+r,l=c.height):l=Math.max(l,c.height)}else{var g=c.height+(f?-f.y+c.y:0);p=o+g,p>a||s.newline?(i+=l+r,o=0,p=g,l=c.width):l=Math.max(l,c.width)}s.newline||(s.x=i,s.y=o,s.markRedraw(),e===\"horizontal\"?i=h+r:o=p+r)})}var Pp=RN;wr(RN,\"vertical\");wr(RN,\"horizontal\");function tyt(e,t,r){var n=t.width,a=t.height,i=Ft(e.left,n),o=Ft(e.top,a),l=Ft(e.right,n),s=Ft(e.bottom,a);return(isNaN(i)||isNaN(parseFloat(e.left)))&&(i=0),(isNaN(l)||isNaN(parseFloat(e.right)))&&(l=n),(isNaN(o)||isNaN(parseFloat(e.top)))&&(o=0),(isNaN(s)||isNaN(parseFloat(e.bottom)))&&(s=a),r=Lm(r||0),{width:Math.max(l-i-r[1]-r[3],0),height:Math.max(s-o-r[0]-r[2],0)}}function Na(e,t,r){r=Lm(r||0);var n=t.width,a=t.height,i=Ft(e.left,n),o=Ft(e.top,a),l=Ft(e.right,n),s=Ft(e.bottom,a),u=Ft(e.width,n),c=Ft(e.height,a),d=r[2]+r[0],f=r[1]+r[3],h=e.aspect;switch(isNaN(u)&&(u=n-l-f-i),isNaN(c)&&(c=a-s-d-o),h!=null&&(isNaN(u)&&isNaN(c)&&(h>n/a?u=n*.8:c=a*.8),isNaN(u)&&(u=h*c),isNaN(c)&&(c=u/h)),isNaN(i)&&(i=n-l-u-f),isNaN(o)&&(o=a-s-c-d),e.left||e.right){case\"center\":i=n/2-u/2-r[3];break;case\"right\":i=n-u-f;break}switch(e.top||e.bottom){case\"middle\":case\"center\":o=a/2-c/2-r[0];break;case\"bottom\":o=a-c-d;break}i=i||0,o=o||0,isNaN(u)&&(u=n-f-i-(l||0)),isNaN(c)&&(c=a-d-o-(s||0));var p=new Ir(i+r[3],o+r[0],u,c);return p.margin=r,p}function oA(e,t,r,n,a,i){var o=!a||!a.hv||a.hv[0],l=!a||!a.hv||a.hv[1],s=a&&a.boundingMode||\"all\";if(i=i||e,i.x=e.x,i.y=e.y,!o&&!l)return!1;var u;if(s===\"raw\")u=e.type===\"group\"?new Ir(0,0,+t.width||0,+t.height||0):e.getBoundingRect();else if(u=e.getBoundingRect(),e.needLocalTransform()){var c=e.getLocalTransform();u=u.clone(),u.applyTransform(c)}var d=Na(rr({width:u.width,height:u.height},t),r,n),f=o?d.x-u.x:0,h=l?d.y-u.y:0;return s===\"raw\"?(i.x=f,i.y=h):(i.x+=f,i.y+=h),i===e&&e.markRedraw(),!0}function ryt(e,t){return e[mp[t][0]]!=null||e[mp[t][1]]!=null&&e[mp[t][2]]!=null}function M2(e){var t=e.layoutMode||e.constructor.layoutMode;return ir(t)?t:t?{type:t}:null}function Xf(e,t,r){var n=r&&r.ignoreSize;!nt(n)&&(n=[n,n]);var a=o(mp[0],0),i=o(mp[1],1);u(mp[0],e,a),u(mp[1],e,i);function o(c,d){var f={},h=0,p={},v=0,g=2;if(Bw(c,function(x){p[x]=e[x]}),Bw(c,function(x){l(t,x)&&(f[x]=p[x]=t[x]),s(f,x)&&h++,s(p,x)&&v++}),n[d])return s(t,c[1])?p[c[2]]=null:s(t,c[2])&&(p[c[1]]=null),p;if(v===g||!h)return p;if(h>=g)return f;for(var y=0;y<c.length;y++){var b=c[y];if(!l(f,b)&&l(e,b)){f[b]=e[b];break}}return f}function l(c,d){return c.hasOwnProperty(d)}function s(c,d){return c[d]!=null&&c[d]!==\"auto\"}function u(c,d,f){Bw(c,function(h){d[h]=f[h]})}}function Qg(e){return rme({},e)}function rme(e,t){return t&&e&&Bw(tme,function(r){t.hasOwnProperty(r)&&(e[r]=t[r])}),e}var nyt=rn(),jr=function(e){Re(t,e);function t(r,n,a){var i=e.call(this,r,n,a)||this;return i.uid=Zg(\"ec_cpt_model\"),i}return t.prototype.init=function(r,n,a){this.mergeDefaultAndTheme(r,a)},t.prototype.mergeDefaultAndTheme=function(r,n){var a=M2(this),i=a?Qg(r):{},o=n.getTheme();Er(r,o.get(this.mainType)),Er(r,this.getDefaultOption()),a&&Xf(r,i,a)},t.prototype.mergeOption=function(r,n){Er(this.option,r,!0);var a=M2(this);a&&Xf(this.option,r,a)},t.prototype.optionUpdated=function(r,n){},t.prototype.getDefaultOption=function(){var r=this.constructor;if(!q0t(r))return r.defaultOption;var n=nyt(this);if(!n.defaultOption){for(var a=[],i=r;i;){var o=i.prototype.defaultOption;o&&a.push(o),i=i.superClass}for(var l={},s=a.length-1;s>=0;s--)l=Er(l,a[s],!0);n.defaultOption=l}return n.defaultOption},t.prototype.getReferringComponents=function(r,n){var a=r+\"Index\",i=r+\"Id\";return eC(this.ecModel,r,{index:this.get(a,!0),id:this.get(i,!0)},n)},t.prototype.getBoxLayoutParams=function(){var r=this;return{left:r.get(\"left\"),top:r.get(\"top\"),right:r.get(\"right\"),bottom:r.get(\"bottom\"),width:r.get(\"width\"),height:r.get(\"height\")}},t.prototype.getZLevelKey=function(){return\"\"},t.prototype.setZLevel=function(r){this.option.zlevel=r},t.protoInitialize=function(){var r=t.prototype;r.type=\"component\",r.id=\"\",r.name=\"\",r.mainType=\"\",r.subType=\"\",r.componentIndex=0}(),t}(pn);ipe(jr,pn);UD(jr);z1t(jr);H1t(jr,ayt);function ayt(e){var t=[];return q(jr.getClassesByMainType(e),function(r){t=t.concat(r.dependencies||r.prototype.dependencies||[])}),t=ot(t,function(r){return Xu(r).main}),e!==\"dataset\"&&Mr(t,\"dataset\")<=0&&t.unshift(\"dataset\"),t}var nme=\"\";typeof navigator<\"u\"&&(nme=navigator.platform||\"\");var vv=\"rgba(0, 0, 0, 0.2)\";const iyt={darkMode:\"auto\",colorBy:\"series\",color:[\"#5470c6\",\"#91cc75\",\"#fac858\",\"#ee6666\",\"#73c0de\",\"#3ba272\",\"#fc8452\",\"#9a60b4\",\"#ea7ccc\"],gradientColor:[\"#f6efa6\",\"#d88273\",\"#bf444c\"],aria:{decal:{decals:[{color:vv,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:vv,symbol:\"circle\",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:vv,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:vv,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:vv,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:vv,symbol:\"triangle\",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:nme.match(/^Win/)?\"Microsoft YaHei\":\"sans-serif\",fontSize:12,fontStyle:\"normal\",fontWeight:\"normal\"},blendMode:null,stateAnimation:{duration:300,easing:\"cubicOut\"},animation:\"auto\",animationDuration:1e3,animationDurationUpdate:500,animationEasing:\"cubicInOut\",animationEasingUpdate:\"cubicInOut\",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1};var ame=Gt([\"tooltip\",\"label\",\"itemName\",\"itemId\",\"itemGroupId\",\"itemChildGroupId\",\"seriesName\"]),Ps=\"original\",Eo=\"arrayRows\",Os=\"objectRows\",Sc=\"keyedColumns\",Rf=\"typedArray\",ime=\"unknown\",oc=\"column\",e1=\"row\",$i={Must:1,Might:2,Not:3},ome=rn();function oyt(e){ome(e).datasetMap=Gt()}function lme(e,t,r){var n={},a=PN(t);if(!a||!e)return n;var i=[],o=[],l=t.ecModel,s=ome(l).datasetMap,u=a.uid+\"_\"+r.seriesLayoutBy,c,d;e=e.slice(),q(e,function(v,g){var y=ir(v)?v:e[g]={name:v};y.type===\"ordinal\"&&c==null&&(c=g,d=p(y)),n[y.name]=[]});var f=s.get(u)||s.set(u,{categoryWayDim:d,valueWayDim:0});q(e,function(v,g){var y=v.name,b=p(v);if(c==null){var x=f.valueWayDim;h(n[y],x,b),h(o,x,b),f.valueWayDim+=b}else if(c===g)h(n[y],0,b),h(i,0,b);else{var x=f.categoryWayDim;h(n[y],x,b),h(o,x,b),f.categoryWayDim+=b}});function h(v,g,y){for(var b=0;b<y;b++)v.push(g+b)}function p(v){var g=v.dimsDef;return g?g.length:1}return i.length&&(n.itemName=i),o.length&&(n.seriesName=o),n}function MN(e,t,r){var n={},a=PN(e);if(!a)return n;var i=t.sourceFormat,o=t.dimensionsDefine,l;(i===Os||i===Sc)&&q(o,function(c,d){(ir(c)?c.name:c)===\"name\"&&(l=d)});var s=function(){for(var c={},d={},f=[],h=0,p=Math.min(5,r);h<p;h++){var v=ume(t.data,i,t.seriesLayoutBy,o,t.startIndex,h);f.push(v);var g=v===$i.Not;if(g&&c.v==null&&h!==l&&(c.v=h),(c.n==null||c.n===c.v||!g&&f[c.n]===$i.Not)&&(c.n=h),y(c)&&f[c.n]!==$i.Not)return c;g||(v===$i.Might&&d.v==null&&h!==l&&(d.v=h),(d.n==null||d.n===d.v)&&(d.n=h))}function y(b){return b.v!=null&&b.n!=null}return y(c)?c:y(d)?d:null}();if(s){n.value=[s.v];var u=l??s.n;n.itemName=[u],n.seriesName=[u]}return n}function PN(e){var t=e.get(\"data\",!0);if(!t)return eC(e.ecModel,\"dataset\",{index:e.get(\"datasetIndex\",!0),id:e.get(\"datasetId\",!0)},Oa).models[0]}function lyt(e){return!e.get(\"transform\",!0)&&!e.get(\"fromTransformResult\",!0)?[]:eC(e.ecModel,\"dataset\",{index:e.get(\"fromDatasetIndex\",!0),id:e.get(\"fromDatasetId\",!0)},Oa).models}function sme(e,t){return ume(e.data,e.sourceFormat,e.seriesLayoutBy,e.dimensionsDefine,e.startIndex,t)}function ume(e,t,r,n,a,i){var o,l=5;if(Uo(e))return $i.Not;var s,u;if(n){var c=n[i];ir(c)?(s=c.name,u=c.type):At(c)&&(s=c)}if(u!=null)return u===\"ordinal\"?$i.Must:$i.Not;if(t===Eo){var d=e;if(r===e1){for(var f=d[i],h=0;h<(f||[]).length&&h<l;h++)if((o=F(f[a+h]))!=null)return o}else for(var h=0;h<d.length&&h<l;h++){var p=d[a+h];if(p&&(o=F(p[i]))!=null)return o}}else if(t===Os){var v=e;if(!s)return $i.Not;for(var h=0;h<v.length&&h<l;h++){var g=v[h];if(g&&(o=F(g[s]))!=null)return o}}else if(t===Sc){var y=e;if(!s)return $i.Not;var f=y[s];if(!f||Uo(f))return $i.Not;for(var h=0;h<f.length&&h<l;h++)if((o=F(f[h]))!=null)return o}else if(t===Ps)for(var b=e,h=0;h<b.length&&h<l;h++){var g=b[h],x=Wg(g);if(!nt(x))return $i.Not;if((o=F(x[i]))!=null)return o}function F(S){var E=At(S);if(S!=null&&Number.isFinite(Number(S))&&S!==\"\")return E?$i.Might:$i.Not;if(E&&S!==\"-\")return $i.Must}return $i.Not}var pP=Gt();function syt(e,t){Fo(pP.get(e)==null&&t),pP.set(e,t)}function uyt(e,t,r){var n=pP.get(t);if(!n)return r;var a=n(e);return a?r.concat(a):r}var BY=rn(),cyt=rn(),ON=function(){function e(){}return e.prototype.getColorFromPalette=function(t,r,n){var a=An(this.get(\"color\",!0)),i=this.get(\"colorLayer\",!0);return cme(this,BY,a,i,t,r,n)},e.prototype.clearColorPalette=function(){fyt(this,BY)},e}();function mP(e,t,r,n){var a=An(e.get([\"aria\",\"decal\",\"decals\"]));return cme(e,cyt,a,null,t,r,n)}function dyt(e,t){for(var r=e.length,n=0;n<r;n++)if(e[n].length>t)return e[n];return e[r-1]}function cme(e,t,r,n,a,i,o){i=i||e;var l=t(i),s=l.paletteIdx||0,u=l.paletteNameMap=l.paletteNameMap||{};if(u.hasOwnProperty(a))return u[a];var c=o==null||!n?r:dyt(n,o);if(c=c||r,!(!c||!c.length)){var d=c[s];return a&&(u[a]=d),l.paletteIdx=(s+1)%c.length,d}}function fyt(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var rS,N1,NY,$Y=\"\\0_ec_inner\",hyt=1,BN=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r,n,a,i,o,l){i=i||{},this.option=null,this._theme=new pn(i),this._locale=new pn(o),this._optionManager=l},t.prototype.setOption=function(r,n,a){var i=zY(n);this._optionManager.setOption(r,a,i),this._resetOption(null,i)},t.prototype.resetOption=function(r,n){return this._resetOption(r,zY(n))},t.prototype._resetOption=function(r,n){var a=!1,i=this._optionManager;if(!r||r===\"recreate\"){var o=i.mountOption(r===\"recreate\");!this.option||r===\"recreate\"?NY(this,o):(this.restoreData(),this._mergeOption(o,n)),a=!0}if((r===\"timeline\"||r===\"media\")&&this.restoreData(),!r||r===\"recreate\"||r===\"timeline\"){var l=i.getTimelineOption(this);l&&(a=!0,this._mergeOption(l,n))}if(!r||r===\"recreate\"||r===\"media\"){var s=i.getMediaOption(this);s.length&&q(s,function(u){a=!0,this._mergeOption(u,n)},this)}return a},t.prototype.mergeOption=function(r){this._mergeOption(r,null)},t.prototype._mergeOption=function(r,n){var a=this.option,i=this._componentsMap,o=this._componentsCount,l=[],s=Gt(),u=n&&n.replaceMergeMainTypeMap;oyt(this),q(r,function(d,f){d!=null&&(jr.hasClass(f)?f&&(l.push(f),s.set(f,!0)):a[f]=a[f]==null?lr(d):Er(a[f],d,!0))}),u&&u.each(function(d,f){jr.hasClass(f)&&!s.get(f)&&(l.push(f),s.set(f,!0))}),jr.topologicalTravel(l,jr.getAllClassMainTypes(),c,this);function c(d){var f=uyt(this,d,An(r[d])),h=i.get(d),p=h?u&&u.get(d)?\"replaceMerge\":\"normalMerge\":\"replaceAll\",v=epe(h,f,p);j0t(v,d,jr),a[d]=null,i.set(d,null),o.set(d,0);var g=[],y=[],b=0,x;q(v,function(F,S){var E=F.existing,w=F.newOption;if(!w)E&&(E.mergeOption({},this),E.optionUpdated({},!1));else{var D=d===\"series\",A=jr.getClass(d,F.keyInfo.subType,!D);if(!A)return;if(d===\"tooltip\"){if(x)return;x=!0}if(E&&E.constructor===A)E.name=F.keyInfo.name,E.mergeOption(w,this),E.optionUpdated(w,!1);else{var _=Xe({componentIndex:S},F.keyInfo);E=new A(w,this,this,_),Xe(E,_),F.brandNew&&(E.__requireNewView=!0),E.init(w,this,this),E.optionUpdated(null,!0)}}E?(g.push(E.option),y.push(E),b++):(g.push(void 0),y.push(void 0))},this),a[d]=g,i.set(d,y),o.set(d,b),d===\"series\"&&rS(this)}this._seriesIndices||rS(this)},t.prototype.getOption=function(){var r=lr(this.option);return q(r,function(n,a){if(jr.hasClass(a)){for(var i=An(n),o=i.length,l=!1,s=o-1;s>=0;s--)i[s]&&!_2(i[s])?l=!0:(i[s]=null,!l&&o--);i.length=o,r[a]=i}}),delete r[$Y],r},t.prototype.getTheme=function(){return this._theme},t.prototype.getLocaleModel=function(){return this._locale},t.prototype.setUpdatePayload=function(r){this._payload=r},t.prototype.getUpdatePayload=function(){return this._payload},t.prototype.getComponent=function(r,n){var a=this._componentsMap.get(r);if(a){var i=a[n||0];if(i)return i;if(n==null){for(var o=0;o<a.length;o++)if(a[o])return a[o]}}},t.prototype.queryComponents=function(r){var n=r.mainType;if(!n)return[];var a=r.index,i=r.id,o=r.name,l=this._componentsMap.get(n);if(!l||!l.length)return[];var s;return a!=null?(s=[],q(An(a),function(u){l[u]&&s.push(l[u])})):i!=null?s=LY(\"id\",i,l):o!=null?s=LY(\"name\",o,l):s=hn(l,function(u){return!!u}),jY(s,r)},t.prototype.findComponents=function(r){var n=r.query,a=r.mainType,i=l(n),o=i?this.queryComponents(i):hn(this._componentsMap.get(a),function(u){return!!u});return s(jY(o,r));function l(u){var c=a+\"Index\",d=a+\"Id\",f=a+\"Name\";return u&&(u[c]!=null||u[d]!=null||u[f]!=null)?{mainType:a,index:u[c],id:u[d],name:u[f]}:null}function s(u){return r.filter?hn(u,r.filter):u}},t.prototype.eachComponent=function(r,n,a){var i=this._componentsMap;if(er(r)){var o=n,l=r;i.each(function(d,f){for(var h=0;d&&h<d.length;h++){var p=d[h];p&&l.call(o,f,p,p.componentIndex)}})}else for(var s=At(r)?i.get(r):ir(r)?this.findComponents(r):null,u=0;s&&u<s.length;u++){var c=s[u];c&&n.call(a,c,c.componentIndex)}},t.prototype.getSeriesByName=function(r){var n=qa(r,null);return hn(this._componentsMap.get(\"series\"),function(a){return!!a&&n!=null&&a.name===n})},t.prototype.getSeriesByIndex=function(r){return this._componentsMap.get(\"series\")[r]},t.prototype.getSeriesByType=function(r){return hn(this._componentsMap.get(\"series\"),function(n){return!!n&&n.subType===r})},t.prototype.getSeries=function(){return hn(this._componentsMap.get(\"series\"),function(r){return!!r})},t.prototype.getSeriesCount=function(){return this._componentsCount.get(\"series\")},t.prototype.eachSeries=function(r,n){N1(this),q(this._seriesIndices,function(a){var i=this._componentsMap.get(\"series\")[a];r.call(n,i,a)},this)},t.prototype.eachRawSeries=function(r,n){q(this._componentsMap.get(\"series\"),function(a){a&&r.call(n,a,a.componentIndex)})},t.prototype.eachSeriesByType=function(r,n,a){N1(this),q(this._seriesIndices,function(i){var o=this._componentsMap.get(\"series\")[i];o.subType===r&&n.call(a,o,i)},this)},t.prototype.eachRawSeriesByType=function(r,n,a){return q(this.getSeriesByType(r),n,a)},t.prototype.isSeriesFiltered=function(r){return N1(this),this._seriesIndicesMap.get(r.componentIndex)==null},t.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},t.prototype.filterSeries=function(r,n){N1(this);var a=[];q(this._seriesIndices,function(i){var o=this._componentsMap.get(\"series\")[i];r.call(n,o,i)&&a.push(i)},this),this._seriesIndices=a,this._seriesIndicesMap=Gt(a)},t.prototype.restoreData=function(r){rS(this);var n=this._componentsMap,a=[];n.each(function(i,o){jr.hasClass(o)&&a.push(o)}),jr.topologicalTravel(a,jr.getAllClassMainTypes(),function(i){q(n.get(i),function(o){o&&(i!==\"series\"||!pyt(o,r))&&o.restoreData()})})},t.internalField=function(){rS=function(r){var n=r._seriesIndices=[];q(r._componentsMap.get(\"series\"),function(a){a&&n.push(a.componentIndex)}),r._seriesIndicesMap=Gt(n)},N1=function(r){},NY=function(r,n){r.option={},r.option[$Y]=hyt,r._componentsMap=Gt({series:[]}),r._componentsCount=Gt();var a=n.aria;ir(a)&&a.enabled==null&&(a.enabled=!0),myt(n,r._theme.option),Er(n,iyt,!1),r._mergeOption(n,null)}}(),t}(pn);function pyt(e,t){if(t){var r=t.seriesIndex,n=t.seriesId,a=t.seriesName;return r!=null&&e.componentIndex!==r||n!=null&&e.id!==n||a!=null&&e.name!==a}}function myt(e,t){var r=e.color&&!e.colorLayer;q(t,function(n,a){a===\"colorLayer\"&&r||jr.hasClass(a)||(typeof n==\"object\"?e[a]=e[a]?Er(e[a],n,!1):lr(n):e[a]==null&&(e[a]=n))})}function LY(e,t,r){if(nt(t)){var n=Gt();return q(t,function(i){if(i!=null){var o=qa(i,null);o!=null&&n.set(i,!0)}}),hn(r,function(i){return i&&n.get(i[e])})}else{var a=qa(t,null);return hn(r,function(i){return i&&a!=null&&i[e]===a})}}function jY(e,t){return t.hasOwnProperty(\"subType\")?hn(e,function(r){return r&&r.subType===t.subType}):e}function zY(e){var t=Gt();return e&&q(An(e.replaceMerge),function(r){t.set(r,!0)}),{replaceMergeMainTypeMap:t}}Ca(BN,ON);var vyt=[\"getDom\",\"getZr\",\"getWidth\",\"getHeight\",\"getDevicePixelRatio\",\"dispatchAction\",\"isSSR\",\"isDisposed\",\"on\",\"off\",\"getDataURL\",\"getConnectedDataURL\",\"getOption\",\"getId\",\"updateLabelLayout\"],dme=function(){function e(t){q(vyt,function(r){this[r]=Pt(t[r],t)},this)}return e}(),KT={},t1=function(){function e(){this._coordinateSystems=[]}return e.prototype.create=function(t,r){var n=[];q(KT,function(a,i){var o=a.create(t,r);n=n.concat(o||[])}),this._coordinateSystems=n},e.prototype.update=function(t,r){q(this._coordinateSystems,function(n){n.update&&n.update(t,r)})},e.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},e.register=function(t,r){KT[t]=r},e.get=function(t){return KT[t]},e}(),gyt=/^(min|max)?(.+)$/,yyt=function(){function e(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return e.prototype.setOption=function(t,r,n){t&&(q(An(t.series),function(o){o&&o.data&&Uo(o.data)&&C2(o.data)}),q(An(t.dataset),function(o){o&&o.source&&Uo(o.source)&&C2(o.source)})),t=lr(t);var a=this._optionBackup,i=byt(t,r,!a);this._newBaseOption=i.baseOption,a?(i.timelineOptions.length&&(a.timelineOptions=i.timelineOptions),i.mediaList.length&&(a.mediaList=i.mediaList),i.mediaDefault&&(a.mediaDefault=i.mediaDefault)):this._optionBackup=i},e.prototype.mountOption=function(t){var r=this._optionBackup;return this._timelineOptions=r.timelineOptions,this._mediaList=r.mediaList,this._mediaDefault=r.mediaDefault,this._currentMediaIndices=[],lr(t?r.baseOption:this._newBaseOption)},e.prototype.getTimelineOption=function(t){var r,n=this._timelineOptions;if(n.length){var a=t.getComponent(\"timeline\");a&&(r=lr(n[a.getCurrentIndex()]))}return r},e.prototype.getMediaOption=function(t){var r=this._api.getWidth(),n=this._api.getHeight(),a=this._mediaList,i=this._mediaDefault,o=[],l=[];if(!a.length&&!i)return l;for(var s=0,u=a.length;s<u;s++)xyt(a[s].query,r,n)&&o.push(s);return!o.length&&i&&(o=[-1]),o.length&&!Fyt(o,this._currentMediaIndices)&&(l=ot(o,function(c){return lr(c===-1?i.option:a[c].option)})),this._currentMediaIndices=o,l},e}();function byt(e,t,r){var n=[],a,i,o=e.baseOption,l=e.timeline,s=e.options,u=e.media,c=!!e.media,d=!!(s||l||o&&o.timeline);o?(i=o,i.timeline||(i.timeline=l)):((d||c)&&(e.options=e.media=null),i=e),c&&nt(u)&&q(u,function(h){h&&h.option&&(h.query?n.push(h):a||(a=h))}),f(i),q(s,function(h){return f(h)}),q(n,function(h){return f(h.option)});function f(h){q(t,function(p){p(h,r)})}return{baseOption:i,timelineOptions:s||[],mediaDefault:a,mediaList:n}}function xyt(e,t,r){var n={width:t,height:r,aspectratio:t/r},a=!0;return q(e,function(i,o){var l=o.match(gyt);if(!(!l||!l[1]||!l[2])){var s=l[1],u=l[2].toLowerCase();Cyt(n[u],i,s)||(a=!1)}}),a}function Cyt(e,t,r){return r===\"min\"?e>=t:r===\"max\"?e<=t:e===t}function Fyt(e,t){return e.join(\",\")===t.join(\",\")}var zs=q,P2=ir,HY=[\"areaStyle\",\"lineStyle\",\"nodeStyle\",\"linkStyle\",\"chordStyle\",\"label\",\"labelLine\"];function YT(e){var t=e&&e.itemStyle;if(t)for(var r=0,n=HY.length;r<n;r++){var a=HY[r],i=t.normal,o=t.emphasis;i&&i[a]&&(e[a]=e[a]||{},e[a].normal?Er(e[a].normal,i[a]):e[a].normal=i[a],i[a]=null),o&&o[a]&&(e[a]=e[a]||{},e[a].emphasis?Er(e[a].emphasis,o[a]):e[a].emphasis=o[a],o[a]=null)}}function fo(e,t,r){if(e&&e[t]&&(e[t].normal||e[t].emphasis)){var n=e[t].normal,a=e[t].emphasis;n&&(r?(e[t].normal=e[t].emphasis=null,rr(e[t],n)):e[t]=n),a&&(e.emphasis=e.emphasis||{},e.emphasis[t]=a,a.focus&&(e.emphasis.focus=a.focus),a.blurScope&&(e.emphasis.blurScope=a.blurScope))}}function wy(e){fo(e,\"itemStyle\"),fo(e,\"lineStyle\"),fo(e,\"areaStyle\"),fo(e,\"label\"),fo(e,\"labelLine\"),fo(e,\"upperLabel\"),fo(e,\"edgeLabel\")}function Ma(e,t){var r=P2(e)&&e[t],n=P2(r)&&r.textStyle;if(n)for(var a=0,i=YK.length;a<i;a++){var o=YK[a];n.hasOwnProperty(o)&&(r[o]=n[o])}}function as(e){e&&(wy(e),Ma(e,\"label\"),e.emphasis&&Ma(e.emphasis,\"label\"))}function Syt(e){if(P2(e)){YT(e),wy(e),Ma(e,\"label\"),Ma(e,\"upperLabel\"),Ma(e,\"edgeLabel\"),e.emphasis&&(Ma(e.emphasis,\"label\"),Ma(e.emphasis,\"upperLabel\"),Ma(e.emphasis,\"edgeLabel\"));var t=e.markPoint;t&&(YT(t),as(t));var r=e.markLine;r&&(YT(r),as(r));var n=e.markArea;n&&as(n);var a=e.data;if(e.type===\"graph\"){a=a||e.nodes;var i=e.links||e.edges;if(i&&!Uo(i))for(var o=0;o<i.length;o++)as(i[o]);q(e.categories,function(u){wy(u)})}if(a&&!Uo(a))for(var o=0;o<a.length;o++)as(a[o]);if(t=e.markPoint,t&&t.data)for(var l=t.data,o=0;o<l.length;o++)as(l[o]);if(r=e.markLine,r&&r.data)for(var s=r.data,o=0;o<s.length;o++)nt(s[o])?(as(s[o][0]),as(s[o][1])):as(s[o]);e.type===\"gauge\"?(Ma(e,\"axisLabel\"),Ma(e,\"title\"),Ma(e,\"detail\")):e.type===\"treemap\"?(fo(e.breadcrumb,\"itemStyle\"),q(e.levels,function(u){wy(u)})):e.type===\"tree\"&&wy(e.leaves)}}function Tc(e){return nt(e)?e:e?[e]:[]}function VY(e){return(nt(e)?e[0]:e)||{}}function wyt(e,t){zs(Tc(e.series),function(n){P2(n)&&Syt(n)});var r=[\"xAxis\",\"yAxis\",\"radiusAxis\",\"angleAxis\",\"singleAxis\",\"parallelAxis\",\"radar\"];t&&r.push(\"valueAxis\",\"categoryAxis\",\"logAxis\",\"timeAxis\"),zs(r,function(n){zs(Tc(e[n]),function(a){a&&(Ma(a,\"axisLabel\"),Ma(a.axisPointer,\"label\"))})}),zs(Tc(e.parallel),function(n){var a=n&&n.parallelAxisDefault;Ma(a,\"axisLabel\"),Ma(a&&a.axisPointer,\"label\")}),zs(Tc(e.calendar),function(n){fo(n,\"itemStyle\"),Ma(n,\"dayLabel\"),Ma(n,\"monthLabel\"),Ma(n,\"yearLabel\")}),zs(Tc(e.radar),function(n){Ma(n,\"name\"),n.name&&n.axisName==null&&(n.axisName=n.name,delete n.name),n.nameGap!=null&&n.axisNameGap==null&&(n.axisNameGap=n.nameGap,delete n.nameGap)}),zs(Tc(e.geo),function(n){P2(n)&&(as(n),zs(Tc(n.regions),function(a){as(a)}))}),zs(Tc(e.timeline),function(n){as(n),fo(n,\"label\"),fo(n,\"itemStyle\"),fo(n,\"controlStyle\",!0);var a=n.data;nt(a)&&q(a,function(i){ir(i)&&(fo(i,\"label\"),fo(i,\"itemStyle\"))})}),zs(Tc(e.toolbox),function(n){fo(n,\"iconStyle\"),zs(n.feature,function(a){fo(a,\"iconStyle\")})}),Ma(VY(e.axisPointer),\"label\"),Ma(VY(e.tooltip).axisPointer,\"label\")}function Eyt(e,t){for(var r=t.split(\",\"),n=e,a=0;a<r.length&&(n=n&&n[r[a]],n!=null);a++);return n}function Dyt(e,t,r,n){for(var a=t.split(\",\"),i=e,o,l=0;l<a.length-1;l++)o=a[l],i[o]==null&&(i[o]={}),i=i[o];i[a[l]]==null&&(i[a[l]]=r)}function WY(e){e&&q(Ayt,function(t){t[0]in e&&!(t[1]in e)&&(e[t[1]]=e[t[0]])})}var Ayt=[[\"x\",\"left\"],[\"y\",\"top\"],[\"x2\",\"right\"],[\"y2\",\"bottom\"]],_yt=[\"grid\",\"geo\",\"parallel\",\"legend\",\"toolbox\",\"title\",\"visualMap\",\"dataZoom\",\"timeline\"],qT=[[\"borderRadius\",\"barBorderRadius\"],[\"borderColor\",\"barBorderColor\"],[\"borderWidth\",\"barBorderWidth\"]];function $1(e){var t=e&&e.itemStyle;if(t)for(var r=0;r<qT.length;r++){var n=qT[r][1],a=qT[r][0];t[n]!=null&&(t[a]=t[n])}}function GY(e){e&&e.alignTo===\"edge\"&&e.margin!=null&&e.edgeDistance==null&&(e.edgeDistance=e.margin)}function UY(e){e&&e.downplay&&!e.blur&&(e.blur=e.downplay)}function Tyt(e){e&&e.focusNodeAdjacency!=null&&(e.emphasis=e.emphasis||{},e.emphasis.focus==null&&(e.emphasis.focus=\"adjacency\"))}function fme(e,t){if(e)for(var r=0;r<e.length;r++)t(e[r]),e[r]&&fme(e[r].children,t)}function hme(e,t){wyt(e,t),e.series=An(e.series),q(e.series,function(r){if(ir(r)){var n=r.type;if(n===\"line\")r.clipOverflow!=null&&(r.clip=r.clipOverflow);else if(n===\"pie\"||n===\"gauge\"){r.clockWise!=null&&(r.clockwise=r.clockWise),GY(r.label);var a=r.data;if(a&&!Uo(a))for(var i=0;i<a.length;i++)GY(a[i]);r.hoverOffset!=null&&(r.emphasis=r.emphasis||{},(r.emphasis.scaleSize=null)&&(r.emphasis.scaleSize=r.hoverOffset))}else if(n===\"gauge\"){var o=Eyt(r,\"pointer.color\");o!=null&&Dyt(r,\"itemStyle.color\",o)}else if(n===\"bar\"){$1(r),$1(r.backgroundStyle),$1(r.emphasis);var a=r.data;if(a&&!Uo(a))for(var i=0;i<a.length;i++)typeof a[i]==\"object\"&&($1(a[i]),$1(a[i]&&a[i].emphasis))}else if(n===\"sunburst\"){var l=r.highlightPolicy;l&&(r.emphasis=r.emphasis||{},r.emphasis.focus||(r.emphasis.focus=l)),UY(r),fme(r.data,UY)}else n===\"graph\"||n===\"sankey\"?Tyt(r):n===\"map\"&&(r.mapType&&!r.map&&(r.map=r.mapType),r.mapLocation&&rr(r,r.mapLocation));r.hoverAnimation!=null&&(r.emphasis=r.emphasis||{},r.emphasis&&r.emphasis.scale==null&&(r.emphasis.scale=r.hoverAnimation)),WY(r)}}),e.dataRange&&(e.visualMap=e.dataRange),q(_yt,function(r){var n=e[r];n&&(nt(n)||(n=[n]),q(n,function(a){WY(a)}))})}function Iyt(e){var t=Gt();e.eachSeries(function(r){var n=r.get(\"stack\");if(n){var a=t.get(n)||t.set(n,[]),i=r.getData(),o={stackResultDimension:i.getCalculationInfo(\"stackResultDimension\"),stackedOverDimension:i.getCalculationInfo(\"stackedOverDimension\"),stackedDimension:i.getCalculationInfo(\"stackedDimension\"),stackedByDimension:i.getCalculationInfo(\"stackedByDimension\"),isStackedByIndex:i.getCalculationInfo(\"isStackedByIndex\"),data:i,seriesModel:r};if(!o.stackedDimension||!(o.isStackedByIndex||o.stackedByDimension))return;a.length&&i.setCalculationInfo(\"stackedOnSeries\",a[a.length-1].seriesModel),a.push(o)}}),t.each(kyt)}function kyt(e){q(e,function(t,r){var n=[],a=[NaN,NaN],i=[t.stackResultDimension,t.stackedOverDimension],o=t.data,l=t.isStackedByIndex,s=t.seriesModel.get(\"stackStrategy\")||\"samesign\";o.modify(i,function(u,c,d){var f=o.get(t.stackedDimension,d);if(isNaN(f))return a;var h,p;l?p=o.getRawIndex(d):h=o.get(t.stackedByDimension,d);for(var v=NaN,g=r-1;g>=0;g--){var y=e[g];if(l||(p=y.data.rawIndexOf(y.stackedByDimension,h)),p>=0){var b=y.data.getByRawIndex(y.stackResultDimension,p);if(s===\"all\"||s===\"positive\"&&b>0||s===\"negative\"&&b<0||s===\"samesign\"&&f>=0&&b>0||s===\"samesign\"&&f<=0&&b<0){f=I0t(f,b),v=b;break}}}return n[0]=f,n[1]=v,n})})}var lA=function(){function e(t){this.data=t.data||(t.sourceFormat===Sc?{}:[]),this.sourceFormat=t.sourceFormat||ime,this.seriesLayoutBy=t.seriesLayoutBy||oc,this.startIndex=t.startIndex||0,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.metaRawOption=t.metaRawOption;var r=this.dimensionsDefine=t.dimensionsDefine;if(r)for(var n=0;n<r.length;n++){var a=r[n];a.type==null&&sme(this,n)===$i.Must&&(a.type=\"ordinal\")}}return e}();function NN(e){return e instanceof lA}function vP(e,t,r){r=r||pme(e);var n=t.seriesLayoutBy,a=Myt(e,r,n,t.sourceHeader,t.dimensions),i=new lA({data:e,sourceFormat:r,seriesLayoutBy:n,dimensionsDefine:a.dimensionsDefine,startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,metaRawOption:lr(t)});return i}function $N(e){return new lA({data:e,sourceFormat:Uo(e)?Rf:Ps})}function Ryt(e){return new lA({data:e.data,sourceFormat:e.sourceFormat,seriesLayoutBy:e.seriesLayoutBy,dimensionsDefine:lr(e.dimensionsDefine),startIndex:e.startIndex,dimensionsDetectedCount:e.dimensionsDetectedCount})}function pme(e){var t=ime;if(Uo(e))t=Rf;else if(nt(e)){e.length===0&&(t=Eo);for(var r=0,n=e.length;r<n;r++){var a=e[r];if(a!=null){if(nt(a)||Uo(a)){t=Eo;break}else if(ir(a)){t=Os;break}}}}else if(ir(e)){for(var i in e)if($t(e,i)&&Yi(e[i])){t=Sc;break}}return t}function Myt(e,t,r,n,a){var i,o;if(!e)return{dimensionsDefine:KY(a),startIndex:o,dimensionsDetectedCount:i};if(t===Eo){var l=e;n===\"auto\"||n==null?YY(function(u){u!=null&&u!==\"-\"&&(At(u)?o==null&&(o=1):o=0)},r,l,10):o=nn(n)?n:n?1:0,!a&&o===1&&(a=[],YY(function(u,c){a[c]=u!=null?u+\"\":\"\"},r,l,1/0)),i=a?a.length:r===e1?l.length:l[0]?l[0].length:null}else if(t===Os)a||(a=Pyt(e));else if(t===Sc)a||(a=[],q(e,function(u,c){a.push(c)}));else if(t===Ps){var s=Wg(e[0]);i=nt(s)&&s.length||1}return{startIndex:o,dimensionsDefine:KY(a),dimensionsDetectedCount:i}}function Pyt(e){for(var t=0,r;t<e.length&&!(r=e[t++]););if(r)return Ur(r)}function KY(e){if(e){var t=Gt();return ot(e,function(r,n){r=ir(r)?r:{name:r};var a={name:r.name,displayName:r.displayName,type:r.type};if(a.name==null)return a;a.name+=\"\",a.displayName==null&&(a.displayName=a.name);var i=t.get(a.name);return i?a.name+=\"-\"+i.count++:t.set(a.name,{count:1}),a})}}function YY(e,t,r,n){if(t===e1)for(var a=0;a<r.length&&a<n;a++)e(r[a]?r[a][0]:null,a);else for(var i=r[0]||[],a=0;a<i.length&&a<n;a++)e(i[a],a)}function mme(e){var t=e.sourceFormat;return t===Os||t===Sc}var Ph,Oh,Bh,qY,XY,vme=function(){function e(t,r){var n=NN(t)?t:$N(t);this._source=n;var a=this._data=n.data;n.sourceFormat===Rf&&(this._offset=0,this._dimSize=r,this._data=a),XY(this,a,n)}return e.prototype.getSource=function(){return this._source},e.prototype.count=function(){return 0},e.prototype.getItem=function(t,r){},e.prototype.appendData=function(t){},e.prototype.clean=function(){},e.protoInitialize=function(){var t=e.prototype;t.pure=!1,t.persistent=!0}(),e.internalField=function(){var t;XY=function(o,l,s){var u=s.sourceFormat,c=s.seriesLayoutBy,d=s.startIndex,f=s.dimensionsDefine,h=qY[LN(u,c)];if(Xe(o,h),u===Rf)o.getItem=r,o.count=a,o.fillStorage=n;else{var p=gme(u,c);o.getItem=Pt(p,null,l,d,f);var v=yme(u,c);o.count=Pt(v,null,l,d,f)}};var r=function(o,l){o=o-this._offset,l=l||[];for(var s=this._data,u=this._dimSize,c=u*o,d=0;d<u;d++)l[d]=s[c+d];return l},n=function(o,l,s,u){for(var c=this._data,d=this._dimSize,f=0;f<d;f++){for(var h=u[f],p=h[0]==null?1/0:h[0],v=h[1]==null?-1/0:h[1],g=l-o,y=s[f],b=0;b<g;b++){var x=c[b*d+f];y[o+b]=x,x<p&&(p=x),x>v&&(v=x)}h[0]=p,h[1]=v}},a=function(){return this._data?this._data.length/this._dimSize:0};qY=(t={},t[Eo+\"_\"+oc]={pure:!0,appendData:i},t[Eo+\"_\"+e1]={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".')}},t[Os]={pure:!0,appendData:i},t[Sc]={pure:!0,appendData:function(o){var l=this._data;q(o,function(s,u){for(var c=l[u]||(l[u]=[]),d=0;d<(s||[]).length;d++)c.push(s[d])})}},t[Ps]={appendData:i},t[Rf]={persistent:!1,pure:!0,appendData:function(o){this._data=o},clean:function(){this._offset+=this.count(),this._data=null}},t);function i(o){for(var l=0;l<o.length;l++)this._data.push(o[l])}}(),e}(),JY=function(e,t,r,n){return e[n]},Oyt=(Ph={},Ph[Eo+\"_\"+oc]=function(e,t,r,n){return e[n+t]},Ph[Eo+\"_\"+e1]=function(e,t,r,n,a){n+=t;for(var i=a||[],o=e,l=0;l<o.length;l++){var s=o[l];i[l]=s?s[n]:null}return i},Ph[Os]=JY,Ph[Sc]=function(e,t,r,n,a){for(var i=a||[],o=0;o<r.length;o++){var l=r[o].name,s=e[l];i[o]=s?s[n]:null}return i},Ph[Ps]=JY,Ph);function gme(e,t){var r=Oyt[LN(e,t)];return r}var ZY=function(e,t,r){return e.length},Byt=(Oh={},Oh[Eo+\"_\"+oc]=function(e,t,r){return Math.max(0,e.length-t)},Oh[Eo+\"_\"+e1]=function(e,t,r){var n=e[0];return n?Math.max(0,n.length-t):0},Oh[Os]=ZY,Oh[Sc]=function(e,t,r){var n=r[0].name,a=e[n];return a?a.length:0},Oh[Ps]=ZY,Oh);function yme(e,t){var r=Byt[LN(e,t)];return r}var XT=function(e,t,r){return e[t]},Nyt=(Bh={},Bh[Eo]=XT,Bh[Os]=function(e,t,r){return e[r]},Bh[Sc]=XT,Bh[Ps]=function(e,t,r){var n=Wg(e);return n instanceof Array?n[t]:n},Bh[Rf]=XT,Bh);function bme(e){var t=Nyt[e];return t}function LN(e,t){return e===Eo?e+\"_\"+t:e}function lg(e,t,r){if(e){var n=e.getRawDataItem(t);if(n!=null){var a=e.getStore(),i=a.getSource().sourceFormat;if(r!=null){var o=e.getDimensionIndex(r),l=a.getDimensionProperty(o);return bme(i)(n,o,l)}else{var s=n;return i===Ps&&(s=Wg(n)),s}}}}var $yt=/\\{@(.+?)\\}/g,sA=function(){function e(){}return e.prototype.getDataParams=function(t,r){var n=this.getData(r),a=this.getRawValue(t,r),i=n.getRawIndex(t),o=n.getName(t),l=n.getRawDataItem(t),s=n.getItemVisual(t,\"style\"),u=s&&s[n.getItemVisual(t,\"drawType\")||\"fill\"],c=s&&s.stroke,d=this.mainType,f=d===\"series\",h=n.userOutput&&n.userOutput.get();return{componentType:d,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:f?this.subType:null,seriesIndex:this.seriesIndex,seriesId:f?this.id:null,seriesName:f?this.name:null,name:o,dataIndex:i,data:l,dataType:r,value:a,color:u,borderColor:c,dimensionNames:h?h.fullDimensions:null,encode:h?h.encode:null,$vars:[\"seriesName\",\"name\",\"value\"]}},e.prototype.getFormattedLabel=function(t,r,n,a,i,o){r=r||\"normal\";var l=this.getData(n),s=this.getDataParams(t,n);if(o&&(s.value=o.interpolatedValue),a!=null&&nt(s.value)&&(s.value=s.value[a]),!i){var u=l.getItemModel(t);i=u.get(r===\"normal\"?[\"label\",\"formatter\"]:[r,\"label\",\"formatter\"])}if(er(i))return s.status=r,s.dimensionIndex=a,i(s);if(At(i)){var c=kN(i,s);return c.replace($yt,function(d,f){var h=f.length,p=f;p.charAt(0)===\"[\"&&p.charAt(h-1)===\"]\"&&(p=+p.slice(1,h-1));var v=lg(l,t,p);if(o&&nt(o.interpolatedValue)){var g=l.getDimensionIndex(p);g>=0&&(v=o.interpolatedValue[g])}return v!=null?v+\"\":\"\"})}},e.prototype.getRawValue=function(t,r){return lg(this.getData(r),t)},e.prototype.formatTooltip=function(t,r,n){},e}();function QY(e){var t,r;return ir(e)?e.type&&(r=e):t=e,{text:t,frag:r}}function yb(e){return new Lyt(e)}var Lyt=function(){function e(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return e.prototype.perform=function(t){var r=this._upstream,n=t&&t.skip;if(this._dirty&&r){var a=this.context;a.data=a.outputData=r.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var i;this._plan&&!n&&(i=this._plan(this.context));var o=c(this._modBy),l=this._modDataCount||0,s=c(t&&t.modBy),u=t&&t.modDataCount||0;(o!==s||l!==u)&&(i=\"reset\");function c(b){return!(b>=1)&&(b=1),b}var d;(this._dirty||i===\"reset\")&&(this._dirty=!1,d=this._doReset(n)),this._modBy=s,this._modDataCount=u;var f=t&&t.step;if(r?this._dueEnd=r._outputDueEnd:this._dueEnd=this._count?this._count(this.context):1/0,this._progress){var h=this._dueIndex,p=Math.min(f!=null?this._dueIndex+f:1/0,this._dueEnd);if(!n&&(d||h<p)){var v=this._progress;if(nt(v))for(var g=0;g<v.length;g++)this._doProgress(v[g],h,p,s,u);else this._doProgress(v,h,p,s,u)}this._dueIndex=p;var y=this._settedOutputEnd!=null?this._settedOutputEnd:p;this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=this._settedOutputEnd!=null?this._settedOutputEnd:this._dueEnd;return this.unfinished()},e.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},e.prototype._doProgress=function(t,r,n,a,i){eq.reset(r,n,a,i),this._callingProgress=t,this._callingProgress({start:r,end:n,count:n-r,next:eq.next},this.context)},e.prototype._doReset=function(t){this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null;var r,n;!t&&this._reset&&(r=this._reset(this.context),r&&r.progress&&(n=r.forceFirstProgress,r=r.progress),nt(r)&&!r.length&&(r=null)),this._progress=r,this._modBy=this._modDataCount=null;var a=this._downstream;return a&&a.dirty(),n},e.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},e.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},e.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},e.prototype.getUpstream=function(){return this._upstream},e.prototype.getDownstream=function(){return this._downstream},e.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},e}(),eq=function(){var e,t,r,n,a,i={reset:function(s,u,c,d){t=s,e=u,r=c,n=d,a=Math.ceil(n/r),i.next=r>1&&n>0?l:o}};return i;function o(){return t<e?t++:null}function l(){var s=t%a*r+Math.ceil(t/a),u=t>=e?null:s<n?s:t;return t++,u}}();function Mf(e,t){var r=t&&t.type;return r===\"ordinal\"?e:(r===\"time\"&&!nn(e)&&e!=null&&e!==\"-\"&&(e=+jl(e)),e==null||e===\"\"?NaN:Number(e))}var jyt=Gt({number:function(e){return parseFloat(e)},time:function(e){return+jl(e)},trim:function(e){return At(e)?vs(e):e}});function xme(e){return jyt.get(e)}var Cme={lt:function(e,t){return e<t},lte:function(e,t){return e<=t},gt:function(e,t){return e>t},gte:function(e,t){return e>=t}},zyt=function(){function e(t,r){if(!nn(r)){var n=\"\";bn(n)}this._opFn=Cme[t],this._rvalFloat=vc(r)}return e.prototype.evaluate=function(t){return nn(t)?this._opFn(t,this._rvalFloat):this._opFn(vc(t),this._rvalFloat)},e}(),Fme=function(){function e(t,r){var n=t===\"desc\";this._resultLT=n?1:-1,r==null&&(r=n?\"min\":\"max\"),this._incomparable=r===\"min\"?-1/0:1/0}return e.prototype.evaluate=function(t,r){var n=nn(t)?t:vc(t),a=nn(r)?r:vc(r),i=isNaN(n),o=isNaN(a);if(i&&(n=this._incomparable),o&&(a=this._incomparable),i&&o){var l=At(t),s=At(r);l&&(n=s?t:0),s&&(a=l?r:0)}return n<a?this._resultLT:n>a?-this._resultLT:0},e}(),Hyt=function(){function e(t,r){this._rval=r,this._isEQ=t,this._rvalTypeof=typeof r,this._rvalFloat=vc(r)}return e.prototype.evaluate=function(t){var r=t===this._rval;if(!r){var n=typeof t;n!==this._rvalTypeof&&(n===\"number\"||this._rvalTypeof===\"number\")&&(r=vc(t)===this._rvalFloat)}return this._isEQ?r:!r},e}();function Vyt(e,t){return e===\"eq\"||e===\"ne\"?new Hyt(e===\"eq\",t):$t(Cme,e)?new zyt(e,t):null}var Wyt=function(){function e(){}return e.prototype.getRawData=function(){throw new Error(\"not supported\")},e.prototype.getRawDataItem=function(t){throw new Error(\"not supported\")},e.prototype.cloneRawData=function(){},e.prototype.getDimensionInfo=function(t){},e.prototype.cloneAllDimensionInfo=function(){},e.prototype.count=function(){},e.prototype.retrieveValue=function(t,r){},e.prototype.retrieveValueFromItem=function(t,r){},e.prototype.convertValue=function(t,r){return Mf(t,r)},e}();function Gyt(e,t){var r=new Wyt,n=e.data,a=r.sourceFormat=e.sourceFormat,i=e.startIndex,o=\"\";e.seriesLayoutBy!==oc&&bn(o);var l=[],s={},u=e.dimensionsDefine;if(u)q(u,function(v,g){var y=v.name,b={index:g,name:y,displayName:v.displayName};if(l.push(b),y!=null){var x=\"\";$t(s,y)&&bn(x),s[y]=b}});else for(var c=0;c<e.dimensionsDetectedCount;c++)l.push({index:c});var d=gme(a,oc);t.__isBuiltIn&&(r.getRawDataItem=function(v){return d(n,i,l,v)},r.getRawData=Pt(Uyt,null,e)),r.cloneRawData=Pt(Kyt,null,e);var f=yme(a,oc);r.count=Pt(f,null,n,i,l);var h=bme(a);r.retrieveValue=function(v,g){var y=d(n,i,l,v);return p(y,g)};var p=r.retrieveValueFromItem=function(v,g){if(v!=null){var y=l[g];if(y)return h(v,g,y.name)}};return r.getDimensionInfo=Pt(Yyt,null,l,s),r.cloneAllDimensionInfo=Pt(qyt,null,l),r}function Uyt(e){var t=e.sourceFormat;if(!jN(t)){var r=\"\";bn(r)}return e.data}function Kyt(e){var t=e.sourceFormat,r=e.data;if(!jN(t)){var n=\"\";bn(n)}if(t===Eo){for(var a=[],i=0,o=r.length;i<o;i++)a.push(r[i].slice());return a}else if(t===Os){for(var a=[],i=0,o=r.length;i<o;i++)a.push(Xe({},r[i]));return a}}function Yyt(e,t,r){if(r!=null){if(nn(r)||!isNaN(r)&&!$t(t,r))return e[r];if($t(t,r))return t[r]}}function qyt(e){return lr(e)}var Sme=Gt();function Xyt(e){e=lr(e);var t=e.type,r=\"\";t||bn(r);var n=t.split(\":\");n.length!==2&&bn(r);var a=!1;n[0]===\"echarts\"&&(t=n[1],a=!0),e.__isBuiltIn=a,Sme.set(t,e)}function Jyt(e,t,r){var n=An(e),a=n.length,i=\"\";a||bn(i);for(var o=0,l=a;o<l;o++){var s=n[o];t=Zyt(s,t),o!==l-1&&(t.length=Math.max(t.length,1))}return t}function Zyt(e,t,r,n){var a=\"\";t.length||bn(a),ir(e)||bn(a);var i=e.type,o=Sme.get(i);o||bn(a);var l=ot(t,function(u){return Gyt(u,o)}),s=An(o.transform({upstream:l[0],upstreamList:l,config:lr(e.config)}));return ot(s,function(u,c){var d=\"\";ir(u)||bn(d),u.data||bn(d);var f=pme(u.data);jN(f)||bn(d);var h,p=t[0];if(p&&c===0&&!u.dimensions){var v=p.startIndex;v&&(u.data=p.data.slice(0,v).concat(u.data)),h={seriesLayoutBy:oc,sourceHeader:v,dimensions:p.metaRawOption.dimensions}}else h={seriesLayoutBy:oc,sourceHeader:0,dimensions:u.dimensions};return vP(u.data,h,null)})}function jN(e){return e===Eo||e===Os}var uA=\"undefined\",Qyt=typeof Uint32Array===uA?Array:Uint32Array,ebt=typeof Uint16Array===uA?Array:Uint16Array,wme=typeof Int32Array===uA?Array:Int32Array,tq=typeof Float64Array===uA?Array:Float64Array,Eme={float:tq,int:wme,ordinal:Array,number:Array,time:tq},JT;function gv(e){return e>65535?Qyt:ebt}function yv(){return[1/0,-1/0]}function tbt(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function rq(e,t,r,n,a){var i=Eme[r||\"float\"];if(a){var o=e[t],l=o&&o.length;if(l!==n){for(var s=new i(n),u=0;u<l;u++)s[u]=o[u];e[t]=s}}else e[t]=new i(n)}var gP=function(){function e(){this._chunks=[],this._rawExtent=[],this._extent=[],this._count=0,this._rawCount=0,this._calcDimNameToIdx=Gt()}return e.prototype.initData=function(t,r,n){this._provider=t,this._chunks=[],this._indices=null,this.getRawIndex=this._getRawIdxIdentity;var a=t.getSource(),i=this.defaultDimValueGetter=JT[a.sourceFormat];this._dimValueGetter=n||i,this._rawExtent=[],mme(a),this._dimensions=ot(r,function(o){return{type:o.type,property:o.property}}),this._initDataFromProvider(0,t.count())},e.prototype.getProvider=function(){return this._provider},e.prototype.getSource=function(){return this._provider.getSource()},e.prototype.ensureCalculationDimension=function(t,r){var n=this._calcDimNameToIdx,a=this._dimensions,i=n.get(t);if(i!=null){if(a[i].type===r)return i}else i=a.length;return a[i]={type:r},n.set(t,i),this._chunks[i]=new Eme[r||\"float\"](this._rawCount),this._rawExtent[i]=yv(),i},e.prototype.collectOrdinalMeta=function(t,r){var n=this._chunks[t],a=this._dimensions[t],i=this._rawExtent,o=a.ordinalOffset||0,l=n.length;o===0&&(i[t]=yv());for(var s=i[t],u=o;u<l;u++){var c=n[u]=r.parseAndCollect(n[u]);isNaN(c)||(s[0]=Math.min(c,s[0]),s[1]=Math.max(c,s[1]))}a.ordinalMeta=r,a.ordinalOffset=l,a.type=\"ordinal\"},e.prototype.getOrdinalMeta=function(t){var r=this._dimensions[t],n=r.ordinalMeta;return n},e.prototype.getDimensionProperty=function(t){var r=this._dimensions[t];return r&&r.property},e.prototype.appendData=function(t){var r=this._provider,n=this.count();r.appendData(t);var a=r.count();return r.persistent||(a+=n),n<a&&this._initDataFromProvider(n,a,!0),[n,a]},e.prototype.appendValues=function(t,r){for(var n=this._chunks,a=this._dimensions,i=a.length,o=this._rawExtent,l=this.count(),s=l+Math.max(t.length,r||0),u=0;u<i;u++){var c=a[u];rq(n,u,c.type,s,!0)}for(var d=[],f=l;f<s;f++)for(var h=f-l,p=0;p<i;p++){var c=a[p],v=JT.arrayRows.call(this,t[h]||d,c.property,h,p);n[p][f]=v;var g=o[p];v<g[0]&&(g[0]=v),v>g[1]&&(g[1]=v)}return this._rawCount=this._count=s,{start:l,end:s}},e.prototype._initDataFromProvider=function(t,r,n){for(var a=this._provider,i=this._chunks,o=this._dimensions,l=o.length,s=this._rawExtent,u=ot(o,function(b){return b.property}),c=0;c<l;c++){var d=o[c];s[c]||(s[c]=yv()),rq(i,c,d.type,r,n)}if(a.fillStorage)a.fillStorage(t,r,i,s);else for(var f=[],h=t;h<r;h++){f=a.getItem(h,f);for(var p=0;p<l;p++){var v=i[p],g=this._dimValueGetter(f,u[p],h,p);v[h]=g;var y=s[p];g<y[0]&&(y[0]=g),g>y[1]&&(y[1]=g)}}!a.persistent&&a.clean&&a.clean(),this._rawCount=this._count=r,this._extent=[]},e.prototype.count=function(){return this._count},e.prototype.get=function(t,r){if(!(r>=0&&r<this._count))return NaN;var n=this._chunks[t];return n?n[this.getRawIndex(r)]:NaN},e.prototype.getValues=function(t,r){var n=[],a=[];if(r==null){r=t,t=[];for(var i=0;i<this._dimensions.length;i++)a.push(i)}else a=t;for(var i=0,o=a.length;i<o;i++)n.push(this.get(a[i],r));return n},e.prototype.getByRawIndex=function(t,r){if(!(r>=0&&r<this._rawCount))return NaN;var n=this._chunks[t];return n?n[r]:NaN},e.prototype.getSum=function(t){var r=this._chunks[t],n=0;if(r)for(var a=0,i=this.count();a<i;a++){var o=this.get(t,a);isNaN(o)||(n+=o)}return n},e.prototype.getMedian=function(t){var r=[];this.each([t],function(i){isNaN(i)||r.push(i)});var n=r.sort(function(i,o){return i-o}),a=this.count();return a===0?0:a%2===1?n[(a-1)/2]:(n[a/2]+n[a/2-1])/2},e.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var r=this._indices,n=r[t];if(n!=null&&n<this._count&&n===t)return t;for(var a=0,i=this._count-1;a<=i;){var o=(a+i)/2|0;if(r[o]<t)a=o+1;else if(r[o]>t)i=o-1;else return o}return-1},e.prototype.indicesOfNearest=function(t,r,n){var a=this._chunks,i=a[t],o=[];if(!i)return o;n==null&&(n=1/0);for(var l=1/0,s=-1,u=0,c=0,d=this.count();c<d;c++){var f=this.getRawIndex(c),h=r-i[f],p=Math.abs(h);p<=n&&((p<l||p===l&&h>=0&&s<0)&&(l=p,s=h,u=0),h===s&&(o[u++]=c))}return o.length=u,o},e.prototype.getIndices=function(){var t,r=this._indices;if(r){var n=r.constructor,a=this._count;if(n===Array){t=new n(a);for(var i=0;i<a;i++)t[i]=r[i]}else t=new n(r.buffer,0,a)}else{var n=gv(this._rawCount);t=new n(this.count());for(var i=0;i<t.length;i++)t[i]=i}return t},e.prototype.filter=function(t,r){if(!this._count)return this;for(var n=this.clone(),a=n.count(),i=gv(n._rawCount),o=new i(a),l=[],s=t.length,u=0,c=t[0],d=n._chunks,f=0;f<a;f++){var h=void 0,p=n.getRawIndex(f);if(s===0)h=r(f);else if(s===1){var v=d[c][p];h=r(v,f)}else{for(var g=0;g<s;g++)l[g]=d[t[g]][p];l[g]=f,h=r.apply(null,l)}h&&(o[u++]=p)}return u<a&&(n._indices=o),n._count=u,n._extent=[],n._updateGetRawIdx(),n},e.prototype.selectRange=function(t){var r=this.clone(),n=r._count;if(!n)return this;var a=Ur(t),i=a.length;if(!i)return this;var o=r.count(),l=gv(r._rawCount),s=new l(o),u=0,c=a[0],d=t[c][0],f=t[c][1],h=r._chunks,p=!1;if(!r._indices){var v=0;if(i===1){for(var g=h[a[0]],y=0;y<n;y++){var b=g[y];(b>=d&&b<=f||isNaN(b))&&(s[u++]=v),v++}p=!0}else if(i===2){for(var g=h[a[0]],x=h[a[1]],F=t[a[1]][0],S=t[a[1]][1],y=0;y<n;y++){var b=g[y],E=x[y];(b>=d&&b<=f||isNaN(b))&&(E>=F&&E<=S||isNaN(E))&&(s[u++]=v),v++}p=!0}}if(!p)if(i===1)for(var y=0;y<o;y++){var w=r.getRawIndex(y),b=h[a[0]][w];(b>=d&&b<=f||isNaN(b))&&(s[u++]=w)}else for(var y=0;y<o;y++){for(var D=!0,w=r.getRawIndex(y),A=0;A<i;A++){var _=a[A],b=h[_][w];(b<t[_][0]||b>t[_][1])&&(D=!1)}D&&(s[u++]=r.getRawIndex(y))}return u<o&&(r._indices=s),r._count=u,r._extent=[],r._updateGetRawIdx(),r},e.prototype.map=function(t,r){var n=this.clone(t);return this._updateDims(n,t,r),n},e.prototype.modify=function(t,r){this._updateDims(this,t,r)},e.prototype._updateDims=function(t,r,n){for(var a=t._chunks,i=[],o=r.length,l=t.count(),s=[],u=t._rawExtent,c=0;c<r.length;c++)u[r[c]]=yv();for(var d=0;d<l;d++){for(var f=t.getRawIndex(d),h=0;h<o;h++)s[h]=a[r[h]][f];s[o]=d;var p=n&&n.apply(null,s);if(p!=null){typeof p!=\"object\"&&(i[0]=p,p=i);for(var c=0;c<p.length;c++){var v=r[c],g=p[c],y=u[v],b=a[v];b&&(b[f]=g),g<y[0]&&(y[0]=g),g>y[1]&&(y[1]=g)}}}},e.prototype.lttbDownSample=function(t,r){var n=this.clone([t],!0),a=n._chunks,i=a[t],o=this.count(),l=0,s=Math.floor(1/r),u=this.getRawIndex(0),c,d,f,h=new(gv(this._rawCount))(Math.min((Math.ceil(o/s)+2)*2,o));h[l++]=u;for(var p=1;p<o-1;p+=s){for(var v=Math.min(p+s,o-1),g=Math.min(p+s*2,o),y=(g+v)/2,b=0,x=v;x<g;x++){var F=this.getRawIndex(x),S=i[F];isNaN(S)||(b+=S)}b/=g-v;var E=p,w=Math.min(p+s,o),D=p-1,A=i[u];c=-1,f=E;for(var _=-1,I=0,x=E;x<w;x++){var F=this.getRawIndex(x),S=i[F];if(isNaN(S)){I++,_<0&&(_=F);continue}d=Math.abs((D-y)*(S-A)-(D-x)*(b-A)),d>c&&(c=d,f=F)}I>0&&I<w-E&&(h[l++]=Math.min(_,f),f=Math.max(_,f)),h[l++]=f,u=f}return h[l++]=this.getRawIndex(o-1),n._count=l,n._indices=h,n.getRawIndex=this._getRawIdx,n},e.prototype.minmaxDownSample=function(t,r){for(var n=this.clone([t],!0),a=n._chunks,i=Math.floor(1/r),o=a[t],l=this.count(),s=new(gv(this._rawCount))(Math.ceil(l/i)*2),u=0,c=0;c<l;c+=i){var d=c,f=o[this.getRawIndex(d)],h=c,p=o[this.getRawIndex(h)],v=i;c+i>l&&(v=l-c);for(var g=0;g<v;g++){var y=this.getRawIndex(c+g),b=o[y];b<f&&(f=b,d=c+g),b>p&&(p=b,h=c+g)}var x=this.getRawIndex(d),F=this.getRawIndex(h);d<h?(s[u++]=x,s[u++]=F):(s[u++]=F,s[u++]=x)}return n._count=u,n._indices=s,n._updateGetRawIdx(),n},e.prototype.downSample=function(t,r,n,a){for(var i=this.clone([t],!0),o=i._chunks,l=[],s=Math.floor(1/r),u=o[t],c=this.count(),d=i._rawExtent[t]=yv(),f=new(gv(this._rawCount))(Math.ceil(c/s)),h=0,p=0;p<c;p+=s){s>c-p&&(s=c-p,l.length=s);for(var v=0;v<s;v++){var g=this.getRawIndex(p+v);l[v]=u[g]}var y=n(l),b=this.getRawIndex(Math.min(p+a(l,y)||0,c-1));u[b]=y,y<d[0]&&(d[0]=y),y>d[1]&&(d[1]=y),f[h++]=b}return i._count=h,i._indices=f,i._updateGetRawIdx(),i},e.prototype.each=function(t,r){if(this._count)for(var n=t.length,a=this._chunks,i=0,o=this.count();i<o;i++){var l=this.getRawIndex(i);switch(n){case 0:r(i);break;case 1:r(a[t[0]][l],i);break;case 2:r(a[t[0]][l],a[t[1]][l],i);break;default:for(var s=0,u=[];s<n;s++)u[s]=a[t[s]][l];u[s]=i,r.apply(null,u)}}},e.prototype.getDataExtent=function(t){var r=this._chunks[t],n=yv();if(!r)return n;var a=this.count(),i=!this._indices,o;if(i)return this._rawExtent[t].slice();if(o=this._extent[t],o)return o.slice();o=n;for(var l=o[0],s=o[1],u=0;u<a;u++){var c=this.getRawIndex(u),d=r[c];d<l&&(l=d),d>s&&(s=d)}return o=[l,s],this._extent[t]=o,o},e.prototype.getRawDataItem=function(t){var r=this.getRawIndex(t);if(this._provider.persistent)return this._provider.getItem(r);for(var n=[],a=this._chunks,i=0;i<a.length;i++)n.push(a[i][r]);return n},e.prototype.clone=function(t,r){var n=new e,a=this._chunks,i=t&&Ds(t,function(l,s){return l[s]=!0,l},{});if(i)for(var o=0;o<a.length;o++)n._chunks[o]=i[o]?tbt(a[o]):a[o];else n._chunks=a;return this._copyCommonProps(n),r||(n._indices=this._cloneIndices()),n._updateGetRawIdx(),n},e.prototype._copyCommonProps=function(t){t._count=this._count,t._rawCount=this._rawCount,t._provider=this._provider,t._dimensions=this._dimensions,t._extent=lr(this._extent),t._rawExtent=lr(this._rawExtent)},e.prototype._cloneIndices=function(){if(this._indices){var t=this._indices.constructor,r=void 0;if(t===Array){var n=this._indices.length;r=new t(n);for(var a=0;a<n;a++)r[a]=this._indices[a]}else r=new t(this._indices);return r}return null},e.prototype._getRawIdxIdentity=function(t){return t},e.prototype._getRawIdx=function(t){return t<this._count&&t>=0?this._indices[t]:-1},e.prototype._updateGetRawIdx=function(){this.getRawIndex=this._indices?this._getRawIdx:this._getRawIdxIdentity},e.internalField=function(){function t(r,n,a,i){return Mf(r[i],this._dimensions[i])}JT={arrayRows:t,objectRows:function(r,n,a,i){return Mf(r[n],this._dimensions[i])},keyedColumns:t,original:function(r,n,a,i){var o=r&&(r.value==null?r:r.value);return Mf(o instanceof Array?o[i]:o,this._dimensions[i])},typedArray:function(r,n,a,i){return r[i]}}}(),e}(),Dme=function(){function e(t){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=t}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(t,r){this._sourceList=t,this._upstreamSignList=r,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},e.prototype._getVersionSign=function(){return this._sourceHost.uid+\"_\"+this._versionSignBase},e.prototype.prepareSource=function(){this._isDirty()&&(this._createSource(),this._dirty=!1)},e.prototype._createSource=function(){this._setLocalSource([],[]);var t=this._sourceHost,r=this._getUpstreamSourceManagers(),n=!!r.length,a,i;if(nS(t)){var o=t,l=void 0,s=void 0,u=void 0;if(n){var c=r[0];c.prepareSource(),u=c.getSource(),l=u.data,s=u.sourceFormat,i=[c._getVersionSign()]}else l=o.get(\"data\",!0),s=Uo(l)?Rf:Ps,i=[];var d=this._getSourceMetaRawOption()||{},f=u&&u.metaRawOption||{},h=Fr(d.seriesLayoutBy,f.seriesLayoutBy)||null,p=Fr(d.sourceHeader,f.sourceHeader),v=Fr(d.dimensions,f.dimensions),g=h!==f.seriesLayoutBy||!!p!=!!f.sourceHeader||v;a=g?[vP(l,{seriesLayoutBy:h,sourceHeader:p,dimensions:v},s)]:[]}else{var y=t;if(n){var b=this._applyTransform(r);a=b.sourceList,i=b.upstreamSignList}else{var x=y.get(\"source\",!0);a=[vP(x,this._getSourceMetaRawOption(),null)],i=[]}}this._setLocalSource(a,i)},e.prototype._applyTransform=function(t){var r=this._sourceHost,n=r.get(\"transform\",!0),a=r.get(\"fromTransformResult\",!0);if(a!=null){var i=\"\";t.length!==1&&aq(i)}var o,l=[],s=[];return q(t,function(u){u.prepareSource();var c=u.getSource(a||0),d=\"\";a!=null&&!c&&aq(d),l.push(c),s.push(u._getVersionSign())}),n?o=Jyt(n,l,{datasetIndex:r.componentIndex}):a!=null&&(o=[Ryt(l[0])]),{sourceList:o,upstreamSignList:s}},e.prototype._isDirty=function(){if(this._dirty)return!0;for(var t=this._getUpstreamSourceManagers(),r=0;r<t.length;r++){var n=t[r];if(n._isDirty()||this._upstreamSignList[r]!==n._getVersionSign())return!0}},e.prototype.getSource=function(t){t=t||0;var r=this._sourceList[t];if(!r){var n=this._getUpstreamSourceManagers();return n[0]&&n[0].getSource(t)}return r},e.prototype.getSharedDataStore=function(t){var r=t.makeStoreSchema();return this._innerGetDataStore(r.dimensions,t.source,r.hash)},e.prototype._innerGetDataStore=function(t,r,n){var a=0,i=this._storeList,o=i[a];o||(o=i[a]={});var l=o[n];if(!l){var s=this._getUpstreamSourceManagers()[0];nS(this._sourceHost)&&s?l=s._innerGetDataStore(t,r,n):(l=new gP,l.initData(new vme(r,t.length),t)),o[n]=l}return l},e.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(nS(t)){var r=PN(t);return r?[r.getSourceManager()]:[]}else return ot(lyt(t),function(n){return n.getSourceManager()})},e.prototype._getSourceMetaRawOption=function(){var t=this._sourceHost,r,n,a;if(nS(t))r=t.get(\"seriesLayoutBy\",!0),n=t.get(\"sourceHeader\",!0),a=t.get(\"dimensions\",!0);else if(!this._getUpstreamSourceManagers().length){var i=t;r=i.get(\"seriesLayoutBy\",!0),n=i.get(\"sourceHeader\",!0),a=i.get(\"dimensions\",!0)}return{seriesLayoutBy:r,sourceHeader:n,dimensions:a}},e}();function nq(e){var t=e.option.transform;t&&C2(e.option.transform)}function nS(e){return e.mainType===\"series\"}function aq(e){throw new Error(e)}var rbt=\"line-height:1\";function Ame(e){var t=e.lineHeight;return t==null?rbt:\"line-height:\"+po(t+\"\")+\"px\"}function _me(e,t){var r=e.color||\"#6e7079\",n=e.fontSize||12,a=e.fontWeight||\"400\",i=e.color||\"#464646\",o=e.fontSize||14,l=e.fontWeight||\"900\";return t===\"html\"?{nameStyle:\"font-size:\"+po(n+\"\")+\"px;color:\"+po(r)+\";font-weight:\"+po(a+\"\"),valueStyle:\"font-size:\"+po(o+\"\")+\"px;color:\"+po(i)+\";font-weight:\"+po(l+\"\")}:{nameStyle:{fontSize:n,fill:r,fontWeight:a},valueStyle:{fontSize:o,fill:i,fontWeight:l}}}var nbt=[0,10,20,30],abt=[\"\",`\n`,`\n\n`,`\n\n\n`];function gi(e,t){return t.type=e,t}function yP(e){return e.type===\"section\"}function Tme(e){return yP(e)?ibt:obt}function Ime(e){if(yP(e)){var t=0,r=e.blocks.length,n=r>1||r>0&&!e.noHeader;return q(e.blocks,function(a){var i=Ime(a);i>=t&&(t=i+ +(n&&(!i||yP(a)&&!a.noHeader)))}),t}return 0}function ibt(e,t,r,n){var a=t.noHeader,i=lbt(Ime(t)),o=[],l=t.blocks||[];Fo(!l||nt(l)),l=l||[];var s=e.orderMode;if(t.sortBlocks&&s){l=l.slice();var u={valueAsc:\"asc\",valueDesc:\"desc\"};if($t(u,s)){var c=new Fme(u[s],null);l.sort(function(v,g){return c.evaluate(v.sortParam,g.sortParam)})}else s===\"seriesDesc\"&&l.reverse()}q(l,function(v,g){var y=t.valueFormatter,b=Tme(v)(y?Xe(Xe({},e),{valueFormatter:y}):e,v,g>0?i.html:0,n);b!=null&&o.push(b)});var d=e.renderMode===\"richText\"?o.join(i.richText):bP(n,o.join(\"\"),a?r:i.html);if(a)return d;var f=hP(t.header,\"ordinal\",e.useUTC),h=_me(n,e.renderMode).nameStyle,p=Ame(n);return e.renderMode===\"richText\"?kme(e,f,h)+i.richText+d:bP(n,'<div style=\"'+h+\";\"+p+';\">'+po(f)+\"</div>\"+d,r)}function obt(e,t,r,n){var a=e.renderMode,i=t.noName,o=t.noValue,l=!t.markerType,s=t.name,u=e.useUTC,c=t.valueFormatter||e.valueFormatter||function(F){return F=nt(F)?F:[F],ot(F,function(S,E){return hP(S,nt(h)?h[E]:h,u)})};if(!(i&&o)){var d=l?\"\":e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||\"#333\",a),f=i?\"\":hP(s,\"ordinal\",u),h=t.valueType,p=o?[]:c(t.value,t.dataIndex),v=!l||!i,g=!l&&i,y=_me(n,a),b=y.nameStyle,x=y.valueStyle;return a===\"richText\"?(l?\"\":d)+(i?\"\":kme(e,f,b))+(o?\"\":cbt(e,p,v,g,x)):bP(n,(l?\"\":d)+(i?\"\":sbt(f,!l,b))+(o?\"\":ubt(p,v,g,x)),r)}}function iq(e,t,r,n,a,i){if(e){var o=Tme(e),l={useUTC:a,renderMode:r,orderMode:n,markupStyleCreator:t,valueFormatter:e.valueFormatter};return o(l,e,0,i)}}function lbt(e){return{html:nbt[e],richText:abt[e]}}function bP(e,t,r){var n='<div style=\"clear:both\"></div>',a=\"margin: \"+r+\"px 0 0\",i=Ame(e);return'<div style=\"'+a+\";\"+i+';\">'+t+n+\"</div>\"}function sbt(e,t,r){var n=t?\"margin-left:2px\":\"\";return'<span style=\"'+r+\";\"+n+'\">'+po(e)+\"</span>\"}function ubt(e,t,r,n){var a=r?\"10px\":\"20px\",i=t?\"float:right;margin-left:\"+a:\"\";return e=nt(e)?e:[e],'<span style=\"'+i+\";\"+n+'\">'+ot(e,function(o){return po(o)}).join(\"&nbsp;&nbsp;\")+\"</span>\"}function kme(e,t,r){return e.markupStyleCreator.wrapRichTextStyle(t,r)}function cbt(e,t,r,n,a){var i=[a],o=n?10:20;return r&&i.push({padding:[0,0,0,o],align:\"right\"}),e.markupStyleCreator.wrapRichTextStyle(nt(t)?t.join(\" \"):t,i)}function Rme(e,t){var r=e.getData().getItemVisual(t,\"style\"),n=r[e.visualDrawType];return lm(n)}function Mme(e,t){var r=e.get(\"padding\");return r??(t===\"richText\"?[8,10]:10)}var ZT=function(){function e(){this.richTextStyles={},this._nextStyleNameId=Xhe()}return e.prototype._generateStyleName=function(){return\"__EC_aUTo_\"+this._nextStyleNameId++},e.prototype.makeTooltipMarker=function(t,r,n){var a=n===\"richText\"?this._generateStyleName():null,i=eme({color:r,type:t,renderMode:n,markerId:a});return At(i)?i:(this.richTextStyles[a]=i.style,i.content)},e.prototype.wrapRichTextStyle=function(t,r){var n={};nt(r)?q(r,function(i){return Xe(n,i)}):Xe(n,r);var a=this._generateStyleName();return this.richTextStyles[a]=n,\"{\"+a+\"|\"+t+\"}\"},e}();function Pme(e){var t=e.series,r=e.dataIndex,n=e.multipleSeries,a=t.getData(),i=a.mapDimensionsAll(\"defaultedTooltip\"),o=i.length,l=t.getRawValue(r),s=nt(l),u=Rme(t,r),c,d,f,h;if(o>1||s&&!o){var p=dbt(l,t,r,i,u);c=p.inlineValues,d=p.inlineValueTypes,f=p.blocks,h=p.inlineValues[0]}else if(o){var v=a.getDimensionInfo(i[0]);h=c=lg(a,r,i[0]),d=v.type}else h=c=s?l[0]:l;var g=oN(t),y=g&&t.name||\"\",b=a.getName(r),x=n?y:b;return gi(\"section\",{header:y,noHeader:n||!g,sortParam:h,blocks:[gi(\"nameValue\",{markerType:\"item\",markerColor:u,name:x,noName:!vs(x),value:c,valueType:d,dataIndex:r})].concat(f||[])})}function dbt(e,t,r,n,a){var i=t.getData(),o=Ds(e,function(d,f,h){var p=i.getDimensionInfo(h);return d=d||p&&p.tooltip!==!1&&p.displayName!=null},!1),l=[],s=[],u=[];n.length?q(n,function(d){c(lg(i,r,d),d)}):q(e,c);function c(d,f){var h=i.getDimensionInfo(f);!h||h.otherDims.tooltip===!1||(o?u.push(gi(\"nameValue\",{markerType:\"subItem\",markerColor:a,name:h.displayName,value:d,valueType:h.type})):(l.push(d),s.push(h.type)))}return{inlineValues:l,inlineValueTypes:s,blocks:u}}var Od=rn();function aS(e,t){return e.getName(t)||e.getId(t)}var Nw=\"__universalTransitionEnabled\",_n=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._selectedDataIndicesMap={},r}return t.prototype.init=function(r,n,a){this.seriesIndex=this.componentIndex,this.dataTask=yb({count:hbt,reset:pbt}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(r,a);var i=Od(this).sourceManager=new Dme(this);i.prepareSource();var o=this.getInitialData(r,a);lq(o,this),this.dataTask.context.data=o,Od(this).dataBeforeProcessed=o,oq(this),this._initSelectedMapFromData(o)},t.prototype.mergeDefaultAndTheme=function(r,n){var a=M2(this),i=a?Qg(r):{},o=this.subType;jr.hasClass(o)&&(o+=\"Series\"),Er(r,n.getTheme().get(this.subType)),Er(r,this.getDefaultOption()),nm(r,\"label\",[\"show\"]),this.fillDataTextStyle(r.data),a&&Xf(r,i,a)},t.prototype.mergeOption=function(r,n){r=Er(this.option,r,!0),this.fillDataTextStyle(r.data);var a=M2(this);a&&Xf(this.option,r,a);var i=Od(this).sourceManager;i.dirty(),i.prepareSource();var o=this.getInitialData(r,n);lq(o,this),this.dataTask.dirty(),this.dataTask.context.data=o,Od(this).dataBeforeProcessed=o,oq(this),this._initSelectedMapFromData(o)},t.prototype.fillDataTextStyle=function(r){if(r&&!Uo(r))for(var n=[\"show\"],a=0;a<r.length;a++)r[a]&&r[a].label&&nm(r[a],\"label\",n)},t.prototype.getInitialData=function(r,n){},t.prototype.appendData=function(r){var n=this.getRawData();n.appendData(r.data)},t.prototype.getData=function(r){var n=xP(this);if(n){var a=n.context.data;return r==null||!a.getLinkedData?a:a.getLinkedData(r)}else return Od(this).data},t.prototype.getAllData=function(){var r=this.getData();return r&&r.getLinkedDataAll?r.getLinkedDataAll():[{data:r}]},t.prototype.setData=function(r){var n=xP(this);if(n){var a=n.context;a.outputData=r,n!==this.dataTask&&(a.data=r)}Od(this).data=r},t.prototype.getEncode=function(){var r=this.get(\"encode\",!0);if(r)return Gt(r)},t.prototype.getSourceManager=function(){return Od(this).sourceManager},t.prototype.getSource=function(){return this.getSourceManager().getSource()},t.prototype.getRawData=function(){return Od(this).dataBeforeProcessed},t.prototype.getColorBy=function(){var r=this.get(\"colorBy\");return r||\"series\"},t.prototype.isColorBySeries=function(){return this.getColorBy()===\"series\"},t.prototype.getBaseAxis=function(){var r=this.coordinateSystem;return r&&r.getBaseAxis&&r.getBaseAxis()},t.prototype.formatTooltip=function(r,n,a){return Pme({series:this,dataIndex:r,multipleSeries:n})},t.prototype.isAnimationEnabled=function(){var r=this.ecModel;if(zr.node&&!(r&&r.ssr))return!1;var n=this.getShallow(\"animation\");return n&&this.getData().count()>this.getShallow(\"animationThreshold\")&&(n=!1),!!n},t.prototype.restoreData=function(){this.dataTask.dirty()},t.prototype.getColorFromPalette=function(r,n,a){var i=this.ecModel,o=ON.prototype.getColorFromPalette.call(this,r,n,a);return o||(o=i.getColorFromPalette(r,n,a)),o},t.prototype.coordDimToDataDim=function(r){return this.getRawData().mapDimensionsAll(r)},t.prototype.getProgressive=function(){return this.get(\"progressive\")},t.prototype.getProgressiveThreshold=function(){return this.get(\"progressiveThreshold\")},t.prototype.select=function(r,n){this._innerSelect(this.getData(n),r)},t.prototype.unselect=function(r,n){var a=this.option.selectedMap;if(a){var i=this.option.selectedMode,o=this.getData(n);if(i===\"series\"||a===\"all\"){this.option.selectedMap={},this._selectedDataIndicesMap={};return}for(var l=0;l<r.length;l++){var s=r[l],u=aS(o,s);a[u]=!1,this._selectedDataIndicesMap[u]=-1}}},t.prototype.toggleSelect=function(r,n){for(var a=[],i=0;i<r.length;i++)a[0]=r[i],this.isSelected(r[i],n)?this.unselect(a,n):this.select(a,n)},t.prototype.getSelectedDataIndices=function(){if(this.option.selectedMap===\"all\")return[].slice.call(this.getData().getIndices());for(var r=this._selectedDataIndicesMap,n=Ur(r),a=[],i=0;i<n.length;i++){var o=r[n[i]];o>=0&&a.push(o)}return a},t.prototype.isSelected=function(r,n){var a=this.option.selectedMap;if(!a)return!1;var i=this.getData(n);return(a===\"all\"||a[aS(i,r)])&&!i.getItemModel(r).get([\"select\",\"disabled\"])},t.prototype.isUniversalTransitionEnabled=function(){if(this[Nw])return!0;var r=this.option.universalTransition;return r?r===!0?!0:r&&r.enabled:!1},t.prototype._innerSelect=function(r,n){var a,i,o=this.option,l=o.selectedMode,s=n.length;if(!(!l||!s)){if(l===\"series\")o.selectedMap=\"all\";else if(l===\"multiple\"){ir(o.selectedMap)||(o.selectedMap={});for(var u=o.selectedMap,c=0;c<s;c++){var d=n[c],f=aS(r,d);u[f]=!0,this._selectedDataIndicesMap[f]=r.getRawIndex(d)}}else if(l===\"single\"||l===!0){var h=n[s-1],f=aS(r,h);o.selectedMap=(a={},a[f]=!0,a),this._selectedDataIndicesMap=(i={},i[f]=r.getRawIndex(h),i)}}},t.prototype._initSelectedMapFromData=function(r){if(!this.option.selectedMap){var n=[];r.hasItemOption&&r.each(function(a){var i=r.getRawDataItem(a);i&&i.selected&&n.push(a)}),n.length>0&&this._innerSelect(r,n)}},t.registerClass=function(r){return jr.registerClass(r)},t.protoInitialize=function(){var r=t.prototype;r.type=\"series.__base__\",r.seriesIndex=0,r.ignoreStyleOnData=!1,r.hasSymbolVisual=!1,r.defaultSymbol=\"circle\",r.visualStyleAccessPath=\"itemStyle\",r.visualDrawType=\"fill\"}(),t}(jr);Ca(_n,sA);Ca(_n,ON);ipe(_n,jr);function oq(e){var t=e.name;oN(e)||(e.name=fbt(e)||t)}function fbt(e){var t=e.getRawData(),r=t.mapDimensionsAll(\"seriesName\"),n=[];return q(r,function(a){var i=t.getDimensionInfo(a);i.displayName&&n.push(i.displayName)}),n.join(\" \")}function hbt(e){return e.model.getRawData().count()}function pbt(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),mbt}function mbt(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function lq(e,t){q(ng(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(r){e.wrapMethod(r,wr(vbt,t))})}function vbt(e,t){var r=xP(e);return r&&r.setOutputEnd((t||this).count()),t}function xP(e){var t=(e.ecModel||{}).scheduler,r=t&&t.getPipeline(e.uid);if(r){var n=r.currentTask;if(n){var a=n.agentStubMap;a&&(n=a.get(e.uid))}return n}}var Wn=function(){function e(){this.group=new pr,this.uid=Zg(\"viewComponent\")}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,a){},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,a){},e.prototype.updateLayout=function(t,r,n,a){},e.prototype.updateVisual=function(t,r,n,a){},e.prototype.toggleBlurSeries=function(t,r,n){},e.prototype.eachRendered=function(t){var r=this.group;r&&r.traverse(t)},e}();sN(Wn);UD(Wn);function r1(){var e=rn();return function(t){var r=e(t),n=t.pipelineContext,a=!!r.large,i=!!r.progressiveRender,o=r.large=!!(n&&n.large),l=r.progressiveRender=!!(n&&n.progressiveRender);return(a!==o||i!==l)&&\"reset\"}}var Ome=rn(),gbt=r1(),Cn=function(){function e(){this.group=new pr,this.uid=Zg(\"viewChart\"),this.renderTask=yb({plan:ybt,reset:bbt}),this.renderTask.context={view:this}}return e.prototype.init=function(t,r){},e.prototype.render=function(t,r,n,a){},e.prototype.highlight=function(t,r,n,a){var i=t.getData(a&&a.dataType);i&&uq(i,a,\"emphasis\")},e.prototype.downplay=function(t,r,n,a){var i=t.getData(a&&a.dataType);i&&uq(i,a,\"normal\")},e.prototype.remove=function(t,r){this.group.removeAll()},e.prototype.dispose=function(t,r){},e.prototype.updateView=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.updateLayout=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.updateVisual=function(t,r,n,a){this.render(t,r,n,a)},e.prototype.eachRendered=function(t){sh(this.group,t)},e.markUpdateMethod=function(t,r){Ome(t).updateMethod=r},e.protoInitialize=function(){var t=e.prototype;t.type=\"chart\"}(),e}();function sq(e,t,r){e&&I2(e)&&(t===\"emphasis\"?fd:hd)(e,r)}function uq(e,t,r){var n=am(e,t),a=t&&t.highlightKey!=null?r1t(t.highlightKey):null;n!=null?q(An(n),function(i){sq(e.getItemGraphicEl(i),r,a)}):e.eachItemGraphicEl(function(i){sq(i,r,a)})}sN(Cn);UD(Cn);function ybt(e){return gbt(e.model)}function bbt(e){var t=e.model,r=e.ecModel,n=e.api,a=e.payload,i=t.pipelineContext.progressiveRender,o=e.view,l=a&&Ome(a).updateMethod,s=i?\"incrementalPrepareRender\":l&&o[l]?l:\"render\";return s!==\"render\"&&o[s](t,r,n,a),xbt[s]}var xbt={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}},V3=\"\\0__throttleOriginMethod\",cq=\"\\0__throttleRate\",dq=\"\\0__throttleType\";function cA(e,t,r){var n,a=0,i=0,o=null,l,s,u,c;t=t||0;function d(){i=new Date().getTime(),o=null,e.apply(s,u||[])}var f=function(){for(var h=[],p=0;p<arguments.length;p++)h[p]=arguments[p];n=new Date().getTime(),s=this,u=h;var v=c||t,g=c||r;c=null,l=n-(g?a:i)-v,clearTimeout(o),g?o=setTimeout(d,v):l>=0?d():o=setTimeout(d,-l),a=n};return f.clear=function(){o&&(clearTimeout(o),o=null)},f.debounceNextCall=function(h){c=h},f}function n1(e,t,r,n){var a=e[t];if(a){var i=a[V3]||a,o=a[dq],l=a[cq];if(l!==r||o!==n){if(r==null||!n)return e[t]=i;a=e[t]=cA(i,r,n===\"debounce\"),a[V3]=i,a[dq]=n,a[cq]=r}return a}}function O2(e,t){var r=e[t];r&&r[V3]&&(r.clear&&r.clear(),e[t]=r[V3])}var fq=rn(),hq={itemStyle:im(Wpe,!0),lineStyle:im(Vpe,!0)},Cbt={lineStyle:\"stroke\",itemStyle:\"fill\"};function Bme(e,t){var r=e.visualStyleMapper||hq[t];return r||(console.warn(\"Unknown style type '\"+t+\"'.\"),hq.itemStyle)}function Nme(e,t){var r=e.visualDrawType||Cbt[t];return r||(console.warn(\"Unknown style type '\"+t+\"'.\"),\"fill\")}var Fbt={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData(),n=e.visualStyleAccessPath||\"itemStyle\",a=e.getModel(n),i=Bme(e,n),o=i(a),l=a.getShallow(\"decal\");l&&(r.setVisual(\"decal\",l),l.dirty=!0);var s=Nme(e,n),u=o[s],c=er(u)?u:null,d=o.fill===\"auto\"||o.stroke===\"auto\";if(!o[s]||c||d){var f=e.getColorFromPalette(e.name,null,t.getSeriesCount());o[s]||(o[s]=f,r.setVisual(\"colorFromPalette\",!0)),o.fill=o.fill===\"auto\"||er(o.fill)?f:o.fill,o.stroke=o.stroke===\"auto\"||er(o.stroke)?f:o.stroke}if(r.setVisual(\"style\",o),r.setVisual(\"drawType\",s),!t.isSeriesFiltered(e)&&c)return r.setVisual(\"colorFromPalette\",!1),{dataEach:function(h,p){var v=e.getDataParams(p),g=Xe({},o);g[s]=c(v),h.setItemVisual(p,\"style\",g)}}}},L1=new pn,Sbt={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!(e.ignoreStyleOnData||t.isSeriesFiltered(e))){var r=e.getData(),n=e.visualStyleAccessPath||\"itemStyle\",a=Bme(e,n),i=r.getVisual(\"drawType\");return{dataEach:r.hasItemOption?function(o,l){var s=o.getRawDataItem(l);if(s&&s[n]){L1.option=s[n];var u=a(L1),c=o.ensureUniqueItemVisual(l,\"style\");Xe(c,u),L1.option.decal&&(o.setItemVisual(l,\"decal\",L1.option.decal),L1.option.decal.dirty=!0),i in u&&o.setItemVisual(l,\"colorFromPalette\",!1)}}:null}}}},wbt={performRawSeries:!0,overallReset:function(e){var t=Gt();e.eachSeries(function(r){var n=r.getColorBy();if(!r.isColorBySeries()){var a=r.type+\"-\"+n,i=t.get(a);i||(i={},t.set(a,i)),fq(r).scope=i}}),e.eachSeries(function(r){if(!(r.isColorBySeries()||e.isSeriesFiltered(r))){var n=r.getRawData(),a={},i=r.getData(),o=fq(r).scope,l=r.visualStyleAccessPath||\"itemStyle\",s=Nme(r,l);i.each(function(u){var c=i.getRawIndex(u);a[c]=u}),n.each(function(u){var c=a[u],d=i.getItemVisual(c,\"colorFromPalette\");if(d){var f=i.ensureUniqueItemVisual(c,\"style\"),h=n.getName(u)||u+\"\",p=n.count();f[s]=r.getColorFromPalette(h,o,p)}})}})}},iS=Math.PI;function Ebt(e,t){t=t||{},rr(t,{text:\"loading\",textColor:\"#000\",fontSize:12,fontWeight:\"normal\",fontStyle:\"normal\",fontFamily:\"sans-serif\",maskColor:\"rgba(255, 255, 255, 0.8)\",showSpinner:!0,color:\"#5470c6\",spinnerRadius:10,lineWidth:5,zlevel:0});var r=new pr,n=new Zr({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});r.add(n);var a=new Jr({style:{text:t.text,fill:t.textColor,fontSize:t.fontSize,fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:t.fontFamily},zlevel:t.zlevel,z:10001}),i=new Zr({style:{fill:\"none\"},textContent:a,textConfig:{position:\"right\",distance:10},zlevel:t.zlevel,z:10001});r.add(i);var o;return t.showSpinner&&(o=new nC({shape:{startAngle:-iS/2,endAngle:-iS/2+.1,r:t.spinnerRadius},style:{stroke:t.color,lineCap:\"round\",lineWidth:t.lineWidth},zlevel:t.zlevel,z:10001}),o.animateShape(!0).when(1e3,{endAngle:iS*3/2}).start(\"circularInOut\"),o.animateShape(!0).when(1e3,{startAngle:iS*3/2}).delay(300).start(\"circularInOut\"),r.add(o)),r.resize=function(){var l=a.getBoundingRect().width,s=t.showSpinner?t.spinnerRadius:0,u=(e.getWidth()-s*2-(t.showSpinner&&l?10:0)-l)/2-(t.showSpinner&&l?0:5+l/2)+(t.showSpinner?0:l/2)+(l?0:s),c=e.getHeight()/2;t.showSpinner&&o.setShape({cx:u,cy:c}),i.setShape({x:u-s,y:c-s,width:s*2,height:s*2}),n.setShape({x:0,y:0,width:e.getWidth(),height:e.getHeight()})},r.resize(),r}var $me=function(){function e(t,r,n,a){this._stageTaskMap=Gt(),this.ecInstance=t,this.api=r,n=this._dataProcessorHandlers=n.slice(),a=this._visualHandlers=a.slice(),this._allHandlers=n.concat(a)}return e.prototype.restoreData=function(t,r){t.restoreData(r),this._stageTaskMap.each(function(n){var a=n.overallTask;a&&a.dirty()})},e.prototype.getPerformArgs=function(t,r){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),a=n.context,i=!r&&n.progressiveEnabled&&(!a||a.progressiveRender)&&t.__idxInPipeline>n.blockIndex,o=i?n.step:null,l=a&&a.modDataCount,s=l!=null?Math.ceil(l/o):null;return{step:o,modBy:s,modDataCount:l}}},e.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},e.prototype.updateStreamModes=function(t,r){var n=this._pipelineMap.get(t.uid),a=t.getData(),i=a.count(),o=n.progressiveEnabled&&r.incrementalPrepareRender&&i>=n.threshold,l=t.get(\"large\")&&i>=t.get(\"largeThreshold\"),s=t.get(\"progressiveChunkMode\")===\"mod\"?i:null;t.pipelineContext=n.context={progressiveRender:o,modDataCount:s,large:l}},e.prototype.restorePipelines=function(t){var r=this,n=r._pipelineMap=Gt();t.eachSeries(function(a){var i=a.getProgressive(),o=a.uid;n.set(o,{id:o,head:null,tail:null,threshold:a.getProgressiveThreshold(),progressiveEnabled:i&&!(a.preventIncremental&&a.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),r._pipe(a,a.dataTask)})},e.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,r=this.api.getModel(),n=this.api;q(this._allHandlers,function(a){var i=t.get(a.uid)||t.set(a.uid,{}),o=\"\";Fo(!(a.reset&&a.overallReset),o),a.reset&&this._createSeriesStageTask(a,i,r,n),a.overallReset&&this._createOverallStageTask(a,i,r,n)},this)},e.prototype.prepareView=function(t,r,n,a){var i=t.renderTask,o=i.context;o.model=r,o.ecModel=n,o.api=a,i.__block=!t.incrementalPrepareRender,this._pipe(r,i)},e.prototype.performDataProcessorTasks=function(t,r){this._performStageTasks(this._dataProcessorHandlers,t,r,{block:!0})},e.prototype.performVisualTasks=function(t,r,n){this._performStageTasks(this._visualHandlers,t,r,n)},e.prototype._performStageTasks=function(t,r,n,a){a=a||{};var i=!1,o=this;q(t,function(s,u){if(!(a.visualType&&a.visualType!==s.visualType)){var c=o._stageTaskMap.get(s.uid),d=c.seriesTaskMap,f=c.overallTask;if(f){var h,p=f.agentStubMap;p.each(function(g){l(a,g)&&(g.dirty(),h=!0)}),h&&f.dirty(),o.updatePayload(f,n);var v=o.getPerformArgs(f,a.block);p.each(function(g){g.perform(v)}),f.perform(v)&&(i=!0)}else d&&d.each(function(g,y){l(a,g)&&g.dirty();var b=o.getPerformArgs(g,a.block);b.skip=!s.performRawSeries&&r.isSeriesFiltered(g.context.model),o.updatePayload(g,n),g.perform(b)&&(i=!0)})}});function l(s,u){return s.setDirty&&(!s.dirtyMap||s.dirtyMap.get(u.__pipeline.id))}this.unfinished=i||this.unfinished},e.prototype.performSeriesTasks=function(t){var r;t.eachSeries(function(n){r=n.dataTask.perform()||r}),this.unfinished=r||this.unfinished},e.prototype.plan=function(){this._pipelineMap.each(function(t){var r=t.tail;do{if(r.__block){t.blockIndex=r.__idxInPipeline;break}r=r.getUpstream()}while(r)})},e.prototype.updatePayload=function(t,r){r!==\"remain\"&&(t.context.payload=r)},e.prototype._createSeriesStageTask=function(t,r,n,a){var i=this,o=r.seriesTaskMap,l=r.seriesTaskMap=Gt(),s=t.seriesType,u=t.getTargetSeries;t.createOnAllSeries?n.eachRawSeries(c):s?n.eachRawSeriesByType(s,c):u&&u(n,a).each(c);function c(d){var f=d.uid,h=l.set(f,o&&o.get(f)||yb({plan:Ibt,reset:kbt,count:Mbt}));h.context={model:d,ecModel:n,api:a,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:i},i._pipe(d,h)}},e.prototype._createOverallStageTask=function(t,r,n,a){var i=this,o=r.overallTask=r.overallTask||yb({reset:Dbt});o.context={ecModel:n,api:a,overallReset:t.overallReset,scheduler:i};var l=o.agentStubMap,s=o.agentStubMap=Gt(),u=t.seriesType,c=t.getTargetSeries,d=!0,f=!1,h=\"\";Fo(!t.createOnAllSeries,h),u?n.eachRawSeriesByType(u,p):c?c(n,a).each(p):(d=!1,q(n.getSeries(),p));function p(v){var g=v.uid,y=s.set(g,l&&l.get(g)||(f=!0,yb({reset:Abt,onDirty:Tbt})));y.context={model:v,overallProgress:d},y.agent=o,y.__block=d,i._pipe(v,y)}f&&o.dirty()},e.prototype._pipe=function(t,r){var n=t.uid,a=this._pipelineMap.get(n);!a.head&&(a.head=r),a.tail&&a.tail.pipe(r),a.tail=r,r.__idxInPipeline=a.count++,r.__pipeline=a},e.wrapStageHandler=function(t,r){return er(t)&&(t={overallReset:t,seriesType:Pbt(t)}),t.uid=Zg(\"stageHandler\"),r&&(t.visualType=r),t},e}();function Dbt(e){e.overallReset(e.ecModel,e.api,e.payload)}function Abt(e){return e.overallProgress&&_bt}function _bt(){this.agent.dirty(),this.getDownstream().dirty()}function Tbt(){this.agent&&this.agent.dirty()}function Ibt(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function kbt(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=An(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?ot(t,function(r,n){return Lme(n)}):Rbt}var Rbt=Lme(0);function Lme(e){return function(t,r){var n=r.data,a=r.resetDefines[e];if(a&&a.dataEach)for(var i=t.start;i<t.end;i++)a.dataEach(n,i);else a&&a.progress&&a.progress(t,n)}}function Mbt(e){return e.data.count()}function Pbt(e){W3=null;try{e(B2,jme)}catch{}return W3}var B2={},jme={},W3;zme(B2,BN);zme(jme,dme);B2.eachSeriesByType=B2.eachRawSeriesByType=function(e){W3=e};B2.eachComponent=function(e){e.mainType===\"series\"&&e.subType&&(W3=e.subType)};function zme(e,t){for(var r in t.prototype)e[r]=ga}var pq=[\"#37A2DA\",\"#32C5E9\",\"#67E0E3\",\"#9FE6B8\",\"#FFDB5C\",\"#ff9f7f\",\"#fb7293\",\"#E062AE\",\"#E690D1\",\"#e7bcf3\",\"#9d96f5\",\"#8378EA\",\"#96BFFF\"];const Obt={color:pq,colorLayer:[[\"#37A2DA\",\"#ffd85c\",\"#fd7b5f\"],[\"#37A2DA\",\"#67E0E3\",\"#FFDB5C\",\"#ff9f7f\",\"#E062AE\",\"#9d96f5\"],[\"#37A2DA\",\"#32C5E9\",\"#9FE6B8\",\"#FFDB5C\",\"#ff9f7f\",\"#fb7293\",\"#e7bcf3\",\"#8378EA\",\"#96BFFF\"],pq]};var io=\"#B9B8CE\",mq=\"#100C2A\",oS=function(){return{axisLine:{lineStyle:{color:io}},splitLine:{lineStyle:{color:\"#484753\"}},splitArea:{areaStyle:{color:[\"rgba(255,255,255,0.02)\",\"rgba(255,255,255,0.05)\"]}},minorSplitLine:{lineStyle:{color:\"#20203B\"}}}},vq=[\"#4992ff\",\"#7cffb2\",\"#fddd60\",\"#ff6e76\",\"#58d9f9\",\"#05c091\",\"#ff8a45\",\"#8d48e3\",\"#dd79ff\"],Hme={darkMode:!0,color:vq,backgroundColor:mq,axisPointer:{lineStyle:{color:\"#817f91\"},crossStyle:{color:\"#817f91\"},label:{color:\"#fff\"}},legend:{textStyle:{color:io},pageTextStyle:{color:io}},textStyle:{color:io},title:{textStyle:{color:\"#EEF1FA\"},subtextStyle:{color:\"#B9B8CE\"}},toolbox:{iconStyle:{borderColor:io}},dataZoom:{borderColor:\"#71708A\",textStyle:{color:io},brushStyle:{color:\"rgba(135,163,206,0.3)\"},handleStyle:{color:\"#353450\",borderColor:\"#C5CBE3\"},moveHandleStyle:{color:\"#B0B6C3\",opacity:.3},fillerColor:\"rgba(135,163,206,0.2)\",emphasis:{handleStyle:{borderColor:\"#91B7F2\",color:\"#4D587D\"},moveHandleStyle:{color:\"#636D9A\",opacity:.7}},dataBackground:{lineStyle:{color:\"#71708A\",width:1},areaStyle:{color:\"#71708A\"}},selectedDataBackground:{lineStyle:{color:\"#87A3CE\"},areaStyle:{color:\"#87A3CE\"}}},visualMap:{textStyle:{color:io}},timeline:{lineStyle:{color:io},label:{color:io},controlStyle:{color:io,borderColor:io}},calendar:{itemStyle:{color:mq},dayLabel:{color:io},monthLabel:{color:io},yearLabel:{color:io}},timeAxis:oS(),logAxis:oS(),valueAxis:oS(),categoryAxis:oS(),line:{symbol:\"circle\"},graph:{color:vq},gauge:{title:{color:io},axisLine:{lineStyle:{color:[[1,\"rgba(207,212,219,0.2)\"]]}},axisLabel:{color:io},detail:{color:\"#EEF1FA\"}},candlestick:{itemStyle:{color:\"#f64e56\",color0:\"#54ea92\",borderColor:\"#f64e56\",borderColor0:\"#54ea92\"}}};Hme.categoryAxis.splitLine.show=!1;var Bbt=function(){function e(){}return e.prototype.normalizeQuery=function(t){var r={},n={},a={};if(At(t)){var i=Xu(t);r.mainType=i.main||null,r.subType=i.sub||null}else{var o=[\"Index\",\"Name\",\"Id\"],l={name:1,dataIndex:1,dataType:1};q(t,function(s,u){for(var c=!1,d=0;d<o.length;d++){var f=o[d],h=u.lastIndexOf(f);if(h>0&&h===u.length-f.length){var p=u.slice(0,h);p!==\"data\"&&(r.mainType=p,r[f.toLowerCase()]=s,c=!0)}}l.hasOwnProperty(u)&&(n[u]=s,c=!0),c||(a[u]=s)})}return{cptQuery:r,dataQuery:n,otherQuery:a}},e.prototype.filter=function(t,r){var n=this.eventInfo;if(!n)return!0;var a=n.targetEl,i=n.packedEvent,o=n.model,l=n.view;if(!o||!l)return!0;var s=r.cptQuery,u=r.dataQuery;return c(s,o,\"mainType\")&&c(s,o,\"subType\")&&c(s,o,\"index\",\"componentIndex\")&&c(s,o,\"name\")&&c(s,o,\"id\")&&c(u,i,\"name\")&&c(u,i,\"dataIndex\")&&c(u,i,\"dataType\")&&(!l.filterForExposedEvent||l.filterForExposedEvent(t,r.otherQuery,a,i));function c(d,f,h,p){return d[h]==null||f[p||h]===d[h]}},e.prototype.afterTrigger=function(){this.eventInfo=null},e}(),CP=[\"symbol\",\"symbolSize\",\"symbolRotate\",\"symbolOffset\"],gq=CP.concat([\"symbolKeepAspect\"]),Nbt={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var r=e.getData();if(e.legendIcon&&r.setVisual(\"legendIcon\",e.legendIcon),!e.hasSymbolVisual)return;for(var n={},a={},i=!1,o=0;o<CP.length;o++){var l=CP[o],s=e.get(l);er(s)?(i=!0,a[l]=s):n[l]=s}if(n.symbol=n.symbol||e.defaultSymbol,r.setVisual(Xe({legendIcon:e.legendIcon||n.symbol,symbolKeepAspect:e.get(\"symbolKeepAspect\")},n)),t.isSeriesFiltered(e))return;var u=Ur(a);function c(d,f){for(var h=e.getRawValue(f),p=e.getDataParams(f),v=0;v<u.length;v++){var g=u[v];d.setItemVisual(f,g,a[g](h,p))}}return{dataEach:i?c:null}}},$bt={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){if(!e.hasSymbolVisual||t.isSeriesFiltered(e))return;var r=e.getData();function n(a,i){for(var o=a.getItemModel(i),l=0;l<gq.length;l++){var s=gq[l],u=o.getShallow(s,!0);u!=null&&a.setItemVisual(i,s,u)}}return{dataEach:r.hasItemOption?n:null}}};function zN(e,t,r){switch(r){case\"color\":var n=e.getItemVisual(t,\"style\");return n[e.getVisual(\"drawType\")];case\"opacity\":return e.getItemVisual(t,\"style\").opacity;case\"symbol\":case\"symbolSize\":case\"liftZ\":return e.getItemVisual(t,r)}}function lC(e,t){switch(t){case\"color\":var r=e.getVisual(\"style\");return r[e.getVisual(\"drawType\")];case\"opacity\":return e.getVisual(\"style\").opacity;case\"symbol\":case\"symbolSize\":case\"liftZ\":return e.getVisual(t)}}function Vme(e,t,r,n){switch(r){case\"color\":var a=e.ensureUniqueItemVisual(t,\"style\");a[e.getVisual(\"drawType\")]=n,e.setItemVisual(t,\"colorFromPalette\",!1);break;case\"opacity\":e.ensureUniqueItemVisual(t,\"style\").opacity=n;break;case\"symbol\":case\"symbolSize\":case\"liftZ\":e.setItemVisual(t,r,n);break}}function Wme(e,t){function r(n,a){var i=[];return n.eachComponent({mainType:\"series\",subType:e,query:a},function(o){i.push(o.seriesIndex)}),i}q([[e+\"ToggleSelect\",\"toggleSelect\"],[e+\"Select\",\"select\"],[e+\"UnSelect\",\"unselect\"]],function(n){t(n[0],function(a,i,o){a=Xe({},a),o.dispatchAction(Xe(a,{type:n[1],seriesIndex:r(i,a)}))})})}function bv(e,t,r,n,a){var i=e+t;r.isSilent(i)||n.eachComponent({mainType:\"series\",subType:\"pie\"},function(o){for(var l=o.seriesIndex,s=o.option.selectedMap,u=a.selected,c=0;c<u.length;c++)if(u[c].seriesIndex===l){var d=o.getData(),f=am(d,a.fromActionPayload);r.trigger(i,{type:i,seriesId:o.id,name:nt(f)?d.getName(f[0]):d.getName(f),selected:At(s)?s:Xe({},s)})}})}function Lbt(e,t,r){e.on(\"selectchanged\",function(n){var a=r.getModel();n.isFromClick?(bv(\"map\",\"selectchanged\",t,a,n),bv(\"pie\",\"selectchanged\",t,a,n)):n.fromAction===\"select\"?(bv(\"map\",\"selected\",t,a,n),bv(\"pie\",\"selected\",t,a,n)):n.fromAction===\"unselect\"&&(bv(\"map\",\"unselected\",t,a,n),bv(\"pie\",\"unselected\",t,a,n))})}function vp(e,t,r){for(var n;e&&!(t(e)&&(n=e,r));)e=e.__hostTarget||e.parent;return n}var jbt=Math.round(Math.random()*9),zbt=typeof Object.defineProperty==\"function\",Hbt=function(){function e(){this._id=\"__ec_inner_\"+jbt++}return e.prototype.get=function(t){return this._guard(t)[this._id]},e.prototype.set=function(t,r){var n=this._guard(t);return zbt?Object.defineProperty(n,this._id,{value:r,enumerable:!1,configurable:!0}):n[this._id]=r,this},e.prototype.delete=function(t){return this.has(t)?(delete this._guard(t)[this._id],!0):!1},e.prototype.has=function(t){return!!this._guard(t)[this._id]},e.prototype._guard=function(t){if(t!==Object(t))throw TypeError(\"Value of WeakMap is not a non-null object.\");return t},e}(),Vbt=Vr.extend({type:\"triangle\",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var r=t.cx,n=t.cy,a=t.width/2,i=t.height/2;e.moveTo(r,n-i),e.lineTo(r+a,n+i),e.lineTo(r-a,n+i),e.closePath()}}),Wbt=Vr.extend({type:\"diamond\",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(e,t){var r=t.cx,n=t.cy,a=t.width/2,i=t.height/2;e.moveTo(r,n-i),e.lineTo(r+a,n),e.lineTo(r,n+i),e.lineTo(r-a,n),e.closePath()}}),Gbt=Vr.extend({type:\"pin\",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var r=t.x,n=t.y,a=t.width/5*3,i=Math.max(a,t.height),o=a/2,l=o*o/(i-o),s=n-i+o+l,u=Math.asin(l/o),c=Math.cos(u)*o,d=Math.sin(u),f=Math.cos(u),h=o*.6,p=o*.7;e.moveTo(r-c,s+l),e.arc(r,s,o,Math.PI-u,Math.PI*2+u),e.bezierCurveTo(r+c-d*h,s+l+f*h,r,n-p,r,n),e.bezierCurveTo(r,n-p,r-c+d*h,s+l+f*h,r-c,s+l),e.closePath()}}),Ubt=Vr.extend({type:\"arrow\",shape:{x:0,y:0,width:0,height:0},buildPath:function(e,t){var r=t.height,n=t.width,a=t.x,i=t.y,o=n/3*2;e.moveTo(a,i),e.lineTo(a+o,i+r),e.lineTo(a,i+r/4*3),e.lineTo(a-o,i+r),e.lineTo(a,i),e.closePath()}}),Kbt={line:Xa,rect:Zr,roundRect:Zr,square:Zr,circle:Fc,diamond:Wbt,pin:Gbt,arrow:Ubt,triangle:Vbt},Ybt={line:function(e,t,r,n,a){a.x1=e,a.y1=t+n/2,a.x2=e+r,a.y2=t+n/2},rect:function(e,t,r,n,a){a.x=e,a.y=t,a.width=r,a.height=n},roundRect:function(e,t,r,n,a){a.x=e,a.y=t,a.width=r,a.height=n,a.r=Math.min(r,n)/4},square:function(e,t,r,n,a){var i=Math.min(r,n);a.x=e,a.y=t,a.width=i,a.height=i},circle:function(e,t,r,n,a){a.cx=e+r/2,a.cy=t+n/2,a.r=Math.min(r,n)/2},diamond:function(e,t,r,n,a){a.cx=e+r/2,a.cy=t+n/2,a.width=r,a.height=n},pin:function(e,t,r,n,a){a.x=e+r/2,a.y=t+n/2,a.width=r,a.height=n},arrow:function(e,t,r,n,a){a.x=e+r/2,a.y=t+n/2,a.width=r,a.height=n},triangle:function(e,t,r,n,a){a.cx=e+r/2,a.cy=t+n/2,a.width=r,a.height=n}},G3={};q(Kbt,function(e,t){G3[t]=new e});var qbt=Vr.extend({type:\"symbol\",shape:{symbolType:\"\",x:0,y:0,width:0,height:0},calculateTextPosition:function(e,t,r){var n=P3(e,t,r),a=this.shape;return a&&a.symbolType===\"pin\"&&t.position===\"inside\"&&(n.y=r.y+r.height*.4),n},buildPath:function(e,t,r){var n=t.symbolType;if(n!==\"none\"){var a=G3[n];a||(n=\"rect\",a=G3[n]),Ybt[n](t.x,t.y,t.width,t.height,a.shape),a.buildPath(e,a.shape,r)}}});function Xbt(e,t){if(this.type!==\"image\"){var r=this.style;this.__isEmptyBrush?(r.stroke=e,r.fill=t||\"#fff\",r.lineWidth=2):this.shape.symbolType===\"line\"?r.stroke=e:r.fill=e,this.markRedraw()}}function _a(e,t,r,n,a,i,o){var l=e.indexOf(\"empty\")===0;l&&(e=e.substr(5,1).toLowerCase()+e.substr(6));var s;return e.indexOf(\"image://\")===0?s=bN(e.slice(8),new Ir(t,r,n,a),o?\"center\":\"cover\"):e.indexOf(\"path://\")===0?s=aC(e.slice(7),{},new Ir(t,r,n,a),o?\"center\":\"cover\"):s=new qbt({shape:{symbolType:e,x:t,y:r,width:n,height:a}}),s.__isEmptyBrush=l,s.setColor=Xbt,i&&s.setColor(i),s}function a1(e){return nt(e)||(e=[+e,+e]),[e[0]||0,e[1]||0]}function jm(e,t){if(e!=null)return nt(e)||(e=[e,e]),[Ft(e[0],t[0])||0,Ft(Fr(e[1],e[0]),t[1])||0]}function gp(e){return isFinite(e)}function Jbt(e,t,r){var n=t.x==null?0:t.x,a=t.x2==null?1:t.x2,i=t.y==null?0:t.y,o=t.y2==null?0:t.y2;t.global||(n=n*r.width+r.x,a=a*r.width+r.x,i=i*r.height+r.y,o=o*r.height+r.y),n=gp(n)?n:0,a=gp(a)?a:1,i=gp(i)?i:0,o=gp(o)?o:0;var l=e.createLinearGradient(n,i,a,o);return l}function Zbt(e,t,r){var n=r.width,a=r.height,i=Math.min(n,a),o=t.x==null?.5:t.x,l=t.y==null?.5:t.y,s=t.r==null?.5:t.r;t.global||(o=o*n+r.x,l=l*a+r.y,s=s*i),o=gp(o)?o:.5,l=gp(l)?l:.5,s=s>=0&&gp(s)?s:.5;var u=e.createRadialGradient(o,l,0,o,l,s);return u}function FP(e,t,r){for(var n=t.type===\"radial\"?Zbt(e,t,r):Jbt(e,t,r),a=t.colorStops,i=0;i<a.length;i++)n.addColorStop(a[i].offset,a[i].color);return n}function Qbt(e,t){if(e===t||!e&&!t)return!1;if(!e||!t||e.length!==t.length)return!0;for(var r=0;r<e.length;r++)if(e[r]!==t[r])return!0;return!1}function lS(e){return parseInt(e,10)}function l0(e,t,r){var n=[\"width\",\"height\"][t],a=[\"clientWidth\",\"clientHeight\"][t],i=[\"paddingLeft\",\"paddingTop\"][t],o=[\"paddingRight\",\"paddingBottom\"][t];if(r[n]!=null&&r[n]!==\"auto\")return parseFloat(r[n]);var l=document.defaultView.getComputedStyle(e);return(e[a]||lS(l[n])||lS(e.style[n]))-(lS(l[i])||0)-(lS(l[o])||0)|0}function e2t(e,t){return!e||e===\"solid\"||!(t>0)?null:e===\"dashed\"?[4*t,2*t]:e===\"dotted\"?[t]:nn(e)?[e]:nt(e)?e:null}function HN(e){var t=e.style,r=t.lineDash&&t.lineWidth>0&&e2t(t.lineDash,t.lineWidth),n=t.lineDashOffset;if(r){var a=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;a&&a!==1&&(r=ot(r,function(i){return i/a}),n/=a)}return[r,n]}var t2t=new gc(!0);function U3(e){var t=e.stroke;return!(t==null||t===\"none\"||!(e.lineWidth>0))}function yq(e){return typeof e==\"string\"&&e!==\"none\"}function K3(e){var t=e.fill;return t!=null&&t!==\"none\"}function bq(e,t){if(t.fillOpacity!=null&&t.fillOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.fillOpacity*t.opacity,e.fill(),e.globalAlpha=r}else e.fill()}function xq(e,t){if(t.strokeOpacity!=null&&t.strokeOpacity!==1){var r=e.globalAlpha;e.globalAlpha=t.strokeOpacity*t.opacity,e.stroke(),e.globalAlpha=r}else e.stroke()}function SP(e,t,r){var n=uN(t.image,t.__image,r);if(KD(n)){var a=e.createPattern(n,t.repeat||\"repeat\");if(typeof DOMMatrix==\"function\"&&a&&a.setTransform){var i=new DOMMatrix;i.translateSelf(t.x||0,t.y||0),i.rotateSelf(0,0,(t.rotation||0)*ob),i.scaleSelf(t.scaleX||1,t.scaleY||1),a.setTransform(i)}return a}}function r2t(e,t,r,n){var a,i=U3(r),o=K3(r),l=r.strokePercent,s=l<1,u=!t.path;(!t.silent||s)&&u&&t.createPathProxy();var c=t.path||t2t,d=t.__dirty;if(!n){var f=r.fill,h=r.stroke,p=o&&!!f.colorStops,v=i&&!!h.colorStops,g=o&&!!f.image,y=i&&!!h.image,b=void 0,x=void 0,F=void 0,S=void 0,E=void 0;(p||v)&&(E=t.getBoundingRect()),p&&(b=d?FP(e,f,E):t.__canvasFillGradient,t.__canvasFillGradient=b),v&&(x=d?FP(e,h,E):t.__canvasStrokeGradient,t.__canvasStrokeGradient=x),g&&(F=d||!t.__canvasFillPattern?SP(e,f,t):t.__canvasFillPattern,t.__canvasFillPattern=F),y&&(S=d||!t.__canvasStrokePattern?SP(e,h,t):t.__canvasStrokePattern,t.__canvasStrokePattern=F),p?e.fillStyle=b:g&&(F?e.fillStyle=F:o=!1),v?e.strokeStyle=x:y&&(S?e.strokeStyle=S:i=!1)}var w=t.getGlobalScale();c.setScale(w[0],w[1],t.segmentIgnoreThreshold);var D,A;e.setLineDash&&r.lineDash&&(a=HN(t),D=a[0],A=a[1]);var _=!0;(u||d&Bv)&&(c.setDPR(e.dpr),s?c.setContext(null):(c.setContext(e),_=!1),c.reset(),t.buildPath(c,t.shape,n),c.toStatic(),t.pathUpdated()),_&&c.rebuildPath(e,s?l:1),D&&(e.setLineDash(D),e.lineDashOffset=A),n||(r.strokeFirst?(i&&xq(e,r),o&&bq(e,r)):(o&&bq(e,r),i&&xq(e,r))),D&&e.setLineDash([])}function n2t(e,t,r){var n=t.__image=uN(r.image,t.__image,t,t.onload);if(!(!n||!KD(n))){var a=r.x||0,i=r.y||0,o=t.getWidth(),l=t.getHeight(),s=n.width/n.height;if(o==null&&l!=null?o=l*s:l==null&&o!=null?l=o/s:o==null&&l==null&&(o=n.width,l=n.height),r.sWidth&&r.sHeight){var u=r.sx||0,c=r.sy||0;e.drawImage(n,u,c,r.sWidth,r.sHeight,a,i,o,l)}else if(r.sx&&r.sy){var u=r.sx,c=r.sy,d=o-u,f=l-c;e.drawImage(n,u,c,d,f,a,i,o,l)}else e.drawImage(n,a,i,o,l)}}function a2t(e,t,r){var n,a=r.text;if(a!=null&&(a+=\"\"),a){e.font=r.font||Kf,e.textAlign=r.textAlign,e.textBaseline=r.textBaseline;var i=void 0,o=void 0;e.setLineDash&&r.lineDash&&(n=HN(t),i=n[0],o=n[1]),i&&(e.setLineDash(i),e.lineDashOffset=o),r.strokeFirst?(U3(r)&&e.strokeText(a,r.x,r.y),K3(r)&&e.fillText(a,r.x,r.y)):(K3(r)&&e.fillText(a,r.x,r.y),U3(r)&&e.strokeText(a,r.x,r.y)),i&&e.setLineDash([])}}var Cq=[\"shadowBlur\",\"shadowOffsetX\",\"shadowOffsetY\"],Fq=[[\"lineCap\",\"butt\"],[\"lineJoin\",\"miter\"],[\"miterLimit\",10]];function Gme(e,t,r,n,a){var i=!1;if(!n&&(r=r||{},t===r))return!1;if(n||t.opacity!==r.opacity){ol(e,a),i=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?Rp.opacity:o}(n||t.blend!==r.blend)&&(i||(ol(e,a),i=!0),e.globalCompositeOperation=t.blend||Rp.blend);for(var l=0;l<Cq.length;l++){var s=Cq[l];(n||t[s]!==r[s])&&(i||(ol(e,a),i=!0),e[s]=e.dpr*(t[s]||0))}return(n||t.shadowColor!==r.shadowColor)&&(i||(ol(e,a),i=!0),e.shadowColor=t.shadowColor||Rp.shadowColor),i}function Sq(e,t,r,n,a){var i=N2(t,a.inHover),o=n?null:r&&N2(r,a.inHover)||{};if(i===o)return!1;var l=Gme(e,i,o,n,a);if((n||i.fill!==o.fill)&&(l||(ol(e,a),l=!0),yq(i.fill)&&(e.fillStyle=i.fill)),(n||i.stroke!==o.stroke)&&(l||(ol(e,a),l=!0),yq(i.stroke)&&(e.strokeStyle=i.stroke)),(n||i.opacity!==o.opacity)&&(l||(ol(e,a),l=!0),e.globalAlpha=i.opacity==null?1:i.opacity),t.hasStroke()){var s=i.lineWidth,u=s/(i.strokeNoScale&&t.getLineScale?t.getLineScale():1);e.lineWidth!==u&&(l||(ol(e,a),l=!0),e.lineWidth=u)}for(var c=0;c<Fq.length;c++){var d=Fq[c],f=d[0];(n||i[f]!==o[f])&&(l||(ol(e,a),l=!0),e[f]=i[f]||d[1])}return l}function i2t(e,t,r,n,a){return Gme(e,N2(t,a.inHover),r&&N2(r,a.inHover),n,a)}function Ume(e,t){var r=t.transform,n=e.dpr||1;r?e.setTransform(n*r[0],n*r[1],n*r[2],n*r[3],n*r[4],n*r[5]):e.setTransform(n,0,0,n,0,0)}function o2t(e,t,r){for(var n=!1,a=0;a<e.length;a++){var i=e[a];n=n||i.isZeroArea(),Ume(t,i),t.beginPath(),i.buildPath(t,i.shape),t.clip()}r.allClipped=n}function l2t(e,t){return e&&t?e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3]||e[4]!==t[4]||e[5]!==t[5]:!(!e&&!t)}var wq=1,Eq=2,Dq=3,Aq=4;function s2t(e){var t=K3(e),r=U3(e);return!(e.lineDash||!(+t^+r)||t&&typeof e.fill!=\"string\"||r&&typeof e.stroke!=\"string\"||e.strokePercent<1||e.strokeOpacity<1||e.fillOpacity<1)}function ol(e,t){t.batchFill&&e.fill(),t.batchStroke&&e.stroke(),t.batchFill=\"\",t.batchStroke=\"\"}function N2(e,t){return t&&e.__hoverStyle||e.style}function VN(e,t){yp(e,t,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function yp(e,t,r,n){var a=t.transform;if(!t.shouldBePainted(r.viewWidth,r.viewHeight,!1,!1)){t.__dirty&=~_l,t.__isRendered=!1;return}var i=t.__clipPaths,o=r.prevElClipPaths,l=!1,s=!1;if((!o||Qbt(i,o))&&(o&&o.length&&(ol(e,r),e.restore(),s=l=!0,r.prevElClipPaths=null,r.allClipped=!1,r.prevEl=null),i&&i.length&&(ol(e,r),e.save(),o2t(i,e,r),l=!0),r.prevElClipPaths=i),r.allClipped){t.__isRendered=!1;return}t.beforeBrush&&t.beforeBrush(),t.innerBeforeBrush();var u=r.prevEl;u||(s=l=!0);var c=t instanceof Vr&&t.autoBatch&&s2t(t.style);l||l2t(a,u.transform)?(ol(e,r),Ume(e,t)):c||ol(e,r);var d=N2(t,r.inHover);t instanceof Vr?(r.lastDrawType!==wq&&(s=!0,r.lastDrawType=wq),Sq(e,t,u,s,r),(!c||!r.batchFill&&!r.batchStroke)&&e.beginPath(),r2t(e,t,d,c),c&&(r.batchFill=d.fill||\"\",r.batchStroke=d.stroke||\"\")):t instanceof ig?(r.lastDrawType!==Dq&&(s=!0,r.lastDrawType=Dq),Sq(e,t,u,s,r),a2t(e,t,d)):t instanceof yi?(r.lastDrawType!==Eq&&(s=!0,r.lastDrawType=Eq),i2t(e,t,u,s,r),n2t(e,t,d)):t.getTemporalDisplayables&&(r.lastDrawType!==Aq&&(s=!0,r.lastDrawType=Aq),u2t(e,t,r)),c&&n&&ol(e,r),t.innerAfterBrush(),t.afterBrush&&t.afterBrush(),r.prevEl=t,t.__dirty=0,t.__isRendered=!0}function u2t(e,t,r){var n=t.getDisplayables(),a=t.getTemporalDisplayables();e.save();var i={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:r.viewWidth,viewHeight:r.viewHeight,inHover:r.inHover},o,l;for(o=t.getCursor(),l=n.length;o<l;o++){var s=n[o];s.beforeBrush&&s.beforeBrush(),s.innerBeforeBrush(),yp(e,s,i,o===l-1),s.innerAfterBrush(),s.afterBrush&&s.afterBrush(),i.prevEl=s}for(var u=0,c=a.length;u<c;u++){var s=a[u];s.beforeBrush&&s.beforeBrush(),s.innerBeforeBrush(),yp(e,s,i,u===c-1),s.innerAfterBrush(),s.afterBrush&&s.afterBrush(),i.prevEl=s}t.clearTemporalDisplayables(),t.notClear=!0,e.restore()}var QT=new Hbt,_q=new Zx(100),Tq=[\"symbol\",\"symbolSize\",\"symbolKeepAspect\",\"color\",\"backgroundColor\",\"dashArrayX\",\"dashArrayY\",\"maxTileWidth\",\"maxTileHeight\"];function sg(e,t){if(e===\"none\")return null;var r=t.getDevicePixelRatio(),n=t.getZr(),a=n.painter.type===\"svg\";e.dirty&&QT.delete(e);var i=QT.get(e);if(i)return i;var o=rr(e,{symbol:\"rect\",symbolSize:1,symbolKeepAspect:!0,color:\"rgba(0, 0, 0, 0.2)\",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});o.backgroundColor===\"none\"&&(o.backgroundColor=null);var l={repeat:\"repeat\"};return s(l),l.rotation=o.rotation,l.scaleX=l.scaleY=a?1:1/r,QT.set(e,l),e.dirty=!1,l;function s(u){for(var c=[r],d=!0,f=0;f<Tq.length;++f){var h=o[Tq[f]];if(h!=null&&!nt(h)&&!At(h)&&!nn(h)&&typeof h!=\"boolean\"){d=!1;break}c.push(h)}var p;if(d){p=c.join(\",\")+(a?\"-svg\":\"\");var v=_q.get(p);v&&(a?u.svgElement=v:u.image=v)}var g=Yme(o.dashArrayX),y=c2t(o.dashArrayY),b=Kme(o.symbol),x=d2t(g),F=qme(y),S=!a&&xu.createCanvas(),E=a&&{tag:\"g\",attrs:{},key:\"dcl\",children:[]},w=A(),D;S&&(S.width=w.width*r,S.height=w.height*r,D=S.getContext(\"2d\")),_(),d&&_q.put(p,S||E),u.image=S,u.svgElement=E,u.svgWidth=w.width,u.svgHeight=w.height;function A(){for(var I=1,M=0,T=x.length;M<T;++M)I=UK(I,x[M]);for(var k=1,M=0,T=b.length;M<T;++M)k=UK(k,b[M].length);I*=k;var R=F*x.length*b.length;return{width:Math.max(1,Math.min(I,o.maxTileWidth)),height:Math.max(1,Math.min(R,o.maxTileHeight))}}function _(){D&&(D.clearRect(0,0,S.width,S.height),o.backgroundColor&&(D.fillStyle=o.backgroundColor,D.fillRect(0,0,S.width,S.height)));for(var I=0,M=0;M<y.length;++M)I+=y[M];if(I<=0)return;for(var T=-F,k=0,R=0,P=0;T<w.height;){if(k%2===0){for(var B=R/2%b.length,N=0,O=0,z=0;N<w.width*2;){for(var W=0,M=0;M<g[P].length;++M)W+=g[P][M];if(W<=0)break;if(O%2===0){var L=(1-o.symbolSize)*.5,j=N+g[P][O]*L,H=T+y[k]*L,V=g[P][O]*o.symbolSize,U=y[k]*o.symbolSize,Q=z/2%b[B].length;K(j,H,V,U,b[B][Q])}N+=g[P][O],++z,++O,O===g[P].length&&(O=0)}++P,P===g.length&&(P=0)}T+=y[k],++R,++k,k===y.length&&(k=0)}function K(Y,ee,J,X,ce){var oe=a?1:r,ue=_a(ce,Y*oe,ee*oe,J*oe,X*oe,o.color,o.symbolKeepAspect);if(a){var ie=n.painter.renderOneToVNode(ue);ie&&E.children.push(ie)}else VN(D,ue)}}}}function Kme(e){if(!e||e.length===0)return[[\"rect\"]];if(At(e))return[[e]];for(var t=!0,r=0;r<e.length;++r)if(!At(e[r])){t=!1;break}if(t)return Kme([e]);for(var n=[],r=0;r<e.length;++r)At(e[r])?n.push([e[r]]):n.push(e[r]);return n}function Yme(e){if(!e||e.length===0)return[[0,0]];if(nn(e)){var t=Math.ceil(e);return[[t,t]]}for(var r=!0,n=0;n<e.length;++n)if(!nn(e[n])){r=!1;break}if(r)return Yme([e]);for(var a=[],n=0;n<e.length;++n)if(nn(e[n])){var t=Math.ceil(e[n]);a.push([t,t])}else{var t=ot(e[n],function(l){return Math.ceil(l)});t.length%2===1?a.push(t.concat(t)):a.push(t)}return a}function c2t(e){if(!e||typeof e==\"object\"&&e.length===0)return[0,0];if(nn(e)){var t=Math.ceil(e);return[t,t]}var r=ot(e,function(n){return Math.ceil(n)});return e.length%2?r.concat(r):r}function d2t(e){return ot(e,function(t){return qme(t)})}function qme(e){for(var t=0,r=0;r<e.length;++r)t+=e[r];return e.length%2===1?t*2:t}function f2t(e,t){e.eachRawSeries(function(r){if(!e.isSeriesFiltered(r)){var n=r.getData();n.hasItemVisual()&&n.each(function(o){var l=n.getItemVisual(o,\"decal\");if(l){var s=n.ensureUniqueItemVisual(o,\"style\");s.decal=sg(l,t)}});var a=n.getVisual(\"decal\");if(a){var i=n.getVisual(\"style\");i.decal=sg(a,t)}}})}var Us=new Rs,Xme={};function h2t(e,t){Xme[e]=t}function Jme(e){return Xme[e]}var p2t=\"5.6.0\",m2t={zrender:\"5.6.1\"},v2t=1,g2t=800,y2t=900,b2t=1e3,x2t=2e3,C2t=5e3,Zme=1e3,F2t=1100,WN=2e3,Qme=3e3,S2t=4e3,dA=4500,w2t=4600,E2t=5e3,D2t=6e3,eve=7e3,tve={PROCESSOR:{FILTER:b2t,SERIES_FILTER:g2t,STATISTIC:C2t},VISUAL:{LAYOUT:Zme,PROGRESSIVE_LAYOUT:F2t,GLOBAL:WN,CHART:Qme,POST_CHART_LAYOUT:w2t,COMPONENT:S2t,BRUSH:E2t,CHART_ITEM:dA,ARIA:D2t,DECAL:eve}},ao=\"__flagInMainProcess\",el=\"__pendingUpdate\",eI=\"__needsUpdateStatus\",Iq=/^[a-zA-Z0-9_]+$/,tI=\"__connectUpdateStatus\",kq=0,A2t=1,_2t=2;function rve(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];if(this.isDisposed()){this.id;return}return ave(this,e,t)}}function nve(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return ave(this,e,t)}}function ave(e,t,r){return r[0]=r[0]&&r[0].toLowerCase(),Rs.prototype[t].apply(e,r)}var ive=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(Rs),ove=ive.prototype;ove.on=nve(\"on\");ove.off=nve(\"off\");var xv,rI,sS,Bd,nI,aI,iI,j1,z1,Rq,Mq,oI,Pq,uS,Oq,lve,Xl,Bq,Y3=function(e){Re(t,e);function t(r,n,a){var i=e.call(this,new Bbt)||this;i._chartsViews=[],i._chartsMap={},i._componentsViews=[],i._componentsMap={},i._pendingActions=[],a=a||{},At(n)&&(n=sve[n]),i._dom=r;var o=\"canvas\",l=\"auto\",s=!1;a.ssr&&Ghe(function(f){var h=br(f),p=h.dataIndex;if(p!=null){var v=Gt();return v.set(\"series_index\",h.seriesIndex),v.set(\"data_index\",p),h.ssrType&&v.set(\"ssr_type\",h.ssrType),v}});var u=i._zr=XM(r,{renderer:a.renderer||o,devicePixelRatio:a.devicePixelRatio,width:a.width,height:a.height,ssr:a.ssr,useDirtyRect:Fr(a.useDirtyRect,s),useCoarsePointer:Fr(a.useCoarsePointer,l),pointerSize:a.pointerSize});i._ssr=a.ssr,i._throttledZrFlush=cA(Pt(u.flush,u),17),n=lr(n),n&&hme(n,!0),i._theme=n,i._locale=G1t(a.locale||Gpe),i._coordSysMgr=new t1;var c=i._api=Oq(i);function d(f,h){return f.__prio-h.__prio}return Dw(X3,d),Dw(wP,d),i._scheduler=new $me(i,c,wP,X3),i._messageCenter=new ive,i._initEvents(),i.resize=Pt(i.resize,i),u.animation.on(\"frame\",i._onframe,i),Rq(u,i),Mq(u,i),C2(i),i}return t.prototype._onframe=function(){if(!this._disposed){Bq(this);var r=this._scheduler;if(this[el]){var n=this[el].silent;this[ao]=!0;try{xv(this),Bd.update.call(this,null,this[el].updateParams)}catch(s){throw this[ao]=!1,this[el]=null,s}this._zr.flush(),this[ao]=!1,this[el]=null,j1.call(this,n),z1.call(this,n)}else if(r.unfinished){var a=v2t,i=this._model,o=this._api;r.unfinished=!1;do{var l=+new Date;r.performSeriesTasks(i),r.performDataProcessorTasks(i),aI(this,i),r.performVisualTasks(i),uS(this,this._model,o,\"remain\",{}),a-=+new Date-l}while(a>0&&r.unfinished);r.unfinished||this._zr.flush()}}},t.prototype.getDom=function(){return this._dom},t.prototype.getId=function(){return this.id},t.prototype.getZr=function(){return this._zr},t.prototype.isSSR=function(){return this._ssr},t.prototype.setOption=function(r,n,a){if(!this[ao]){if(this._disposed){this.id;return}var i,o,l;if(ir(n)&&(a=n.lazyUpdate,i=n.silent,o=n.replaceMerge,l=n.transition,n=n.notMerge),this[ao]=!0,!this._model||n){var s=new yyt(this._api),u=this._theme,c=this._model=new BN;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,u,this._locale,s)}this._model.setOption(r,{replaceMerge:o},EP);var d={seriesTransition:l,optionChanged:!0};if(a)this[el]={silent:i,updateParams:d},this[ao]=!1,this.getZr().wakeUp();else{try{xv(this),Bd.update.call(this,null,d)}catch(f){throw this[el]=null,this[ao]=!1,f}this._ssr||this._zr.flush(),this[el]=null,this[ao]=!1,j1.call(this,i),z1.call(this,i)}}},t.prototype.setTheme=function(){},t.prototype.getModel=function(){return this._model},t.prototype.getOption=function(){return this._model&&this._model.getOption()},t.prototype.getWidth=function(){return this._zr.getWidth()},t.prototype.getHeight=function(){return this._zr.getHeight()},t.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||zr.hasGlobalWindow&&window.devicePixelRatio||1},t.prototype.getRenderedCanvas=function(r){return this.renderToCanvas(r)},t.prototype.renderToCanvas=function(r){r=r||{};var n=this._zr.painter;return n.getRenderedCanvas({backgroundColor:r.backgroundColor||this._model.get(\"backgroundColor\"),pixelRatio:r.pixelRatio||this.getDevicePixelRatio()})},t.prototype.renderToSVGString=function(r){r=r||{};var n=this._zr.painter;return n.renderToString({useViewBox:r.useViewBox})},t.prototype.getSvgDataURL=function(){if(zr.svgSupported){var r=this._zr,n=r.storage.getDisplayList();return q(n,function(a){a.stopAnimation(null,!0)}),r.painter.toDataURL()}},t.prototype.getDataURL=function(r){if(this._disposed){this.id;return}r=r||{};var n=r.excludeComponents,a=this._model,i=[],o=this;q(n,function(s){a.eachComponent({mainType:s},function(u){var c=o._componentsMap[u.__viewId];c.group.ignore||(i.push(c),c.group.ignore=!0)})});var l=this._zr.painter.getType()===\"svg\"?this.getSvgDataURL():this.renderToCanvas(r).toDataURL(\"image/\"+(r&&r.type||\"png\"));return q(i,function(s){s.group.ignore=!1}),l},t.prototype.getConnectedDataURL=function(r){if(this._disposed){this.id;return}var n=r.type===\"svg\",a=this.group,i=Math.min,o=Math.max,l=1/0;if(J3[a]){var s=l,u=l,c=-l,d=-l,f=[],h=r&&r.pixelRatio||this.getDevicePixelRatio();q(Op,function(x,F){if(x.group===a){var S=n?x.getZr().painter.getSvgDom().innerHTML:x.renderToCanvas(lr(r)),E=x.getDom().getBoundingClientRect();s=i(E.left,s),u=i(E.top,u),c=o(E.right,c),d=o(E.bottom,d),f.push({dom:S,left:E.left,top:E.top})}}),s*=h,u*=h,c*=h,d*=h;var p=c-s,v=d-u,g=xu.createCanvas(),y=XM(g,{renderer:n?\"svg\":\"canvas\"});if(y.resize({width:p,height:v}),n){var b=\"\";return q(f,function(x){var F=x.left-s,S=x.top-u;b+='<g transform=\"translate('+F+\",\"+S+')\">'+x.dom+\"</g>\"}),y.painter.getSvgRoot().innerHTML=b,r.connectedBackgroundColor&&y.painter.setBackgroundColor(r.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}else return r.connectedBackgroundColor&&y.add(new Zr({shape:{x:0,y:0,width:p,height:v},style:{fill:r.connectedBackgroundColor}})),q(f,function(x){var F=new yi({style:{x:x.left*h-s,y:x.top*h-u,image:x.dom}});y.add(F)}),y.refreshImmediately(),g.toDataURL(\"image/\"+(r&&r.type||\"png\"))}else return this.getDataURL(r)},t.prototype.convertToPixel=function(r,n){return nI(this,\"convertToPixel\",r,n)},t.prototype.convertFromPixel=function(r,n){return nI(this,\"convertFromPixel\",r,n)},t.prototype.containPixel=function(r,n){if(this._disposed){this.id;return}var a=this._model,i,o=hb(a,r);return q(o,function(l,s){s.indexOf(\"Models\")>=0&&q(l,function(u){var c=u.coordinateSystem;if(c&&c.containPoint)i=i||!!c.containPoint(n);else if(s===\"seriesModels\"){var d=this._chartsMap[u.__viewId];d&&d.containPoint&&(i=i||d.containPoint(n,u))}},this)},this),!!i},t.prototype.getVisual=function(r,n){var a=this._model,i=hb(a,r,{defaultMainType:\"series\"}),o=i.seriesModel,l=o.getData(),s=i.hasOwnProperty(\"dataIndexInside\")?i.dataIndexInside:i.hasOwnProperty(\"dataIndex\")?l.indexOfRawIndex(i.dataIndex):null;return s!=null?zN(l,s,n):lC(l,n)},t.prototype.getViewOfComponentModel=function(r){return this._componentsMap[r.__viewId]},t.prototype.getViewOfSeriesModel=function(r){return this._chartsMap[r.__viewId]},t.prototype._initEvents=function(){var r=this;q(T2t,function(n){var a=function(i){var o=r.getModel(),l=i.target,s,u=n===\"globalout\";if(u?s={}:l&&vp(l,function(p){var v=br(p);if(v&&v.dataIndex!=null){var g=v.dataModel||o.getSeriesByIndex(v.seriesIndex);return s=g&&g.getDataParams(v.dataIndex,v.dataType,l)||{},!0}else if(v.eventData)return s=Xe({},v.eventData),!0},!0),s){var c=s.componentType,d=s.componentIndex;(c===\"markLine\"||c===\"markPoint\"||c===\"markArea\")&&(c=\"series\",d=s.seriesIndex);var f=c&&d!=null&&o.getComponent(c,d),h=f&&r[f.mainType===\"series\"?\"_chartsMap\":\"_componentsMap\"][f.__viewId];s.event=i,s.type=n,r._$eventProcessor.eventInfo={targetEl:l,packedEvent:s,model:f,view:h},r.trigger(n,s)}};a.zrEventfulCallAtLast=!0,r._zr.on(n,a,r)}),q(bb,function(n,a){r._messageCenter.on(a,function(i){this.trigger(a,i)},r)}),q([\"selectchanged\"],function(n){r._messageCenter.on(n,function(a){this.trigger(n,a)},r)}),Lbt(this._messageCenter,this,this._api)},t.prototype.isDisposed=function(){return this._disposed},t.prototype.clear=function(){if(this._disposed){this.id;return}this.setOption({series:[]},!0)},t.prototype.dispose=function(){if(this._disposed){this.id;return}this._disposed=!0;var r=this.getDom();r&&rpe(this.getDom(),UN,\"\");var n=this,a=n._api,i=n._model;q(n._componentsViews,function(o){o.dispose(i,a)}),q(n._chartsViews,function(o){o.dispose(i,a)}),n._zr.dispose(),n._dom=n._model=n._chartsMap=n._componentsMap=n._chartsViews=n._componentsViews=n._scheduler=n._api=n._zr=n._throttledZrFlush=n._theme=n._coordSysMgr=n._messageCenter=null,delete Op[n.id]},t.prototype.resize=function(r){if(!this[ao]){if(this._disposed){this.id;return}this._zr.resize(r);var n=this._model;if(this._loadingFX&&this._loadingFX.resize(),!!n){var a=n.resetOption(\"media\"),i=r&&r.silent;this[el]&&(i==null&&(i=this[el].silent),a=!0,this[el]=null),this[ao]=!0;try{a&&xv(this),Bd.update.call(this,{type:\"resize\",animation:Xe({duration:0},r&&r.animation)})}catch(o){throw this[ao]=!1,o}this[ao]=!1,j1.call(this,i),z1.call(this,i)}}},t.prototype.showLoading=function(r,n){if(this._disposed){this.id;return}if(ir(r)&&(n=r,r=\"\"),r=r||\"default\",this.hideLoading(),!!DP[r]){var a=DP[r](this._api,n),i=this._zr;this._loadingFX=a,i.add(a)}},t.prototype.hideLoading=function(){if(this._disposed){this.id;return}this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},t.prototype.makeActionFromEvent=function(r){var n=Xe({},r);return n.type=bb[r.type],n},t.prototype.dispatchAction=function(r,n){if(this._disposed){this.id;return}if(ir(n)||(n={silent:!!n}),!!q3[r.type]&&this._model){if(this[ao]){this._pendingActions.push(r);return}var a=n.silent;iI.call(this,r,a);var i=n.flush;i?this._zr.flush():i!==!1&&zr.browser.weChat&&this._throttledZrFlush(),j1.call(this,a),z1.call(this,a)}},t.prototype.updateLabelLayout=function(){Us.trigger(\"series:layoutlabels\",this._model,this._api,{updatedSeries:[]})},t.prototype.appendData=function(r){if(this._disposed){this.id;return}var n=r.seriesIndex,a=this.getModel(),i=a.getSeriesByIndex(n);i.appendData(r),this._scheduler.unfinished=!0,this.getZr().wakeUp()},t.internalField=function(){xv=function(d){var f=d._scheduler;f.restorePipelines(d._model),f.prepareStageTasks(),rI(d,!0),rI(d,!1),f.plan()},rI=function(d,f){for(var h=d._model,p=d._scheduler,v=f?d._componentsViews:d._chartsViews,g=f?d._componentsMap:d._chartsMap,y=d._zr,b=d._api,x=0;x<v.length;x++)v[x].__alive=!1;f?h.eachComponent(function(E,w){E!==\"series\"&&F(w)}):h.eachSeries(F);function F(E){var w=E.__requireNewView;E.__requireNewView=!1;var D=\"_ec_\"+E.id+\"_\"+E.type,A=!w&&g[D];if(!A){var _=Xu(E.type),I=f?Wn.getClass(_.main,_.sub):Cn.getClass(_.sub);A=new I,A.init(h,b),g[D]=A,v.push(A),y.add(A.group)}E.__viewId=A.__id=D,A.__alive=!0,A.__model=E,A.group.__ecComponentInfo={mainType:E.mainType,index:E.componentIndex},!f&&p.prepareView(A,E,h,b)}for(var x=0;x<v.length;){var S=v[x];S.__alive?x++:(!f&&S.renderTask.dispose(),y.remove(S.group),S.dispose(h,b),v.splice(x,1),g[S.__id]===S&&delete g[S.__id],S.__id=S.group.__ecComponentInfo=null)}},sS=function(d,f,h,p,v){var g=d._model;if(g.setUpdatePayload(h),!p){q([].concat(d._componentsViews).concat(d._chartsViews),S);return}var y={};y[p+\"Id\"]=h[p+\"Id\"],y[p+\"Index\"]=h[p+\"Index\"],y[p+\"Name\"]=h[p+\"Name\"];var b={mainType:p,query:y};v&&(b.subType=v);var x=h.excludeSeriesId,F;x!=null&&(F=Gt(),q(An(x),function(E){var w=qa(E,null);w!=null&&F.set(w,!0)})),g&&g.eachComponent(b,function(E){var w=F&&F.get(E.id)!=null;if(!w)if(yY(h))if(E instanceof _n)h.type===Mp&&!h.notBlur&&!E.get([\"emphasis\",\"disabled\"])&&Ygt(E,h,d._api);else{var D=mN(E.mainType,E.componentIndex,h.name,d._api),A=D.focusSelf,_=D.dispatchers;h.type===Mp&&A&&!h.notBlur&&oP(E.mainType,E.componentIndex,d._api),_&&q(_,function(I){h.type===Mp?fd(I):hd(I)})}else sP(h)&&E instanceof _n&&(Jgt(E,h,d._api),vY(E),Xl(d))},d),g&&g.eachComponent(b,function(E){var w=F&&F.get(E.id)!=null;w||S(d[p===\"series\"?\"_chartsMap\":\"_componentsMap\"][E.__viewId])},d);function S(E){E&&E.__alive&&E[f]&&E[f](E.__model,g,d._api,h)}},Bd={prepareAndUpdate:function(d){xv(this),Bd.update.call(this,d,{optionChanged:d.newOption!=null})},update:function(d,f){var h=this._model,p=this._api,v=this._zr,g=this._coordSysMgr,y=this._scheduler;if(h){h.setUpdatePayload(d),y.restoreData(h,d),y.performSeriesTasks(h),g.create(h,p),y.performDataProcessorTasks(h,d),aI(this,h),g.update(h,p),r(h),y.performVisualTasks(h,d),oI(this,h,p,d,f);var b=h.get(\"backgroundColor\")||\"transparent\",x=h.get(\"darkMode\");v.setBackgroundColor(b),x!=null&&x!==\"auto\"&&v.setDarkMode(x),Us.trigger(\"afterupdate\",h,p)}},updateTransform:function(d){var f=this,h=this._model,p=this._api;if(h){h.setUpdatePayload(d);var v=[];h.eachComponent(function(y,b){if(y!==\"series\"){var x=f.getViewOfComponentModel(b);if(x&&x.__alive)if(x.updateTransform){var F=x.updateTransform(b,h,p,d);F&&F.update&&v.push(x)}else v.push(x)}});var g=Gt();h.eachSeries(function(y){var b=f._chartsMap[y.__viewId];if(b.updateTransform){var x=b.updateTransform(y,h,p,d);x&&x.update&&g.set(y.uid,1)}else g.set(y.uid,1)}),r(h),this._scheduler.performVisualTasks(h,d,{setDirty:!0,dirtyMap:g}),uS(this,h,p,d,{},g),Us.trigger(\"afterupdate\",h,p)}},updateView:function(d){var f=this._model;f&&(f.setUpdatePayload(d),Cn.markUpdateMethod(d,\"updateView\"),r(f),this._scheduler.performVisualTasks(f,d,{setDirty:!0}),oI(this,f,this._api,d,{}),Us.trigger(\"afterupdate\",f,this._api))},updateVisual:function(d){var f=this,h=this._model;h&&(h.setUpdatePayload(d),h.eachSeries(function(p){p.getData().clearAllVisual()}),Cn.markUpdateMethod(d,\"updateVisual\"),r(h),this._scheduler.performVisualTasks(h,d,{visualType:\"visual\",setDirty:!0}),h.eachComponent(function(p,v){if(p!==\"series\"){var g=f.getViewOfComponentModel(v);g&&g.__alive&&g.updateVisual(v,h,f._api,d)}}),h.eachSeries(function(p){var v=f._chartsMap[p.__viewId];v.updateVisual(p,h,f._api,d)}),Us.trigger(\"afterupdate\",h,this._api))},updateLayout:function(d){Bd.update.call(this,d)}},nI=function(d,f,h,p){if(d._disposed){d.id;return}for(var v=d._model,g=d._coordSysMgr.getCoordinateSystems(),y,b=hb(v,h),x=0;x<g.length;x++){var F=g[x];if(F[f]&&(y=F[f](v,b,p))!=null)return y}},aI=function(d,f){var h=d._chartsMap,p=d._scheduler;f.eachSeries(function(v){p.updateStreamModes(v,h[v.__viewId])})},iI=function(d,f){var h=this,p=this.getModel(),v=d.type,g=d.escapeConnect,y=q3[v],b=y.actionInfo,x=(b.update||\"update\").split(\":\"),F=x.pop(),S=x[0]!=null&&Xu(x[0]);this[ao]=!0;var E=[d],w=!1;d.batch&&(w=!0,E=ot(d.batch,function(k){return k=rr(Xe({},k),d),k.batch=null,k}));var D=[],A,_=sP(d),I=yY(d);if(I&&wpe(this._api),q(E,function(k){if(A=y.action(k,h._model,h._api),A=A||Xe({},k),A.type=b.event||A.type,D.push(A),I){var R=lN(d),P=R.queryOptionMap,B=R.mainTypeSpecified,N=B?P.keys()[0]:\"series\";sS(h,F,k,N),Xl(h)}else _?(sS(h,F,k,\"series\"),Xl(h)):S&&sS(h,F,k,S.main,S.sub)}),F!==\"none\"&&!I&&!_&&!S)try{this[el]?(xv(this),Bd.update.call(this,d),this[el]=null):Bd[F].call(this,d)}catch(k){throw this[ao]=!1,k}if(w?A={type:b.event||v,escapeConnect:g,batch:D}:A=D[0],this[ao]=!1,!f){var M=this._messageCenter;if(M.trigger(A.type,A),_){var T={type:\"selectchanged\",escapeConnect:g,selected:Zgt(p),isFromClick:d.isFromClick||!1,fromAction:d.type,fromActionPayload:d};M.trigger(T.type,T)}}},j1=function(d){for(var f=this._pendingActions;f.length;){var h=f.shift();iI.call(this,h,d)}},z1=function(d){!d&&this.trigger(\"updated\")},Rq=function(d,f){d.on(\"rendered\",function(h){f.trigger(\"rendered\",h),d.animation.isFinished()&&!f[el]&&!f._scheduler.unfinished&&!f._pendingActions.length&&f.trigger(\"finished\")})},Mq=function(d,f){d.on(\"mouseover\",function(h){var p=h.target,v=vp(p,I2);v&&(qgt(v,h,f._api),Xl(f))}).on(\"mouseout\",function(h){var p=h.target,v=vp(p,I2);v&&(Xgt(v,h,f._api),Xl(f))}).on(\"click\",function(h){var p=h.target,v=vp(p,function(b){return br(b).dataIndex!=null},!0);if(v){var g=v.selected?\"unselect\":\"select\",y=br(v);f._api.dispatchAction({type:g,dataType:y.dataType,dataIndexInside:y.dataIndex,seriesIndex:y.seriesIndex,isFromClick:!0})}})};function r(d){d.clearColorPalette(),d.eachSeries(function(f){f.clearColorPalette()})}function n(d){var f=[],h=[],p=!1;if(d.eachComponent(function(b,x){var F=x.get(\"zlevel\")||0,S=x.get(\"z\")||0,E=x.getZLevelKey();p=p||!!E,(b===\"series\"?h:f).push({zlevel:F,z:S,idx:x.componentIndex,type:b,key:E})}),p){var v=f.concat(h),g,y;Dw(v,function(b,x){return b.zlevel===x.zlevel?b.z-x.z:b.zlevel-x.zlevel}),q(v,function(b){var x=d.getComponent(b.type,b.idx),F=b.zlevel,S=b.key;g!=null&&(F=Math.max(g,F)),S?(F===g&&S!==y&&F++,y=S):y&&(F===g&&F++,y=\"\"),g=F,x.setZLevel(F)})}}oI=function(d,f,h,p,v){n(f),Pq(d,f,h,p,v),q(d._chartsViews,function(g){g.__alive=!1}),uS(d,f,h,p,v),q(d._chartsViews,function(g){g.__alive||g.remove(f,h)})},Pq=function(d,f,h,p,v,g){q(g||d._componentsViews,function(y){var b=y.__model;u(b,y),y.render(b,f,h,p),l(b,y),c(b,y)})},uS=function(d,f,h,p,v,g){var y=d._scheduler;v=Xe(v||{},{updatedSeries:f.getSeries()}),Us.trigger(\"series:beforeupdate\",f,h,v);var b=!1;f.eachSeries(function(x){var F=d._chartsMap[x.__viewId];F.__alive=!0;var S=F.renderTask;y.updatePayload(S,p),u(x,F),g&&g.get(x.uid)&&S.dirty(),S.perform(y.getPerformArgs(S))&&(b=!0),F.group.silent=!!x.get(\"silent\"),o(x,F),vY(x)}),y.unfinished=b||y.unfinished,Us.trigger(\"series:layoutlabels\",f,h,v),Us.trigger(\"series:transition\",f,h,v),f.eachSeries(function(x){var F=d._chartsMap[x.__viewId];l(x,F),c(x,F)}),i(d,f),Us.trigger(\"series:afterupdate\",f,h,v)},Xl=function(d){d[eI]=!0,d.getZr().wakeUp()},Bq=function(d){d[eI]&&(d.getZr().storage.traverse(function(f){_0(f)||a(f)}),d[eI]=!1)};function a(d){for(var f=[],h=d.currentStates,p=0;p<h.length;p++){var v=h[p];v===\"emphasis\"||v===\"blur\"||v===\"select\"||f.push(v)}d.selected&&d.states.select&&f.push(\"select\"),d.hoverState===XD&&d.states.emphasis?f.push(\"emphasis\"):d.hoverState===tC&&d.states.blur&&f.push(\"blur\"),d.useStates(f)}function i(d,f){var h=d._zr,p=h.storage,v=0;p.traverse(function(g){g.isGroup||v++}),v>f.get(\"hoverLayerThreshold\")&&!zr.node&&!zr.worker&&f.eachSeries(function(g){if(!g.preventUsingHoverLayer){var y=d._chartsMap[g.__viewId];y.__alive&&y.eachRendered(function(b){b.states.emphasis&&(b.states.emphasis.hoverLayer=!0)})}})}function o(d,f){var h=d.get(\"blendMode\")||null;f.eachRendered(function(p){p.isGroup||(p.style.blend=h)})}function l(d,f){if(!d.preventAutoZ){var h=d.get(\"z\")||0,p=d.get(\"zlevel\")||0;f.eachRendered(function(v){return s(v,h,p,-1/0),!0})}}function s(d,f,h,p){var v=d.getTextContent(),g=d.getTextGuideLine(),y=d.isGroup;if(y)for(var b=d.childrenRef(),x=0;x<b.length;x++)p=Math.max(s(b[x],f,h,p),p);else d.z=f,d.zlevel=h,p=Math.max(d.z2,p);if(v&&(v.z=f,v.zlevel=h,isFinite(p)&&(v.z2=p+2)),g){var F=d.textGuideLineConfig;g.z=f,g.zlevel=h,isFinite(p)&&(g.z2=p+(F&&F.showAbove?1:-1))}return p}function u(d,f){f.eachRendered(function(h){if(!_0(h)){var p=h.getTextContent(),v=h.getTextGuideLine();h.stateTransition&&(h.stateTransition=null),p&&p.stateTransition&&(p.stateTransition=null),v&&v.stateTransition&&(v.stateTransition=null),h.hasState()?(h.prevStates=h.currentStates,h.clearStates()):h.prevStates&&(h.prevStates=null)}})}function c(d,f){var h=d.getModel(\"stateAnimation\"),p=d.isAnimationEnabled(),v=h.get(\"duration\"),g=v>0?{duration:v,delay:h.get(\"delay\"),easing:h.get(\"easing\")}:null;f.eachRendered(function(y){if(y.states&&y.states.emphasis){if(_0(y))return;if(y instanceof Vr&&n1t(y),y.__dirty){var b=y.prevStates;b&&y.useStates(b)}if(p){y.stateTransition=g;var x=y.getTextContent(),F=y.getTextGuideLine();x&&(x.stateTransition=g),F&&(F.stateTransition=g)}y.__dirty&&a(y)}})}Oq=function(d){return new(function(f){Re(h,f);function h(){return f!==null&&f.apply(this,arguments)||this}return h.prototype.getCoordinateSystems=function(){return d._coordSysMgr.getCoordinateSystems()},h.prototype.getComponentByElement=function(p){for(;p;){var v=p.__ecComponentInfo;if(v!=null)return d._model.getComponent(v.mainType,v.index);p=p.parent}},h.prototype.enterEmphasis=function(p,v){fd(p,v),Xl(d)},h.prototype.leaveEmphasis=function(p,v){hd(p,v),Xl(d)},h.prototype.enterBlur=function(p){xpe(p),Xl(d)},h.prototype.leaveBlur=function(p){pN(p),Xl(d)},h.prototype.enterSelect=function(p){Cpe(p),Xl(d)},h.prototype.leaveSelect=function(p){Fpe(p),Xl(d)},h.prototype.getModel=function(){return d.getModel()},h.prototype.getViewOfComponentModel=function(p){return d.getViewOfComponentModel(p)},h.prototype.getViewOfSeriesModel=function(p){return d.getViewOfSeriesModel(p)},h}(dme))(d)},lve=function(d){function f(h,p){for(var v=0;v<h.length;v++){var g=h[v];g[tI]=p}}q(bb,function(h,p){d._messageCenter.on(p,function(v){if(J3[d.group]&&d[tI]!==kq){if(v&&v.escapeConnect)return;var g=d.makeActionFromEvent(v),y=[];q(Op,function(b){b!==d&&b.group===d.group&&y.push(b)}),f(y,kq),q(y,function(b){b[tI]!==A2t&&b.dispatchAction(g)}),f(y,_2t)}})})}}(),t}(Rs),GN=Y3.prototype;GN.on=rve(\"on\");GN.off=rve(\"off\");GN.one=function(e,t,r){var n=this;function a(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];t&&t.apply&&t.apply(this,i),n.off(e,a)}this.on.call(this,e,a,r)};var T2t=[\"click\",\"dblclick\",\"mouseover\",\"mouseout\",\"mousemove\",\"mousedown\",\"mouseup\",\"globalout\",\"contextmenu\"];var q3={},bb={},wP=[],EP=[],X3=[],sve={},DP={},Op={},J3={},I2t=+new Date-0,k2t=+new Date-0,UN=\"_echarts_instance_\";function R2t(e,t,r){var n=!(r&&r.ssr);if(n){var a=KN(e);if(a)return a}var i=new Y3(e,t,r);return i.id=\"ec_\"+I2t++,Op[i.id]=i,n&&rpe(e,UN,i.id),lve(i),Us.trigger(\"afterinit\",i),i}function M2t(e){if(nt(e)){var t=e;e=null,q(t,function(r){r.group!=null&&(e=r.group)}),e=e||\"g_\"+k2t++,q(t,function(r){r.group=e})}return J3[e]=!0,e}function uve(e){J3[e]=!1}var P2t=uve;function O2t(e){At(e)?e=Op[e]:e instanceof Y3||(e=KN(e)),e instanceof Y3&&!e.isDisposed()&&e.dispose()}function KN(e){return Op[G0t(e,UN)]}function B2t(e){return Op[e]}function YN(e,t){sve[e]=t}function qN(e){Mr(EP,e)<0&&EP.push(e)}function XN(e,t){JN(wP,e,t,x2t)}function cve(e){fA(\"afterinit\",e)}function dve(e){fA(\"afterupdate\",e)}function fA(e,t){Us.on(e,t)}function _u(e,t,r){er(t)&&(r=t,t=\"\");var n=ir(e)?e.type:[e,e={event:t}][0];e.event=(e.event||n).toLowerCase(),t=e.event,!bb[t]&&(Fo(Iq.test(n)&&Iq.test(t)),q3[n]||(q3[n]={action:r,actionInfo:e}),bb[t]=n)}function fve(e,t){t1.register(e,t)}function N2t(e){var t=t1.get(e);if(t)return t.getDimensionsInfo?t.getDimensionsInfo():t.dimensions.slice()}function hve(e,t){JN(X3,e,t,Zme,\"layout\")}function ch(e,t){JN(X3,e,t,Qme,\"visual\")}var Nq=[];function JN(e,t,r,n,a){if((er(t)||ir(t))&&(r=t,t=n),!(Mr(Nq,r)>=0)){Nq.push(r);var i=$me.wrapStageHandler(r,a);i.__prio=t,i.__raw=r,e.push(i)}}function ZN(e,t){DP[e]=t}function $2t(e){lhe({createCanvas:e})}function pve(e,t,r){var n=Jme(\"registerMap\");n&&n(e,t,r)}function L2t(e){var t=Jme(\"getMap\");return t&&t(e)}var mve=Xyt;ch(WN,Fbt);ch(dA,Sbt);ch(dA,wbt);ch(WN,Nbt);ch(dA,$bt);ch(eve,f2t);qN(hme);XN(y2t,Iyt);ZN(\"default\",Ebt);_u({type:Mp,event:Mp,update:Mp},ga);_u({type:Rw,event:Rw,update:Rw},ga);_u({type:pb,event:pb,update:pb},ga);_u({type:Mw,event:Mw,update:Mw},ga);_u({type:mb,event:mb,update:mb},ga);YN(\"light\",Obt);YN(\"dark\",Hme);var j2t={},$q=[],z2t={registerPreprocessor:qN,registerProcessor:XN,registerPostInit:cve,registerPostUpdate:dve,registerUpdateLifecycle:fA,registerAction:_u,registerCoordinateSystem:fve,registerLayout:hve,registerVisual:ch,registerTransform:mve,registerLoading:ZN,registerMap:pve,registerImpl:h2t,PRIORITY:tve,ComponentModel:jr,ComponentView:Wn,SeriesModel:_n,ChartView:Cn,registerComponentModel:function(e){jr.registerClass(e)},registerComponentView:function(e){Wn.registerClass(e)},registerSeriesModel:function(e){_n.registerClass(e)},registerChartView:function(e){Cn.registerClass(e)},registerSubTypeDefaulter:function(e,t){jr.registerSubTypeDefaulter(e,t)},registerPainter:function(e,t){Vhe(e,t)}};function Nr(e){if(nt(e)){q(e,function(t){Nr(t)});return}Mr($q,e)>=0||($q.push(e),er(e)&&(e={install:e}),e.install(z2t))}function H1(e){return e==null?0:e.length||1}function Lq(e){return e}var pd=function(){function e(t,r,n,a,i,o){this._old=t,this._new=r,this._oldKeyGetter=n||Lq,this._newKeyGetter=a||Lq,this.context=i,this._diffModeMultiple=o===\"multiple\"}return e.prototype.add=function(t){return this._add=t,this},e.prototype.update=function(t){return this._update=t,this},e.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},e.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},e.prototype.updateManyToMany=function(t){return this._updateManyToMany=t,this},e.prototype.remove=function(t){return this._remove=t,this},e.prototype.execute=function(){this[this._diffModeMultiple?\"_executeMultiple\":\"_executeOneToOne\"]()},e.prototype._executeOneToOne=function(){var t=this._old,r=this._new,n={},a=new Array(t.length),i=new Array(r.length);this._initIndexMap(t,null,a,\"_oldKeyGetter\"),this._initIndexMap(r,n,i,\"_newKeyGetter\");for(var o=0;o<t.length;o++){var l=a[o],s=n[l],u=H1(s);if(u>1){var c=s.shift();s.length===1&&(n[l]=s[0]),this._update&&this._update(c,o)}else u===1?(n[l]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(i,n)},e.prototype._executeMultiple=function(){var t=this._old,r=this._new,n={},a={},i=[],o=[];this._initIndexMap(t,n,i,\"_oldKeyGetter\"),this._initIndexMap(r,a,o,\"_newKeyGetter\");for(var l=0;l<i.length;l++){var s=i[l],u=n[s],c=a[s],d=H1(u),f=H1(c);if(d>1&&f===1)this._updateManyToOne&&this._updateManyToOne(c,u),a[s]=null;else if(d===1&&f>1)this._updateOneToMany&&this._updateOneToMany(c,u),a[s]=null;else if(d===1&&f===1)this._update&&this._update(c,u),a[s]=null;else if(d>1&&f>1)this._updateManyToMany&&this._updateManyToMany(c,u),a[s]=null;else if(d>1)for(var h=0;h<d;h++)this._remove&&this._remove(u[h]);else this._remove&&this._remove(u)}this._performRestAdd(o,a)},e.prototype._performRestAdd=function(t,r){for(var n=0;n<t.length;n++){var a=t[n],i=r[a],o=H1(i);if(o>1)for(var l=0;l<o;l++)this._add&&this._add(i[l]);else o===1&&this._add&&this._add(i);r[a]=null}},e.prototype._initIndexMap=function(t,r,n,a){for(var i=this._diffModeMultiple,o=0;o<t.length;o++){var l=\"_ec_\"+this[a](t[o],o);if(i||(n[o]=l),!!r){var s=r[l],u=H1(s);u===0?(r[l]=o,i&&n.push(l)):u===1?r[l]=[s,o]:s.push(o)}}},e}(),H2t=function(){function e(t,r){this._encode=t,this._schema=r}return e.prototype.get=function(){return{fullDimensions:this._getFullDimensionNames(),encode:this._encode}},e.prototype._getFullDimensionNames=function(){return this._cachedDimNames||(this._cachedDimNames=this._schema?this._schema.makeOutputDimensionNames():[]),this._cachedDimNames},e}();function V2t(e,t){var r={},n=r.encode={},a=Gt(),i=[],o=[],l={};q(e.dimensions,function(f){var h=e.getDimensionInfo(f),p=h.coordDim;if(p){var v=h.coordDimIndex;lI(n,p)[v]=f,h.isExtraCoord||(a.set(p,1),W2t(h.type)&&(i[0]=f),lI(l,p)[v]=e.getDimensionIndex(h.name)),h.defaultTooltip&&o.push(f)}ame.each(function(g,y){var b=lI(n,y),x=h.otherDims[y];x!=null&&x!==!1&&(b[x]=h.name)})});var s=[],u={};a.each(function(f,h){var p=n[h];u[h]=p[0],s=s.concat(p)}),r.dataDimsOnCoord=s,r.dataDimIndicesOnCoord=ot(s,function(f){return e.getDimensionInfo(f).storeDimIndex}),r.encodeFirstDimNotExtra=u;var c=n.label;c&&c.length&&(i=c.slice());var d=n.tooltip;return d&&d.length?o=d.slice():o.length||(o=i.slice()),n.defaultedLabel=i,n.defaultedTooltip=o,r.userOutput=new H2t(l,t),r}function lI(e,t){return e.hasOwnProperty(t)||(e[t]=[]),e[t]}function Z3(e){return e===\"category\"?\"ordinal\":e===\"time\"?\"time\":\"float\"}function W2t(e){return!(e===\"ordinal\"||e===\"time\")}var $w=function(){function e(t){this.otherDims={},t!=null&&Xe(this,t)}return e}(),G2t=rn(),U2t={float:\"f\",int:\"i\",ordinal:\"o\",number:\"n\",time:\"t\"},vve=function(){function e(t){this.dimensions=t.dimensions,this._dimOmitted=t.dimensionOmitted,this.source=t.source,this._fullDimCount=t.fullDimensionCount,this._updateDimOmitted(t.dimensionOmitted)}return e.prototype.isDimensionOmitted=function(){return this._dimOmitted},e.prototype._updateDimOmitted=function(t){this._dimOmitted=t,t&&(this._dimNameMap||(this._dimNameMap=bve(this.source)))},e.prototype.getSourceDimensionIndex=function(t){return Fr(this._dimNameMap.get(t),-1)},e.prototype.getSourceDimension=function(t){var r=this.source.dimensionsDefine;if(r)return r[t]},e.prototype.makeStoreSchema=function(){for(var t=this._fullDimCount,r=mme(this.source),n=!xve(t),a=\"\",i=[],o=0,l=0;o<t;o++){var s=void 0,u=void 0,c=void 0,d=this.dimensions[l];if(d&&d.storeDimIndex===o)s=r?d.name:null,u=d.type,c=d.ordinalMeta,l++;else{var f=this.getSourceDimension(o);f&&(s=r?f.name:null,u=f.type)}i.push({property:s,type:u,ordinalMeta:c}),r&&s!=null&&(!d||!d.isCalculationCoord)&&(a+=n?s.replace(/\\`/g,\"`1\").replace(/\\$/g,\"`2\"):s),a+=\"$\",a+=U2t[u]||\"f\",c&&(a+=c.uid),a+=\"$\"}var h=this.source,p=[h.seriesLayoutBy,h.startIndex,a].join(\"$$\");return{dimensions:i,hash:p}},e.prototype.makeOutputDimensionNames=function(){for(var t=[],r=0,n=0;r<this._fullDimCount;r++){var a=void 0,i=this.dimensions[n];if(i&&i.storeDimIndex===r)i.isCalculationCoord||(a=i.name),n++;else{var o=this.getSourceDimension(r);o&&(a=o.name)}t.push(a)}return t},e.prototype.appendCalculationDimension=function(t){this.dimensions.push(t),t.isCalculationCoord=!0,this._fullDimCount++,this._updateDimOmitted(!0)},e}();function gve(e){return e instanceof vve}function yve(e){for(var t=Gt(),r=0;r<(e||[]).length;r++){var n=e[r],a=ir(n)?n.name:n;a!=null&&t.get(a)==null&&t.set(a,r)}return t}function bve(e){var t=G2t(e);return t.dimNameMap||(t.dimNameMap=yve(e.dimensionsDefine))}function xve(e){return e>30}var V1=ir,Nd=ot,K2t=typeof Int32Array>\"u\"?Array:Int32Array,Y2t=\"e\\0\\0\",jq=-1,q2t=[\"hasItemOption\",\"_nameList\",\"_idList\",\"_invertedIndicesMap\",\"_dimSummary\",\"userOutput\",\"_rawData\",\"_dimValueGetter\",\"_nameDimIdx\",\"_idDimIdx\",\"_nameRepeatCount\"],X2t=[\"_approximateExtent\"],zq,cS,W1,G1,sI,U1,uI,xo=function(){function e(t,r){this.type=\"list\",this._dimOmitted=!1,this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!1,this.TRANSFERABLE_METHODS=[\"cloneShallow\",\"downSample\",\"minmaxDownSample\",\"lttbDownSample\",\"map\"],this.CHANGABLE_METHODS=[\"filterSelf\",\"selectRange\"],this.DOWNSAMPLE_METHODS=[\"downSample\",\"minmaxDownSample\",\"lttbDownSample\"];var n,a=!1;gve(t)?(n=t.dimensions,this._dimOmitted=t.isDimensionOmitted(),this._schema=t):(a=!0,n=t),n=n||[\"x\",\"y\"];for(var i={},o=[],l={},s=!1,u={},c=0;c<n.length;c++){var d=n[c],f=At(d)?new $w({name:d}):d instanceof $w?d:new $w(d),h=f.name;f.type=f.type||\"float\",f.coordDim||(f.coordDim=h,f.coordDimIndex=0);var p=f.otherDims=f.otherDims||{};o.push(h),i[h]=f,u[h]!=null&&(s=!0),f.createInvertedIndices&&(l[h]=[]),p.itemName===0&&(this._nameDimIdx=c),p.itemId===0&&(this._idDimIdx=c),a&&(f.storeDimIndex=c)}if(this.dimensions=o,this._dimInfos=i,this._initGetDimensionInfo(s),this.hostModel=r,this._invertedIndicesMap=l,this._dimOmitted){var v=this._dimIdxToName=Gt();q(o,function(g){v.set(i[g].storeDimIndex,g)})}}return e.prototype.getDimension=function(t){var r=this._recognizeDimIndex(t);if(r==null)return t;if(r=t,!this._dimOmitted)return this.dimensions[r];var n=this._dimIdxToName.get(r);if(n!=null)return n;var a=this._schema.getSourceDimension(r);if(a)return a.name},e.prototype.getDimensionIndex=function(t){var r=this._recognizeDimIndex(t);if(r!=null)return r;if(t==null)return-1;var n=this._getDimInfo(t);return n?n.storeDimIndex:this._dimOmitted?this._schema.getSourceDimensionIndex(t):-1},e.prototype._recognizeDimIndex=function(t){if(nn(t)||t!=null&&!isNaN(t)&&!this._getDimInfo(t)&&(!this._dimOmitted||this._schema.getSourceDimensionIndex(t)<0))return+t},e.prototype._getStoreDimIndex=function(t){var r=this.getDimensionIndex(t);return r},e.prototype.getDimensionInfo=function(t){return this._getDimInfo(this.getDimension(t))},e.prototype._initGetDimensionInfo=function(t){var r=this._dimInfos;this._getDimInfo=t?function(n){return r.hasOwnProperty(n)?r[n]:void 0}:function(n){return r[n]}},e.prototype.getDimensionsOnCoord=function(){return this._dimSummary.dataDimsOnCoord.slice()},e.prototype.mapDimension=function(t,r){var n=this._dimSummary;if(r==null)return n.encodeFirstDimNotExtra[t];var a=n.encode[t];return a?a[r]:null},e.prototype.mapDimensionsAll=function(t){var r=this._dimSummary,n=r.encode[t];return(n||[]).slice()},e.prototype.getStore=function(){return this._store},e.prototype.initData=function(t,r,n){var a=this,i;if(t instanceof gP&&(i=t),!i){var o=this.dimensions,l=NN(t)||Yi(t)?new vme(t,o.length):t;i=new gP;var s=Nd(o,function(u){return{type:a._dimInfos[u].type,property:u}});i.initData(l,s,n)}this._store=i,this._nameList=(r||[]).slice(),this._idList=[],this._nameRepeatCount={},this._doInit(0,i.count()),this._dimSummary=V2t(this,this._schema),this.userOutput=this._dimSummary.userOutput},e.prototype.appendData=function(t){var r=this._store.appendData(t);this._doInit(r[0],r[1])},e.prototype.appendValues=function(t,r){var n=this._store.appendValues(t,r&&r.length),a=n.start,i=n.end,o=this._shouldMakeIdFromName();if(this._updateOrdinalMeta(),r)for(var l=a;l<i;l++){var s=l-a;this._nameList[l]=r[s],o&&uI(this,l)}},e.prototype._updateOrdinalMeta=function(){for(var t=this._store,r=this.dimensions,n=0;n<r.length;n++){var a=this._dimInfos[r[n]];a.ordinalMeta&&t.collectOrdinalMeta(a.storeDimIndex,a.ordinalMeta)}},e.prototype._shouldMakeIdFromName=function(){var t=this._store.getProvider();return this._idDimIdx==null&&t.getSource().sourceFormat!==Rf&&!t.fillStorage},e.prototype._doInit=function(t,r){if(!(t>=r)){var n=this._store,a=n.getProvider();this._updateOrdinalMeta();var i=this._nameList,o=this._idList,l=a.getSource().sourceFormat,s=l===Ps;if(s&&!a.pure)for(var u=[],c=t;c<r;c++){var d=a.getItem(c,u);if(!this.hasItemOption&&R0t(d)&&(this.hasItemOption=!0),d){var f=d.name;i[c]==null&&f!=null&&(i[c]=qa(f,null));var h=d.id;o[c]==null&&h!=null&&(o[c]=qa(h,null))}}if(this._shouldMakeIdFromName())for(var c=t;c<r;c++)uI(this,c);zq(this)}},e.prototype.getApproximateExtent=function(t){return this._approximateExtent[t]||this._store.getDataExtent(this._getStoreDimIndex(t))},e.prototype.setApproximateExtent=function(t,r){r=this.getDimension(r),this._approximateExtent[r]=t.slice()},e.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},e.prototype.setCalculationInfo=function(t,r){V1(t)?Xe(this._calculationInfo,t):this._calculationInfo[t]=r},e.prototype.getName=function(t){var r=this.getRawIndex(t),n=this._nameList[r];return n==null&&this._nameDimIdx!=null&&(n=W1(this,this._nameDimIdx,r)),n==null&&(n=\"\"),n},e.prototype._getCategory=function(t,r){var n=this._store.get(t,r),a=this._store.getOrdinalMeta(t);return a?a.categories[n]:n},e.prototype.getId=function(t){return cS(this,this.getRawIndex(t))},e.prototype.count=function(){return this._store.count()},e.prototype.get=function(t,r){var n=this._store,a=this._dimInfos[t];if(a)return n.get(a.storeDimIndex,r)},e.prototype.getByRawIndex=function(t,r){var n=this._store,a=this._dimInfos[t];if(a)return n.getByRawIndex(a.storeDimIndex,r)},e.prototype.getIndices=function(){return this._store.getIndices()},e.prototype.getDataExtent=function(t){return this._store.getDataExtent(this._getStoreDimIndex(t))},e.prototype.getSum=function(t){return this._store.getSum(this._getStoreDimIndex(t))},e.prototype.getMedian=function(t){return this._store.getMedian(this._getStoreDimIndex(t))},e.prototype.getValues=function(t,r){var n=this,a=this._store;return nt(t)?a.getValues(Nd(t,function(i){return n._getStoreDimIndex(i)}),r):a.getValues(t)},e.prototype.hasValue=function(t){for(var r=this._dimSummary.dataDimIndicesOnCoord,n=0,a=r.length;n<a;n++)if(isNaN(this._store.get(r[n],t)))return!1;return!0},e.prototype.indexOfName=function(t){for(var r=0,n=this._store.count();r<n;r++)if(this.getName(r)===t)return r;return-1},e.prototype.getRawIndex=function(t){return this._store.getRawIndex(t)},e.prototype.indexOfRawIndex=function(t){return this._store.indexOfRawIndex(t)},e.prototype.rawIndexOf=function(t,r){var n=t&&this._invertedIndicesMap[t],a=n&&n[r];return a==null||isNaN(a)?jq:a},e.prototype.indicesOfNearest=function(t,r,n){return this._store.indicesOfNearest(this._getStoreDimIndex(t),r,n)},e.prototype.each=function(t,r,n){er(t)&&(n=r,r=t,t=[]);var a=n||this,i=Nd(G1(t),this._getStoreDimIndex,this);this._store.each(i,a?Pt(r,a):r)},e.prototype.filterSelf=function(t,r,n){er(t)&&(n=r,r=t,t=[]);var a=n||this,i=Nd(G1(t),this._getStoreDimIndex,this);return this._store=this._store.filter(i,a?Pt(r,a):r),this},e.prototype.selectRange=function(t){var r=this,n={},a=Ur(t);return q(a,function(i){var o=r._getStoreDimIndex(i);n[o]=t[i]}),this._store=this._store.selectRange(n),this},e.prototype.mapArray=function(t,r,n){er(t)&&(n=r,r=t,t=[]),n=n||this;var a=[];return this.each(t,function(){a.push(r&&r.apply(this,arguments))},n),a},e.prototype.map=function(t,r,n,a){var i=n||a||this,o=Nd(G1(t),this._getStoreDimIndex,this),l=U1(this);return l._store=this._store.map(o,i?Pt(r,i):r),l},e.prototype.modify=function(t,r,n,a){var i=n||a||this,o=Nd(G1(t),this._getStoreDimIndex,this);this._store.modify(o,i?Pt(r,i):r)},e.prototype.downSample=function(t,r,n,a){var i=U1(this);return i._store=this._store.downSample(this._getStoreDimIndex(t),r,n,a),i},e.prototype.minmaxDownSample=function(t,r){var n=U1(this);return n._store=this._store.minmaxDownSample(this._getStoreDimIndex(t),r),n},e.prototype.lttbDownSample=function(t,r){var n=U1(this);return n._store=this._store.lttbDownSample(this._getStoreDimIndex(t),r),n},e.prototype.getRawDataItem=function(t){return this._store.getRawDataItem(t)},e.prototype.getItemModel=function(t){var r=this.hostModel,n=this.getRawDataItem(t);return new pn(n,r,r&&r.ecModel)},e.prototype.diff=function(t){var r=this;return new pd(t?t.getStore().getIndices():[],this.getStore().getIndices(),function(n){return cS(t,n)},function(n){return cS(r,n)})},e.prototype.getVisual=function(t){var r=this._visual;return r&&r[t]},e.prototype.setVisual=function(t,r){this._visual=this._visual||{},V1(t)?Xe(this._visual,t):this._visual[t]=r},e.prototype.getItemVisual=function(t,r){var n=this._itemVisuals[t],a=n&&n[r];return a??this.getVisual(r)},e.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},e.prototype.ensureUniqueItemVisual=function(t,r){var n=this._itemVisuals,a=n[t];a||(a=n[t]={});var i=a[r];return i==null&&(i=this.getVisual(r),nt(i)?i=i.slice():V1(i)&&(i=Xe({},i)),a[r]=i),i},e.prototype.setItemVisual=function(t,r,n){var a=this._itemVisuals[t]||{};this._itemVisuals[t]=a,V1(r)?Xe(a,r):a[r]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(t,r){V1(t)?Xe(this._layout,t):this._layout[t]=r},e.prototype.getLayout=function(t){return this._layout[t]},e.prototype.getItemLayout=function(t){return this._itemLayouts[t]},e.prototype.setItemLayout=function(t,r,n){this._itemLayouts[t]=n?Xe(this._itemLayouts[t]||{},r):r},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(t,r){var n=this.hostModel&&this.hostModel.seriesIndex;aP(n,this.dataType,t,r),this._graphicEls[t]=r},e.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},e.prototype.eachItemGraphicEl=function(t,r){q(this._graphicEls,function(n,a){n&&t&&t.call(r,n,a)})},e.prototype.cloneShallow=function(t){return t||(t=new e(this._schema?this._schema:Nd(this.dimensions,this._getDimInfo,this),this.hostModel)),sI(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(t,r){var n=this[t];er(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var a=n.apply(this,arguments);return r.apply(this,[a].concat($D(arguments)))})},e.internalField=function(){zq=function(t){var r=t._invertedIndicesMap;q(r,function(n,a){var i=t._dimInfos[a],o=i.ordinalMeta,l=t._store;if(o){n=r[a]=new K2t(o.categories.length);for(var s=0;s<n.length;s++)n[s]=jq;for(var s=0;s<l.count();s++)n[l.get(i.storeDimIndex,s)]=s}})},W1=function(t,r,n){return qa(t._getCategory(r,n),null)},cS=function(t,r){var n=t._idList[r];return n==null&&t._idDimIdx!=null&&(n=W1(t,t._idDimIdx,r)),n==null&&(n=Y2t+r),n},G1=function(t){return nt(t)||(t=t!=null?[t]:[]),t},U1=function(t){var r=new e(t._schema?t._schema:Nd(t.dimensions,t._getDimInfo,t),t.hostModel);return sI(r,t),r},sI=function(t,r){q(q2t.concat(r.__wrappedMethods||[]),function(n){r.hasOwnProperty(n)&&(t[n]=r[n])}),t.__wrappedMethods=r.__wrappedMethods,q(X2t,function(n){t[n]=lr(r[n])}),t._calculationInfo=Xe({},r._calculationInfo)},uI=function(t,r){var n=t._nameList,a=t._idList,i=t._nameDimIdx,o=t._idDimIdx,l=n[r],s=a[r];if(l==null&&i!=null&&(n[r]=l=W1(t,i,r)),s==null&&o!=null&&(a[r]=s=W1(t,o,r)),s==null&&l!=null){var u=t._nameRepeatCount,c=u[l]=(u[l]||0)+1;s=l,c>1&&(s+=\"__ec__\"+c),a[r]=s}}}(),e}();function J2t(e,t){return i1(e,t).dimensions}function i1(e,t){NN(e)||(e=$N(e)),t=t||{};var r=t.coordDimensions||[],n=t.dimensionsDefine||e.dimensionsDefine||[],a=Gt(),i=[],o=Q2t(e,r,n,t.dimensionsCount),l=t.canOmitUnusedDimensions&&xve(o),s=n===e.dimensionsDefine,u=s?bve(e):yve(n),c=t.encodeDefine;!c&&t.encodeDefaulter&&(c=t.encodeDefaulter(e,o));for(var d=Gt(c),f=new wme(o),h=0;h<f.length;h++)f[h]=-1;function p(A){var _=f[A];if(_<0){var I=n[A],M=ir(I)?I:{name:I},T=new $w,k=M.name;k!=null&&u.get(k)!=null&&(T.name=T.displayName=k),M.type!=null&&(T.type=M.type),M.displayName!=null&&(T.displayName=M.displayName);var R=i.length;return f[A]=R,T.storeDimIndex=A,i.push(T),T}return i[_]}if(!l)for(var h=0;h<o;h++)p(h);d.each(function(A,_){var I=An(A).slice();if(I.length===1&&!At(I[0])&&I[0]<0){d.set(_,!1);return}var M=d.set(_,[]);q(I,function(T,k){var R=At(T)?u.get(T):T;R!=null&&R<o&&(M[k]=R,g(p(R),_,k))})});var v=0;q(r,function(A){var _,I,M,T;if(At(A))_=A,T={};else{T=A,_=T.name;var k=T.ordinalMeta;T.ordinalMeta=null,T=Xe({},T),T.ordinalMeta=k,I=T.dimsDef,M=T.otherDims,T.name=T.coordDim=T.coordDimIndex=T.dimsDef=T.otherDims=null}var R=d.get(_);if(R!==!1){if(R=An(R),!R.length)for(var P=0;P<(I&&I.length||1);P++){for(;v<o&&p(v).coordDim!=null;)v++;v<o&&R.push(v++)}q(R,function(B,N){var O=p(B);if(s&&T.type!=null&&(O.type=T.type),g(rr(O,T),_,N),O.name==null&&I){var z=I[N];!ir(z)&&(z={name:z}),O.name=O.displayName=z.name,O.defaultTooltip=z.defaultTooltip}M&&rr(O.otherDims,M)})}});function g(A,_,I){ame.get(_)!=null?A.otherDims[_]=I:(A.coordDim=_,A.coordDimIndex=I,a.set(_,!0))}var y=t.generateCoord,b=t.generateCoordCount,x=b!=null;b=y?b||1:0;var F=y||\"value\";function S(A){A.name==null&&(A.name=A.coordDim)}if(l)q(i,function(A){S(A)}),i.sort(function(A,_){return A.storeDimIndex-_.storeDimIndex});else for(var E=0;E<o;E++){var w=p(E),D=w.coordDim;D==null&&(w.coordDim=ext(F,a,x),w.coordDimIndex=0,(!y||b<=0)&&(w.isExtraCoord=!0),b--),S(w),w.type==null&&(sme(e,E)===$i.Must||w.isExtraCoord&&(w.otherDims.itemName!=null||w.otherDims.seriesName!=null))&&(w.type=\"ordinal\")}return Z2t(i),new vve({source:e,dimensions:i,fullDimensionCount:o,dimensionOmitted:l})}function Z2t(e){for(var t=Gt(),r=0;r<e.length;r++){var n=e[r],a=n.name,i=t.get(a)||0;i>0&&(n.name=a+(i-1)),i++,t.set(a,i)}}function Q2t(e,t,r,n){var a=Math.max(e.dimensionsDetectedCount||1,t.length,r.length,n||0);return q(t,function(i){var o;ir(i)&&(o=i.dimsDef)&&(a=Math.max(a,o.length))}),a}function ext(e,t,r){if(r||t.hasKey(e)){for(var n=0;t.hasKey(e+n);)n++;e+=n}return t.set(e,!0),e}var txt=function(){function e(t){this.coordSysDims=[],this.axisMap=Gt(),this.categoryAxisMap=Gt(),this.coordSysName=t}return e}();function rxt(e){var t=e.get(\"coordinateSystem\"),r=new txt(t),n=nxt[t];if(n)return n(e,r,r.axisMap,r.categoryAxisMap),r}var nxt={cartesian2d:function(e,t,r,n){var a=e.getReferringComponents(\"xAxis\",Oa).models[0],i=e.getReferringComponents(\"yAxis\",Oa).models[0];t.coordSysDims=[\"x\",\"y\"],r.set(\"x\",a),r.set(\"y\",i),Cv(a)&&(n.set(\"x\",a),t.firstCategoryDimIndex=0),Cv(i)&&(n.set(\"y\",i),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},singleAxis:function(e,t,r,n){var a=e.getReferringComponents(\"singleAxis\",Oa).models[0];t.coordSysDims=[\"single\"],r.set(\"single\",a),Cv(a)&&(n.set(\"single\",a),t.firstCategoryDimIndex=0)},polar:function(e,t,r,n){var a=e.getReferringComponents(\"polar\",Oa).models[0],i=a.findAxisModel(\"radiusAxis\"),o=a.findAxisModel(\"angleAxis\");t.coordSysDims=[\"radius\",\"angle\"],r.set(\"radius\",i),r.set(\"angle\",o),Cv(i)&&(n.set(\"radius\",i),t.firstCategoryDimIndex=0),Cv(o)&&(n.set(\"angle\",o),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=1))},geo:function(e,t,r,n){t.coordSysDims=[\"lng\",\"lat\"]},parallel:function(e,t,r,n){var a=e.ecModel,i=a.getComponent(\"parallel\",e.get(\"parallelIndex\")),o=t.coordSysDims=i.dimensions.slice();q(i.parallelAxisIndex,function(l,s){var u=a.getComponent(\"parallelAxis\",l),c=o[s];r.set(c,u),Cv(u)&&(n.set(c,u),t.firstCategoryDimIndex==null&&(t.firstCategoryDimIndex=s))})}};function Cv(e){return e.get(\"type\")===\"category\"}function Cve(e,t,r){r=r||{};var n=r.byIndex,a=r.stackedCoordDimension,i,o,l;axt(t)?i=t:(o=t.schema,i=o.dimensions,l=t.store);var s=!!(e&&e.get(\"stack\")),u,c,d,f;if(q(i,function(b,x){At(b)&&(i[x]=b={name:b}),s&&!b.isExtraCoord&&(!n&&!u&&b.ordinalMeta&&(u=b),!c&&b.type!==\"ordinal\"&&b.type!==\"time\"&&(!a||a===b.coordDim)&&(c=b))}),c&&!n&&!u&&(n=!0),c){d=\"__\\0ecstackresult_\"+e.id,f=\"__\\0ecstackedover_\"+e.id,u&&(u.createInvertedIndices=!0);var h=c.coordDim,p=c.type,v=0;q(i,function(b){b.coordDim===h&&v++});var g={name:d,coordDim:h,coordDimIndex:v,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length},y={name:f,coordDim:f,coordDimIndex:v+1,type:p,isExtraCoord:!0,isCalculationCoord:!0,storeDimIndex:i.length+1};o?(l&&(g.storeDimIndex=l.ensureCalculationDimension(f,p),y.storeDimIndex=l.ensureCalculationDimension(d,p)),o.appendCalculationDimension(g),o.appendCalculationDimension(y)):(i.push(g),i.push(y))}return{stackedDimension:c&&c.name,stackedByDimension:u&&u.name,isStackedByIndex:n,stackedOverDimension:f,stackResultDimension:d}}function axt(e){return!gve(e.schema)}function md(e,t){return!!t&&t===e.getCalculationInfo(\"stackedDimension\")}function QN(e,t){return md(e,t)?e.getCalculationInfo(\"stackResultDimension\"):t}function ixt(e,t){var r=e.get(\"coordinateSystem\"),n=t1.get(r),a;return t&&t.coordSysDims&&(a=ot(t.coordSysDims,function(i){var o={name:i},l=t.axisMap.get(i);if(l){var s=l.get(\"type\");o.type=Z3(s)}return o})),a||(a=n&&(n.getDimensionsInfo?n.getDimensionsInfo():n.dimensions.slice())||[\"x\",\"y\"]),a}function oxt(e,t,r){var n,a;return r&&q(e,function(i,o){var l=i.coordDim,s=r.categoryAxisMap.get(l);s&&(n==null&&(n=o),i.ordinalMeta=s.getOrdinalMeta(),t&&(i.createInvertedIndices=!0)),i.otherDims.itemName!=null&&(a=!0)}),!a&&n!=null&&(e[n].otherDims.itemName=0),n}function wc(e,t,r){r=r||{};var n=t.getSourceManager(),a,i=!1;e?(i=!0,a=$N(e)):(a=n.getSource(),i=a.sourceFormat===Ps);var o=rxt(t),l=ixt(t,o),s=r.useEncodeDefaulter,u=er(s)?s:s?wr(lme,l,t):null,c={coordDimensions:l,generateCoord:r.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:u,canOmitUnusedDimensions:!i},d=i1(a,c),f=oxt(d.dimensions,r.createInvertedIndices,o),h=i?null:n.getSharedDataStore(d),p=Cve(t,{schema:d,store:h}),v=new xo(d,t);v.setCalculationInfo(p);var g=f!=null&&lxt(a)?function(y,b,x,F){return F===f?x:this.defaultDimValueGetter(y,b,x,F)}:null;return v.hasItemOption=!1,v.initData(i?a:h,null,g),v}function lxt(e){if(e.sourceFormat===Ps){var t=sxt(e.data||[]);return!nt(Wg(t))}}function sxt(e){for(var t=0;t<e.length&&e[t]==null;)t++;return e[t]}var Ec=function(){function e(t){this._setting=t||{},this._extent=[1/0,-1/0]}return e.prototype.getSetting=function(t){return this._setting[t]},e.prototype.unionExtent=function(t){var r=this._extent;t[0]<r[0]&&(r[0]=t[0]),t[1]>r[1]&&(r[1]=t[1])},e.prototype.unionExtentFromData=function(t,r){this.unionExtent(t.getApproximateExtent(r))},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.setExtent=function(t,r){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(r)||(n[1]=r)},e.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},e.prototype.isBlank=function(){return this._isBlank},e.prototype.setBlank=function(t){this._isBlank=t},e}();UD(Ec);var uxt=0,AP=function(){function e(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this.uid=++uxt}return e.createByAxisModel=function(t){var r=t.option,n=r.data,a=n&&ot(n,cxt);return new e({categories:a,needCollect:!a,deduplication:r.dedplication!==!1})},e.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},e.prototype.parseAndCollect=function(t){var r,n=this._needCollect;if(!At(t)&&!n)return t;if(n&&!this._deduplication)return r=this.categories.length,this.categories[r]=t,r;var a=this._getOrCreateMap();return r=a.get(t),r==null&&(n?(r=this.categories.length,this.categories[r]=t,a.set(t,r)):r=NaN),r},e.prototype._getOrCreateMap=function(){return this._map||(this._map=Gt(this.categories))},e}();function cxt(e){return ir(e)&&e.value!=null?e.value:e+\"\"}function _P(e){return e.type===\"interval\"||e.type===\"log\"}function dxt(e,t,r,n){var a={},i=e[1]-e[0],o=a.interval=aN(i/t,!0);r!=null&&o<r&&(o=a.interval=r),n!=null&&o>n&&(o=a.interval=n);var l=a.intervalPrecision=Fve(o),s=a.niceTickExtent=[fa(Math.ceil(e[0]/o)*o,l),fa(Math.floor(e[1]/o)*o,l)];return fxt(s,e),a}function cI(e){var t=Math.pow(10,GD(e)),r=e/t;return r?r===2?r=3:r===3?r=5:r*=2:r=1,fa(r*t)}function Fve(e){return tu(e)+2}function Hq(e,t,r){e[t]=Math.max(Math.min(e[t],r[1]),r[0])}function fxt(e,t){!isFinite(e[0])&&(e[0]=t[0]),!isFinite(e[1])&&(e[1]=t[1]),Hq(e,0,t),Hq(e,1,t),e[0]>e[1]&&(e[0]=e[1])}function hA(e,t){return e>=t[0]&&e<=t[1]}function pA(e,t){return t[1]===t[0]?.5:(e-t[0])/(t[1]-t[0])}function mA(e,t){return e*(t[1]-t[0])+t[0]}var vA=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;n.type=\"ordinal\";var a=n.getSetting(\"ordinalMeta\");return a||(a=new AP({})),nt(a)&&(a=new AP({categories:ot(a,function(i){return ir(i)?i.value:i})})),n._ordinalMeta=a,n._extent=n.getSetting(\"extent\")||[0,a.categories.length-1],n}return t.prototype.parse=function(r){return r==null?NaN:At(r)?this._ordinalMeta.getOrdinal(r):Math.round(r)},t.prototype.contain=function(r){return r=this.parse(r),hA(r,this._extent)&&this._ordinalMeta.categories[r]!=null},t.prototype.normalize=function(r){return r=this._getTickNumber(this.parse(r)),pA(r,this._extent)},t.prototype.scale=function(r){return r=Math.round(mA(r,this._extent)),this.getRawOrdinalNumber(r)},t.prototype.getTicks=function(){for(var r=[],n=this._extent,a=n[0];a<=n[1];)r.push({value:a}),a++;return r},t.prototype.getMinorTicks=function(r){},t.prototype.setSortInfo=function(r){if(r==null){this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null;return}for(var n=r.ordinalNumbers,a=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],o=0,l=this._ordinalMeta.categories.length,s=Math.min(l,n.length);o<s;++o){var u=n[o];a[o]=u,i[u]=o}for(var c=0;o<l;++o){for(;i[c]!=null;)c++;a.push(c),i[c]=o}},t.prototype._getTickNumber=function(r){var n=this._ticksByOrdinalNumber;return n&&r>=0&&r<n.length?n[r]:r},t.prototype.getRawOrdinalNumber=function(r){var n=this._ordinalNumbersByTick;return n&&r>=0&&r<n.length?n[r]:r},t.prototype.getLabel=function(r){if(!this.isBlank()){var n=this.getRawOrdinalNumber(r.value),a=this._ordinalMeta.categories[n];return a==null?\"\":a+\"\"}},t.prototype.count=function(){return this._extent[1]-this._extent[0]+1},t.prototype.unionExtentFromData=function(r,n){this.unionExtent(r.getApproximateExtent(n))},t.prototype.isInExtentRange=function(r){return r=this._getTickNumber(r),this._extent[0]<=r&&this._extent[1]>=r},t.prototype.getOrdinalMeta=function(){return this._ordinalMeta},t.prototype.calcNiceTicks=function(){},t.prototype.calcNiceExtent=function(){},t.type=\"ordinal\",t}(Ec);Ec.registerClass(vA);var Nh=fa,vd=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"interval\",r._interval=0,r._intervalPrecision=2,r}return t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return hA(r,this._extent)},t.prototype.normalize=function(r){return pA(r,this._extent)},t.prototype.scale=function(r){return mA(r,this._extent)},t.prototype.setExtent=function(r,n){var a=this._extent;isNaN(r)||(a[0]=parseFloat(r)),isNaN(n)||(a[1]=parseFloat(n))},t.prototype.unionExtent=function(r){var n=this._extent;r[0]<n[0]&&(n[0]=r[0]),r[1]>n[1]&&(n[1]=r[1]),this.setExtent(n[0],n[1])},t.prototype.getInterval=function(){return this._interval},t.prototype.setInterval=function(r){this._interval=r,this._niceExtent=this._extent.slice(),this._intervalPrecision=Fve(r)},t.prototype.getTicks=function(r){var n=this._interval,a=this._extent,i=this._niceExtent,o=this._intervalPrecision,l=[];if(!n)return l;var s=1e4;a[0]<i[0]&&(r?l.push({value:Nh(i[0]-n,o)}):l.push({value:a[0]}));for(var u=i[0];u<=i[1]&&(l.push({value:u}),u=Nh(u+n,o),u!==l[l.length-1].value);)if(l.length>s)return[];var c=l.length?l[l.length-1].value:i[1];return a[1]>c&&(r?l.push({value:Nh(c+n,o)}):l.push({value:a[1]})),l},t.prototype.getMinorTicks=function(r){for(var n=this.getTicks(!0),a=[],i=this.getExtent(),o=1;o<n.length;o++){for(var l=n[o],s=n[o-1],u=0,c=[],d=l.value-s.value,f=d/r;u<r-1;){var h=Nh(s.value+(u+1)*f);h>i[0]&&h<i[1]&&c.push(h),u++}a.push(c)}return a},t.prototype.getLabel=function(r,n){if(r==null)return\"\";var a=n&&n.precision;a==null?a=tu(r.value)||0:a===\"auto\"&&(a=this._intervalPrecision);var i=Nh(r.value,a,!0);return TN(i)},t.prototype.calcNiceTicks=function(r,n,a){r=r||5;var i=this._extent,o=i[1]-i[0];if(isFinite(o)){o<0&&(o=-o,i.reverse());var l=dxt(i,r,n,a);this._intervalPrecision=l.intervalPrecision,this._interval=l.interval,this._niceExtent=l.niceTickExtent}},t.prototype.calcNiceExtent=function(r){var n=this._extent;if(n[0]===n[1])if(n[0]!==0){var a=Math.abs(n[0]);r.fixMax||(n[1]+=a/2),n[0]-=a/2}else n[1]=1;var i=n[1]-n[0];isFinite(i)||(n[0]=0,n[1]=1),this.calcNiceTicks(r.splitNumber,r.minInterval,r.maxInterval);var o=this._interval;r.fixMin||(n[0]=Nh(Math.floor(n[0]/o)*o)),r.fixMax||(n[1]=Nh(Math.ceil(n[1]/o)*o))},t.prototype.setNiceExtent=function(r,n){this._niceExtent=[r,n]},t.type=\"interval\",t}(Ec);Ec.registerClass(vd);var Sve=typeof Float32Array<\"u\",hxt=Sve?Float32Array:Array;function Ju(e){return nt(e)?Sve?new Float32Array(e):e:new hxt(e)}var TP=\"__ec_stack_\";function wve(e){return e.get(\"stack\")||TP+e.seriesIndex}function e$(e){return e.dim+e.index}function pxt(e){var t=[],r=e.axis,n=\"axis0\";if(r.type===\"category\"){for(var a=r.getBandWidth(),i=0;i<e.count;i++)t.push(rr({bandWidth:a,axisKey:n,stackId:TP+i},e));for(var o=Ave(t),l=[],i=0;i<e.count;i++){var s=o[n][TP+i];s.offsetCenter=s.offset+s.width/2,l.push(s)}return l}}function Eve(e,t){var r=[];return t.eachSeriesByType(e,function(n){Ive(n)&&r.push(n)}),r}function mxt(e){var t={};q(e,function(s){var u=s.coordinateSystem,c=u.getBaseAxis();if(!(c.type!==\"time\"&&c.type!==\"value\"))for(var d=s.getData(),f=c.dim+\"_\"+c.index,h=d.getDimensionIndex(d.mapDimension(c.dim)),p=d.getStore(),v=0,g=p.count();v<g;++v){var y=p.get(h,v);t[f]?t[f].push(y):t[f]=[y]}});var r={};for(var n in t)if(t.hasOwnProperty(n)){var a=t[n];if(a){a.sort(function(s,u){return s-u});for(var i=null,o=1;o<a.length;++o){var l=a[o]-a[o-1];l>0&&(i=i===null?l:Math.min(i,l))}r[n]=i}}return r}function Dve(e){var t=mxt(e),r=[];return q(e,function(n){var a=n.coordinateSystem,i=a.getBaseAxis(),o=i.getExtent(),l;if(i.type===\"category\")l=i.getBandWidth();else if(i.type===\"value\"||i.type===\"time\"){var s=i.dim+\"_\"+i.index,u=t[s],c=Math.abs(o[1]-o[0]),d=i.scale.getExtent(),f=Math.abs(d[1]-d[0]);l=u?c/f*u:c}else{var h=n.getData();l=Math.abs(o[1]-o[0])/h.count()}var p=Ft(n.get(\"barWidth\"),l),v=Ft(n.get(\"barMaxWidth\"),l),g=Ft(n.get(\"barMinWidth\")||(kve(n)?.5:1),l),y=n.get(\"barGap\"),b=n.get(\"barCategoryGap\");r.push({bandWidth:l,barWidth:p,barMaxWidth:v,barMinWidth:g,barGap:y,barCategoryGap:b,axisKey:e$(i),stackId:wve(n)})}),Ave(r)}function Ave(e){var t={};q(e,function(n,a){var i=n.axisKey,o=n.bandWidth,l=t[i]||{bandWidth:o,remainedWidth:o,autoWidthCount:0,categoryGap:null,gap:\"20%\",stacks:{}},s=l.stacks;t[i]=l;var u=n.stackId;s[u]||l.autoWidthCount++,s[u]=s[u]||{width:0,maxWidth:0};var c=n.barWidth;c&&!s[u].width&&(s[u].width=c,c=Math.min(l.remainedWidth,c),l.remainedWidth-=c);var d=n.barMaxWidth;d&&(s[u].maxWidth=d);var f=n.barMinWidth;f&&(s[u].minWidth=f);var h=n.barGap;h!=null&&(l.gap=h);var p=n.barCategoryGap;p!=null&&(l.categoryGap=p)});var r={};return q(t,function(n,a){r[a]={};var i=n.stacks,o=n.bandWidth,l=n.categoryGap;if(l==null){var s=Ur(i).length;l=Math.max(35-s*4,15)+\"%\"}var u=Ft(l,o),c=Ft(n.gap,1),d=n.remainedWidth,f=n.autoWidthCount,h=(d-u)/(f+(f-1)*c);h=Math.max(h,0),q(i,function(y){var b=y.maxWidth,x=y.minWidth;if(y.width){var F=y.width;b&&(F=Math.min(F,b)),x&&(F=Math.max(F,x)),y.width=F,d-=F+c*F,f--}else{var F=h;b&&b<F&&(F=Math.min(b,d)),x&&x>F&&(F=x),F!==h&&(y.width=F,d-=F+c*F,f--)}}),h=(d-u)/(f+(f-1)*c),h=Math.max(h,0);var p=0,v;q(i,function(y,b){y.width||(y.width=h),v=y,p+=y.width*(1+c)}),v&&(p-=v.width*c);var g=-p/2;q(i,function(y,b){r[a][b]=r[a][b]||{bandWidth:o,offset:g,width:y.width},g+=y.width*(1+c)})}),r}function vxt(e,t,r){if(e&&t){var n=e[e$(t)];return n}}function _ve(e,t){var r=Eve(e,t),n=Dve(r);q(r,function(a){var i=a.getData(),o=a.coordinateSystem,l=o.getBaseAxis(),s=wve(a),u=n[e$(l)][s],c=u.offset,d=u.width;i.setLayout({bandWidth:u.bandWidth,offset:c,size:d})})}function Tve(e){return{seriesType:e,plan:r1(),reset:function(t){if(Ive(t)){var r=t.getData(),n=t.coordinateSystem,a=n.getBaseAxis(),i=n.getOtherAxis(a),o=r.getDimensionIndex(r.mapDimension(i.dim)),l=r.getDimensionIndex(r.mapDimension(a.dim)),s=t.get(\"showBackground\",!0),u=r.mapDimension(i.dim),c=r.getCalculationInfo(\"stackResultDimension\"),d=md(r,u)&&!!r.getCalculationInfo(\"stackedOnSeries\"),f=i.isHorizontal(),h=gxt(a,i),p=kve(t),v=t.get(\"barMinHeight\")||0,g=c&&r.getDimensionIndex(c),y=r.getLayout(\"size\"),b=r.getLayout(\"offset\");return{progress:function(x,F){for(var S=x.count,E=p&&Ju(S*3),w=p&&s&&Ju(S*3),D=p&&Ju(S),A=n.master.getRect(),_=f?A.width:A.height,I,M=F.getStore(),T=0;(I=x.next())!=null;){var k=M.get(d?g:o,I),R=M.get(l,I),P=h,B=void 0;d&&(B=+k-M.get(o,I));var N=void 0,O=void 0,z=void 0,W=void 0;if(f){var L=n.dataToPoint([k,R]);if(d){var j=n.dataToPoint([B,R]);P=j[0]}N=P,O=L[1]+b,z=L[0]-P,W=y,Math.abs(z)<v&&(z=(z<0?-1:1)*v)}else{var L=n.dataToPoint([R,k]);if(d){var j=n.dataToPoint([R,B]);P=j[1]}N=L[0]+b,O=P,z=y,W=L[1]-P,Math.abs(W)<v&&(W=(W<=0?-1:1)*v)}p?(E[T]=N,E[T+1]=O,E[T+2]=f?z:W,w&&(w[T]=f?A.x:N,w[T+1]=f?O:A.y,w[T+2]=_),D[I]=I):F.setItemLayout(I,{x:N,y:O,width:z,height:W}),T+=3}p&&F.setLayout({largePoints:E,largeDataIndices:D,largeBackgroundPoints:w,valueAxisHorizontal:f})}}}}}}function Ive(e){return e.coordinateSystem&&e.coordinateSystem.type===\"cartesian2d\"}function kve(e){return e.pipelineContext&&e.pipelineContext.large}function gxt(e,t){var r=t.model.get(\"startValue\");return r||(r=0),t.toGlobalCoord(t.dataToCoord(t.type===\"log\"?r>0?r:1:r))}var yxt=function(e,t,r,n){for(;r<n;){var a=r+n>>>1;e[a][1]<t?r=a+1:n=a}return r},t$=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"time\",n}return t.prototype.getLabel=function(r){var n=this.getSetting(\"useUTC\");return oC(r.value,MY[Y1t(I0(this._minLevelUnit))]||MY.second,n,this.getSetting(\"locale\"))},t.prototype.getFormattedLabel=function(r,n,a){var i=this.getSetting(\"useUTC\"),o=this.getSetting(\"locale\");return q1t(r,n,a,o,i)},t.prototype.getTicks=function(){var r=this._interval,n=this._extent,a=[];if(!r)return a;a.push({value:n[0],level:0});var i=this.getSetting(\"useUTC\"),o=Ext(this._minLevelUnit,this._approxInterval,i,n);return a=a.concat(o),a.push({value:n[1],level:0}),a},t.prototype.calcNiceExtent=function(r){var n=this._extent;if(n[0]===n[1]&&(n[0]-=ps,n[1]+=ps),n[1]===-1/0&&n[0]===1/0){var a=new Date;n[1]=+new Date(a.getFullYear(),a.getMonth(),a.getDate()),n[0]=n[1]-ps}this.calcNiceTicks(r.splitNumber,r.minInterval,r.maxInterval)},t.prototype.calcNiceTicks=function(r,n,a){r=r||10;var i=this._extent,o=i[1]-i[0];this._approxInterval=o/r,n!=null&&this._approxInterval<n&&(this._approxInterval=n),a!=null&&this._approxInterval>a&&(this._approxInterval=a);var l=dS.length,s=Math.min(yxt(dS,this._approxInterval,0,l),l-1);this._interval=dS[s][1],this._minLevelUnit=dS[Math.max(s-1,0)][0]},t.prototype.parse=function(r){return nn(r)?r:+jl(r)},t.prototype.contain=function(r){return hA(this.parse(r),this._extent)},t.prototype.normalize=function(r){return pA(this.parse(r),this._extent)},t.prototype.scale=function(r){return mA(r,this._extent)},t.type=\"time\",t}(vd),dS=[[\"second\",DN],[\"minute\",AN],[\"hour\",gb],[\"quarter-day\",gb*6],[\"half-day\",gb*12],[\"day\",ps*1.2],[\"half-week\",ps*3.5],[\"week\",ps*7],[\"month\",ps*31],[\"quarter\",ps*95],[\"half-year\",RY/2],[\"year\",RY]];function bxt(e,t,r,n){var a=jl(t),i=jl(r),o=function(p){return PY(a,p,n)===PY(i,p,n)},l=function(){return o(\"year\")},s=function(){return l()&&o(\"month\")},u=function(){return s()&&o(\"day\")},c=function(){return u()&&o(\"hour\")},d=function(){return c()&&o(\"minute\")},f=function(){return d()&&o(\"second\")},h=function(){return f()&&o(\"millisecond\")};switch(e){case\"year\":return l();case\"month\":return s();case\"day\":return u();case\"hour\":return c();case\"minute\":return d();case\"second\":return f();case\"millisecond\":return h()}}function xxt(e,t){return e/=ps,e>16?16:e>7.5?7:e>3.5?4:e>1.5?2:1}function Cxt(e){var t=30*ps;return e/=t,e>6?6:e>3?3:e>2?2:1}function Fxt(e){return e/=gb,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function Vq(e,t){return e/=t?AN:DN,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function Sxt(e){return aN(e,!0)}function wxt(e,t,r){var n=new Date(e);switch(I0(t)){case\"year\":case\"month\":n[Ype(r)](0);case\"day\":n[qpe(r)](1);case\"hour\":n[Xpe(r)](0);case\"minute\":n[Jpe(r)](0);case\"second\":n[Zpe(r)](0),n[Qpe(r)](0)}return n.getTime()}function Ext(e,t,r,n){var a=1e4,i=Upe,o=0;function l(_,I,M,T,k,R,P){for(var B=new Date(I),N=I,O=B[T]();N<M&&N<=n[1];)P.push({value:N}),O+=_,B[k](O),N=B.getTime();P.push({value:N,notAdd:!0})}function s(_,I,M){var T=[],k=!I.length;if(!bxt(I0(_),n[0],n[1],r)){k&&(I=[{value:wxt(new Date(n[0]),_,r)},{value:n[1]}]);for(var R=0;R<I.length-1;R++){var P=I[R].value,B=I[R+1].value;if(P!==B){var N=void 0,O=void 0,z=void 0,W=!1;switch(_){case\"year\":N=Math.max(1,Math.round(t/ps/365)),O=_N(r),z=X1t(r);break;case\"half-year\":case\"quarter\":case\"month\":N=Cxt(t),O=k0(r),z=Ype(r);break;case\"week\":case\"half-week\":case\"day\":N=xxt(t),O=rA(r),z=qpe(r),W=!0;break;case\"half-day\":case\"quarter-day\":case\"hour\":N=Fxt(t),O=R2(r),z=Xpe(r);break;case\"minute\":N=Vq(t,!0),O=nA(r),z=Jpe(r);break;case\"second\":N=Vq(t,!1),O=aA(r),z=Zpe(r);break;case\"millisecond\":N=Sxt(t),O=iA(r),z=Qpe(r);break}l(N,P,B,O,z,W,T),_===\"year\"&&M.length>1&&R===0&&M.unshift({value:M[0].value-N})}}for(var R=0;R<T.length;R++)M.push(T[R]);return T}}for(var u=[],c=[],d=0,f=0,h=0;h<i.length&&o++<a;++h){var p=I0(i[h]);if(K1t(i[h])){s(i[h],u[u.length-1]||[],c);var v=i[h+1]?I0(i[h+1]):null;if(p!==v){if(c.length){f=d,c.sort(function(_,I){return _.value-I.value});for(var g=[],y=0;y<c.length;++y){var b=c[y].value;(y===0||c[y-1].value!==b)&&(g.push(c[y]),b>=n[0]&&b<=n[1]&&d++)}var x=(n[1]-n[0])/t;if(d>x*1.5&&f>x/1.5||(u.push(g),d>x||e===i[h]))break}c=[]}}}for(var F=hn(ot(u,function(_){return hn(_,function(I){return I.value>=n[0]&&I.value<=n[1]&&!I.notAdd})}),function(_){return _.length>0}),S=[],E=F.length-1,h=0;h<F.length;++h)for(var w=F[h],D=0;D<w.length;++D)S.push({value:w[D].value,level:E-h});S.sort(function(_,I){return _.value-I.value});for(var A=[],h=0;h<S.length;++h)(h===0||S[h].value!==S[h-1].value)&&A.push(S[h]);return A}Ec.registerClass(t$);var Wq=Ec.prototype,xb=vd.prototype,Dxt=fa,Axt=Math.floor,_xt=Math.ceil,fS=Math.pow,Hs=Math.log,r$=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"log\",r.base=10,r._originalScale=new vd,r._interval=0,r}return t.prototype.getTicks=function(r){var n=this._originalScale,a=this._extent,i=n.getExtent(),o=xb.getTicks.call(this,r);return ot(o,function(l){var s=l.value,u=fa(fS(this.base,s));return u=s===a[0]&&this._fixMin?hS(u,i[0]):u,u=s===a[1]&&this._fixMax?hS(u,i[1]):u,{value:u}},this)},t.prototype.setExtent=function(r,n){var a=Hs(this.base);r=Hs(Math.max(0,r))/a,n=Hs(Math.max(0,n))/a,xb.setExtent.call(this,r,n)},t.prototype.getExtent=function(){var r=this.base,n=Wq.getExtent.call(this);n[0]=fS(r,n[0]),n[1]=fS(r,n[1]);var a=this._originalScale,i=a.getExtent();return this._fixMin&&(n[0]=hS(n[0],i[0])),this._fixMax&&(n[1]=hS(n[1],i[1])),n},t.prototype.unionExtent=function(r){this._originalScale.unionExtent(r);var n=this.base;r[0]=Hs(r[0])/Hs(n),r[1]=Hs(r[1])/Hs(n),Wq.unionExtent.call(this,r)},t.prototype.unionExtentFromData=function(r,n){this.unionExtent(r.getApproximateExtent(n))},t.prototype.calcNiceTicks=function(r){r=r||10;var n=this._extent,a=n[1]-n[0];if(!(a===1/0||a<=0)){var i=qhe(a),o=r/a*i;for(o<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var l=[fa(_xt(n[0]/i)*i),fa(Axt(n[1]/i)*i)];this._interval=i,this._niceExtent=l}},t.prototype.calcNiceExtent=function(r){xb.calcNiceExtent.call(this,r),this._fixMin=r.fixMin,this._fixMax=r.fixMax},t.prototype.parse=function(r){return r},t.prototype.contain=function(r){return r=Hs(r)/Hs(this.base),hA(r,this._extent)},t.prototype.normalize=function(r){return r=Hs(r)/Hs(this.base),pA(r,this._extent)},t.prototype.scale=function(r){return r=mA(r,this._extent),fS(this.base,r)},t.type=\"log\",t}(Ec),Rve=r$.prototype;Rve.getMinorTicks=xb.getMinorTicks;Rve.getLabel=xb.getLabel;function hS(e,t){return Dxt(e,tu(t))}Ec.registerClass(r$);var Txt=function(){function e(t,r,n){this._prepareParams(t,r,n)}return e.prototype._prepareParams=function(t,r,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var a=this._isOrdinal=t.type===\"ordinal\";this._needCrossZero=t.type===\"interval\"&&r.getNeedCrossZero&&r.getNeedCrossZero();var i=r.get(\"min\",!0);i==null&&(i=r.get(\"startValue\",!0));var o=this._modelMinRaw=i;er(o)?this._modelMinNum=pS(t,o({min:n[0],max:n[1]})):o!==\"dataMin\"&&(this._modelMinNum=pS(t,o));var l=this._modelMaxRaw=r.get(\"max\",!0);if(er(l)?this._modelMaxNum=pS(t,l({min:n[0],max:n[1]})):l!==\"dataMax\"&&(this._modelMaxNum=pS(t,l)),a)this._axisDataLen=r.getCategories().length;else{var s=r.get(\"boundaryGap\"),u=nt(s)?s:[s||0,s||0];typeof u[0]==\"boolean\"||typeof u[1]==\"boolean\"?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Fu(u[0],1),Fu(u[1],1)]}},e.prototype.calculate=function(){var t=this._isOrdinal,r=this._dataMin,n=this._dataMax,a=this._axisDataLen,i=this._boundaryGapInner,o=t?null:n-r||Math.abs(r),l=this._modelMinRaw===\"dataMin\"?r:this._modelMinNum,s=this._modelMaxRaw===\"dataMax\"?n:this._modelMaxNum,u=l!=null,c=s!=null;l==null&&(l=t?a?0:NaN:r-i[0]*o),s==null&&(s=t?a?a-1:NaN:n+i[1]*o),(l==null||!isFinite(l))&&(l=NaN),(s==null||!isFinite(s))&&(s=NaN);var d=rg(l)||rg(s)||t&&!a;this._needCrossZero&&(l>0&&s>0&&!u&&(l=0),l<0&&s<0&&!c&&(s=0));var f=this._determinedMin,h=this._determinedMax;return f!=null&&(l=f,u=!0),h!=null&&(s=h,c=!0),{min:l,max:s,minFixed:u,maxFixed:c,isBlank:d}},e.prototype.modifyDataMinMax=function(t,r){this[kxt[t]]=r},e.prototype.setDeterminedMinMax=function(t,r){var n=Ixt[t];this[n]=r},e.prototype.freeze=function(){this.frozen=!0},e}(),Ixt={min:\"_determinedMin\",max:\"_determinedMax\"},kxt={min:\"_dataMin\",max:\"_dataMax\"};function Mve(e,t,r){var n=e.rawExtentInfo;return n||(n=new Txt(e,t,r),e.rawExtentInfo=n,n)}function pS(e,t){return t==null?null:rg(t)?NaN:e.parse(t)}function Pve(e,t){var r=e.type,n=Mve(e,t,e.getExtent()).calculate();e.setBlank(n.isBlank);var a=n.min,i=n.max,o=t.ecModel;if(o&&r===\"time\"){var l=Eve(\"bar\",o),s=!1;if(q(l,function(d){s=s||d.getBaseAxis()===t.axis}),s){var u=Dve(l),c=Rxt(a,i,t,u);a=c.min,i=c.max}}return{extent:[a,i],fixMin:n.minFixed,fixMax:n.maxFixed}}function Rxt(e,t,r,n){var a=r.axis.getExtent(),i=Math.abs(a[1]-a[0]),o=vxt(n,r.axis);if(o===void 0)return{min:e,max:t};var l=1/0;q(o,function(h){l=Math.min(h.offset,l)});var s=-1/0;q(o,function(h){s=Math.max(h.offset+h.width,s)}),l=Math.abs(l),s=Math.abs(s);var u=l+s,c=t-e,d=1-(l+s)/i,f=c/d-c;return t+=f*(s/u),e-=f*(l/u),{min:e,max:t}}function sm(e,t){var r=t,n=Pve(e,r),a=n.extent,i=r.get(\"splitNumber\");e instanceof r$&&(e.base=r.get(\"logBase\"));var o=e.type,l=r.get(\"interval\"),s=o===\"interval\"||o===\"time\";e.setExtent(a[0],a[1]),e.calcNiceExtent({splitNumber:i,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:s?r.get(\"minInterval\"):null,maxInterval:s?r.get(\"maxInterval\"):null}),l!=null&&e.setInterval&&e.setInterval(l)}function sC(e,t){if(t=t||e.get(\"type\"),t)switch(t){case\"category\":return new vA({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:[1/0,-1/0]});case\"time\":return new t$({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get(\"useUTC\")});default:return new(Ec.getClass(t)||vd)}}function Mxt(e){var t=e.scale.getExtent(),r=t[0],n=t[1];return!(r>0&&n>0||r<0&&n<0)}function o1(e){var t=e.getLabelModel().get(\"formatter\"),r=e.type===\"category\"?e.scale.getExtent()[0]:null;return e.scale.type===\"time\"?function(n){return function(a,i){return e.scale.getFormattedLabel(a,i,n)}}(t):At(t)?function(n){return function(a){var i=e.scale.getLabel(a),o=n.replace(\"{value}\",i??\"\");return o}}(t):er(t)?function(n){return function(a,i){return r!=null&&(i=a.value-r),n(n$(e,a),i,a.level!=null?{level:a.level}:null)}}(t):function(n){return e.scale.getLabel(n)}}function n$(e,t){return e.type===\"category\"?e.scale.getLabel(t):t.value}function Pxt(e){var t=e.model,r=e.scale;if(!(!t.get([\"axisLabel\",\"show\"])||r.isBlank())){var n,a,i=r.getExtent();r instanceof vA?a=r.count():(n=r.getTicks(),a=n.length);var o=e.getLabelModel(),l=o1(e),s,u=1;a>40&&(u=Math.ceil(a/40));for(var c=0;c<a;c+=u){var d=n?n[c]:{value:i[0]+c},f=l(d,c),h=o.getTextRect(f),p=Oxt(h,o.get(\"rotate\")||0);s?s.union(p):s=p}return s}}function Oxt(e,t){var r=t*Math.PI/180,n=e.width,a=e.height,i=n*Math.abs(Math.cos(r))+Math.abs(a*Math.sin(r)),o=n*Math.abs(Math.sin(r))+Math.abs(a*Math.cos(r)),l=new Ir(e.x,e.y,i,o);return l}function a$(e){var t=e.get(\"interval\");return t??\"auto\"}function Ove(e){return e.type===\"category\"&&a$(e.getLabelModel())===0}function Q3(e,t){var r={};return q(e.mapDimensionsAll(t),function(n){r[QN(e,n)]=!0}),Ur(r)}function Bxt(e,t,r){t&&q(Q3(t,r),function(n){var a=t.getApproximateExtent(n);a[0]<e[0]&&(e[0]=a[0]),a[1]>e[1]&&(e[1]=a[1])})}var l1=function(){function e(){}return e.prototype.getNeedCrossZero=function(){var t=this.option;return!t.scale},e.prototype.getCoordSysModel=function(){},e}();function Nxt(e){return wc(null,e)}var $xt={isDimensionStacked:md,enableDataStack:Cve,getStackedDimension:QN};function Lxt(e,t){var r=t;t instanceof pn||(r=new pn(t));var n=sC(r);return n.setExtent(e[0],e[1]),sm(n,r),n}function jxt(e){Ca(e,l1)}function zxt(e,t){return t=t||{},Mn(e,null,null,t.state!==\"normal\")}const Hxt=Object.freeze(Object.defineProperty({__proto__:null,createDimensions:J2t,createList:Nxt,createScale:Lxt,createSymbol:_a,createTextStyle:zxt,dataStack:$xt,enableHoverEmphasis:If,getECData:br,getLayoutRect:Na,mixinAxisModelCommonMethods:jxt},Symbol.toStringTag,{value:\"Module\"}));var Vxt=1e-8;function Gq(e,t){return Math.abs(e-t)<Vxt}function ep(e,t,r){var n=0,a=e[0];if(!a)return!1;for(var i=1;i<e.length;i++){var o=e[i];n+=Pc(a[0],a[1],o[0],o[1],t,r),a=o}var l=e[0];return(!Gq(a[0],l[0])||!Gq(a[1],l[1]))&&(n+=Pc(a[0],a[1],l[0],l[1],t,r)),n!==0}var Wxt=[];function dI(e,t){for(var r=0;r<e.length;r++)Ii(e[r],e[r],t)}function Uq(e,t,r,n){for(var a=0;a<e.length;a++){var i=e[a];n&&(i=n.project(i)),i&&isFinite(i[0])&&isFinite(i[1])&&(zc(t,t,i),Hc(r,r,i))}}function Gxt(e){for(var t=0,r=0,n=0,a=e.length,i=e[a-1][0],o=e[a-1][1],l=0;l<a;l++){var s=e[l][0],u=e[l][1],c=i*u-s*o;t+=c,r+=(i+s)*c,n+=(o+u)*c,i=s,o=u}return t?[r/t/3,n/t/3,t]:[e[0][0]||0,e[0][1]||0]}var Bve=function(){function e(t){this.name=t}return e.prototype.setCenter=function(t){this._center=t},e.prototype.getCenter=function(){var t=this._center;return t||(t=this._center=this.calcCenter()),t},e}(),Kq=function(){function e(t,r){this.type=\"polygon\",this.exterior=t,this.interiors=r}return e}(),Yq=function(){function e(t){this.type=\"linestring\",this.points=t}return e}(),Nve=function(e){Re(t,e);function t(r,n,a){var i=e.call(this,r)||this;return i.type=\"geoJSON\",i.geometries=n,i._center=a&&[a[0],a[1]],i}return t.prototype.calcCenter=function(){for(var r=this.geometries,n,a=0,i=0;i<r.length;i++){var o=r[i],l=o.exterior,s=l&&l.length;s>a&&(n=o,a=s)}if(n)return Gxt(n.exterior);var u=this.getBoundingRect();return[u.x+u.width/2,u.y+u.height/2]},t.prototype.getBoundingRect=function(r){var n=this._rect;if(n&&!r)return n;var a=[1/0,1/0],i=[-1/0,-1/0],o=this.geometries;return q(o,function(l){l.type===\"polygon\"?Uq(l.exterior,a,i,r):q(l.points,function(s){Uq(s,a,i,r)})}),isFinite(a[0])&&isFinite(a[1])&&isFinite(i[0])&&isFinite(i[1])||(a[0]=a[1]=i[0]=i[1]=0),n=new Ir(a[0],a[1],i[0]-a[0],i[1]-a[1]),r||(this._rect=n),n},t.prototype.contain=function(r){var n=this.getBoundingRect(),a=this.geometries;if(!n.contain(r[0],r[1]))return!1;e:for(var i=0,o=a.length;i<o;i++){var l=a[i];if(l.type===\"polygon\"){var s=l.exterior,u=l.interiors;if(ep(s,r[0],r[1])){for(var c=0;c<(u?u.length:0);c++)if(ep(u[c],r[0],r[1]))continue e;return!0}}}return!1},t.prototype.transformTo=function(r,n,a,i){var o=this.getBoundingRect(),l=o.width/o.height;a?i||(i=a/l):a=l*i;for(var s=new Ir(r,n,a,i),u=o.calculateTransform(s),c=this.geometries,d=0;d<c.length;d++){var f=c[d];f.type===\"polygon\"?(dI(f.exterior,u),q(f.interiors,function(h){dI(h,u)})):q(f.points,function(h){dI(h,u)})}o=this._rect,o.copy(s),this._center=[o.x+o.width/2,o.y+o.height/2]},t.prototype.cloneShallow=function(r){r==null&&(r=this.name);var n=new t(r,this.geometries,this._center);return n._rect=this._rect,n.transformTo=null,n},t}(Bve),Uxt=function(e){Re(t,e);function t(r,n){var a=e.call(this,r)||this;return a.type=\"geoSVG\",a._elOnlyForCalculate=n,a}return t.prototype.calcCenter=function(){for(var r=this._elOnlyForCalculate,n=r.getBoundingRect(),a=[n.x+n.width/2,n.y+n.height/2],i=Jx(Wxt),o=r;o&&!o.isGeoSVGGraphicRoot;)ic(i,o.getLocalTransform(),i),o=o.parent;return Bm(i,i),Ii(a,a,i),a},t}(Bve);function Kxt(e){if(!e.UTF8Encoding)return e;var t=e,r=t.UTF8Scale;r==null&&(r=1024);var n=t.features;return q(n,function(a){var i=a.geometry,o=i.encodeOffsets,l=i.coordinates;if(o)switch(i.type){case\"LineString\":i.coordinates=$ve(l,o,r);break;case\"Polygon\":fI(l,o,r);break;case\"MultiLineString\":fI(l,o,r);break;case\"MultiPolygon\":q(l,function(s,u){return fI(s,o[u],r)})}}),t.UTF8Encoding=!1,t}function fI(e,t,r){for(var n=0;n<e.length;n++)e[n]=$ve(e[n],t[n],r)}function $ve(e,t,r){for(var n=[],a=t[0],i=t[1],o=0;o<e.length;o+=2){var l=e.charCodeAt(o)-64,s=e.charCodeAt(o+1)-64;l=l>>1^-(l&1),s=s>>1^-(s&1),l+=a,s+=i,a=l,i=s,n.push([l/r,s/r])}return n}function IP(e,t){return e=Kxt(e),ot(hn(e.features,function(r){return r.geometry&&r.properties&&r.geometry.coordinates.length>0}),function(r){var n=r.properties,a=r.geometry,i=[];switch(a.type){case\"Polygon\":var o=a.coordinates;i.push(new Kq(o[0],o.slice(1)));break;case\"MultiPolygon\":q(a.coordinates,function(s){s[0]&&i.push(new Kq(s[0],s.slice(1)))});break;case\"LineString\":i.push(new Yq([a.coordinates]));break;case\"MultiLineString\":i.push(new Yq(a.coordinates))}var l=new Nve(n[t||\"name\"],i,n.cp);return l.properties=n,l})}const Yxt=Object.freeze(Object.defineProperty({__proto__:null,MAX_SAFE_INTEGER:ZM,asc:Ml,getPercentWithPrecision:T0t,getPixelPrecision:rN,getPrecision:tu,getPrecisionSafe:Khe,isNumeric:iN,isRadianAroundZero:ag,linearMap:yn,nice:aN,numericToNumber:vc,parseDate:jl,quantile:kw,quantity:qhe,quantityExponent:GD,reformIntervals:QM,remRadian:nN,round:fa},Symbol.toStringTag,{value:\"Module\"})),qxt=Object.freeze(Object.defineProperty({__proto__:null,format:oC,parse:jl},Symbol.toStringTag,{value:\"Module\"})),Xxt=Object.freeze(Object.defineProperty({__proto__:null,Arc:nC,BezierCurve:Kg,BoundingRect:Ir,Circle:Fc,CompoundPath:ZD,Ellipse:rC,Group:pr,Image:yi,IncrementalDisplayable:Mpe,Line:Xa,LinearGradient:Yg,Polygon:wo,Polyline:To,RadialGradient:gN,Rect:Zr,Ring:Ug,Sector:So,Text:Jr,clipPointsByRect:CN,clipRectByRect:$pe,createIcon:Xg,extendPath:Bpe,extendShape:Ope,getShapeClass:QD,getTransform:kf,initProps:Yn,makeImage:bN,makePath:aC,mergePath:Tl,registerShape:Ms,resizePath:xN,updateProps:cn},Symbol.toStringTag,{value:\"Module\"})),Jxt=Object.freeze(Object.defineProperty({__proto__:null,addCommas:TN,capitalFirst:eyt,encodeHTML:po,formatTime:Q1t,formatTpl:kN,getTextRect:J1t,getTooltipMarker:eme,normalizeCssArray:Lm,toCamelCase:IN,truncateText:igt},Symbol.toStringTag,{value:\"Module\"})),Zxt=Object.freeze(Object.defineProperty({__proto__:null,bind:Pt,clone:lr,curry:wr,defaults:rr,each:q,extend:Xe,filter:hn,indexOf:Mr,inherits:YB,isArray:nt,isFunction:er,isObject:ir,isString:At,map:ot,merge:Er,reduce:Ds},Symbol.toStringTag,{value:\"Module\"}));var $2=rn();function Lve(e,t){var r=ot(t,function(n){return e.scale.parse(n)});return e.type===\"time\"&&r.length>0&&(r.sort(),r.unshift(r[0]),r.push(r[r.length-1])),r}function Qxt(e){var t=e.getLabelModel().get(\"customValues\");if(t){var r=o1(e),n=e.scale.getExtent(),a=Lve(e,t),i=hn(a,function(o){return o>=n[0]&&o<=n[1]});return{labels:ot(i,function(o){var l={value:o};return{formattedLabel:r(l),rawLabel:e.scale.getLabel(l),tickValue:o}})}}return e.type===\"category\"?tCt(e):nCt(e)}function eCt(e,t){var r=e.getTickModel().get(\"customValues\");if(r){var n=e.scale.getExtent(),a=Lve(e,r);return{ticks:hn(a,function(i){return i>=n[0]&&i<=n[1]})}}return e.type===\"category\"?rCt(e,t):{ticks:ot(e.scale.getTicks(),function(i){return i.value})}}function tCt(e){var t=e.getLabelModel(),r=jve(e,t);return!t.get(\"show\")||e.scale.isBlank()?{labels:[],labelCategoryInterval:r.labelCategoryInterval}:r}function jve(e,t){var r=zve(e,\"labels\"),n=a$(t),a=Hve(r,n);if(a)return a;var i,o;return er(n)?i=Gve(e,n):(o=n===\"auto\"?aCt(e):n,i=Wve(e,o)),Vve(r,n,{labels:i,labelCategoryInterval:o})}function rCt(e,t){var r=zve(e,\"ticks\"),n=a$(t),a=Hve(r,n);if(a)return a;var i,o;if((!t.get(\"show\")||e.scale.isBlank())&&(i=[]),er(n))i=Gve(e,n,!0);else if(n===\"auto\"){var l=jve(e,e.getLabelModel());o=l.labelCategoryInterval,i=ot(l.labels,function(s){return s.tickValue})}else o=n,i=Wve(e,o,!0);return Vve(r,n,{ticks:i,tickCategoryInterval:o})}function nCt(e){var t=e.scale.getTicks(),r=o1(e);return{labels:ot(t,function(n,a){return{level:n.level,formattedLabel:r(n,a),rawLabel:e.scale.getLabel(n),tickValue:n.value}})}}function zve(e,t){return $2(e)[t]||($2(e)[t]=[])}function Hve(e,t){for(var r=0;r<e.length;r++)if(e[r].key===t)return e[r].value}function Vve(e,t,r){return e.push({key:t,value:r}),r}function aCt(e){var t=$2(e).autoInterval;return t??($2(e).autoInterval=e.calculateCategoryInterval())}function iCt(e){var t=oCt(e),r=o1(e),n=(t.axisRotate-t.labelRotate)/180*Math.PI,a=e.scale,i=a.getExtent(),o=a.count();if(i[1]-i[0]<1)return 0;var l=1;o>40&&(l=Math.max(1,Math.floor(o/40)));for(var s=i[0],u=e.dataToCoord(s+1)-e.dataToCoord(s),c=Math.abs(u*Math.cos(n)),d=Math.abs(u*Math.sin(n)),f=0,h=0;s<=i[1];s+=l){var p=0,v=0,g=Qx(r({value:s}),t.font,\"center\",\"top\");p=g.width*1.3,v=g.height*1.3,f=Math.max(f,p,7),h=Math.max(h,v,7)}var y=f/c,b=h/d;isNaN(y)&&(y=1/0),isNaN(b)&&(b=1/0);var x=Math.max(0,Math.floor(Math.min(y,b))),F=$2(e.model),S=e.getExtent(),E=F.lastAutoInterval,w=F.lastTickCount;return E!=null&&w!=null&&Math.abs(E-x)<=1&&Math.abs(w-o)<=1&&E>x&&F.axisExtent0===S[0]&&F.axisExtent1===S[1]?x=E:(F.lastTickCount=o,F.lastAutoInterval=x,F.axisExtent0=S[0],F.axisExtent1=S[1]),x}function oCt(e){var t=e.getLabelModel();return{axisRotate:e.getRotate?e.getRotate():e.isHorizontal&&!e.isHorizontal()?90:0,labelRotate:t.get(\"rotate\")||0,font:t.getFont()}}function Wve(e,t,r){var n=o1(e),a=e.scale,i=a.getExtent(),o=e.getLabelModel(),l=[],s=Math.max((t||0)+1,1),u=i[0],c=a.count();u!==0&&s>1&&c/s>2&&(u=Math.round(Math.ceil(u/s)*s));var d=Ove(e),f=o.get(\"showMinLabel\")||d,h=o.get(\"showMaxLabel\")||d;f&&u!==i[0]&&v(i[0]);for(var p=u;p<=i[1];p+=s)v(p);h&&p-s!==i[1]&&v(i[1]);function v(g){var y={value:g};l.push(r?g:{formattedLabel:n(y),rawLabel:a.getLabel(y),tickValue:g})}return l}function Gve(e,t,r){var n=e.scale,a=o1(e),i=[];return q(n.getTicks(),function(o){var l=n.getLabel(o),s=o.value;t(o.value,l)&&i.push(r?s:{formattedLabel:a(o),rawLabel:l,tickValue:s})}),i}var qq=[0,1],Bs=function(){function e(t,r,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=r,this._extent=n||[0,0]}return e.prototype.contain=function(t){var r=this._extent,n=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);return t>=n&&t<=a},e.prototype.containData=function(t){return this.scale.contain(t)},e.prototype.getExtent=function(){return this._extent.slice()},e.prototype.getPixelPrecision=function(t){return rN(t||this.scale.getExtent(),this._extent)},e.prototype.setExtent=function(t,r){var n=this._extent;n[0]=t,n[1]=r},e.prototype.dataToCoord=function(t,r){var n=this._extent,a=this.scale;return t=a.normalize(t),this.onBand&&a.type===\"ordinal\"&&(n=n.slice(),Xq(n,a.count())),yn(t,qq,n,r)},e.prototype.coordToData=function(t,r){var n=this._extent,a=this.scale;this.onBand&&a.type===\"ordinal\"&&(n=n.slice(),Xq(n,a.count()));var i=yn(t,n,qq,r);return this.scale.scale(i)},e.prototype.pointToData=function(t,r){},e.prototype.getTicksCoords=function(t){t=t||{};var r=t.tickModel||this.getTickModel(),n=eCt(this,r),a=n.ticks,i=ot(a,function(l){return{coord:this.dataToCoord(this.scale.type===\"ordinal\"?this.scale.getRawOrdinalNumber(l):l),tickValue:l}},this),o=r.get(\"alignWithLabel\");return lCt(this,i,o,t.clamp),i},e.prototype.getMinorTicksCoords=function(){if(this.scale.type===\"ordinal\")return[];var t=this.model.getModel(\"minorTick\"),r=t.get(\"splitNumber\");r>0&&r<100||(r=5);var n=this.scale.getMinorTicks(r),a=ot(n,function(i){return ot(i,function(o){return{coord:this.dataToCoord(o),tickValue:o}},this)},this);return a},e.prototype.getViewLabels=function(){return Qxt(this).labels},e.prototype.getLabelModel=function(){return this.model.getModel(\"axisLabel\")},e.prototype.getTickModel=function(){return this.model.getModel(\"axisTick\")},e.prototype.getBandWidth=function(){var t=this._extent,r=this.scale.getExtent(),n=r[1]-r[0]+(this.onBand?1:0);n===0&&(n=1);var a=Math.abs(t[1]-t[0]);return Math.abs(a)/n},e.prototype.calculateCategoryInterval=function(){return iCt(this)},e}();function Xq(e,t){var r=e[1]-e[0],n=t,a=r/n/2;e[0]+=a,e[1]-=a}function lCt(e,t,r,n){var a=t.length;if(!e.onBand||r||!a)return;var i=e.getExtent(),o,l;if(a===1)t[0].coord=i[0],o=t[1]={coord:i[1],tickValue:t[0].tickValue};else{var s=t[a-1].tickValue-t[0].tickValue,u=(t[a-1].coord-t[0].coord)/s;q(t,function(h){h.coord-=u/2});var c=e.scale.getExtent();l=1+c[1]-t[a-1].tickValue,o={coord:t[a-1].coord+u*l,tickValue:c[1]+1},t.push(o)}var d=i[0]>i[1];f(t[0].coord,i[0])&&(n?t[0].coord=i[0]:t.shift()),n&&f(i[0],t[0].coord)&&t.unshift({coord:i[0]}),f(i[1],o.coord)&&(n?o.coord=i[1]:t.pop()),n&&f(o.coord,i[1])&&t.push({coord:i[1]});function f(h,p){return h=fa(h),p=fa(p),d?h>p:h<p}}function sCt(e){var t=jr.extend(e);return jr.registerClass(t),t}function uCt(e){var t=Wn.extend(e);return Wn.registerClass(t),t}function cCt(e){var t=_n.extend(e);return _n.registerClass(t),t}function dCt(e){var t=Cn.extend(e);return Cn.registerClass(t),t}var K1=Math.PI*2,$h=gc.CMD,fCt=[\"top\",\"right\",\"bottom\",\"left\"];function hCt(e,t,r,n,a){var i=r.width,o=r.height;switch(e){case\"top\":n.set(r.x+i/2,r.y-t),a.set(0,-1);break;case\"bottom\":n.set(r.x+i/2,r.y+o+t),a.set(0,1);break;case\"left\":n.set(r.x-t,r.y+o/2),a.set(-1,0);break;case\"right\":n.set(r.x+i+t,r.y+o/2),a.set(1,0);break}}function pCt(e,t,r,n,a,i,o,l,s){o-=e,l-=t;var u=Math.sqrt(o*o+l*l);o/=u,l/=u;var c=o*r+e,d=l*r+t;if(Math.abs(n-a)%K1<1e-4)return s[0]=c,s[1]=d,u-r;if(i){var f=n;n=Pl(a),a=Pl(f)}else n=Pl(n),a=Pl(a);n>a&&(a+=K1);var h=Math.atan2(l,o);if(h<0&&(h+=K1),h>=n&&h<=a||h+K1>=n&&h+K1<=a)return s[0]=c,s[1]=d,u-r;var p=r*Math.cos(n)+e,v=r*Math.sin(n)+t,g=r*Math.cos(a)+e,y=r*Math.sin(a)+t,b=(p-o)*(p-o)+(v-l)*(v-l),x=(g-o)*(g-o)+(y-l)*(y-l);return b<x?(s[0]=p,s[1]=v,Math.sqrt(b)):(s[0]=g,s[1]=y,Math.sqrt(x))}function e4(e,t,r,n,a,i,o,l){var s=a-e,u=i-t,c=r-e,d=n-t,f=Math.sqrt(c*c+d*d);c/=f,d/=f;var h=s*c+u*d,p=h/f;l&&(p=Math.min(Math.max(p,0),1)),p*=f;var v=o[0]=e+p*c,g=o[1]=t+p*d;return Math.sqrt((v-a)*(v-a)+(g-i)*(g-i))}function Uve(e,t,r,n,a,i,o){r<0&&(e=e+r,r=-r),n<0&&(t=t+n,n=-n);var l=e+r,s=t+n,u=o[0]=Math.min(Math.max(a,e),l),c=o[1]=Math.min(Math.max(i,t),s);return Math.sqrt((u-a)*(u-a)+(c-i)*(c-i))}var Ys=[];function mCt(e,t,r){var n=Uve(t.x,t.y,t.width,t.height,e.x,e.y,Ys);return r.set(Ys[0],Ys[1]),n}function vCt(e,t,r){for(var n=0,a=0,i=0,o=0,l,s,u=1/0,c=t.data,d=e.x,f=e.y,h=0;h<c.length;){var p=c[h++];h===1&&(n=c[h],a=c[h+1],i=n,o=a);var v=u;switch(p){case $h.M:i=c[h++],o=c[h++],n=i,a=o;break;case $h.L:v=e4(n,a,c[h],c[h+1],d,f,Ys,!0),n=c[h++],a=c[h++];break;case $h.C:v=Ahe(n,a,c[h++],c[h++],c[h++],c[h++],c[h],c[h+1],d,f,Ys),n=c[h++],a=c[h++];break;case $h.Q:v=The(n,a,c[h++],c[h++],c[h],c[h+1],d,f,Ys),n=c[h++],a=c[h++];break;case $h.A:var g=c[h++],y=c[h++],b=c[h++],x=c[h++],F=c[h++],S=c[h++];h+=1;var E=!!(1-c[h++]);l=Math.cos(F)*b+g,s=Math.sin(F)*x+y,h<=1&&(i=l,o=s);var w=(d-g)*x/b+g;v=pCt(g,y,x,F,F+S,E,w,f,Ys),n=Math.cos(F+S)*b+g,a=Math.sin(F+S)*x+y;break;case $h.R:i=n=c[h++],o=a=c[h++];var D=c[h++],A=c[h++];v=Uve(i,o,D,A,d,f,Ys);break;case $h.Z:v=e4(n,a,i,o,d,f,Ys,!0),n=i,a=o;break}v<u&&(u=v,r.set(Ys[0],Ys[1]))}return u}var ru=new Ar,$n=new Ar,Ea=new Ar,Zu=new Ar,Ku=new Ar;function Jq(e,t){if(e){var r=e.getTextGuideLine(),n=e.getTextContent();if(n&&r){var a=e.textGuideLineConfig||{},i=[[0,0],[0,0],[0,0]],o=a.candidates||fCt,l=n.getBoundingRect().clone();l.applyTransform(n.getComputedTransform());var s=1/0,u=a.anchor,c=e.getComputedTransform(),d=c&&Bm([],c),f=t.get(\"length2\")||0;u&&Ea.copy(u);for(var h=0;h<o.length;h++){var p=o[h];hCt(p,0,l,ru,Zu),Ar.scaleAndAdd($n,ru,Zu,f),$n.transform(d);var v=e.getBoundingRect(),g=u?u.distance($n):e instanceof Vr?vCt($n,e.path,Ea):mCt($n,v,Ea);g<s&&(s=g,$n.transform(c),Ea.transform(c),Ea.toArray(i[0]),$n.toArray(i[1]),ru.toArray(i[2]))}Kve(i,t.get(\"minTurnAngle\")),r.setShape({points:i})}}}var t4=[],Bo=new Ar;function Kve(e,t){if(t<=180&&t>0){t=t/180*Math.PI,ru.fromArray(e[0]),$n.fromArray(e[1]),Ea.fromArray(e[2]),Ar.sub(Zu,ru,$n),Ar.sub(Ku,Ea,$n);var r=Zu.len(),n=Ku.len();if(!(r<.001||n<.001)){Zu.scale(1/r),Ku.scale(1/n);var a=Zu.dot(Ku),i=Math.cos(t);if(i<a){var o=e4($n.x,$n.y,Ea.x,Ea.y,ru.x,ru.y,t4,!1);Bo.fromArray(t4),Bo.scaleAndAdd(Ku,o/Math.tan(Math.PI-t));var l=Ea.x!==$n.x?(Bo.x-$n.x)/(Ea.x-$n.x):(Bo.y-$n.y)/(Ea.y-$n.y);if(isNaN(l))return;l<0?Ar.copy(Bo,$n):l>1&&Ar.copy(Bo,Ea),Bo.toArray(e[1])}}}}function gCt(e,t,r){if(r<=180&&r>0){r=r/180*Math.PI,ru.fromArray(e[0]),$n.fromArray(e[1]),Ea.fromArray(e[2]),Ar.sub(Zu,$n,ru),Ar.sub(Ku,Ea,$n);var n=Zu.len(),a=Ku.len();if(!(n<.001||a<.001)){Zu.scale(1/n),Ku.scale(1/a);var i=Zu.dot(t),o=Math.cos(r);if(i<o){var l=e4($n.x,$n.y,Ea.x,Ea.y,ru.x,ru.y,t4,!1);Bo.fromArray(t4);var s=Math.PI/2,u=Math.acos(Ku.dot(t)),c=s+u-r;if(c>=s)Ar.copy(Bo,Ea);else{Bo.scaleAndAdd(Ku,l/Math.tan(Math.PI/2-c));var d=Ea.x!==$n.x?(Bo.x-$n.x)/(Ea.x-$n.x):(Bo.y-$n.y)/(Ea.y-$n.y);if(isNaN(d))return;d<0?Ar.copy(Bo,$n):d>1&&Ar.copy(Bo,Ea)}Bo.toArray(e[1])}}}}function hI(e,t,r,n){var a=r===\"normal\",i=a?e:e.ensureState(r);i.ignore=t;var o=n.get(\"smooth\");o&&o===!0&&(o=.3),i.shape=i.shape||{},o>0&&(i.shape.smooth=o);var l=n.getModel(\"lineStyle\").getLineStyle();a?e.useStyle(l):i.style=l}function yCt(e,t){var r=t.smooth,n=t.points;if(n)if(e.moveTo(n[0][0],n[0][1]),r>0&&n.length>=3){var a=jc(n[0],n[1]),i=jc(n[1],n[2]);if(!a||!i){e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]);return}var o=Math.min(a,i)*r,l=sb([],n[1],n[0],o/a),s=sb([],n[1],n[2],o/i),u=sb([],l,s,.5);e.bezierCurveTo(l[0],l[1],l[0],l[1],u[0],u[1]),e.bezierCurveTo(s[0],s[1],s[0],s[1],n[2][0],n[2][1])}else for(var c=1;c<n.length;c++)e.lineTo(n[c][0],n[c][1])}function i$(e,t,r){var n=e.getTextGuideLine(),a=e.getTextContent();if(!a){n&&e.removeTextGuideLine();return}for(var i=t.normal,o=i.get(\"show\"),l=a.ignore,s=0;s<T2.length;s++){var u=T2[s],c=t[u],d=u===\"normal\";if(c){var f=c.get(\"show\"),h=d?l:Fr(a.states[u]&&a.states[u].ignore,l);if(h||!Fr(f,o)){var p=d?n:n&&n.states[u];p&&(p.ignore=!0),n&&hI(n,!0,u,c);continue}n||(n=new To,e.setTextGuideLine(n),!d&&(l||!o)&&hI(n,!0,\"normal\",t.normal),e.stateProxy&&(n.stateProxy=e.stateProxy)),hI(n,!1,u,c)}}if(n){rr(n.style,r),n.style.fill=null;var v=i.get(\"showAbove\"),g=e.textGuideLineConfig=e.textGuideLineConfig||{};g.showAbove=v||!1,n.buildPath=yCt}}function o$(e,t){t=t||\"labelLine\";for(var r={normal:e.getModel(t)},n=0;n<Ko.length;n++){var a=Ko[n];r[a]=e.getModel([a,t])}return r}function Yve(e){for(var t=[],r=0;r<e.length;r++){var n=e[r];if(!n.defaultAttr.ignore){var a=n.label,i=a.getComputedTransform(),o=a.getBoundingRect(),l=!i||i[1]<1e-5&&i[2]<1e-5,s=a.style.margin||0,u=o.clone();u.applyTransform(i),u.x-=s/2,u.y-=s/2,u.width+=s,u.height+=s;var c=l?new N3(o,i):null;t.push({label:a,labelLine:n.labelLine,rect:u,localRect:o,obb:c,priority:n.priority,defaultAttr:n.defaultAttr,layoutOption:n.computedLayoutOption,axisAligned:l,transform:i})}}return t}function qve(e,t,r,n,a,i){var o=e.length;if(o<2)return;e.sort(function(E,w){return E.rect[t]-w.rect[t]});for(var l=0,s,u=!1,c=0;c<o;c++){var d=e[c],f=d.rect;s=f[t]-l,s<0&&(f[t]-=s,d.label[t]-=s,u=!0),l=f[t]+f[r]}var h=e[0],p=e[o-1],v,g;y(),v<0&&F(-v,.8),g<0&&F(g,.8),y(),b(v,g,1),b(g,v,-1),y(),v<0&&S(-v),g<0&&S(g);function y(){v=h.rect[t]-n,g=a-p.rect[t]-p.rect[r]}function b(E,w,D){if(E<0){var A=Math.min(w,-E);if(A>0){x(A*D,0,o);var _=A+E;_<0&&F(-_*D,1)}else F(-E*D,1)}}function x(E,w,D){E!==0&&(u=!0);for(var A=w;A<D;A++){var _=e[A],I=_.rect;I[t]+=E,_.label[t]+=E}}function F(E,w){for(var D=[],A=0,_=1;_<o;_++){var I=e[_-1].rect,M=Math.max(e[_].rect[t]-I[t]-I[r],0);D.push(M),A+=M}if(A){var T=Math.min(Math.abs(E)/A,w);if(E>0)for(var _=0;_<o-1;_++){var k=D[_]*T;x(k,0,_+1)}else for(var _=o-1;_>0;_--){var k=D[_-1]*T;x(-k,_,o)}}}function S(E){var w=E<0?-1:1;E=Math.abs(E);for(var D=Math.ceil(E/(o-1)),A=0;A<o-1;A++)if(w>0?x(D,0,A+1):x(-D,o-A-1,o),E-=D,E<=0)return}return u}function bCt(e,t,r,n){return qve(e,\"x\",\"width\",t,r)}function Xve(e,t,r,n){return qve(e,\"y\",\"height\",t,r)}function Jve(e){var t=[];e.sort(function(v,g){return g.priority-v.priority});var r=new Ir(0,0,0,0);function n(v){if(!v.ignore){var g=v.ensureState(\"emphasis\");g.ignore==null&&(g.ignore=!1)}v.ignore=!0}for(var a=0;a<e.length;a++){var i=e[a],o=i.axisAligned,l=i.localRect,s=i.transform,u=i.label,c=i.labelLine;r.copy(i.rect),r.width-=.1,r.height-=.1,r.x+=.05,r.y+=.05;for(var d=i.obb,f=!1,h=0;h<t.length;h++){var p=t[h];if(r.intersect(p.rect)){if(o&&p.axisAligned){f=!0;break}if(p.obb||(p.obb=new N3(p.localRect,p.transform)),d||(d=new N3(l,s)),d.intersect(p.obb)){f=!0;break}}}f?(n(u),c&&n(c)):(u.attr(\"ignore\",i.defaultAttr.ignore),c&&c.attr(\"ignore\",i.defaultAttr.labelGuideIgnore),t.push(i))}}function xCt(e){if(e){for(var t=[],r=0;r<e.length;r++)t.push(e[r].slice());return t}}function CCt(e,t){var r=e.label,n=t&&t.getTextGuideLine();return{dataIndex:e.dataIndex,dataType:e.dataType,seriesIndex:e.seriesModel.seriesIndex,text:e.label.style.text,rect:e.hostRect,labelRect:e.rect,align:r.style.align,verticalAlign:r.style.verticalAlign,labelLinePoints:xCt(n&&n.shape.points)}}var Zq=[\"align\",\"verticalAlign\",\"width\",\"height\",\"fontSize\"],Io=new Vc,pI=rn(),FCt=rn();function mS(e,t,r){for(var n=0;n<r.length;n++){var a=r[n];t[a]!=null&&(e[a]=t[a])}}var vS=[\"x\",\"y\",\"rotation\"],SCt=function(){function e(){this._labelList=[],this._chartViewList=[]}return e.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},e.prototype._addLabel=function(t,r,n,a,i){var o=a.style,l=a.__hostTarget,s=l.textConfig||{},u=a.getComputedTransform(),c=a.getBoundingRect().plain();Ir.applyTransform(c,c,u),u?Io.setLocalTransform(u):(Io.x=Io.y=Io.rotation=Io.originX=Io.originY=0,Io.scaleX=Io.scaleY=1),Io.rotation=Pl(Io.rotation);var d=a.__hostTarget,f;if(d){f=d.getBoundingRect().plain();var h=d.getComputedTransform();Ir.applyTransform(f,f,h)}var p=f&&d.getTextGuideLine();this._labelList.push({label:a,labelLine:p,seriesModel:n,dataIndex:t,dataType:r,layoutOption:i,computedLayoutOption:null,rect:c,hostRect:f,priority:f?f.width*f.height:0,defaultAttr:{ignore:a.ignore,labelGuideIgnore:p&&p.ignore,x:Io.x,y:Io.y,scaleX:Io.scaleX,scaleY:Io.scaleY,rotation:Io.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:a.cursor,attachedPos:s.position,attachedRot:s.rotation}})},e.prototype.addLabelsOfSeries=function(t){var r=this;this._chartViewList.push(t);var n=t.__model,a=n.get(\"labelLayout\");(er(a)||Ur(a).length)&&t.group.traverse(function(i){if(i.ignore)return!0;var o=i.getTextContent(),l=br(i);o&&!o.disableLabelLayout&&r._addLabel(l.dataIndex,l.dataType,n,o,a)})},e.prototype.updateLayoutConfig=function(t){var r=t.getWidth(),n=t.getHeight();function a(x,F){return function(){Jq(x,F)}}for(var i=0;i<this._labelList.length;i++){var o=this._labelList[i],l=o.label,s=l.__hostTarget,u=o.defaultAttr,c=void 0;er(o.layoutOption)?c=o.layoutOption(CCt(o,s)):c=o.layoutOption,c=c||{},o.computedLayoutOption=c;var d=Math.PI/180;s&&s.setTextConfig({local:!1,position:c.x!=null||c.y!=null?null:u.attachedPos,rotation:c.rotate!=null?c.rotate*d:u.attachedRot,offset:[c.dx||0,c.dy||0]});var f=!1;if(c.x!=null?(l.x=Ft(c.x,r),l.setStyle(\"x\",0),f=!0):(l.x=u.x,l.setStyle(\"x\",u.style.x)),c.y!=null?(l.y=Ft(c.y,n),l.setStyle(\"y\",0),f=!0):(l.y=u.y,l.setStyle(\"y\",u.style.y)),c.labelLinePoints){var h=s.getTextGuideLine();h&&(h.setShape({points:c.labelLinePoints}),f=!1)}var p=pI(l);p.needsUpdateLabelLine=f,l.rotation=c.rotate!=null?c.rotate*d:u.rotation,l.scaleX=u.scaleX,l.scaleY=u.scaleY;for(var v=0;v<Zq.length;v++){var g=Zq[v];l.setStyle(g,c[g]!=null?c[g]:u.style[g])}if(c.draggable){if(l.draggable=!0,l.cursor=\"move\",s){var y=o.seriesModel;if(o.dataIndex!=null){var b=o.seriesModel.getData(o.dataType);y=b.getItemModel(o.dataIndex)}l.on(\"drag\",a(s,y.getModel(\"labelLine\")))}}else l.off(\"drag\"),l.cursor=u.cursor}},e.prototype.layout=function(t){var r=t.getWidth(),n=t.getHeight(),a=Yve(this._labelList),i=hn(a,function(s){return s.layoutOption.moveOverlap===\"shiftX\"}),o=hn(a,function(s){return s.layoutOption.moveOverlap===\"shiftY\"});bCt(i,0,r),Xve(o,0,n);var l=hn(a,function(s){return s.layoutOption.hideOverlap});Jve(l)},e.prototype.processLabelsOverall=function(){var t=this;q(this._chartViewList,function(r){var n=r.__model,a=r.ignoreLabelLineUpdate,i=n.isAnimationEnabled();r.group.traverse(function(o){if(o.ignore&&!o.forceLabelAnimation)return!0;var l=!a,s=o.getTextContent();!l&&s&&(l=pI(s).needsUpdateLabelLine),l&&t._updateLabelLine(o,n),i&&t._animateLabels(o,n)})})},e.prototype._updateLabelLine=function(t,r){var n=t.getTextContent(),a=br(t),i=a.dataIndex;if(n&&i!=null){var o=r.getData(a.dataType),l=o.getItemModel(i),s={},u=o.getItemVisual(i,\"style\");if(u){var c=o.getVisual(\"drawType\");s.stroke=u[c]}var d=l.getModel(\"labelLine\");i$(t,o$(l),s),Jq(t,d)}},e.prototype._animateLabels=function(t,r){var n=t.getTextContent(),a=t.getTextGuideLine();if(n&&(t.forceLabelAnimation||!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!_0(t))){var i=pI(n),o=i.oldLayout,l=br(t),s=l.dataIndex,u={x:n.x,y:n.y,rotation:n.rotation},c=r.getData(l.dataType);if(o){n.attr(o);var f=t.prevStates;f&&(Mr(f,\"select\")>=0&&n.attr(i.oldLayoutSelect),Mr(f,\"emphasis\")>=0&&n.attr(i.oldLayoutEmphasis)),cn(n,u,r,s)}else if(n.attr(u),!Jg(n).valueAnimation){var d=Fr(n.style.opacity,1);n.style.opacity=0,Yn(n,{style:{opacity:d}},r,s)}if(i.oldLayout=u,n.states.select){var h=i.oldLayoutSelect={};mS(h,u,vS),mS(h,n.states.select,vS)}if(n.states.emphasis){var p=i.oldLayoutEmphasis={};mS(p,u,vS),mS(p,n.states.emphasis,vS)}Hpe(n,s,c,r,r)}if(a&&!a.ignore&&!a.invisible){var i=FCt(a),o=i.oldLayout,v={points:a.shape.points};o?(a.attr({shape:o}),cn(a,{shape:v},r)):(a.setShape(v),a.style.strokePercent=0,Yn(a,{style:{strokePercent:1}},r)),i.oldLayout=v}},e}(),mI=rn();function wCt(e){e.registerUpdateLifecycle(\"series:beforeupdate\",function(t,r,n){var a=mI(r).labelManager;a||(a=mI(r).labelManager=new SCt),a.clearLabels()}),e.registerUpdateLifecycle(\"series:layoutlabels\",function(t,r,n){var a=mI(r).labelManager;n.updatedSeries.forEach(function(i){a.addLabelsOfSeries(r.getViewOfSeriesModel(i))}),a.updateLayoutConfig(r),a.layout(r),a.processLabelsOverall()})}var vI=Math.sin,gI=Math.cos,Zve=Math.PI,Lh=Math.PI*2,ECt=180/Zve,Qve=function(){function e(){}return e.prototype.reset=function(t){this._start=!0,this._d=[],this._str=\"\",this._p=Math.pow(10,t||4)},e.prototype.moveTo=function(t,r){this._add(\"M\",t,r)},e.prototype.lineTo=function(t,r){this._add(\"L\",t,r)},e.prototype.bezierCurveTo=function(t,r,n,a,i,o){this._add(\"C\",t,r,n,a,i,o)},e.prototype.quadraticCurveTo=function(t,r,n,a){this._add(\"Q\",t,r,n,a)},e.prototype.arc=function(t,r,n,a,i,o){this.ellipse(t,r,n,n,0,a,i,o)},e.prototype.ellipse=function(t,r,n,a,i,o,l,s){var u=l-o,c=!s,d=Math.abs(u),f=pf(d-Lh)||(c?u>=Lh:-u>=Lh),h=u>0?u%Lh:u%Lh+Lh,p=!1;f?p=!0:pf(d)?p=!1:p=h>=Zve==!!c;var v=t+n*gI(o),g=r+a*vI(o);this._start&&this._add(\"M\",v,g);var y=Math.round(i*ECt);if(f){var b=1/this._p,x=(c?1:-1)*(Lh-b);this._add(\"A\",n,a,y,1,+c,t+n*gI(o+x),r+a*vI(o+x)),b>.01&&this._add(\"A\",n,a,y,0,+c,v,g)}else{var F=t+n*gI(l),S=r+a*vI(l);this._add(\"A\",n,a,y,+p,+c,F,S)}},e.prototype.rect=function(t,r,n,a){this._add(\"M\",t,r),this._add(\"l\",n,0),this._add(\"l\",0,a),this._add(\"l\",-n,0),this._add(\"Z\")},e.prototype.closePath=function(){this._d.length>0&&this._add(\"Z\")},e.prototype._add=function(t,r,n,a,i,o,l,s,u){for(var c=[],d=this._p,f=1;f<arguments.length;f++){var h=arguments[f];if(isNaN(h)){this._invalid=!0;return}c.push(Math.round(h*d)/d)}this._d.push(t+c.join(\" \")),this._start=t===\"Z\"},e.prototype.generateStr=function(){this._str=this._invalid?\"\":this._d.join(\"\"),this._d=[]},e.prototype.getStr=function(){return this._str},e}(),l$=\"none\",DCt=Math.round;function ACt(e){var t=e.fill;return t!=null&&t!==l$}function _Ct(e){var t=e.stroke;return t!=null&&t!==l$}var kP=[\"lineCap\",\"miterLimit\",\"lineJoin\"],TCt=ot(kP,function(e){return\"stroke-\"+e.toLowerCase()});function ICt(e,t,r,n){var a=t.opacity==null?1:t.opacity;if(r instanceof yi){e(\"opacity\",a);return}if(ACt(t)){var i=A2(t.fill);e(\"fill\",i.color);var o=t.fillOpacity!=null?t.fillOpacity*i.opacity*a:i.opacity*a;o<1&&e(\"fill-opacity\",o)}else e(\"fill\",l$);if(_Ct(t)){var l=A2(t.stroke);e(\"stroke\",l.color);var s=t.strokeNoScale?r.getLineScale():1,u=s?(t.lineWidth||0)/s:0,c=t.strokeOpacity!=null?t.strokeOpacity*l.opacity*a:l.opacity*a,d=t.strokeFirst;if(u!==1&&e(\"stroke-width\",u),d&&e(\"paint-order\",d?\"stroke\":\"fill\"),c<1&&e(\"stroke-opacity\",c),t.lineDash){var f=HN(r),h=f[0],p=f[1];h&&(p=DCt(p||0),e(\"stroke-dasharray\",h.join(\",\")),(p||n)&&e(\"stroke-dashoffset\",p))}for(var v=0;v<kP.length;v++){var g=kP[v];if(t[g]!==O3[g]){var y=t[g]||O3[g];y&&e(TCt[v],y)}}}}var e0e=\"http://www.w3.org/2000/svg\",t0e=\"http://www.w3.org/1999/xlink\",kCt=\"http://www.w3.org/2000/xmlns/\",RCt=\"http://www.w3.org/XML/1998/namespace\",Qq=\"ecmeta_\";function r0e(e){return document.createElementNS(e0e,e)}function ci(e,t,r,n,a){return{tag:e,attrs:r||{},children:n,text:a,key:t}}function MCt(e,t){var r=[];if(t)for(var n in t){var a=t[n],i=n;a!==!1&&(a!==!0&&a!=null&&(i+='=\"'+a+'\"'),r.push(i))}return\"<\"+e+\" \"+r.join(\" \")+\">\"}function PCt(e){return\"</\"+e+\">\"}function s$(e,t){t=t||{};var r=t.newline?`\n`:\"\";function n(a){var i=a.children,o=a.tag,l=a.attrs,s=a.text;return MCt(o,l)+(o!==\"style\"?po(s):s||\"\")+(i?\"\"+r+ot(i,function(u){return n(u)}).join(r)+r:\"\")+PCt(o)}return n(e)}function OCt(e,t,r){r=r||{};var n=r.newline?`\n`:\"\",a=\" {\"+n,i=n+\"}\",o=ot(Ur(e),function(s){return s+a+ot(Ur(e[s]),function(u){return u+\":\"+e[s][u]+\";\"}).join(n)+i}).join(n),l=ot(Ur(t),function(s){return\"@keyframes \"+s+a+ot(Ur(t[s]),function(u){return u+a+ot(Ur(t[s][u]),function(c){var d=t[s][u][c];return c===\"d\"&&(d='path(\"'+d+'\")'),c+\":\"+d+\";\"}).join(n)+i}).join(n)+i}).join(n);return!o&&!l?\"\":[\"<![CDATA[\",o,l,\"]]>\"].join(n)}function RP(e){return{zrId:e,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssStyleCache:{},cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function eX(e,t,r,n){return ci(\"svg\",\"root\",{width:e,height:t,xmlns:e0e,\"xmlns:xlink\":t0e,version:\"1.1\",baseProfile:\"full\",viewBox:n?\"0 0 \"+e+\" \"+t:!1},r)}var BCt=0;function n0e(){return BCt++}var tX={cubicIn:\"0.32,0,0.67,0\",cubicOut:\"0.33,1,0.68,1\",cubicInOut:\"0.65,0,0.35,1\",quadraticIn:\"0.11,0,0.5,0\",quadraticOut:\"0.5,1,0.89,1\",quadraticInOut:\"0.45,0,0.55,1\",quarticIn:\"0.5,0,0.75,0\",quarticOut:\"0.25,1,0.5,1\",quarticInOut:\"0.76,0,0.24,1\",quinticIn:\"0.64,0,0.78,0\",quinticOut:\"0.22,1,0.36,1\",quinticInOut:\"0.83,0,0.17,1\",sinusoidalIn:\"0.12,0,0.39,0\",sinusoidalOut:\"0.61,1,0.88,1\",sinusoidalInOut:\"0.37,0,0.63,1\",exponentialIn:\"0.7,0,0.84,0\",exponentialOut:\"0.16,1,0.3,1\",exponentialInOut:\"0.87,0,0.13,1\",circularIn:\"0.55,0,1,0.45\",circularOut:\"0,0.55,0.45,1\",circularInOut:\"0.85,0,0.15,1\"},Wh=\"transform-origin\";function NCt(e,t,r){var n=Xe({},e.shape);Xe(n,t),e.buildPath(r,n);var a=new Qve;return a.reset(Bhe(e)),r.rebuildPath(a,1),a.generateStr(),a.getStr()}function $Ct(e,t){var r=t.originX,n=t.originY;(r||n)&&(e[Wh]=r+\"px \"+n+\"px\")}var LCt={fill:\"fill\",opacity:\"opacity\",lineWidth:\"stroke-width\",lineDashOffset:\"stroke-dashoffset\"};function a0e(e,t){var r=t.zrId+\"-ani-\"+t.cssAnimIdx++;return t.cssAnims[r]=e,r}function jCt(e,t,r){var n=e.shape.paths,a={},i,o;if(q(n,function(s){var u=RP(r.zrId);u.animation=!0,gA(s,{},u,!0);var c=u.cssAnims,d=u.cssNodes,f=Ur(c),h=f.length;if(h){o=f[h-1];var p=c[o];for(var v in p){var g=p[v];a[v]=a[v]||{d:\"\"},a[v].d+=g.d||\"\"}for(var y in d){var b=d[y].animation;b.indexOf(o)>=0&&(i=b)}}}),!!i){t.d=!1;var l=a0e(a,r);return i.replace(o,l)}}function rX(e){return At(e)?tX[e]?\"cubic-bezier(\"+tX[e]+\")\":ZB(e)?e:\"\":\"\"}function gA(e,t,r,n){var a=e.animators,i=a.length,o=[];if(e instanceof ZD){var l=jCt(e,t,r);if(l)o.push(l);else if(!i)return}else if(!i)return;for(var s={},u=0;u<i;u++){var c=a[u],d=[c.getMaxTime()/1e3+\"s\"],f=rX(c.getClip().easing),h=c.getDelay();f?d.push(f):d.push(\"linear\"),h&&d.push(h/1e3+\"s\"),c.getLoop()&&d.push(\"infinite\");var p=d.join(\" \");s[p]=s[p]||[p,[]],s[p][1].push(c)}function v(b){var x=b[1],F=x.length,S={},E={},w={},D=\"animation-timing-function\";function A(K,Y,ee){for(var J=K.getTracks(),X=K.getMaxTime(),ce=0;ce<J.length;ce++){var oe=J[ce];if(oe.needsAnimate()){var ue=oe.keyframes,ie=oe.propName;if(ee&&(ie=ee(ie)),ie)for(var fe=0;fe<ue.length;fe++){var xe=ue[fe],Ee=Math.round(xe.time/X*100)+\"%\",De=rX(xe.easing),ye=xe.rawValue;(At(ye)||nn(ye))&&(Y[Ee]=Y[Ee]||{},Y[Ee][ie]=xe.rawValue,De&&(Y[Ee][D]=De))}}}}for(var _=0;_<F;_++){var I=x[_],M=I.targetName;M?M===\"shape\"&&A(I,E):!n&&A(I,S)}for(var T in S){var k={};zhe(k,e),Xe(k,S[T]);var R=Nhe(k),P=S[T][D];w[T]=R?{transform:R}:{},$Ct(w[T],k),P&&(w[T][D]=P)}var B,N=!0;for(var T in E){w[T]=w[T]||{};var O=!B,P=E[T][D];O&&(B=new gc);var z=B.len();B.reset(),w[T].d=NCt(e,E[T],B);var W=B.len();if(!O&&z!==W){N=!1;break}P&&(w[T][D]=P)}if(!N)for(var T in w)delete w[T].d;if(!n)for(var _=0;_<F;_++){var I=x[_],M=I.targetName;M===\"style\"&&A(I,w,function(J){return LCt[J]})}for(var L=Ur(w),j=!0,H,_=1;_<L.length;_++){var V=L[_-1],U=L[_];if(w[V][Wh]!==w[U][Wh]){j=!1;break}H=w[V][Wh]}if(j&&H){for(var T in w)w[T][Wh]&&delete w[T][Wh];t[Wh]=H}if(hn(L,function(K){return Ur(w[K]).length>0}).length){var Q=a0e(w,r);return Q+\" \"+b[0]+\" both\"}}for(var g in s){var l=v(s[g]);l&&o.push(l)}if(o.length){var y=r.zrId+\"-cls-\"+n0e();r.cssNodes[\".\"+y]={animation:o.join(\",\")},t.class=y}}function zCt(e,t,r){if(!e.ignore)if(e.isSilent()){var n={\"pointer-events\":\"none\"};nX(n,t,r)}else{var a=e.states.emphasis&&e.states.emphasis.style?e.states.emphasis.style:{},i=a.fill;if(!i){var o=e.style&&e.style.fill,l=e.states.select&&e.states.select.style&&e.states.select.style.fill,s=e.currentStates.indexOf(\"select\")>=0&&l||o;s&&(i=k3(s))}var u=a.lineWidth;if(u){var c=!a.strokeNoScale&&e.transform?e.transform[0]:1;u=u/c}var n={cursor:\"pointer\"};i&&(n.fill=i),a.stroke&&(n.stroke=a.stroke),u&&(n[\"stroke-width\"]=u),nX(n,t,r)}}function nX(e,t,r,n){var a=JSON.stringify(e),i=r.cssStyleCache[a];i||(i=r.zrId+\"-cls-\"+n0e(),r.cssStyleCache[a]=i,r.cssNodes[\".\"+i+\":hover\"]=e),t.class=t.class?t.class+\" \"+i:i}var L2=Math.round;function i0e(e){return e&&At(e.src)}function o0e(e){return e&&er(e.toDataURL)}function u$(e,t,r,n){ICt(function(a,i){var o=a===\"fill\"||a===\"stroke\";o&&Ohe(i)?s0e(t,e,a,n):o&&eN(i)?u0e(r,e,a,n):e[a]=i,o&&n.ssr&&i===\"none\"&&(e[\"pointer-events\"]=\"visible\")},t,r,!1),YCt(r,e,n)}function c$(e,t){var r=Whe(t);r&&(r.each(function(n,a){n!=null&&(e[(Qq+a).toLowerCase()]=n+\"\")}),t.isSilent()&&(e[Qq+\"silent\"]=\"true\"))}function aX(e){return pf(e[0]-1)&&pf(e[1])&&pf(e[2])&&pf(e[3]-1)}function HCt(e){return pf(e[4])&&pf(e[5])}function d$(e,t,r){if(t&&!(HCt(t)&&aX(t))){var n=1e4;e.transform=aX(t)?\"translate(\"+L2(t[4]*n)/n+\" \"+L2(t[5]*n)/n+\")\":Kvt(t)}}function iX(e,t,r){for(var n=e.points,a=[],i=0;i<n.length;i++)a.push(L2(n[i][0]*r)/r),a.push(L2(n[i][1]*r)/r);t.points=a.join(\" \")}function oX(e){return!e.smooth}function VCt(e){var t=ot(e,function(r){return typeof r==\"string\"?[r,r]:r});return function(r,n,a){for(var i=0;i<t.length;i++){var o=t[i],l=r[o[0]];l!=null&&(n[o[1]]=L2(l*a)/a)}}}var WCt={circle:[VCt([\"cx\",\"cy\",\"r\"])],polyline:[iX,oX],polygon:[iX,oX]};function GCt(e){for(var t=e.animators,r=0;r<t.length;r++)if(t[r].targetName===\"shape\")return!0;return!1}function l0e(e,t){var r=e.style,n=e.shape,a=WCt[e.type],i={},o=t.animation,l=\"path\",s=e.style.strokePercent,u=t.compress&&Bhe(e)||4;if(a&&!t.willUpdate&&!(a[1]&&!a[1](n))&&!(o&&GCt(e))&&!(s<1)){l=e.type;var c=Math.pow(10,u);a[0](n,i,c)}else{var d=!e.path||e.shapeChanged();e.path||e.createPathProxy();var f=e.path;d&&(f.beginPath(),e.buildPath(f,e.shape),e.pathUpdated());var h=f.getVersion(),p=e,v=p.__svgPathBuilder;(p.__svgPathVersion!==h||!v||s!==p.__svgPathStrokePercent)&&(v||(v=p.__svgPathBuilder=new Qve),v.reset(u),f.rebuildPath(v,s),v.generateStr(),p.__svgPathVersion=h,p.__svgPathStrokePercent=s),i.d=v.getStr()}return d$(i,e.transform),u$(i,r,e,t),c$(i,e),t.animation&&gA(e,i,t),t.emphasis&&zCt(e,i,t),ci(l,e.id+\"\",i)}function UCt(e,t){var r=e.style,n=r.image;if(n&&!At(n)&&(i0e(n)?n=n.src:o0e(n)&&(n=n.toDataURL())),!!n){var a=r.x||0,i=r.y||0,o=r.width,l=r.height,s={href:n,width:o,height:l};return a&&(s.x=a),i&&(s.y=i),d$(s,e.transform),u$(s,r,e,t),c$(s,e),t.animation&&gA(e,s,t),ci(\"image\",e.id+\"\",s)}}function KCt(e,t){var r=e.style,n=r.text;if(n!=null&&(n+=\"\"),!(!n||isNaN(r.x)||isNaN(r.y))){var a=r.font||Kf,i=r.x||0,o=qvt(r.y||0,VD(a),r.textBaseline),l=Yvt[r.textAlign]||r.textAlign,s={\"dominant-baseline\":\"central\",\"text-anchor\":l};if(mpe(r)){var u=\"\",c=r.fontStyle,d=ppe(r.fontSize);if(!parseFloat(d))return;var f=r.fontFamily||ohe,h=r.fontWeight;u+=\"font-size:\"+d+\";font-family:\"+f+\";\",c&&c!==\"normal\"&&(u+=\"font-style:\"+c+\";\"),h&&h!==\"normal\"&&(u+=\"font-weight:\"+h+\";\"),s.style=u}else s.style=\"font: \"+a;return n.match(/\\s/)&&(s[\"xml:space\"]=\"preserve\"),i&&(s.x=i),o&&(s.y=o),d$(s,e.transform),u$(s,r,e,t),c$(s,e),t.animation&&gA(e,s,t),ci(\"text\",e.id+\"\",s,void 0,n)}}function lX(e,t){if(e instanceof Vr)return l0e(e,t);if(e instanceof yi)return UCt(e,t);if(e instanceof ig)return KCt(e,t)}function YCt(e,t,r){var n=e.style;if(Xvt(n)){var a=Jvt(e),i=r.shadowCache,o=i[a];if(!o){var l=e.getGlobalScale(),s=l[0],u=l[1];if(!s||!u)return;var c=n.shadowOffsetX||0,d=n.shadowOffsetY||0,f=n.shadowBlur,h=A2(n.shadowColor),p=h.opacity,v=h.color,g=f/2/s,y=f/2/u,b=g+\" \"+y;o=r.zrId+\"-s\"+r.shadowIdx++,r.defs[o]=ci(\"filter\",o,{id:o,x:\"-100%\",y:\"-100%\",width:\"300%\",height:\"300%\"},[ci(\"feDropShadow\",\"\",{dx:c/s,dy:d/u,stdDeviation:b,\"flood-color\":v,\"flood-opacity\":p})]),i[a]=o}t.filter=HD(o)}}function s0e(e,t,r,n){var a=e[r],i,o={gradientUnits:a.global?\"userSpaceOnUse\":\"objectBoundingBox\"};if(Mhe(a))i=\"linearGradient\",o.x1=a.x,o.y1=a.y,o.x2=a.x2,o.y2=a.y2;else if(Phe(a))i=\"radialGradient\",o.cx=Fr(a.x,.5),o.cy=Fr(a.y,.5),o.r=Fr(a.r,.5);else return;for(var l=a.colorStops,s=[],u=0,c=l.length;u<c;++u){var d=zM(l[u].offset)*100+\"%\",f=l[u].color,h=A2(f),p=h.color,v=h.opacity,g={offset:d};g[\"stop-color\"]=p,v<1&&(g[\"stop-opacity\"]=v),s.push(ci(\"stop\",u+\"\",g))}var y=ci(i,\"\",o,s),b=s$(y),x=n.gradientCache,F=x[b];F||(F=n.zrId+\"-g\"+n.gradientIdx++,x[b]=F,o.id=F,n.defs[F]=ci(i,F,o,s)),t[r]=HD(F)}function u0e(e,t,r,n){var a=e.style[r],i=e.getBoundingRect(),o={},l=a.repeat,s=l===\"no-repeat\",u=l===\"repeat-x\",c=l===\"repeat-y\",d;if(Rhe(a)){var f=a.imageWidth,h=a.imageHeight,p=void 0,v=a.image;if(At(v)?p=v:i0e(v)?p=v.src:o0e(v)&&(p=v.toDataURL()),typeof Image>\"u\"){var g=\"Image width/height must been given explictly in svg-ssr renderer.\";Fo(f,g),Fo(h,g)}else if(f==null||h==null){var y=function(_,I){if(_){var M=_.elm,T=f||I.width,k=h||I.height;_.tag===\"pattern\"&&(u?(k=1,T/=i.width):c&&(T=1,k/=i.height)),_.attrs.width=T,_.attrs.height=k,M&&(M.setAttribute(\"width\",T),M.setAttribute(\"height\",k))}},b=uN(p,null,e,function(_){s||y(E,_),y(d,_)});b&&b.width&&b.height&&(f=f||b.width,h=h||b.height)}d=ci(\"image\",\"img\",{href:p,width:f,height:h}),o.width=f,o.height=h}else a.svgElement&&(d=lr(a.svgElement),o.width=a.svgWidth,o.height=a.svgHeight);if(d){var x,F;s?x=F=1:u?(F=1,x=o.width/i.width):c?(x=1,F=o.height/i.height):o.patternUnits=\"userSpaceOnUse\",x!=null&&!isNaN(x)&&(o.width=x),F!=null&&!isNaN(F)&&(o.height=F);var S=Nhe(a);S&&(o.patternTransform=S);var E=ci(\"pattern\",\"\",o,[d]),w=s$(E),D=n.patternCache,A=D[w];A||(A=n.zrId+\"-p\"+n.patternIdx++,D[w]=A,o.id=A,E=n.defs[A]=ci(\"pattern\",A,o,[d])),t[r]=HD(A)}}function qCt(e,t,r){var n=r.clipPathCache,a=r.defs,i=n[e.id];if(!i){i=r.zrId+\"-c\"+r.clipPathIdx++;var o={id:i};n[e.id]=i,a[i]=ci(\"clipPath\",i,o,[l0e(e,r)])}t[\"clip-path\"]=HD(i)}function sX(e){return document.createTextNode(e)}function tp(e,t,r){e.insertBefore(t,r)}function uX(e,t){e.removeChild(t)}function cX(e,t){e.appendChild(t)}function c0e(e){return e.parentNode}function d0e(e){return e.nextSibling}function yI(e,t){e.textContent=t}var dX=58,XCt=120,JCt=ci(\"\",\"\");function MP(e){return e===void 0}function Vu(e){return e!==void 0}function ZCt(e,t,r){for(var n={},a=t;a<=r;++a){var i=e[a].key;i!==void 0&&(n[i]=a)}return n}function Ey(e,t){var r=e.key===t.key,n=e.tag===t.tag;return n&&r}function j2(e){var t,r=e.children,n=e.tag;if(Vu(n)){var a=e.elm=r0e(n);if(f$(JCt,e),nt(r))for(t=0;t<r.length;++t){var i=r[t];i!=null&&cX(a,j2(i))}else Vu(e.text)&&!ir(e.text)&&cX(a,sX(e.text))}else e.elm=sX(e.text);return e.elm}function f0e(e,t,r,n,a){for(;n<=a;++n){var i=r[n];i!=null&&tp(e,j2(i),t)}}function r4(e,t,r,n){for(;r<=n;++r){var a=t[r];if(a!=null)if(Vu(a.tag)){var i=c0e(a.elm);uX(i,a.elm)}else uX(e,a.elm)}}function f$(e,t){var r,n=t.elm,a=e&&e.attrs||{},i=t.attrs||{};if(a!==i){for(r in i){var o=i[r],l=a[r];l!==o&&(o===!0?n.setAttribute(r,\"\"):o===!1?n.removeAttribute(r):r===\"style\"?n.style.cssText=o:r.charCodeAt(0)!==XCt?n.setAttribute(r,o):r===\"xmlns:xlink\"||r===\"xmlns\"?n.setAttributeNS(kCt,r,o):r.charCodeAt(3)===dX?n.setAttributeNS(RCt,r,o):r.charCodeAt(5)===dX?n.setAttributeNS(t0e,r,o):n.setAttribute(r,o))}for(r in a)r in i||n.removeAttribute(r)}}function QCt(e,t,r){for(var n=0,a=0,i=t.length-1,o=t[0],l=t[i],s=r.length-1,u=r[0],c=r[s],d,f,h,p;n<=i&&a<=s;)o==null?o=t[++n]:l==null?l=t[--i]:u==null?u=r[++a]:c==null?c=r[--s]:Ey(o,u)?($v(o,u),o=t[++n],u=r[++a]):Ey(l,c)?($v(l,c),l=t[--i],c=r[--s]):Ey(o,c)?($v(o,c),tp(e,o.elm,d0e(l.elm)),o=t[++n],c=r[--s]):Ey(l,u)?($v(l,u),tp(e,l.elm,o.elm),l=t[--i],u=r[++a]):(MP(d)&&(d=ZCt(t,n,i)),f=d[u.key],MP(f)?tp(e,j2(u),o.elm):(h=t[f],h.tag!==u.tag?tp(e,j2(u),o.elm):($v(h,u),t[f]=void 0,tp(e,h.elm,o.elm))),u=r[++a]);(n<=i||a<=s)&&(n>i?(p=r[s+1]==null?null:r[s+1].elm,f0e(e,p,r,a,s)):r4(e,t,n,i))}function $v(e,t){var r=t.elm=e.elm,n=e.children,a=t.children;e!==t&&(f$(e,t),MP(t.text)?Vu(n)&&Vu(a)?n!==a&&QCt(r,n,a):Vu(a)?(Vu(e.text)&&yI(r,\"\"),f0e(r,null,a,0,a.length-1)):Vu(n)?r4(r,n,0,n.length-1):Vu(e.text)&&yI(r,\"\"):e.text!==t.text&&(Vu(n)&&r4(r,n,0,n.length-1),yI(r,t.text)))}function eFt(e,t){if(Ey(e,t))$v(e,t);else{var r=e.elm,n=c0e(r);j2(t),n!==null&&(tp(n,t.elm,d0e(r)),r4(n,[e],0,0))}return t}var tFt=0,rFt=function(){function e(t,r,n){if(this.type=\"svg\",this.refreshHover=fX(),this.configLayer=fX(),this.storage=r,this._opts=n=Xe({},n),this.root=t,this._id=\"zr\"+tFt++,this._oldVNode=eX(n.width,n.height),t&&!n.ssr){var a=this._viewport=document.createElement(\"div\");a.style.cssText=\"position:relative;overflow:hidden\";var i=this._svgDom=this._oldVNode.elm=r0e(\"svg\");f$(null,this._oldVNode),a.appendChild(i),t.appendChild(a)}this.resize(n.width,n.height)}return e.prototype.getType=function(){return this.type},e.prototype.getViewportRoot=function(){return this._viewport},e.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},e.prototype.getSvgDom=function(){return this._svgDom},e.prototype.refresh=function(){if(this.root){var t=this.renderToVNode({willUpdate:!0});t.attrs.style=\"position:absolute;left:0;top:0;user-select:none\",eFt(this._oldVNode,t),this._oldVNode=t}},e.prototype.renderOneToVNode=function(t){return lX(t,RP(this._id))},e.prototype.renderToVNode=function(t){t=t||{};var r=this.storage.getDisplayList(!0),n=this._width,a=this._height,i=RP(this._id);i.animation=t.animation,i.willUpdate=t.willUpdate,i.compress=t.compress,i.emphasis=t.emphasis,i.ssr=this._opts.ssr;var o=[],l=this._bgVNode=nFt(n,a,this._backgroundColor,i);l&&o.push(l);var s=t.compress?null:this._mainVNode=ci(\"g\",\"main\",{},[]);this._paintList(r,i,s?s.children:o),s&&o.push(s);var u=ot(Ur(i.defs),function(f){return i.defs[f]});if(u.length&&o.push(ci(\"defs\",\"defs\",{},u)),t.animation){var c=OCt(i.cssNodes,i.cssAnims,{newline:!0});if(c){var d=ci(\"style\",\"stl\",{},[],c);o.push(d)}}return eX(n,a,o,t.useViewBox)},e.prototype.renderToString=function(t){return t=t||{},s$(this.renderToVNode({animation:Fr(t.cssAnimation,!0),emphasis:Fr(t.cssEmphasis,!0),willUpdate:!1,compress:!0,useViewBox:Fr(t.useViewBox,!0)}),{newline:!0})},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t},e.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},e.prototype._paintList=function(t,r,n){for(var a=t.length,i=[],o=0,l,s,u=0,c=0;c<a;c++){var d=t[c];if(!d.invisible){var f=d.__clipPaths,h=f&&f.length||0,p=s&&s.length||0,v=void 0;for(v=Math.max(h-1,p-1);v>=0&&!(f&&s&&f[v]===s[v]);v--);for(var g=p-1;g>v;g--)o--,l=i[o-1];for(var y=v+1;y<h;y++){var b={};qCt(f[y],b,r);var x=ci(\"g\",\"clip-g-\"+u++,b,[]);(l?l.children:n).push(x),i[o++]=x,l=x}s=f;var F=lX(d,r);F&&(l?l.children:n).push(F)}}},e.prototype.resize=function(t,r){var n=this._opts,a=this.root,i=this._viewport;if(t!=null&&(n.width=t),r!=null&&(n.height=r),a&&i&&(i.style.display=\"none\",t=l0(a,0,n),r=l0(a,1,n),i.style.display=\"\"),this._width!==t||this._height!==r){if(this._width=t,this._height=r,i){var o=i.style;o.width=t+\"px\",o.height=r+\"px\"}if(eN(this._backgroundColor))this.refresh();else{var l=this._svgDom;l&&(l.setAttribute(\"width\",t),l.setAttribute(\"height\",r));var s=this._bgVNode&&this._bgVNode.elm;s&&(s.setAttribute(\"width\",t),s.setAttribute(\"height\",r))}}},e.prototype.getWidth=function(){return this._width},e.prototype.getHeight=function(){return this._height},e.prototype.dispose=function(){this.root&&(this.root.innerHTML=\"\"),this._svgDom=this._viewport=this.storage=this._oldVNode=this._bgVNode=this._mainVNode=null},e.prototype.clear=function(){this._svgDom&&(this._svgDom.innerHTML=null),this._oldVNode=null},e.prototype.toDataURL=function(t){var r=this.renderToString(),n=\"data:image/svg+xml;\";return t?(r=Qvt(r),r&&n+\"base64,\"+r):n+\"charset=UTF-8,\"+encodeURIComponent(r)},e}();function fX(e){return function(){}}function nFt(e,t,r,n){var a;if(r&&r!==\"none\")if(a=ci(\"rect\",\"bg\",{width:e,height:t,x:\"0\",y:\"0\"}),Ohe(r))s0e({fill:r},a.attrs,\"fill\",n);else if(eN(r))u0e({style:{fill:r},dirty:ga,getBoundingRect:function(){return{width:e,height:t}}},a.attrs,\"fill\",n);else{var i=A2(r),o=i.color,l=i.opacity;a.attrs.fill=o,l<1&&(a.attrs[\"fill-opacity\"]=l)}return a}function aFt(e){e.registerPainter(\"svg\",rFt)}function hX(e,t,r){var n=xu.createCanvas(),a=t.getWidth(),i=t.getHeight(),o=n.style;return o&&(o.position=\"absolute\",o.left=\"0\",o.top=\"0\",o.width=a+\"px\",o.height=i+\"px\",n.setAttribute(\"data-zr-dom-id\",e)),n.width=a*r,n.height=i*r,n}var bI=function(e){Re(t,e);function t(r,n,a){var i=e.call(this)||this;i.motionBlur=!1,i.lastFrameAlpha=.7,i.dpr=1,i.virtual=!1,i.config={},i.incremental=!1,i.zlevel=0,i.maxRepaintRectCount=5,i.__dirty=!0,i.__firstTimePaint=!0,i.__used=!1,i.__drawIndex=0,i.__startIndex=0,i.__endIndex=0,i.__prevStartIndex=null,i.__prevEndIndex=null;var o;a=a||M3,typeof r==\"string\"?o=hX(r,n,a):ir(r)&&(o=r,r=o.id),i.id=r,i.dom=o;var l=o.style;return l&&(qB(o),o.onselectstart=function(){return!1},l.padding=\"0\",l.margin=\"0\",l.borderWidth=\"0\"),i.painter=n,i.dpr=a,i}return t.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},t.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},t.prototype.initContext=function(){this.ctx=this.dom.getContext(\"2d\"),this.ctx.dpr=this.dpr},t.prototype.setUnpainted=function(){this.__firstTimePaint=!0},t.prototype.createBackBuffer=function(){var r=this.dpr;this.domBack=hX(\"back-\"+this.id,this.painter,r),this.ctxBack=this.domBack.getContext(\"2d\"),r!==1&&this.ctxBack.scale(r,r)},t.prototype.createRepaintRects=function(r,n,a,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var o=[],l=this.maxRepaintRectCount,s=!1,u=new Ir(0,0,0,0);function c(b){if(!(!b.isFinite()||b.isZero()))if(o.length===0){var x=new Ir(0,0,0,0);x.copy(b),o.push(x)}else{for(var F=!1,S=1/0,E=0,w=0;w<o.length;++w){var D=o[w];if(D.intersect(b)){var A=new Ir(0,0,0,0);A.copy(D),A.union(b),o[w]=A,F=!0;break}else if(s){u.copy(b),u.union(D);var _=b.width*b.height,I=D.width*D.height,M=u.width*u.height,T=M-_-I;T<S&&(S=T,E=w)}}if(s&&(o[E].union(b),F=!0),!F){var x=new Ir(0,0,0,0);x.copy(b),o.push(x)}s||(s=o.length>=l)}}for(var d=this.__startIndex;d<this.__endIndex;++d){var f=r[d];if(f){var h=f.shouldBePainted(a,i,!0,!0),p=f.__isRendered&&(f.__dirty&_l||!h)?f.getPrevPaintRect():null;p&&c(p);var v=h&&(f.__dirty&_l||!f.__isRendered)?f.getPaintRect():null;v&&c(v)}}for(var d=this.__prevStartIndex;d<this.__prevEndIndex;++d){var f=n[d],h=f&&f.shouldBePainted(a,i,!0,!0);if(f&&(!h||!f.__zr)&&f.__isRendered){var p=f.getPrevPaintRect();p&&c(p)}}var g;do{g=!1;for(var d=0;d<o.length;){if(o[d].isZero()){o.splice(d,1);continue}for(var y=d+1;y<o.length;)o[d].intersect(o[y])?(g=!0,o[d].union(o[y]),o.splice(y,1)):y++;d++}}while(g);return this._paintRects=o,o},t.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},t.prototype.resize=function(r,n){var a=this.dpr,i=this.dom,o=i.style,l=this.domBack;o&&(o.width=r+\"px\",o.height=n+\"px\"),i.width=r*a,i.height=n*a,l&&(l.width=r*a,l.height=n*a,a!==1&&this.ctxBack.scale(a,a))},t.prototype.clear=function(r,n,a){var i=this.dom,o=this.ctx,l=i.width,s=i.height;n=n||this.clearColor;var u=this.motionBlur&&!r,c=this.lastFrameAlpha,d=this.dpr,f=this;u&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation=\"copy\",this.ctxBack.drawImage(i,0,0,l/d,s/d));var h=this.domBack;function p(v,g,y,b){if(o.clearRect(v,g,y,b),n&&n!==\"transparent\"){var x=void 0;if(qx(n)){var F=n.global||n.__width===y&&n.__height===b;x=F&&n.__canvasGradient||FP(o,n,{x:0,y:0,width:y,height:b}),n.__canvasGradient=x,n.__width=y,n.__height=b}else dhe(n)&&(n.scaleX=n.scaleX||d,n.scaleY=n.scaleY||d,x=SP(o,n,{dirty:function(){f.setUnpainted(),f.painter.refresh()}}));o.save(),o.fillStyle=x||n,o.fillRect(v,g,y,b),o.restore()}u&&(o.save(),o.globalAlpha=c,o.drawImage(h,v,g,y,b),o.restore())}!a||u?p(0,0,l,s):a.length&&q(a,function(v){p(v.x*d,v.y*d,v.width*d,v.height*d)})},t}(Rs),pX=1e5,jh=314159,gS=.01,iFt=.001;function oFt(e){return e?e.__builtin__?!0:!(typeof e.resize!=\"function\"||typeof e.refresh!=\"function\"):!1}function lFt(e,t){var r=document.createElement(\"div\");return r.style.cssText=[\"position:relative\",\"width:\"+e+\"px\",\"height:\"+t+\"px\",\"padding:0\",\"margin:0\",\"border-width:0\"].join(\";\")+\";\",r}var sFt=function(){function e(t,r,n,a){this.type=\"canvas\",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type=\"canvas\";var i=!t.nodeName||t.nodeName.toUpperCase()===\"CANVAS\";this._opts=n=Xe({},n||{}),this.dpr=n.devicePixelRatio||M3,this._singleCanvas=i,this.root=t;var o=t.style;o&&(qB(t),t.innerHTML=\"\"),this.storage=r;var l=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(i){var c=t,d=c.width,f=c.height;n.width!=null&&(d=n.width),n.height!=null&&(f=n.height),this.dpr=n.devicePixelRatio||1,c.width=d*this.dpr,c.height=f*this.dpr,this._width=d,this._height=f;var h=new bI(c,this,this.dpr);h.__builtin__=!0,h.initContext(),s[jh]=h,h.zlevel=jh,l.push(jh),this._domRoot=t}else{this._width=l0(t,0,n),this._height=l0(t,1,n);var u=this._domRoot=lFt(this._width,this._height);t.appendChild(u)}}return e.prototype.getType=function(){return\"canvas\"},e.prototype.isSingleCanvas=function(){return this._singleCanvas},e.prototype.getViewportRoot=function(){return this._domRoot},e.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},e.prototype.refresh=function(t){var r=this.storage.getDisplayList(!0),n=this._prevDisplayList,a=this._zlevelList;this._redrawId=Math.random(),this._paintList(r,n,t,this._redrawId);for(var i=0;i<a.length;i++){var o=a[i],l=this._layers[o];if(!l.__builtin__&&l.refresh){var s=i===0?this._backgroundColor:null;l.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=r.slice()),this},e.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},e.prototype._paintHoverList=function(t){var r=t.length,n=this._hoverlayer;if(n&&n.clear(),!!r){for(var a={inHover:!0,viewWidth:this._width,viewHeight:this._height},i,o=0;o<r;o++){var l=t[o];l.__inHover&&(n||(n=this._hoverlayer=this.getLayer(pX)),i||(i=n.ctx,i.save()),yp(i,l,a,o===r-1))}i&&i.restore()}},e.prototype.getHoverLayer=function(){return this.getLayer(pX)},e.prototype.paintOne=function(t,r){VN(t,r)},e.prototype._paintList=function(t,r,n,a){if(this._redrawId===a){n=n||!1,this._updateLayerStatus(t);var i=this._doPaintList(t,r,n),o=i.finished,l=i.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),l&&this._paintHoverList(t),o)this.eachLayer(function(u){u.afterBrush&&u.afterBrush()});else{var s=this;A3(function(){s._paintList(t,r,n,a)})}}},e.prototype._compositeManually=function(){var t=this.getLayer(jh).ctx,r=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,r,n),this.eachBuiltinLayer(function(a){a.virtual&&t.drawImage(a.dom,0,0,r,n)})},e.prototype._doPaintList=function(t,r,n){for(var a=this,i=[],o=this._opts.useDirtyRect,l=0;l<this._zlevelList.length;l++){var s=this._zlevelList[l],u=this._layers[s];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&i.push(u)}for(var c=!0,d=!1,f=function(v){var g=i[v],y=g.ctx,b=o&&g.createRepaintRects(t,r,h._width,h._height),x=n?g.__startIndex:g.__drawIndex,F=!n&&g.incremental&&Date.now,S=F&&Date.now(),E=g.zlevel===h._zlevelList[0]?h._backgroundColor:null;if(g.__startIndex===g.__endIndex)g.clear(!1,E,b);else if(x===g.__startIndex){var w=t[x];(!w.incremental||!w.notClear||n)&&g.clear(!1,E,b)}x===-1&&(console.error(\"For some unknown reason. drawIndex is -1\"),x=g.__startIndex);var D,A=function(T){var k={inHover:!1,allClipped:!1,prevEl:null,viewWidth:a._width,viewHeight:a._height};for(D=x;D<g.__endIndex;D++){var R=t[D];if(R.__inHover&&(d=!0),a._doPaintEl(R,g,o,T,k,D===g.__endIndex-1),F){var P=Date.now()-S;if(P>15)break}}k.prevElClipPaths&&y.restore()};if(b)if(b.length===0)D=g.__endIndex;else for(var _=h.dpr,I=0;I<b.length;++I){var M=b[I];y.save(),y.beginPath(),y.rect(M.x*_,M.y*_,M.width*_,M.height*_),y.clip(),A(M),y.restore()}else y.save(),A(),y.restore();g.__drawIndex=D,g.__drawIndex<g.__endIndex&&(c=!1)},h=this,p=0;p<i.length;p++)f(p);return zr.wxa&&q(this._layers,function(v){v&&v.ctx&&v.ctx.draw&&v.ctx.draw()}),{finished:c,needsRefreshHover:d}},e.prototype._doPaintEl=function(t,r,n,a,i,o){var l=r.ctx;if(n){var s=t.getPaintRect();(!a||s&&s.intersect(a))&&(yp(l,t,i,o),t.setPrevPaintRect(s))}else yp(l,t,i,o)},e.prototype.getLayer=function(t,r){this._singleCanvas&&!this._needsManuallyCompositing&&(t=jh);var n=this._layers[t];return n||(n=new bI(\"zr_\"+t,this,this.dpr),n.zlevel=t,n.__builtin__=!0,this._layerConfig[t]?Er(n,this._layerConfig[t],!0):this._layerConfig[t-gS]&&Er(n,this._layerConfig[t-gS],!0),r&&(n.virtual=r),this.insertLayer(t,n),n.initContext()),n},e.prototype.insertLayer=function(t,r){var n=this._layers,a=this._zlevelList,i=a.length,o=this._domRoot,l=null,s=-1;if(!n[t]&&oFt(r)){if(i>0&&t>a[0]){for(s=0;s<i-1&&!(a[s]<t&&a[s+1]>t);s++);l=n[a[s]]}if(a.splice(s+1,0,t),n[t]=r,!r.virtual)if(l){var u=l.dom;u.nextSibling?o.insertBefore(r.dom,u.nextSibling):o.appendChild(r.dom)}else o.firstChild?o.insertBefore(r.dom,o.firstChild):o.appendChild(r.dom);r.painter||(r.painter=this)}},e.prototype.eachLayer=function(t,r){for(var n=this._zlevelList,a=0;a<n.length;a++){var i=n[a];t.call(r,this._layers[i],i)}},e.prototype.eachBuiltinLayer=function(t,r){for(var n=this._zlevelList,a=0;a<n.length;a++){var i=n[a],o=this._layers[i];o.__builtin__&&t.call(r,o,i)}},e.prototype.eachOtherLayer=function(t,r){for(var n=this._zlevelList,a=0;a<n.length;a++){var i=n[a],o=this._layers[i];o.__builtin__||t.call(r,o,i)}},e.prototype.getLayers=function(){return this._layers},e.prototype._updateLayerStatus=function(t){this.eachBuiltinLayer(function(d,f){d.__dirty=d.__used=!1});function r(d){i&&(i.__endIndex!==d&&(i.__dirty=!0),i.__endIndex=d)}if(this._singleCanvas)for(var n=1;n<t.length;n++){var a=t[n];if(a.zlevel!==t[n-1].zlevel||a.incremental){this._needsManuallyCompositing=!0;break}}var i=null,o=0,l,s;for(s=0;s<t.length;s++){var a=t[s],u=a.zlevel,c=void 0;l!==u&&(l=u,o=0),a.incremental?(c=this.getLayer(u+iFt,this._needsManuallyCompositing),c.incremental=!0,o=1):c=this.getLayer(u+(o>0?gS:0),this._needsManuallyCompositing),c.__builtin__||BD(\"ZLevel \"+u+\" has been used by unkown layer \"+c.id),c!==i&&(c.__used=!0,c.__startIndex!==s&&(c.__dirty=!0),c.__startIndex=s,c.incremental?c.__drawIndex=-1:c.__drawIndex=s,r(s),i=c),a.__dirty&_l&&!a.__inHover&&(c.__dirty=!0,c.incremental&&c.__drawIndex<0&&(c.__drawIndex=s))}r(s),this.eachBuiltinLayer(function(d,f){!d.__used&&d.getElementCount()>0&&(d.__dirty=!0,d.__startIndex=d.__endIndex=d.__drawIndex=0),d.__dirty&&d.__drawIndex<0&&(d.__drawIndex=d.__startIndex)})},e.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},e.prototype._clearLayer=function(t){t.clear()},e.prototype.setBackgroundColor=function(t){this._backgroundColor=t,q(this._layers,function(r){r.setUnpainted()})},e.prototype.configLayer=function(t,r){if(r){var n=this._layerConfig;n[t]?Er(n[t],r,!0):n[t]=r;for(var a=0;a<this._zlevelList.length;a++){var i=this._zlevelList[a];if(i===t||i===t+gS){var o=this._layers[i];Er(o,n[t],!0)}}}},e.prototype.delLayer=function(t){var r=this._layers,n=this._zlevelList,a=r[t];a&&(a.dom.parentNode.removeChild(a.dom),delete r[t],n.splice(Mr(n,t),1))},e.prototype.resize=function(t,r){if(this._domRoot.style){var n=this._domRoot;n.style.display=\"none\";var a=this._opts,i=this.root;if(t!=null&&(a.width=t),r!=null&&(a.height=r),t=l0(i,0,a),r=l0(i,1,a),n.style.display=\"\",this._width!==t||r!==this._height){n.style.width=t+\"px\",n.style.height=r+\"px\";for(var o in this._layers)this._layers.hasOwnProperty(o)&&this._layers[o].resize(t,r);this.refresh(!0)}this._width=t,this._height=r}else{if(t==null||r==null)return;this._width=t,this._height=r,this.getLayer(jh).resize(t,r)}return this},e.prototype.clearLayer=function(t){var r=this._layers[t];r&&r.clear()},e.prototype.dispose=function(){this.root.innerHTML=\"\",this.root=this.storage=this._domRoot=this._layers=null},e.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[jh].dom;var r=new bI(\"image\",this,t.pixelRatio||this.dpr);r.initContext(),r.clear(!1,t.backgroundColor||this._backgroundColor);var n=r.ctx;if(t.pixelRatio<=this.dpr){this.refresh();var a=r.dom.width,i=r.dom.height;this.eachLayer(function(d){d.__builtin__?n.drawImage(d.dom,0,0,a,i):d.renderToCanvas&&(n.save(),d.renderToCanvas(n),n.restore())})}else for(var o={inHover:!1,viewWidth:this._width,viewHeight:this._height},l=this.storage.getDisplayList(!0),s=0,u=l.length;s<u;s++){var c=l[s];yp(n,c,o,s===u-1)}return r.dom},e.prototype.getWidth=function(){return this._width},e.prototype.getHeight=function(){return this._height},e}();function uFt(e){e.registerPainter(\"canvas\",sFt)}var cFt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r}return t.prototype.getInitialData=function(r){return wc(null,this,{useEncodeDefaulter:!0})},t.prototype.getLegendIcon=function(r){var n=new pr,a=_a(\"line\",0,r.itemHeight/2,r.itemWidth,0,r.lineStyle.stroke,!1);n.add(a),a.setStyle(r.lineStyle);var i=this.getData().getVisual(\"symbol\"),o=this.getData().getVisual(\"symbolRotate\"),l=i===\"none\"?\"circle\":i,s=r.itemHeight*.8,u=_a(l,(r.itemWidth-s)/2,(r.itemHeight-s)/2,s,s,r.itemStyle.fill);n.add(u),u.setStyle(r.itemStyle);var c=r.iconRotate===\"inherit\"?o:r.iconRotate||0;return u.rotation=c*Math.PI/180,u.setOrigin([r.itemWidth/2,r.itemHeight/2]),l.indexOf(\"empty\")>-1&&(u.style.stroke=u.style.fill,u.style.fill=\"#fff\",u.style.lineWidth=2),n},t.type=\"series.line\",t.dependencies=[\"grid\",\"polar\"],t.defaultOption={z:3,coordinateSystem:\"cartesian2d\",legendHoverLink:!0,clip:!0,label:{position:\"top\"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:\"solid\"},emphasis:{scale:!0},step:!1,smooth:!1,smoothMonotone:null,symbol:\"emptyCircle\",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:\"auto\",connectNulls:!1,sampling:\"none\",animationEasing:\"linear\",progressive:0,hoverLayerThreshold:1/0,universalTransition:{divideShape:\"clone\"},triggerLineEvent:!1},t}(_n);function ug(e,t){var r=e.mapDimensionsAll(\"defaultedLabel\"),n=r.length;if(n===1){var a=lg(e,t,r[0]);return a!=null?a+\"\":null}else if(n){for(var i=[],o=0;o<r.length;o++)i.push(lg(e,t,r[o]));return i.join(\" \")}}function h0e(e,t){var r=e.mapDimensionsAll(\"defaultedLabel\");if(!nt(t))return t+\"\";for(var n=[],a=0;a<r.length;a++){var i=e.getDimensionIndex(r[a]);i>=0&&n.push(t[i])}return n.join(\" \")}var uC=function(e){Re(t,e);function t(r,n,a,i){var o=e.call(this)||this;return o.updateData(r,n,a,i),o}return t.prototype._createSymbol=function(r,n,a,i,o){this.removeAll();var l=_a(r,-1,-1,2,2,null,o);l.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),l.drift=dFt,this._symbolType=r,this.add(l)},t.prototype.stopSymbolAnimation=function(r){this.childAt(0).stopAnimation(null,r)},t.prototype.getSymbolType=function(){return this._symbolType},t.prototype.getSymbolPath=function(){return this.childAt(0)},t.prototype.highlight=function(){fd(this.childAt(0))},t.prototype.downplay=function(){hd(this.childAt(0))},t.prototype.setZ=function(r,n){var a=this.childAt(0);a.zlevel=r,a.z=n},t.prototype.setDraggable=function(r,n){var a=this.childAt(0);a.draggable=r,a.cursor=!n&&r?\"move\":a.cursor},t.prototype.updateData=function(r,n,a,i){this.silent=!1;var o=r.getItemVisual(n,\"symbol\")||\"circle\",l=r.hostModel,s=t.getSymbolSize(r,n),u=o!==this._symbolType,c=i&&i.disableAnimation;if(u){var d=r.getItemVisual(n,\"symbolKeepAspect\");this._createSymbol(o,r,n,s,d)}else{var f=this.childAt(0);f.silent=!1;var h={scaleX:s[0]/2,scaleY:s[1]/2};c?f.attr(h):cn(f,h,l,n),Su(f)}if(this._updateCommon(r,n,s,a,i),u){var f=this.childAt(0);if(!c){var h={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:f.style.opacity}};f.scaleX=f.scaleY=0,f.style.opacity=0,Yn(f,h,l,n)}}c&&this.childAt(0).stopAnimation(\"leave\")},t.prototype._updateCommon=function(r,n,a,i,o){var l=this.childAt(0),s=r.hostModel,u,c,d,f,h,p,v,g,y;if(i&&(u=i.emphasisItemStyle,c=i.blurItemStyle,d=i.selectItemStyle,f=i.focus,h=i.blurScope,v=i.labelStatesModels,g=i.hoverScale,y=i.cursorStyle,p=i.emphasisDisabled),!i||r.hasItemOption){var b=i&&i.itemModel?i.itemModel:r.getItemModel(n),x=b.getModel(\"emphasis\");u=x.getModel(\"itemStyle\").getItemStyle(),d=b.getModel([\"select\",\"itemStyle\"]).getItemStyle(),c=b.getModel([\"blur\",\"itemStyle\"]).getItemStyle(),f=x.get(\"focus\"),h=x.get(\"blurScope\"),p=x.get(\"disabled\"),v=vi(b),g=x.getShallow(\"scale\"),y=b.getShallow(\"cursor\")}var F=r.getItemVisual(n,\"symbolRotate\");l.attr(\"rotation\",(F||0)*Math.PI/180||0);var S=jm(r.getItemVisual(n,\"symbolOffset\"),a);S&&(l.x=S[0],l.y=S[1]),y&&l.attr(\"cursor\",y);var E=r.getItemVisual(n,\"style\"),w=E.fill;if(l instanceof yi){var D=l.style;l.useStyle(Xe({image:D.image,x:D.x,y:D.y,width:D.width,height:D.height},E))}else l.__isEmptyBrush?l.useStyle(Xe({},E)):l.useStyle(E),l.style.decal=null,l.setColor(w,o&&o.symbolInnerColor),l.style.strokeNoScale=!0;var A=r.getItemVisual(n,\"liftZ\"),_=this._z2;A!=null?_==null&&(this._z2=l.z2,l.z2+=A):_!=null&&(l.z2=_,this._z2=null);var I=o&&o.useNameLabel;Xi(l,v,{labelFetcher:s,labelDataIndex:n,defaultText:M,inheritColor:w,defaultOpacity:E.opacity});function M(R){return I?r.getName(R):ug(r,R)}this._sizeX=a[0]/2,this._sizeY=a[1]/2;var T=l.ensureState(\"emphasis\");T.style=u,l.ensureState(\"select\").style=d,l.ensureState(\"blur\").style=c;var k=g==null||g===!0?Math.max(1.1,3/this._sizeY):isFinite(g)&&g>0?+g:1;T.scaleX=this._sizeX*k,T.scaleY=this._sizeY*k,this.setSymbolScale(1),sa(this,f,h,p)},t.prototype.setSymbolScale=function(r){this.scaleX=this.scaleY=r},t.prototype.fadeOut=function(r,n,a){var i=this.childAt(0),o=br(this).dataIndex,l=a&&a.animation;if(this.silent=i.silent=!0,a&&a.fadeLabel){var s=i.getTextContent();s&&qf(s,{style:{opacity:0}},n,{dataIndex:o,removeOpt:l,cb:function(){i.removeTextContent()}})}else i.removeTextContent();qf(i,{style:{opacity:0},scaleX:0,scaleY:0},n,{dataIndex:o,cb:r,removeOpt:l})},t.getSymbolSize=function(r,n){return a1(r.getItemVisual(n,\"symbolSize\"))},t}(pr);function dFt(e,t){this.parent.drift(e,t)}function xI(e,t,r,n){return t&&!isNaN(t[0])&&!isNaN(t[1])&&!(n.isIgnore&&n.isIgnore(r))&&!(n.clipShape&&!n.clipShape.contain(t[0],t[1]))&&e.getItemVisual(r,\"symbol\")!==\"none\"}function mX(e){return e!=null&&!ir(e)&&(e={isIgnore:e}),e||{}}function vX(e){var t=e.hostModel,r=t.getModel(\"emphasis\");return{emphasisItemStyle:r.getModel(\"itemStyle\").getItemStyle(),blurItemStyle:t.getModel([\"blur\",\"itemStyle\"]).getItemStyle(),selectItemStyle:t.getModel([\"select\",\"itemStyle\"]).getItemStyle(),focus:r.get(\"focus\"),blurScope:r.get(\"blurScope\"),emphasisDisabled:r.get(\"disabled\"),hoverScale:r.get(\"scale\"),labelStatesModels:vi(t),cursorStyle:t.get(\"cursor\")}}var cC=function(){function e(t){this.group=new pr,this._SymbolCtor=t||uC}return e.prototype.updateData=function(t,r){this._progressiveEls=null,r=mX(r);var n=this.group,a=t.hostModel,i=this._data,o=this._SymbolCtor,l=r.disableAnimation,s=vX(t),u={disableAnimation:l},c=r.getSymbolPoint||function(d){return t.getItemLayout(d)};i||n.removeAll(),t.diff(i).add(function(d){var f=c(d);if(xI(t,f,d,r)){var h=new o(t,d,s,u);h.setPosition(f),t.setItemGraphicEl(d,h),n.add(h)}}).update(function(d,f){var h=i.getItemGraphicEl(f),p=c(d);if(!xI(t,p,d,r)){n.remove(h);return}var v=t.getItemVisual(d,\"symbol\")||\"circle\",g=h&&h.getSymbolType&&h.getSymbolType();if(!h||g&&g!==v)n.remove(h),h=new o(t,d,s,u),h.setPosition(p);else{h.updateData(t,d,s,u);var y={x:p[0],y:p[1]};l?h.attr(y):cn(h,y,a)}n.add(h),t.setItemGraphicEl(d,h)}).remove(function(d){var f=i.getItemGraphicEl(d);f&&f.fadeOut(function(){n.remove(f)},a)}).execute(),this._getSymbolPoint=c,this._data=t},e.prototype.updateLayout=function(){var t=this,r=this._data;r&&r.eachItemGraphicEl(function(n,a){var i=t._getSymbolPoint(a);n.setPosition(i),n.markRedraw()})},e.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=vX(t),this._data=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(t,r,n){this._progressiveEls=[],n=mX(n);function a(s){s.isGroup||(s.incremental=!0,s.ensureState(\"emphasis\").hoverLayer=!0)}for(var i=t.start;i<t.end;i++){var o=r.getItemLayout(i);if(xI(r,o,i,n)){var l=new this._SymbolCtor(r,i,this._seriesScope);l.traverse(a),l.setPosition(o),this.group.add(l),r.setItemGraphicEl(i,l),this._progressiveEls.push(l)}}},e.prototype.eachRendered=function(t){sh(this._progressiveEls||this.group,t)},e.prototype.remove=function(t){var r=this.group,n=this._data;n&&t?n.eachItemGraphicEl(function(a){a.fadeOut(function(){r.remove(a)},n.hostModel)}):r.removeAll()},e}();function p0e(e,t,r){var n=e.getBaseAxis(),a=e.getOtherAxis(n),i=fFt(a,r),o=n.dim,l=a.dim,s=t.mapDimension(l),u=t.mapDimension(o),c=l===\"x\"||l===\"radius\"?1:0,d=ot(e.dimensions,function(p){return t.mapDimension(p)}),f=!1,h=t.getCalculationInfo(\"stackResultDimension\");return md(t,d[0])&&(f=!0,d[0]=h),md(t,d[1])&&(f=!0,d[1]=h),{dataDimsForPoint:d,valueStart:i,valueAxisDim:l,baseAxisDim:o,stacked:!!f,valueDim:s,baseDim:u,baseDataOffset:c,stackedOverDimension:t.getCalculationInfo(\"stackedOverDimension\")}}function fFt(e,t){var r=0,n=e.scale.getExtent();return t===\"start\"?r=n[0]:t===\"end\"?r=n[1]:nn(t)&&!isNaN(t)?r=t:n[0]>0?r=n[0]:n[1]<0&&(r=n[1]),r}function m0e(e,t,r,n){var a=NaN;e.stacked&&(a=r.get(r.getCalculationInfo(\"stackedOverDimension\"),n)),isNaN(a)&&(a=e.valueStart);var i=e.baseDataOffset,o=[];return o[i]=r.get(e.baseDim,n),o[1-i]=a,t.dataToPoint(o)}function hFt(e,t){var r=[];return t.diff(e).add(function(n){r.push({cmd:\"+\",idx:n})}).update(function(n,a){r.push({cmd:\"=\",idx:a,idx1:n})}).remove(function(n){r.push({cmd:\"-\",idx:n})}).execute(),r}function pFt(e,t,r,n,a,i,o,l){for(var s=hFt(e,t),u=[],c=[],d=[],f=[],h=[],p=[],v=[],g=p0e(a,t,o),y=e.getLayout(\"points\")||[],b=t.getLayout(\"points\")||[],x=0;x<s.length;x++){var F=s[x],S=!0,E=void 0,w=void 0;switch(F.cmd){case\"=\":E=F.idx*2,w=F.idx1*2;var D=y[E],A=y[E+1],_=b[w],I=b[w+1];(isNaN(D)||isNaN(A))&&(D=_,A=I),u.push(D,A),c.push(_,I),d.push(r[E],r[E+1]),f.push(n[w],n[w+1]),v.push(t.getRawIndex(F.idx1));break;case\"+\":var M=F.idx,T=g.dataDimsForPoint,k=a.dataToPoint([t.get(T[0],M),t.get(T[1],M)]);w=M*2,u.push(k[0],k[1]),c.push(b[w],b[w+1]);var R=m0e(g,a,t,M);d.push(R[0],R[1]),f.push(n[w],n[w+1]),v.push(t.getRawIndex(M));break;case\"-\":S=!1}S&&(h.push(F),p.push(p.length))}p.sort(function(V,U){return v[V]-v[U]});for(var P=u.length,B=Ju(P),N=Ju(P),O=Ju(P),z=Ju(P),W=[],x=0;x<p.length;x++){var L=p[x],j=x*2,H=L*2;B[j]=u[H],B[j+1]=u[H+1],N[j]=c[H],N[j+1]=c[H+1],O[j]=d[H],O[j+1]=d[H+1],z[j]=f[H],z[j+1]=f[H+1],W[x]=h[L]}return{current:B,next:N,stackedOnCurrent:O,stackedOnNext:z,status:W}}var $d=Math.min,Ld=Math.max;function Bp(e,t){return isNaN(e)||isNaN(t)}function PP(e,t,r,n,a,i,o,l,s){for(var u,c,d,f,h,p,v=r,g=0;g<n;g++){var y=t[v*2],b=t[v*2+1];if(v>=a||v<0)break;if(Bp(y,b)){if(s){v+=i;continue}break}if(v===r)e[i>0?\"moveTo\":\"lineTo\"](y,b),d=y,f=b;else{var x=y-u,F=b-c;if(x*x+F*F<.5){v+=i;continue}if(o>0){for(var S=v+i,E=t[S*2],w=t[S*2+1];E===y&&w===b&&g<n;)g++,S+=i,v+=i,E=t[S*2],w=t[S*2+1],y=t[v*2],b=t[v*2+1],x=y-u,F=b-c;var D=g+1;if(s)for(;Bp(E,w)&&D<n;)D++,S+=i,E=t[S*2],w=t[S*2+1];var A=.5,_=0,I=0,M=void 0,T=void 0;if(D>=n||Bp(E,w))h=y,p=b;else{_=E-u,I=w-c;var k=y-u,R=E-y,P=b-c,B=w-b,N=void 0,O=void 0;if(l===\"x\"){N=Math.abs(k),O=Math.abs(R);var z=_>0?1:-1;h=y-z*N*o,p=b,M=y+z*O*o,T=b}else if(l===\"y\"){N=Math.abs(P),O=Math.abs(B);var W=I>0?1:-1;h=y,p=b-W*N*o,M=y,T=b+W*O*o}else N=Math.sqrt(k*k+P*P),O=Math.sqrt(R*R+B*B),A=O/(O+N),h=y-_*o*(1-A),p=b-I*o*(1-A),M=y+_*o*A,T=b+I*o*A,M=$d(M,Ld(E,y)),T=$d(T,Ld(w,b)),M=Ld(M,$d(E,y)),T=Ld(T,$d(w,b)),_=M-y,I=T-b,h=y-_*N/O,p=b-I*N/O,h=$d(h,Ld(u,y)),p=$d(p,Ld(c,b)),h=Ld(h,$d(u,y)),p=Ld(p,$d(c,b)),_=y-h,I=b-p,M=y+_*O/N,T=b+I*O/N}e.bezierCurveTo(d,f,h,p,y,b),d=M,f=T}else e.lineTo(y,b)}u=y,c=b,v+=i}return g}var v0e=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),mFt=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"ec-polyline\",n}return t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new v0e},t.prototype.buildPath=function(r,n){var a=n.points,i=0,o=a.length/2;if(n.connectNulls){for(;o>0&&Bp(a[o*2-2],a[o*2-1]);o--);for(;i<o&&Bp(a[i*2],a[i*2+1]);i++);}for(;i<o;)i+=PP(r,a,i,o,o,1,n.smooth,n.smoothMonotone,n.connectNulls)+1},t.prototype.getPointOn=function(r,n){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var a=this.path,i=a.data,o=gc.CMD,l,s,u=n===\"x\",c=[],d=0;d<i.length;){var f=i[d++],h=void 0,p=void 0,v=void 0,g=void 0,y=void 0,b=void 0,x=void 0;switch(f){case o.M:l=i[d++],s=i[d++];break;case o.L:if(h=i[d++],p=i[d++],x=u?(r-l)/(h-l):(r-s)/(p-s),x<=1&&x>=0){var F=u?(p-s)*x+s:(h-l)*x+l;return u?[r,F]:[F,r]}l=h,s=p;break;case o.C:h=i[d++],p=i[d++],v=i[d++],g=i[d++],y=i[d++],b=i[d++];var S=u?T3(l,h,v,y,r,c):T3(s,p,g,b,r,c);if(S>0)for(var E=0;E<S;E++){var w=c[E];if(w<=1&&w>=0){var F=u?ii(s,p,g,b,w):ii(l,h,v,y,w);return u?[r,F]:[F,r]}}l=y,s=b;break}}},t}(Vr),vFt=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(v0e),g0e=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"ec-polygon\",n}return t.prototype.getDefaultShape=function(){return new vFt},t.prototype.buildPath=function(r,n){var a=n.points,i=n.stackedOnPoints,o=0,l=a.length/2,s=n.smoothMonotone;if(n.connectNulls){for(;l>0&&Bp(a[l*2-2],a[l*2-1]);l--);for(;o<l&&Bp(a[o*2],a[o*2+1]);o++);}for(;o<l;){var u=PP(r,a,o,l,l,1,n.smooth,s,n.connectNulls);PP(r,i,o+u-1,u,l,-1,n.stackedOnSmooth,s,n.connectNulls),o+=u+1,r.closePath()}},t}(Vr);function y0e(e,t,r,n,a){var i=e.getArea(),o=i.x,l=i.y,s=i.width,u=i.height,c=r.get([\"lineStyle\",\"width\"])||0;o-=c/2,l-=c/2,s+=c,u+=c,s=Math.ceil(s),o!==Math.floor(o)&&(o=Math.floor(o),s++);var d=new Zr({shape:{x:o,y:l,width:s,height:u}});if(t){var f=e.getBaseAxis(),h=f.isHorizontal(),p=f.inverse;h?(p&&(d.shape.x+=s),d.shape.width=0):(p||(d.shape.y+=u),d.shape.height=0);var v=er(a)?function(g){a(g,d)}:null;Yn(d,{shape:{width:s,height:u,x:o,y:l}},r,null,n,v)}return d}function b0e(e,t,r){var n=e.getArea(),a=fa(n.r0,1),i=fa(n.r,1),o=new So({shape:{cx:fa(e.cx,1),cy:fa(e.cy,1),r0:a,r:i,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}});if(t){var l=e.getBaseAxis().dim===\"angle\";l?o.shape.endAngle=n.startAngle:o.shape.r=a,Yn(o,{shape:{endAngle:n.endAngle,r:i}},r)}return o}function dC(e,t,r,n,a){if(e){if(e.type===\"polar\")return b0e(e,t,r);if(e.type===\"cartesian2d\")return y0e(e,t,r,n,a)}else return null;return null}function zm(e,t){return e.type===t}function gX(e,t){if(e.length===t.length){for(var r=0;r<e.length;r++)if(e[r]!==t[r])return;return!0}}function yX(e){for(var t=1/0,r=1/0,n=-1/0,a=-1/0,i=0;i<e.length;){var o=e[i++],l=e[i++];isNaN(o)||(t=Math.min(o,t),n=Math.max(o,n)),isNaN(l)||(r=Math.min(l,r),a=Math.max(l,a))}return[[t,r],[n,a]]}function bX(e,t){var r=yX(e),n=r[0],a=r[1],i=yX(t),o=i[0],l=i[1];return Math.max(Math.abs(n[0]-o[0]),Math.abs(n[1]-o[1]),Math.abs(a[0]-l[0]),Math.abs(a[1]-l[1]))}function xX(e){return nn(e)?e:e?.5:0}function gFt(e,t,r){if(!r.valueDim)return[];for(var n=t.count(),a=Ju(n*2),i=0;i<n;i++){var o=m0e(r,e,t,i);a[i*2]=o[0],a[i*2+1]=o[1]}return a}function jd(e,t,r,n,a){var i=r.getBaseAxis(),o=i.dim===\"x\"||i.dim===\"radius\"?0:1,l=[],s=0,u=[],c=[],d=[],f=[];if(a){for(s=0;s<e.length;s+=2){var h=t||e;!isNaN(h[s])&&!isNaN(h[s+1])&&f.push(e[s],e[s+1])}e=f}for(s=0;s<e.length-2;s+=2)switch(d[0]=e[s+2],d[1]=e[s+3],c[0]=e[s],c[1]=e[s+1],l.push(c[0],c[1]),n){case\"end\":u[o]=d[o],u[1-o]=c[1-o],l.push(u[0],u[1]);break;case\"middle\":var p=(c[o]+d[o])/2,v=[];u[o]=v[o]=p,u[1-o]=c[1-o],v[1-o]=d[1-o],l.push(u[0],u[1]),l.push(v[0],v[1]);break;default:u[o]=c[o],u[1-o]=d[1-o],l.push(u[0],u[1])}return l.push(e[s++],e[s++]),l}function yFt(e,t){var r=[],n=e.length,a,i;function o(c,d,f){var h=c.coord,p=(f-h)/(d.coord-h),v=QB(p,[c.color,d.color]);return{coord:f,color:v}}for(var l=0;l<n;l++){var s=e[l],u=s.coord;if(u<0)a=s;else if(u>t){i?r.push(o(i,s,t)):a&&r.push(o(a,s,0),o(a,s,t));break}else a&&(r.push(o(a,s,0)),a=null),r.push(s),i=s}return r}function bFt(e,t,r){var n=e.getVisual(\"visualMeta\");if(!(!n||!n.length||!e.count())&&t.type===\"cartesian2d\"){for(var a,i,o=n.length-1;o>=0;o--){var l=e.getDimensionInfo(n[o].dimension);if(a=l&&l.coordDim,a===\"x\"||a===\"y\"){i=n[o];break}}if(i){var s=t.getAxis(a),u=ot(i.stops,function(x){return{coord:s.toGlobalCoord(s.dataToCoord(x.value)),color:x.color}}),c=u.length,d=i.outerColors.slice();c&&u[0].coord>u[c-1].coord&&(u.reverse(),d.reverse());var f=yFt(u,a===\"x\"?r.getWidth():r.getHeight()),h=f.length;if(!h&&c)return u[0].coord<0?d[1]?d[1]:u[c-1].color:d[0]?d[0]:u[0].color;var p=10,v=f[0].coord-p,g=f[h-1].coord+p,y=g-v;if(y<.001)return\"transparent\";q(f,function(x){x.offset=(x.coord-v)/y}),f.push({offset:h?f[h-1].offset:.5,color:d[1]||\"transparent\"}),f.unshift({offset:h?f[0].offset:.5,color:d[0]||\"transparent\"});var b=new Yg(0,0,0,0,f,!0);return b[a]=v,b[a+\"2\"]=g,b}}}function xFt(e,t,r){var n=e.get(\"showAllSymbol\"),a=n===\"auto\";if(!(n&&!a)){var i=r.getAxesByScale(\"ordinal\")[0];if(i&&!(a&&CFt(i,t))){var o=t.mapDimension(i.dim),l={};return q(i.getViewLabels(),function(s){var u=i.scale.getRawOrdinalNumber(s.tickValue);l[u]=1}),function(s){return!l.hasOwnProperty(t.get(o,s))}}}}function CFt(e,t){var r=e.getExtent(),n=Math.abs(r[1]-r[0])/e.scale.count();isNaN(n)&&(n=0);for(var a=t.count(),i=Math.max(1,Math.round(a/5)),o=0;o<a;o+=i)if(uC.getSymbolSize(t,o)[e.isHorizontal()?1:0]*1.5>n)return!1;return!0}function FFt(e,t){return isNaN(e)||isNaN(t)}function SFt(e){for(var t=e.length/2;t>0&&FFt(e[t*2-2],e[t*2-1]);t--);return t-1}function CX(e,t){return[e[t*2],e[t*2+1]]}function wFt(e,t,r){for(var n=e.length/2,a=r===\"x\"?0:1,i,o,l=0,s=-1,u=0;u<n;u++)if(o=e[u*2+a],!(isNaN(o)||isNaN(e[u*2+1-a]))){if(u===0){i=o;continue}if(i<=t&&o>=t||i>=t&&o<=t){s=u;break}l=u,i=o}return{range:[l,s],t:(t-i)/(o-i)}}function x0e(e){if(e.get([\"endLabel\",\"show\"]))return!0;for(var t=0;t<Ko.length;t++)if(e.get([Ko[t],\"endLabel\",\"show\"]))return!0;return!1}function CI(e,t,r,n){if(zm(t,\"cartesian2d\")){var a=n.getModel(\"endLabel\"),i=a.get(\"valueAnimation\"),o=n.getData(),l={lastFrameIndex:0},s=x0e(n)?function(h,p){e._endLabelOnDuring(h,p,o,l,i,a,t)}:null,u=t.getBaseAxis().isHorizontal(),c=y0e(t,r,n,function(){var h=e._endLabel;h&&r&&l.originalX!=null&&h.attr({x:l.originalX,y:l.originalY})},s);if(!n.get(\"clip\",!0)){var d=c.shape,f=Math.max(d.width,d.height);u?(d.y-=f,d.height+=f*2):(d.x-=f,d.width+=f*2)}return s&&s(1,c),c}else return b0e(t,r,n)}function EFt(e,t){var r=t.getBaseAxis(),n=r.isHorizontal(),a=r.inverse,i=n?a?\"right\":\"left\":\"center\",o=n?\"middle\":a?\"top\":\"bottom\";return{normal:{align:e.get(\"align\")||i,verticalAlign:e.get(\"verticalAlign\")||o}}}var DFt=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(){var r=new pr,n=new cC;this.group.add(n.group),this._symbolDraw=n,this._lineGroup=r,this._changePolyState=Pt(this._changePolyState,this)},t.prototype.render=function(r,n,a){var i=r.coordinateSystem,o=this.group,l=r.getData(),s=r.getModel(\"lineStyle\"),u=r.getModel(\"areaStyle\"),c=l.getLayout(\"points\")||[],d=i.type===\"polar\",f=this._coordSys,h=this._symbolDraw,p=this._polyline,v=this._polygon,g=this._lineGroup,y=!n.ssr&&r.get(\"animation\"),b=!u.isEmpty(),x=u.get(\"origin\"),F=p0e(i,l,x),S=b&&gFt(i,l,F),E=r.get(\"showSymbol\"),w=r.get(\"connectNulls\"),D=E&&!d&&xFt(r,l,i),A=this._data;A&&A.eachItemGraphicEl(function(V,U){V.__temp&&(o.remove(V),A.setItemGraphicEl(U,null))}),E||h.remove(),o.add(g);var _=d?!1:r.get(\"step\"),I;i&&i.getArea&&r.get(\"clip\",!0)&&(I=i.getArea(),I.width!=null?(I.x-=.1,I.y-=.1,I.width+=.2,I.height+=.2):I.r0&&(I.r0-=.5,I.r+=.5)),this._clipShapeForSymbol=I;var M=bFt(l,i,a)||l.getVisual(\"style\")[l.getVisual(\"drawType\")];if(!(p&&f.type===i.type&&_===this._step))E&&h.updateData(l,{isIgnore:D,clipShape:I,disableAnimation:!0,getSymbolPoint:function(V){return[c[V*2],c[V*2+1]]}}),y&&this._initSymbolLabelAnimation(l,i,I),_&&(S&&(S=jd(S,c,i,_,w)),c=jd(c,null,i,_,w)),p=this._newPolyline(c),b?v=this._newPolygon(c,S):v&&(g.remove(v),v=this._polygon=null),d||this._initOrUpdateEndLabel(r,i,lm(M)),g.setClipPath(CI(this,i,!0,r));else{b&&!v?v=this._newPolygon(c,S):v&&!b&&(g.remove(v),v=this._polygon=null),d||this._initOrUpdateEndLabel(r,i,lm(M));var T=g.getClipPath();if(T){var k=CI(this,i,!1,r);Yn(T,{shape:k.shape},r)}else g.setClipPath(CI(this,i,!0,r));E&&h.updateData(l,{isIgnore:D,clipShape:I,disableAnimation:!0,getSymbolPoint:function(V){return[c[V*2],c[V*2+1]]}}),(!gX(this._stackedOnPoints,S)||!gX(this._points,c))&&(y?this._doUpdateAnimation(l,S,i,a,_,x,w):(_&&(S&&(S=jd(S,c,i,_,w)),c=jd(c,null,i,_,w)),p.setShape({points:c}),v&&v.setShape({points:c,stackedOnPoints:S})))}var R=r.getModel(\"emphasis\"),P=R.get(\"focus\"),B=R.get(\"blurScope\"),N=R.get(\"disabled\");if(p.useStyle(rr(s.getLineStyle(),{fill:\"none\",stroke:M,lineJoin:\"bevel\"})),qi(p,r,\"lineStyle\"),p.style.lineWidth>0&&r.get([\"emphasis\",\"lineStyle\",\"width\"])===\"bolder\"){var O=p.getState(\"emphasis\").style;O.lineWidth=+p.style.lineWidth+1}br(p).seriesIndex=r.seriesIndex,sa(p,P,B,N);var z=xX(r.get(\"smooth\")),W=r.get(\"smoothMonotone\");if(p.setShape({smooth:z,smoothMonotone:W,connectNulls:w}),v){var L=l.getCalculationInfo(\"stackedOnSeries\"),j=0;v.useStyle(rr(u.getAreaStyle(),{fill:M,opacity:.7,lineJoin:\"bevel\",decal:l.getVisual(\"style\").decal})),L&&(j=xX(L.get(\"smooth\"))),v.setShape({smooth:z,stackedOnSmooth:j,smoothMonotone:W,connectNulls:w}),qi(v,r,\"areaStyle\"),br(v).seriesIndex=r.seriesIndex,sa(v,P,B,N)}var H=this._changePolyState;l.eachItemGraphicEl(function(V){V&&(V.onHoverStateChange=H)}),this._polyline.onHoverStateChange=H,this._data=l,this._coordSys=i,this._stackedOnPoints=S,this._points=c,this._step=_,this._valueOrigin=x,r.get(\"triggerLineEvent\")&&(this.packEventData(r,p),v&&this.packEventData(r,v))},t.prototype.packEventData=function(r,n){br(n).eventData={componentType:\"series\",componentSubType:\"line\",componentIndex:r.componentIndex,seriesIndex:r.seriesIndex,seriesName:r.name,seriesType:\"line\"}},t.prototype.highlight=function(r,n,a,i){var o=r.getData(),l=am(o,i);if(this._changePolyState(\"emphasis\"),!(l instanceof Array)&&l!=null&&l>=0){var s=o.getLayout(\"points\"),u=o.getItemGraphicEl(l);if(!u){var c=s[l*2],d=s[l*2+1];if(isNaN(c)||isNaN(d)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(c,d))return;var f=r.get(\"zlevel\")||0,h=r.get(\"z\")||0;u=new uC(o,l),u.x=c,u.y=d,u.setZ(f,h);var p=u.getSymbolPath().getTextContent();p&&(p.zlevel=f,p.z=h,p.z2=this._polyline.z2+1),u.__temp=!0,o.setItemGraphicEl(l,u),u.stopSymbolAnimation(!0),this.group.add(u)}u.highlight()}else Cn.prototype.highlight.call(this,r,n,a,i)},t.prototype.downplay=function(r,n,a,i){var o=r.getData(),l=am(o,i);if(this._changePolyState(\"normal\"),l!=null&&l>=0){var s=o.getItemGraphicEl(l);s&&(s.__temp?(o.setItemGraphicEl(l,null),this.group.remove(s)):s.downplay())}else Cn.prototype.downplay.call(this,r,n,a,i)},t.prototype._changePolyState=function(r){var n=this._polygon;B3(this._polyline,r),n&&B3(n,r)},t.prototype._newPolyline=function(r){var n=this._polyline;return n&&this._lineGroup.remove(n),n=new mFt({shape:{points:r},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(n),this._polyline=n,n},t.prototype._newPolygon=function(r,n){var a=this._polygon;return a&&this._lineGroup.remove(a),a=new g0e({shape:{points:r,stackedOnPoints:n},segmentIgnoreThreshold:2}),this._lineGroup.add(a),this._polygon=a,a},t.prototype._initSymbolLabelAnimation=function(r,n,a){var i,o,l=n.getBaseAxis(),s=l.inverse;n.type===\"cartesian2d\"?(i=l.isHorizontal(),o=!1):n.type===\"polar\"&&(i=l.dim===\"angle\",o=!0);var u=r.hostModel,c=u.get(\"animationDuration\");er(c)&&(c=c(null));var d=u.get(\"animationDelay\")||0,f=er(d)?d(null):d;r.eachItemGraphicEl(function(h,p){var v=h;if(v){var g=[h.x,h.y],y=void 0,b=void 0,x=void 0;if(a)if(o){var F=a,S=n.pointToCoord(g);i?(y=F.startAngle,b=F.endAngle,x=-S[1]/180*Math.PI):(y=F.r0,b=F.r,x=S[0])}else{var E=a;i?(y=E.x,b=E.x+E.width,x=h.x):(y=E.y+E.height,b=E.y,x=h.y)}var w=b===y?0:(x-y)/(b-y);s&&(w=1-w);var D=er(d)?d(p):c*w+f,A=v.getSymbolPath(),_=A.getTextContent();v.attr({scaleX:0,scaleY:0}),v.animateTo({scaleX:1,scaleY:1},{duration:200,setToFinal:!0,delay:D}),_&&_.animateFrom({style:{opacity:0}},{duration:300,delay:D}),A.disableLabelAnimation=!0}})},t.prototype._initOrUpdateEndLabel=function(r,n,a){var i=r.getModel(\"endLabel\");if(x0e(r)){var o=r.getData(),l=this._polyline,s=o.getLayout(\"points\");if(!s){l.removeTextContent(),this._endLabel=null;return}var u=this._endLabel;u||(u=this._endLabel=new Jr({z2:200}),u.ignoreClip=!0,l.setTextContent(this._endLabel),l.disableLabelAnimation=!0);var c=SFt(s);c>=0&&(Xi(l,vi(r,\"endLabel\"),{inheritColor:a,labelFetcher:r,labelDataIndex:c,defaultText:function(d,f,h){return h!=null?h0e(o,h):ug(o,d)},enableTextSetter:!0},EFt(i,n)),l.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},t.prototype._endLabelOnDuring=function(r,n,a,i,o,l,s){var u=this._endLabel,c=this._polyline;if(u){r<1&&i.originalX==null&&(i.originalX=u.x,i.originalY=u.y);var d=a.getLayout(\"points\"),f=a.hostModel,h=f.get(\"connectNulls\"),p=l.get(\"precision\"),v=l.get(\"distance\")||0,g=s.getBaseAxis(),y=g.isHorizontal(),b=g.inverse,x=n.shape,F=b?y?x.x:x.y+x.height:y?x.x+x.width:x.y,S=(y?v:0)*(b?-1:1),E=(y?0:-v)*(b?-1:1),w=y?\"x\":\"y\",D=wFt(d,F,w),A=D.range,_=A[1]-A[0],I=void 0;if(_>=1){if(_>1&&!h){var M=CX(d,A[0]);u.attr({x:M[0]+S,y:M[1]+E}),o&&(I=f.getRawValue(A[0]))}else{var M=c.getPointOn(F,w);M&&u.attr({x:M[0]+S,y:M[1]+E});var T=f.getRawValue(A[0]),k=f.getRawValue(A[1]);o&&(I=npe(a,p,T,k,D.t))}i.lastFrameIndex=A[0]}else{var R=r===1||i.lastFrameIndex>0?A[0]:0,M=CX(d,R);o&&(I=f.getRawValue(R)),u.attr({x:M[0]+S,y:M[1]+E})}if(o){var P=Jg(u);typeof P.setLabelText==\"function\"&&P.setLabelText(I)}}},t.prototype._doUpdateAnimation=function(r,n,a,i,o,l,s){var u=this._polyline,c=this._polygon,d=r.hostModel,f=pFt(this._data,r,this._stackedOnPoints,n,this._coordSys,a,this._valueOrigin),h=f.current,p=f.stackedOnCurrent,v=f.next,g=f.stackedOnNext;if(o&&(p=jd(f.stackedOnCurrent,f.current,a,o,s),h=jd(f.current,null,a,o,s),g=jd(f.stackedOnNext,f.next,a,o,s),v=jd(f.next,null,a,o,s)),bX(h,v)>3e3||c&&bX(p,g)>3e3){u.stopAnimation(),u.setShape({points:v}),c&&(c.stopAnimation(),c.setShape({points:v,stackedOnPoints:g}));return}u.shape.__points=f.current,u.shape.points=h;var y={shape:{points:v}};f.current!==h&&(y.shape.__points=f.next),u.stopAnimation(),cn(u,y,d),c&&(c.setShape({points:h,stackedOnPoints:p}),c.stopAnimation(),cn(c,{shape:{stackedOnPoints:g}},d),u.shape.points!==c.shape.points&&(c.shape.points=u.shape.points));for(var b=[],x=f.status,F=0;F<x.length;F++){var S=x[F].cmd;if(S===\"=\"){var E=r.getItemGraphicEl(x[F].idx1);E&&b.push({el:E,ptIdx:F})}}u.animators&&u.animators.length&&u.animators[0].during(function(){c&&c.dirtyShape();for(var w=u.shape.__points,D=0;D<b.length;D++){var A=b[D].el,_=b[D].ptIdx*2;A.x=w[_],A.y=w[_+1],A.markRedraw()}})},t.prototype.remove=function(r){var n=this.group,a=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),a&&a.eachItemGraphicEl(function(i,o){i.__temp&&(n.remove(i),a.setItemGraphicEl(o,null))}),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},t.type=\"line\",t}(Cn);function fC(e,t){return{seriesType:e,plan:r1(),reset:function(r){var n=r.getData(),a=r.coordinateSystem,i=r.pipelineContext,o=t||i.large;if(a){var l=ot(a.dimensions,function(h){return n.mapDimension(h)}).slice(0,2),s=l.length,u=n.getCalculationInfo(\"stackResultDimension\");md(n,l[0])&&(l[0]=u),md(n,l[1])&&(l[1]=u);var c=n.getStore(),d=n.getDimensionIndex(l[0]),f=n.getDimensionIndex(l[1]);return s&&{progress:function(h,p){for(var v=h.end-h.start,g=o&&Ju(v*s),y=[],b=[],x=h.start,F=0;x<h.end;x++){var S=void 0;if(s===1){var E=c.get(d,x);S=a.dataToPoint(E,null,b)}else y[0]=c.get(d,x),y[1]=c.get(f,x),S=a.dataToPoint(y,null,b);o?(g[F++]=S[0],g[F++]=S[1]):p.setItemLayout(x,S.slice())}o&&p.setLayout(\"points\",g)}}}}}}var AFt={average:function(e){for(var t=0,r=0,n=0;n<e.length;n++)isNaN(e[n])||(t+=e[n],r++);return r===0?NaN:t/r},sum:function(e){for(var t=0,r=0;r<e.length;r++)t+=e[r]||0;return t},max:function(e){for(var t=-1/0,r=0;r<e.length;r++)e[r]>t&&(t=e[r]);return isFinite(t)?t:NaN},min:function(e){for(var t=1/0,r=0;r<e.length;r++)e[r]<t&&(t=e[r]);return isFinite(t)?t:NaN},nearest:function(e){return e[0]}},_Ft=function(e){return Math.round(e.length/2)};function C0e(e){return{seriesType:e,reset:function(t,r,n){var a=t.getData(),i=t.get(\"sampling\"),o=t.coordinateSystem,l=a.count();if(l>10&&o.type===\"cartesian2d\"&&i){var s=o.getBaseAxis(),u=o.getOtherAxis(s),c=s.getExtent(),d=n.getDevicePixelRatio(),f=Math.abs(c[1]-c[0])*(d||1),h=Math.round(l/f);if(isFinite(h)&&h>1){i===\"lttb\"?t.setData(a.lttbDownSample(a.mapDimension(u.dim),1/h)):i===\"minmax\"&&t.setData(a.minmaxDownSample(a.mapDimension(u.dim),1/h));var p=void 0;At(i)?p=AFt[i]:er(i)&&(p=i),p&&t.setData(a.downSample(a.mapDimension(u.dim),1/h,p,_Ft))}}}}}function TFt(e){e.registerChartView(DFt),e.registerSeriesModel(cFt),e.registerLayout(fC(\"line\",!0)),e.registerVisual({seriesType:\"line\",reset:function(t){var r=t.getData(),n=t.getModel(\"lineStyle\").getLineStyle();n&&!n.stroke&&(n.stroke=r.getVisual(\"style\").fill),r.setVisual(\"legendLineStyle\",n)}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,C0e(\"line\"))}var z2=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return wc(null,this,{useEncodeDefaulter:!0})},t.prototype.getMarkerPosition=function(r,n,a){var i=this.coordinateSystem;if(i&&i.clampData){var o=i.clampData(r),l=i.dataToPoint(o);if(a)q(i.getAxes(),function(f,h){if(f.type===\"category\"&&n!=null){var p=f.getTicksCoords(),v=f.getTickModel().get(\"alignWithLabel\"),g=o[h],y=n[h]===\"x1\"||n[h]===\"y1\";if(y&&!v&&(g+=1),p.length<2)return;if(p.length===2){l[h]=f.toGlobalCoord(f.getExtent()[y?1:0]);return}for(var b=void 0,x=void 0,F=1,S=0;S<p.length;S++){var E=p[S].coord,w=S===p.length-1?p[S-1].tickValue+F:p[S].tickValue;if(w===g){x=E;break}else if(w<g)b=E;else if(b!=null&&w>g){x=(E+b)/2;break}S===1&&(F=w-p[0].tickValue)}x==null&&(b?b&&(x=p[p.length-1].coord):x=p[0].coord),l[h]=f.toGlobalCoord(x)}});else{var s=this.getData(),u=s.getLayout(\"offset\"),c=s.getLayout(\"size\"),d=i.getBaseAxis().isHorizontal()?0:1;l[d]+=u+c/2}return l}return[NaN,NaN]},t.type=\"series.__base_bar__\",t.defaultOption={z:2,coordinateSystem:\"cartesian2d\",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:\"mod\"},t}(_n);_n.registerClass(z2);var IFt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(){return wc(null,this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get(\"realtimeSort\",!0)||null})},t.prototype.getProgressive=function(){return this.get(\"large\")?this.get(\"progressive\"):!1},t.prototype.getProgressiveThreshold=function(){var r=this.get(\"progressiveThreshold\"),n=this.get(\"largeThreshold\");return n>r&&(r=n),r},t.prototype.brushSelector=function(r,n,a){return a.rect(n.getItemLayout(r))},t.type=\"series.bar\",t.dependencies=[\"grid\",\"polar\"],t.defaultOption=uh(z2.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:\"rgba(180, 180, 180, 0.2)\",borderColor:null,borderWidth:0,borderType:\"solid\",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:\"#212121\"}},realtimeSort:!1}),t}(z2),kFt=function(){function e(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=Math.PI*2,this.clockwise=!0}return e}(),n4=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"sausage\",n}return t.prototype.getDefaultShape=function(){return new kFt},t.prototype.buildPath=function(r,n){var a=n.cx,i=n.cy,o=Math.max(n.r0||0,0),l=Math.max(n.r,0),s=(l-o)*.5,u=o+s,c=n.startAngle,d=n.endAngle,f=n.clockwise,h=Math.PI*2,p=f?d-c<h:c-d<h;p||(c=d-(f?h:-h));var v=Math.cos(c),g=Math.sin(c),y=Math.cos(d),b=Math.sin(d);p?(r.moveTo(v*o+a,g*o+i),r.arc(v*u+a,g*u+i,s,-Math.PI+c,c,!f)):r.moveTo(v*l+a,g*l+i),r.arc(a,i,l,c,d,!f),r.arc(y*u+a,b*u+i,s,d-Math.PI*2,d-Math.PI,!f),o!==0&&r.arc(a,i,o,d,c,f)},t}(Vr);function RFt(e,t){t=t||{};var r=t.isRoundCap;return function(n,a,i){var o=a.position;if(!o||o instanceof Array)return P3(n,a,i);var l=e(o),s=a.distance!=null?a.distance:5,u=this.shape,c=u.cx,d=u.cy,f=u.r,h=u.r0,p=(f+h)/2,v=u.startAngle,g=u.endAngle,y=(v+g)/2,b=r?Math.abs(f-h)/2:0,x=Math.cos,F=Math.sin,S=c+f*x(v),E=d+f*F(v),w=\"left\",D=\"top\";switch(l){case\"startArc\":S=c+(h-s)*x(y),E=d+(h-s)*F(y),w=\"center\",D=\"top\";break;case\"insideStartArc\":S=c+(h+s)*x(y),E=d+(h+s)*F(y),w=\"center\",D=\"bottom\";break;case\"startAngle\":S=c+p*x(v)+yS(v,s+b,!1),E=d+p*F(v)+bS(v,s+b,!1),w=\"right\",D=\"middle\";break;case\"insideStartAngle\":S=c+p*x(v)+yS(v,-s+b,!1),E=d+p*F(v)+bS(v,-s+b,!1),w=\"left\",D=\"middle\";break;case\"middle\":S=c+p*x(y),E=d+p*F(y),w=\"center\",D=\"middle\";break;case\"endArc\":S=c+(f+s)*x(y),E=d+(f+s)*F(y),w=\"center\",D=\"bottom\";break;case\"insideEndArc\":S=c+(f-s)*x(y),E=d+(f-s)*F(y),w=\"center\",D=\"top\";break;case\"endAngle\":S=c+p*x(g)+yS(g,s+b,!0),E=d+p*F(g)+bS(g,s+b,!0),w=\"left\",D=\"middle\";break;case\"insideEndAngle\":S=c+p*x(g)+yS(g,-s+b,!0),E=d+p*F(g)+bS(g,-s+b,!0),w=\"right\",D=\"middle\";break;default:return P3(n,a,i)}return n=n||{},n.x=S,n.y=E,n.align=w,n.verticalAlign=D,n}}function MFt(e,t,r,n){if(nn(n)){e.setTextConfig({rotation:n});return}else if(nt(t)){e.setTextConfig({rotation:0});return}var a=e.shape,i=a.clockwise?a.startAngle:a.endAngle,o=a.clockwise?a.endAngle:a.startAngle,l=(i+o)/2,s,u=r(t);switch(u){case\"startArc\":case\"insideStartArc\":case\"middle\":case\"insideEndArc\":case\"endArc\":s=l;break;case\"startAngle\":case\"insideStartAngle\":s=i;break;case\"endAngle\":case\"insideEndAngle\":s=o;break;default:e.setTextConfig({rotation:0});return}var c=Math.PI*1.5-s;u===\"middle\"&&c>Math.PI/2&&c<Math.PI*1.5&&(c-=Math.PI),e.setTextConfig({rotation:c})}function yS(e,t,r){return t*Math.sin(e)*(r?-1:1)}function bS(e,t,r){return t*Math.cos(e)*(r?1:-1)}function bp(e,t,r){var n=e.get(\"borderRadius\");if(n==null)return r?{cornerRadius:0}:null;nt(n)||(n=[n,n,n,n]);var a=Math.abs(t.r||0-t.r0||0);return{cornerRadius:ot(n,function(i){return Fu(i,a)})}}var FI=Math.max,SI=Math.min;function PFt(e,t){var r=e.getArea&&e.getArea();if(zm(e,\"cartesian2d\")){var n=e.getBaseAxis();if(n.type!==\"category\"||!n.onBand){var a=t.getLayout(\"bandWidth\");n.isHorizontal()?(r.x-=a,r.width+=a*2):(r.y-=a,r.height+=a*2)}}return r}var OFt=function(e){Re(t,e);function t(){var r=e.call(this)||this;return r.type=t.type,r._isFirstFrame=!0,r}return t.prototype.render=function(r,n,a,i){this._model=r,this._removeOnRenderedListener(a),this._updateDrawMode(r);var o=r.get(\"coordinateSystem\");(o===\"cartesian2d\"||o===\"polar\")&&(this._progressiveEls=null,this._isLargeDraw?this._renderLarge(r,n,a):this._renderNormal(r,n,a,i))},t.prototype.incrementalPrepareRender=function(r){this._clear(),this._updateDrawMode(r),this._updateLargeClip(r)},t.prototype.incrementalRender=function(r,n){this._progressiveEls=[],this._incrementalRenderLarge(r,n)},t.prototype.eachRendered=function(r){sh(this._progressiveEls||this.group,r)},t.prototype._updateDrawMode=function(r){var n=r.pipelineContext.large;(this._isLargeDraw==null||n!==this._isLargeDraw)&&(this._isLargeDraw=n,this._clear())},t.prototype._renderNormal=function(r,n,a,i){var o=this.group,l=r.getData(),s=this._data,u=r.coordinateSystem,c=u.getBaseAxis(),d;u.type===\"cartesian2d\"?d=c.isHorizontal():u.type===\"polar\"&&(d=c.dim===\"angle\");var f=r.isAnimationEnabled()?r:null,h=BFt(r,u);h&&this._enableRealtimeSort(h,l,a);var p=r.get(\"clip\",!0)||h,v=PFt(u,l);o.removeClipPath();var g=r.get(\"roundCap\",!0),y=r.get(\"showBackground\",!0),b=r.getModel(\"backgroundStyle\"),x=b.get(\"borderRadius\")||0,F=[],S=this._backgroundEls,E=i&&i.isInitSort,w=i&&i.type===\"changeAxisOrder\";function D(I){var M=xS[u.type](l,I),T=VFt(u,d,M);return T.useStyle(b.getItemStyle()),u.type===\"cartesian2d\"?T.setShape(\"r\",x):T.setShape(\"cornerRadius\",x),F[I]=T,T}l.diff(s).add(function(I){var M=l.getItemModel(I),T=xS[u.type](l,I,M);if(y&&D(I),!(!l.hasValue(I)||!DX[u.type](T))){var k=!1;p&&(k=FX[u.type](v,T));var R=SX[u.type](r,l,I,T,d,f,c.model,!1,g);h&&(R.forceLabelAnimation=!0),AX(R,l,I,M,T,r,d,u.type===\"polar\"),E?R.attr({shape:T}):h?wX(h,f,R,T,I,d,!1,!1):Yn(R,{shape:T},r,I),l.setItemGraphicEl(I,R),o.add(R),R.ignore=k}}).update(function(I,M){var T=l.getItemModel(I),k=xS[u.type](l,I,T);if(y){var R=void 0;S.length===0?R=D(M):(R=S[M],R.useStyle(b.getItemStyle()),u.type===\"cartesian2d\"?R.setShape(\"r\",x):R.setShape(\"cornerRadius\",x),F[I]=R);var P=xS[u.type](l,I),B=S0e(d,P,u);cn(R,{shape:B},f,I)}var N=s.getItemGraphicEl(M);if(!l.hasValue(I)||!DX[u.type](k)){o.remove(N);return}var O=!1;if(p&&(O=FX[u.type](v,k),O&&o.remove(N)),N?Su(N):N=SX[u.type](r,l,I,k,d,f,c.model,!!N,g),h&&(N.forceLabelAnimation=!0),w){var z=N.getTextContent();if(z){var W=Jg(z);W.prevValue!=null&&(W.prevValue=W.value)}}else AX(N,l,I,T,k,r,d,u.type===\"polar\");E?N.attr({shape:k}):h?wX(h,f,N,k,I,d,!0,w):cn(N,{shape:k},r,I,null),l.setItemGraphicEl(I,N),N.ignore=O,o.add(N)}).remove(function(I){var M=s.getItemGraphicEl(I);M&&k2(M,r,I)}).execute();var A=this._backgroundGroup||(this._backgroundGroup=new pr);A.removeAll();for(var _=0;_<F.length;++_)A.add(F[_]);o.add(A),this._backgroundEls=F,this._data=l},t.prototype._renderLarge=function(r,n,a){this._clear(),TX(r,this.group),this._updateLargeClip(r)},t.prototype._incrementalRenderLarge=function(r,n){this._removeBackground(),TX(n,this.group,this._progressiveEls,!0)},t.prototype._updateLargeClip=function(r){var n=r.get(\"clip\",!0)&&dC(r.coordinateSystem,!1,r),a=this.group;n?a.setClipPath(n):a.removeClipPath()},t.prototype._enableRealtimeSort=function(r,n,a){var i=this;if(n.count()){var o=r.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(n,r,a),this._isFirstFrame=!1;else{var l=function(s){var u=n.getItemGraphicEl(s),c=u&&u.shape;return c&&Math.abs(o.isHorizontal()?c.height:c.width)||0};this._onRendered=function(){i._updateSortWithinSameData(n,l,o,a)},a.getZr().on(\"rendered\",this._onRendered)}}},t.prototype._dataSort=function(r,n,a){var i=[];return r.each(r.mapDimension(n.dim),function(o,l){var s=a(l);s=s??NaN,i.push({dataIndex:l,mappedValue:s,ordinalNumber:o})}),i.sort(function(o,l){return l.mappedValue-o.mappedValue}),{ordinalNumbers:ot(i,function(o){return o.ordinalNumber})}},t.prototype._isOrderChangedWithinSameData=function(r,n,a){for(var i=a.scale,o=r.mapDimension(a.dim),l=Number.MAX_VALUE,s=0,u=i.getOrdinalMeta().categories.length;s<u;++s){var c=r.rawIndexOf(o,i.getRawOrdinalNumber(s)),d=c<0?Number.MIN_VALUE:n(r.indexOfRawIndex(c));if(d>l)return!0;l=d}return!1},t.prototype._isOrderDifferentInView=function(r,n){for(var a=n.scale,i=a.getExtent(),o=Math.max(0,i[0]),l=Math.min(i[1],a.getOrdinalMeta().categories.length-1);o<=l;++o)if(r.ordinalNumbers[o]!==a.getRawOrdinalNumber(o))return!0},t.prototype._updateSortWithinSameData=function(r,n,a,i){if(this._isOrderChangedWithinSameData(r,n,a)){var o=this._dataSort(r,a,n);this._isOrderDifferentInView(o,a)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:\"changeAxisOrder\",componentType:a.dim+\"Axis\",axisId:a.index,sortInfo:o}))}},t.prototype._dispatchInitSort=function(r,n,a){var i=n.baseAxis,o=this._dataSort(r,i,function(l){return r.get(r.mapDimension(n.otherAxis.dim),l)});a.dispatchAction({type:\"changeAxisOrder\",componentType:i.dim+\"Axis\",isInitSort:!0,axisId:i.index,sortInfo:o})},t.prototype.remove=function(r,n){this._clear(this._model),this._removeOnRenderedListener(n)},t.prototype.dispose=function(r,n){this._removeOnRenderedListener(n)},t.prototype._removeOnRenderedListener=function(r){this._onRendered&&(r.getZr().off(\"rendered\",this._onRendered),this._onRendered=null)},t.prototype._clear=function(r){var n=this.group,a=this._data;r&&r.isAnimationEnabled()&&a&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],a.eachItemGraphicEl(function(i){k2(i,r,br(i).dataIndex)})):n.removeAll(),this._data=null,this._isFirstFrame=!0},t.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},t.type=\"bar\",t}(Cn),FX={cartesian2d:function(e,t){var r=t.width<0?-1:1,n=t.height<0?-1:1;r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height);var a=e.x+e.width,i=e.y+e.height,o=FI(t.x,e.x),l=SI(t.x+t.width,a),s=FI(t.y,e.y),u=SI(t.y+t.height,i),c=l<o,d=u<s;return t.x=c&&o>a?l:o,t.y=d&&s>i?u:s,t.width=c?0:l-o,t.height=d?0:u-s,r<0&&(t.x+=t.width,t.width=-t.width),n<0&&(t.y+=t.height,t.height=-t.height),c||d},polar:function(e,t){var r=t.r0<=t.r?1:-1;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}var a=SI(t.r,e.r),i=FI(t.r0,e.r0);t.r=a,t.r0=i;var o=a-i<0;if(r<0){var n=t.r;t.r=t.r0,t.r0=n}return o}},SX={cartesian2d:function(e,t,r,n,a,i,o,l,s){var u=new Zr({shape:Xe({},n),z2:1});if(u.__dataIndex=r,u.name=\"item\",i){var c=u.shape,d=a?\"height\":\"width\";c[d]=0}return u},polar:function(e,t,r,n,a,i,o,l,s){var u=!a&&s?n4:So,c=new u({shape:n,z2:1});c.name=\"item\";var d=F0e(a);if(c.calculateTextPosition=RFt(d,{isRoundCap:u===n4}),i){var f=c.shape,h=a?\"r\":\"endAngle\",p={};f[h]=a?n.r0:n.startAngle,p[h]=n[h],(l?cn:Yn)(c,{shape:p},i)}return c}};function BFt(e,t){var r=e.get(\"realtimeSort\",!0),n=t.getBaseAxis();if(r&&n.type===\"category\"&&t.type===\"cartesian2d\")return{baseAxis:n,otherAxis:t.getOtherAxis(n)}}function wX(e,t,r,n,a,i,o,l){var s,u;i?(u={x:n.x,width:n.width},s={y:n.y,height:n.height}):(u={y:n.y,height:n.height},s={x:n.x,width:n.width}),l||(o?cn:Yn)(r,{shape:s},t,a,null);var c=t?e.baseAxis.model:null;(o?cn:Yn)(r,{shape:u},c,a)}function EX(e,t){for(var r=0;r<t.length;r++)if(!isFinite(e[t[r]]))return!0;return!1}var NFt=[\"x\",\"y\",\"width\",\"height\"],$Ft=[\"cx\",\"cy\",\"r\",\"startAngle\",\"endAngle\"],DX={cartesian2d:function(e){return!EX(e,NFt)},polar:function(e){return!EX(e,$Ft)}},xS={cartesian2d:function(e,t,r){var n=e.getItemLayout(t),a=r?jFt(r,n):0,i=n.width>0?1:-1,o=n.height>0?1:-1;return{x:n.x+i*a/2,y:n.y+o*a/2,width:n.width-i*a,height:n.height-o*a}},polar:function(e,t,r){var n=e.getItemLayout(t);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle,clockwise:n.clockwise}}};function LFt(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function F0e(e){return function(t){var r=t?\"Arc\":\"Angle\";return function(n){switch(n){case\"start\":case\"insideStart\":case\"end\":case\"insideEnd\":return n+r;default:return n}}}(e)}function AX(e,t,r,n,a,i,o,l){var s=t.getItemVisual(r,\"style\");if(l){if(!i.get(\"roundCap\")){var c=e.shape,d=bp(n.getModel(\"itemStyle\"),c,!0);Xe(c,d),e.setShape(c)}}else{var u=n.get([\"itemStyle\",\"borderRadius\"])||0;e.setShape(\"r\",u)}e.useStyle(s);var f=n.getShallow(\"cursor\");f&&e.attr(\"cursor\",f);var h=l?o?a.r>=a.r0?\"endArc\":\"startArc\":a.endAngle>=a.startAngle?\"endAngle\":\"startAngle\":o?a.height>=0?\"bottom\":\"top\":a.width>=0?\"right\":\"left\",p=vi(n);Xi(e,p,{labelFetcher:i,labelDataIndex:r,defaultText:ug(i.getData(),r),inheritColor:s.fill,defaultOpacity:s.opacity,defaultOutsidePosition:h});var v=e.getTextContent();if(l&&v){var g=n.get([\"label\",\"position\"]);e.textConfig.inside=g===\"middle\"?!0:null,MFt(e,g===\"outside\"?h:g,F0e(o),n.get([\"label\",\"rotate\"]))}zpe(v,p,i.getRawValue(r),function(b){return h0e(t,b)});var y=n.getModel([\"emphasis\"]);sa(e,y.get(\"focus\"),y.get(\"blurScope\"),y.get(\"disabled\")),qi(e,n),LFt(a)&&(e.style.fill=\"none\",e.style.stroke=\"none\",q(e.states,function(b){b.style&&(b.style.fill=b.style.stroke=\"none\")}))}function jFt(e,t){var r=e.get([\"itemStyle\",\"borderColor\"]);if(!r||r===\"none\")return 0;var n=e.get([\"itemStyle\",\"borderWidth\"])||0,a=isNaN(t.width)?Number.MAX_VALUE:Math.abs(t.width),i=isNaN(t.height)?Number.MAX_VALUE:Math.abs(t.height);return Math.min(n,a,i)}var zFt=function(){function e(){}return e}(),_X=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"largeBar\",n}return t.prototype.getDefaultShape=function(){return new zFt},t.prototype.buildPath=function(r,n){for(var a=n.points,i=this.baseDimIdx,o=1-this.baseDimIdx,l=[],s=[],u=this.barWidth,c=0;c<a.length;c+=3)s[i]=u,s[o]=a[c+2],l[i]=a[c+i],l[o]=a[c+o],r.rect(l[0],l[1],s[0],s[1])},t}(Vr);function TX(e,t,r,n){var a=e.getData(),i=a.getLayout(\"valueAxisHorizontal\")?1:0,o=a.getLayout(\"largeDataIndices\"),l=a.getLayout(\"size\"),s=e.getModel(\"backgroundStyle\"),u=a.getLayout(\"largeBackgroundPoints\");if(u){var c=new _X({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.baseDimIdx=i,c.largeDataIndices=o,c.barWidth=l,c.useStyle(s.getItemStyle()),t.add(c),r&&r.push(c)}var d=new _X({shape:{points:a.getLayout(\"largePoints\")},incremental:!!n,ignoreCoarsePointer:!0,z2:1});d.baseDimIdx=i,d.largeDataIndices=o,d.barWidth=l,t.add(d),d.useStyle(a.getVisual(\"style\")),d.style.stroke=null,br(d).seriesIndex=e.seriesIndex,e.get(\"silent\")||(d.on(\"mousedown\",IX),d.on(\"mousemove\",IX)),r&&r.push(d)}var IX=cA(function(e){var t=this,r=HFt(t,e.offsetX,e.offsetY);br(t).dataIndex=r>=0?r:null},30,!1);function HFt(e,t,r){for(var n=e.baseDimIdx,a=1-n,i=e.shape.points,o=e.largeDataIndices,l=[],s=[],u=e.barWidth,c=0,d=i.length/3;c<d;c++){var f=c*3;if(s[n]=u,s[a]=i[f+2],l[n]=i[f+n],l[a]=i[f+a],s[a]<0&&(l[a]+=s[a],s[a]=-s[a]),t>=l[0]&&t<=l[0]+s[0]&&r>=l[1]&&r<=l[1]+s[1])return o[c]}return-1}function S0e(e,t,r){if(zm(r,\"cartesian2d\")){var n=t,a=r.getArea();return{x:e?n.x:a.x,y:e?a.y:n.y,width:e?n.width:a.width,height:e?a.height:n.height}}else{var a=r.getArea(),i=t;return{cx:a.cx,cy:a.cy,r0:e?a.r0:i.r0,r:e?a.r:i.r,startAngle:e?i.startAngle:0,endAngle:e?i.endAngle:Math.PI*2}}}function VFt(e,t,r){var n=e.type===\"polar\"?So:Zr;return new n({shape:S0e(t,r,e),silent:!0,z2:0})}function WFt(e){e.registerChartView(OFt),e.registerSeriesModel(IFt),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,wr(_ve,\"bar\")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Tve(\"bar\")),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,C0e(\"bar\")),e.registerAction({type:\"changeAxisOrder\",event:\"changeAxisOrder\",update:\"update\"},function(t,r){var n=t.componentType||\"series\";r.eachComponent({mainType:n,query:t},function(a){t.sortInfo&&a.axis.setCategorySortInfo(t.sortInfo)})})}var kX=Math.PI*2,CS=Math.PI/180;function w0e(e,t){return Na(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function E0e(e,t){var r=w0e(e,t),n=e.get(\"center\"),a=e.get(\"radius\");nt(a)||(a=[0,a]);var i=Ft(r.width,t.getWidth()),o=Ft(r.height,t.getHeight()),l=Math.min(i,o),s=Ft(a[0],l/2),u=Ft(a[1],l/2),c,d,f=e.coordinateSystem;if(f){var h=f.dataToPoint(n);c=h[0]||0,d=h[1]||0}else nt(n)||(n=[n,n]),c=Ft(n[0],i)+r.x,d=Ft(n[1],o)+r.y;return{cx:c,cy:d,r0:s,r:u}}function GFt(e,t,r){t.eachSeriesByType(e,function(n){var a=n.getData(),i=a.mapDimension(\"value\"),o=w0e(n,r),l=E0e(n,r),s=l.cx,u=l.cy,c=l.r,d=l.r0,f=-n.get(\"startAngle\")*CS,h=n.get(\"endAngle\"),p=n.get(\"padAngle\")*CS;h=h===\"auto\"?f-kX:-h*CS;var v=n.get(\"minAngle\")*CS,g=v+p,y=0;a.each(i,function(B){!isNaN(B)&&y++});var b=a.getSum(i),x=Math.PI/(b||y)*2,F=n.get(\"clockwise\"),S=n.get(\"roseType\"),E=n.get(\"stillShowZeroSum\"),w=a.getDataExtent(i);w[0]=0;var D=F?1:-1,A=[f,h],_=D*p/2;cN(A,!F),f=A[0],h=A[1];var I=D0e(n);I.startAngle=f,I.endAngle=h,I.clockwise=F;var M=Math.abs(h-f),T=M,k=0,R=f;if(a.setLayout({viewRect:o,r:c}),a.each(i,function(B,N){var O;if(isNaN(B)){a.setItemLayout(N,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:F,cx:s,cy:u,r0:d,r:S?NaN:c});return}S!==\"area\"?O=b===0&&E?x:B*x:O=M/y,O<g?(O=g,T-=g):k+=B;var z=R+D*O,W=0,L=0;p>O?(W=R+D*O/2,L=W):(W=R+_,L=z-_),a.setItemLayout(N,{angle:O,startAngle:W,endAngle:L,clockwise:F,cx:s,cy:u,r0:d,r:S?yn(B,w,[d,c]):c}),R=z}),T<kX&&y)if(T<=.001){var P=M/y;a.each(i,function(B,N){if(!isNaN(B)){var O=a.getItemLayout(N);O.angle=P;var z=0,W=0;P<p?(z=f+D*(N+1/2)*P,W=z):(z=f+D*N*P+_,W=f+D*(N+1)*P-_),O.startAngle=z,O.endAngle=W}})}else x=T/k,R=f,a.each(i,function(B,N){if(!isNaN(B)){var O=a.getItemLayout(N),z=O.angle===g?g:B*x,W=0,L=0;z<p?(W=R+D*z/2,L=W):(W=R+_,L=R+D*z-_),O.startAngle=W,O.endAngle=L,R+=D*z}})})}var D0e=rn();function hC(e){return{seriesType:e,reset:function(t,r){var n=r.findComponents({mainType:\"legend\"});if(!(!n||!n.length)){var a=t.getData();a.filterSelf(function(i){for(var o=a.getName(i),l=0;l<n.length;l++)if(!n[l].isSelected(o))return!1;return!0})}}}}var UFt=Math.PI/180;function RX(e,t,r,n,a,i,o,l,s,u){if(e.length<2)return;function c(v){for(var g=v.rB,y=g*g,b=0;b<v.list.length;b++){var x=v.list[b],F=Math.abs(x.label.y-r),S=n+x.len,E=S*S,w=Math.sqrt(Math.abs((1-F*F/y)*E)),D=t+(w+x.len2)*a,A=D-x.label.x,_=x.targetTextWidth-A*a;A0e(x,_,!0),x.label.x=D}}function d(v){for(var g={list:[],maxY:0},y={list:[],maxY:0},b=0;b<v.length;b++)if(v[b].labelAlignTo===\"none\"){var x=v[b],F=x.label.y>r?y:g,S=Math.abs(x.label.y-r);if(S>=F.maxY){var E=x.label.x-t-x.len2*a,w=n+x.len,D=Math.abs(E)<w?Math.sqrt(S*S/(1-E*E/w/w)):w;F.rB=D,F.maxY=S}F.list.push(x)}c(g),c(y)}for(var f=e.length,h=0;h<f;h++)if(e[h].position===\"outer\"&&e[h].labelAlignTo===\"labelLine\"){var p=e[h].label.x-u;e[h].linePoints[1][0]+=p,e[h].label.x=u}Xve(e,s,s+o)&&d(e)}function KFt(e,t,r,n,a,i,o,l){for(var s=[],u=[],c=Number.MAX_VALUE,d=-Number.MAX_VALUE,f=0;f<e.length;f++){var h=e[f].label;wI(e[f])||(h.x<t?(c=Math.min(c,h.x),s.push(e[f])):(d=Math.max(d,h.x),u.push(e[f])))}for(var f=0;f<e.length;f++){var p=e[f];if(!wI(p)&&p.linePoints){if(p.labelStyleWidth!=null)continue;var h=p.label,v=p.linePoints,g=void 0;p.labelAlignTo===\"edge\"?h.x<t?g=v[2][0]-p.labelDistance-o-p.edgeDistance:g=o+a-p.edgeDistance-v[2][0]-p.labelDistance:p.labelAlignTo===\"labelLine\"?h.x<t?g=c-o-p.bleedMargin:g=o+a-d-p.bleedMargin:h.x<t?g=h.x-o-p.bleedMargin:g=o+a-h.x-p.bleedMargin,p.targetTextWidth=g,A0e(p,g)}}RX(u,t,r,n,1,a,i,o,l,d),RX(s,t,r,n,-1,a,i,o,l,c);for(var f=0;f<e.length;f++){var p=e[f];if(!wI(p)&&p.linePoints){var h=p.label,v=p.linePoints,y=p.labelAlignTo===\"edge\",b=h.style.padding,x=b?b[1]+b[3]:0,F=h.style.backgroundColor?0:x,S=p.rect.width+F,E=v[1][0]-v[2][0];y?h.x<t?v[2][0]=o+p.edgeDistance+S+p.labelDistance:v[2][0]=o+a-p.edgeDistance-S-p.labelDistance:(h.x<t?v[2][0]=h.x+p.labelDistance:v[2][0]=h.x-p.labelDistance,v[1][0]=v[2][0]+E),v[1][1]=v[2][1]=h.y}}}function A0e(e,t,r){if(r===void 0&&(r=!1),e.labelStyleWidth==null){var n=e.label,a=n.style,i=e.rect,o=a.backgroundColor,l=a.padding,s=l?l[1]+l[3]:0,u=a.overflow,c=i.width+(o?0:s);if(t<c||r){var d=i.height;if(u&&u.match(\"break\")){n.setStyle(\"backgroundColor\",null),n.setStyle(\"width\",t-s);var f=n.getBoundingRect();n.setStyle(\"width\",Math.ceil(f.width)),n.setStyle(\"backgroundColor\",o)}else{var h=t-s,p=t<c?h:r?h>e.unconstrainedWidth?null:h:null;n.setStyle(\"width\",p)}var v=n.getBoundingRect();i.width=v.width;var g=(n.style.margin||0)+2.1;i.height=v.height+g,i.y-=(i.height-d)/2}}}function wI(e){return e.position===\"center\"}function YFt(e){var t=e.getData(),r=[],n,a,i=!1,o=(e.get(\"minShowLabelAngle\")||0)*UFt,l=t.getLayout(\"viewRect\"),s=t.getLayout(\"r\"),u=l.width,c=l.x,d=l.y,f=l.height;function h(E){E.ignore=!0}function p(E){if(!E.ignore)return!0;for(var w in E.states)if(E.states[w].ignore===!1)return!0;return!1}t.each(function(E){var w=t.getItemGraphicEl(E),D=w.shape,A=w.getTextContent(),_=w.getTextGuideLine(),I=t.getItemModel(E),M=I.getModel(\"label\"),T=M.get(\"position\")||I.get([\"emphasis\",\"label\",\"position\"]),k=M.get(\"distanceToLabelLine\"),R=M.get(\"alignTo\"),P=Ft(M.get(\"edgeDistance\"),u),B=M.get(\"bleedMargin\"),N=I.getModel(\"labelLine\"),O=N.get(\"length\");O=Ft(O,u);var z=N.get(\"length2\");if(z=Ft(z,u),Math.abs(D.endAngle-D.startAngle)<o){q(A.states,h),A.ignore=!0,_&&(q(_.states,h),_.ignore=!0);return}if(p(A)){var W=(D.startAngle+D.endAngle)/2,L=Math.cos(W),j=Math.sin(W),H,V,U,Q;n=D.cx,a=D.cy;var K=T===\"inside\"||T===\"inner\";if(T===\"center\")H=D.cx,V=D.cy,Q=\"center\";else{var Y=(K?(D.r+D.r0)/2*L:D.r*L)+n,ee=(K?(D.r+D.r0)/2*j:D.r*j)+a;if(H=Y+L*3,V=ee+j*3,!K){var J=Y+L*(O+s-D.r),X=ee+j*(O+s-D.r),ce=J+(L<0?-1:1)*z,oe=X;R===\"edge\"?H=L<0?c+P:c+u-P:H=ce+(L<0?-k:k),V=oe,U=[[Y,ee],[J,X],[ce,oe]]}Q=K?\"center\":R===\"edge\"?L>0?\"right\":\"left\":L>0?\"left\":\"right\"}var ue=Math.PI,ie=0,fe=M.get(\"rotate\");if(nn(fe))ie=fe*(ue/180);else if(T===\"center\")ie=0;else if(fe===\"radial\"||fe===!0){var xe=L<0?-W+ue:-W;ie=xe}else if(fe===\"tangential\"&&T!==\"outside\"&&T!==\"outer\"){var Ee=Math.atan2(L,j);Ee<0&&(Ee=ue*2+Ee);var De=j>0;De&&(Ee=ue+Ee),ie=Ee-ue}if(i=!!ie,A.x=H,A.y=V,A.rotation=ie,A.setStyle({verticalAlign:\"middle\"}),K){A.setStyle({align:Q});var Fe=A.states.select;Fe&&(Fe.x+=A.x,Fe.y+=A.y)}else{var ye=A.getBoundingRect().clone();ye.applyTransform(A.getComputedTransform());var we=(A.style.margin||0)+2.1;ye.y-=we/2,ye.height+=we,r.push({label:A,labelLine:_,position:T,len:O,len2:z,minTurnAngle:N.get(\"minTurnAngle\"),maxSurfaceAngle:N.get(\"maxSurfaceAngle\"),surfaceNormal:new Ar(L,j),linePoints:U,textAlign:Q,labelDistance:k,labelAlignTo:R,edgeDistance:P,bleedMargin:B,rect:ye,unconstrainedWidth:ye.width,labelStyleWidth:A.style.width})}w.setTextConfig({inside:K})}}),!i&&e.get(\"avoidLabelOverlap\")&&KFt(r,n,a,s,u,f,c,d);for(var v=0;v<r.length;v++){var g=r[v],y=g.label,b=g.labelLine,x=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),x&&(q(y.states,h),y.ignore=!0);var F=y.states.select;F&&(F.x+=y.x,F.y+=y.y)}if(b){var S=g.linePoints;x||!S?(q(b.states,h),b.ignore=!0):(Kve(S,g.minTurnAngle),gCt(S,g.surfaceNormal,g.maxSurfaceAngle),b.setShape({points:S}),y.__hostTarget.textGuideLineConfig={anchor:new Ar(S[0][0],S[0][1])})}}}var qFt=function(e){Re(t,e);function t(r,n,a){var i=e.call(this)||this;i.z2=2;var o=new Jr;return i.setTextContent(o),i.updateData(r,n,a,!0),i}return t.prototype.updateData=function(r,n,a,i){var o=this,l=r.hostModel,s=r.getItemModel(n),u=s.getModel(\"emphasis\"),c=r.getItemLayout(n),d=Xe(bp(s.getModel(\"itemStyle\"),c,!0),c);if(isNaN(d.startAngle)){o.setShape(d);return}if(i){o.setShape(d);var f=l.getShallow(\"animationType\");l.ecModel.ssr?(Yn(o,{scaleX:0,scaleY:0},l,{dataIndex:n,isFrom:!0}),o.originX=d.cx,o.originY=d.cy):f===\"scale\"?(o.shape.r=c.r0,Yn(o,{shape:{r:c.r}},l,n)):a!=null?(o.setShape({startAngle:a,endAngle:a}),Yn(o,{shape:{startAngle:c.startAngle,endAngle:c.endAngle}},l,n)):(o.shape.endAngle=c.startAngle,cn(o,{shape:{endAngle:c.endAngle}},l,n))}else Su(o),cn(o,{shape:d},l,n);o.useStyle(r.getItemVisual(n,\"style\")),qi(o,s);var h=(c.startAngle+c.endAngle)/2,p=l.get(\"selectedOffset\"),v=Math.cos(h)*p,g=Math.sin(h)*p,y=s.getShallow(\"cursor\");y&&o.attr(\"cursor\",y),this._updateLabel(l,r,n),o.ensureState(\"emphasis\").shape=Xe({r:c.r+(u.get(\"scale\")&&u.get(\"scaleSize\")||0)},bp(u.getModel(\"itemStyle\"),c)),Xe(o.ensureState(\"select\"),{x:v,y:g,shape:bp(s.getModel([\"select\",\"itemStyle\"]),c)}),Xe(o.ensureState(\"blur\"),{shape:bp(s.getModel([\"blur\",\"itemStyle\"]),c)});var b=o.getTextGuideLine(),x=o.getTextContent();b&&Xe(b.ensureState(\"select\"),{x:v,y:g}),Xe(x.ensureState(\"select\"),{x:v,y:g}),sa(this,u.get(\"focus\"),u.get(\"blurScope\"),u.get(\"disabled\"))},t.prototype._updateLabel=function(r,n,a){var i=this,o=n.getItemModel(a),l=o.getModel(\"labelLine\"),s=n.getItemVisual(a,\"style\"),u=s&&s.fill,c=s&&s.opacity;Xi(i,vi(o),{labelFetcher:n.hostModel,labelDataIndex:a,inheritColor:u,defaultOpacity:c,defaultText:r.getFormattedLabel(a,\"normal\")||n.getName(a)});var d=i.getTextContent();i.setTextConfig({position:null,rotation:null}),d.attr({z2:10});var f=r.get([\"label\",\"position\"]);if(f!==\"outside\"&&f!==\"outer\")i.removeTextGuideLine();else{var h=this.getTextGuideLine();h||(h=new To,this.setTextGuideLine(h)),i$(this,o$(o),{stroke:u,opacity:cu(l.get([\"lineStyle\",\"opacity\"]),c,1)})}},t}(So),XFt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.ignoreLabelLineUpdate=!0,r}return t.prototype.render=function(r,n,a,i){var o=r.getData(),l=this._data,s=this.group,u;if(!l&&o.count()>0){for(var c=o.getItemLayout(0),d=1;isNaN(c&&c.startAngle)&&d<o.count();++d)c=o.getItemLayout(d);c&&(u=c.startAngle)}if(this._emptyCircleSector&&s.remove(this._emptyCircleSector),o.count()===0&&r.get(\"showEmptyCircle\")){var f=D0e(r),h=new So({shape:Xe(E0e(r,a),f)});h.useStyle(r.getModel(\"emptyCircleStyle\").getItemStyle()),this._emptyCircleSector=h,s.add(h)}o.diff(l).add(function(p){var v=new qFt(o,p,u);o.setItemGraphicEl(p,v),s.add(v)}).update(function(p,v){var g=l.getItemGraphicEl(v);g.updateData(o,p,u),g.off(\"click\"),s.add(g),o.setItemGraphicEl(p,g)}).remove(function(p){var v=l.getItemGraphicEl(p);k2(v,r,p)}).execute(),YFt(r),r.get(\"animationTypeUpdate\")!==\"expansion\"&&(this._data=o)},t.prototype.dispose=function(){},t.prototype.containPoint=function(r,n){var a=n.getData(),i=a.getItemLayout(0);if(i){var o=r[0]-i.cx,l=r[1]-i.cy,s=Math.sqrt(o*o+l*l);return s<=i.r&&s>=i.r0}},t.type=\"pie\",t}(Cn);function s1(e,t,r){t=nt(t)&&{coordDimensions:t}||Xe({encodeDefine:e.getEncode()},t);var n=e.getSource(),a=i1(n,t).dimensions,i=new xo(a,e);return i.initData(n,r),i}var pC=function(){function e(t,r){this._getDataWithEncodedVisual=t,this._getRawData=r}return e.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},e.prototype.containName=function(t){var r=this._getRawData();return r.indexOfName(t)>=0},e.prototype.indexOfName=function(t){var r=this._getDataWithEncodedVisual();return r.indexOfName(t)},e.prototype.getItemVisual=function(t,r){var n=this._getDataWithEncodedVisual();return n.getItemVisual(t,r)},e}(),JFt=rn(),ZFt=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new pC(Pt(this.getData,this),Pt(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return s1(this,{coordDimensions:[\"value\"],encodeDefaulter:wr(MN,this)})},t.prototype.getDataParams=function(r){var n=this.getData(),a=JFt(n),i=a.seats;if(!i){var o=[];n.each(n.mapDimension(\"value\"),function(s){o.push(s)}),i=a.seats=Yhe(o,n.hostModel.get(\"percentPrecision\"))}var l=e.prototype.getDataParams.call(this,r);return l.percent=i[r]||0,l.$vars.push(\"percent\"),l},t.prototype._defaultLabelLine=function(r){nm(r,\"labelLine\",[\"show\"]);var n=r.labelLine,a=r.emphasis.labelLine;n.show=n.show&&r.label.show,a.show=a.show&&r.emphasis.label.show},t.type=\"series.pie\",t.defaultOption={z:2,legendHoverLink:!0,colorBy:\"data\",center:[\"50%\",\"50%\"],radius:[0,\"75%\"],clockwise:!0,startAngle:90,endAngle:\"auto\",padAngle:0,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:\"truncate\",position:\"outer\",alignTo:\"none\",edgeDistance:\"25%\",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:\"solid\"}},itemStyle:{borderWidth:1,borderJoin:\"round\"},showEmptyCircle:!0,emptyCircleStyle:{color:\"lightgray\",opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:\"expansion\",animationDuration:1e3,animationTypeUpdate:\"transition\",animationEasingUpdate:\"cubicInOut\",animationDurationUpdate:500,animationEasing:\"cubicInOut\"},t}(_n);function QFt(e){return{seriesType:e,reset:function(t,r){var n=t.getData();n.filterSelf(function(a){var i=n.mapDimension(\"value\"),o=n.get(i,a);return!(nn(o)&&!isNaN(o)&&o<0)})}}}function eSt(e){e.registerChartView(XFt),e.registerSeriesModel(ZFt),Wme(\"pie\",e.registerAction),e.registerLayout(wr(GFt,\"pie\")),e.registerProcessor(hC(\"pie\")),e.registerProcessor(QFt(\"pie\"))}var tSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r}return t.prototype.getInitialData=function(r,n){return wc(null,this,{useEncodeDefaulter:!0})},t.prototype.getProgressive=function(){var r=this.option.progressive;return r??(this.option.large?5e3:this.get(\"progressive\"))},t.prototype.getProgressiveThreshold=function(){var r=this.option.progressiveThreshold;return r??(this.option.large?1e4:this.get(\"progressiveThreshold\"))},t.prototype.brushSelector=function(r,n,a){return a.point(n.getItemLayout(r))},t.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:\"\"},t.type=\"series.scatter\",t.dependencies=[\"grid\",\"polar\",\"geo\",\"singleAxis\",\"calendar\"],t.defaultOption={coordinateSystem:\"cartesian2d\",z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:\"#212121\"}},universalTransition:{divideShape:\"clone\"}},t}(_n),_0e=4,rSt=function(){function e(){}return e}(),nSt=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n._off=0,n.hoverDataIdx=-1,n}return t.prototype.getDefaultShape=function(){return new rSt},t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.buildPath=function(r,n){var a=n.points,i=n.size,o=this.symbolProxy,l=o.shape,s=r.getContext?r.getContext():r,u=s&&i[0]<_0e,c=this.softClipShape,d;if(u){this._ctx=s;return}for(this._ctx=null,d=this._off;d<a.length;){var f=a[d++],h=a[d++];isNaN(f)||isNaN(h)||c&&!c.contain(f,h)||(l.x=f-i[0]/2,l.y=h-i[1]/2,l.width=i[0],l.height=i[1],o.buildPath(r,l,!0))}this.incremental&&(this._off=d,this.notClear=!0)},t.prototype.afterBrush=function(){var r=this.shape,n=r.points,a=r.size,i=this._ctx,o=this.softClipShape,l;if(i){for(l=this._off;l<n.length;){var s=n[l++],u=n[l++];isNaN(s)||isNaN(u)||o&&!o.contain(s,u)||i.fillRect(s-a[0]/2,u-a[1]/2,a[0],a[1])}this.incremental&&(this._off=l,this.notClear=!0)}},t.prototype.findDataIndex=function(r,n){for(var a=this.shape,i=a.points,o=a.size,l=Math.max(o[0],4),s=Math.max(o[1],4),u=i.length/2-1;u>=0;u--){var c=u*2,d=i[c]-l/2,f=i[c+1]-s/2;if(r>=d&&n>=f&&r<=d+l&&n<=f+s)return u}return-1},t.prototype.contain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect();if(r=a[0],n=a[1],i.contain(r,n)){var o=this.hoverDataIdx=this.findDataIndex(r,n);return o>=0}return this.hoverDataIdx=-1,!1},t.prototype.getBoundingRect=function(){var r=this._rect;if(!r){for(var n=this.shape,a=n.points,i=n.size,o=i[0],l=i[1],s=1/0,u=1/0,c=-1/0,d=-1/0,f=0;f<a.length;){var h=a[f++],p=a[f++];s=Math.min(h,s),c=Math.max(h,c),u=Math.min(p,u),d=Math.max(p,d)}r=this._rect=new Ir(s-o/2,u-l/2,c-s+o,d-u+l)}return r},t}(Vr),aSt=function(){function e(){this.group=new pr}return e.prototype.updateData=function(t,r){this._clear();var n=this._create();n.setShape({points:t.getLayout(\"points\")}),this._setCommon(n,t,r)},e.prototype.updateLayout=function(t){var r=t.getLayout(\"points\");this.group.eachChild(function(n){if(n.startIndex!=null){var a=(n.endIndex-n.startIndex)*2,i=n.startIndex*4*2;r=new Float32Array(r.buffer,i,a)}n.setShape(\"points\",r),n.reset()})},e.prototype.incrementalPrepareUpdate=function(t){this._clear()},e.prototype.incrementalUpdate=function(t,r,n){var a=this._newAdded[0],i=r.getLayout(\"points\"),o=a&&a.shape.points;if(o&&o.length<2e4){var l=o.length,s=new Float32Array(l+i.length);s.set(o),s.set(i,l),a.endIndex=t.end,a.setShape({points:s})}else{this._newAdded=[];var u=this._create();u.startIndex=t.start,u.endIndex=t.end,u.incremental=!0,u.setShape({points:i}),this._setCommon(u,r,n)}},e.prototype.eachRendered=function(t){this._newAdded[0]&&t(this._newAdded[0])},e.prototype._create=function(){var t=new nSt({cursor:\"default\"});return t.ignoreCoarsePointer=!0,this.group.add(t),this._newAdded.push(t),t},e.prototype._setCommon=function(t,r,n){var a=r.hostModel;n=n||{};var i=r.getVisual(\"symbolSize\");t.setShape(\"size\",i instanceof Array?i:[i,i]),t.softClipShape=n.clipShape||null,t.symbolProxy=_a(r.getVisual(\"symbol\"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var o=t.shape.size[0]<_0e;t.useStyle(a.getModel(\"itemStyle\").getItemStyle(o?[\"color\",\"shadowBlur\",\"shadowColor\"]:[\"color\"]));var l=r.getVisual(\"style\"),s=l&&l.fill;s&&t.setColor(s);var u=br(t);u.seriesIndex=a.seriesIndex,t.on(\"mousemove\",function(c){u.dataIndex=null;var d=t.hoverDataIdx;d>=0&&(u.dataIndex=d+(t.startIndex||0))})},e.prototype.remove=function(){this._clear()},e.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},e}(),iSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=r.getData(),o=this._updateSymbolDraw(i,r);o.updateData(i,{clipShape:this._getClipShape(r)}),this._finished=!0},t.prototype.incrementalPrepareRender=function(r,n,a){var i=r.getData(),o=this._updateSymbolDraw(i,r);o.incrementalPrepareUpdate(i),this._finished=!1},t.prototype.incrementalRender=function(r,n,a){this._symbolDraw.incrementalUpdate(r,n.getData(),{clipShape:this._getClipShape(n)}),this._finished=r.end===n.getData().count()},t.prototype.updateTransform=function(r,n,a){var i=r.getData();if(this.group.dirty(),!this._finished||i.count()>1e4)return{update:!0};var o=fC(\"\").reset(r,n,a);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},t.prototype.eachRendered=function(r){this._symbolDraw&&this._symbolDraw.eachRendered(r)},t.prototype._getClipShape=function(r){if(r.get(\"clip\",!0)){var n=r.coordinateSystem;return n&&n.getArea&&n.getArea(.1)}},t.prototype._updateSymbolDraw=function(r,n){var a=this._symbolDraw,i=n.pipelineContext,o=i.large;return(!a||o!==this._isLargeDraw)&&(a&&a.remove(),a=this._symbolDraw=o?new aSt:new cC,this._isLargeDraw=o,this.group.removeAll()),this.group.add(a.group),a},t.prototype.remove=function(r,n){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},t.prototype.dispose=function(){},t.type=\"scatter\",t}(Cn),oSt=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.type=\"grid\",t.dependencies=[\"xAxis\",\"yAxis\"],t.layoutMode=\"box\",t.defaultOption={show:!1,z:0,left:\"10%\",top:60,right:\"10%\",bottom:70,containLabel:!1,backgroundColor:\"rgba(0,0,0,0)\",borderWidth:1,borderColor:\"#ccc\"},t}(jr),OP=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents(\"grid\",Oa).models[0]},t.type=\"cartesian2dAxis\",t}(jr);Ca(OP,l1);var T0e={show:!0,z:0,inverse:!1,name:\"\",nameLocation:\"end\",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:\"...\",placeholder:\".\"},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:\"#6E7079\",width:1,type:\"solid\"},symbol:[\"none\",\"none\"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,showMinLine:!0,showMaxLine:!0,lineStyle:{color:[\"#E0E6F1\"],width:1,type:\"solid\"}},splitArea:{show:!1,areaStyle:{color:[\"rgba(250,250,250,0.2)\",\"rgba(210,219,238,0.2)\"]}}},lSt=Er({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:\"auto\"},axisLabel:{interval:\"auto\"}},T0e),h$=Er({boundaryGap:[0,0],axisLine:{show:\"auto\"},axisTick:{show:\"auto\"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:\"#F4F7FD\",width:1}}},T0e),sSt=Er({splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:\"bold\"}}},splitLine:{show:!1}},h$),uSt=rr({logBase:10},h$);const I0e={category:lSt,value:h$,time:sSt,log:uSt};var cSt={value:1,category:1,time:1,log:1};function cg(e,t,r,n){q(cSt,function(a,i){var o=Er(Er({},I0e[i],!0),n,!0),l=function(s){Re(u,s);function u(){var c=s!==null&&s.apply(this,arguments)||this;return c.type=t+\"Axis.\"+i,c}return u.prototype.mergeDefaultAndTheme=function(c,d){var f=M2(this),h=f?Qg(c):{},p=d.getTheme();Er(c,p.get(i+\"Axis\")),Er(c,this.getDefaultOption()),c.type=MX(c),f&&Xf(c,h,f)},u.prototype.optionUpdated=function(){var c=this.option;c.type===\"category\"&&(this.__ordinalMeta=AP.createByAxisModel(this))},u.prototype.getCategories=function(c){var d=this.option;if(d.type===\"category\")return c?d.data:this.__ordinalMeta.categories},u.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},u.type=t+\"Axis.\"+i,u.defaultOption=o,u}(r);e.registerComponentModel(l)}),e.registerSubTypeDefaulter(t+\"Axis\",MX)}function MX(e){return e.type||(e.data?\"category\":\"value\")}var dSt=function(){function e(t){this.type=\"cartesian\",this._dimList=[],this._axes={},this.name=t||\"\"}return e.prototype.getAxis=function(t){return this._axes[t]},e.prototype.getAxes=function(){return ot(this._dimList,function(t){return this._axes[t]},this)},e.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),hn(this.getAxes(),function(r){return r.scale.type===t})},e.prototype.addAxis=function(t){var r=t.dim;this._axes[r]=t,this._dimList.push(r)},e}(),BP=[\"x\",\"y\"];function PX(e){return e.type===\"interval\"||e.type===\"time\"}var fSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"cartesian2d\",r.dimensions=BP,r}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var r=this.getAxis(\"x\").scale,n=this.getAxis(\"y\").scale;if(!(!PX(r)||!PX(n))){var a=r.getExtent(),i=n.getExtent(),o=this.dataToPoint([a[0],i[0]]),l=this.dataToPoint([a[1],i[1]]),s=a[1]-a[0],u=i[1]-i[0];if(!(!s||!u)){var c=(l[0]-o[0])/s,d=(l[1]-o[1])/u,f=o[0]-a[0]*c,h=o[1]-i[0]*d,p=this._transform=[c,0,0,d,f,h];this._invTransform=Bm([],p)}}},t.prototype.getBaseAxis=function(){return this.getAxesByScale(\"ordinal\")[0]||this.getAxesByScale(\"time\")[0]||this.getAxis(\"x\")},t.prototype.containPoint=function(r){var n=this.getAxis(\"x\"),a=this.getAxis(\"y\");return n.contain(n.toLocalCoord(r[0]))&&a.contain(a.toLocalCoord(r[1]))},t.prototype.containData=function(r){return this.getAxis(\"x\").containData(r[0])&&this.getAxis(\"y\").containData(r[1])},t.prototype.containZone=function(r,n){var a=this.dataToPoint(r),i=this.dataToPoint(n),o=this.getArea(),l=new Ir(a[0],a[1],i[0]-a[0],i[1]-a[1]);return o.intersect(l)},t.prototype.dataToPoint=function(r,n,a){a=a||[];var i=r[0],o=r[1];if(this._transform&&i!=null&&isFinite(i)&&o!=null&&isFinite(o))return Ii(a,r,this._transform);var l=this.getAxis(\"x\"),s=this.getAxis(\"y\");return a[0]=l.toGlobalCoord(l.dataToCoord(i,n)),a[1]=s.toGlobalCoord(s.dataToCoord(o,n)),a},t.prototype.clampData=function(r,n){var a=this.getAxis(\"x\").scale,i=this.getAxis(\"y\").scale,o=a.getExtent(),l=i.getExtent(),s=a.parse(r[0]),u=i.parse(r[1]);return n=n||[],n[0]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),n[1]=Math.min(Math.max(Math.min(l[0],l[1]),u),Math.max(l[0],l[1])),n},t.prototype.pointToData=function(r,n){var a=[];if(this._invTransform)return Ii(a,r,this._invTransform);var i=this.getAxis(\"x\"),o=this.getAxis(\"y\");return a[0]=i.coordToData(i.toLocalCoord(r[0]),n),a[1]=o.coordToData(o.toLocalCoord(r[1]),n),a},t.prototype.getOtherAxis=function(r){return this.getAxis(r.dim===\"x\"?\"y\":\"x\")},t.prototype.getArea=function(r){r=r||0;var n=this.getAxis(\"x\").getGlobalExtent(),a=this.getAxis(\"y\").getGlobalExtent(),i=Math.min(n[0],n[1])-r,o=Math.min(a[0],a[1])-r,l=Math.max(n[0],n[1])-i+r,s=Math.max(a[0],a[1])-o+r;return new Ir(i,o,l,s)},t}(dSt),hSt=function(e){Re(t,e);function t(r,n,a,i,o){var l=e.call(this,r,n,a)||this;return l.index=0,l.type=i||\"value\",l.position=o||\"bottom\",l}return t.prototype.isHorizontal=function(){var r=this.position;return r===\"top\"||r===\"bottom\"},t.prototype.getGlobalExtent=function(r){var n=this.getExtent();return n[0]=this.toGlobalCoord(n[0]),n[1]=this.toGlobalCoord(n[1]),r&&n[0]>n[1]&&n.reverse(),n},t.prototype.pointToData=function(r,n){return this.coordToData(this.toLocalCoord(r[this.dim===\"x\"?0:1]),n)},t.prototype.setCategorySortInfo=function(r){if(this.type!==\"category\")return!1;this.model.option.categorySortInfo=r,this.scale.setSortInfo(r)},t}(Bs);function NP(e,t,r){r=r||{};var n=e.coordinateSystem,a=t.axis,i={},o=a.getAxesOnZeroOf()[0],l=a.position,s=o?\"onZero\":l,u=a.dim,c=n.getRect(),d=[c.x,c.x+c.width,c.y,c.y+c.height],f={left:0,right:1,top:0,bottom:1,onZero:2},h=t.get(\"offset\")||0,p=u===\"x\"?[d[2]-h,d[3]+h]:[d[0]-h,d[1]+h];if(o){var v=o.toGlobalCoord(o.dataToCoord(0));p[f.onZero]=Math.max(Math.min(v,p[1]),p[0])}i.position=[u===\"y\"?p[f[s]]:d[0],u===\"x\"?p[f[s]]:d[3]],i.rotation=Math.PI/2*(u===\"x\"?0:1);var g={top:-1,bottom:1,left:-1,right:1};i.labelDirection=i.tickDirection=i.nameDirection=g[l],i.labelOffset=o?p[f[l]]-p[f.onZero]:0,t.get([\"axisTick\",\"inside\"])&&(i.tickDirection=-i.tickDirection),ui(r.labelInside,t.get([\"axisLabel\",\"inside\"]))&&(i.labelDirection=-i.labelDirection);var y=t.get([\"axisLabel\",\"rotate\"]);return i.labelRotate=s===\"top\"?-y:y,i.z2=1,i}function OX(e){return e.get(\"coordinateSystem\")===\"cartesian2d\"}function BX(e){var t={xAxisModel:null,yAxisModel:null};return q(t,function(r,n){var a=n.replace(/Model$/,\"\"),i=e.getReferringComponents(a,Oa).models[0];t[n]=i}),t}var EI=Math.log;function k0e(e,t,r){var n=vd.prototype,a=n.getTicks.call(r),i=n.getTicks.call(r,!0),o=a.length-1,l=n.getInterval.call(r),s=Pve(e,t),u=s.extent,c=s.fixMin,d=s.fixMax;if(e.type===\"log\"){var f=EI(e.base);u=[EI(u[0])/f,EI(u[1])/f]}e.setExtent(u[0],u[1]),e.calcNiceExtent({splitNumber:o,fixMin:c,fixMax:d});var h=n.getExtent.call(e);c&&(u[0]=h[0]),d&&(u[1]=h[1]);var p=n.getInterval.call(e),v=u[0],g=u[1];if(c&&d)p=(g-v)/o;else if(c)for(g=u[0]+p*o;g<u[1]&&isFinite(g)&&isFinite(u[1]);)p=cI(p),g=u[0]+p*o;else if(d)for(v=u[1]-p*o;v>u[0]&&isFinite(v)&&isFinite(u[0]);)p=cI(p),v=u[1]-p*o;else{var y=e.getTicks().length-1;y>o&&(p=cI(p));var b=p*o;g=Math.ceil(u[1]/p)*p,v=fa(g-b),v<0&&u[0]>=0?(v=0,g=fa(b)):g>0&&u[1]<=0&&(g=0,v=-fa(b))}var x=(a[0].value-i[0].value)/l,F=(a[o].value-i[o].value)/l;n.setExtent.call(e,v+p*x,g+p*F),n.setInterval.call(e,p),(x||F)&&n.setNiceExtent.call(e,v+p,g-p)}var pSt=function(){function e(t,r,n){this.type=\"grid\",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=BP,this._initCartesian(t,r,n),this.model=t}return e.prototype.getRect=function(){return this._rect},e.prototype.update=function(t,r){var n=this._axesMap;this._updateScale(t,this.model);function a(o){var l,s=Ur(o),u=s.length;if(u){for(var c=[],d=u-1;d>=0;d--){var f=+s[d],h=o[f],p=h.model,v=h.scale;_P(v)&&p.get(\"alignTicks\")&&p.get(\"interval\")==null?c.push(h):(sm(v,p),_P(v)&&(l=h))}c.length&&(l||(l=c.pop(),sm(l.scale,l.model)),q(c,function(g){k0e(g.scale,g.model,l.scale)}))}}a(n.x),a(n.y);var i={};q(n.x,function(o){NX(n,\"y\",o,i)}),q(n.y,function(o){NX(n,\"x\",o,i)}),this.resize(this.model,r)},e.prototype.resize=function(t,r,n){var a=t.getBoxLayoutParams(),i=!n&&t.get(\"containLabel\"),o=Na(a,{width:r.getWidth(),height:r.getHeight()});this._rect=o;var l=this._axesList;s(),i&&(q(l,function(u){if(!u.model.get([\"axisLabel\",\"inside\"])){var c=Pxt(u);if(c){var d=u.isHorizontal()?\"height\":\"width\",f=u.model.get([\"axisLabel\",\"margin\"]);o[d]-=c[d]+f,u.position===\"top\"?o.y+=c.height+f:u.position===\"left\"&&(o.x+=c.width+f)}}}),s()),q(this._coordsList,function(u){u.calcAffineTransform()});function s(){q(l,function(u){var c=u.isHorizontal(),d=c?[0,o.width]:[0,o.height],f=u.inverse?1:0;u.setExtent(d[f],d[1-f]),mSt(u,c?o.x:o.y)})}},e.prototype.getAxis=function(t,r){var n=this._axesMap[t];if(n!=null)return n[r||0]},e.prototype.getAxes=function(){return this._axesList.slice()},e.prototype.getCartesian=function(t,r){if(t!=null&&r!=null){var n=\"x\"+t+\"y\"+r;return this._coordsMap[n]}ir(t)&&(r=t.yAxisIndex,t=t.xAxisIndex);for(var a=0,i=this._coordsList;a<i.length;a++)if(i[a].getAxis(\"x\").index===t||i[a].getAxis(\"y\").index===r)return i[a]},e.prototype.getCartesians=function(){return this._coordsList.slice()},e.prototype.convertToPixel=function(t,r,n){var a=this._findConvertTarget(r);return a.cartesian?a.cartesian.dataToPoint(n):a.axis?a.axis.toGlobalCoord(a.axis.dataToCoord(n)):null},e.prototype.convertFromPixel=function(t,r,n){var a=this._findConvertTarget(r);return a.cartesian?a.cartesian.pointToData(n):a.axis?a.axis.coordToData(a.axis.toLocalCoord(n)):null},e.prototype._findConvertTarget=function(t){var r=t.seriesModel,n=t.xAxisModel||r&&r.getReferringComponents(\"xAxis\",Oa).models[0],a=t.yAxisModel||r&&r.getReferringComponents(\"yAxis\",Oa).models[0],i=t.gridModel,o=this._coordsList,l,s;if(r)l=r.coordinateSystem,Mr(o,l)<0&&(l=null);else if(n&&a)l=this.getCartesian(n.componentIndex,a.componentIndex);else if(n)s=this.getAxis(\"x\",n.componentIndex);else if(a)s=this.getAxis(\"y\",a.componentIndex);else if(i){var u=i.coordinateSystem;u===this&&(l=this._coordsList[0])}return{cartesian:l,axis:s}},e.prototype.containPoint=function(t){var r=this._coordsList[0];if(r)return r.containPoint(t)},e.prototype._initCartesian=function(t,r,n){var a=this,i=this,o={left:!1,right:!1,top:!1,bottom:!1},l={x:{},y:{}},s={x:0,y:0};if(r.eachComponent(\"xAxis\",u(\"x\"),this),r.eachComponent(\"yAxis\",u(\"y\"),this),!s.x||!s.y){this._axesMap={},this._axesList=[];return}this._axesMap=l,q(l.x,function(c,d){q(l.y,function(f,h){var p=\"x\"+d+\"y\"+h,v=new fSt(p);v.master=a,v.model=t,a._coordsMap[p]=v,a._coordsList.push(v),v.addAxis(c),v.addAxis(f)})});function u(c){return function(d,f){if(DI(d,t)){var h=d.get(\"position\");c===\"x\"?h!==\"top\"&&h!==\"bottom\"&&(h=o.bottom?\"top\":\"bottom\"):h!==\"left\"&&h!==\"right\"&&(h=o.left?\"right\":\"left\"),o[h]=!0;var p=new hSt(c,sC(d),[0,0],d.get(\"type\"),h),v=p.type===\"category\";p.onBand=v&&d.get(\"boundaryGap\"),p.inverse=d.get(\"inverse\"),d.axis=p,p.model=d,p.grid=i,p.index=f,i._axesList.push(p),l[c][f]=p,s[c]++}}}},e.prototype._updateScale=function(t,r){q(this._axesList,function(a){if(a.scale.setExtent(1/0,-1/0),a.type===\"category\"){var i=a.model.get(\"categorySortInfo\");a.scale.setSortInfo(i)}}),t.eachSeries(function(a){if(OX(a)){var i=BX(a),o=i.xAxisModel,l=i.yAxisModel;if(!DI(o,r)||!DI(l,r))return;var s=this.getCartesian(o.componentIndex,l.componentIndex),u=a.getData(),c=s.getAxis(\"x\"),d=s.getAxis(\"y\");n(u,c),n(u,d)}},this);function n(a,i){q(Q3(a,i.dim),function(o){i.scale.unionExtentFromData(a,o)})}},e.prototype.getTooltipAxes=function(t){var r=[],n=[];return q(this.getCartesians(),function(a){var i=t!=null&&t!==\"auto\"?a.getAxis(t):a.getBaseAxis(),o=a.getOtherAxis(i);Mr(r,i)<0&&r.push(i),Mr(n,o)<0&&n.push(o)}),{baseAxes:r,otherAxes:n}},e.create=function(t,r){var n=[];return t.eachComponent(\"grid\",function(a,i){var o=new e(a,t,r);o.name=\"grid_\"+i,o.resize(a,r,!0),a.coordinateSystem=o,n.push(o)}),t.eachSeries(function(a){if(OX(a)){var i=BX(a),o=i.xAxisModel,l=i.yAxisModel,s=o.getCoordSysModel(),u=s.coordinateSystem;a.coordinateSystem=u.getCartesian(o.componentIndex,l.componentIndex)}}),n},e.dimensions=BP,e}();function DI(e,t){return e.getCoordSysModel()===t}function NX(e,t,r,n){r.getAxesOnZeroOf=function(){return i?[i]:[]};var a=e[t],i,o=r.model,l=o.get([\"axisLine\",\"onZero\"]),s=o.get([\"axisLine\",\"onZeroAxisIndex\"]);if(!l)return;if(s!=null)$X(a[s])&&(i=a[s]);else for(var u in a)if(a.hasOwnProperty(u)&&$X(a[u])&&!n[c(a[u])]){i=a[u];break}i&&(n[c(i)]=!0);function c(d){return d.dim+\"_\"+d.index}}function $X(e){return e&&e.type!==\"category\"&&e.type!==\"time\"&&Mxt(e)}function mSt(e,t){var r=e.getExtent(),n=r[0]+r[1];e.toGlobalCoord=e.dim===\"x\"?function(a){return a+t}:function(a){return n-a+t},e.toLocalCoord=e.dim===\"x\"?function(a){return a-t}:function(a){return n-a+t}}var mf=Math.PI,Vo=function(){function e(t,r){this.group=new pr,this.opt=r,this.axisModel=t,rr(r,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new pr({x:r.position[0],y:r.position[1],rotation:r.rotation});n.updateTransform(),this._transformGroup=n}return e.prototype.hasBuilder=function(t){return!!LX[t]},e.prototype.add=function(t){LX[t](this.opt,this.axisModel,this.group,this._transformGroup)},e.prototype.getGroup=function(){return this.group},e.innerTextLayout=function(t,r,n){var a=nN(r-t),i,o;return ag(a)?(o=n>0?\"top\":\"bottom\",i=\"center\"):ag(a-mf)?(o=n>0?\"bottom\":\"top\",i=\"center\"):(o=\"middle\",a>0&&a<mf?i=n>0?\"right\":\"left\":i=n>0?\"left\":\"right\"),{rotation:a,textAlign:i,textVerticalAlign:o}},e.makeAxisEventDataBase=function(t){var r={componentType:t.mainType,componentIndex:t.componentIndex};return r[t.mainType+\"Index\"]=t.componentIndex,r},e.isLabelSilent=function(t){var r=t.get(\"tooltip\");return t.get(\"silent\")||!(t.get(\"triggerEvent\")||r&&r.show)},e}(),LX={axisLine:function(e,t,r,n){var a=t.get([\"axisLine\",\"show\"]);if(a===\"auto\"&&e.handleAutoShown&&(a=e.handleAutoShown(\"axisLine\")),!!a){var i=t.axis.getExtent(),o=n.transform,l=[i[0],0],s=[i[1],0],u=l[0]>s[0];o&&(Ii(l,l,o),Ii(s,s,o));var c=Xe({lineCap:\"round\"},t.getModel([\"axisLine\",\"lineStyle\"]).getLineStyle()),d=new Xa({shape:{x1:l[0],y1:l[1],x2:s[0],y2:s[1]},style:c,strokeContainThreshold:e.strokeContainThreshold||5,silent:!0,z2:1});og(d.shape,d.style.lineWidth),d.anid=\"line\",r.add(d);var f=t.get([\"axisLine\",\"symbol\"]);if(f!=null){var h=t.get([\"axisLine\",\"symbolSize\"]);At(f)&&(f=[f,f]),(At(h)||nn(h))&&(h=[h,h]);var p=jm(t.get([\"axisLine\",\"symbolOffset\"])||0,h),v=h[0],g=h[1];q([{rotate:e.rotation+Math.PI/2,offset:p[0],r:0},{rotate:e.rotation-Math.PI/2,offset:p[1],r:Math.sqrt((l[0]-s[0])*(l[0]-s[0])+(l[1]-s[1])*(l[1]-s[1]))}],function(y,b){if(f[b]!==\"none\"&&f[b]!=null){var x=_a(f[b],-v/2,-g/2,v,g,c.stroke,!0),F=y.r+y.offset,S=u?s:l;x.attr({rotation:y.rotate,x:S[0]+F*Math.cos(e.rotation),y:S[1]-F*Math.sin(e.rotation),silent:!0,z2:11}),r.add(x)}})}}},axisTickLabel:function(e,t,r,n){var a=ySt(r,n,t,e),i=xSt(r,n,t,e);if(gSt(t,i,a),bSt(r,n,t,e.tickDirection),t.get([\"axisLabel\",\"hideOverlap\"])){var o=Yve(ot(i,function(l){return{label:l,priority:l.z2,defaultAttr:{ignore:l.ignore}}}));Jve(o)}},axisName:function(e,t,r,n){var a=ui(e.axisName,t.get(\"name\"));if(a){var i=t.get(\"nameLocation\"),o=e.nameDirection,l=t.getModel(\"nameTextStyle\"),s=t.get(\"nameGap\")||0,u=t.axis.getExtent(),c=u[0]>u[1]?-1:1,d=[i===\"start\"?u[0]-c*s:i===\"end\"?u[1]+c*s:(u[0]+u[1])/2,zX(i)?e.labelOffset+o*s:0],f,h=t.get(\"nameRotate\");h!=null&&(h=h*mf/180);var p;zX(i)?f=Vo.innerTextLayout(e.rotation,h??e.rotation,o):(f=vSt(e.rotation,i,h||0,u),p=e.axisNameAvailableWidth,p!=null&&(p=Math.abs(p/Math.sin(f.rotation)),!isFinite(p)&&(p=null)));var v=l.getFont(),g=t.get(\"nameTruncate\",!0)||{},y=g.ellipsis,b=ui(e.nameTruncateMaxWidth,g.maxWidth,p),x=new Jr({x:d[0],y:d[1],rotation:f.rotation,silent:Vo.isLabelSilent(t),style:Mn(l,{text:a,font:v,overflow:\"truncate\",width:b,ellipsis:y,fill:l.getTextColor()||t.get([\"axisLine\",\"lineStyle\",\"color\"]),align:l.get(\"align\")||f.textAlign,verticalAlign:l.get(\"verticalAlign\")||f.textVerticalAlign}),z2:1});if(Nm({el:x,componentModel:t,itemName:a}),x.__fullText=a,x.anid=\"name\",t.get(\"triggerEvent\")){var F=Vo.makeAxisEventDataBase(t);F.targetType=\"axisName\",F.name=a,br(x).eventData=F}n.add(x),x.updateTransform(),r.add(x),x.decomposeTransform()}}};function vSt(e,t,r,n){var a=nN(r-e),i,o,l=n[0]>n[1],s=t===\"start\"&&!l||t!==\"start\"&&l;return ag(a-mf/2)?(o=s?\"bottom\":\"top\",i=\"center\"):ag(a-mf*1.5)?(o=s?\"top\":\"bottom\",i=\"center\"):(o=\"middle\",a<mf*1.5&&a>mf/2?i=s?\"left\":\"right\":i=s?\"right\":\"left\"),{rotation:a,textAlign:i,textVerticalAlign:o}}function gSt(e,t,r){if(!Ove(e.axis)){var n=e.get([\"axisLabel\",\"showMinLabel\"]),a=e.get([\"axisLabel\",\"showMaxLabel\"]);t=t||[],r=r||[];var i=t[0],o=t[1],l=t[t.length-1],s=t[t.length-2],u=r[0],c=r[1],d=r[r.length-1],f=r[r.length-2];n===!1?(Jl(i),Jl(u)):jX(i,o)&&(n?(Jl(o),Jl(c)):(Jl(i),Jl(u))),a===!1?(Jl(l),Jl(d)):jX(s,l)&&(a?(Jl(s),Jl(f)):(Jl(l),Jl(d)))}}function Jl(e){e&&(e.ignore=!0)}function jX(e,t){var r=e&&e.getBoundingRect().clone(),n=t&&t.getBoundingRect().clone();if(!(!r||!n)){var a=Jx([]);return lh(a,a,-e.rotation),r.applyTransform(ic([],a,e.getLocalTransform())),n.applyTransform(ic([],a,t.getLocalTransform())),r.intersect(n)}}function zX(e){return e===\"middle\"||e===\"center\"}function R0e(e,t,r,n,a){for(var i=[],o=[],l=[],s=0;s<e.length;s++){var u=e[s].coord;o[0]=u,o[1]=0,l[0]=u,l[1]=r,t&&(Ii(o,o,t),Ii(l,l,t));var c=new Xa({shape:{x1:o[0],y1:o[1],x2:l[0],y2:l[1]},style:n,z2:2,autoBatch:!0,silent:!0});og(c.shape,c.style.lineWidth),c.anid=a+\"_\"+e[s].tickValue,i.push(c)}return i}function ySt(e,t,r,n){var a=r.axis,i=r.getModel(\"axisTick\"),o=i.get(\"show\");if(o===\"auto\"&&n.handleAutoShown&&(o=n.handleAutoShown(\"axisTick\")),!(!o||a.scale.isBlank())){for(var l=i.getModel(\"lineStyle\"),s=n.tickDirection*i.get(\"length\"),u=a.getTicksCoords(),c=R0e(u,t.transform,s,rr(l.getLineStyle(),{stroke:r.get([\"axisLine\",\"lineStyle\",\"color\"])}),\"ticks\"),d=0;d<c.length;d++)e.add(c[d]);return c}}function bSt(e,t,r,n){var a=r.axis,i=r.getModel(\"minorTick\");if(!(!i.get(\"show\")||a.scale.isBlank())){var o=a.getMinorTicksCoords();if(o.length)for(var l=i.getModel(\"lineStyle\"),s=n*i.get(\"length\"),u=rr(l.getLineStyle(),rr(r.getModel(\"axisTick\").getLineStyle(),{stroke:r.get([\"axisLine\",\"lineStyle\",\"color\"])})),c=0;c<o.length;c++)for(var d=R0e(o[c],t.transform,s,u,\"minorticks_\"+c),f=0;f<d.length;f++)e.add(d[f])}}function xSt(e,t,r,n){var a=r.axis,i=ui(n.axisLabelShow,r.get([\"axisLabel\",\"show\"]));if(!(!i||a.scale.isBlank())){var o=r.getModel(\"axisLabel\"),l=o.get(\"margin\"),s=a.getViewLabels(),u=(ui(n.labelRotate,o.get(\"rotate\"))||0)*mf/180,c=Vo.innerTextLayout(n.rotation,u,n.labelDirection),d=r.getCategories&&r.getCategories(!0),f=[],h=Vo.isLabelSilent(r),p=r.get(\"triggerEvent\");return q(s,function(v,g){var y=a.scale.type===\"ordinal\"?a.scale.getRawOrdinalNumber(v.tickValue):v.tickValue,b=v.formattedLabel,x=v.rawLabel,F=o;if(d&&d[y]){var S=d[y];ir(S)&&S.textStyle&&(F=new pn(S.textStyle,o,r.ecModel))}var E=F.getTextColor()||r.get([\"axisLine\",\"lineStyle\",\"color\"]),w=a.dataToCoord(y),D=F.getShallow(\"align\",!0)||c.textAlign,A=Fr(F.getShallow(\"alignMinLabel\",!0),D),_=Fr(F.getShallow(\"alignMaxLabel\",!0),D),I=F.getShallow(\"verticalAlign\",!0)||F.getShallow(\"baseline\",!0)||c.textVerticalAlign,M=Fr(F.getShallow(\"verticalAlignMinLabel\",!0),I),T=Fr(F.getShallow(\"verticalAlignMaxLabel\",!0),I),k=new Jr({x:w,y:n.labelOffset+n.labelDirection*l,rotation:c.rotation,silent:h,z2:10+(v.level||0),style:Mn(F,{text:b,align:g===0?A:g===s.length-1?_:D,verticalAlign:g===0?M:g===s.length-1?T:I,fill:er(E)?E(a.type===\"category\"?x:a.type===\"value\"?y+\"\":y,g):E})});if(k.anid=\"label_\"+y,Nm({el:k,componentModel:r,itemName:b,formatterParamsExtra:{isTruncated:function(){return k.isTruncated},value:x,tickIndex:g}}),p){var R=Vo.makeAxisEventDataBase(r);R.targetType=\"axisLabel\",R.value=x,R.tickIndex=g,a.type===\"category\"&&(R.dataIndex=y),br(k).eventData=R}t.add(k),k.updateTransform(),f.push(k),e.add(k),k.decomposeTransform()}),f}}function CSt(e,t){var r={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return FSt(r,e,t),r.seriesInvolved&&wSt(r,e),r}function FSt(e,t,r){var n=t.getComponent(\"tooltip\"),a=t.getComponent(\"axisPointer\"),i=a.get(\"link\",!0)||[],o=[];q(r.getCoordinateSystems(),function(l){if(!l.axisPointerEnabled)return;var s=H2(l.model),u=e.coordSysAxesInfo[s]={};e.coordSysMap[s]=l;var c=l.model,d=c.getModel(\"tooltip\",n);if(q(l.getAxes(),wr(v,!1,null)),l.getTooltipAxes&&n&&d.get(\"show\")){var f=d.get(\"trigger\")===\"axis\",h=d.get([\"axisPointer\",\"type\"])===\"cross\",p=l.getTooltipAxes(d.get([\"axisPointer\",\"axis\"]));(f||h)&&q(p.baseAxes,wr(v,h?\"cross\":!0,f)),h&&q(p.otherAxes,wr(v,\"cross\",!1))}function v(g,y,b){var x=b.model.getModel(\"axisPointer\",a),F=x.get(\"show\");if(!(!F||F===\"auto\"&&!g&&!$P(x))){y==null&&(y=x.get(\"triggerTooltip\")),x=g?SSt(b,d,a,t,g,y):x;var S=x.get(\"snap\"),E=x.get(\"triggerEmphasis\"),w=H2(b.model),D=y||S||b.type===\"category\",A=e.axesInfo[w]={key:w,axis:b,coordSys:l,axisPointerModel:x,triggerTooltip:y,triggerEmphasis:E,involveSeries:D,snap:S,useHandle:$P(x),seriesModels:[],linkGroup:null};u[w]=A,e.seriesInvolved=e.seriesInvolved||D;var _=ESt(i,b);if(_!=null){var I=o[_]||(o[_]={axesInfo:{}});I.axesInfo[w]=A,I.mapper=i[_].mapper,A.linkGroup=I}}}})}function SSt(e,t,r,n,a,i){var o=t.getModel(\"axisPointer\"),l=[\"type\",\"snap\",\"lineStyle\",\"shadowStyle\",\"label\",\"animation\",\"animationDurationUpdate\",\"animationEasingUpdate\",\"z\"],s={};q(l,function(f){s[f]=lr(o.get(f))}),s.snap=e.type!==\"category\"&&!!i,o.get(\"type\")===\"cross\"&&(s.type=\"line\");var u=s.label||(s.label={});if(u.show==null&&(u.show=!1),a===\"cross\"){var c=o.get([\"label\",\"show\"]);if(u.show=c??!0,!i){var d=s.lineStyle=o.get(\"crossStyle\");d&&rr(u,d.textStyle)}}return e.model.getModel(\"axisPointer\",new pn(s,r,n))}function wSt(e,t){t.eachSeries(function(r){var n=r.coordinateSystem,a=r.get([\"tooltip\",\"trigger\"],!0),i=r.get([\"tooltip\",\"show\"],!0);!n||a===\"none\"||a===!1||a===\"item\"||i===!1||r.get([\"axisPointer\",\"show\"],!0)===!1||q(e.coordSysAxesInfo[H2(n.model)],function(o){var l=o.axis;n.getAxis(l.dim)===l&&(o.seriesModels.push(r),o.seriesDataCount==null&&(o.seriesDataCount=0),o.seriesDataCount+=r.getData().count())})})}function ESt(e,t){for(var r=t.model,n=t.dim,a=0;a<e.length;a++){var i=e[a]||{};if(AI(i[n+\"AxisId\"],r.id)||AI(i[n+\"AxisIndex\"],r.componentIndex)||AI(i[n+\"AxisName\"],r.name))return a}}function AI(e,t){return e===\"all\"||nt(e)&&Mr(e,t)>=0||e===t}function DSt(e){var t=p$(e);if(t){var r=t.axisPointerModel,n=t.axis.scale,a=r.option,i=r.get(\"status\"),o=r.get(\"value\");o!=null&&(o=n.parse(o));var l=$P(r);i==null&&(a.status=l?\"show\":\"hide\");var s=n.getExtent().slice();s[0]>s[1]&&s.reverse(),(o==null||o>s[1])&&(o=s[1]),o<s[0]&&(o=s[0]),a.value=o,l&&(a.status=t.axis.scale.isBlank()?\"hide\":\"show\")}}function p$(e){var t=(e.ecModel.getComponent(\"axisPointer\")||{}).coordSysAxesInfo;return t&&t.axesInfo[H2(e)]}function ASt(e){var t=p$(e);return t&&t.axisPointerModel}function $P(e){return!!e.get([\"handle\",\"show\"])}function H2(e){return e.type+\"||\"+e.id}var HX={},Hm=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a,i){this.axisPointerClass&&DSt(r),e.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(r,a,!0)},t.prototype.updateAxisPointer=function(r,n,a,i){this._doUpdateAxisPointerClass(r,a,!1)},t.prototype.remove=function(r,n){var a=this._axisPointer;a&&a.remove(n)},t.prototype.dispose=function(r,n){this._disposeAxisPointer(n),e.prototype.dispose.apply(this,arguments)},t.prototype._doUpdateAxisPointerClass=function(r,n,a){var i=t.getAxisPointerClass(this.axisPointerClass);if(i){var o=ASt(r);o?(this._axisPointer||(this._axisPointer=new i)).render(r,o,n,a):this._disposeAxisPointer(n)}},t.prototype._disposeAxisPointer=function(r){this._axisPointer&&this._axisPointer.dispose(r),this._axisPointer=null},t.registerAxisPointerClass=function(r,n){HX[r]=n},t.getAxisPointerClass=function(r){return r&&HX[r]},t.type=\"axis\",t}(Wn),LP=rn();function M0e(e,t,r,n){var a=r.axis;if(!a.scale.isBlank()){var i=r.getModel(\"splitArea\"),o=i.getModel(\"areaStyle\"),l=o.get(\"color\"),s=n.coordinateSystem.getRect(),u=a.getTicksCoords({tickModel:i,clamp:!0});if(u.length){var c=l.length,d=LP(e).splitAreaColors,f=Gt(),h=0;if(d)for(var p=0;p<u.length;p++){var v=d.get(u[p].tickValue);if(v!=null){h=(v+(c-1)*p)%c;break}}var g=a.toGlobalCoord(u[0].coord),y=o.getAreaStyle();l=nt(l)?l:[l];for(var p=1;p<u.length;p++){var b=a.toGlobalCoord(u[p].coord),x=void 0,F=void 0,S=void 0,E=void 0;a.isHorizontal()?(x=g,F=s.y,S=b-x,E=s.height,g=x+S):(x=s.x,F=g,S=s.width,E=b-F,g=F+E);var w=u[p-1].tickValue;w!=null&&f.set(w,h),t.add(new Zr({anid:w!=null?\"area_\"+w:null,shape:{x,y:F,width:S,height:E},style:rr({fill:l[h]},y),autoBatch:!0,silent:!0})),h=(h+1)%c}LP(e).splitAreaColors=f}}}function P0e(e){LP(e).splitAreaColors=null}var _St=[\"axisLine\",\"axisTickLabel\",\"axisName\"],TSt=[\"splitArea\",\"splitLine\",\"minorSplitLine\"],O0e=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.axisPointerClass=\"CartesianAxisPointer\",r}return t.prototype.render=function(r,n,a,i){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new pr,this.group.add(this._axisGroup),!!r.get(\"show\")){var l=r.getCoordSysModel(),s=NP(l,r),u=new Vo(r,Xe({handleAutoShown:function(d){for(var f=l.coordinateSystem.getCartesians(),h=0;h<f.length;h++)if(_P(f[h].getOtherAxis(r.axis).scale))return!0;return!1}},s));q(_St,u.add,u),this._axisGroup.add(u.getGroup()),q(TSt,function(d){r.get([d,\"show\"])&&ISt[d](this,this._axisGroup,r,l)},this);var c=i&&i.type===\"changeAxisOrder\"&&i.isInitSort;c||iC(o,this._axisGroup,r),e.prototype.render.call(this,r,n,a,i)}},t.prototype.remove=function(){P0e(this)},t.type=\"cartesianAxis\",t}(Hm),ISt={splitLine:function(e,t,r,n){var a=r.axis;if(!a.scale.isBlank()){var i=r.getModel(\"splitLine\"),o=i.getModel(\"lineStyle\"),l=o.get(\"color\"),s=i.get(\"showMinLine\")!==!1,u=i.get(\"showMaxLine\")!==!1;l=nt(l)?l:[l];for(var c=n.coordinateSystem.getRect(),d=a.isHorizontal(),f=0,h=a.getTicksCoords({tickModel:i}),p=[],v=[],g=o.getLineStyle(),y=0;y<h.length;y++){var b=a.toGlobalCoord(h[y].coord);if(!(y===0&&!s||y===h.length-1&&!u)){var x=h[y].tickValue;d?(p[0]=b,p[1]=c.y,v[0]=b,v[1]=c.y+c.height):(p[0]=c.x,p[1]=b,v[0]=c.x+c.width,v[1]=b);var F=f++%l.length,S=new Xa({anid:x!=null?\"line_\"+x:null,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:v[0],y2:v[1]},style:rr({stroke:l[F]},g),silent:!0});og(S.shape,g.lineWidth),t.add(S)}}}},minorSplitLine:function(e,t,r,n){var a=r.axis,i=r.getModel(\"minorSplitLine\"),o=i.getModel(\"lineStyle\"),l=n.coordinateSystem.getRect(),s=a.isHorizontal(),u=a.getMinorTicksCoords();if(u.length)for(var c=[],d=[],f=o.getLineStyle(),h=0;h<u.length;h++)for(var p=0;p<u[h].length;p++){var v=a.toGlobalCoord(u[h][p].coord);s?(c[0]=v,c[1]=l.y,d[0]=v,d[1]=l.y+l.height):(c[0]=l.x,c[1]=v,d[0]=l.x+l.width,d[1]=v);var g=new Xa({anid:\"minor_line_\"+u[h][p].tickValue,autoBatch:!0,shape:{x1:c[0],y1:c[1],x2:d[0],y2:d[1]},style:f,silent:!0});og(g.shape,f.lineWidth),t.add(g)}},splitArea:function(e,t,r,n){M0e(e,t,r,n)}},B0e=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"xAxis\",t}(O0e),kSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=B0e.type,r}return t.type=\"yAxis\",t}(O0e),RSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"grid\",r}return t.prototype.render=function(r,n){this.group.removeAll(),r.get(\"show\")&&this.group.add(new Zr({shape:r.coordinateSystem.getRect(),style:rr({fill:r.get(\"backgroundColor\")},r.getItemStyle()),silent:!0,z2:-1}))},t.type=\"grid\",t}(Wn),VX={offset:0};function N0e(e){e.registerComponentView(RSt),e.registerComponentModel(oSt),e.registerCoordinateSystem(\"cartesian2d\",pSt),cg(e,\"x\",OP,VX),cg(e,\"y\",OP,VX),e.registerComponentView(B0e),e.registerComponentView(kSt),e.registerPreprocessor(function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})})}function MSt(e){Nr(N0e),e.registerSeriesModel(tSt),e.registerChartView(iSt),e.registerLayout(fC(\"scatter\"))}function PSt(e){e.eachSeriesByType(\"radar\",function(t){var r=t.getData(),n=[],a=t.coordinateSystem;if(a){var i=a.getIndicatorAxes();q(i,function(o,l){r.each(r.mapDimension(i[l].dim),function(s,u){n[u]=n[u]||[];var c=a.dataToPoint(s,l);n[u][l]=WX(c)?c:GX(a)})}),r.each(function(o){var l=che(n[o],function(s){return WX(s)})||GX(a);n[o].push(l.slice()),r.setItemLayout(o,n[o])})}})}function WX(e){return!isNaN(e[0])&&!isNaN(e[1])}function GX(e){return[e.cx,e.cy]}function OSt(e){var t=e.polar;if(t){nt(t)||(t=[t]);var r=[];q(t,function(n,a){n.indicator?(n.type&&!n.shape&&(n.shape=n.type),e.radar=e.radar||[],nt(e.radar)||(e.radar=[e.radar]),e.radar.push(n)):r.push(n)}),e.polar=r}q(e.series,function(n){n&&n.type===\"radar\"&&n.polarIndex&&(n.radarIndex=n.polarIndex)})}var BSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=r.coordinateSystem,o=this.group,l=r.getData(),s=this._data;function u(f,h){var p=f.getItemVisual(h,\"symbol\")||\"circle\";if(p!==\"none\"){var v=a1(f.getItemVisual(h,\"symbolSize\")),g=_a(p,-1,-1,2,2),y=f.getItemVisual(h,\"symbolRotate\")||0;return g.attr({style:{strokeNoScale:!0},z2:100,scaleX:v[0]/2,scaleY:v[1]/2,rotation:y*Math.PI/180||0}),g}}function c(f,h,p,v,g,y){p.removeAll();for(var b=0;b<h.length-1;b++){var x=u(v,g);x&&(x.__dimIdx=b,f[b]?(x.setPosition(f[b]),$m[y?\"initProps\":\"updateProps\"](x,{x:h[b][0],y:h[b][1]},r,g)):x.setPosition(h[b]),p.add(x))}}function d(f){return ot(f,function(h){return[i.cx,i.cy]})}l.diff(s).add(function(f){var h=l.getItemLayout(f);if(h){var p=new wo,v=new To,g={shape:{points:h}};p.shape.points=d(h),v.shape.points=d(h),Yn(p,g,r,f),Yn(v,g,r,f);var y=new pr,b=new pr;y.add(v),y.add(p),y.add(b),c(v.shape.points,h,b,l,f,!0),l.setItemGraphicEl(f,y)}}).update(function(f,h){var p=s.getItemGraphicEl(h),v=p.childAt(0),g=p.childAt(1),y=p.childAt(2),b={shape:{points:l.getItemLayout(f)}};b.shape.points&&(c(v.shape.points,b.shape.points,y,l,f,!1),Su(g),Su(v),cn(v,b,r),cn(g,b,r),l.setItemGraphicEl(f,p))}).remove(function(f){o.remove(s.getItemGraphicEl(f))}).execute(),l.eachItemGraphicEl(function(f,h){var p=l.getItemModel(h),v=f.childAt(0),g=f.childAt(1),y=f.childAt(2),b=l.getItemVisual(h,\"style\"),x=b.fill;o.add(f),v.useStyle(rr(p.getModel(\"lineStyle\").getLineStyle(),{fill:\"none\",stroke:x})),qi(v,p,\"lineStyle\"),qi(g,p,\"areaStyle\");var F=p.getModel(\"areaStyle\"),S=F.isEmpty()&&F.parentModel.isEmpty();g.ignore=S,q([\"emphasis\",\"select\",\"blur\"],function(D){var A=p.getModel([D,\"areaStyle\"]),_=A.isEmpty()&&A.parentModel.isEmpty();g.ensureState(D).ignore=_&&S}),g.useStyle(rr(F.getAreaStyle(),{fill:x,opacity:.7,decal:b.decal}));var E=p.getModel(\"emphasis\"),w=E.getModel(\"itemStyle\").getItemStyle();y.eachChild(function(D){if(D instanceof yi){var A=D.style;D.useStyle(Xe({image:A.image,x:A.x,y:A.y,width:A.width,height:A.height},b))}else D.useStyle(b),D.setColor(x),D.style.strokeNoScale=!0;var _=D.ensureState(\"emphasis\");_.style=lr(w);var I=l.getStore().get(l.getDimensionIndex(D.__dimIdx),h);(I==null||isNaN(I))&&(I=\"\"),Xi(D,vi(p),{labelFetcher:l.hostModel,labelDataIndex:h,labelDimIndex:D.__dimIdx,defaultText:I,inheritColor:x,defaultOpacity:b.opacity})}),sa(f,E.get(\"focus\"),E.get(\"blurScope\"),E.get(\"disabled\"))}),this._data=l},t.prototype.remove=function(){this.group.removeAll(),this._data=null},t.type=\"radar\",t}(Cn),NSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new pC(Pt(this.getData,this),Pt(this.getRawData,this))},t.prototype.getInitialData=function(r,n){return s1(this,{generateCoord:\"indicator_\",generateCoordCount:1/0})},t.prototype.formatTooltip=function(r,n,a){var i=this.getData(),o=this.coordinateSystem,l=o.getIndicatorAxes(),s=this.getData().getName(r),u=s===\"\"?this.name:s,c=Rme(this,r);return gi(\"section\",{header:u,sortBlocks:!0,blocks:ot(l,function(d){var f=i.get(i.mapDimension(d.dim),r);return gi(\"nameValue\",{markerType:\"subItem\",markerColor:c,name:d.name,value:f,sortParam:f})})})},t.prototype.getTooltipPosition=function(r){if(r!=null){for(var n=this.getData(),a=this.coordinateSystem,i=n.getValues(ot(a.dimensions,function(u){return n.mapDimension(u)}),r),o=0,l=i.length;o<l;o++)if(!isNaN(i[o])){var s=a.getIndicatorAxes();return a.coordToPoint(s[o].dataToCoord(i[o]),o)}}},t.type=\"series.radar\",t.dependencies=[\"radar\"],t.defaultOption={z:2,colorBy:\"data\",coordinateSystem:\"radar\",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:\"solid\",join:\"round\"},label:{position:\"top\"},symbolSize:8},t}(_n),Y1=I0e.value;function FS(e,t){return rr({show:t},e)}var $St=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.optionUpdated=function(){var r=this.get(\"boundaryGap\"),n=this.get(\"splitNumber\"),a=this.get(\"scale\"),i=this.get(\"axisLine\"),o=this.get(\"axisTick\"),l=this.get(\"axisLabel\"),s=this.get(\"axisName\"),u=this.get([\"axisName\",\"show\"]),c=this.get([\"axisName\",\"formatter\"]),d=this.get(\"axisNameGap\"),f=this.get(\"triggerEvent\"),h=ot(this.get(\"indicator\")||[],function(p){p.max!=null&&p.max>0&&!p.min?p.min=0:p.min!=null&&p.min<0&&!p.max&&(p.max=0);var v=s;p.color!=null&&(v=rr({color:p.color},s));var g=Er(lr(p),{boundaryGap:r,splitNumber:n,scale:a,axisLine:i,axisTick:o,axisLabel:l,name:p.text,showName:u,nameLocation:\"end\",nameGap:d,nameTextStyle:v,triggerEvent:f},!1);if(At(c)){var y=g.name;g.name=c.replace(\"{value}\",y??\"\")}else er(c)&&(g.name=c(g.name,g));var b=new pn(g,null,this.ecModel);return Ca(b,l1.prototype),b.mainType=\"radar\",b.componentIndex=this.componentIndex,b},this);this._indicatorModels=h},t.prototype.getIndicatorModels=function(){return this._indicatorModels},t.type=\"radar\",t.defaultOption={z:0,center:[\"50%\",\"50%\"],radius:\"75%\",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:\"polygon\",axisLine:Er({lineStyle:{color:\"#bbb\"}},Y1.axisLine),axisLabel:FS(Y1.axisLabel,!1),axisTick:FS(Y1.axisTick,!1),splitLine:FS(Y1.splitLine,!0),splitArea:FS(Y1.splitArea,!0),indicator:[]},t}(jr),LSt=[\"axisLine\",\"axisTickLabel\",\"axisName\"],jSt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=this.group;i.removeAll(),this._buildAxes(r),this._buildSplitLineAndArea(r)},t.prototype._buildAxes=function(r){var n=r.coordinateSystem,a=n.getIndicatorAxes(),i=ot(a,function(o){var l=o.model.get(\"showName\")?o.name:\"\",s=new Vo(o.model,{axisName:l,position:[n.cx,n.cy],rotation:o.angle,labelDirection:-1,tickDirection:-1,nameDirection:1});return s});q(i,function(o){q(LSt,o.add,o),this.group.add(o.getGroup())},this)},t.prototype._buildSplitLineAndArea=function(r){var n=r.coordinateSystem,a=n.getIndicatorAxes();if(!a.length)return;var i=r.get(\"shape\"),o=r.getModel(\"splitLine\"),l=r.getModel(\"splitArea\"),s=o.getModel(\"lineStyle\"),u=l.getModel(\"areaStyle\"),c=o.get(\"show\"),d=l.get(\"show\"),f=s.get(\"color\"),h=u.get(\"color\"),p=nt(f)?f:[f],v=nt(h)?h:[h],g=[],y=[];function b(R,P,B){var N=B%P.length;return R[N]=R[N]||[],N}if(i===\"circle\")for(var x=a[0].getTicksCoords(),F=n.cx,S=n.cy,E=0;E<x.length;E++){if(c){var w=b(g,p,E);g[w].push(new Fc({shape:{cx:F,cy:S,r:x[E].coord}}))}if(d&&E<x.length-1){var w=b(y,v,E);y[w].push(new Ug({shape:{cx:F,cy:S,r0:x[E].coord,r:x[E+1].coord}}))}}else for(var D,A=ot(a,function(R,P){var B=R.getTicksCoords();return D=D==null?B.length-1:Math.min(B.length-1,D),ot(B,function(N){return n.coordToPoint(N.coord,P)})}),_=[],E=0;E<=D;E++){for(var I=[],M=0;M<a.length;M++)I.push(A[M][E]);if(I[0]&&I.push(I[0].slice()),c){var w=b(g,p,E);g[w].push(new To({shape:{points:I}}))}if(d&&_){var w=b(y,v,E-1);y[w].push(new wo({shape:{points:I.concat(_)}}))}_=I.slice().reverse()}var T=s.getLineStyle(),k=u.getAreaStyle();q(y,function(R,P){this.group.add(Tl(R,{style:rr({stroke:\"none\",fill:v[P%v.length]},k),silent:!0}))},this),q(g,function(R,P){this.group.add(Tl(R,{style:rr({fill:\"none\",stroke:p[P%p.length]},T),silent:!0}))},this)},t.type=\"radar\",t}(Wn),zSt=function(e){Re(t,e);function t(r,n,a){var i=e.call(this,r,n,a)||this;return i.type=\"value\",i.angle=0,i.name=\"\",i}return t}(Bs),HSt=function(){function e(t,r,n){this.dimensions=[],this._model=t,this._indicatorAxes=ot(t.getIndicatorModels(),function(a,i){var o=\"indicator_\"+i,l=new zSt(o,new vd);return l.name=a.get(\"name\"),l.model=a,a.axis=l,this.dimensions.push(o),l},this),this.resize(t,n)}return e.prototype.getIndicatorAxes=function(){return this._indicatorAxes},e.prototype.dataToPoint=function(t,r){var n=this._indicatorAxes[r];return this.coordToPoint(n.dataToCoord(t),r)},e.prototype.coordToPoint=function(t,r){var n=this._indicatorAxes[r],a=n.angle,i=this.cx+t*Math.cos(a),o=this.cy-t*Math.sin(a);return[i,o]},e.prototype.pointToData=function(t){var r=t[0]-this.cx,n=t[1]-this.cy,a=Math.sqrt(r*r+n*n);r/=a,n/=a;for(var i=Math.atan2(-n,r),o=1/0,l,s=-1,u=0;u<this._indicatorAxes.length;u++){var c=this._indicatorAxes[u],d=Math.abs(i-c.angle);d<o&&(l=c,s=u,o=d)}return[s,+(l&&l.coordToData(a))]},e.prototype.resize=function(t,r){var n=t.get(\"center\"),a=r.getWidth(),i=r.getHeight(),o=Math.min(a,i)/2;this.cx=Ft(n[0],a),this.cy=Ft(n[1],i),this.startAngle=t.get(\"startAngle\")*Math.PI/180;var l=t.get(\"radius\");(At(l)||nn(l))&&(l=[0,l]),this.r0=Ft(l[0],o),this.r=Ft(l[1],o),q(this._indicatorAxes,function(s,u){s.setExtent(this.r0,this.r);var c=this.startAngle+u*Math.PI*2/this._indicatorAxes.length;c=Math.atan2(Math.sin(c),Math.cos(c)),s.angle=c},this)},e.prototype.update=function(t,r){var n=this._indicatorAxes,a=this._model;q(n,function(l){l.scale.setExtent(1/0,-1/0)}),t.eachSeriesByType(\"radar\",function(l,s){if(!(l.get(\"coordinateSystem\")!==\"radar\"||t.getComponent(\"radar\",l.get(\"radarIndex\"))!==a)){var u=l.getData();q(n,function(c){c.scale.unionExtentFromData(u,u.mapDimension(c.dim))})}},this);var i=a.get(\"splitNumber\"),o=new vd;o.setExtent(0,i),o.setInterval(1),q(n,function(l,s){k0e(l.scale,l.model,o)})},e.prototype.convertToPixel=function(t,r,n){return console.warn(\"Not implemented.\"),null},e.prototype.convertFromPixel=function(t,r,n){return console.warn(\"Not implemented.\"),null},e.prototype.containPoint=function(t){return console.warn(\"Not implemented.\"),!1},e.create=function(t,r){var n=[];return t.eachComponent(\"radar\",function(a){var i=new e(a,t,r);n.push(i),a.coordinateSystem=i}),t.eachSeriesByType(\"radar\",function(a){a.get(\"coordinateSystem\")===\"radar\"&&(a.coordinateSystem=n[a.get(\"radarIndex\")||0])}),n},e.dimensions=[],e}();function VSt(e){e.registerCoordinateSystem(\"radar\",HSt),e.registerComponentModel($St),e.registerComponentView(jSt),e.registerVisual({seriesType:\"radar\",reset:function(t){var r=t.getData();r.each(function(n){r.setItemVisual(n,\"legendIcon\",\"roundRect\")}),r.setVisual(\"legendIcon\",\"roundRect\")}})}function WSt(e){Nr(VSt),e.registerChartView(BSt),e.registerSeriesModel(NSt),e.registerLayout(PSt),e.registerProcessor(hC(\"radar\")),e.registerPreprocessor(OSt)}var UX=\"\\0_ec_interaction_mutex\";function GSt(e,t,r){var n=m$(e);n[t]=r}function USt(e,t,r){var n=m$(e),a=n[t];a===r&&(n[t]=null)}function KX(e,t){return!!m$(e)[t]}function m$(e){return e[UX]||(e[UX]={})}_u({type:\"takeGlobalCursor\",event:\"globalCursorTaken\",update:\"update\"},ga);var mC=function(e){Re(t,e);function t(r){var n=e.call(this)||this;n._zr=r;var a=Pt(n._mousedownHandler,n),i=Pt(n._mousemoveHandler,n),o=Pt(n._mouseupHandler,n),l=Pt(n._mousewheelHandler,n),s=Pt(n._pinchHandler,n);return n.enable=function(u,c){this.disable(),this._opt=rr(lr(c)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),u==null&&(u=!0),(u===!0||u===\"move\"||u===\"pan\")&&(r.on(\"mousedown\",a),r.on(\"mousemove\",i),r.on(\"mouseup\",o)),(u===!0||u===\"scale\"||u===\"zoom\")&&(r.on(\"mousewheel\",l),r.on(\"pinch\",s))},n.disable=function(){r.off(\"mousedown\",a),r.off(\"mousemove\",i),r.off(\"mouseup\",o),r.off(\"mousewheel\",l),r.off(\"pinch\",s)},n}return t.prototype.isDragging=function(){return this._dragging},t.prototype.isPinching=function(){return this._pinching},t.prototype.setPointerChecker=function(r){this.pointerChecker=r},t.prototype.dispose=function(){this.disable()},t.prototype._mousedownHandler=function(r){if(!SK(r)){for(var n=r.target;n;){if(n.draggable)return;n=n.__hostTarget||n.parent}var a=r.offsetX,i=r.offsetY;this.pointerChecker&&this.pointerChecker(r,a,i)&&(this._x=a,this._y=i,this._dragging=!0)}},t.prototype._mousemoveHandler=function(r){if(!(!this._dragging||!Lw(\"moveOnMouseMove\",r,this._opt)||r.gestureEvent===\"pinch\"||KX(this._zr,\"globalPan\"))){var n=r.offsetX,a=r.offsetY,i=this._x,o=this._y,l=n-i,s=a-o;this._x=n,this._y=a,this._opt.preventDefaultMouseMove&&dd(r.event),$0e(this,\"pan\",\"moveOnMouseMove\",r,{dx:l,dy:s,oldX:i,oldY:o,newX:n,newY:a,isAvailableBehavior:null})}},t.prototype._mouseupHandler=function(r){SK(r)||(this._dragging=!1)},t.prototype._mousewheelHandler=function(r){var n=Lw(\"zoomOnMouseWheel\",r,this._opt),a=Lw(\"moveOnMouseWheel\",r,this._opt),i=r.wheelDelta,o=Math.abs(i),l=r.offsetX,s=r.offsetY;if(!(i===0||!n&&!a)){if(n){var u=o>3?1.4:o>1?1.2:1.1,c=i>0?u:1/u;_I(this,\"zoom\",\"zoomOnMouseWheel\",r,{scale:c,originX:l,originY:s,isAvailableBehavior:null})}if(a){var d=Math.abs(i),f=(i>0?1:-1)*(d>3?.4:d>1?.15:.05);_I(this,\"scrollMove\",\"moveOnMouseWheel\",r,{scrollDelta:f,originX:l,originY:s,isAvailableBehavior:null})}}},t.prototype._pinchHandler=function(r){if(!KX(this._zr,\"globalPan\")){var n=r.pinchScale>1?1.1:1/1.1;_I(this,\"zoom\",null,r,{scale:n,originX:r.pinchX,originY:r.pinchY,isAvailableBehavior:null})}},t}(Rs);function _I(e,t,r,n,a){e.pointerChecker&&e.pointerChecker(n,a.originX,a.originY)&&(dd(n.event),$0e(e,t,r,n,a))}function $0e(e,t,r,n,a){a.isAvailableBehavior=Pt(Lw,null,r,n),e.trigger(t,a)}function Lw(e,t,r){var n=r[e];return!e||n&&(!At(n)||t.event[n+\"Key\"])}function v$(e,t,r){var n=e.target;n.x+=t,n.y+=r,n.dirty()}function g$(e,t,r,n){var a=e.target,i=e.zoomLimit,o=e.zoom=e.zoom||1;if(o*=t,i){var l=i.min||0,s=i.max||1/0;o=Math.max(Math.min(s,o),l)}var u=o/e.zoom;e.zoom=o,a.x-=(r-a.x)*(u-1),a.y-=(n-a.y)*(u-1),a.scaleX*=u,a.scaleY*=u,a.dirty()}var KSt={axisPointer:1,tooltip:1,brush:1};function yA(e,t,r){var n=t.getComponentByElement(e.topTarget),a=n&&n.coordinateSystem;return n&&n!==r&&!KSt.hasOwnProperty(n.mainType)&&a&&a.model!==r}function L0e(e){if(At(e)){var t=new DOMParser;e=t.parseFromString(e,\"text/xml\")}var r=e;for(r.nodeType===9&&(r=r.firstChild);r.nodeName.toLowerCase()!==\"svg\"||r.nodeType!==1;)r=r.nextSibling;return r}var TI,a4={fill:\"fill\",stroke:\"stroke\",\"stroke-width\":\"lineWidth\",opacity:\"opacity\",\"fill-opacity\":\"fillOpacity\",\"stroke-opacity\":\"strokeOpacity\",\"stroke-dasharray\":\"lineDash\",\"stroke-dashoffset\":\"lineDashOffset\",\"stroke-linecap\":\"lineCap\",\"stroke-linejoin\":\"lineJoin\",\"stroke-miterlimit\":\"miterLimit\",\"font-family\":\"fontFamily\",\"font-size\":\"fontSize\",\"font-style\":\"fontStyle\",\"font-weight\":\"fontWeight\",\"text-anchor\":\"textAlign\",visibility:\"visibility\",display:\"display\"},YX=Ur(a4),i4={\"alignment-baseline\":\"textBaseline\",\"stop-color\":\"stopColor\"},qX=Ur(i4),YSt=function(){function e(){this._defs={},this._root=null}return e.prototype.parse=function(t,r){r=r||{};var n=L0e(t);this._defsUsePending=[];var a=new pr;this._root=a;var i=[],o=n.getAttribute(\"viewBox\")||\"\",l=parseFloat(n.getAttribute(\"width\")||r.width),s=parseFloat(n.getAttribute(\"height\")||r.height);isNaN(l)&&(l=null),isNaN(s)&&(s=null),Fl(n,a,null,!0,!1);for(var u=n.firstChild;u;)this._parseNode(u,a,i,null,!1,!1),u=u.nextSibling;JSt(this._defs,this._defsUsePending),this._defsUsePending=[];var c,d;if(o){var f=bA(o);f.length>=4&&(c={x:parseFloat(f[0]||0),y:parseFloat(f[1]||0),width:parseFloat(f[2]),height:parseFloat(f[3])})}if(c&&l!=null&&s!=null&&(d=z0e(c,{x:0,y:0,width:l,height:s}),!r.ignoreViewBox)){var h=a;a=new pr,a.add(h),h.scaleX=h.scaleY=d.scale,h.x=d.x,h.y=d.y}return!r.ignoreRootClip&&l!=null&&s!=null&&a.setClipPath(new Zr({shape:{x:0,y:0,width:l,height:s}})),{root:a,width:l,height:s,viewBoxRect:c,viewBoxTransform:d,named:i}},e.prototype._parseNode=function(t,r,n,a,i,o){var l=t.nodeName.toLowerCase(),s,u=a;if(l===\"defs\"&&(i=!0),l===\"text\"&&(o=!0),l===\"defs\"||l===\"switch\")s=r;else{if(!i){var c=TI[l];if(c&&$t(TI,l)){s=c.call(this,t,r);var d=t.getAttribute(\"name\");if(d){var f={name:d,namedFrom:null,svgNodeTagLower:l,el:s};n.push(f),l===\"g\"&&(u=f)}else a&&n.push({name:a.name,namedFrom:a,svgNodeTagLower:l,el:s});r.add(s)}}var h=XX[l];if(h&&$t(XX,l)){var p=h.call(this,t),v=t.getAttribute(\"id\");v&&(this._defs[v]=p)}}if(s&&s.isGroup)for(var g=t.firstChild;g;)g.nodeType===1?this._parseNode(g,s,n,u,i,o):g.nodeType===3&&o&&this._parseText(g,s),g=g.nextSibling},e.prototype._parseText=function(t,r){var n=new ig({style:{text:t.textContent},silent:!0,x:this._textX||0,y:this._textY||0});Zl(r,n),Fl(t,n,this._defsUsePending,!1,!1),qSt(n,r);var a=n.style,i=a.fontSize;i&&i<9&&(a.fontSize=9,n.scaleX*=i/9,n.scaleY*=i/9);var o=(a.fontSize||a.fontFamily)&&[a.fontStyle,a.fontWeight,(a.fontSize||12)+\"px\",a.fontFamily||\"sans-serif\"].join(\" \");a.font=o;var l=n.getBoundingRect();return this._textX+=l.width,r.add(n),n},e.internalField=function(){TI={g:function(t,r){var n=new pr;return Zl(r,n),Fl(t,n,this._defsUsePending,!1,!1),n},rect:function(t,r){var n=new Zr;return Zl(r,n),Fl(t,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(t.getAttribute(\"x\")||\"0\"),y:parseFloat(t.getAttribute(\"y\")||\"0\"),width:parseFloat(t.getAttribute(\"width\")||\"0\"),height:parseFloat(t.getAttribute(\"height\")||\"0\")}),n.silent=!0,n},circle:function(t,r){var n=new Fc;return Zl(r,n),Fl(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute(\"cx\")||\"0\"),cy:parseFloat(t.getAttribute(\"cy\")||\"0\"),r:parseFloat(t.getAttribute(\"r\")||\"0\")}),n.silent=!0,n},line:function(t,r){var n=new Xa;return Zl(r,n),Fl(t,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(t.getAttribute(\"x1\")||\"0\"),y1:parseFloat(t.getAttribute(\"y1\")||\"0\"),x2:parseFloat(t.getAttribute(\"x2\")||\"0\"),y2:parseFloat(t.getAttribute(\"y2\")||\"0\")}),n.silent=!0,n},ellipse:function(t,r){var n=new rC;return Zl(r,n),Fl(t,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(t.getAttribute(\"cx\")||\"0\"),cy:parseFloat(t.getAttribute(\"cy\")||\"0\"),rx:parseFloat(t.getAttribute(\"rx\")||\"0\"),ry:parseFloat(t.getAttribute(\"ry\")||\"0\")}),n.silent=!0,n},polygon:function(t,r){var n=t.getAttribute(\"points\"),a;n&&(a=QX(n));var i=new wo({shape:{points:a||[]},silent:!0});return Zl(r,i),Fl(t,i,this._defsUsePending,!1,!1),i},polyline:function(t,r){var n=t.getAttribute(\"points\"),a;n&&(a=QX(n));var i=new To({shape:{points:a||[]},silent:!0});return Zl(r,i),Fl(t,i,this._defsUsePending,!1,!1),i},image:function(t,r){var n=new yi;return Zl(r,n),Fl(t,n,this._defsUsePending,!1,!1),n.setStyle({image:t.getAttribute(\"xlink:href\")||t.getAttribute(\"href\"),x:+t.getAttribute(\"x\"),y:+t.getAttribute(\"y\"),width:+t.getAttribute(\"width\"),height:+t.getAttribute(\"height\")}),n.silent=!0,n},text:function(t,r){var n=t.getAttribute(\"x\")||\"0\",a=t.getAttribute(\"y\")||\"0\",i=t.getAttribute(\"dx\")||\"0\",o=t.getAttribute(\"dy\")||\"0\";this._textX=parseFloat(n)+parseFloat(i),this._textY=parseFloat(a)+parseFloat(o);var l=new pr;return Zl(r,l),Fl(t,l,this._defsUsePending,!1,!0),l},tspan:function(t,r){var n=t.getAttribute(\"x\"),a=t.getAttribute(\"y\");n!=null&&(this._textX=parseFloat(n)),a!=null&&(this._textY=parseFloat(a));var i=t.getAttribute(\"dx\")||\"0\",o=t.getAttribute(\"dy\")||\"0\",l=new pr;return Zl(r,l),Fl(t,l,this._defsUsePending,!1,!0),this._textX+=parseFloat(i),this._textY+=parseFloat(o),l},path:function(t,r){var n=t.getAttribute(\"d\")||\"\",a=Tpe(n);return Zl(r,a),Fl(t,a,this._defsUsePending,!1,!1),a.silent=!0,a}}}(),e}(),XX={lineargradient:function(e){var t=parseInt(e.getAttribute(\"x1\")||\"0\",10),r=parseInt(e.getAttribute(\"y1\")||\"0\",10),n=parseInt(e.getAttribute(\"x2\")||\"10\",10),a=parseInt(e.getAttribute(\"y2\")||\"0\",10),i=new Yg(t,r,n,a);return JX(e,i),ZX(e,i),i},radialgradient:function(e){var t=parseInt(e.getAttribute(\"cx\")||\"0\",10),r=parseInt(e.getAttribute(\"cy\")||\"0\",10),n=parseInt(e.getAttribute(\"r\")||\"0\",10),a=new gN(t,r,n);return JX(e,a),ZX(e,a),a}};function JX(e,t){var r=e.getAttribute(\"gradientUnits\");r===\"userSpaceOnUse\"&&(t.global=!0)}function ZX(e,t){for(var r=e.firstChild;r;){if(r.nodeType===1&&r.nodeName.toLocaleLowerCase()===\"stop\"){var n=r.getAttribute(\"offset\"),a=void 0;n&&n.indexOf(\"%\")>0?a=parseInt(n,10)/100:n?a=parseFloat(n):a=0;var i={};j0e(r,i,i);var o=i.stopColor||r.getAttribute(\"stop-color\")||\"#000000\";t.colorStops.push({offset:a,color:o})}r=r.nextSibling}}function Zl(e,t){e&&e.__inheritedStyle&&(t.__inheritedStyle||(t.__inheritedStyle={}),rr(t.__inheritedStyle,e.__inheritedStyle))}function QX(e){for(var t=bA(e),r=[],n=0;n<t.length;n+=2){var a=parseFloat(t[n]),i=parseFloat(t[n+1]);r.push([a,i])}return r}function Fl(e,t,r,n,a){var i=t,o=i.__inheritedStyle=i.__inheritedStyle||{},l={};e.nodeType===1&&(ewt(e,t),j0e(e,o,l),n||twt(e,o,l)),i.style=i.style||{},o.fill!=null&&(i.style.fill=eJ(i,\"fill\",o.fill,r)),o.stroke!=null&&(i.style.stroke=eJ(i,\"stroke\",o.stroke,r)),q([\"lineWidth\",\"opacity\",\"fillOpacity\",\"strokeOpacity\",\"miterLimit\",\"fontSize\"],function(s){o[s]!=null&&(i.style[s]=parseFloat(o[s]))}),q([\"lineDashOffset\",\"lineCap\",\"lineJoin\",\"fontWeight\",\"fontFamily\",\"fontStyle\",\"textAlign\"],function(s){o[s]!=null&&(i.style[s]=o[s])}),a&&(i.__selfStyle=l),o.lineDash&&(i.style.lineDash=ot(bA(o.lineDash),function(s){return parseFloat(s)})),(o.visibility===\"hidden\"||o.visibility===\"collapse\")&&(i.invisible=!0),o.display===\"none\"&&(i.ignore=!0)}function qSt(e,t){var r=t.__selfStyle;if(r){var n=r.textBaseline,a=n;!n||n===\"auto\"||n===\"baseline\"?a=\"alphabetic\":n===\"before-edge\"||n===\"text-before-edge\"?a=\"top\":n===\"after-edge\"||n===\"text-after-edge\"?a=\"bottom\":(n===\"central\"||n===\"mathematical\")&&(a=\"middle\"),e.style.textBaseline=a}var i=t.__inheritedStyle;if(i){var o=i.textAlign,l=o;o&&(o===\"middle\"&&(l=\"center\"),e.style.textAlign=l)}}var XSt=/^url\\(\\s*#(.*?)\\)/;function eJ(e,t,r,n){var a=r&&r.match(XSt);if(a){var i=vs(a[1]);n.push([e,t,i]);return}return r===\"none\"&&(r=null),r}function JSt(e,t){for(var r=0;r<t.length;r++){var n=t[r];n[0].style[n[1]]=e[n[2]]}}var ZSt=/-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;function bA(e){return e.match(ZSt)||[]}var QSt=/(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.eE,]*)\\)/g,II=Math.PI/180;function ewt(e,t){var r=e.getAttribute(\"transform\");if(r){r=r.replace(/,/g,\" \");var n=[],a=null;r.replace(QSt,function(d,f,h){return n.push(f,h),\"\"});for(var i=n.length-1;i>0;i-=2){var o=n[i],l=n[i-1],s=bA(o);switch(a=a||hl(),l){case\"translate\":Cu(a,a,[parseFloat(s[0]),parseFloat(s[1]||\"0\")]);break;case\"scale\":zD(a,a,[parseFloat(s[0]),parseFloat(s[1]||s[0])]);break;case\"rotate\":lh(a,a,-parseFloat(s[0])*II,[parseFloat(s[1]||\"0\"),parseFloat(s[2]||\"0\")]);break;case\"skewX\":var u=Math.tan(parseFloat(s[0])*II);ic(a,[1,0,u,1,0,0],a);break;case\"skewY\":var c=Math.tan(parseFloat(s[0])*II);ic(a,[1,c,0,1,0,0],a);break;case\"matrix\":a[0]=parseFloat(s[0]),a[1]=parseFloat(s[1]),a[2]=parseFloat(s[2]),a[3]=parseFloat(s[3]),a[4]=parseFloat(s[4]),a[5]=parseFloat(s[5]);break}}t.setLocalTransform(a)}}var tJ=/([^\\s:;]+)\\s*:\\s*([^:;]+)/g;function j0e(e,t,r){var n=e.getAttribute(\"style\");if(n){tJ.lastIndex=0;for(var a;(a=tJ.exec(n))!=null;){var i=a[1],o=$t(a4,i)?a4[i]:null;o&&(t[o]=a[2]);var l=$t(i4,i)?i4[i]:null;l&&(r[l]=a[2])}}}function twt(e,t,r){for(var n=0;n<YX.length;n++){var a=YX[n],i=e.getAttribute(a);i!=null&&(t[a4[a]]=i)}for(var n=0;n<qX.length;n++){var a=qX[n],i=e.getAttribute(a);i!=null&&(r[i4[a]]=i)}}function z0e(e,t){var r=t.width/e.width,n=t.height/e.height,a=Math.min(r,n);return{scale:a,x:-(e.x+e.width/2)*a+(t.x+t.width/2),y:-(e.y+e.height/2)*a+(t.y+t.height/2)}}function rwt(e,t){var r=new YSt;return r.parse(e,t)}var nwt=Gt([\"rect\",\"circle\",\"line\",\"ellipse\",\"polygon\",\"polyline\",\"path\",\"text\",\"tspan\",\"g\"]),awt=function(){function e(t,r){this.type=\"geoSVG\",this._usedGraphicMap=Gt(),this._freedGraphics=[],this._mapName=t,this._parsedXML=L0e(r)}return e.prototype.load=function(){var t=this._firstGraphic;if(!t){t=this._firstGraphic=this._buildGraphic(this._parsedXML),this._freedGraphics.push(t),this._boundingRect=this._firstGraphic.boundingRect.clone();var r=owt(t.named),n=r.regions,a=r.regionsMap;this._regions=n,this._regionsMap=a}return{boundingRect:this._boundingRect,regions:this._regions,regionsMap:this._regionsMap}},e.prototype._buildGraphic=function(t){var r,n;try{r=t&&rwt(t,{ignoreViewBox:!0,ignoreRootClip:!0})||{},n=r.root,Fo(n!=null)}catch(g){throw new Error(`Invalid svg format\n`+g.message)}var a=new pr;a.add(n),a.isGeoSVGGraphicRoot=!0;var i=r.width,o=r.height,l=r.viewBoxRect,s=this._boundingRect;if(!s){var u=void 0,c=void 0,d=void 0,f=void 0;if(i!=null?(u=0,d=i):l&&(u=l.x,d=l.width),o!=null?(c=0,f=o):l&&(c=l.y,f=l.height),u==null||c==null){var h=n.getBoundingRect();u==null&&(u=h.x,d=h.width),c==null&&(c=h.y,f=h.height)}s=this._boundingRect=new Ir(u,c,d,f)}if(l){var p=z0e(l,s);n.scaleX=n.scaleY=p.scale,n.x=p.x,n.y=p.y}a.setClipPath(new Zr({shape:s.plain()}));var v=[];return q(r.named,function(g){nwt.get(g.svgNodeTagLower)!=null&&(v.push(g),iwt(g.el))}),{root:a,boundingRect:s,named:v}},e.prototype.useGraphic=function(t){var r=this._usedGraphicMap,n=r.get(t);return n||(n=this._freedGraphics.pop()||this._buildGraphic(this._parsedXML),r.set(t,n),n)},e.prototype.freeGraphic=function(t){var r=this._usedGraphicMap,n=r.get(t);n&&(r.removeKey(t),this._freedGraphics.push(n))},e}();function iwt(e){e.silent=!1,e.isGroup&&e.traverse(function(t){t.silent=!1})}function owt(e){var t=[],r=Gt();return q(e,function(n){if(n.namedFrom==null){var a=new Uxt(n.name,n.el);t.push(a),r.set(n.name,a)}}),{regions:t,regionsMap:r}}var jP=[126,25],rJ=\"南海诸岛\",Gh=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]];for(var zh=0;zh<Gh.length;zh++)for(var Fv=0;Fv<Gh[zh].length;Fv++)Gh[zh][Fv][0]/=10.5,Gh[zh][Fv][1]/=-10.5/.75,Gh[zh][Fv][0]+=jP[0],Gh[zh][Fv][1]+=jP[1];function lwt(e,t){if(e===\"china\"){for(var r=0;r<t.length;r++)if(t[r].name===rJ)return;t.push(new Nve(rJ,ot(Gh,function(n){return{type:\"polygon\",exterior:n}}),jP))}}var swt={南海诸岛:[32,80],广东:[0,-10],香港:[10,5],澳门:[-10,10],天津:[5,5]};function uwt(e,t){if(e===\"china\"){var r=swt[t.name];if(r){var n=t.getCenter();n[0]+=r[0]/10.5,n[1]+=-r[1]/(10.5/.75),t.setCenter(n)}}}var cwt=[[[123.45165252685547,25.73527164402261],[123.49731445312499,25.73527164402261],[123.49731445312499,25.750734064600884],[123.45165252685547,25.750734064600884],[123.45165252685547,25.73527164402261]]];function dwt(e,t){e===\"china\"&&t.name===\"台湾\"&&t.geometries.push({type:\"polygon\",exterior:cwt[0]})}var fwt=\"name\",hwt=function(){function e(t,r,n){this.type=\"geoJSON\",this._parsedMap=Gt(),this._mapName=t,this._specialAreas=n,this._geoJSON=mwt(r)}return e.prototype.load=function(t,r){r=r||fwt;var n=this._parsedMap.get(r);if(!n){var a=this._parseToRegions(r);n=this._parsedMap.set(r,{regions:a,boundingRect:pwt(a)})}var i=Gt(),o=[];return q(n.regions,function(l){var s=l.name;t&&$t(t,s)&&(l=l.cloneShallow(s=t[s])),o.push(l),i.set(s,l)}),{regions:o,boundingRect:n.boundingRect||new Ir(0,0,0,0),regionsMap:i}},e.prototype._parseToRegions=function(t){var r=this._mapName,n=this._geoJSON,a;try{a=n?IP(n,t):[]}catch(i){throw new Error(`Invalid geoJson format\n`+i.message)}return lwt(r,a),q(a,function(i){var o=i.name;uwt(r,i),dwt(r,i);var l=this._specialAreas&&this._specialAreas[o];l&&i.transformTo(l.left,l.top,l.width,l.height)},this),a},e.prototype.getMapForUser=function(){return{geoJson:this._geoJSON,geoJSON:this._geoJSON,specialAreas:this._specialAreas}},e}();function pwt(e){for(var t,r=0;r<e.length;r++){var n=e[r].getBoundingRect();t=t||n.clone(),t.union(n)}return t}function mwt(e){return At(e)?typeof JSON<\"u\"&&JSON.parse?JSON.parse(e):new Function(\"return (\"+e+\");\")():e}var q1=Gt();const gd={registerMap:function(e,t,r){if(t.svg){var n=new awt(e,t.svg);q1.set(e,n)}else{var a=t.geoJson||t.geoJSON;a&&!t.features?r=t.specialAreas:a=t;var n=new hwt(e,a,r);q1.set(e,n)}},getGeoResource:function(e){return q1.get(e)},getMapForUser:function(e){var t=q1.get(e);return t&&t.type===\"geoJSON\"&&t.getMapForUser()},load:function(e,t,r){var n=q1.get(e);if(n)return n.load(t,r)}};var y$=[\"rect\",\"circle\",\"line\",\"ellipse\",\"polygon\",\"polyline\",\"path\"],vwt=Gt(y$),gwt=Gt(y$.concat([\"g\"])),ywt=Gt(y$.concat([\"g\"])),H0e=rn();function SS(e){var t=e.getItemStyle(),r=e.get(\"areaColor\");return r!=null&&(t.fill=r),t}function nJ(e){var t=e.style;t&&(t.stroke=t.stroke||t.fill,t.fill=null)}var V0e=function(){function e(t){var r=new pr;this.uid=Zg(\"ec_map_draw\"),this._controller=new mC(t.getZr()),this._controllerHost={target:r},this.group=r,r.add(this._regionsGroup=new pr),r.add(this._svgGroup=new pr)}return e.prototype.draw=function(t,r,n,a,i){var o=t.mainType===\"geo\",l=t.getData&&t.getData();o&&r.eachComponent({mainType:\"series\",subType:\"map\"},function(y){!l&&y.getHostGeoModel()===t&&(l=y.getData())});var s=t.coordinateSystem,u=this._regionsGroup,c=this.group,d=s.getTransformInfo(),f=d.raw,h=d.roam,p=!u.childAt(0)||i;p?(c.x=h.x,c.y=h.y,c.scaleX=h.scaleX,c.scaleY=h.scaleY,c.dirty()):cn(c,h,t);var v=l&&l.getVisual(\"visualMeta\")&&l.getVisual(\"visualMeta\").length>0,g={api:n,geo:s,mapOrGeoModel:t,data:l,isVisualEncodedByVisualMap:v,isGeo:o,transformInfoRaw:f};s.resourceType===\"geoJSON\"?this._buildGeoJSON(g):s.resourceType===\"geoSVG\"&&this._buildSVG(g),this._updateController(t,r,n),this._updateMapSelectHandler(t,u,n,a)},e.prototype._buildGeoJSON=function(t){var r=this._regionsGroupByName=Gt(),n=Gt(),a=this._regionsGroup,i=t.transformInfoRaw,o=t.mapOrGeoModel,l=t.data,s=t.geo.projection,u=s&&s.stream;function c(h,p){return p&&(h=p(h)),h&&[h[0]*i.scaleX+i.x,h[1]*i.scaleY+i.y]}function d(h){for(var p=[],v=!u&&s&&s.project,g=0;g<h.length;++g){var y=c(h[g],v);y&&p.push(y)}return p}function f(h){return{shape:{points:d(h)}}}a.removeAll(),q(t.geo.regions,function(h){var p=h.name,v=r.get(p),g=n.get(p)||{},y=g.dataIdx,b=g.regionModel;if(!v){v=r.set(p,new pr),a.add(v),y=l?l.indexOfName(p):null,b=t.isGeo?o.getRegionModel(p):l?l.getItemModel(y):null;var x=b.get(\"silent\",!0);x!=null&&(v.silent=x),n.set(p,{dataIdx:y,regionModel:b})}var F=[],S=[];q(h.geometries,function(D){if(D.type===\"polygon\"){var A=[D.exterior].concat(D.interiors||[]);u&&(A=uJ(A,u)),q(A,function(I){F.push(new wo(f(I)))})}else{var _=D.points;u&&(_=uJ(_,u,!0)),q(_,function(I){S.push(new To(f(I)))})}});var E=c(h.getCenter(),s&&s.project);function w(D,A){if(D.length){var _=new ZD({culling:!0,segmentIgnoreThreshold:1,shape:{paths:D}});v.add(_),aJ(t,_,y,b),iJ(t,_,p,b,o,y,E),A&&(nJ(_),q(_.states,nJ))}}w(F),w(S,!0)}),r.each(function(h,p){var v=n.get(p),g=v.dataIdx,y=v.regionModel;oJ(t,h,p,y,o,g),lJ(t,h,p,y,o),sJ(t,h,p,y,o)},this)},e.prototype._buildSVG=function(t){var r=t.geo.map,n=t.transformInfoRaw;this._svgGroup.x=n.x,this._svgGroup.y=n.y,this._svgGroup.scaleX=n.scaleX,this._svgGroup.scaleY=n.scaleY,this._svgResourceChanged(r)&&(this._freeSVG(),this._useSVG(r));var a=this._svgDispatcherMap=Gt(),i=!1;q(this._svgGraphicRecord.named,function(o){var l=o.name,s=t.mapOrGeoModel,u=t.data,c=o.svgNodeTagLower,d=o.el,f=u?u.indexOfName(l):null,h=s.getRegionModel(l);vwt.get(c)!=null&&d instanceof As&&aJ(t,d,f,h),d instanceof As&&(d.culling=!0);var p=h.get(\"silent\",!0);if(p!=null&&(d.silent=p),d.z2EmphasisLift=0,!o.namedFrom&&(ywt.get(c)!=null&&iJ(t,d,l,h,s,f,null),oJ(t,d,l,h,s,f),lJ(t,d,l,h,s),gwt.get(c)!=null)){var v=sJ(t,d,l,h,s);v===\"self\"&&(i=!0);var g=a.get(l)||a.set(l,[]);g.push(d)}},this),this._enableBlurEntireSVG(i,t)},e.prototype._enableBlurEntireSVG=function(t,r){if(t&&r.isGeo){var n=r.mapOrGeoModel.getModel([\"blur\",\"itemStyle\"]).getItemStyle(),a=n.opacity;this._svgGraphicRecord.root.traverse(function(i){if(!i.isGroup){om(i);var o=i.ensureState(\"blur\").style||{};o.opacity==null&&a!=null&&(o.opacity=a),i.ensureState(\"emphasis\")}})}},e.prototype.remove=function(){this._regionsGroup.removeAll(),this._regionsGroupByName=null,this._svgGroup.removeAll(),this._freeSVG(),this._controller.dispose(),this._controllerHost=null},e.prototype.findHighDownDispatchers=function(t,r){if(t==null)return[];var n=r.coordinateSystem;if(n.resourceType===\"geoJSON\"){var a=this._regionsGroupByName;if(a){var i=a.get(t);return i?[i]:[]}}else if(n.resourceType===\"geoSVG\")return this._svgDispatcherMap&&this._svgDispatcherMap.get(t)||[]},e.prototype._svgResourceChanged=function(t){return this._svgMapName!==t},e.prototype._useSVG=function(t){var r=gd.getGeoResource(t);if(r&&r.type===\"geoSVG\"){var n=r.useGraphic(this.uid);this._svgGroup.add(n.root),this._svgGraphicRecord=n,this._svgMapName=t}},e.prototype._freeSVG=function(){var t=this._svgMapName;if(t!=null){var r=gd.getGeoResource(t);r&&r.type===\"geoSVG\"&&r.freeGraphic(this.uid),this._svgGraphicRecord=null,this._svgDispatcherMap=null,this._svgGroup.removeAll(),this._svgMapName=null}},e.prototype._updateController=function(t,r,n){var a=t.coordinateSystem,i=this._controller,o=this._controllerHost;o.zoomLimit=t.get(\"scaleLimit\"),o.zoom=a.getZoom(),i.enable(t.get(\"roam\")||!1);var l=t.mainType;function s(){var u={type:\"geoRoam\",componentType:l};return u[l+\"Id\"]=t.id,u}i.off(\"pan\").on(\"pan\",function(u){this._mouseDownFlag=!1,v$(o,u.dx,u.dy),n.dispatchAction(Xe(s(),{dx:u.dx,dy:u.dy,animation:{duration:0}}))},this),i.off(\"zoom\").on(\"zoom\",function(u){this._mouseDownFlag=!1,g$(o,u.scale,u.originX,u.originY),n.dispatchAction(Xe(s(),{totalZoom:o.zoom,zoom:u.scale,originX:u.originX,originY:u.originY,animation:{duration:0}}))},this),i.setPointerChecker(function(u,c,d){return a.containPoint([c,d])&&!yA(u,n,t)})},e.prototype.resetForLabelLayout=function(){this.group.traverse(function(t){var r=t.getTextContent();r&&(r.ignore=H0e(r).ignore)})},e.prototype._updateMapSelectHandler=function(t,r,n,a){var i=this;r.off(\"mousedown\"),r.off(\"click\"),t.get(\"selectedMode\")&&(r.on(\"mousedown\",function(){i._mouseDownFlag=!0}),r.on(\"click\",function(o){i._mouseDownFlag&&(i._mouseDownFlag=!1)}))},e}();function aJ(e,t,r,n){var a=n.getModel(\"itemStyle\"),i=n.getModel([\"emphasis\",\"itemStyle\"]),o=n.getModel([\"blur\",\"itemStyle\"]),l=n.getModel([\"select\",\"itemStyle\"]),s=SS(a),u=SS(i),c=SS(l),d=SS(o),f=e.data;if(f){var h=f.getItemVisual(r,\"style\"),p=f.getItemVisual(r,\"decal\");e.isVisualEncodedByVisualMap&&h.fill&&(s.fill=h.fill),p&&(s.decal=sg(p,e.api))}t.setStyle(s),t.style.strokeNoScale=!0,t.ensureState(\"emphasis\").style=u,t.ensureState(\"select\").style=c,t.ensureState(\"blur\").style=d,om(t)}function iJ(e,t,r,n,a,i,o){var l=e.data,s=e.isGeo,u=l&&isNaN(l.get(l.mapDimension(\"value\"),i)),c=l&&l.getItemLayout(i);if(s||u||c&&c.showLabel){var d=s?r:i,f=void 0;(!l||i>=0)&&(f=a);var h=o?{normal:{align:\"center\",verticalAlign:\"middle\"}}:null;Xi(t,vi(n),{labelFetcher:f,labelDataIndex:d,defaultText:r},h);var p=t.getTextContent();if(p&&(H0e(p).ignore=p.ignore,t.textConfig&&o)){var v=t.getBoundingRect().clone();t.textConfig.layoutRect=v,t.textConfig.position=[(o[0]-v.x)/v.width*100+\"%\",(o[1]-v.y)/v.height*100+\"%\"]}t.disableLabelAnimation=!0}else t.removeTextContent(),t.removeTextConfig(),t.disableLabelAnimation=null}function oJ(e,t,r,n,a,i){e.data?e.data.setItemGraphicEl(i,t):br(t).eventData={componentType:\"geo\",componentIndex:a.componentIndex,geoIndex:a.componentIndex,name:r,region:n&&n.option||{}}}function lJ(e,t,r,n,a){e.data||Nm({el:t,componentModel:a,itemName:r,itemTooltipOption:n.get(\"tooltip\")})}function sJ(e,t,r,n,a){t.highDownSilentOnTouch=!!a.get(\"selectedMode\");var i=n.getModel(\"emphasis\"),o=i.get(\"focus\");return sa(t,o,i.get(\"blurScope\"),i.get(\"disabled\")),e.isGeo&&t1t(t,a,r),o}function uJ(e,t,r){var n=[],a;function i(){a=[]}function o(){a.length&&(n.push(a),a=[])}var l=t({polygonStart:i,polygonEnd:o,lineStart:i,lineEnd:o,point:function(s,u){isFinite(s)&&isFinite(u)&&a.push([s,u])},sphere:function(){}});return!r&&l.polygonStart(),q(e,function(s){l.lineStart();for(var u=0;u<s.length;u++)l.point(s[u][0],s[u][1]);l.lineEnd()}),!r&&l.polygonEnd(),n}var bwt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a,i){if(!(i&&i.type===\"mapToggleSelect\"&&i.from===this.uid)){var o=this.group;if(o.removeAll(),!r.getHostGeoModel()){if(this._mapDraw&&i&&i.type===\"geoRoam\"&&this._mapDraw.resetForLabelLayout(),i&&i.type===\"geoRoam\"&&i.componentType===\"series\"&&i.seriesId===r.id){var l=this._mapDraw;l&&o.add(l.group)}else if(r.needsDrawMap){var l=this._mapDraw||new V0e(a);o.add(l.group),l.draw(r,n,a,this,i),this._mapDraw=l}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;r.get(\"showLegendSymbol\")&&n.getComponent(\"legend\")&&this._renderSymbols(r,n,a)}}},t.prototype.remove=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},t.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},t.prototype._renderSymbols=function(r,n,a){var i=r.originalData,o=this.group;i.each(i.mapDimension(\"value\"),function(l,s){if(!isNaN(l)){var u=i.getItemLayout(s);if(!(!u||!u.point)){var c=u.point,d=u.offset,f=new Fc({style:{fill:r.getData().getVisual(\"style\").fill},shape:{cx:c[0]+d*9,cy:c[1],r:3},silent:!0,z2:8+(d?0:Gg+1)});if(!d){var h=r.mainSeries.getData(),p=i.getName(s),v=h.indexOfName(p),g=i.getItemModel(s),y=g.getModel(\"label\"),b=h.getItemGraphicEl(v);Xi(f,vi(g),{labelFetcher:{getFormattedLabel:function(x,F){return r.getFormattedLabel(v,F)}},defaultText:p}),f.disableLabelAnimation=!0,y.get(\"position\")||f.setTextConfig({position:\"bottom\"}),b.onHoverStateChange=function(x){B3(f,x)}}o.add(f)}}})},t.type=\"map\",t}(Cn),xwt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.needsDrawMap=!1,r.seriesGroup=[],r.getTooltipPosition=function(n){if(n!=null){var a=this.getData().getName(n),i=this.coordinateSystem,o=i.getRegion(a);return o&&i.dataToPoint(o.getCenter())}},r}return t.prototype.getInitialData=function(r){for(var n=s1(this,{coordDimensions:[\"value\"],encodeDefaulter:wr(MN,this)}),a=Gt(),i=[],o=0,l=n.count();o<l;o++){var s=n.getName(o);a.set(s,o)}var u=gd.load(this.getMapType(),this.option.nameMap,this.option.nameProperty);return q(u.regions,function(c){var d=c.name,f=a.get(d),h=c.properties&&c.properties.echartsStyle,p;f==null?(p={name:d},i.push(p)):p=n.getRawDataItem(f),h&&Er(p,h)}),n.appendData(i),n},t.prototype.getHostGeoModel=function(){var r=this.option.geoIndex;return r!=null?this.ecModel.getComponent(\"geo\",r):null},t.prototype.getMapType=function(){return(this.getHostGeoModel()||this).option.map},t.prototype.getRawValue=function(r){var n=this.getData();return n.get(n.mapDimension(\"value\"),r)},t.prototype.getRegionModel=function(r){var n=this.getData();return n.getItemModel(n.indexOfName(r))},t.prototype.formatTooltip=function(r,n,a){for(var i=this.getData(),o=this.getRawValue(r),l=i.getName(r),s=this.seriesGroup,u=[],c=0;c<s.length;c++){var d=s[c].originalData.indexOfName(l),f=i.mapDimension(\"value\");isNaN(s[c].originalData.get(f,d))||u.push(s[c].name)}return gi(\"section\",{header:u.join(\", \"),noHeader:!u.length,blocks:[gi(\"nameValue\",{name:l,value:o})]})},t.prototype.setZoom=function(r){this.option.zoom=r},t.prototype.setCenter=function(r){this.option.center=r},t.prototype.getLegendIcon=function(r){var n=r.icon||\"roundRect\",a=_a(n,0,0,r.itemWidth,r.itemHeight,r.itemStyle.fill);return a.setStyle(r.itemStyle),a.style.stroke=\"none\",n.indexOf(\"empty\")>-1&&(a.style.stroke=a.style.fill,a.style.fill=\"#fff\",a.style.lineWidth=2),a},t.type=\"series.map\",t.dependencies=[\"geo\"],t.layoutMode=\"box\",t.defaultOption={z:2,coordinateSystem:\"geo\",map:\"\",left:\"center\",top:\"center\",aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:\"#000\"},itemStyle:{borderWidth:.5,borderColor:\"#444\",areaColor:\"#eee\"},emphasis:{label:{show:!0,color:\"rgb(100,0,0)\"},itemStyle:{areaColor:\"rgba(255,215,0,0.8)\"}},select:{label:{show:!0,color:\"rgb(100,0,0)\"},itemStyle:{color:\"rgba(255,215,0,0.8)\"}},nameProperty:\"name\"},t}(_n);function Cwt(e,t){var r={};return q(e,function(n){n.each(n.mapDimension(\"value\"),function(a,i){var o=\"ec-\"+n.getName(i);r[o]=r[o]||[],isNaN(a)||r[o].push(a)})}),e[0].map(e[0].mapDimension(\"value\"),function(n,a){for(var i=\"ec-\"+e[0].getName(a),o=0,l=1/0,s=-1/0,u=r[i].length,c=0;c<u;c++)l=Math.min(l,r[i][c]),s=Math.max(s,r[i][c]),o+=r[i][c];var d;return t===\"min\"?d=l:t===\"max\"?d=s:t===\"average\"?d=o/u:d=o,u===0?NaN:d})}function Fwt(e){var t={};e.eachSeriesByType(\"map\",function(r){var n=r.getHostGeoModel(),a=n?\"o\"+n.id:\"i\"+r.getMapType();(t[a]=t[a]||[]).push(r)}),q(t,function(r,n){for(var a=Cwt(ot(r,function(o){return o.getData()}),r[0].get(\"mapValueCalculation\")),i=0;i<r.length;i++)r[i].originalData=r[i].getData();for(var i=0;i<r.length;i++)r[i].seriesGroup=r,r[i].needsDrawMap=i===0&&!r[i].getHostGeoModel(),r[i].setData(a.cloneShallow()),r[i].mainSeries=r[0]})}function Swt(e){var t={};e.eachSeriesByType(\"map\",function(r){var n=r.getMapType();if(!(r.getHostGeoModel()||t[n])){var a={};q(r.seriesGroup,function(o){var l=o.coordinateSystem,s=o.originalData;o.get(\"showLegendSymbol\")&&e.getComponent(\"legend\")&&s.each(s.mapDimension(\"value\"),function(u,c){var d=s.getName(c),f=l.getRegion(d);if(!(!f||isNaN(u))){var h=a[d]||0,p=l.dataToPoint(f.getCenter());a[d]=h+1,s.setItemLayout(c,{point:p,offset:h})}})});var i=r.getData();i.each(function(o){var l=i.getName(o),s=i.getItemLayout(o)||{};s.showLabel=!a[l],i.setItemLayout(o,s)}),t[n]=!0}})}var cJ=Ii,vC=function(e){Re(t,e);function t(r){var n=e.call(this)||this;return n.type=\"view\",n.dimensions=[\"x\",\"y\"],n._roamTransformable=new Vc,n._rawTransformable=new Vc,n.name=r,n}return t.prototype.setBoundingRect=function(r,n,a,i){return this._rect=new Ir(r,n,a,i),this._rect},t.prototype.getBoundingRect=function(){return this._rect},t.prototype.setViewRect=function(r,n,a,i){this._transformTo(r,n,a,i),this._viewRect=new Ir(r,n,a,i)},t.prototype._transformTo=function(r,n,a,i){var o=this.getBoundingRect(),l=this._rawTransformable;l.transform=o.calculateTransform(new Ir(r,n,a,i));var s=l.parent;l.parent=null,l.decomposeTransform(),l.parent=s,this._updateTransform()},t.prototype.setCenter=function(r,n){r&&(this._center=[Ft(r[0],n.getWidth()),Ft(r[1],n.getHeight())],this._updateCenterAndZoom())},t.prototype.setZoom=function(r){r=r||1;var n=this.zoomLimit;n&&(n.max!=null&&(r=Math.min(n.max,r)),n.min!=null&&(r=Math.max(n.min,r))),this._zoom=r,this._updateCenterAndZoom()},t.prototype.getDefaultCenter=function(){var r=this.getBoundingRect(),n=r.x+r.width/2,a=r.y+r.height/2;return[n,a]},t.prototype.getCenter=function(){return this._center||this.getDefaultCenter()},t.prototype.getZoom=function(){return this._zoom||1},t.prototype.getRoamTransform=function(){return this._roamTransformable.getLocalTransform()},t.prototype._updateCenterAndZoom=function(){var r=this._rawTransformable.getLocalTransform(),n=this._roamTransformable,a=this.getDefaultCenter(),i=this.getCenter(),o=this.getZoom();i=Ii([],i,r),a=Ii([],a,r),n.originX=i[0],n.originY=i[1],n.x=a[0]-i[0],n.y=a[1]-i[1],n.scaleX=n.scaleY=o,this._updateTransform()},t.prototype._updateTransform=function(){var r=this._roamTransformable,n=this._rawTransformable;n.parent=r,r.updateTransform(),n.updateTransform(),jD(this.transform||(this.transform=[]),n.transform||hl()),this._rawTransform=n.getLocalTransform(),this.invTransform=this.invTransform||[],Bm(this.invTransform,this.transform),this.decomposeTransform()},t.prototype.getTransformInfo=function(){var r=this._rawTransformable,n=this._roamTransformable,a=new Vc;return a.transform=n.transform,a.decomposeTransform(),{roam:{x:a.x,y:a.y,scaleX:a.scaleX,scaleY:a.scaleY},raw:{x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY}}},t.prototype.getViewRect=function(){return this._viewRect},t.prototype.getViewRectAfterRoam=function(){var r=this.getBoundingRect().clone();return r.applyTransform(this.transform),r},t.prototype.dataToPoint=function(r,n,a){var i=n?this._rawTransform:this.transform;return a=a||[],i?cJ(a,r,i):lo(a,r)},t.prototype.pointToData=function(r){var n=this.invTransform;return n?cJ([],r,n):[r[0],r[1]]},t.prototype.convertToPixel=function(r,n,a){var i=dJ(n);return i===this?i.dataToPoint(a):null},t.prototype.convertFromPixel=function(r,n,a){var i=dJ(n);return i===this?i.pointToData(a):null},t.prototype.containPoint=function(r){return this.getViewRectAfterRoam().contain(r[0],r[1])},t.dimensions=[\"x\",\"y\"],t}(Vc);function dJ(e){var t=e.seriesModel;return t?t.coordinateSystem:null}var wwt={geoJSON:{aspectScale:.75,invertLongitute:!0},geoSVG:{aspectScale:1,invertLongitute:!1}},W0e=[\"lng\",\"lat\"],zP=function(e){Re(t,e);function t(r,n,a){var i=e.call(this,r)||this;i.dimensions=W0e,i.type=\"geo\",i._nameCoordMap=Gt(),i.map=n;var o=a.projection,l=gd.load(n,a.nameMap,a.nameProperty),s=gd.getGeoResource(n);i.resourceType=s?s.type:null;var u=i.regions=l.regions,c=wwt[s.type];i._regionsMap=l.regionsMap,i.regions=l.regions,i.projection=o;var d;if(o)for(var f=0;f<u.length;f++){var h=u[f].getBoundingRect(o);d=d||h.clone(),d.union(h)}else d=l.boundingRect;return i.setBoundingRect(d.x,d.y,d.width,d.height),i.aspectScale=o?1:Fr(a.aspectScale,c.aspectScale),i._invertLongitute=o?!1:c.invertLongitute,i}return t.prototype._transformTo=function(r,n,a,i){var o=this.getBoundingRect(),l=this._invertLongitute;o=o.clone(),l&&(o.y=-o.y-o.height);var s=this._rawTransformable;s.transform=o.calculateTransform(new Ir(r,n,a,i));var u=s.parent;s.parent=null,s.decomposeTransform(),s.parent=u,l&&(s.scaleY=-s.scaleY),this._updateTransform()},t.prototype.getRegion=function(r){return this._regionsMap.get(r)},t.prototype.getRegionByCoord=function(r){for(var n=this.regions,a=0;a<n.length;a++){var i=n[a];if(i.type===\"geoJSON\"&&i.contain(r))return n[a]}},t.prototype.addGeoCoord=function(r,n){this._nameCoordMap.set(r,n)},t.prototype.getGeoCoord=function(r){var n=this._regionsMap.get(r);return this._nameCoordMap.get(r)||n&&n.getCenter()},t.prototype.dataToPoint=function(r,n,a){if(At(r)&&(r=this.getGeoCoord(r)),r){var i=this.projection;return i&&(r=i.project(r)),r&&this.projectedToPoint(r,n,a)}},t.prototype.pointToData=function(r){var n=this.projection;return n&&(r=n.unproject(r)),r&&this.pointToProjected(r)},t.prototype.pointToProjected=function(r){return e.prototype.pointToData.call(this,r)},t.prototype.projectedToPoint=function(r,n,a){return e.prototype.dataToPoint.call(this,r,n,a)},t.prototype.convertToPixel=function(r,n,a){var i=fJ(n);return i===this?i.dataToPoint(a):null},t.prototype.convertFromPixel=function(r,n,a){var i=fJ(n);return i===this?i.pointToData(a):null},t}(vC);Ca(zP,vC);function fJ(e){var t=e.geoModel,r=e.seriesModel;return t?t.coordinateSystem:r?r.coordinateSystem||(r.getReferringComponents(\"geo\",Oa).models[0]||{}).coordinateSystem:null}function hJ(e,t){var r=e.get(\"boundingCoords\");if(r!=null){var n=r[0],a=r[1];if(isFinite(n[0])&&isFinite(n[1])&&isFinite(a[0])&&isFinite(a[1])){var i=this.projection;if(i){var o=n[0],l=n[1],s=a[0],u=a[1];n=[1/0,1/0],a=[-1/0,-1/0];var c=function(E,w,D,A){for(var _=D-E,I=A-w,M=0;M<=100;M++){var T=M/100,k=i.project([E+_*T,w+I*T]);zc(n,n,k),Hc(a,a,k)}};c(o,l,s,l),c(s,l,s,u),c(s,u,o,u),c(o,u,s,l)}this.setBoundingRect(n[0],n[1],a[0]-n[0],a[1]-n[1])}}var d=this.getBoundingRect(),f=e.get(\"layoutCenter\"),h=e.get(\"layoutSize\"),p=t.getWidth(),v=t.getHeight(),g=d.width/d.height*this.aspectScale,y=!1,b,x;f&&h&&(b=[Ft(f[0],p),Ft(f[1],v)],x=Ft(h,Math.min(p,v)),!isNaN(b[0])&&!isNaN(b[1])&&!isNaN(x)&&(y=!0));var F;if(y)F={},g>1?(F.width=x,F.height=x/g):(F.height=x,F.width=x*g),F.y=b[1]-F.height/2,F.x=b[0]-F.width/2;else{var S=e.getBoxLayoutParams();S.aspect=g,F=Na(S,{width:p,height:v})}this.setViewRect(F.x,F.y,F.width,F.height),this.setCenter(e.get(\"center\"),t),this.setZoom(e.get(\"zoom\"))}function Ewt(e,t){q(t.get(\"geoCoord\"),function(r,n){e.addGeoCoord(n,r)})}var Dwt=function(){function e(){this.dimensions=W0e}return e.prototype.create=function(t,r){var n=[];function a(o){return{nameProperty:o.get(\"nameProperty\"),aspectScale:o.get(\"aspectScale\"),projection:o.get(\"projection\")}}t.eachComponent(\"geo\",function(o,l){var s=o.get(\"map\"),u=new zP(s+l,s,Xe({nameMap:o.get(\"nameMap\")},a(o)));u.zoomLimit=o.get(\"scaleLimit\"),n.push(u),o.coordinateSystem=u,u.model=o,u.resize=hJ,u.resize(o,r)}),t.eachSeries(function(o){var l=o.get(\"coordinateSystem\");if(l===\"geo\"){var s=o.get(\"geoIndex\")||0;o.coordinateSystem=n[s]}});var i={};return t.eachSeriesByType(\"map\",function(o){if(!o.getHostGeoModel()){var l=o.getMapType();i[l]=i[l]||[],i[l].push(o)}}),q(i,function(o,l){var s=ot(o,function(c){return c.get(\"nameMap\")}),u=new zP(l,l,Xe({nameMap:ND(s)},a(o[0])));u.zoomLimit=ui.apply(null,ot(o,function(c){return c.get(\"scaleLimit\")})),n.push(u),u.resize=hJ,u.resize(o[0],r),q(o,function(c){c.coordinateSystem=u,Ewt(u,c)})}),n},e.prototype.getFilledRegions=function(t,r,n,a){for(var i=(t||[]).slice(),o=Gt(),l=0;l<i.length;l++)o.set(i[l].name,i[l]);var s=gd.load(r,n,a);return q(s.regions,function(u){var c=u.name,d=o.get(c),f=u.properties&&u.properties.echartsStyle;d||(d={name:c},i.push(d)),f&&Er(d,f)}),i},e}(),G0e=new Dwt,Awt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n,a){var i=gd.getGeoResource(r.map);if(i&&i.type===\"geoJSON\"){var o=r.itemStyle=r.itemStyle||{};\"color\"in o||(o.color=\"#eee\")}this.mergeDefaultAndTheme(r,a),nm(r,\"label\",[\"show\"])},t.prototype.optionUpdated=function(){var r=this,n=this.option;n.regions=G0e.getFilledRegions(n.regions,n.map,n.nameMap,n.nameProperty);var a={};this._optionModelMap=Ds(n.regions||[],function(i,o){var l=o.name;return l&&(i.set(l,new pn(o,r,r.ecModel)),o.selected&&(a[l]=!0)),i},Gt()),n.selectedMap||(n.selectedMap=a)},t.prototype.getRegionModel=function(r){return this._optionModelMap.get(r)||new pn(null,this,this.ecModel)},t.prototype.getFormattedLabel=function(r,n){var a=this.getRegionModel(r),i=n===\"normal\"?a.get([\"label\",\"formatter\"]):a.get([\"emphasis\",\"label\",\"formatter\"]),o={name:r};if(er(i))return o.status=n,i(o);if(At(i))return i.replace(\"{a}\",r??\"\")},t.prototype.setZoom=function(r){this.option.zoom=r},t.prototype.setCenter=function(r){this.option.center=r},t.prototype.select=function(r){var n=this.option,a=n.selectedMode;if(a){a!==\"multiple\"&&(n.selectedMap=null);var i=n.selectedMap||(n.selectedMap={});i[r]=!0}},t.prototype.unSelect=function(r){var n=this.option.selectedMap;n&&(n[r]=!1)},t.prototype.toggleSelected=function(r){this[this.isSelected(r)?\"unSelect\":\"select\"](r)},t.prototype.isSelected=function(r){var n=this.option.selectedMap;return!!(n&&n[r])},t.type=\"geo\",t.layoutMode=\"box\",t.defaultOption={z:0,show:!0,left:\"center\",top:\"center\",aspectScale:null,silent:!1,map:\"\",boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:\"#000\"},itemStyle:{borderWidth:.5,borderColor:\"#444\"},emphasis:{label:{show:!0,color:\"rgb(100,0,0)\"},itemStyle:{color:\"rgba(255,215,0,0.8)\"}},select:{label:{show:!0,color:\"rgb(100,0,0)\"},itemStyle:{color:\"rgba(255,215,0,0.8)\"}},regions:[]},t}(jr);function pJ(e,t){return e.pointToProjected?e.pointToProjected(t):e.pointToData(t)}function b$(e,t,r,n){var a=e.getZoom(),i=e.getCenter(),o=t.zoom,l=e.projectedToPoint?e.projectedToPoint(i):e.dataToPoint(i);if(t.dx!=null&&t.dy!=null&&(l[0]-=t.dx,l[1]-=t.dy,e.setCenter(pJ(e,l),n)),o!=null){if(r){var s=r.min||0,u=r.max||1/0;o=Math.max(Math.min(a*o,u),s)/a}e.scaleX*=o,e.scaleY*=o;var c=(t.originX-e.x)*(o-1),d=(t.originY-e.y)*(o-1);e.x-=c,e.y-=d,e.updateTransform(),e.setCenter(pJ(e,l),n),e.setZoom(o*a)}return{center:e.getCenter(),zoom:e.getZoom()}}var _wt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.focusBlurEnabled=!0,r}return t.prototype.init=function(r,n){this._api=n},t.prototype.render=function(r,n,a,i){if(this._model=r,!r.get(\"show\")){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;return}this._mapDraw||(this._mapDraw=new V0e(a));var o=this._mapDraw;o.draw(r,n,a,this,i),o.group.on(\"click\",this._handleRegionClick,this),o.group.silent=r.get(\"silent\"),this.group.add(o.group),this.updateSelectStatus(r,n,a)},t.prototype._handleRegionClick=function(r){var n;vp(r.target,function(a){return(n=br(a).eventData)!=null},!0),n&&this._api.dispatchAction({type:\"geoToggleSelect\",geoId:this._model.id,name:n.name})},t.prototype.updateSelectStatus=function(r,n,a){var i=this;this._mapDraw.group.traverse(function(o){var l=br(o).eventData;if(l)return i._model.isSelected(l.name)?a.enterSelect(o):a.leaveSelect(o),!0})},t.prototype.findHighDownDispatchers=function(r){return this._mapDraw&&this._mapDraw.findHighDownDispatchers(r,this._model)},t.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove()},t.type=\"geo\",t}(Wn);function Twt(e,t,r){gd.registerMap(e,t,r)}function U0e(e){e.registerCoordinateSystem(\"geo\",G0e),e.registerComponentModel(Awt),e.registerComponentView(_wt),e.registerImpl(\"registerMap\",Twt),e.registerImpl(\"getMap\",function(r){return gd.getMapForUser(r)});function t(r,n){n.update=\"geo:updateSelectStatus\",e.registerAction(n,function(a,i){var o={},l=[];return i.eachComponent({mainType:\"geo\",query:a},function(s){s[r](a.name);var u=s.coordinateSystem;q(u.regions,function(d){o[d.name]=s.isSelected(d.name)||!1});var c=[];q(o,function(d,f){o[f]&&c.push(f)}),l.push({geoIndex:s.componentIndex,name:c})}),{selected:o,allSelected:l,name:a.name}})}t(\"toggleSelected\",{type:\"geoToggleSelect\",event:\"geoselectchanged\"}),t(\"select\",{type:\"geoSelect\",event:\"geoselected\"}),t(\"unSelect\",{type:\"geoUnSelect\",event:\"geounselected\"}),e.registerAction({type:\"geoRoam\",event:\"geoRoam\",update:\"updateTransform\"},function(r,n,a){var i=r.componentType||\"series\";n.eachComponent({mainType:i,query:r},function(o){var l=o.coordinateSystem;if(l.type===\"geo\"){var s=b$(l,r,o.get(\"scaleLimit\"),a);o.setCenter&&o.setCenter(s.center),o.setZoom&&o.setZoom(s.zoom),i===\"series\"&&q(o.seriesGroup,function(u){u.setCenter(s.center),u.setZoom(s.zoom)})}})})}function Iwt(e){Nr(U0e),e.registerChartView(bwt),e.registerSeriesModel(xwt),e.registerLayout(Swt),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,Fwt),Wme(\"map\",e.registerAction)}function kwt(e){var t=e;t.hierNode={defaultAncestor:null,ancestor:t,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var r=[t],n,a;n=r.pop();)if(a=n.children,n.isExpand&&a.length)for(var i=a.length,o=i-1;o>=0;o--){var l=a[o];l.hierNode={defaultAncestor:null,ancestor:l,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(l)}}function Rwt(e,t){var r=e.isExpand?e.children:[],n=e.parentNode.children,a=e.hierNode.i?n[e.hierNode.i-1]:null;if(r.length){Owt(e);var i=(r[0].hierNode.prelim+r[r.length-1].hierNode.prelim)/2;a?(e.hierNode.prelim=a.hierNode.prelim+t(e,a),e.hierNode.modifier=e.hierNode.prelim-i):e.hierNode.prelim=i}else a&&(e.hierNode.prelim=a.hierNode.prelim+t(e,a));e.parentNode.hierNode.defaultAncestor=Bwt(e,a,e.parentNode.hierNode.defaultAncestor||n[0],t)}function Mwt(e){var t=e.hierNode.prelim+e.parentNode.hierNode.modifier;e.setLayout({x:t},!0),e.hierNode.modifier+=e.parentNode.hierNode.modifier}function mJ(e){return arguments.length?e:Lwt}function Dy(e,t){return e-=Math.PI/2,{x:t*Math.cos(e),y:t*Math.sin(e)}}function Pwt(e,t){return Na(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function Owt(e){for(var t=e.children,r=t.length,n=0,a=0;--r>=0;){var i=t[r];i.hierNode.prelim+=n,i.hierNode.modifier+=n,a+=i.hierNode.change,n+=i.hierNode.shift+a}}function Bwt(e,t,r,n){if(t){for(var a=e,i=e,o=i.parentNode.children[0],l=t,s=a.hierNode.modifier,u=i.hierNode.modifier,c=o.hierNode.modifier,d=l.hierNode.modifier;l=kI(l),i=RI(i),l&&i;){a=kI(a),o=RI(o),a.hierNode.ancestor=e;var f=l.hierNode.prelim+d-i.hierNode.prelim-u+n(l,i);f>0&&($wt(Nwt(l,e,r),e,f),u+=f,s+=f),d+=l.hierNode.modifier,u+=i.hierNode.modifier,s+=a.hierNode.modifier,c+=o.hierNode.modifier}l&&!kI(a)&&(a.hierNode.thread=l,a.hierNode.modifier+=d-s),i&&!RI(o)&&(o.hierNode.thread=i,o.hierNode.modifier+=u-c,r=e)}return r}function kI(e){var t=e.children;return t.length&&e.isExpand?t[t.length-1]:e.hierNode.thread}function RI(e){var t=e.children;return t.length&&e.isExpand?t[0]:e.hierNode.thread}function Nwt(e,t,r){return e.hierNode.ancestor.parentNode===t.parentNode?e.hierNode.ancestor:r}function $wt(e,t,r){var n=r/(t.hierNode.i-e.hierNode.i);t.hierNode.change-=n,t.hierNode.shift+=r,t.hierNode.modifier+=r,t.hierNode.prelim+=r,e.hierNode.change+=n}function Lwt(e,t){return e.parentNode===t.parentNode?1:2}var jwt=function(){function e(){this.parentPoint=[],this.childPoints=[]}return e}(),zwt=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new jwt},t.prototype.buildPath=function(r,n){var a=n.childPoints,i=a.length,o=n.parentPoint,l=a[0],s=a[i-1];if(i===1){r.moveTo(o[0],o[1]),r.lineTo(l[0],l[1]);return}var u=n.orient,c=u===\"TB\"||u===\"BT\"?0:1,d=1-c,f=Ft(n.forkPosition,1),h=[];h[c]=o[c],h[d]=o[d]+(s[d]-o[d])*f,r.moveTo(o[0],o[1]),r.lineTo(h[0],h[1]),r.moveTo(l[0],l[1]),h[c]=l[c],r.lineTo(h[0],h[1]),h[c]=s[c],r.lineTo(h[0],h[1]),r.lineTo(s[0],s[1]);for(var p=1;p<i-1;p++){var v=a[p];r.moveTo(v[0],v[1]),h[c]=v[c],r.lineTo(h[0],h[1])}},t}(Vr),Hwt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._mainGroup=new pr,r}return t.prototype.init=function(r,n){this._controller=new mC(n.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},t.prototype.render=function(r,n,a){var i=r.getData(),o=r.layoutInfo,l=this._mainGroup,s=r.get(\"layout\");s===\"radial\"?(l.x=o.x+o.width/2,l.y=o.y+o.height/2):(l.x=o.x,l.y=o.y),this._updateViewCoordSys(r,a),this._updateController(r,n,a);var u=this._data;i.diff(u).add(function(c){vJ(i,c)&&gJ(i,c,null,l,r)}).update(function(c,d){var f=u.getItemGraphicEl(d);if(!vJ(i,c)){f&&bJ(u,d,f,l,r);return}gJ(i,c,f,l,r)}).remove(function(c){var d=u.getItemGraphicEl(c);d&&bJ(u,c,d,l,r)}).execute(),this._nodeScaleRatio=r.get(\"nodeScaleRatio\"),this._updateNodeAndLinkScale(r),r.get(\"expandAndCollapse\")===!0&&i.eachItemGraphicEl(function(c,d){c.off(\"click\").on(\"click\",function(){a.dispatchAction({type:\"treeExpandAndCollapse\",seriesId:r.id,dataIndex:d})})}),this._data=i},t.prototype._updateViewCoordSys=function(r,n){var a=r.getData(),i=[];a.each(function(d){var f=a.getItemLayout(d);f&&!isNaN(f.x)&&!isNaN(f.y)&&i.push([+f.x,+f.y])});var o=[],l=[];qD(i,o,l);var s=this._min,u=this._max;l[0]-o[0]===0&&(o[0]=s?s[0]:o[0]-1,l[0]=u?u[0]:l[0]+1),l[1]-o[1]===0&&(o[1]=s?s[1]:o[1]-1,l[1]=u?u[1]:l[1]+1);var c=r.coordinateSystem=new vC;c.zoomLimit=r.get(\"scaleLimit\"),c.setBoundingRect(o[0],o[1],l[0]-o[0],l[1]-o[1]),c.setCenter(r.get(\"center\"),n),c.setZoom(r.get(\"zoom\")),this.group.attr({x:c.x,y:c.y,scaleX:c.scaleX,scaleY:c.scaleY}),this._min=o,this._max=l},t.prototype._updateController=function(r,n,a){var i=this,o=this._controller,l=this._controllerHost,s=this.group;o.setPointerChecker(function(u,c,d){var f=s.getBoundingRect();return f.applyTransform(s.transform),f.contain(c,d)&&!yA(u,a,r)}),o.enable(r.get(\"roam\")),l.zoomLimit=r.get(\"scaleLimit\"),l.zoom=r.coordinateSystem.getZoom(),o.off(\"pan\").off(\"zoom\").on(\"pan\",function(u){v$(l,u.dx,u.dy),a.dispatchAction({seriesId:r.id,type:\"treeRoam\",dx:u.dx,dy:u.dy})}).on(\"zoom\",function(u){g$(l,u.scale,u.originX,u.originY),a.dispatchAction({seriesId:r.id,type:\"treeRoam\",zoom:u.scale,originX:u.originX,originY:u.originY}),i._updateNodeAndLinkScale(r),a.updateLabelLayout()})},t.prototype._updateNodeAndLinkScale=function(r){var n=r.getData(),a=this._getNodeGlobalScale(r);n.eachItemGraphicEl(function(i,o){i.setSymbolScale(a)})},t.prototype._getNodeGlobalScale=function(r){var n=r.coordinateSystem;if(n.type!==\"view\")return 1;var a=this._nodeScaleRatio,i=n.scaleX||1,o=n.getZoom(),l=(o-1)*a+1;return l/i},t.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},t.prototype.remove=function(){this._mainGroup.removeAll(),this._data=null},t.type=\"tree\",t}(Cn);function vJ(e,t){var r=e.getItemLayout(t);return r&&!isNaN(r.x)&&!isNaN(r.y)}function gJ(e,t,r,n,a){var i=!r,o=e.tree.getNodeByDataIndex(t),l=o.getModel(),s=o.getVisual(\"style\").fill,u=o.isExpand===!1&&o.children.length!==0?s:\"#fff\",c=e.tree.root,d=o.parentNode===c?o:o.parentNode||o,f=e.getItemGraphicEl(d.dataIndex),h=d.getLayout(),p=f?{x:f.__oldX,y:f.__oldY,rawX:f.__radialOldRawX,rawY:f.__radialOldRawY}:h,v=o.getLayout();i?(r=new uC(e,t,null,{symbolInnerColor:u,useNameLabel:!0}),r.x=p.x,r.y=p.y):r.updateData(e,t,null,{symbolInnerColor:u,useNameLabel:!0}),r.__radialOldRawX=r.__radialRawX,r.__radialOldRawY=r.__radialRawY,r.__radialRawX=v.rawX,r.__radialRawY=v.rawY,n.add(r),e.setItemGraphicEl(t,r),r.__oldX=r.x,r.__oldY=r.y,cn(r,{x:v.x,y:v.y},a);var g=r.getSymbolPath();if(a.get(\"layout\")===\"radial\"){var y=c.children[0],b=y.getLayout(),x=y.children.length,F=void 0,S=void 0;if(v.x===b.x&&o.isExpand===!0&&y.children.length){var E={x:(y.children[0].getLayout().x+y.children[x-1].getLayout().x)/2,y:(y.children[0].getLayout().y+y.children[x-1].getLayout().y)/2};F=Math.atan2(E.y-b.y,E.x-b.x),F<0&&(F=Math.PI*2+F),S=E.x<b.x,S&&(F=F-Math.PI)}else F=Math.atan2(v.y-b.y,v.x-b.x),F<0&&(F=Math.PI*2+F),o.children.length===0||o.children.length!==0&&o.isExpand===!1?(S=v.x<b.x,S&&(F=F-Math.PI)):(S=v.x>b.x,S||(F=F-Math.PI));var w=S?\"left\":\"right\",D=l.getModel(\"label\"),A=D.get(\"rotate\"),_=A*(Math.PI/180),I=g.getTextContent();I&&(g.setTextConfig({position:D.get(\"position\")||w,rotation:A==null?-F:_,origin:\"center\"}),I.setStyle(\"verticalAlign\",\"middle\"))}var M=l.get([\"emphasis\",\"focus\"]),T=M===\"relative\"?ng(o.getAncestorsIndices(),o.getDescendantIndices()):M===\"ancestor\"?o.getAncestorsIndices():M===\"descendant\"?o.getDescendantIndices():null;T&&(br(r).focus=T),Vwt(a,o,c,r,p,h,v,n),r.__edge&&(r.onHoverStateChange=function(k){if(k!==\"blur\"){var R=o.parentNode&&e.getItemGraphicEl(o.parentNode.dataIndex);R&&R.hoverState===tC||B3(r.__edge,k)}})}function Vwt(e,t,r,n,a,i,o,l){var s=t.getModel(),u=e.get(\"edgeShape\"),c=e.get(\"layout\"),d=e.getOrient(),f=e.get([\"lineStyle\",\"curveness\"]),h=e.get(\"edgeForkPosition\"),p=s.getModel(\"lineStyle\").getLineStyle(),v=n.__edge;if(u===\"curve\")t.parentNode&&t.parentNode!==r&&(v||(v=n.__edge=new Kg({shape:HP(c,d,f,a,a)})),cn(v,{shape:HP(c,d,f,i,o)},e));else if(u===\"polyline\"&&c===\"orthogonal\"&&t!==r&&t.children&&t.children.length!==0&&t.isExpand===!0){for(var g=t.children,y=[],b=0;b<g.length;b++){var x=g[b].getLayout();y.push([x.x,x.y])}v||(v=n.__edge=new zwt({shape:{parentPoint:[o.x,o.y],childPoints:[[o.x,o.y]],orient:d,forkPosition:h}})),cn(v,{shape:{parentPoint:[o.x,o.y],childPoints:y}},e)}v&&!(u===\"polyline\"&&!t.isExpand)&&(v.useStyle(rr({strokeNoScale:!0,fill:null},p)),qi(v,s,\"lineStyle\"),om(v),l.add(v))}function yJ(e,t,r,n,a){var i=t.tree.root,o=K0e(i,e),l=o.source,s=o.sourceLayout,u=t.getItemGraphicEl(e.dataIndex);if(u){var c=t.getItemGraphicEl(l.dataIndex),d=c.__edge,f=u.__edge||(l.isExpand===!1||l.children.length===1?d:void 0),h=n.get(\"edgeShape\"),p=n.get(\"layout\"),v=n.get(\"orient\"),g=n.get([\"lineStyle\",\"curveness\"]);f&&(h===\"curve\"?qf(f,{shape:HP(p,v,g,s,s),style:{opacity:0}},n,{cb:function(){r.remove(f)},removeOpt:a}):h===\"polyline\"&&n.get(\"layout\")===\"orthogonal\"&&qf(f,{shape:{parentPoint:[s.x,s.y],childPoints:[[s.x,s.y]]},style:{opacity:0}},n,{cb:function(){r.remove(f)},removeOpt:a}))}}function K0e(e,t){for(var r=t.parentNode===e?t:t.parentNode||t,n;n=r.getLayout(),n==null;)r=r.parentNode===e?r:r.parentNode||r;return{source:r,sourceLayout:n}}function bJ(e,t,r,n,a){var i=e.tree.getNodeByDataIndex(t),o=e.tree.root,l=K0e(o,i).sourceLayout,s={duration:a.get(\"animationDurationUpdate\"),easing:a.get(\"animationEasingUpdate\")};qf(r,{x:l.x+1,y:l.y+1},a,{cb:function(){n.remove(r),e.setItemGraphicEl(t,null)},removeOpt:s}),r.fadeOut(null,e.hostModel,{fadeLabel:!0,animation:s}),i.children.forEach(function(u){yJ(u,e,n,a,s)}),yJ(i,e,n,a,s)}function HP(e,t,r,n,a){var i,o,l,s,u,c,d,f;if(e===\"radial\"){u=n.rawX,d=n.rawY,c=a.rawX,f=a.rawY;var h=Dy(u,d),p=Dy(u,d+(f-d)*r),v=Dy(c,f+(d-f)*r),g=Dy(c,f);return{x1:h.x||0,y1:h.y||0,x2:g.x||0,y2:g.y||0,cpx1:p.x||0,cpy1:p.y||0,cpx2:v.x||0,cpy2:v.y||0}}else u=n.x,d=n.y,c=a.x,f=a.y,(t===\"LR\"||t===\"RL\")&&(i=u+(c-u)*r,o=d,l=c+(u-c)*r,s=f),(t===\"TB\"||t===\"BT\")&&(i=u,o=d+(f-d)*r,l=c,s=f+(d-f)*r);return{x1:u,y1:d,x2:c,y2:f,cpx1:i,cpy1:o,cpx2:l,cpy2:s}}var bs=rn();function Y0e(e){var t=e.mainData,r=e.datas;r||(r={main:t},e.datasAttr={main:\"data\"}),e.datas=e.mainData=null,q0e(t,r,e),q(r,function(n){q(t.TRANSFERABLE_METHODS,function(a){n.wrapMethod(a,wr(Wwt,e))})}),t.wrapMethod(\"cloneShallow\",wr(Uwt,e)),q(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,wr(Gwt,e))}),Fo(r[t.dataType]===t)}function Wwt(e,t){if(qwt(this)){var r=Xe({},bs(this).datas);r[this.dataType]=t,q0e(t,r,e)}else x$(t,this.dataType,bs(this).mainData,e);return t}function Gwt(e,t){return e.struct&&e.struct.update(),t}function Uwt(e,t){return q(bs(t).datas,function(r,n){r!==t&&x$(r.cloneShallow(),n,t,e)}),t}function Kwt(e){var t=bs(this).mainData;return e==null||t==null?t:bs(t).datas[e]}function Ywt(){var e=bs(this).mainData;return e==null?[{data:e}]:ot(Ur(bs(e).datas),function(t){return{type:t,data:bs(e).datas[t]}})}function qwt(e){return bs(e).mainData===e}function q0e(e,t,r){bs(e).datas={},q(t,function(n,a){x$(n,a,e,r)})}function x$(e,t,r,n){bs(r).datas[t]=e,bs(e).mainData=r,e.dataType=t,n.struct&&(e[n.structAttr]=n.struct,n.struct[n.datasAttr[t]]=e),e.getLinkedData=Kwt,e.getLinkedDataAll=Ywt}var Xwt=function(){function e(t,r){this.depth=0,this.height=0,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.isExpand=!1,this.name=t||\"\",this.hostTree=r}return e.prototype.isRemoved=function(){return this.dataIndex<0},e.prototype.eachNode=function(t,r,n){er(t)&&(n=r,r=t,t=null),t=t||{},At(t)&&(t={order:t});var a=t.order||\"preorder\",i=this[t.attr||\"children\"],o;a===\"preorder\"&&(o=r.call(n,this));for(var l=0;!o&&l<i.length;l++)i[l].eachNode(t,r,n);a===\"postorder\"&&r.call(n,this)},e.prototype.updateDepthAndHeight=function(t){var r=0;this.depth=t;for(var n=0;n<this.children.length;n++){var a=this.children[n];a.updateDepthAndHeight(t+1),a.height>r&&(r=a.height)}this.height=r+1},e.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var r=0,n=this.children,a=n.length;r<a;r++){var i=n[r].getNodeById(t);if(i)return i}},e.prototype.contains=function(t){if(t===this)return!0;for(var r=0,n=this.children,a=n.length;r<a;r++){var i=n[r].contains(t);if(i)return i}},e.prototype.getAncestors=function(t){for(var r=[],n=t?this:this.parentNode;n;)r.push(n),n=n.parentNode;return r.reverse(),r},e.prototype.getAncestorsIndices=function(){for(var t=[],r=this;r;)t.push(r.dataIndex),r=r.parentNode;return t.reverse(),t},e.prototype.getDescendantIndices=function(){var t=[];return this.eachNode(function(r){t.push(r.dataIndex)}),t},e.prototype.getValue=function(t){var r=this.hostTree.data;return r.getStore().get(r.getDimensionIndex(t||\"value\"),this.dataIndex)},e.prototype.setLayout=function(t,r){this.dataIndex>=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,r)},e.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},e.prototype.getModel=function(t){if(!(this.dataIndex<0)){var r=this.hostTree,n=r.data.getItemModel(this.dataIndex);return n.getModel(t)}},e.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},e.prototype.setVisual=function(t,r){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,r)},e.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},e.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},e.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},e.prototype.getChildIndex=function(){if(this.parentNode){for(var t=this.parentNode.children,r=0;r<t.length;++r)if(t[r]===this)return r;return-1}return-1},e.prototype.isAncestorOf=function(t){for(var r=t.parentNode;r;){if(r===this)return!0;r=r.parentNode}return!1},e.prototype.isDescendantOf=function(t){return t!==this&&t.isAncestorOf(this)},e}(),C$=function(){function e(t){this.type=\"tree\",this._nodes=[],this.hostModel=t}return e.prototype.eachNode=function(t,r,n){this.root.eachNode(t,r,n)},e.prototype.getNodeByDataIndex=function(t){var r=this.data.getRawIndex(t);return this._nodes[r]},e.prototype.getNodeById=function(t){return this.root.getNodeById(t)},e.prototype.update=function(){for(var t=this.data,r=this._nodes,n=0,a=r.length;n<a;n++)r[n].dataIndex=-1;for(var n=0,a=t.count();n<a;n++)r[t.getRawIndex(n)].dataIndex=n},e.prototype.clearLayouts=function(){this.data.clearItemLayouts()},e.createTree=function(t,r,n){var a=new e(r),i=[],o=1;l(t);function l(c,d){var f=c.value;o=Math.max(o,nt(f)?f.length:1),i.push(c);var h=new Xwt(qa(c.name,\"\"),a);d?Jwt(h,d):a.root=h,a._nodes.push(h);var p=c.children;if(p)for(var v=0;v<p.length;v++)l(p[v],h)}a.root.updateDepthAndHeight(0);var s=i1(i,{coordDimensions:[\"value\"],dimensionsCount:o}).dimensions,u=new xo(s,r);return u.initData(i),n&&n(u),Y0e({mainData:u,struct:a,structAttr:\"tree\"}),a.update(),a},e}();function Jwt(e,t){var r=t.children;e.parentNode!==t&&(r.push(e),e.parentNode=t)}function V2(e,t,r){if(e&&Mr(t,e.type)>=0){var n=r.getData().tree.root,a=e.targetNode;if(At(a)&&(a=n.getNodeById(a)),a&&n.contains(a))return{node:a};var i=e.targetNodeId;if(i!=null&&(a=n.getNodeById(i)))return{node:a}}}function X0e(e){for(var t=[];e;)e=e.parentNode,e&&t.push(e);return t.reverse()}function F$(e,t){var r=X0e(e);return Mr(r,t)>=0}function xA(e,t){for(var r=[];e;){var n=e.dataIndex;r.push({name:e.name,dataIndex:n,value:t.getRawValue(n)}),e=e.parentNode}return r.reverse(),r}var Zwt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.hasSymbolVisual=!0,r.ignoreStyleOnData=!0,r}return t.prototype.getInitialData=function(r){var n={name:r.name,children:r.data},a=r.leaves||{},i=new pn(a,this,this.ecModel),o=C$.createTree(n,this,l);function l(d){d.wrapMethod(\"getItemModel\",function(f,h){var p=o.getNodeByDataIndex(h);return p&&p.children.length&&p.isExpand||(f.parentModel=i),f})}var s=0;o.eachNode(\"preorder\",function(d){d.depth>s&&(s=d.depth)});var u=r.expandAndCollapse,c=u&&r.initialTreeDepth>=0?r.initialTreeDepth:s;return o.root.eachNode(\"preorder\",function(d){var f=d.hostTree.data.getRawDataItem(d.dataIndex);d.isExpand=f&&f.collapsed!=null?!f.collapsed:d.depth<=c}),o.data},t.prototype.getOrient=function(){var r=this.get(\"orient\");return r===\"horizontal\"?r=\"LR\":r===\"vertical\"&&(r=\"TB\"),r},t.prototype.setZoom=function(r){this.option.zoom=r},t.prototype.setCenter=function(r){this.option.center=r},t.prototype.formatTooltip=function(r,n,a){for(var i=this.getData().tree,o=i.root.children[0],l=i.getNodeByDataIndex(r),s=l.getValue(),u=l.name;l&&l!==o;)u=l.parentNode.name+\".\"+u,l=l.parentNode;return gi(\"nameValue\",{name:u,value:s,noValue:isNaN(s)||s==null})},t.prototype.getDataParams=function(r){var n=e.prototype.getDataParams.apply(this,arguments),a=this.getData().tree.getNodeByDataIndex(r);return n.treeAncestors=xA(a,this),n.collapsed=!a.isExpand,n},t.type=\"series.tree\",t.layoutMode=\"box\",t.defaultOption={z:2,coordinateSystem:\"view\",left:\"12%\",top:\"12%\",right:\"12%\",bottom:\"12%\",layout:\"orthogonal\",edgeShape:\"curve\",edgeForkPosition:\"50%\",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:\"LR\",symbol:\"emptyCircle\",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:\"#ccc\",width:1.5,curveness:.5},itemStyle:{color:\"lightsteelblue\",borderWidth:1.5},label:{show:!0},animationEasing:\"linear\",animationDuration:700,animationDurationUpdate:500},t}(_n);function Qwt(e,t,r){for(var n=[e],a=[],i;i=n.pop();)if(a.push(i),i.isExpand){var o=i.children;if(o.length)for(var l=0;l<o.length;l++)n.push(o[l])}for(;i=a.pop();)t(i,r)}function X1(e,t){for(var r=[e],n;n=r.pop();)if(t(n),n.isExpand){var a=n.children;if(a.length)for(var i=a.length-1;i>=0;i--)r.push(a[i])}}function eEt(e,t){e.eachSeriesByType(\"tree\",function(r){tEt(r,t)})}function tEt(e,t){var r=Pwt(e,t);e.layoutInfo=r;var n=e.get(\"layout\"),a=0,i=0,o=null;n===\"radial\"?(a=2*Math.PI,i=Math.min(r.height,r.width)/2,o=mJ(function(x,F){return(x.parentNode===F.parentNode?1:2)/x.depth})):(a=r.width,i=r.height,o=mJ());var l=e.getData().tree.root,s=l.children[0];if(s){kwt(l),Qwt(s,Rwt,o),l.hierNode.modifier=-s.hierNode.prelim,X1(s,Mwt);var u=s,c=s,d=s;X1(s,function(x){var F=x.getLayout().x;F<u.getLayout().x&&(u=x),F>c.getLayout().x&&(c=x),x.depth>d.depth&&(d=x)});var f=u===c?1:o(u,c)/2,h=f-u.getLayout().x,p=0,v=0,g=0,y=0;if(n===\"radial\")p=a/(c.getLayout().x+f+h),v=i/(d.depth-1||1),X1(s,function(x){g=(x.getLayout().x+h)*p,y=(x.depth-1)*v;var F=Dy(g,y);x.setLayout({x:F.x,y:F.y,rawX:g,rawY:y},!0)});else{var b=e.getOrient();b===\"RL\"||b===\"LR\"?(v=i/(c.getLayout().x+f+h),p=a/(d.depth-1||1),X1(s,function(x){y=(x.getLayout().x+h)*v,g=b===\"LR\"?(x.depth-1)*p:a-(x.depth-1)*p,x.setLayout({x:g,y},!0)})):(b===\"TB\"||b===\"BT\")&&(p=a/(c.getLayout().x+f+h),v=i/(d.depth-1||1),X1(s,function(x){g=(x.getLayout().x+h)*p,y=b===\"TB\"?(x.depth-1)*v:i-(x.depth-1)*v,x.setLayout({x:g,y},!0)}))}}}function rEt(e){e.eachSeriesByType(\"tree\",function(t){var r=t.getData(),n=r.tree;n.eachNode(function(a){var i=a.getModel(),o=i.getModel(\"itemStyle\").getItemStyle(),l=r.ensureUniqueItemVisual(a.dataIndex,\"style\");Xe(l,o)})})}function nEt(e){e.registerAction({type:\"treeExpandAndCollapse\",event:\"treeExpandAndCollapse\",update:\"update\"},function(t,r){r.eachComponent({mainType:\"series\",subType:\"tree\",query:t},function(n){var a=t.dataIndex,i=n.getData().tree,o=i.getNodeByDataIndex(a);o.isExpand=!o.isExpand})}),e.registerAction({type:\"treeRoam\",event:\"treeRoam\",update:\"none\"},function(t,r,n){r.eachComponent({mainType:\"series\",subType:\"tree\",query:t},function(a){var i=a.coordinateSystem,o=b$(i,t,void 0,n);a.setCenter&&a.setCenter(o.center),a.setZoom&&a.setZoom(o.zoom)})})}function aEt(e){e.registerChartView(Hwt),e.registerSeriesModel(Zwt),e.registerLayout(eEt),e.registerVisual(rEt),nEt(e)}var xJ=[\"treemapZoomToNode\",\"treemapRender\",\"treemapMove\"];function iEt(e){for(var t=0;t<xJ.length;t++)e.registerAction({type:xJ[t],update:\"updateView\"},ga);e.registerAction({type:\"treemapRootToNode\",update:\"updateView\"},function(r,n){n.eachComponent({mainType:\"series\",subType:\"treemap\",query:r},a);function a(i,o){var l=[\"treemapZoomToNode\",\"treemapRootToNode\"],s=V2(r,l,i);if(s){var u=i.getViewRoot();u&&(r.direction=F$(u,s.node)?\"rollUp\":\"drillDown\"),i.resetViewRoot(s.node)}}})}function J0e(e){var t=e.getData(),r=t.tree,n={};r.eachNode(function(a){for(var i=a;i&&i.depth>1;)i=i.parentNode;var o=mP(e.ecModel,i.name||i.dataIndex+\"\",n);a.setVisual(\"decal\",o)})}var oEt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.preventUsingHoverLayer=!0,r}return t.prototype.getInitialData=function(r,n){var a={name:r.name,children:r.data};Z0e(a);var i=r.levels||[],o=this.designatedVisualItemStyle={},l=new pn({itemStyle:o},this,n);i=r.levels=lEt(i,n);var s=ot(i||[],function(d){return new pn(d,l,n)},this),u=C$.createTree(a,this,c);function c(d){d.wrapMethod(\"getItemModel\",function(f,h){var p=u.getNodeByDataIndex(h),v=p?s[p.depth]:null;return f.parentModel=v||l,f})}return u.data},t.prototype.optionUpdated=function(){this.resetViewRoot()},t.prototype.formatTooltip=function(r,n,a){var i=this.getData(),o=this.getRawValue(r),l=i.getName(r);return gi(\"nameValue\",{name:l,value:o})},t.prototype.getDataParams=function(r){var n=e.prototype.getDataParams.apply(this,arguments),a=this.getData().tree.getNodeByDataIndex(r);return n.treeAncestors=xA(a,this),n.treePathInfo=n.treeAncestors,n},t.prototype.setLayoutInfo=function(r){this.layoutInfo=this.layoutInfo||{},Xe(this.layoutInfo,r)},t.prototype.mapIdToIndex=function(r){var n=this._idIndexMap;n||(n=this._idIndexMap=Gt(),this._idIndexMapCount=0);var a=n.get(r);return a==null&&n.set(r,a=this._idIndexMapCount++),a},t.prototype.getViewRoot=function(){return this._viewRoot},t.prototype.resetViewRoot=function(r){r?this._viewRoot=r:r=this._viewRoot;var n=this.getRawData().tree.root;(!r||r!==n&&!n.contains(r))&&(this._viewRoot=n)},t.prototype.enableAriaDecal=function(){J0e(this)},t.type=\"series.treemap\",t.layoutMode=\"box\",t.defaultOption={progressive:0,left:\"center\",top:\"middle\",width:\"80%\",height:\"80%\",sort:!0,clipWindow:\"origin\",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:\"▶\",zoomToNodeRatio:.32*.32,scaleLimit:null,roam:!0,nodeClick:\"zoomToNode\",animation:!0,animationDurationUpdate:900,animationEasing:\"quinticInOut\",breadcrumb:{show:!0,height:22,left:\"center\",top:\"bottom\",emptyItemWidth:25,itemStyle:{color:\"rgba(0,0,0,0.7)\",textStyle:{color:\"#fff\"}},emphasis:{itemStyle:{color:\"rgba(0,0,0,0.9)\"}}},label:{show:!0,distance:0,padding:5,position:\"inside\",color:\"#fff\",overflow:\"truncate\"},upperLabel:{show:!1,position:[0,\"50%\"],height:20,overflow:\"truncate\",verticalAlign:\"middle\"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:\"#fff\",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,\"50%\"],overflow:\"truncate\",verticalAlign:\"middle\"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:\"index\",visibleMin:10,childrenVisibleMin:null,levels:[]},t}(_n);function Z0e(e){var t=0;q(e.children,function(n){Z0e(n);var a=n.value;nt(a)&&(a=a[0]),t+=a});var r=e.value;nt(r)&&(r=r[0]),(r==null||isNaN(r))&&(r=t),r<0&&(r=0),nt(e.value)?e.value[0]=r:e.value=r}function lEt(e,t){var r=An(t.get(\"color\")),n=An(t.get([\"aria\",\"decal\",\"decals\"]));if(r){e=e||[];var a,i;q(e,function(l){var s=new pn(l),u=s.get(\"color\"),c=s.get(\"decal\");(s.get([\"itemStyle\",\"color\"])||u&&u!==\"none\")&&(a=!0),(s.get([\"itemStyle\",\"decal\"])||c&&c!==\"none\")&&(i=!0)});var o=e[0]||(e[0]={});return a||(o.color=r.slice()),!i&&n&&(o.decal=n.slice()),e}}var sEt=8,CJ=8,MI=5,uEt=function(){function e(t){this.group=new pr,t.add(this.group)}return e.prototype.render=function(t,r,n,a){var i=t.getModel(\"breadcrumb\"),o=this.group;if(o.removeAll(),!(!i.get(\"show\")||!n)){var l=i.getModel(\"itemStyle\"),s=i.getModel(\"emphasis\"),u=l.getModel(\"textStyle\"),c=s.getModel([\"itemStyle\",\"textStyle\"]),d={pos:{left:i.get(\"left\"),right:i.get(\"right\"),top:i.get(\"top\"),bottom:i.get(\"bottom\")},box:{width:r.getWidth(),height:r.getHeight()},emptyItemWidth:i.get(\"emptyItemWidth\"),totalWidth:0,renderList:[]};this._prepare(n,d,u),this._renderContent(t,d,l,s,u,c,a),oA(o,d.pos,d.box)}},e.prototype._prepare=function(t,r,n){for(var a=t;a;a=a.parentNode){var i=qa(a.getModel().get(\"name\"),\"\"),o=n.getTextRect(i),l=Math.max(o.width+sEt*2,r.emptyItemWidth);r.totalWidth+=l+CJ,r.renderList.push({node:a,text:i,width:l})}},e.prototype._renderContent=function(t,r,n,a,i,o,l){for(var s=0,u=r.emptyItemWidth,c=t.get([\"breadcrumb\",\"height\"]),d=tyt(r.pos,r.box),f=r.totalWidth,h=r.renderList,p=a.getModel(\"itemStyle\").getItemStyle(),v=h.length-1;v>=0;v--){var g=h[v],y=g.node,b=g.width,x=g.text;f>d.width&&(f-=b-u,b=u,x=null);var F=new wo({shape:{points:cEt(s,0,b,c,v===h.length-1,v===0)},style:rr(n.getItemStyle(),{lineJoin:\"bevel\"}),textContent:new Jr({style:Mn(i,{text:x})}),textConfig:{position:\"inside\"},z2:Gg*1e4,onclick:wr(l,y)});F.disableLabelAnimation=!0,F.getTextContent().ensureState(\"emphasis\").style=Mn(o,{text:x}),F.ensureState(\"emphasis\").style=p,sa(F,a.get(\"focus\"),a.get(\"blurScope\"),a.get(\"disabled\")),this.group.add(F),dEt(F,t,y),s+=b+CJ}},e.prototype.remove=function(){this.group.removeAll()},e}();function cEt(e,t,r,n,a,i){var o=[[a?e:e-MI,t],[e+r,t],[e+r,t+n],[a?e:e-MI,t+n]];return!i&&o.splice(2,0,[e+r+MI,t+n/2]),!a&&o.push([e,t+n/2]),o}function dEt(e,t,r){br(e).eventData={componentType:\"series\",componentSubType:\"treemap\",componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:\"treemap\",selfType:\"breadcrumb\",nodeData:{dataIndex:r&&r.dataIndex,name:r&&r.name},treePathInfo:r&&xA(r,t)}}var fEt=function(){function e(){this._storage=[],this._elExistsMap={}}return e.prototype.add=function(t,r,n,a,i){return this._elExistsMap[t.id]?!1:(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:r,duration:n,delay:a,easing:i}),!0)},e.prototype.finished=function(t){return this._finishedCallback=t,this},e.prototype.start=function(){for(var t=this,r=this._storage.length,n=function(){r--,r<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},a=0,i=this._storage.length;a<i;a++){var o=this._storage[a];o.el.animateTo(o.target,{duration:o.duration,delay:o.delay,easing:o.easing,setToFinal:!0,done:n,aborted:n})}return this},e}();function hEt(){return new fEt}var VP=pr,FJ=Zr,SJ=3,wJ=\"label\",EJ=\"upperLabel\",pEt=Gg*10,mEt=Gg*2,vEt=Gg*3,Uh=im([[\"fill\",\"color\"],[\"stroke\",\"strokeColor\"],[\"lineWidth\",\"strokeWidth\"],[\"shadowBlur\"],[\"shadowOffsetX\"],[\"shadowOffsetY\"],[\"shadowColor\"]]),DJ=function(e){var t=Uh(e);return t.stroke=t.fill=t.lineWidth=null,t},o4=rn(),gEt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._state=\"ready\",r._storage=J1(),r}return t.prototype.render=function(r,n,a,i){var o=n.findComponents({mainType:\"series\",subType:\"treemap\",query:i});if(!(Mr(o,r)<0)){this.seriesModel=r,this.api=a,this.ecModel=n;var l=[\"treemapZoomToNode\",\"treemapRootToNode\"],s=V2(i,l,r),u=i&&i.type,c=r.layoutInfo,d=!this._oldTree,f=this._storage,h=u===\"treemapRootToNode\"&&s&&f?{rootNodeGroup:f.nodeGroup[s.node.getRawIndex()],direction:i.direction}:null,p=this._giveContainerGroup(c),v=r.get(\"animation\"),g=this._doRender(p,r,h);v&&!d&&(!u||u===\"treemapZoomToNode\"||u===\"treemapRootToNode\")?this._doAnimation(p,g,r,h):g.renderFinally(),this._resetController(a),this._renderBreadcrumb(r,a,s)}},t.prototype._giveContainerGroup=function(r){var n=this._containerGroup;return n||(n=this._containerGroup=new VP,this._initEvents(n),this.group.add(n)),n.x=r.x,n.y=r.y,n},t.prototype._doRender=function(r,n,a){var i=n.getData().tree,o=this._oldTree,l=J1(),s=J1(),u=this._storage,c=[];function d(b,x,F,S){return yEt(n,s,u,a,l,c,b,x,F,S)}v(i.root?[i.root]:[],o&&o.root?[o.root]:[],r,i===o||!o,0);var f=g(u);if(this._oldTree=i,this._storage=s,this._controllerHost){var h=this.seriesModel.layoutInfo,p=i.root.getLayout();p.width===h.width&&p.height===h.height&&(this._controllerHost.zoom=1)}return{lastsForAnimation:l,willDeleteEls:f,renderFinally:y};function v(b,x,F,S,E){S?(x=b,q(b,function(A,_){!A.isRemoved()&&D(_,_)})):new pd(x,b,w,w).add(D).update(D).remove(wr(D,null)).execute();function w(A){return A.getId()}function D(A,_){var I=A!=null?b[A]:null,M=_!=null?x[_]:null,T=d(I,M,F,E);T&&v(I&&I.viewChildren||[],M&&M.viewChildren||[],T,S,E+1)}}function g(b){var x=J1();return b&&q(b,function(F,S){var E=x[S];q(F,function(w){w&&(E.push(w),o4(w).willDelete=!0)})}),x}function y(){q(f,function(b){q(b,function(x){x.parent&&x.parent.remove(x)})}),q(c,function(b){b.invisible=!0,b.dirty()})}},t.prototype._doAnimation=function(r,n,a,i){var o=a.get(\"animationDurationUpdate\"),l=a.get(\"animationEasing\"),s=(er(o)?0:o)||0,u=(er(l)?null:l)||\"cubicOut\",c=hEt();q(n.willDeleteEls,function(d,f){q(d,function(h,p){if(!h.invisible){var v=h.parent,g,y=o4(v);if(i&&i.direction===\"drillDown\")g=v===i.rootNodeGroup?{shape:{x:0,y:0,width:y.nodeWidth,height:y.nodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var b=0,x=0;y.willDelete||(b=y.nodeWidth/2,x=y.nodeHeight/2),g=f===\"nodeGroup\"?{x:b,y:x,style:{opacity:0}}:{shape:{x:b,y:x,width:0,height:0},style:{opacity:0}}}g&&c.add(h,g,s,0,u)}})}),q(this._storage,function(d,f){q(d,function(h,p){var v=n.lastsForAnimation[f][p],g={};v&&(h instanceof pr?v.oldX!=null&&(g.x=h.x,g.y=h.y,h.x=v.oldX,h.y=v.oldY):(v.oldShape&&(g.shape=Xe({},h.shape),h.setShape(v.oldShape)),v.fadein?(h.setStyle(\"opacity\",0),g.style={opacity:1}):h.style.opacity!==1&&(g.style={opacity:1})),c.add(h,g,s,0,u))})},this),this._state=\"animating\",c.finished(Pt(function(){this._state=\"ready\",n.renderFinally()},this)).start()},t.prototype._resetController=function(r){var n=this._controller,a=this._controllerHost;a||(this._controllerHost={target:this.group},a=this._controllerHost),n||(n=this._controller=new mC(r.getZr()),n.enable(this.seriesModel.get(\"roam\")),a.zoomLimit=this.seriesModel.get(\"scaleLimit\"),a.zoom=this.seriesModel.get(\"zoom\"),n.on(\"pan\",Pt(this._onPan,this)),n.on(\"zoom\",Pt(this._onZoom,this)));var i=new Ir(0,0,r.getWidth(),r.getHeight());n.setPointerChecker(function(o,l,s){return i.contain(l,s)})},t.prototype._clearController=function(){var r=this._controller;this._controllerHost=null,r&&(r.dispose(),r=null)},t.prototype._onPan=function(r){if(this._state!==\"animating\"&&(Math.abs(r.dx)>SJ||Math.abs(r.dy)>SJ)){var n=this.seriesModel.getData().tree.root;if(!n)return;var a=n.getLayout();if(!a)return;this.api.dispatchAction({type:\"treemapMove\",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:a.x+r.dx,y:a.y+r.dy,width:a.width,height:a.height}})}},t.prototype._onZoom=function(r){var n=r.originX,a=r.originY,i=r.scale;if(this._state!==\"animating\"){var o=this.seriesModel.getData().tree.root;if(!o)return;var l=o.getLayout();if(!l)return;var s=new Ir(l.x,l.y,l.width,l.height),u=null,c=this._controllerHost;u=c.zoomLimit;var d=c.zoom=c.zoom||1;if(d*=i,u){var f=u.min||0,h=u.max||1/0;d=Math.max(Math.min(h,d),f)}var p=d/c.zoom;c.zoom=d;var v=this.seriesModel.layoutInfo;n-=v.x,a-=v.y;var g=hl();Cu(g,g,[-n,-a]),zD(g,g,[p,p]),Cu(g,g,[n,a]),s.applyTransform(g),this.api.dispatchAction({type:\"treemapRender\",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:s.x,y:s.y,width:s.width,height:s.height}})}},t.prototype._initEvents=function(r){var n=this;r.on(\"click\",function(a){if(n._state===\"ready\"){var i=n.seriesModel.get(\"nodeClick\",!0);if(i){var o=n.findTarget(a.offsetX,a.offsetY);if(o){var l=o.node;if(l.getLayout().isLeafRoot)n._rootToNode(o);else if(i===\"zoomToNode\")n._zoomToNode(o);else if(i===\"link\"){var s=l.hostTree.data.getItemModel(l.dataIndex),u=s.get(\"link\",!0),c=s.get(\"target\",!0)||\"blank\";u&&H3(u,c)}}}}},this)},t.prototype._renderBreadcrumb=function(r,n,a){var i=this;a||(a=r.get(\"leafDepth\",!0)!=null?{node:r.getViewRoot()}:this.findTarget(n.getWidth()/2,n.getHeight()/2),a||(a={node:r.getData().tree.root})),(this._breadcrumb||(this._breadcrumb=new uEt(this.group))).render(r,n,a.node,function(o){i._state!==\"animating\"&&(F$(r.getViewRoot(),o)?i._rootToNode({node:o}):i._zoomToNode({node:o}))})},t.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=J1(),this._state=\"ready\",this._breadcrumb&&this._breadcrumb.remove()},t.prototype.dispose=function(){this._clearController()},t.prototype._zoomToNode=function(r){this.api.dispatchAction({type:\"treemapZoomToNode\",from:this.uid,seriesId:this.seriesModel.id,targetNode:r.node})},t.prototype._rootToNode=function(r){this.api.dispatchAction({type:\"treemapRootToNode\",from:this.uid,seriesId:this.seriesModel.id,targetNode:r.node})},t.prototype.findTarget=function(r,n){var a,i=this.seriesModel.getViewRoot();return i.eachNode({attr:\"viewChildren\",order:\"preorder\"},function(o){var l=this._storage.background[o.getRawIndex()];if(l){var s=l.transformCoordToLocal(r,n),u=l.shape;if(u.x<=s[0]&&s[0]<=u.x+u.width&&u.y<=s[1]&&s[1]<=u.y+u.height)a={node:o,offsetX:s[0],offsetY:s[1]};else return!1}},this),a},t.type=\"treemap\",t}(Cn);function J1(){return{nodeGroup:[],background:[],content:[]}}function yEt(e,t,r,n,a,i,o,l,s,u){if(!o)return;var c=o.getLayout(),d=e.getData(),f=o.getModel();if(d.setItemGraphicEl(o.dataIndex,null),!c||!c.isInView)return;var h=c.width,p=c.height,v=c.borderWidth,g=c.invisible,y=o.getRawIndex(),b=l&&l.getRawIndex(),x=o.viewChildren,F=c.upperHeight,S=x&&x.length,E=f.getModel(\"itemStyle\"),w=f.getModel([\"emphasis\",\"itemStyle\"]),D=f.getModel([\"blur\",\"itemStyle\"]),A=f.getModel([\"select\",\"itemStyle\"]),_=E.get(\"borderRadius\")||0,I=V(\"nodeGroup\",VP);if(!I)return;if(s.add(I),I.x=c.x||0,I.y=c.y||0,I.markRedraw(),o4(I).nodeWidth=h,o4(I).nodeHeight=p,c.isAboveViewRoot)return I;var M=V(\"background\",FJ,u,mEt);M&&z(I,M,S&&c.upperLabelHeight);var T=f.getModel(\"emphasis\"),k=T.get(\"focus\"),R=T.get(\"blurScope\"),P=T.get(\"disabled\"),B=k===\"ancestor\"?o.getAncestorsIndices():k===\"descendant\"?o.getDescendantIndices():k;if(S)I2(I)&&pp(I,!1),M&&(pp(M,!P),d.setItemGraphicEl(o.dataIndex,M),lP(M,B,R));else{var N=V(\"content\",FJ,u,vEt);N&&W(I,N),M.disableMorphing=!0,M&&I2(M)&&pp(M,!1),pp(I,!P),d.setItemGraphicEl(o.dataIndex,I);var O=f.getShallow(\"cursor\");O&&N.attr(\"cursor\",O),lP(I,B,R)}return I;function z(K,Y,ee){var J=br(Y);if(J.dataIndex=o.dataIndex,J.seriesIndex=e.seriesIndex,Y.setShape({x:0,y:0,width:h,height:p,r:_}),g)L(Y);else{Y.invisible=!1;var X=o.getVisual(\"style\"),ce=X.stroke,oe=DJ(E);oe.fill=ce;var ue=Uh(w);ue.fill=w.get(\"borderColor\");var ie=Uh(D);ie.fill=D.get(\"borderColor\");var fe=Uh(A);if(fe.fill=A.get(\"borderColor\"),ee){var xe=h-2*v;j(Y,ce,X.opacity,{x:v,y:0,width:xe,height:F})}else Y.removeTextContent();Y.setStyle(oe),Y.ensureState(\"emphasis\").style=ue,Y.ensureState(\"blur\").style=ie,Y.ensureState(\"select\").style=fe,om(Y)}K.add(Y)}function W(K,Y){var ee=br(Y);ee.dataIndex=o.dataIndex,ee.seriesIndex=e.seriesIndex;var J=Math.max(h-2*v,0),X=Math.max(p-2*v,0);if(Y.culling=!0,Y.setShape({x:v,y:v,width:J,height:X,r:_}),g)L(Y);else{Y.invisible=!1;var ce=o.getVisual(\"style\"),oe=ce.fill,ue=DJ(E);ue.fill=oe,ue.decal=ce.decal;var ie=Uh(w),fe=Uh(D),xe=Uh(A);j(Y,oe,ce.opacity,null),Y.setStyle(ue),Y.ensureState(\"emphasis\").style=ie,Y.ensureState(\"blur\").style=fe,Y.ensureState(\"select\").style=xe,om(Y)}K.add(Y)}function L(K){!K.invisible&&i.push(K)}function j(K,Y,ee,J){var X=f.getModel(J?EJ:wJ),ce=qa(f.get(\"name\"),null),oe=X.getShallow(\"show\");Xi(K,vi(f,J?EJ:wJ),{defaultText:oe?ce:null,inheritColor:Y,defaultOpacity:ee,labelFetcher:e,labelDataIndex:o.dataIndex});var ue=K.getTextContent();if(ue){var ie=ue.style,fe=LD(ie.padding||0);J&&(K.setTextConfig({layoutRect:J}),ue.disableLabelLayout=!0),ue.beforeUpdate=function(){var Ee=Math.max((J?J.width:K.shape.width)-fe[1]-fe[3],0),De=Math.max((J?J.height:K.shape.height)-fe[0]-fe[2],0);(ie.width!==Ee||ie.height!==De)&&ue.setStyle({width:Ee,height:De})},ie.truncateMinChar=2,ie.lineOverflow=\"truncate\",H(ie,J,c);var xe=ue.getState(\"emphasis\");H(xe?xe.style:null,J,c)}}function H(K,Y,ee){var J=K?K.text:null;if(!Y&&ee.isLeafRoot&&J!=null){var X=e.get(\"drillDownIcon\",!0);K.text=X?X+\" \"+J:J}}function V(K,Y,ee,J){var X=b!=null&&r[K][b],ce=a[K];return X?(r[K][b]=null,U(ce,X)):g||(X=new Y,X instanceof As&&(X.z2=bEt(ee,J)),Q(ce,X)),t[K][y]=X}function U(K,Y){var ee=K[y]={};Y instanceof VP?(ee.oldX=Y.x,ee.oldY=Y.y):ee.oldShape=Xe({},Y.shape)}function Q(K,Y){var ee=K[y]={},J=o.parentNode,X=Y instanceof pr;if(J&&(!n||n.direction===\"drillDown\")){var ce=0,oe=0,ue=a.background[J.getRawIndex()];!n&&ue&&ue.oldShape&&(ce=ue.oldShape.width,oe=ue.oldShape.height),X?(ee.oldX=0,ee.oldY=oe):ee.oldShape={x:ce,y:oe,width:0,height:0}}ee.fadein=!X}}function bEt(e,t){return e*pEt+t}var W2=q,xEt=ir,l4=-1,di=function(){function e(t){var r=t.mappingMethod,n=t.type,a=this.option=lr(t);this.type=n,this.mappingMethod=r,this._normalizeData=SEt[r];var i=e.visualHandlers[n];this.applyVisual=i.applyVisual,this.getColorMapper=i.getColorMapper,this._normalizedToVisual=i._normalizedToVisual[r],r===\"piecewise\"?(PI(a),CEt(a)):r===\"category\"?a.categories?FEt(a):PI(a,!0):(Fo(r!==\"linear\"||a.dataExtent),PI(a))}return e.prototype.mapValueToVisual=function(t){var r=this._normalizeData(t);return this._normalizedToVisual(r,t)},e.prototype.getNormalizer=function(){return Pt(this._normalizeData,this)},e.listVisualTypes=function(){return Ur(e.visualHandlers)},e.isValidType=function(t){return e.visualHandlers.hasOwnProperty(t)},e.eachVisual=function(t,r,n){ir(t)?q(t,r,n):r.call(n,t)},e.mapVisual=function(t,r,n){var a,i=nt(t)?[]:ir(t)?{}:(a=!0,null);return e.eachVisual(t,function(o,l){var s=r.call(n,o,l);a?i=s:i[l]=s}),i},e.retrieveVisuals=function(t){var r={},n;return t&&W2(e.visualHandlers,function(a,i){t.hasOwnProperty(i)&&(r[i]=t[i],n=!0)}),n?r:null},e.prepareVisualTypes=function(t){if(nt(t))t=t.slice();else if(xEt(t)){var r=[];W2(t,function(n,a){r.push(a)}),t=r}else return[];return t.sort(function(n,a){return a===\"color\"&&n!==\"color\"&&n.indexOf(\"color\")===0?1:-1}),t},e.dependsOn=function(t,r){return r===\"color\"?!!(t&&t.indexOf(r)===0):t===r},e.findPieceIndex=function(t,r,n){for(var a,i=1/0,o=0,l=r.length;o<l;o++){var s=r[o].value;if(s!=null){if(s===t||At(s)&&s===t+\"\")return o;n&&f(s,o)}}for(var o=0,l=r.length;o<l;o++){var u=r[o],c=u.interval,d=u.close;if(c){if(c[0]===-1/0){if(ES(d[1],t,c[1]))return o}else if(c[1]===1/0){if(ES(d[0],c[0],t))return o}else if(ES(d[0],c[0],t)&&ES(d[1],t,c[1]))return o;n&&f(c[0],o),n&&f(c[1],o)}}if(n)return t===1/0?r.length-1:t===-1/0?0:a;function f(h,p){var v=Math.abs(h-t);v<i&&(i=v,a=p)}},e.visualHandlers={color:{applyVisual:Z1(\"color\"),getColorMapper:function(){var t=this.option;return Pt(t.mappingMethod===\"category\"?function(r,n){return!n&&(r=this._normalizeData(r)),Ay.call(this,r)}:function(r,n,a){var i=!!a;return!n&&(r=this._normalizeData(r)),a=cb(r,t.parsedVisual,a),i?a:fu(a,\"rgba\")},this)},_normalizedToVisual:{linear:function(t){return fu(cb(t,this.option.parsedVisual),\"rgba\")},category:Ay,piecewise:function(t,r){var n=GP.call(this,r);return n==null&&(n=fu(cb(t,this.option.parsedVisual),\"rgba\")),n},fixed:Kh}},colorHue:wS(function(t,r){return A0(t,r)}),colorSaturation:wS(function(t,r){return A0(t,null,r)}),colorLightness:wS(function(t,r){return A0(t,null,null,r)}),colorAlpha:wS(function(t,r){return E2(t,r)}),decal:{applyVisual:Z1(\"decal\"),_normalizedToVisual:{linear:null,category:Ay,piecewise:null,fixed:null}},opacity:{applyVisual:Z1(\"opacity\"),_normalizedToVisual:WP([0,1])},liftZ:{applyVisual:Z1(\"liftZ\"),_normalizedToVisual:{linear:Kh,category:Kh,piecewise:Kh,fixed:Kh}},symbol:{applyVisual:function(t,r,n){var a=this.mapValueToVisual(t);n(\"symbol\",a)},_normalizedToVisual:{linear:AJ,category:Ay,piecewise:function(t,r){var n=GP.call(this,r);return n==null&&(n=AJ.call(this,t)),n},fixed:Kh}},symbolSize:{applyVisual:Z1(\"symbolSize\"),_normalizedToVisual:WP([0,1])}},e}();function CEt(e){var t=e.pieceList;e.hasSpecialVisual=!1,q(t,function(r,n){r.originIndex=n,r.visual!=null&&(e.hasSpecialVisual=!0)})}function FEt(e){var t=e.categories,r=e.categoryMap={},n=e.visual;if(W2(t,function(o,l){r[o]=l}),!nt(n)){var a=[];ir(n)?W2(n,function(o,l){var s=r[l];a[s??l4]=o}):a[l4]=n,n=Q0e(e,a)}for(var i=t.length-1;i>=0;i--)n[i]==null&&(delete r[t[i]],t.pop())}function PI(e,t){var r=e.visual,n=[];ir(r)?W2(r,function(i){n.push(i)}):r!=null&&n.push(r);var a={color:1,symbol:1};!t&&n.length===1&&!a.hasOwnProperty(e.type)&&(n[1]=n[0]),Q0e(e,n)}function wS(e){return{applyVisual:function(t,r,n){var a=this.mapValueToVisual(t);n(\"color\",e(r(\"color\"),a))},_normalizedToVisual:WP([0,1])}}function AJ(e){var t=this.option.visual;return t[Math.round(yn(e,[0,1],[0,t.length-1],!0))]||{}}function Z1(e){return function(t,r,n){n(e,this.mapValueToVisual(t))}}function Ay(e){var t=this.option.visual;return t[this.option.loop&&e!==l4?e%t.length:e]}function Kh(){return this.option.visual[0]}function WP(e){return{linear:function(t){return yn(t,e,this.option.visual,!0)},category:Ay,piecewise:function(t,r){var n=GP.call(this,r);return n==null&&(n=yn(t,e,this.option.visual,!0)),n},fixed:Kh}}function GP(e){var t=this.option,r=t.pieceList;if(t.hasSpecialVisual){var n=di.findPieceIndex(e,r),a=r[n];if(a&&a.visual)return a.visual[this.type]}}function Q0e(e,t){return e.visual=t,e.type===\"color\"&&(e.parsedVisual=ot(t,function(r){var n=Ho(r);return n||[0,0,0,1]})),t}var SEt={linear:function(e){return yn(e,this.option.dataExtent,[0,1],!0)},piecewise:function(e){var t=this.option.pieceList,r=di.findPieceIndex(e,t,!0);if(r!=null)return yn(r,[0,t.length-1],[0,1],!0)},category:function(e){var t=this.option.categories?this.option.categoryMap[e]:e;return t??l4},fixed:ga};function ES(e,t,r){return e?t<=r:t<r}var wEt=\"itemStyle\",ege=rn();const EEt={seriesType:\"treemap\",reset:function(e){var t=e.getData().tree,r=t.root;r.isRemoved()||tge(r,{},e.getViewRoot().getAncestors(),e)}};function tge(e,t,r,n){var a=e.getModel(),i=e.getLayout(),o=e.hostTree.data;if(!(!i||i.invisible||!i.isInView)){var l=a.getModel(wEt),s=DEt(l,t,n),u=o.ensureUniqueItemVisual(e.dataIndex,\"style\"),c=l.get(\"borderColor\"),d=l.get(\"borderColorSaturation\"),f;d!=null&&(f=_J(s),c=AEt(d,f)),u.stroke=c;var h=e.viewChildren;if(!h||!h.length)f=_J(s),u.fill=f;else{var p=_Et(e,a,i,l,s,h);q(h,function(v,g){if(v.depth>=r.length||v===r[v.depth]){var y=TEt(a,s,v,g,p,n);tge(v,y,r,n)}})}}}function DEt(e,t,r){var n=Xe({},t),a=r.designatedVisualItemStyle;return q([\"color\",\"colorAlpha\",\"colorSaturation\"],function(i){a[i]=t[i];var o=e.get(i);a[i]=null,o!=null&&(n[i]=o)}),n}function _J(e){var t=OI(e,\"color\");if(t){var r=OI(e,\"colorAlpha\"),n=OI(e,\"colorSaturation\");return n&&(t=A0(t,null,null,n)),r&&(t=E2(t,r)),t}}function AEt(e,t){return t!=null?A0(t,null,null,e):null}function OI(e,t){var r=e[t];if(r!=null&&r!==\"none\")return r}function _Et(e,t,r,n,a,i){if(!(!i||!i.length)){var o=BI(t,\"color\")||a.color!=null&&a.color!==\"none\"&&(BI(t,\"colorAlpha\")||BI(t,\"colorSaturation\"));if(o){var l=t.get(\"visualMin\"),s=t.get(\"visualMax\"),u=r.dataExtent.slice();l!=null&&l<u[0]&&(u[0]=l),s!=null&&s>u[1]&&(u[1]=s);var c=t.get(\"colorMappingBy\"),d={type:o.name,dataExtent:u,visual:o.range};d.type===\"color\"&&(c===\"index\"||c===\"id\")?(d.mappingMethod=\"category\",d.loop=!0):d.mappingMethod=\"linear\";var f=new di(d);return ege(f).drColorMappingBy=c,f}}}function BI(e,t){var r=e.get(t);return nt(r)&&r.length?{name:t,range:r}:null}function TEt(e,t,r,n,a,i){var o=Xe({},t);if(a){var l=a.type,s=l===\"color\"&&ege(a).drColorMappingBy,u=s===\"index\"?n:s===\"id\"?i.mapIdToIndex(r.getId()):r.getValue(e.get(\"visualDimension\"));o[l]=a.mapValueToVisual(u)}return o}var G2=Math.max,s4=Math.min,TJ=ui,S$=q,rge=[\"itemStyle\",\"borderWidth\"],IEt=[\"itemStyle\",\"gapWidth\"],kEt=[\"upperLabel\",\"show\"],REt=[\"upperLabel\",\"height\"];const MEt={seriesType:\"treemap\",reset:function(e,t,r,n){var a=r.getWidth(),i=r.getHeight(),o=e.option,l=Na(e.getBoxLayoutParams(),{width:r.getWidth(),height:r.getHeight()}),s=o.size||[],u=Ft(TJ(l.width,s[0]),a),c=Ft(TJ(l.height,s[1]),i),d=n&&n.type,f=[\"treemapZoomToNode\",\"treemapRootToNode\"],h=V2(n,f,e),p=d===\"treemapRender\"||d===\"treemapMove\"?n.rootRect:null,v=e.getViewRoot(),g=X0e(v);if(d!==\"treemapMove\"){var y=d===\"treemapZoomToNode\"?LEt(e,h,v,u,c):p?[p.width,p.height]:[u,c],b=o.sort;b&&b!==\"asc\"&&b!==\"desc\"&&(b=\"desc\");var x={squareRatio:o.squareRatio,sort:b,leafDepth:o.leafDepth};v.hostTree.clearLayouts();var F={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};v.setLayout(F),nge(v,x,!1,0),F=v.getLayout(),S$(g,function(E,w){var D=(g[w+1]||v).getValue();E.setLayout(Xe({dataExtent:[D,D],borderWidth:0,upperHeight:0},F))})}var S=e.getData().tree.root;S.setLayout(jEt(l,p,h),!0),e.setLayoutInfo(l),age(S,new Ir(-l.x,-l.y,a,i),g,v,0)}};function nge(e,t,r,n){var a,i;if(!e.isRemoved()){var o=e.getLayout();a=o.width,i=o.height;var l=e.getModel(),s=l.get(rge),u=l.get(IEt)/2,c=ige(l),d=Math.max(s,c),f=s-u,h=d-u;e.setLayout({borderWidth:s,upperHeight:d,upperLabelHeight:c},!0),a=G2(a-2*f,0),i=G2(i-f-h,0);var p=a*i,v=PEt(e,l,p,t,r,n);if(v.length){var g={x:f,y:h,width:a,height:i},y=s4(a,i),b=1/0,x=[];x.area=0;for(var F=0,S=v.length;F<S;){var E=v[F];x.push(E),x.area+=E.getLayout().area;var w=$Et(x,y,t.squareRatio);w<=b?(F++,b=w):(x.area-=x.pop().getLayout().area,IJ(x,y,g,u,!1),y=s4(g.width,g.height),x.length=x.area=0,b=1/0)}if(x.length&&IJ(x,y,g,u,!0),!r){var D=l.get(\"childrenVisibleMin\");D!=null&&p<D&&(r=!0)}for(var F=0,S=v.length;F<S;F++)nge(v[F],t,r,n+1)}}}function PEt(e,t,r,n,a,i){var o=e.children||[],l=n.sort;l!==\"asc\"&&l!==\"desc\"&&(l=null);var s=n.leafDepth!=null&&n.leafDepth<=i;if(a&&!s)return e.viewChildren=[];o=hn(o,function(h){return!h.isRemoved()}),BEt(o,l);var u=NEt(t,o,l);if(u.sum===0)return e.viewChildren=[];if(u.sum=OEt(t,r,u.sum,l,o),u.sum===0)return e.viewChildren=[];for(var c=0,d=o.length;c<d;c++){var f=o[c].getValue()/u.sum*r;o[c].setLayout({area:f})}return s&&(o.length&&e.setLayout({isLeafRoot:!0},!0),o.length=0),e.viewChildren=o,e.setLayout({dataExtent:u.dataExtent},!0),o}function OEt(e,t,r,n,a){if(!n)return r;for(var i=e.get(\"visibleMin\"),o=a.length,l=o,s=o-1;s>=0;s--){var u=a[n===\"asc\"?o-s-1:s].getValue();u/r*t<i&&(l=s,r-=u)}return n===\"asc\"?a.splice(0,o-l):a.splice(l,o-l),r}function BEt(e,t){return t&&e.sort(function(r,n){var a=t===\"asc\"?r.getValue()-n.getValue():n.getValue()-r.getValue();return a===0?t===\"asc\"?r.dataIndex-n.dataIndex:n.dataIndex-r.dataIndex:a}),e}function NEt(e,t,r){for(var n=0,a=0,i=t.length;a<i;a++)n+=t[a].getValue();var o=e.get(\"visualDimension\"),l;return!t||!t.length?l=[NaN,NaN]:o===\"value\"&&r?(l=[t[t.length-1].getValue(),t[0].getValue()],r===\"asc\"&&l.reverse()):(l=[1/0,-1/0],S$(t,function(s){var u=s.getValue(o);u<l[0]&&(l[0]=u),u>l[1]&&(l[1]=u)})),{sum:n,dataExtent:l}}function $Et(e,t,r){for(var n=0,a=1/0,i=0,o=void 0,l=e.length;i<l;i++)o=e[i].getLayout().area,o&&(o<a&&(a=o),o>n&&(n=o));var s=e.area*e.area,u=t*t*r;return s?G2(u*n/s,s/(u*a)):1/0}function IJ(e,t,r,n,a){var i=t===r.width?0:1,o=1-i,l=[\"x\",\"y\"],s=[\"width\",\"height\"],u=r[l[i]],c=t?e.area/t:0;(a||c>r[s[o]])&&(c=r[s[o]]);for(var d=0,f=e.length;d<f;d++){var h=e[d],p={},v=c?h.getLayout().area/c:0,g=p[s[o]]=G2(c-2*n,0),y=r[l[i]]+r[s[i]]-u,b=d===f-1||y<v?y:v,x=p[s[i]]=G2(b-2*n,0);p[l[o]]=r[l[o]]+s4(n,g/2),p[l[i]]=u+s4(n,x/2),u+=b,h.setLayout(p,!0)}r[l[o]]+=c,r[s[o]]-=c}function LEt(e,t,r,n,a){var i=(t||{}).node,o=[n,a];if(!i||i===r)return o;for(var l,s=n*a,u=s*e.option.zoomToNodeRatio;l=i.parentNode;){for(var c=0,d=l.children,f=0,h=d.length;f<h;f++)c+=d[f].getValue();var p=i.getValue();if(p===0)return o;u*=c/p;var v=l.getModel(),g=v.get(rge),y=Math.max(g,ige(v));u+=4*g*g+(3*g+y)*Math.pow(u,.5),u>ZM&&(u=ZM),i=l}u<s&&(u=s);var b=Math.pow(u/s,.5);return[n*b,a*b]}function jEt(e,t,r){if(t)return{x:t.x,y:t.y};var n={x:0,y:0};if(!r)return n;var a=r.node,i=a.getLayout();if(!i)return n;for(var o=[i.width/2,i.height/2],l=a;l;){var s=l.getLayout();o[0]+=s.x,o[1]+=s.y,l=l.parentNode}return{x:e.width/2-o[0],y:e.height/2-o[1]}}function age(e,t,r,n,a){var i=e.getLayout(),o=r[a],l=o&&o===e;if(!(o&&!l||a===r.length&&e!==n)){e.setLayout({isInView:!0,invisible:!l&&!t.intersect(i),isAboveViewRoot:l},!0);var s=new Ir(t.x-i.x,t.y-i.y,t.width,t.height);S$(e.viewChildren||[],function(u){age(u,s,r,n,a+1)})}}function ige(e){return e.get(kEt)?e.get(REt):0}function zEt(e){e.registerSeriesModel(oEt),e.registerChartView(gEt),e.registerVisual(EEt),e.registerLayout(MEt),iEt(e)}function HEt(e){var t=e.findComponents({mainType:\"legend\"});!t||!t.length||e.eachSeriesByType(\"graph\",function(r){var n=r.getCategoriesData(),a=r.getGraph(),i=a.data,o=n.mapArray(n.getName);i.filterSelf(function(l){var s=i.getItemModel(l),u=s.getShallow(\"category\");if(u!=null){nn(u)&&(u=o[u]);for(var c=0;c<t.length;c++)if(!t[c].isSelected(u))return!1}return!0})})}function VEt(e){var t={};e.eachSeriesByType(\"graph\",function(r){var n=r.getCategoriesData(),a=r.getData(),i={};n.each(function(o){var l=n.getName(o);i[\"ec-\"+l]=o;var s=n.getItemModel(o),u=s.getModel(\"itemStyle\").getItemStyle();u.fill||(u.fill=r.getColorFromPalette(l,t)),n.setItemVisual(o,\"style\",u);for(var c=[\"symbol\",\"symbolSize\",\"symbolKeepAspect\"],d=0;d<c.length;d++){var f=s.getShallow(c[d],!0);f!=null&&n.setItemVisual(o,c[d],f)}}),n.count()&&a.each(function(o){var l=a.getItemModel(o),s=l.getShallow(\"category\");if(s!=null){At(s)&&(s=i[\"ec-\"+s]);var u=n.getItemVisual(s,\"style\"),c=a.ensureUniqueItemVisual(o,\"style\");Xe(c,u);for(var d=[\"symbol\",\"symbolSize\",\"symbolKeepAspect\"],f=0;f<d.length;f++)a.setItemVisual(o,d[f],n.getItemVisual(s,d[f]))}})})}function DS(e){return e instanceof Array||(e=[e,e]),e}function WEt(e){e.eachSeriesByType(\"graph\",function(t){var r=t.getGraph(),n=t.getEdgeData(),a=DS(t.get(\"edgeSymbol\")),i=DS(t.get(\"edgeSymbolSize\"));n.setVisual(\"fromSymbol\",a&&a[0]),n.setVisual(\"toSymbol\",a&&a[1]),n.setVisual(\"fromSymbolSize\",i&&i[0]),n.setVisual(\"toSymbolSize\",i&&i[1]),n.setVisual(\"style\",t.getModel(\"lineStyle\").getLineStyle()),n.each(function(o){var l=n.getItemModel(o),s=r.getEdgeByIndex(o),u=DS(l.getShallow(\"symbol\",!0)),c=DS(l.getShallow(\"symbolSize\",!0)),d=l.getModel(\"lineStyle\").getLineStyle(),f=n.ensureUniqueItemVisual(o,\"style\");switch(Xe(f,d),f.stroke){case\"source\":{var h=s.node1.getVisual(\"style\");f.stroke=h&&h.fill;break}case\"target\":{var h=s.node2.getVisual(\"style\");f.stroke=h&&h.fill;break}}u[0]&&s.setVisual(\"fromSymbol\",u[0]),u[1]&&s.setVisual(\"toSymbol\",u[1]),c[0]&&s.setVisual(\"fromSymbolSize\",c[0]),c[1]&&s.setVisual(\"toSymbolSize\",c[1])})})}var UP=\"-->\",CA=function(e){return e.get(\"autoCurveness\")||null},oge=function(e,t){var r=CA(e),n=20,a=[];if(nn(r))n=r;else if(nt(r)){e.__curvenessList=r;return}t>n&&(n=t);var i=n%2?n+2:n+3;a=[];for(var o=0;o<i;o++)a.push((o%2?o+1:o)/10*(o%2?-1:1));e.__curvenessList=a},U2=function(e,t,r){var n=[e.id,e.dataIndex].join(\".\"),a=[t.id,t.dataIndex].join(\".\");return[r.uid,n,a].join(UP)},lge=function(e){var t=e.split(UP);return[t[0],t[2],t[1]].join(UP)},GEt=function(e,t){var r=U2(e.node1,e.node2,t);return t.__edgeMap[r]},UEt=function(e,t){var r=KP(U2(e.node1,e.node2,t),t),n=KP(U2(e.node2,e.node1,t),t);return r+n},KP=function(e,t){var r=t.__edgeMap;return r[e]?r[e].length:0};function KEt(e){CA(e)&&(e.__curvenessList=[],e.__edgeMap={},oge(e))}function YEt(e,t,r,n){if(CA(r)){var a=U2(e,t,r),i=r.__edgeMap,o=i[lge(a)];i[a]&&!o?i[a].isForward=!0:o&&i[a]&&(o.isForward=!0,i[a].isForward=!1),i[a]=i[a]||[],i[a].push(n)}}function w$(e,t,r,n){var a=CA(t),i=nt(a);if(!a)return null;var o=GEt(e,t);if(!o)return null;for(var l=-1,s=0;s<o.length;s++)if(o[s]===r){l=s;break}var u=UEt(e,t);oge(t,u),e.lineStyle=e.lineStyle||{};var c=U2(e.node1,e.node2,t),d=t.__curvenessList,f=i||u%2?0:1;if(o.isForward)return d[f+l];var h=lge(c),p=KP(h,t),v=d[l+p+f];return n?i?a&&a[0]===0?(p+f)%2?v:-v:((p%2?0:1)+f)%2?v:-v:(p+f)%2?v:-v:d[l+p+f]}function sge(e){var t=e.coordinateSystem;if(!(t&&t.type!==\"view\")){var r=e.getGraph();r.eachNode(function(n){var a=n.getModel();n.setLayout([+a.get(\"x\"),+a.get(\"y\")])}),E$(r,e)}}function E$(e,t){e.eachEdge(function(r,n){var a=cu(r.getModel().get([\"lineStyle\",\"curveness\"]),-w$(r,t,n,!0),0),i=ac(r.node1.getLayout()),o=ac(r.node2.getLayout()),l=[i,o];+a&&l.push([(i[0]+o[0])/2-(i[1]-o[1])*a,(i[1]+o[1])/2-(o[0]-i[0])*a]),r.setLayout(l)})}function qEt(e,t){e.eachSeriesByType(\"graph\",function(r){var n=r.get(\"layout\"),a=r.coordinateSystem;if(a&&a.type!==\"view\"){var i=r.getData(),o=[];q(a.dimensions,function(f){o=o.concat(i.mapDimensionsAll(f))});for(var l=0;l<i.count();l++){for(var s=[],u=!1,c=0;c<o.length;c++){var d=i.get(o[c],l);isNaN(d)||(u=!0),s.push(d)}u?i.setItemLayout(l,a.dataToPoint(s)):i.setItemLayout(l,[NaN,NaN])}E$(i.graph,r)}else(!n||n===\"none\")&&sge(r)})}function _y(e){var t=e.coordinateSystem;if(t.type!==\"view\")return 1;var r=e.option.nodeScaleRatio,n=t.scaleX,a=t.getZoom(),i=(a-1)*r+1;return i/n}function Ty(e){var t=e.getVisual(\"symbolSize\");return t instanceof Array&&(t=(t[0]+t[1])/2),+t}var kJ=Math.PI,NI=[];function D$(e,t,r,n){var a=e.coordinateSystem;if(!(a&&a.type!==\"view\")){var i=a.getBoundingRect(),o=e.getData(),l=o.graph,s=i.width/2+i.x,u=i.height/2+i.y,c=Math.min(i.width,i.height)/2,d=o.count();if(o.setLayout({cx:s,cy:u}),!!d){if(r){var f=a.pointToData(n),h=f[0],p=f[1],v=[h-s,p-u];Om(v,v),lb(v,v,c),r.setLayout([s+v[0],u+v[1]],!0);var g=e.get([\"circular\",\"rotateLabel\"]);uge(r,g,s,u)}XEt[t](e,l,o,c,s,u,d),l.eachEdge(function(y,b){var x=cu(y.getModel().get([\"lineStyle\",\"curveness\"]),w$(y,e,b),0),F=ac(y.node1.getLayout()),S=ac(y.node2.getLayout()),E,w=(F[0]+S[0])/2,D=(F[1]+S[1])/2;+x&&(x*=3,E=[s*x+w*(1-x),u*x+D*(1-x)]),y.setLayout([F,S,E])})}}}var XEt={value:function(e,t,r,n,a,i,o){var l=0,s=r.getSum(\"value\"),u=Math.PI*2/(s||o);t.eachNode(function(c){var d=c.getValue(\"value\"),f=u*(s?d:1)/2;l+=f,c.setLayout([n*Math.cos(l)+a,n*Math.sin(l)+i]),l+=f})},symbolSize:function(e,t,r,n,a,i,o){var l=0;NI.length=o;var s=_y(e);t.eachNode(function(d){var f=Ty(d);isNaN(f)&&(f=2),f<0&&(f=0),f*=s;var h=Math.asin(f/2/n);isNaN(h)&&(h=kJ/2),NI[d.dataIndex]=h,l+=h*2});var u=(2*kJ-l)/o/2,c=0;t.eachNode(function(d){var f=u+NI[d.dataIndex];c+=f,(!d.getLayout()||!d.getLayout().fixed)&&d.setLayout([n*Math.cos(c)+a,n*Math.sin(c)+i]),c+=f})}};function uge(e,t,r,n){var a=e.getGraphicEl();if(a){var i=e.getModel(),o=i.get([\"label\",\"rotate\"])||0,l=a.getSymbolPath();if(t){var s=e.getLayout(),u=Math.atan2(s[1]-n,s[0]-r);u<0&&(u=Math.PI*2+u);var c=s[0]<r;c&&(u=u-Math.PI);var d=c?\"left\":\"right\";l.setTextConfig({rotation:-u,position:d,origin:\"center\"});var f=l.ensureState(\"emphasis\");Xe(f.textConfig||(f.textConfig={}),{position:d})}else l.setTextConfig({rotation:o*=Math.PI/180})}}function JEt(e){e.eachSeriesByType(\"graph\",function(t){t.get(\"layout\")===\"circular\"&&D$(t,\"symbolSize\")})}var Sv=E3;function ZEt(e,t,r){for(var n=e,a=t,i=r.rect,o=i.width,l=i.height,s=[i.x+o/2,i.y+l/2],u=r.gravity==null?.1:r.gravity,c=0;c<n.length;c++){var d=n[c];d.p||(d.p=oh(o*(Math.random()-.5)+s[0],l*(Math.random()-.5)+s[1])),d.pp=ac(d.p),d.edges=null}var f=r.friction==null?.6:r.friction,h=f,p,v;return{warmUp:function(){h=f*.8},setFixed:function(g){n[g].fixed=!0},setUnfixed:function(g){n[g].fixed=!1},beforeStep:function(g){p=g},afterStep:function(g){v=g},step:function(g){p&&p(n,a);for(var y=[],b=n.length,x=0;x<a.length;x++){var F=a[x];if(!F.ignoreForceLayout){var S=F.n1,E=F.n2;df(y,E.p,S.p);var w=F2(y)-F.d,D=E.w/(S.w+E.w);isNaN(D)&&(D=0),Om(y,y),!S.fixed&&Sv(S.p,S.p,y,D*w*h),!E.fixed&&Sv(E.p,E.p,y,-(1-D)*w*h)}}for(var x=0;x<b;x++){var A=n[x];A.fixed||(df(y,s,A.p),Sv(A.p,A.p,y,u*h))}for(var x=0;x<b;x++)for(var S=n[x],_=x+1;_<b;_++){var E=n[_];df(y,E.p,S.p);var w=F2(y);w===0&&(vhe(y,Math.random()-.5,Math.random()-.5),w=1);var I=(S.rep+E.rep)/w/w;!S.fixed&&Sv(S.pp,S.pp,y,I),!E.fixed&&Sv(E.pp,E.pp,y,-I)}for(var M=[],x=0;x<b;x++){var A=n[x];A.fixed||(df(M,A.p,A.pp),Sv(A.p,A.p,M,h),lo(A.pp,A.p))}h=h*.992;var T=h<.01;v&&v(n,a,T),g&&g(T)}}}function QEt(e){e.eachSeriesByType(\"graph\",function(t){var r=t.coordinateSystem;if(!(r&&r.type!==\"view\"))if(t.get(\"layout\")===\"force\"){var n=t.preservedPoints||{},a=t.getGraph(),i=a.data,o=a.edgeData,l=t.getModel(\"force\"),s=l.get(\"initLayout\");t.preservedPoints?i.each(function(x){var F=i.getId(x);i.setItemLayout(x,n[F]||[NaN,NaN])}):!s||s===\"none\"?sge(t):s===\"circular\"&&D$(t,\"value\");var u=i.getDataExtent(\"value\"),c=o.getDataExtent(\"value\"),d=l.get(\"repulsion\"),f=l.get(\"edgeLength\"),h=nt(d)?d:[d,d],p=nt(f)?f:[f,f];p=[p[1],p[0]];var v=i.mapArray(\"value\",function(x,F){var S=i.getItemLayout(F),E=yn(x,u,h);return isNaN(E)&&(E=(h[0]+h[1])/2),{w:E,rep:E,fixed:i.getItemModel(F).get(\"fixed\"),p:!S||isNaN(S[0])||isNaN(S[1])?null:S}}),g=o.mapArray(\"value\",function(x,F){var S=a.getEdgeByIndex(F),E=yn(x,c,p);isNaN(E)&&(E=(p[0]+p[1])/2);var w=S.getModel(),D=cu(S.getModel().get([\"lineStyle\",\"curveness\"]),-w$(S,t,F,!0),0);return{n1:v[S.node1.dataIndex],n2:v[S.node2.dataIndex],d:E,curveness:D,ignoreForceLayout:w.get(\"ignoreForceLayout\")}}),y=r.getBoundingRect(),b=ZEt(v,g,{rect:y,gravity:l.get(\"gravity\"),friction:l.get(\"friction\")});b.beforeStep(function(x,F){for(var S=0,E=x.length;S<E;S++)x[S].fixed&&lo(x[S].p,a.getNodeByIndex(S).getLayout())}),b.afterStep(function(x,F,S){for(var E=0,w=x.length;E<w;E++)x[E].fixed||a.getNodeByIndex(E).setLayout(x[E].p),n[i.getId(E)]=x[E].p;for(var E=0,w=F.length;E<w;E++){var D=F[E],A=a.getEdgeByIndex(E),_=D.n1.p,I=D.n2.p,M=A.getLayout();M=M?M.slice():[],M[0]=M[0]||[],M[1]=M[1]||[],lo(M[0],_),lo(M[1],I),+D.curveness&&(M[2]=[(_[0]+I[0])/2-(_[1]-I[1])*D.curveness,(_[1]+I[1])/2-(I[0]-_[0])*D.curveness]),A.setLayout(M)}}),t.forceLayout=b,t.preservedPoints=n,b.step()}else t.forceLayout=null})}function e3t(e,t,r){var n=Xe(e.getBoxLayoutParams(),{aspect:r});return Na(n,{width:t.getWidth(),height:t.getHeight()})}function t3t(e,t){var r=[];return e.eachSeriesByType(\"graph\",function(n){var a=n.get(\"coordinateSystem\");if(!a||a===\"view\"){var i=n.getData(),o=i.mapArray(function(g){var y=i.getItemModel(g);return[+y.get(\"x\"),+y.get(\"y\")]}),l=[],s=[];qD(o,l,s),s[0]-l[0]===0&&(s[0]+=1,l[0]-=1),s[1]-l[1]===0&&(s[1]+=1,l[1]-=1);var u=(s[0]-l[0])/(s[1]-l[1]),c=e3t(n,t,u);isNaN(u)&&(l=[c.x,c.y],s=[c.x+c.width,c.y+c.height]);var d=s[0]-l[0],f=s[1]-l[1],h=c.width,p=c.height,v=n.coordinateSystem=new vC;v.zoomLimit=n.get(\"scaleLimit\"),v.setBoundingRect(l[0],l[1],d,f),v.setViewRect(c.x,c.y,h,p),v.setCenter(n.get(\"center\"),t),v.setZoom(n.get(\"zoom\")),r.push(v)}}),r}var RJ=Xa.prototype,$I=Kg.prototype,cge=function(){function e(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1}return e}();(function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t})(cge);function LI(e){return isNaN(+e.cpx1)||isNaN(+e.cpy1)}var r3t=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"ec-line\",n}return t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new cge},t.prototype.buildPath=function(r,n){LI(n)?RJ.buildPath.call(this,r,n):$I.buildPath.call(this,r,n)},t.prototype.pointAt=function(r){return LI(this.shape)?RJ.pointAt.call(this,r):$I.pointAt.call(this,r)},t.prototype.tangentAt=function(r){var n=this.shape,a=LI(n)?[n.x2-n.x1,n.y2-n.y1]:$I.tangentAt.call(this,r);return Om(a,a)},t}(Vr),jI=[\"fromSymbol\",\"toSymbol\"];function MJ(e){return\"_\"+e+\"Type\"}function PJ(e,t,r){var n=t.getItemVisual(r,e);if(!n||n===\"none\")return n;var a=t.getItemVisual(r,e+\"Size\"),i=t.getItemVisual(r,e+\"Rotate\"),o=t.getItemVisual(r,e+\"Offset\"),l=t.getItemVisual(r,e+\"KeepAspect\"),s=a1(a),u=jm(o||0,s);return n+s+u+(i||\"\")+(l||\"\")}function OJ(e,t,r){var n=t.getItemVisual(r,e);if(!(!n||n===\"none\")){var a=t.getItemVisual(r,e+\"Size\"),i=t.getItemVisual(r,e+\"Rotate\"),o=t.getItemVisual(r,e+\"Offset\"),l=t.getItemVisual(r,e+\"KeepAspect\"),s=a1(a),u=jm(o||0,s),c=_a(n,-s[0]/2+u[0],-s[1]/2+u[1],s[0],s[1],null,l);return c.__specifiedRotation=i==null||isNaN(i)?void 0:+i*Math.PI/180||0,c.name=e,c}}function n3t(e){var t=new r3t({name:\"line\",subPixelOptimize:!0});return YP(t.shape,e),t}function YP(e,t){e.x1=t[0][0],e.y1=t[0][1],e.x2=t[1][0],e.y2=t[1][1],e.percent=1;var r=t[2];r?(e.cpx1=r[0],e.cpy1=r[1]):(e.cpx1=NaN,e.cpy1=NaN)}var A$=function(e){Re(t,e);function t(r,n,a){var i=e.call(this)||this;return i._createLine(r,n,a),i}return t.prototype._createLine=function(r,n,a){var i=r.hostModel,o=r.getItemLayout(n),l=n3t(o);l.shape.percent=0,Yn(l,{shape:{percent:1}},i,n),this.add(l),q(jI,function(s){var u=OJ(s,r,n);this.add(u),this[MJ(s)]=PJ(s,r,n)},this),this._updateCommonStl(r,n,a)},t.prototype.updateData=function(r,n,a){var i=r.hostModel,o=this.childOfName(\"line\"),l=r.getItemLayout(n),s={shape:{}};YP(s.shape,l),cn(o,s,i,n),q(jI,function(u){var c=PJ(u,r,n),d=MJ(u);if(this[d]!==c){this.remove(this.childOfName(u));var f=OJ(u,r,n);this.add(f)}this[d]=c},this),this._updateCommonStl(r,n,a)},t.prototype.getLinePath=function(){return this.childAt(0)},t.prototype._updateCommonStl=function(r,n,a){var i=r.hostModel,o=this.childOfName(\"line\"),l=a&&a.emphasisLineStyle,s=a&&a.blurLineStyle,u=a&&a.selectLineStyle,c=a&&a.labelStatesModels,d=a&&a.emphasisDisabled,f=a&&a.focus,h=a&&a.blurScope;if(!a||r.hasItemOption){var p=r.getItemModel(n),v=p.getModel(\"emphasis\");l=v.getModel(\"lineStyle\").getLineStyle(),s=p.getModel([\"blur\",\"lineStyle\"]).getLineStyle(),u=p.getModel([\"select\",\"lineStyle\"]).getLineStyle(),d=v.get(\"disabled\"),f=v.get(\"focus\"),h=v.get(\"blurScope\"),c=vi(p)}var g=r.getItemVisual(n,\"style\"),y=g.stroke;o.useStyle(g),o.style.fill=null,o.style.strokeNoScale=!0,o.ensureState(\"emphasis\").style=l,o.ensureState(\"blur\").style=s,o.ensureState(\"select\").style=u,q(jI,function(E){var w=this.childOfName(E);if(w){w.setColor(y),w.style.opacity=g.opacity;for(var D=0;D<Ko.length;D++){var A=Ko[D],_=o.getState(A);if(_){var I=_.style||{},M=w.ensureState(A),T=M.style||(M.style={});I.stroke!=null&&(T[w.__isEmptyBrush?\"stroke\":\"fill\"]=I.stroke),I.opacity!=null&&(T.opacity=I.opacity)}}w.markRedraw()}},this);var b=i.getRawValue(n);Xi(this,c,{labelDataIndex:n,labelFetcher:{getFormattedLabel:function(E,w){return i.getFormattedLabel(E,w,r.dataType)}},inheritColor:y||\"#000\",defaultOpacity:g.opacity,defaultText:(b==null?r.getName(n):isFinite(b)?fa(b):b)+\"\"});var x=this.getTextContent();if(x){var F=c.normal;x.__align=x.style.align,x.__verticalAlign=x.style.verticalAlign,x.__position=F.get(\"position\")||\"middle\";var S=F.get(\"distance\");nt(S)||(S=[S,S]),x.__labelDistance=S}this.setTextConfig({position:null,local:!0,inside:!1}),sa(this,f,h,d)},t.prototype.highlight=function(){fd(this)},t.prototype.downplay=function(){hd(this)},t.prototype.updateLayout=function(r,n){this.setLinePoints(r.getItemLayout(n))},t.prototype.setLinePoints=function(r){var n=this.childOfName(\"line\");YP(n.shape,r),n.dirty()},t.prototype.beforeUpdate=function(){var r=this,n=r.childOfName(\"fromSymbol\"),a=r.childOfName(\"toSymbol\"),i=r.getTextContent();if(!n&&!a&&(!i||i.ignore))return;for(var o=1,l=this.parent;l;)l.scaleX&&(o/=l.scaleX),l=l.parent;var s=r.childOfName(\"line\");if(!this.__dirty&&!s.__dirty)return;var u=s.shape.percent,c=s.pointAt(0),d=s.pointAt(u),f=df([],d,c);Om(f,f);function h(_,I){var M=_.__specifiedRotation;if(M==null){var T=s.tangentAt(I);_.attr(\"rotation\",(I===1?-1:1)*Math.PI/2-Math.atan2(T[1],T[0]))}else _.attr(\"rotation\",M)}if(n&&(n.setPosition(c),h(n,0),n.scaleX=n.scaleY=o*u,n.markRedraw()),a&&(a.setPosition(d),h(a,1),a.scaleX=a.scaleY=o*u,a.markRedraw()),i&&!i.ignore){i.x=i.y=0,i.originX=i.originY=0;var p=void 0,v=void 0,g=i.__labelDistance,y=g[0]*o,b=g[1]*o,x=u/2,F=s.tangentAt(x),S=[F[1],-F[0]],E=s.pointAt(x);S[1]>0&&(S[0]=-S[0],S[1]=-S[1]);var w=F[0]<0?-1:1;if(i.__position!==\"start\"&&i.__position!==\"end\"){var D=-Math.atan2(F[1],F[0]);d[0]<c[0]&&(D=Math.PI+D),i.rotation=D}var A=void 0;switch(i.__position){case\"insideStartTop\":case\"insideMiddleTop\":case\"insideEndTop\":case\"middle\":A=-b,v=\"bottom\";break;case\"insideStartBottom\":case\"insideMiddleBottom\":case\"insideEndBottom\":A=b,v=\"top\";break;default:A=0,v=\"middle\"}switch(i.__position){case\"end\":i.x=f[0]*y+d[0],i.y=f[1]*b+d[1],p=f[0]>.8?\"left\":f[0]<-.8?\"right\":\"center\",v=f[1]>.8?\"top\":f[1]<-.8?\"bottom\":\"middle\";break;case\"start\":i.x=-f[0]*y+c[0],i.y=-f[1]*b+c[1],p=f[0]>.8?\"right\":f[0]<-.8?\"left\":\"center\",v=f[1]>.8?\"bottom\":f[1]<-.8?\"top\":\"middle\";break;case\"insideStartTop\":case\"insideStart\":case\"insideStartBottom\":i.x=y*w+c[0],i.y=c[1]+A,p=F[0]<0?\"right\":\"left\",i.originX=-y*w,i.originY=-A;break;case\"insideMiddleTop\":case\"insideMiddle\":case\"insideMiddleBottom\":case\"middle\":i.x=E[0],i.y=E[1]+A,p=\"center\",i.originY=-A;break;case\"insideEndTop\":case\"insideEnd\":case\"insideEndBottom\":i.x=-y*w+d[0],i.y=d[1]+A,p=F[0]>=0?\"right\":\"left\",i.originX=y*w,i.originY=-A;break}i.scaleX=i.scaleY=o,i.setStyle({verticalAlign:i.__verticalAlign||v,align:i.__align||p})}},t}(pr),_$=function(){function e(t){this.group=new pr,this._LineCtor=t||A$}return e.prototype.updateData=function(t){var r=this;this._progressiveEls=null;var n=this,a=n.group,i=n._lineData;n._lineData=t,i||a.removeAll();var o=BJ(t);t.diff(i).add(function(l){r._doAdd(t,l,o)}).update(function(l,s){r._doUpdate(i,t,s,l,o)}).remove(function(l){a.remove(i.getItemGraphicEl(l))}).execute()},e.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(r,n){r.updateLayout(t,n)},this)},e.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=BJ(t),this._lineData=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(t,r){this._progressiveEls=[];function n(l){!l.isGroup&&!a3t(l)&&(l.incremental=!0,l.ensureState(\"emphasis\").hoverLayer=!0)}for(var a=t.start;a<t.end;a++){var i=r.getItemLayout(a);if(zI(i)){var o=new this._LineCtor(r,a,this._seriesScope);o.traverse(n),this.group.add(o),r.setItemGraphicEl(a,o),this._progressiveEls.push(o)}}},e.prototype.remove=function(){this.group.removeAll()},e.prototype.eachRendered=function(t){sh(this._progressiveEls||this.group,t)},e.prototype._doAdd=function(t,r,n){var a=t.getItemLayout(r);if(zI(a)){var i=new this._LineCtor(t,r,n);t.setItemGraphicEl(r,i),this.group.add(i)}},e.prototype._doUpdate=function(t,r,n,a,i){var o=t.getItemGraphicEl(n);if(!zI(r.getItemLayout(a))){this.group.remove(o);return}o?o.updateData(r,a,i):o=new this._LineCtor(r,a,i),r.setItemGraphicEl(a,o),this.group.add(o)},e}();function a3t(e){return e.animators&&e.animators.length>0}function BJ(e){var t=e.hostModel,r=t.getModel(\"emphasis\");return{lineStyle:t.getModel(\"lineStyle\").getLineStyle(),emphasisLineStyle:r.getModel([\"lineStyle\"]).getLineStyle(),blurLineStyle:t.getModel([\"blur\",\"lineStyle\"]).getLineStyle(),selectLineStyle:t.getModel([\"select\",\"lineStyle\"]).getLineStyle(),emphasisDisabled:r.get(\"disabled\"),blurScope:r.get(\"blurScope\"),focus:r.get(\"focus\"),labelStatesModels:vi(t)}}function NJ(e){return isNaN(e[0])||isNaN(e[1])}function zI(e){return e&&!NJ(e[0])&&!NJ(e[1])}var HI=[],VI=[],WI=[],wv=Fi,GI=_f,$J=Math.abs;function LJ(e,t,r){for(var n=e[0],a=e[1],i=e[2],o=1/0,l,s=r*r,u=.1,c=.1;c<=.9;c+=.1){HI[0]=wv(n[0],a[0],i[0],c),HI[1]=wv(n[1],a[1],i[1],c);var d=$J(GI(HI,t)-s);d<o&&(o=d,l=c)}for(var f=0;f<32;f++){var h=l+u;VI[0]=wv(n[0],a[0],i[0],l),VI[1]=wv(n[1],a[1],i[1],l),WI[0]=wv(n[0],a[0],i[0],h),WI[1]=wv(n[1],a[1],i[1],h);var d=GI(VI,t)-s;if($J(d)<.01)break;var p=GI(WI,t)-s;u/=2,d<0?p>=0?l=l+u:l=l-u:p>=0?l=l-u:l=l+u}return l}function UI(e,t){var r=[],n=S2,a=[[],[],[]],i=[[],[]],o=[];t/=2,e.eachEdge(function(l,s){var u=l.getLayout(),c=l.getVisual(\"fromSymbol\"),d=l.getVisual(\"toSymbol\");u.__original||(u.__original=[ac(u[0]),ac(u[1])],u[2]&&u.__original.push(ac(u[2])));var f=u.__original;if(u[2]!=null){if(lo(a[0],f[0]),lo(a[1],f[2]),lo(a[2],f[1]),c&&c!==\"none\"){var h=Ty(l.node1),p=LJ(a,f[0],h*t);n(a[0][0],a[1][0],a[2][0],p,r),a[0][0]=r[3],a[1][0]=r[4],n(a[0][1],a[1][1],a[2][1],p,r),a[0][1]=r[3],a[1][1]=r[4]}if(d&&d!==\"none\"){var h=Ty(l.node2),p=LJ(a,f[1],h*t);n(a[0][0],a[1][0],a[2][0],p,r),a[1][0]=r[1],a[2][0]=r[2],n(a[0][1],a[1][1],a[2][1],p,r),a[1][1]=r[1],a[2][1]=r[2]}lo(u[0],a[0]),lo(u[1],a[2]),lo(u[2],a[1])}else{if(lo(i[0],f[0]),lo(i[1],f[1]),df(o,i[1],i[0]),Om(o,o),c&&c!==\"none\"){var h=Ty(l.node1);E3(i[0],i[0],o,h*t)}if(d&&d!==\"none\"){var h=Ty(l.node2);E3(i[1],i[1],o,-h*t)}lo(u[0],i[0]),lo(u[1],i[1])}})}function jJ(e){return e.type===\"view\"}var i3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){var a=new cC,i=new _$,o=this.group;this._controller=new mC(n.getZr()),this._controllerHost={target:o},o.add(a.group),o.add(i.group),this._symbolDraw=a,this._lineDraw=i,this._firstRender=!0},t.prototype.render=function(r,n,a){var i=this,o=r.coordinateSystem;this._model=r;var l=this._symbolDraw,s=this._lineDraw,u=this.group;if(jJ(o)){var c={x:o.x,y:o.y,scaleX:o.scaleX,scaleY:o.scaleY};this._firstRender?u.attr(c):cn(u,c,r)}UI(r.getGraph(),_y(r));var d=r.getData();l.updateData(d);var f=r.getEdgeData();s.updateData(f),this._updateNodeAndLinkScale(),this._updateController(r,n,a),clearTimeout(this._layoutTimeout);var h=r.forceLayout,p=r.get([\"force\",\"layoutAnimation\"]);h&&this._startForceLayoutIteration(h,p);var v=r.get(\"layout\");d.graph.eachNode(function(x){var F=x.dataIndex,S=x.getGraphicEl(),E=x.getModel();if(S){S.off(\"drag\").off(\"dragend\");var w=E.get(\"draggable\");w&&S.on(\"drag\",function(A){switch(v){case\"force\":h.warmUp(),!i._layouting&&i._startForceLayoutIteration(h,p),h.setFixed(F),d.setItemLayout(F,[S.x,S.y]);break;case\"circular\":d.setItemLayout(F,[S.x,S.y]),x.setLayout({fixed:!0},!0),D$(r,\"symbolSize\",x,[A.offsetX,A.offsetY]),i.updateLayout(r);break;case\"none\":default:d.setItemLayout(F,[S.x,S.y]),E$(r.getGraph(),r),i.updateLayout(r);break}}).on(\"dragend\",function(){h&&h.setUnfixed(F)}),S.setDraggable(w,!!E.get(\"cursor\"));var D=E.get([\"emphasis\",\"focus\"]);D===\"adjacency\"&&(br(S).focus=x.getAdjacentDataIndices())}}),d.graph.eachEdge(function(x){var F=x.getGraphicEl(),S=x.getModel().get([\"emphasis\",\"focus\"]);F&&S===\"adjacency\"&&(br(F).focus={edge:[x.dataIndex],node:[x.node1.dataIndex,x.node2.dataIndex]})});var g=r.get(\"layout\")===\"circular\"&&r.get([\"circular\",\"rotateLabel\"]),y=d.getLayout(\"cx\"),b=d.getLayout(\"cy\");d.graph.eachNode(function(x){uge(x,g,y,b)}),this._firstRender=!1},t.prototype.dispose=function(){this.remove(),this._controller&&this._controller.dispose(),this._controllerHost=null},t.prototype._startForceLayoutIteration=function(r,n){var a=this;(function i(){r.step(function(o){a.updateLayout(a._model),(a._layouting=!o)&&(n?a._layoutTimeout=setTimeout(i,16):i())})})()},t.prototype._updateController=function(r,n,a){var i=this,o=this._controller,l=this._controllerHost,s=this.group;if(o.setPointerChecker(function(u,c,d){var f=s.getBoundingRect();return f.applyTransform(s.transform),f.contain(c,d)&&!yA(u,a,r)}),!jJ(r.coordinateSystem)){o.disable();return}o.enable(r.get(\"roam\")),l.zoomLimit=r.get(\"scaleLimit\"),l.zoom=r.coordinateSystem.getZoom(),o.off(\"pan\").off(\"zoom\").on(\"pan\",function(u){v$(l,u.dx,u.dy),a.dispatchAction({seriesId:r.id,type:\"graphRoam\",dx:u.dx,dy:u.dy})}).on(\"zoom\",function(u){g$(l,u.scale,u.originX,u.originY),a.dispatchAction({seriesId:r.id,type:\"graphRoam\",zoom:u.scale,originX:u.originX,originY:u.originY}),i._updateNodeAndLinkScale(),UI(r.getGraph(),_y(r)),i._lineDraw.updateLayout(),a.updateLabelLayout()})},t.prototype._updateNodeAndLinkScale=function(){var r=this._model,n=r.getData(),a=_y(r);n.eachItemGraphicEl(function(i,o){i&&i.setSymbolScale(a)})},t.prototype.updateLayout=function(r){UI(r.getGraph(),_y(r)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},t.prototype.remove=function(){clearTimeout(this._layoutTimeout),this._layouting=!1,this._layoutTimeout=null,this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},t.type=\"graph\",t}(Cn);function Ev(e){return\"_EC_\"+e}var o3t=function(){function e(t){this.type=\"graph\",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return e.prototype.isDirected=function(){return this._directed},e.prototype.addNode=function(t,r){t=t==null?\"\"+r:\"\"+t;var n=this._nodesMap;if(!n[Ev(t)]){var a=new Yh(t,r);return a.hostGraph=this,this.nodes.push(a),n[Ev(t)]=a,a}},e.prototype.getNodeByIndex=function(t){var r=this.data.getRawIndex(t);return this.nodes[r]},e.prototype.getNodeById=function(t){return this._nodesMap[Ev(t)]},e.prototype.addEdge=function(t,r,n){var a=this._nodesMap,i=this._edgesMap;if(nn(t)&&(t=this.nodes[t]),nn(r)&&(r=this.nodes[r]),t instanceof Yh||(t=a[Ev(t)]),r instanceof Yh||(r=a[Ev(r)]),!(!t||!r)){var o=t.id+\"-\"+r.id,l=new dge(t,r,n);return l.hostGraph=this,this._directed&&(t.outEdges.push(l),r.inEdges.push(l)),t.edges.push(l),t!==r&&r.edges.push(l),this.edges.push(l),i[o]=l,l}},e.prototype.getEdgeByIndex=function(t){var r=this.edgeData.getRawIndex(t);return this.edges[r]},e.prototype.getEdge=function(t,r){t instanceof Yh&&(t=t.id),r instanceof Yh&&(r=r.id);var n=this._edgesMap;return this._directed?n[t+\"-\"+r]:n[t+\"-\"+r]||n[r+\"-\"+t]},e.prototype.eachNode=function(t,r){for(var n=this.nodes,a=n.length,i=0;i<a;i++)n[i].dataIndex>=0&&t.call(r,n[i],i)},e.prototype.eachEdge=function(t,r){for(var n=this.edges,a=n.length,i=0;i<a;i++)n[i].dataIndex>=0&&n[i].node1.dataIndex>=0&&n[i].node2.dataIndex>=0&&t.call(r,n[i],i)},e.prototype.breadthFirstTraverse=function(t,r,n,a){if(r instanceof Yh||(r=this._nodesMap[Ev(r)]),!!r){for(var i=n===\"out\"?\"outEdges\":n===\"in\"?\"inEdges\":\"edges\",o=0;o<this.nodes.length;o++)this.nodes[o].__visited=!1;if(!t.call(a,r,null))for(var l=[r];l.length;)for(var s=l.shift(),u=s[i],o=0;o<u.length;o++){var c=u[o],d=c.node1===s?c.node2:c.node1;if(!d.__visited){if(t.call(a,d,s))return;l.push(d),d.__visited=!0}}}},e.prototype.update=function(){for(var t=this.data,r=this.edgeData,n=this.nodes,a=this.edges,i=0,o=n.length;i<o;i++)n[i].dataIndex=-1;for(var i=0,o=t.count();i<o;i++)n[t.getRawIndex(i)].dataIndex=i;r.filterSelf(function(l){var s=a[r.getRawIndex(l)];return s.node1.dataIndex>=0&&s.node2.dataIndex>=0});for(var i=0,o=a.length;i<o;i++)a[i].dataIndex=-1;for(var i=0,o=r.count();i<o;i++)a[r.getRawIndex(i)].dataIndex=i},e.prototype.clone=function(){for(var t=new e(this._directed),r=this.nodes,n=this.edges,a=0;a<r.length;a++)t.addNode(r[a].id,r[a].dataIndex);for(var a=0;a<n.length;a++){var i=n[a];t.addEdge(i.node1.id,i.node2.id,i.dataIndex)}return t},e}(),Yh=function(){function e(t,r){this.inEdges=[],this.outEdges=[],this.edges=[],this.dataIndex=-1,this.id=t??\"\",this.dataIndex=r??-1}return e.prototype.degree=function(){return this.edges.length},e.prototype.inDegree=function(){return this.inEdges.length},e.prototype.outDegree=function(){return this.outEdges.length},e.prototype.getModel=function(t){if(!(this.dataIndex<0)){var r=this.hostGraph,n=r.data.getItemModel(this.dataIndex);return n.getModel(t)}},e.prototype.getAdjacentDataIndices=function(){for(var t={edge:[],node:[]},r=0;r<this.edges.length;r++){var n=this.edges[r];n.dataIndex<0||(t.edge.push(n.dataIndex),t.node.push(n.node1.dataIndex,n.node2.dataIndex))}return t},e.prototype.getTrajectoryDataIndices=function(){for(var t=Gt(),r=Gt(),n=0;n<this.edges.length;n++){var a=this.edges[n];if(!(a.dataIndex<0)){t.set(a.dataIndex,!0);for(var i=[a.node1],o=[a.node2],l=0;l<i.length;){var s=i[l];l++,r.set(s.dataIndex,!0);for(var u=0;u<s.inEdges.length;u++)t.set(s.inEdges[u].dataIndex,!0),i.push(s.inEdges[u].node1)}for(l=0;l<o.length;){var c=o[l];l++,r.set(c.dataIndex,!0);for(var u=0;u<c.outEdges.length;u++)t.set(c.outEdges[u].dataIndex,!0),o.push(c.outEdges[u].node2)}}}return{edge:t.keys(),node:r.keys()}},e}(),dge=function(){function e(t,r,n){this.dataIndex=-1,this.node1=t,this.node2=r,this.dataIndex=n??-1}return e.prototype.getModel=function(t){if(!(this.dataIndex<0)){var r=this.hostGraph,n=r.edgeData.getItemModel(this.dataIndex);return n.getModel(t)}},e.prototype.getAdjacentDataIndices=function(){return{edge:[this.dataIndex],node:[this.node1.dataIndex,this.node2.dataIndex]}},e.prototype.getTrajectoryDataIndices=function(){var t=Gt(),r=Gt();t.set(this.dataIndex,!0);for(var n=[this.node1],a=[this.node2],i=0;i<n.length;){var o=n[i];i++,r.set(o.dataIndex,!0);for(var l=0;l<o.inEdges.length;l++)t.set(o.inEdges[l].dataIndex,!0),n.push(o.inEdges[l].node1)}for(i=0;i<a.length;){var s=a[i];i++,r.set(s.dataIndex,!0);for(var l=0;l<s.outEdges.length;l++)t.set(s.outEdges[l].dataIndex,!0),a.push(s.outEdges[l].node2)}return{edge:t.keys(),node:r.keys()}},e}();function fge(e,t){return{getValue:function(r){var n=this[e][t];return n.getStore().get(n.getDimensionIndex(r||\"value\"),this.dataIndex)},setVisual:function(r,n){this.dataIndex>=0&&this[e][t].setItemVisual(this.dataIndex,r,n)},getVisual:function(r){return this[e][t].getItemVisual(this.dataIndex,r)},setLayout:function(r,n){this.dataIndex>=0&&this[e][t].setItemLayout(this.dataIndex,r,n)},getLayout:function(){return this[e][t].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[e][t].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[e][t].getRawIndex(this.dataIndex)}}}Ca(Yh,fge(\"hostGraph\",\"data\"));Ca(dge,fge(\"hostGraph\",\"edgeData\"));function hge(e,t,r,n,a){for(var i=new o3t(n),o=0;o<e.length;o++)i.addNode(ui(e[o].id,e[o].name,o),o);for(var l=[],s=[],u=0,o=0;o<t.length;o++){var c=t[o],d=c.source,f=c.target;i.addEdge(d,f,u)&&(s.push(c),l.push(ui(qa(c.id,null),d+\" > \"+f)),u++)}var h=r.get(\"coordinateSystem\"),p;if(h===\"cartesian2d\"||h===\"polar\")p=wc(e,r);else{var v=t1.get(h),g=v?v.dimensions||[]:[];Mr(g,\"value\")<0&&g.concat([\"value\"]);var y=i1(e,{coordDimensions:g,encodeDefine:r.getEncode()}).dimensions;p=new xo(y,r),p.initData(e)}var b=new xo([\"value\"],r);return b.initData(s,l),a&&a(p,b),Y0e({mainData:p,struct:i,structAttr:\"graph\",datas:{node:p,edge:b},datasAttr:{node:\"data\",edge:\"edgeData\"}}),i.update(),i}var l3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments);var n=this;function a(){return n._categoriesData}this.legendVisualProvider=new pC(a,a),this.fillDataTextStyle(r.edges||r.links),this._updateCategoriesData()},t.prototype.mergeOption=function(r){e.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(r.edges||r.links),this._updateCategoriesData()},t.prototype.mergeDefaultAndTheme=function(r){e.prototype.mergeDefaultAndTheme.apply(this,arguments),nm(r,\"edgeLabel\",[\"show\"])},t.prototype.getInitialData=function(r,n){var a=r.edges||r.links||[],i=r.data||r.nodes||[],o=this;if(i&&a){KEt(this);var l=hge(i,a,this,!0,s);return q(l.edges,function(u){YEt(u.node1,u.node2,this,u.dataIndex)},this),l.data}function s(u,c){u.wrapMethod(\"getItemModel\",function(p){var v=o._categoriesModels,g=p.getShallow(\"category\"),y=v[g];return y&&(y.parentModel=p.parentModel,p.parentModel=y),p});var d=pn.prototype.getModel;function f(p,v){var g=d.call(this,p,v);return g.resolveParentPath=h,g}c.wrapMethod(\"getItemModel\",function(p){return p.resolveParentPath=h,p.getModel=f,p});function h(p){if(p&&(p[0]===\"label\"||p[1]===\"label\")){var v=p.slice();return p[0]===\"label\"?v[0]=\"edgeLabel\":p[1]===\"label\"&&(v[1]=\"edgeLabel\"),v}return p}}},t.prototype.getGraph=function(){return this.getData().graph},t.prototype.getEdgeData=function(){return this.getGraph().edgeData},t.prototype.getCategoriesData=function(){return this._categoriesData},t.prototype.formatTooltip=function(r,n,a){if(a===\"edge\"){var i=this.getData(),o=this.getDataParams(r,a),l=i.graph.getEdgeByIndex(r),s=i.getName(l.node1.dataIndex),u=i.getName(l.node2.dataIndex),c=[];return s!=null&&c.push(s),u!=null&&c.push(u),gi(\"nameValue\",{name:c.join(\" > \"),value:o.value,noValue:o.value==null})}var d=Pme({series:this,dataIndex:r,multipleSeries:n});return d},t.prototype._updateCategoriesData=function(){var r=ot(this.option.categories||[],function(a){return a.value!=null?a:Xe({value:0},a)}),n=new xo([\"value\"],this);n.initData(r),this._categoriesData=n,this._categoriesModels=n.mapArray(function(a){return n.getItemModel(a)})},t.prototype.setZoom=function(r){this.option.zoom=r},t.prototype.setCenter=function(r){this.option.center=r},t.prototype.isAnimationEnabled=function(){return e.prototype.isAnimationEnabled.call(this)&&!(this.get(\"layout\")===\"force\"&&this.get([\"force\",\"layoutAnimation\"]))},t.type=\"series.graph\",t.dependencies=[\"grid\",\"polar\",\"geo\",\"singleAxis\",\"calendar\"],t.defaultOption={z:2,coordinateSystem:\"view\",legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:\"center\",top:\"center\",symbol:\"circle\",symbolSize:10,edgeSymbol:[\"none\",\"none\"],edgeSymbolSize:10,edgeLabel:{position:\"middle\",distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:\"{b}\"},itemStyle:{},lineStyle:{color:\"#aaa\",width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:\"#212121\"}}},t}(_n),s3t={type:\"graphRoam\",event:\"graphRoam\",update:\"none\"};function u3t(e){e.registerChartView(i3t),e.registerSeriesModel(l3t),e.registerProcessor(HEt),e.registerVisual(VEt),e.registerVisual(WEt),e.registerLayout(qEt),e.registerLayout(e.PRIORITY.VISUAL.POST_CHART_LAYOUT,JEt),e.registerLayout(QEt),e.registerCoordinateSystem(\"graphView\",{dimensions:vC.dimensions,create:t3t}),e.registerAction({type:\"focusNodeAdjacency\",event:\"focusNodeAdjacency\",update:\"series:focusNodeAdjacency\"},ga),e.registerAction({type:\"unfocusNodeAdjacency\",event:\"unfocusNodeAdjacency\",update:\"series:unfocusNodeAdjacency\"},ga),e.registerAction(s3t,function(t,r,n){r.eachComponent({mainType:\"series\",query:t},function(a){var i=a.coordinateSystem,o=b$(i,t,void 0,n);a.setCenter&&a.setCenter(o.center),a.setZoom&&a.setZoom(o.zoom)})})}var c3t=function(){function e(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return e}(),d3t=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"pointer\",n}return t.prototype.getDefaultShape=function(){return new c3t},t.prototype.buildPath=function(r,n){var a=Math.cos,i=Math.sin,o=n.r,l=n.width,s=n.angle,u=n.x-a(s)*l*(l>=o/3?1:2),c=n.y-i(s)*l*(l>=o/3?1:2);s=n.angle-Math.PI/2,r.moveTo(u,c),r.lineTo(n.x+a(s)*l,n.y+i(s)*l),r.lineTo(n.x+a(n.angle)*o,n.y+i(n.angle)*o),r.lineTo(n.x-a(s)*l,n.y-i(s)*l),r.lineTo(u,c)},t}(Vr);function f3t(e,t){var r=e.get(\"center\"),n=t.getWidth(),a=t.getHeight(),i=Math.min(n,a),o=Ft(r[0],t.getWidth()),l=Ft(r[1],t.getHeight()),s=Ft(e.get(\"radius\"),i/2);return{cx:o,cy:l,r:s}}function AS(e,t){var r=e==null?\"\":e+\"\";return t&&(At(t)?r=t.replace(\"{value}\",r):er(t)&&(r=t(e))),r}var h3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){this.group.removeAll();var i=r.get([\"axisLine\",\"lineStyle\",\"color\"]),o=f3t(r,a);this._renderMain(r,n,a,i,o),this._data=r.getData()},t.prototype.dispose=function(){},t.prototype._renderMain=function(r,n,a,i,o){var l=this.group,s=r.get(\"clockwise\"),u=-r.get(\"startAngle\")/180*Math.PI,c=-r.get(\"endAngle\")/180*Math.PI,d=r.getModel(\"axisLine\"),f=d.get(\"roundCap\"),h=f?n4:So,p=d.get(\"show\"),v=d.getModel(\"lineStyle\"),g=v.get(\"width\"),y=[u,c];cN(y,!s),u=y[0],c=y[1];for(var b=c-u,x=u,F=[],S=0;p&&S<i.length;S++){var E=Math.min(Math.max(i[S][0],0),1);c=u+b*E;var w=new h({shape:{startAngle:x,endAngle:c,cx:o.cx,cy:o.cy,clockwise:s,r0:o.r-g,r:o.r},silent:!0});w.setStyle({fill:i[S][1]}),w.setStyle(v.getLineStyle([\"color\",\"width\"])),F.push(w),x=c}F.reverse(),q(F,function(A){return l.add(A)});var D=function(A){if(A<=0)return i[0][1];var _;for(_=0;_<i.length;_++)if(i[_][0]>=A&&(_===0?0:i[_-1][0])<A)return i[_][1];return i[_-1][1]};this._renderTicks(r,n,a,D,o,u,c,s,g),this._renderTitleAndDetail(r,n,a,D,o),this._renderAnchor(r,o),this._renderPointer(r,n,a,D,o,u,c,s,g)},t.prototype._renderTicks=function(r,n,a,i,o,l,s,u,c){for(var d=this.group,f=o.cx,h=o.cy,p=o.r,v=+r.get(\"min\"),g=+r.get(\"max\"),y=r.getModel(\"splitLine\"),b=r.getModel(\"axisTick\"),x=r.getModel(\"axisLabel\"),F=r.get(\"splitNumber\"),S=b.get(\"splitNumber\"),E=Ft(y.get(\"length\"),p),w=Ft(b.get(\"length\"),p),D=l,A=(s-l)/F,_=A/S,I=y.getModel(\"lineStyle\").getLineStyle(),M=b.getModel(\"lineStyle\").getLineStyle(),T=y.get(\"distance\"),k,R,P=0;P<=F;P++){if(k=Math.cos(D),R=Math.sin(D),y.get(\"show\")){var B=T?T+c:c,N=new Xa({shape:{x1:k*(p-B)+f,y1:R*(p-B)+h,x2:k*(p-E-B)+f,y2:R*(p-E-B)+h},style:I,silent:!0});I.stroke===\"auto\"&&N.setStyle({stroke:i(P/F)}),d.add(N)}if(x.get(\"show\")){var B=x.get(\"distance\")+T,O=AS(fa(P/F*(g-v)+v),x.get(\"formatter\")),z=i(P/F),W=k*(p-E-B)+f,L=R*(p-E-B)+h,j=x.get(\"rotate\"),H=0;j===\"radial\"?(H=-D+2*Math.PI,H>Math.PI/2&&(H+=Math.PI)):j===\"tangential\"?H=-D-Math.PI/2:nn(j)&&(H=j*Math.PI/180),H===0?d.add(new Jr({style:Mn(x,{text:O,x:W,y:L,verticalAlign:R<-.8?\"top\":R>.8?\"bottom\":\"middle\",align:k<-.4?\"left\":k>.4?\"right\":\"center\"},{inheritColor:z}),silent:!0})):d.add(new Jr({style:Mn(x,{text:O,x:W,y:L,verticalAlign:\"middle\",align:\"center\"},{inheritColor:z}),silent:!0,originX:W,originY:L,rotation:H}))}if(b.get(\"show\")&&P!==F){var B=b.get(\"distance\");B=B?B+c:c;for(var V=0;V<=S;V++){k=Math.cos(D),R=Math.sin(D);var U=new Xa({shape:{x1:k*(p-B)+f,y1:R*(p-B)+h,x2:k*(p-w-B)+f,y2:R*(p-w-B)+h},silent:!0,style:M});M.stroke===\"auto\"&&U.setStyle({stroke:i((P+V/S)/F)}),d.add(U),D+=_}D-=_}else D+=A}},t.prototype._renderPointer=function(r,n,a,i,o,l,s,u,c){var d=this.group,f=this._data,h=this._progressEls,p=[],v=r.get([\"pointer\",\"show\"]),g=r.getModel(\"progress\"),y=g.get(\"show\"),b=r.getData(),x=b.mapDimension(\"value\"),F=+r.get(\"min\"),S=+r.get(\"max\"),E=[F,S],w=[l,s];function D(_,I){var M=b.getItemModel(_),T=M.getModel(\"pointer\"),k=Ft(T.get(\"width\"),o.r),R=Ft(T.get(\"length\"),o.r),P=r.get([\"pointer\",\"icon\"]),B=T.get(\"offsetCenter\"),N=Ft(B[0],o.r),O=Ft(B[1],o.r),z=T.get(\"keepAspect\"),W;return P?W=_a(P,N-k/2,O-R,k,R,null,z):W=new d3t({shape:{angle:-Math.PI/2,width:k,r:R,x:N,y:O}}),W.rotation=-(I+Math.PI/2),W.x=o.cx,W.y=o.cy,W}function A(_,I){var M=g.get(\"roundCap\"),T=M?n4:So,k=g.get(\"overlap\"),R=k?g.get(\"width\"):c/b.count(),P=k?o.r-R:o.r-(_+1)*R,B=k?o.r:o.r-_*R,N=new T({shape:{startAngle:l,endAngle:I,cx:o.cx,cy:o.cy,clockwise:u,r0:P,r:B}});return k&&(N.z2=yn(b.get(x,_),[F,S],[100,0],!0)),N}(y||v)&&(b.diff(f).add(function(_){var I=b.get(x,_);if(v){var M=D(_,l);Yn(M,{rotation:-((isNaN(+I)?w[0]:yn(I,E,w,!0))+Math.PI/2)},r),d.add(M),b.setItemGraphicEl(_,M)}if(y){var T=A(_,l),k=g.get(\"clip\");Yn(T,{shape:{endAngle:yn(I,E,w,k)}},r),d.add(T),aP(r.seriesIndex,b.dataType,_,T),p[_]=T}}).update(function(_,I){var M=b.get(x,_);if(v){var T=f.getItemGraphicEl(I),k=T?T.rotation:l,R=D(_,k);R.rotation=k,cn(R,{rotation:-((isNaN(+M)?w[0]:yn(M,E,w,!0))+Math.PI/2)},r),d.add(R),b.setItemGraphicEl(_,R)}if(y){var P=h[I],B=P?P.shape.endAngle:l,N=A(_,B),O=g.get(\"clip\");cn(N,{shape:{endAngle:yn(M,E,w,O)}},r),d.add(N),aP(r.seriesIndex,b.dataType,_,N),p[_]=N}}).execute(),b.each(function(_){var I=b.getItemModel(_),M=I.getModel(\"emphasis\"),T=M.get(\"focus\"),k=M.get(\"blurScope\"),R=M.get(\"disabled\");if(v){var P=b.getItemGraphicEl(_),B=b.getItemVisual(_,\"style\"),N=B.fill;if(P instanceof yi){var O=P.style;P.useStyle(Xe({image:O.image,x:O.x,y:O.y,width:O.width,height:O.height},B))}else P.useStyle(B),P.type!==\"pointer\"&&P.setColor(N);P.setStyle(I.getModel([\"pointer\",\"itemStyle\"]).getItemStyle()),P.style.fill===\"auto\"&&P.setStyle(\"fill\",i(yn(b.get(x,_),E,[0,1],!0))),P.z2EmphasisLift=0,qi(P,I),sa(P,T,k,R)}if(y){var z=p[_];z.useStyle(b.getItemVisual(_,\"style\")),z.setStyle(I.getModel([\"progress\",\"itemStyle\"]).getItemStyle()),z.z2EmphasisLift=0,qi(z,I),sa(z,T,k,R)}}),this._progressEls=p)},t.prototype._renderAnchor=function(r,n){var a=r.getModel(\"anchor\"),i=a.get(\"show\");if(i){var o=a.get(\"size\"),l=a.get(\"icon\"),s=a.get(\"offsetCenter\"),u=a.get(\"keepAspect\"),c=_a(l,n.cx-o/2+Ft(s[0],n.r),n.cy-o/2+Ft(s[1],n.r),o,o,null,u);c.z2=a.get(\"showAbove\")?1:0,c.setStyle(a.getModel(\"itemStyle\").getItemStyle()),this.group.add(c)}},t.prototype._renderTitleAndDetail=function(r,n,a,i,o){var l=this,s=r.getData(),u=s.mapDimension(\"value\"),c=+r.get(\"min\"),d=+r.get(\"max\"),f=new pr,h=[],p=[],v=r.isAnimationEnabled(),g=r.get([\"pointer\",\"showAbove\"]);s.diff(this._data).add(function(y){h[y]=new Jr({silent:!0}),p[y]=new Jr({silent:!0})}).update(function(y,b){h[y]=l._titleEls[b],p[y]=l._detailEls[b]}).execute(),s.each(function(y){var b=s.getItemModel(y),x=s.get(u,y),F=new pr,S=i(yn(x,[c,d],[0,1],!0)),E=b.getModel(\"title\");if(E.get(\"show\")){var w=E.get(\"offsetCenter\"),D=o.cx+Ft(w[0],o.r),A=o.cy+Ft(w[1],o.r),_=h[y];_.attr({z2:g?0:2,style:Mn(E,{x:D,y:A,text:s.getName(y),align:\"center\",verticalAlign:\"middle\"},{inheritColor:S})}),F.add(_)}var I=b.getModel(\"detail\");if(I.get(\"show\")){var M=I.get(\"offsetCenter\"),T=o.cx+Ft(M[0],o.r),k=o.cy+Ft(M[1],o.r),R=Ft(I.get(\"width\"),o.r),P=Ft(I.get(\"height\"),o.r),B=r.get([\"progress\",\"show\"])?s.getItemVisual(y,\"style\").fill:S,_=p[y],N=I.get(\"formatter\");_.attr({z2:g?0:2,style:Mn(I,{x:T,y:k,text:AS(x,N),width:isNaN(R)?null:R,height:isNaN(P)?null:P,align:\"center\",verticalAlign:\"middle\"},{inheritColor:B})}),zpe(_,{normal:I},x,function(z){return AS(z,N)}),v&&Hpe(_,y,s,r,{getFormattedLabel:function(z,W,L,j,H,V){return AS(V?V.interpolatedValue:x,N)}}),F.add(_)}f.add(F)}),this.group.add(f),this._titleEls=h,this._detailEls=p},t.type=\"gauge\",t}(Cn),p3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.visualStyleAccessPath=\"itemStyle\",r}return t.prototype.getInitialData=function(r,n){return s1(this,[\"value\"])},t.type=\"series.gauge\",t.defaultOption={z:2,colorBy:\"data\",center:[\"50%\",\"50%\"],legendHoverLink:!0,radius:\"75%\",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,\"#E6EBF8\"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:\"#63677A\",width:3,type:\"solid\"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:\"#63677A\",width:1,type:\"solid\"}},axisLabel:{show:!0,distance:15,color:\"#464646\",fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:\"60%\",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:\"circle\",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:\"#fff\",borderWidth:0,borderColor:\"#5470c6\"}},title:{show:!0,offsetCenter:[0,\"20%\"],color:\"#464646\",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:\"rgba(0,0,0,0)\",borderWidth:0,borderColor:\"#ccc\",width:100,height:null,padding:[5,10],offsetCenter:[0,\"40%\"],color:\"#464646\",fontSize:30,fontWeight:\"bold\",lineHeight:30,valueAnimation:!1}},t}(_n);function m3t(e){e.registerChartView(h3t),e.registerSeriesModel(p3t)}var v3t=[\"itemStyle\",\"opacity\"],g3t=function(e){Re(t,e);function t(r,n){var a=e.call(this)||this,i=a,o=new To,l=new Jr;return i.setTextContent(l),a.setTextGuideLine(o),a.updateData(r,n,!0),a}return t.prototype.updateData=function(r,n,a){var i=this,o=r.hostModel,l=r.getItemModel(n),s=r.getItemLayout(n),u=l.getModel(\"emphasis\"),c=l.get(v3t);c=c??1,a||Su(i),i.useStyle(r.getItemVisual(n,\"style\")),i.style.lineJoin=\"round\",a?(i.setShape({points:s.points}),i.style.opacity=0,Yn(i,{style:{opacity:c}},o,n)):cn(i,{style:{opacity:c},shape:{points:s.points}},o,n),qi(i,l),this._updateLabel(r,n),sa(this,u.get(\"focus\"),u.get(\"blurScope\"),u.get(\"disabled\"))},t.prototype._updateLabel=function(r,n){var a=this,i=this.getTextGuideLine(),o=a.getTextContent(),l=r.hostModel,s=r.getItemModel(n),u=r.getItemLayout(n),c=u.label,d=r.getItemVisual(n,\"style\"),f=d.fill;Xi(o,vi(s),{labelFetcher:r.hostModel,labelDataIndex:n,defaultOpacity:d.opacity,defaultText:r.getName(n)},{normal:{align:c.textAlign,verticalAlign:c.verticalAlign}}),a.setTextConfig({local:!0,inside:!!c.inside,insideStroke:f,outsideFill:f});var h=c.linePoints;i.setShape({points:h}),a.textGuideLineConfig={anchor:h?new Ar(h[0][0],h[0][1]):null},cn(o,{style:{x:c.x,y:c.y}},l,n),o.attr({rotation:c.rotation,originX:c.x,originY:c.y,z2:10}),i$(a,o$(s),{stroke:f})},t}(wo),y3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.ignoreLabelLineUpdate=!0,r}return t.prototype.render=function(r,n,a){var i=r.getData(),o=this._data,l=this.group;i.diff(o).add(function(s){var u=new g3t(i,s);i.setItemGraphicEl(s,u),l.add(u)}).update(function(s,u){var c=o.getItemGraphicEl(u);c.updateData(i,s),l.add(c),i.setItemGraphicEl(s,c)}).remove(function(s){var u=o.getItemGraphicEl(s);k2(u,r,s)}).execute(),this._data=i},t.prototype.remove=function(){this.group.removeAll(),this._data=null},t.prototype.dispose=function(){},t.type=\"funnel\",t}(Cn),b3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new pC(Pt(this.getData,this),Pt(this.getRawData,this)),this._defaultLabelLine(r)},t.prototype.getInitialData=function(r,n){return s1(this,{coordDimensions:[\"value\"],encodeDefaulter:wr(MN,this)})},t.prototype._defaultLabelLine=function(r){nm(r,\"labelLine\",[\"show\"]);var n=r.labelLine,a=r.emphasis.labelLine;n.show=n.show&&r.label.show,a.show=a.show&&r.emphasis.label.show},t.prototype.getDataParams=function(r){var n=this.getData(),a=e.prototype.getDataParams.call(this,r),i=n.mapDimension(\"value\"),o=n.getSum(i);return a.percent=o?+(n.get(i,r)/o*100).toFixed(2):0,a.$vars.push(\"percent\"),a},t.type=\"series.funnel\",t.defaultOption={z:2,legendHoverLink:!0,colorBy:\"data\",left:80,top:60,right:80,bottom:60,minSize:\"0%\",maxSize:\"100%\",sort:\"descending\",orient:\"vertical\",gap:0,funnelAlign:\"center\",label:{show:!0,position:\"outer\"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:\"#fff\",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:\"#212121\"}}},t}(_n);function x3t(e,t){return Na(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function C3t(e,t){for(var r=e.mapDimension(\"value\"),n=e.mapArray(r,function(s){return s}),a=[],i=t===\"ascending\",o=0,l=e.count();o<l;o++)a[o]=o;return er(t)?a.sort(t):t!==\"none\"&&a.sort(function(s,u){return i?n[s]-n[u]:n[u]-n[s]}),a}function F3t(e){var t=e.hostModel,r=t.get(\"orient\");e.each(function(n){var a=e.getItemModel(n),i=a.getModel(\"label\"),o=i.get(\"position\"),l=a.getModel(\"labelLine\"),s=e.getItemLayout(n),u=s.points,c=o===\"inner\"||o===\"inside\"||o===\"center\"||o===\"insideLeft\"||o===\"insideRight\",d,f,h,p;if(c)o===\"insideLeft\"?(f=(u[0][0]+u[3][0])/2+5,h=(u[0][1]+u[3][1])/2,d=\"left\"):o===\"insideRight\"?(f=(u[1][0]+u[2][0])/2-5,h=(u[1][1]+u[2][1])/2,d=\"right\"):(f=(u[0][0]+u[1][0]+u[2][0]+u[3][0])/4,h=(u[0][1]+u[1][1]+u[2][1]+u[3][1])/4,d=\"center\"),p=[[f,h],[f,h]];else{var v=void 0,g=void 0,y=void 0,b=void 0,x=l.get(\"length\");o===\"left\"?(v=(u[3][0]+u[0][0])/2,g=(u[3][1]+u[0][1])/2,y=v-x,f=y-5,d=\"right\"):o===\"right\"?(v=(u[1][0]+u[2][0])/2,g=(u[1][1]+u[2][1])/2,y=v+x,f=y+5,d=\"left\"):o===\"top\"?(v=(u[3][0]+u[0][0])/2,g=(u[3][1]+u[0][1])/2,b=g-x,h=b-5,d=\"center\"):o===\"bottom\"?(v=(u[1][0]+u[2][0])/2,g=(u[1][1]+u[2][1])/2,b=g+x,h=b+5,d=\"center\"):o===\"rightTop\"?(v=r===\"horizontal\"?u[3][0]:u[1][0],g=r===\"horizontal\"?u[3][1]:u[1][1],r===\"horizontal\"?(b=g-x,h=b-5,d=\"center\"):(y=v+x,f=y+5,d=\"top\")):o===\"rightBottom\"?(v=u[2][0],g=u[2][1],r===\"horizontal\"?(b=g+x,h=b+5,d=\"center\"):(y=v+x,f=y+5,d=\"bottom\")):o===\"leftTop\"?(v=u[0][0],g=r===\"horizontal\"?u[0][1]:u[1][1],r===\"horizontal\"?(b=g-x,h=b-5,d=\"center\"):(y=v-x,f=y-5,d=\"right\")):o===\"leftBottom\"?(v=r===\"horizontal\"?u[1][0]:u[3][0],g=r===\"horizontal\"?u[1][1]:u[2][1],r===\"horizontal\"?(b=g+x,h=b+5,d=\"center\"):(y=v-x,f=y-5,d=\"right\")):(v=(u[1][0]+u[2][0])/2,g=(u[1][1]+u[2][1])/2,r===\"horizontal\"?(b=g+x,h=b+5,d=\"center\"):(y=v+x,f=y+5,d=\"left\")),r===\"horizontal\"?(y=v,f=y):(b=g,h=b),p=[[v,g],[y,b]]}s.label={linePoints:p,x:f,y:h,verticalAlign:\"middle\",textAlign:d,inside:c}})}function S3t(e,t){e.eachSeriesByType(\"funnel\",function(r){var n=r.getData(),a=n.mapDimension(\"value\"),i=r.get(\"sort\"),o=x3t(r,t),l=r.get(\"orient\"),s=o.width,u=o.height,c=C3t(n,i),d=o.x,f=o.y,h=l===\"horizontal\"?[Ft(r.get(\"minSize\"),u),Ft(r.get(\"maxSize\"),u)]:[Ft(r.get(\"minSize\"),s),Ft(r.get(\"maxSize\"),s)],p=n.getDataExtent(a),v=r.get(\"min\"),g=r.get(\"max\");v==null&&(v=Math.min(p[0],0)),g==null&&(g=p[1]);var y=r.get(\"funnelAlign\"),b=r.get(\"gap\"),x=l===\"horizontal\"?s:u,F=(x-b*(n.count()-1))/n.count(),S=function(k,R){if(l===\"horizontal\"){var P=n.get(a,k)||0,B=yn(P,[v,g],h,!0),N=void 0;switch(y){case\"top\":N=f;break;case\"center\":N=f+(u-B)/2;break;case\"bottom\":N=f+(u-B);break}return[[R,N],[R,N+B]]}var O=n.get(a,k)||0,z=yn(O,[v,g],h,!0),W;switch(y){case\"left\":W=d;break;case\"center\":W=d+(s-z)/2;break;case\"right\":W=d+s-z;break}return[[W,R],[W+z,R]]};i===\"ascending\"&&(F=-F,b=-b,l===\"horizontal\"?d+=s:f+=u,c=c.reverse());for(var E=0;E<c.length;E++){var w=c[E],D=c[E+1],A=n.getItemModel(w);if(l===\"horizontal\"){var _=A.get([\"itemStyle\",\"width\"]);_==null?_=F:(_=Ft(_,s),i===\"ascending\"&&(_=-_));var I=S(w,d),M=S(D,d+_);d+=_+b,n.setItemLayout(w,{points:I.concat(M.slice().reverse())})}else{var T=A.get([\"itemStyle\",\"height\"]);T==null?T=F:(T=Ft(T,u),i===\"ascending\"&&(T=-T));var I=S(w,f),M=S(D,f+T);f+=T+b,n.setItemLayout(w,{points:I.concat(M.slice().reverse())})}}F3t(n)})}function w3t(e){e.registerChartView(y3t),e.registerSeriesModel(b3t),e.registerLayout(S3t),e.registerProcessor(hC(\"funnel\"))}var E3t=.3,D3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._dataGroup=new pr,r._initialized=!1,r}return t.prototype.init=function(){this.group.add(this._dataGroup)},t.prototype.render=function(r,n,a,i){this._progressiveEls=null;var o=this._dataGroup,l=r.getData(),s=this._data,u=r.coordinateSystem,c=u.dimensions,d=HJ(r);l.diff(s).add(f).update(h).remove(p).execute();function f(g){var y=zJ(l,o,g,c,u);KI(y,l,g,d)}function h(g,y){var b=s.getItemGraphicEl(y),x=pge(l,g,c,u);l.setItemGraphicEl(g,b),cn(b,{shape:{points:x}},r,g),Su(b),KI(b,l,g,d)}function p(g){var y=s.getItemGraphicEl(g);o.remove(y)}if(!this._initialized){this._initialized=!0;var v=A3t(u,r,function(){setTimeout(function(){o.removeClipPath()})});o.setClipPath(v)}this._data=l},t.prototype.incrementalPrepareRender=function(r,n,a){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},t.prototype.incrementalRender=function(r,n,a){for(var i=n.getData(),o=n.coordinateSystem,l=o.dimensions,s=HJ(n),u=this._progressiveEls=[],c=r.start;c<r.end;c++){var d=zJ(i,this._dataGroup,c,l,o);d.incremental=!0,KI(d,i,c,s),u.push(d)}},t.prototype.remove=function(){this._dataGroup&&this._dataGroup.removeAll(),this._data=null},t.type=\"parallel\",t}(Cn);function A3t(e,t,r){var n=e.model,a=e.getRect(),i=new Zr({shape:{x:a.x,y:a.y,width:a.width,height:a.height}}),o=n.get(\"layout\")===\"horizontal\"?\"width\":\"height\";return i.setShape(o,0),Yn(i,{shape:{width:a.width,height:a.height}},t,r),i}function pge(e,t,r,n){for(var a=[],i=0;i<r.length;i++){var o=r[i],l=e.get(e.mapDimension(o),t);_3t(l,n.getAxis(o).type)||a.push(n.dataToPoint(l,o))}return a}function zJ(e,t,r,n,a){var i=pge(e,r,n,a),o=new To({shape:{points:i},z2:10});return t.add(o),e.setItemGraphicEl(r,o),o}function HJ(e){var t=e.get(\"smooth\",!0);return t===!0&&(t=E3t),t=vc(t),rg(t)&&(t=0),{smooth:t}}function KI(e,t,r,n){e.useStyle(t.getItemVisual(r,\"style\")),e.style.fill=null,e.setShape(\"smooth\",n.smooth);var a=t.getItemModel(r),i=a.getModel(\"emphasis\");qi(e,a,\"lineStyle\"),sa(e,i.get(\"focus\"),i.get(\"blurScope\"),i.get(\"disabled\"))}function _3t(e,t){return t===\"category\"?e==null:e==null||isNaN(e)}var T3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.visualStyleAccessPath=\"lineStyle\",r.visualDrawType=\"stroke\",r}return t.prototype.getInitialData=function(r,n){return wc(null,this,{useEncodeDefaulter:Pt(I3t,null,this)})},t.prototype.getRawIndicesByActiveState=function(r){var n=this.coordinateSystem,a=this.getData(),i=[];return n.eachActiveState(a,function(o,l){r===o&&i.push(a.getRawIndex(l))}),i},t.type=\"series.parallel\",t.dependencies=[\"parallel\"],t.defaultOption={z:2,coordinateSystem:\"parallel\",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:\"solid\"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:\"linear\"},t}(_n);function I3t(e){var t=e.ecModel.getComponent(\"parallel\",e.get(\"parallelIndex\"));if(t){var r={};return q(t.dimensions,function(n){var a=k3t(n);r[n]=a}),r}}function k3t(e){return+e.replace(\"dim\",\"\")}var R3t=[\"lineStyle\",\"opacity\"],M3t={seriesType:\"parallel\",reset:function(e,t){var r=e.coordinateSystem,n={normal:e.get([\"lineStyle\",\"opacity\"]),active:e.get(\"activeOpacity\"),inactive:e.get(\"inactiveOpacity\")};return{progress:function(a,i){r.eachActiveState(i,function(o,l){var s=n[o];if(o===\"normal\"&&i.hasItemOption){var u=i.getItemModel(l).get(R3t,!0);u!=null&&(s=u)}var c=i.ensureUniqueItemVisual(l,\"style\");c.opacity=s},a.start,a.end)}}}};function P3t(e){O3t(e),B3t(e)}function O3t(e){if(!e.parallel){var t=!1;q(e.series,function(r){r&&r.type===\"parallel\"&&(t=!0)}),t&&(e.parallel=[{}])}}function B3t(e){var t=An(e.parallelAxis);q(t,function(r){if(ir(r)){var n=r.parallelIndex||0,a=An(e.parallel)[n];a&&a.parallelAxisDefault&&Er(r,a.parallelAxisDefault,!1)}})}var N3t=5,$3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){this._model=r,this._api=a,this._handlers||(this._handlers={},q(L3t,function(i,o){a.getZr().on(o,this._handlers[o]=Pt(i,this))},this)),n1(this,\"_throttledDispatchExpand\",r.get(\"axisExpandRate\"),\"fixRate\")},t.prototype.dispose=function(r,n){O2(this,\"_throttledDispatchExpand\"),q(this._handlers,function(a,i){n.getZr().off(i,a)}),this._handlers=null},t.prototype._throttledDispatchExpand=function(r){this._dispatchExpand(r)},t.prototype._dispatchExpand=function(r){r&&this._api.dispatchAction(Xe({type:\"parallelAxisExpand\"},r))},t.type=\"parallel\",t}(Wn),L3t={mousedown:function(e){YI(this,\"click\")&&(this._mouseDownPoint=[e.offsetX,e.offsetY])},mouseup:function(e){var t=this._mouseDownPoint;if(YI(this,\"click\")&&t){var r=[e.offsetX,e.offsetY],n=Math.pow(t[0]-r[0],2)+Math.pow(t[1]-r[1],2);if(n>N3t)return;var a=this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]);a.behavior!==\"none\"&&this._dispatchExpand({axisExpandWindow:a.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(e){if(!(this._mouseDownPoint||!YI(this,\"mousemove\"))){var t=this._model,r=t.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]),n=r.behavior;n===\"jump\"&&this._throttledDispatchExpand.debounceNextCall(t.get(\"axisExpandDebounce\")),this._throttledDispatchExpand(n===\"none\"?null:{axisExpandWindow:r.axisExpandWindow,animation:n===\"jump\"?null:{duration:0}})}}};function YI(e,t){var r=e._model;return r.get(\"axisExpandable\")&&r.get(\"axisExpandTriggerOn\")===t}var j3t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(){e.prototype.init.apply(this,arguments),this.mergeOption({})},t.prototype.mergeOption=function(r){var n=this.option;r&&Er(n,r,!0),this._initDimensions()},t.prototype.contains=function(r,n){var a=r.get(\"parallelIndex\");return a!=null&&n.getComponent(\"parallel\",a)===this},t.prototype.setAxisExpand=function(r){q([\"axisExpandable\",\"axisExpandCenter\",\"axisExpandCount\",\"axisExpandWidth\",\"axisExpandWindow\"],function(n){r.hasOwnProperty(n)&&(this.option[n]=r[n])},this)},t.prototype._initDimensions=function(){var r=this.dimensions=[],n=this.parallelAxisIndex=[],a=hn(this.ecModel.queryComponents({mainType:\"parallelAxis\"}),function(i){return(i.get(\"parallelIndex\")||0)===this.componentIndex},this);q(a,function(i){r.push(\"dim\"+i.get(\"dim\")),n.push(i.componentIndex)})},t.type=\"parallel\",t.dependencies=[\"parallelAxis\"],t.layoutMode=\"box\",t.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:\"horizontal\",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:\"click\",parallelAxisDefault:null},t}(jr),z3t=function(e){Re(t,e);function t(r,n,a,i,o){var l=e.call(this,r,n,a)||this;return l.type=i||\"value\",l.axisIndex=o,l}return t.prototype.isHorizontal=function(){return this.coordinateSystem.getModel().get(\"layout\")!==\"horizontal\"},t}(Bs);function Vm(e,t,r,n,a,i){e=e||0;var o=r[1]-r[0];if(a!=null&&(a=Dv(a,[0,o])),i!=null&&(i=Math.max(i,a??0)),n===\"all\"){var l=Math.abs(t[1]-t[0]);l=Dv(l,[0,o]),a=i=Dv(l,[a,i]),n=0}t[0]=Dv(t[0],r),t[1]=Dv(t[1],r);var s=qI(t,n);t[n]+=e;var u=a||0,c=r.slice();s.sign<0?c[0]+=u:c[1]-=u,t[n]=Dv(t[n],c);var d;return d=qI(t,n),a!=null&&(d.sign!==s.sign||d.span<a)&&(t[1-n]=t[n]+s.sign*a),d=qI(t,n),i!=null&&d.span>i&&(t[1-n]=t[n]+d.sign*i),t}function qI(e,t){var r=e[t]-e[1-t];return{span:Math.abs(r),sign:r>0?-1:r<0?1:t?-1:1}}function Dv(e,t){return Math.min(t[1]!=null?t[1]:1/0,Math.max(t[0]!=null?t[0]:-1/0,e))}var XI=q,mge=Math.min,vge=Math.max,VJ=Math.floor,H3t=Math.ceil,WJ=fa,V3t=Math.PI,W3t=function(){function e(t,r,n){this.type=\"parallel\",this._axesMap=Gt(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,r,n)}return e.prototype._init=function(t,r,n){var a=t.dimensions,i=t.parallelAxisIndex;XI(a,function(o,l){var s=i[l],u=r.getComponent(\"parallelAxis\",s),c=this._axesMap.set(o,new z3t(o,sC(u),[0,0],u.get(\"type\"),s)),d=c.type===\"category\";c.onBand=d&&u.get(\"boundaryGap\"),c.inverse=u.get(\"inverse\"),u.axis=c,c.model=u,c.coordinateSystem=u.coordinateSystem=this},this)},e.prototype.update=function(t,r){this._updateAxesFromSeries(this._model,t)},e.prototype.containPoint=function(t){var r=this._makeLayoutInfo(),n=r.axisBase,a=r.layoutBase,i=r.pixelDimIndex,o=t[1-i],l=t[i];return o>=n&&o<=n+r.axisLength&&l>=a&&l<=a+r.layoutLength},e.prototype.getModel=function(){return this._model},e.prototype._updateAxesFromSeries=function(t,r){r.eachSeries(function(n){if(t.contains(n,r)){var a=n.getData();XI(this.dimensions,function(i){var o=this._axesMap.get(i);o.scale.unionExtentFromData(a,a.mapDimension(i)),sm(o.scale,o.model)},this)}},this)},e.prototype.resize=function(t,r){this._rect=Na(t.getBoxLayoutParams(),{width:r.getWidth(),height:r.getHeight()}),this._layoutAxes()},e.prototype.getRect=function(){return this._rect},e.prototype._makeLayoutInfo=function(){var t=this._model,r=this._rect,n=[\"x\",\"y\"],a=[\"width\",\"height\"],i=t.get(\"layout\"),o=i===\"horizontal\"?0:1,l=r[a[o]],s=[0,l],u=this.dimensions.length,c=_S(t.get(\"axisExpandWidth\"),s),d=_S(t.get(\"axisExpandCount\")||0,[0,u]),f=t.get(\"axisExpandable\")&&u>3&&u>d&&d>1&&c>0&&l>0,h=t.get(\"axisExpandWindow\"),p;if(h)p=_S(h[1]-h[0],s),h[1]=h[0]+p;else{p=_S(c*(d-1),s);var v=t.get(\"axisExpandCenter\")||VJ(u/2);h=[c*v-p/2],h[1]=h[0]+p}var g=(l-p)/(u-d);g<3&&(g=0);var y=[VJ(WJ(h[0]/c,1))+1,H3t(WJ(h[1]/c,1))-1],b=g/c*h[0];return{layout:i,pixelDimIndex:o,layoutBase:r[n[o]],layoutLength:l,axisBase:r[n[1-o]],axisLength:r[a[1-o]],axisExpandable:f,axisExpandWidth:c,axisCollapseWidth:g,axisExpandWindow:h,axisCount:u,winInnerIndices:y,axisExpandWindow0Pos:b}},e.prototype._layoutAxes=function(){var t=this._rect,r=this._axesMap,n=this.dimensions,a=this._makeLayoutInfo(),i=a.layout;r.each(function(o){var l=[0,a.axisLength],s=o.inverse?1:0;o.setExtent(l[s],l[1-s])}),XI(n,function(o,l){var s=(a.axisExpandable?U3t:G3t)(l,a),u={horizontal:{x:s.position,y:a.axisLength},vertical:{x:0,y:s.position}},c={horizontal:V3t/2,vertical:0},d=[u[i].x+t.x,u[i].y+t.y],f=c[i],h=hl();lh(h,h,f),Cu(h,h,d),this._axesLayout[o]={position:d,rotation:f,transform:h,axisNameAvailableWidth:s.axisNameAvailableWidth,axisLabelShow:s.axisLabelShow,nameTruncateMaxWidth:s.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},e.prototype.getAxis=function(t){return this._axesMap.get(t)},e.prototype.dataToPoint=function(t,r){return this.axisCoordToPoint(this._axesMap.get(r).dataToCoord(t),r)},e.prototype.eachActiveState=function(t,r,n,a){n==null&&(n=0),a==null&&(a=t.count());var i=this._axesMap,o=this.dimensions,l=[],s=[];q(o,function(g){l.push(t.mapDimension(g)),s.push(i.get(g).model)});for(var u=this.hasAxisBrushed(),c=n;c<a;c++){var d=void 0;if(!u)d=\"normal\";else{d=\"active\";for(var f=t.getValues(l,c),h=0,p=o.length;h<p;h++){var v=s[h].getActiveState(f[h]);if(v===\"inactive\"){d=\"inactive\";break}}}r(d,c)}},e.prototype.hasAxisBrushed=function(){for(var t=this.dimensions,r=this._axesMap,n=!1,a=0,i=t.length;a<i;a++)r.get(t[a]).model.getActiveState()!==\"normal\"&&(n=!0);return n},e.prototype.axisCoordToPoint=function(t,r){var n=this._axesLayout[r];return hu([t,0],n.transform)},e.prototype.getAxisLayout=function(t){return lr(this._axesLayout[t])},e.prototype.getSlidedAxisExpandWindow=function(t){var r=this._makeLayoutInfo(),n=r.pixelDimIndex,a=r.axisExpandWindow.slice(),i=a[1]-a[0],o=[0,r.axisExpandWidth*(r.axisCount-1)];if(!this.containPoint(t))return{behavior:\"none\",axisExpandWindow:a};var l=t[n]-r.layoutBase-r.axisExpandWindow0Pos,s,u=\"slide\",c=r.axisCollapseWidth,d=this._model.get(\"axisExpandSlideTriggerArea\"),f=d[0]!=null;if(c)f&&c&&l<i*d[0]?(u=\"jump\",s=l-i*d[2]):f&&c&&l>i*(1-d[0])?(u=\"jump\",s=l-i*(1-d[2])):(s=l-i*d[1])>=0&&(s=l-i*(1-d[1]))<=0&&(s=0),s*=r.axisExpandWidth/c,s?Vm(s,a,o,\"all\"):u=\"none\";else{var h=a[1]-a[0],p=o[1]*l/h;a=[vge(0,p-h/2)],a[1]=mge(o[1],a[0]+h),a[0]=a[1]-h}return{axisExpandWindow:a,behavior:u}},e}();function _S(e,t){return mge(vge(e,t[0]),t[1])}function G3t(e,t){var r=t.layoutLength/(t.axisCount-1);return{position:r*e,axisNameAvailableWidth:r,axisLabelShow:!0}}function U3t(e,t){var r=t.layoutLength,n=t.axisExpandWidth,a=t.axisCount,i=t.axisCollapseWidth,o=t.winInnerIndices,l,s=i,u=!1,c;return e<o[0]?(l=e*i,c=i):e<=o[1]?(l=t.axisExpandWindow0Pos+e*n-t.axisExpandWindow[0],s=n,u=!0):(l=r-(a-1-e)*i,c=i),{position:l,axisNameAvailableWidth:s,axisLabelShow:u,nameTruncateMaxWidth:c}}function K3t(e,t){var r=[];return e.eachComponent(\"parallel\",function(n,a){var i=new W3t(n,e,t);i.name=\"parallel_\"+a,i.resize(n,t),n.coordinateSystem=i,i.model=n,r.push(i)}),e.eachSeries(function(n){if(n.get(\"coordinateSystem\")===\"parallel\"){var a=n.getReferringComponents(\"parallel\",Oa).models[0];n.coordinateSystem=a.coordinateSystem}}),r}var Y3t={create:K3t},qP=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.activeIntervals=[],r}return t.prototype.getAreaSelectStyle=function(){return im([[\"fill\",\"color\"],[\"lineWidth\",\"borderWidth\"],[\"stroke\",\"borderColor\"],[\"width\",\"width\"],[\"opacity\",\"opacity\"]])(this.getModel(\"areaSelectStyle\"))},t.prototype.setActiveIntervals=function(r){var n=this.activeIntervals=lr(r);if(n)for(var a=n.length-1;a>=0;a--)Ml(n[a])},t.prototype.getActiveState=function(r){var n=this.activeIntervals;if(!n.length)return\"normal\";if(r==null||isNaN(+r))return\"inactive\";if(n.length===1){var a=n[0];if(a[0]<=r&&r<=a[1])return\"active\"}else for(var i=0,o=n.length;i<o;i++)if(n[i][0]<=r&&r<=n[i][1])return\"active\";return\"inactive\"},t}(jr);Ca(qP,l1);var um=!0,K2=Math.min,dg=Math.max,q3t=Math.pow,X3t=1e4,J3t=6,Z3t=6,GJ=\"globalPan\",Q3t={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},e4t={w:\"ew\",e:\"ew\",n:\"ns\",s:\"ns\",ne:\"nesw\",sw:\"nesw\",nw:\"nwse\",se:\"nwse\"},UJ={brushStyle:{lineWidth:2,stroke:\"rgba(210,219,238,0.3)\",fill:\"#D2DBEE\"},transformable:!0,brushMode:\"single\",removeOnClick:!1},t4t=0,T$=function(e){Re(t,e);function t(r){var n=e.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=r,n.group=new pr,n._uid=\"brushController_\"+t4t++,q(s4t,function(a,i){this._handlers[i]=Pt(a,this)},n),n}return t.prototype.enableBrush=function(r){return this._brushType&&this._doDisableBrush(),r.brushType&&this._doEnableBrush(r),this},t.prototype._doEnableBrush=function(r){var n=this._zr;this._enableGlobalPan||GSt(n,GJ,this._uid),q(this._handlers,function(a,i){n.on(i,a)}),this._brushType=r.brushType,this._brushOption=Er(lr(UJ),r,!0)},t.prototype._doDisableBrush=function(){var r=this._zr;USt(r,GJ,this._uid),q(this._handlers,function(n,a){r.off(a,n)}),this._brushType=this._brushOption=null},t.prototype.setPanels=function(r){if(r&&r.length){var n=this._panels={};q(r,function(a){n[a.panelId]=lr(a)})}else this._panels=null;return this},t.prototype.mount=function(r){r=r||{},this._enableGlobalPan=r.enableGlobalPan;var n=this.group;return this._zr.add(n),n.attr({x:r.x||0,y:r.y||0,rotation:r.rotation||0,scaleX:r.scaleX||1,scaleY:r.scaleY||1}),this._transform=n.getLocalTransform(),this},t.prototype.updateCovers=function(r){r=ot(r,function(f){return Er(lr(UJ),f,!0)});var n=\"\\0-brush-index-\",a=this._covers,i=this._covers=[],o=this,l=this._creatingCover;return new pd(a,r,u,s).add(c).update(c).remove(d).execute(),this;function s(f,h){return(f.id!=null?f.id:n+h)+\"-\"+f.brushType}function u(f,h){return s(f.__brushOption,h)}function c(f,h){var p=r[f];if(h!=null&&a[h]===l)i[f]=a[h];else{var v=i[f]=h!=null?(a[h].__brushOption=p,a[h]):yge(o,gge(o,p));I$(o,v)}}function d(f){a[f]!==l&&o.group.remove(a[f])}},t.prototype.unmount=function(){return this.enableBrush(!1),XP(this),this._zr.remove(this.group),this},t.prototype.dispose=function(){this.unmount(),this.off()},t}(Rs);function gge(e,t){var r=FA[t.brushType].createCover(e,t);return r.__brushOption=t,xge(r,t),e.group.add(r),r}function yge(e,t){var r=k$(t);return r.endCreating&&(r.endCreating(e,t),xge(t,t.__brushOption)),t}function bge(e,t){var r=t.__brushOption;k$(t).updateCoverShape(e,t,r.range,r)}function xge(e,t){var r=t.z;r==null&&(r=X3t),e.traverse(function(n){n.z=r,n.z2=r})}function I$(e,t){k$(t).updateCommon(e,t),bge(e,t)}function k$(e){return FA[e.__brushOption.brushType]}function R$(e,t,r){var n=e._panels;if(!n)return um;var a,i=e._transform;return q(n,function(o){o.isTargetByCursor(t,r,i)&&(a=o)}),a}function Cge(e,t){var r=e._panels;if(!r)return um;var n=t.__brushOption.panelId;return n!=null?r[n]:um}function XP(e){var t=e._covers,r=t.length;return q(t,function(n){e.group.remove(n)},e),t.length=0,!!r}function cm(e,t){var r=ot(e._covers,function(n){var a=n.__brushOption,i=lr(a.range);return{brushType:a.brushType,panelId:a.panelId,range:i}});e.trigger(\"brush\",{areas:r,isEnd:!!t.isEnd,removeOnClick:!!t.removeOnClick})}function r4t(e){var t=e._track;if(!t.length)return!1;var r=t[t.length-1],n=t[0],a=r[0]-n[0],i=r[1]-n[1],o=q3t(a*a+i*i,.5);return o>J3t}function Fge(e){var t=e.length-1;return t<0&&(t=0),[e[0],e[t]]}function Sge(e,t,r,n){var a=new pr;return a.add(new Zr({name:\"main\",style:M$(r),silent:!0,draggable:!0,cursor:\"move\",drift:wr(KJ,e,t,a,[\"n\",\"s\",\"w\",\"e\"]),ondragend:wr(cm,t,{isEnd:!0})})),q(n,function(i){a.add(new Zr({name:i.join(\"\"),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:wr(KJ,e,t,a,i),ondragend:wr(cm,t,{isEnd:!0})}))}),a}function wge(e,t,r,n){var a=n.brushStyle.lineWidth||0,i=dg(a,Z3t),o=r[0][0],l=r[1][0],s=o-a/2,u=l-a/2,c=r[0][1],d=r[1][1],f=c-i+a/2,h=d-i+a/2,p=c-o,v=d-l,g=p+a,y=v+a;Ic(e,t,\"main\",o,l,p,v),n.transformable&&(Ic(e,t,\"w\",s,u,i,y),Ic(e,t,\"e\",f,u,i,y),Ic(e,t,\"n\",s,u,g,i),Ic(e,t,\"s\",s,h,g,i),Ic(e,t,\"nw\",s,u,i,i),Ic(e,t,\"ne\",f,u,i,i),Ic(e,t,\"sw\",s,h,i,i),Ic(e,t,\"se\",f,h,i,i))}function JP(e,t){var r=t.__brushOption,n=r.transformable,a=t.childAt(0);a.useStyle(M$(r)),a.attr({silent:!n,cursor:n?\"move\":\"default\"}),q([[\"w\"],[\"e\"],[\"n\"],[\"s\"],[\"s\",\"e\"],[\"s\",\"w\"],[\"n\",\"e\"],[\"n\",\"w\"]],function(i){var o=t.childOfName(i.join(\"\")),l=i.length===1?ZP(e,i[0]):a4t(e,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?e4t[l]+\"-resize\":null})})}function Ic(e,t,r,n,a,i,o){var l=t.childOfName(r);l&&l.setShape(o4t(P$(e,t,[[n,a],[n+i,a+o]])))}function M$(e){return rr({strokeNoScale:!0},e.brushStyle)}function Ege(e,t,r,n){var a=[K2(e,r),K2(t,n)],i=[dg(e,r),dg(t,n)];return[[a[0],i[0]],[a[1],i[1]]]}function n4t(e){return kf(e.group)}function ZP(e,t){var r={w:\"left\",e:\"right\",n:\"top\",s:\"bottom\"},n={left:\"w\",right:\"e\",top:\"n\",bottom:\"s\"},a=eA(r[t],n4t(e));return n[a]}function a4t(e,t){var r=[ZP(e,t[0]),ZP(e,t[1])];return(r[0]===\"e\"||r[0]===\"w\")&&r.reverse(),r.join(\"\")}function KJ(e,t,r,n,a,i){var o=r.__brushOption,l=e.toRectRange(o.range),s=Dge(t,a,i);q(n,function(u){var c=Q3t[u];l[c[0]][c[1]]+=s[c[0]]}),o.range=e.fromRectRange(Ege(l[0][0],l[1][0],l[0][1],l[1][1])),I$(t,r),cm(t,{isEnd:!1})}function i4t(e,t,r,n){var a=t.__brushOption.range,i=Dge(e,r,n);q(a,function(o){o[0]+=i[0],o[1]+=i[1]}),I$(e,t),cm(e,{isEnd:!1})}function Dge(e,t,r){var n=e.group,a=n.transformCoordToLocal(t,r),i=n.transformCoordToLocal(0,0);return[a[0]-i[0],a[1]-i[1]]}function P$(e,t,r){var n=Cge(e,t);return n&&n!==um?n.clipPath(r,e._transform):lr(r)}function o4t(e){var t=K2(e[0][0],e[1][0]),r=K2(e[0][1],e[1][1]),n=dg(e[0][0],e[1][0]),a=dg(e[0][1],e[1][1]);return{x:t,y:r,width:n-t,height:a-r}}function l4t(e,t,r){if(!(!e._brushType||u4t(e,t.offsetX,t.offsetY))){var n=e._zr,a=e._covers,i=R$(e,t,r);if(!e._dragging)for(var o=0;o<a.length;o++){var l=a[o].__brushOption;if(i&&(i===um||l.panelId===i.panelId)&&FA[l.brushType].contain(a[o],r[0],r[1]))return}i&&n.setCursorStyle(\"crosshair\")}}function QP(e){var t=e.event;t.preventDefault&&t.preventDefault()}function e9(e,t,r){return e.childOfName(\"main\").contain(t,r)}function Age(e,t,r,n){var a=e._creatingCover,i=e._creatingPanel,o=e._brushOption,l;if(e._track.push(r.slice()),r4t(e)||a){if(i&&!a){o.brushMode===\"single\"&&XP(e);var s=lr(o);s.brushType=YJ(s.brushType,i),s.panelId=i===um?null:i.panelId,a=e._creatingCover=gge(e,s),e._covers.push(a)}if(a){var u=FA[YJ(e._brushType,i)],c=a.__brushOption;c.range=u.getCreatingRange(P$(e,a,e._track)),n&&(yge(e,a),u.updateCommon(e,a)),bge(e,a),l={isEnd:n}}}else n&&o.brushMode===\"single\"&&o.removeOnClick&&R$(e,t,r)&&XP(e)&&(l={isEnd:n,removeOnClick:!0});return l}function YJ(e,t){return e===\"auto\"?t.defaultBrushType:e}var s4t={mousedown:function(e){if(this._dragging)qJ(this,e);else if(!e.target||!e.target.draggable){QP(e);var t=this.group.transformCoordToLocal(e.offsetX,e.offsetY);this._creatingCover=null;var r=this._creatingPanel=R$(this,e,t);r&&(this._dragging=!0,this._track=[t.slice()])}},mousemove:function(e){var t=e.offsetX,r=e.offsetY,n=this.group.transformCoordToLocal(t,r);if(l4t(this,e,n),this._dragging){QP(e);var a=Age(this,e,n,!1);a&&cm(this,a)}},mouseup:function(e){qJ(this,e)}};function qJ(e,t){if(e._dragging){QP(t);var r=t.offsetX,n=t.offsetY,a=e.group.transformCoordToLocal(r,n),i=Age(e,t,a,!0);e._dragging=!1,e._track=[],e._creatingCover=null,i&&cm(e,i)}}function u4t(e,t,r){var n=e._zr;return t<0||t>n.getWidth()||r<0||r>n.getHeight()}var FA={lineX:XJ(0),lineY:XJ(1),rect:{createCover:function(e,t){function r(n){return n}return Sge({toRectRange:r,fromRectRange:r},e,t,[[\"w\"],[\"e\"],[\"n\"],[\"s\"],[\"s\",\"e\"],[\"s\",\"w\"],[\"n\",\"e\"],[\"n\",\"w\"]])},getCreatingRange:function(e){var t=Fge(e);return Ege(t[1][0],t[1][1],t[0][0],t[0][1])},updateCoverShape:function(e,t,r,n){wge(e,t,r,n)},updateCommon:JP,contain:e9},polygon:{createCover:function(e,t){var r=new pr;return r.add(new To({name:\"main\",style:M$(t),silent:!0})),r},getCreatingRange:function(e){return e},endCreating:function(e,t){t.remove(t.childAt(0)),t.add(new wo({name:\"main\",draggable:!0,drift:wr(i4t,e,t),ondragend:wr(cm,e,{isEnd:!0})}))},updateCoverShape:function(e,t,r,n){t.childAt(0).setShape({points:P$(e,t,r)})},updateCommon:JP,contain:e9}};function XJ(e){return{createCover:function(t,r){return Sge({toRectRange:function(n){var a=[n,[0,100]];return e&&a.reverse(),a},fromRectRange:function(n){return n[e]}},t,r,[[[\"w\"],[\"e\"]],[[\"n\"],[\"s\"]]][e])},getCreatingRange:function(t){var r=Fge(t),n=K2(r[0][e],r[1][e]),a=dg(r[0][e],r[1][e]);return[n,a]},updateCoverShape:function(t,r,n,a){var i,o=Cge(t,r);if(o!==um&&o.getLinearBrushOtherExtent)i=o.getLinearBrushOtherExtent(e);else{var l=t._zr;i=[0,[l.getWidth(),l.getHeight()][1-e]]}var s=[n,i];e&&s.reverse(),wge(t,r,s,a)},updateCommon:JP,contain:e9}}function _ge(e){return e=O$(e),function(t){return CN(t,e)}}function Tge(e,t){return e=O$(e),function(r){var n=t??r,a=n?e.width:e.height,i=n?e.x:e.y;return[i,i+(a||0)]}}function Ige(e,t,r){var n=O$(e);return function(a,i){return n.contain(i[0],i[1])&&!yA(a,t,r)}}function O$(e){return Ir.create(e)}var c4t=[\"axisLine\",\"axisTickLabel\",\"axisName\"],d4t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){e.prototype.init.apply(this,arguments),(this._brushController=new T$(n.getZr())).on(\"brush\",Pt(this._onBrush,this))},t.prototype.render=function(r,n,a,i){if(!f4t(r,n,i)){this.axisModel=r,this.api=a,this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new pr,this.group.add(this._axisGroup),!!r.get(\"show\")){var l=p4t(r,n),s=l.coordinateSystem,u=r.getAreaSelectStyle(),c=u.width,d=r.axis.dim,f=s.getAxisLayout(d),h=Xe({strokeContainThreshold:c},f),p=new Vo(r,h);q(c4t,p.add,p),this._axisGroup.add(p.getGroup()),this._refreshBrushController(h,u,r,l,c,a),iC(o,this._axisGroup,r)}}},t.prototype._refreshBrushController=function(r,n,a,i,o,l){var s=a.axis.getExtent(),u=s[1]-s[0],c=Math.min(30,Math.abs(u)*.1),d=Ir.create({x:s[0],y:-o/2,width:u,height:o});d.x-=c,d.width+=2*c,this._brushController.mount({enableGlobalPan:!0,rotation:r.rotation,x:r.position[0],y:r.position[1]}).setPanels([{panelId:\"pl\",clipPath:_ge(d),isTargetByCursor:Ige(d,l,i),getLinearBrushOtherExtent:Tge(d,0)}]).enableBrush({brushType:\"lineX\",brushStyle:n,removeOnClick:!0}).updateCovers(h4t(a))},t.prototype._onBrush=function(r){var n=r.areas,a=this.axisModel,i=a.axis,o=ot(n,function(l){return[i.coordToData(l.range[0],!0),i.coordToData(l.range[1],!0)]});(!a.option.realtime===r.isEnd||r.removeOnClick)&&this.api.dispatchAction({type:\"axisAreaSelect\",parallelAxisId:a.id,intervals:o})},t.prototype.dispose=function(){this._brushController.dispose()},t.type=\"parallelAxis\",t}(Wn);function f4t(e,t,r){return r&&r.type===\"axisAreaSelect\"&&t.findComponents({mainType:\"parallelAxis\",query:r})[0]===e}function h4t(e){var t=e.axis;return ot(e.activeIntervals,function(r){return{brushType:\"lineX\",panelId:\"pl\",range:[t.dataToCoord(r[0],!0),t.dataToCoord(r[1],!0)]}})}function p4t(e,t){return t.getComponent(\"parallel\",e.get(\"parallelIndex\"))}var m4t={type:\"axisAreaSelect\",event:\"axisAreaSelected\"};function v4t(e){e.registerAction(m4t,function(t,r){r.eachComponent({mainType:\"parallelAxis\",query:t},function(n){n.axis.model.setActiveIntervals(t.intervals)})}),e.registerAction(\"parallelAxisExpand\",function(t,r){r.eachComponent({mainType:\"parallel\",query:t},function(n){n.setAxisExpand(t)})})}var g4t={type:\"value\",areaSelectStyle:{width:20,borderWidth:1,borderColor:\"rgba(160,197,232)\",color:\"rgba(160,197,232)\",opacity:.3},realtime:!0,z:10};function kge(e){e.registerComponentView($3t),e.registerComponentModel(j3t),e.registerCoordinateSystem(\"parallel\",Y3t),e.registerPreprocessor(P3t),e.registerComponentModel(qP),e.registerComponentView(d4t),cg(e,\"parallel\",qP,g4t),v4t(e)}function y4t(e){Nr(kge),e.registerChartView(D3t),e.registerSeriesModel(T3t),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,M3t)}var b4t=function(){function e(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0}return e}(),x4t=function(e){Re(t,e);function t(r){return e.call(this,r)||this}return t.prototype.getDefaultShape=function(){return new b4t},t.prototype.buildPath=function(r,n){var a=n.extent;r.moveTo(n.x1,n.y1),r.bezierCurveTo(n.cpx1,n.cpy1,n.cpx2,n.cpy2,n.x2,n.y2),n.orient===\"vertical\"?(r.lineTo(n.x2+a,n.y2),r.bezierCurveTo(n.cpx2+a,n.cpy2,n.cpx1+a,n.cpy1,n.x1+a,n.y1)):(r.lineTo(n.x2,n.y2+a),r.bezierCurveTo(n.cpx2,n.cpy2+a,n.cpx1,n.cpy1+a,n.x1,n.y1+a)),r.closePath()},t.prototype.highlight=function(){fd(this)},t.prototype.downplay=function(){hd(this)},t}(Vr),C4t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._focusAdjacencyDisabled=!1,r}return t.prototype.render=function(r,n,a){var i=this,o=r.getGraph(),l=this.group,s=r.layoutInfo,u=s.width,c=s.height,d=r.getData(),f=r.getData(\"edge\"),h=r.get(\"orient\");this._model=r,l.removeAll(),l.x=s.x,l.y=s.y,o.eachEdge(function(p){var v=new x4t,g=br(v);g.dataIndex=p.dataIndex,g.seriesIndex=r.seriesIndex,g.dataType=\"edge\";var y=p.getModel(),b=y.getModel(\"lineStyle\"),x=b.get(\"curveness\"),F=p.node1.getLayout(),S=p.node1.getModel(),E=S.get(\"localX\"),w=S.get(\"localY\"),D=p.node2.getLayout(),A=p.node2.getModel(),_=A.get(\"localX\"),I=A.get(\"localY\"),M=p.getLayout(),T,k,R,P,B,N,O,z;v.shape.extent=Math.max(1,M.dy),v.shape.orient=h,h===\"vertical\"?(T=(E!=null?E*u:F.x)+M.sy,k=(w!=null?w*c:F.y)+F.dy,R=(_!=null?_*u:D.x)+M.ty,P=I!=null?I*c:D.y,B=T,N=k*(1-x)+P*x,O=R,z=k*x+P*(1-x)):(T=(E!=null?E*u:F.x)+F.dx,k=(w!=null?w*c:F.y)+M.sy,R=_!=null?_*u:D.x,P=(I!=null?I*c:D.y)+M.ty,B=T*(1-x)+R*x,N=k,O=T*x+R*(1-x),z=P),v.setShape({x1:T,y1:k,x2:R,y2:P,cpx1:B,cpy1:N,cpx2:O,cpy2:z}),v.useStyle(b.getItemStyle()),JJ(v.style,h,p);var W=\"\"+y.get(\"value\"),L=vi(y,\"edgeLabel\");Xi(v,L,{labelFetcher:{getFormattedLabel:function(V,U,Q,K,Y,ee){return r.getFormattedLabel(V,U,\"edge\",K,cu(Y,L.normal&&L.normal.get(\"formatter\"),W),ee)}},labelDataIndex:p.dataIndex,defaultText:W}),v.setTextConfig({position:\"inside\"});var j=y.getModel(\"emphasis\");qi(v,y,\"lineStyle\",function(V){var U=V.getItemStyle();return JJ(U,h,p),U}),l.add(v),f.setItemGraphicEl(p.dataIndex,v);var H=j.get(\"focus\");sa(v,H===\"adjacency\"?p.getAdjacentDataIndices():H===\"trajectory\"?p.getTrajectoryDataIndices():H,j.get(\"blurScope\"),j.get(\"disabled\"))}),o.eachNode(function(p){var v=p.getLayout(),g=p.getModel(),y=g.get(\"localX\"),b=g.get(\"localY\"),x=g.getModel(\"emphasis\"),F=g.get([\"itemStyle\",\"borderRadius\"])||0,S=new Zr({shape:{x:y!=null?y*u:v.x,y:b!=null?b*c:v.y,width:v.dx,height:v.dy,r:F},style:g.getModel(\"itemStyle\").getItemStyle(),z2:10});Xi(S,vi(g),{labelFetcher:{getFormattedLabel:function(w,D){return r.getFormattedLabel(w,D,\"node\")}},labelDataIndex:p.dataIndex,defaultText:p.id}),S.disableLabelAnimation=!0,S.setStyle(\"fill\",p.getVisual(\"color\")),S.setStyle(\"decal\",p.getVisual(\"style\").decal),qi(S,g),l.add(S),d.setItemGraphicEl(p.dataIndex,S),br(S).dataType=\"node\";var E=x.get(\"focus\");sa(S,E===\"adjacency\"?p.getAdjacentDataIndices():E===\"trajectory\"?p.getTrajectoryDataIndices():E,x.get(\"blurScope\"),x.get(\"disabled\"))}),d.eachItemGraphicEl(function(p,v){var g=d.getItemModel(v);g.get(\"draggable\")&&(p.drift=function(y,b){i._focusAdjacencyDisabled=!0,this.shape.x+=y,this.shape.y+=b,this.dirty(),a.dispatchAction({type:\"dragNode\",seriesId:r.id,dataIndex:d.getRawIndex(v),localX:this.shape.x/u,localY:this.shape.y/c})},p.ondragend=function(){i._focusAdjacencyDisabled=!1},p.draggable=!0,p.cursor=\"move\")}),!this._data&&r.isAnimationEnabled()&&l.setClipPath(F4t(l.getBoundingRect(),r,function(){l.removeClipPath()})),this._data=r.getData()},t.prototype.dispose=function(){},t.type=\"sankey\",t}(Cn);function JJ(e,t,r){switch(e.fill){case\"source\":e.fill=r.node1.getVisual(\"color\"),e.decal=r.node1.getVisual(\"style\").decal;break;case\"target\":e.fill=r.node2.getVisual(\"color\"),e.decal=r.node2.getVisual(\"style\").decal;break;case\"gradient\":var n=r.node1.getVisual(\"color\"),a=r.node2.getVisual(\"color\");At(n)&&At(a)&&(e.fill=new Yg(0,0,+(t===\"horizontal\"),+(t===\"vertical\"),[{color:n,offset:0},{color:a,offset:1}]))}}function F4t(e,t,r){var n=new Zr({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}});return Yn(n,{shape:{width:e.width+20}},t,r),n}var S4t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){var a=r.edges||r.links||[],i=r.data||r.nodes||[],o=r.levels||[];this.levelModels=[];for(var l=this.levelModels,s=0;s<o.length;s++)o[s].depth!=null&&o[s].depth>=0&&(l[o[s].depth]=new pn(o[s],this,n));var u=hge(i,a,this,!0,c);return u.data;function c(d,f){d.wrapMethod(\"getItemModel\",function(h,p){var v=h.parentModel,g=v.getData().getItemLayout(p);if(g){var y=g.depth,b=v.levelModels[y];b&&(h.parentModel=b)}return h}),f.wrapMethod(\"getItemModel\",function(h,p){var v=h.parentModel,g=v.getGraph().getEdgeByIndex(p),y=g.node1.getLayout();if(y){var b=y.depth,x=v.levelModels[b];x&&(h.parentModel=x)}return h})}},t.prototype.setNodePosition=function(r,n){var a=this.option.data||this.option.nodes,i=a[r];i.localX=n[0],i.localY=n[1]},t.prototype.getGraph=function(){return this.getData().graph},t.prototype.getEdgeData=function(){return this.getGraph().edgeData},t.prototype.formatTooltip=function(r,n,a){function i(h){return isNaN(h)||h==null}if(a===\"edge\"){var o=this.getDataParams(r,a),l=o.data,s=o.value,u=l.source+\" -- \"+l.target;return gi(\"nameValue\",{name:u,value:s,noValue:i(s)})}else{var c=this.getGraph().getNodeByIndex(r),d=c.getLayout().value,f=this.getDataParams(r,a).data.name;return gi(\"nameValue\",{name:f!=null?f+\"\":null,value:d,noValue:i(d)})}},t.prototype.optionUpdated=function(){},t.prototype.getDataParams=function(r,n){var a=e.prototype.getDataParams.call(this,r,n);if(a.value==null&&n===\"node\"){var i=this.getGraph().getNodeByIndex(r),o=i.getLayout().value;a.value=o}return a},t.type=\"series.sankey\",t.defaultOption={z:2,coordinateSystem:\"view\",left:\"5%\",top:\"5%\",right:\"20%\",bottom:\"5%\",orient:\"horizontal\",nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,label:{show:!0,position:\"right\",fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:\"justify\",lineStyle:{color:\"#314656\",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:\"#212121\"}},animationEasing:\"linear\",animationDuration:1e3},t}(_n);function w4t(e,t){e.eachSeriesByType(\"sankey\",function(r){var n=r.get(\"nodeWidth\"),a=r.get(\"nodeGap\"),i=E4t(r,t);r.layoutInfo=i;var o=i.width,l=i.height,s=r.getGraph(),u=s.nodes,c=s.edges;A4t(u);var d=hn(u,function(v){return v.getLayout().value===0}),f=d.length!==0?0:r.get(\"layoutIterations\"),h=r.get(\"orient\"),p=r.get(\"nodeAlign\");D4t(u,c,n,a,o,l,f,h,p)})}function E4t(e,t){return Na(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()})}function D4t(e,t,r,n,a,i,o,l,s){_4t(e,t,r,a,i,l,s),R4t(e,t,i,a,n,o,l),z4t(e,l)}function A4t(e){q(e,function(t){var r=Pf(t.outEdges,u4),n=Pf(t.inEdges,u4),a=t.getValue()||0,i=Math.max(r,n,a);t.setLayout({value:i},!0)})}function _4t(e,t,r,n,a,i,o){for(var l=[],s=[],u=[],c=[],d=0,f=0;f<t.length;f++)l[f]=1;for(var f=0;f<e.length;f++)s[f]=e[f].inEdges.length,s[f]===0&&u.push(e[f]);for(var h=-1;u.length;){for(var p=0;p<u.length;p++){var v=u[p],g=v.hostGraph.data.getRawDataItem(v.dataIndex),y=g.depth!=null&&g.depth>=0;y&&g.depth>h&&(h=g.depth),v.setLayout({depth:y?g.depth:d},!0),i===\"vertical\"?v.setLayout({dy:r},!0):v.setLayout({dx:r},!0);for(var b=0;b<v.outEdges.length;b++){var x=v.outEdges[b],F=t.indexOf(x);l[F]=0;var S=x.node2,E=e.indexOf(S);--s[E]===0&&c.indexOf(S)<0&&c.push(S)}}++d,u=c,c=[]}for(var f=0;f<l.length;f++)if(l[f]===1)throw new Error(\"Sankey is a DAG, the original data has cycle!\");var w=h>d-1?h:d-1;o&&o!==\"left\"&&T4t(e,o,i,w);var D=i===\"vertical\"?(a-r)/w:(n-r)/w;k4t(e,D,i)}function Rge(e){var t=e.hostGraph.data.getRawDataItem(e.dataIndex);return t.depth!=null&&t.depth>=0}function T4t(e,t,r,n){if(t===\"right\"){for(var a=[],i=e,o=0;i.length;){for(var l=0;l<i.length;l++){var s=i[l];s.setLayout({skNodeHeight:o},!0);for(var u=0;u<s.inEdges.length;u++){var c=s.inEdges[u];a.indexOf(c.node1)<0&&a.push(c.node1)}}i=a,a=[],++o}q(e,function(d){Rge(d)||d.setLayout({depth:Math.max(0,n-d.getLayout().skNodeHeight)},!0)})}else t===\"justify\"&&I4t(e,n)}function I4t(e,t){q(e,function(r){!Rge(r)&&!r.outEdges.length&&r.setLayout({depth:t},!0)})}function k4t(e,t,r){q(e,function(n){var a=n.getLayout().depth*t;r===\"vertical\"?n.setLayout({y:a},!0):n.setLayout({x:a},!0)})}function R4t(e,t,r,n,a,i,o){var l=M4t(e,o);P4t(l,t,r,n,a,o),JI(l,a,r,n,o);for(var s=1;i>0;i--)s*=.99,O4t(l,s,o),JI(l,a,r,n,o),j4t(l,s,o),JI(l,a,r,n,o)}function M4t(e,t){var r=[],n=t===\"vertical\"?\"y\":\"x\",a=eP(e,function(i){return i.getLayout()[n]});return a.keys.sort(function(i,o){return i-o}),q(a.keys,function(i){r.push(a.buckets.get(i))}),r}function P4t(e,t,r,n,a,i){var o=1/0;q(e,function(l){var s=l.length,u=0;q(l,function(d){u+=d.getLayout().value});var c=i===\"vertical\"?(n-(s-1)*a)/u:(r-(s-1)*a)/u;c<o&&(o=c)}),q(e,function(l){q(l,function(s,u){var c=s.getLayout().value*o;i===\"vertical\"?(s.setLayout({x:u},!0),s.setLayout({dx:c},!0)):(s.setLayout({y:u},!0),s.setLayout({dy:c},!0))})}),q(t,function(l){var s=+l.getValue()*o;l.setLayout({dy:s},!0)})}function JI(e,t,r,n,a){var i=a===\"vertical\"?\"x\":\"y\";q(e,function(o){o.sort(function(v,g){return v.getLayout()[i]-g.getLayout()[i]});for(var l,s,u,c=0,d=o.length,f=a===\"vertical\"?\"dx\":\"dy\",h=0;h<d;h++)s=o[h],u=c-s.getLayout()[i],u>0&&(l=s.getLayout()[i]+u,a===\"vertical\"?s.setLayout({x:l},!0):s.setLayout({y:l},!0)),c=s.getLayout()[i]+s.getLayout()[f]+t;var p=a===\"vertical\"?n:r;if(u=c-t-p,u>0){l=s.getLayout()[i]-u,a===\"vertical\"?s.setLayout({x:l},!0):s.setLayout({y:l},!0),c=l;for(var h=d-2;h>=0;--h)s=o[h],u=s.getLayout()[i]+s.getLayout()[f]+t-c,u>0&&(l=s.getLayout()[i]-u,a===\"vertical\"?s.setLayout({x:l},!0):s.setLayout({y:l},!0)),c=s.getLayout()[i]}})}function O4t(e,t,r){q(e.slice().reverse(),function(n){q(n,function(a){if(a.outEdges.length){var i=Pf(a.outEdges,B4t,r)/Pf(a.outEdges,u4);if(isNaN(i)){var o=a.outEdges.length;i=o?Pf(a.outEdges,N4t,r)/o:0}if(r===\"vertical\"){var l=a.getLayout().x+(i-Jf(a,r))*t;a.setLayout({x:l},!0)}else{var s=a.getLayout().y+(i-Jf(a,r))*t;a.setLayout({y:s},!0)}}})})}function B4t(e,t){return Jf(e.node2,t)*e.getValue()}function N4t(e,t){return Jf(e.node2,t)}function $4t(e,t){return Jf(e.node1,t)*e.getValue()}function L4t(e,t){return Jf(e.node1,t)}function Jf(e,t){return t===\"vertical\"?e.getLayout().x+e.getLayout().dx/2:e.getLayout().y+e.getLayout().dy/2}function u4(e){return e.getValue()}function Pf(e,t,r){for(var n=0,a=e.length,i=-1;++i<a;){var o=+t(e[i],r);isNaN(o)||(n+=o)}return n}function j4t(e,t,r){q(e,function(n){q(n,function(a){if(a.inEdges.length){var i=Pf(a.inEdges,$4t,r)/Pf(a.inEdges,u4);if(isNaN(i)){var o=a.inEdges.length;i=o?Pf(a.inEdges,L4t,r)/o:0}if(r===\"vertical\"){var l=a.getLayout().x+(i-Jf(a,r))*t;a.setLayout({x:l},!0)}else{var s=a.getLayout().y+(i-Jf(a,r))*t;a.setLayout({y:s},!0)}}})})}function z4t(e,t){var r=t===\"vertical\"?\"x\":\"y\";q(e,function(n){n.outEdges.sort(function(a,i){return a.node2.getLayout()[r]-i.node2.getLayout()[r]}),n.inEdges.sort(function(a,i){return a.node1.getLayout()[r]-i.node1.getLayout()[r]})}),q(e,function(n){var a=0,i=0;q(n.outEdges,function(o){o.setLayout({sy:a},!0),a+=o.getLayout().dy}),q(n.inEdges,function(o){o.setLayout({ty:i},!0),i+=o.getLayout().dy})})}function H4t(e){e.eachSeriesByType(\"sankey\",function(t){var r=t.getGraph(),n=r.nodes,a=r.edges;if(n.length){var i=1/0,o=-1/0;q(n,function(l){var s=l.getLayout().value;s<i&&(i=s),s>o&&(o=s)}),q(n,function(l){var s=new di({type:\"color\",mappingMethod:\"linear\",dataExtent:[i,o],visual:t.get(\"color\")}),u=s.mapValueToVisual(l.getLayout().value),c=l.getModel().get([\"itemStyle\",\"color\"]);c!=null?(l.setVisual(\"color\",c),l.setVisual(\"style\",{fill:c})):(l.setVisual(\"color\",u),l.setVisual(\"style\",{fill:u}))})}a.length&&q(a,function(l){var s=l.getModel().get(\"lineStyle\");l.setVisual(\"style\",s)})})}function V4t(e){e.registerChartView(C4t),e.registerSeriesModel(S4t),e.registerLayout(w4t),e.registerVisual(H4t),e.registerAction({type:\"dragNode\",event:\"dragnode\",update:\"update\"},function(t,r){r.eachComponent({mainType:\"series\",subType:\"sankey\",query:t},function(n){n.setNodePosition(t.dataIndex,[t.localX,t.localY])})})}var Mge=function(){function e(){}return e.prototype._hasEncodeRule=function(t){var r=this.getEncode();return r&&r.get(t)!=null},e.prototype.getInitialData=function(t,r){var n,a=r.getComponent(\"xAxis\",this.get(\"xAxisIndex\")),i=r.getComponent(\"yAxis\",this.get(\"yAxisIndex\")),o=a.get(\"type\"),l=i.get(\"type\"),s;o===\"category\"?(t.layout=\"horizontal\",n=a.getOrdinalMeta(),s=!this._hasEncodeRule(\"x\")):l===\"category\"?(t.layout=\"vertical\",n=i.getOrdinalMeta(),s=!this._hasEncodeRule(\"y\")):t.layout=t.layout||\"horizontal\";var u=[\"x\",\"y\"],c=t.layout===\"horizontal\"?0:1,d=this._baseAxisDim=u[c],f=u[1-c],h=[a,i],p=h[c].get(\"type\"),v=h[1-c].get(\"type\"),g=t.data;if(g&&s){var y=[];q(g,function(F,S){var E;nt(F)?(E=F.slice(),F.unshift(S)):nt(F.value)?(E=Xe({},F),E.value=E.value.slice(),F.value.unshift(S)):E=F,y.push(E)}),t.data=y}var b=this.defaultValueDimensions,x=[{name:d,type:Z3(p),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:[\"base\"]},{name:f,type:Z3(v),dimsDef:b.slice()}];return s1(this,{coordDimensions:x,dimensionsCount:b.length+1,encodeDefaulter:wr(lme,x,this)})},e.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+\"Axis\",this.get(t+\"AxisIndex\")).axis},e}(),Pge=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.defaultValueDimensions=[{name:\"min\",defaultTooltip:!0},{name:\"Q1\",defaultTooltip:!0},{name:\"median\",defaultTooltip:!0},{name:\"Q3\",defaultTooltip:!0},{name:\"max\",defaultTooltip:!0}],r.visualDrawType=\"stroke\",r}return t.type=\"series.boxplot\",t.dependencies=[\"xAxis\",\"yAxis\",\"grid\"],t.defaultOption={z:2,coordinateSystem:\"cartesian2d\",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:\"#fff\",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:\"rgba(0,0,0,0.2)\"}},animationDuration:800},t}(_n);Ca(Pge,Mge,!0);var W4t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=r.getData(),o=this.group,l=this._data;this._data||o.removeAll();var s=r.get(\"layout\")===\"horizontal\"?1:0;i.diff(l).add(function(u){if(i.hasValue(u)){var c=i.getItemLayout(u),d=ZJ(c,i,u,s,!0);i.setItemGraphicEl(u,d),o.add(d)}}).update(function(u,c){var d=l.getItemGraphicEl(c);if(!i.hasValue(u)){o.remove(d);return}var f=i.getItemLayout(u);d?(Su(d),Oge(f,d,i,u)):d=ZJ(f,i,u,s),o.add(d),i.setItemGraphicEl(u,d)}).remove(function(u){var c=l.getItemGraphicEl(u);c&&o.remove(c)}).execute(),this._data=i},t.prototype.remove=function(r){var n=this.group,a=this._data;this._data=null,a&&a.eachItemGraphicEl(function(i){i&&n.remove(i)})},t.type=\"boxplot\",t}(Cn),G4t=function(){function e(){}return e}(),U4t=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"boxplotBoxPath\",n}return t.prototype.getDefaultShape=function(){return new G4t},t.prototype.buildPath=function(r,n){var a=n.points,i=0;for(r.moveTo(a[i][0],a[i][1]),i++;i<4;i++)r.lineTo(a[i][0],a[i][1]);for(r.closePath();i<a.length;i++)r.moveTo(a[i][0],a[i][1]),i++,r.lineTo(a[i][0],a[i][1])},t}(Vr);function ZJ(e,t,r,n,a){var i=e.ends,o=new U4t({shape:{points:a?K4t(i,n,e):i}});return Oge(e,o,t,r,a),o}function Oge(e,t,r,n,a){var i=r.hostModel,o=$m[a?\"initProps\":\"updateProps\"];o(t,{shape:{points:e.ends}},i,n),t.useStyle(r.getItemVisual(n,\"style\")),t.style.strokeNoScale=!0,t.z2=100;var l=r.getItemModel(n),s=l.getModel(\"emphasis\");qi(t,l),sa(t,s.get(\"focus\"),s.get(\"blurScope\"),s.get(\"disabled\"))}function K4t(e,t,r){return ot(e,function(n){return n=n.slice(),n[t]=r.initBaseline,n})}var Cb=q;function Y4t(e){var t=q4t(e);Cb(t,function(r){var n=r.seriesModels;n.length&&(X4t(r),Cb(n,function(a,i){J4t(a,r.boxOffsetList[i],r.boxWidthList[i])}))})}function q4t(e){var t=[],r=[];return e.eachSeriesByType(\"boxplot\",function(n){var a=n.getBaseAxis(),i=Mr(r,a);i<0&&(i=r.length,r[i]=a,t[i]={axis:a,seriesModels:[]}),t[i].seriesModels.push(n)}),t}function X4t(e){var t=e.axis,r=e.seriesModels,n=r.length,a=e.boxWidthList=[],i=e.boxOffsetList=[],o=[],l;if(t.type===\"category\")l=t.getBandWidth();else{var s=0;Cb(r,function(p){s=Math.max(s,p.getData().count())});var u=t.getExtent();l=Math.abs(u[1]-u[0])/s}Cb(r,function(p){var v=p.get(\"boxWidth\");nt(v)||(v=[v,v]),o.push([Ft(v[0],l)||0,Ft(v[1],l)||0])});var c=l*.8-2,d=c/n*.3,f=(c-d*(n-1))/n,h=f/2-c/2;Cb(r,function(p,v){i.push(h),h+=d+f,a.push(Math.min(Math.max(f,o[v][0]),o[v][1]))})}function J4t(e,t,r){var n=e.coordinateSystem,a=e.getData(),i=r/2,o=e.get(\"layout\")===\"horizontal\"?0:1,l=1-o,s=[\"x\",\"y\"],u=a.mapDimension(s[o]),c=a.mapDimensionsAll(s[l]);if(u==null||c.length<5)return;for(var d=0;d<a.count();d++){var f=a.get(u,d),h=x(f,c[2],d),p=x(f,c[0],d),v=x(f,c[1],d),g=x(f,c[3],d),y=x(f,c[4],d),b=[];F(b,v,!1),F(b,g,!0),b.push(p,v,y,g),S(b,p),S(b,y),S(b,h),a.setItemLayout(d,{initBaseline:h[l],ends:b})}function x(E,w,D){var A=a.get(w,D),_=[];_[o]=E,_[l]=A;var I;return isNaN(E)||isNaN(A)?I=[NaN,NaN]:(I=n.dataToPoint(_),I[o]+=t),I}function F(E,w,D){var A=w.slice(),_=w.slice();A[o]+=i,_[o]-=i,D?E.push(A,_):E.push(_,A)}function S(E,w){var D=w.slice(),A=w.slice();D[o]-=i,A[o]+=i,E.push(D,A)}}function Z4t(e,t){t=t||{};for(var r=[],n=[],a=t.boundIQR,i=a===\"none\"||a===0,o=0;o<e.length;o++){var l=Ml(e[o].slice()),s=kw(l,.25),u=kw(l,.5),c=kw(l,.75),d=l[0],f=l[l.length-1],h=(a??1.5)*(c-s),p=i?d:Math.max(d,s-h),v=i?f:Math.min(f,c+h),g=t.itemNameFormatter,y=er(g)?g({value:o}):At(g)?g.replace(\"{value}\",o+\"\"):o+\"\";r.push([y,p,s,u,c,v]);for(var b=0;b<l.length;b++){var x=l[b];if(x<p||x>v){var F=[y,x];n.push(F)}}}return{boxData:r,outliers:n}}var Q4t={type:\"echarts:boxplot\",transform:function(t){var r=t.upstream;if(r.sourceFormat!==Eo){var n=\"\";bn(n)}var a=Z4t(r.getRawData(),t.config);return[{dimensions:[\"ItemName\",\"Low\",\"Q1\",\"Q2\",\"Q3\",\"High\"],data:a.boxData},{data:a.outliers}]}};function e6t(e){e.registerSeriesModel(Pge),e.registerChartView(W4t),e.registerLayout(Y4t),e.registerTransform(Q4t)}var t6t=[\"itemStyle\",\"borderColor\"],r6t=[\"itemStyle\",\"borderColor0\"],n6t=[\"itemStyle\",\"borderColorDoji\"],a6t=[\"itemStyle\",\"color\"],i6t=[\"itemStyle\",\"color0\"];function B$(e,t){return t.get(e>0?a6t:i6t)}function N$(e,t){return t.get(e===0?n6t:e>0?t6t:r6t)}var o6t={seriesType:\"candlestick\",plan:r1(),performRawSeries:!0,reset:function(e,t){if(!t.isSeriesFiltered(e)){var r=e.pipelineContext.large;return!r&&{progress:function(n,a){for(var i;(i=n.next())!=null;){var o=a.getItemModel(i),l=a.getItemLayout(i).sign,s=o.getItemStyle();s.fill=B$(l,o),s.stroke=N$(l,o)||s.fill;var u=a.ensureUniqueItemVisual(i,\"style\");Xe(u,s)}}}}}},l6t=[\"color\",\"borderColor\"],s6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(r),this._isLargeDraw?this._renderLarge(r):this._renderNormal(r)},t.prototype.incrementalPrepareRender=function(r,n,a){this._clear(),this._updateDrawMode(r)},t.prototype.incrementalRender=function(r,n,a,i){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(r,n):this._incrementalRenderNormal(r,n)},t.prototype.eachRendered=function(r){sh(this._progressiveEls||this.group,r)},t.prototype._updateDrawMode=function(r){var n=r.pipelineContext.large;(this._isLargeDraw==null||n!==this._isLargeDraw)&&(this._isLargeDraw=n,this._clear())},t.prototype._renderNormal=function(r){var n=r.getData(),a=this._data,i=this.group,o=n.getLayout(\"isSimpleBox\"),l=r.get(\"clip\",!0),s=r.coordinateSystem,u=s.getArea&&s.getArea();this._data||i.removeAll(),n.diff(a).add(function(c){if(n.hasValue(c)){var d=n.getItemLayout(c);if(l&&QJ(u,d))return;var f=ZI(d,c,!0);Yn(f,{shape:{points:d.ends}},r,c),QI(f,n,c,o),i.add(f),n.setItemGraphicEl(c,f)}}).update(function(c,d){var f=a.getItemGraphicEl(d);if(!n.hasValue(c)){i.remove(f);return}var h=n.getItemLayout(c);if(l&&QJ(u,h)){i.remove(f);return}f?(cn(f,{shape:{points:h.ends}},r,c),Su(f)):f=ZI(h),QI(f,n,c,o),i.add(f),n.setItemGraphicEl(c,f)}).remove(function(c){var d=a.getItemGraphicEl(c);d&&i.remove(d)}).execute(),this._data=n},t.prototype._renderLarge=function(r){this._clear(),eZ(r,this.group);var n=r.get(\"clip\",!0)?dC(r.coordinateSystem,!1,r):null;n?this.group.setClipPath(n):this.group.removeClipPath()},t.prototype._incrementalRenderNormal=function(r,n){for(var a=n.getData(),i=a.getLayout(\"isSimpleBox\"),o;(o=r.next())!=null;){var l=a.getItemLayout(o),s=ZI(l);QI(s,a,o,i),s.incremental=!0,this.group.add(s),this._progressiveEls.push(s)}},t.prototype._incrementalRenderLarge=function(r,n){eZ(n,this.group,this._progressiveEls,!0)},t.prototype.remove=function(r){this._clear()},t.prototype._clear=function(){this.group.removeAll(),this._data=null},t.type=\"candlestick\",t}(Cn),u6t=function(){function e(){}return e}(),c6t=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"normalCandlestickBox\",n}return t.prototype.getDefaultShape=function(){return new u6t},t.prototype.buildPath=function(r,n){var a=n.points;this.__simpleBox?(r.moveTo(a[4][0],a[4][1]),r.lineTo(a[6][0],a[6][1])):(r.moveTo(a[0][0],a[0][1]),r.lineTo(a[1][0],a[1][1]),r.lineTo(a[2][0],a[2][1]),r.lineTo(a[3][0],a[3][1]),r.closePath(),r.moveTo(a[4][0],a[4][1]),r.lineTo(a[5][0],a[5][1]),r.moveTo(a[6][0],a[6][1]),r.lineTo(a[7][0],a[7][1]))},t}(Vr);function ZI(e,t,r){var n=e.ends;return new c6t({shape:{points:r?d6t(n,e):n},z2:100})}function QJ(e,t){for(var r=!0,n=0;n<t.ends.length;n++)if(e.contain(t.ends[n][0],t.ends[n][1])){r=!1;break}return r}function QI(e,t,r,n){var a=t.getItemModel(r);e.useStyle(t.getItemVisual(r,\"style\")),e.style.strokeNoScale=!0,e.__simpleBox=n,qi(e,a);var i=t.getItemLayout(r).sign;q(e.states,function(l,s){var u=a.getModel(s),c=B$(i,u),d=N$(i,u)||c,f=l.style||(l.style={});c&&(f.fill=c),d&&(f.stroke=d)});var o=a.getModel(\"emphasis\");sa(e,o.get(\"focus\"),o.get(\"blurScope\"),o.get(\"disabled\"))}function d6t(e,t){return ot(e,function(r){return r=r.slice(),r[1]=t.initBaseline,r})}var f6t=function(){function e(){}return e}(),ek=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.type=\"largeCandlestickBox\",n}return t.prototype.getDefaultShape=function(){return new f6t},t.prototype.buildPath=function(r,n){for(var a=n.points,i=0;i<a.length;)if(this.__sign===a[i++]){var o=a[i++];r.moveTo(o,a[i++]),r.lineTo(o,a[i++])}else i+=3},t}(Vr);function eZ(e,t,r,n){var a=e.getData(),i=a.getLayout(\"largePoints\"),o=new ek({shape:{points:i},__sign:1,ignoreCoarsePointer:!0});t.add(o);var l=new ek({shape:{points:i},__sign:-1,ignoreCoarsePointer:!0});t.add(l);var s=new ek({shape:{points:i},__sign:0,ignoreCoarsePointer:!0});t.add(s),tk(1,o,e),tk(-1,l,e),tk(0,s,e),n&&(o.incremental=!0,l.incremental=!0),r&&r.push(o,l)}function tk(e,t,r,n){var a=N$(e,r)||B$(e,r),i=r.getModel(\"itemStyle\").getItemStyle(l6t);t.useStyle(i),t.style.fill=null,t.style.stroke=a}var Bge=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.defaultValueDimensions=[{name:\"open\",defaultTooltip:!0},{name:\"close\",defaultTooltip:!0},{name:\"lowest\",defaultTooltip:!0},{name:\"highest\",defaultTooltip:!0}],r}return t.prototype.getShadowDim=function(){return\"open\"},t.prototype.brushSelector=function(r,n,a){var i=n.getItemLayout(r);return i&&a.rect(i.brushRect)},t.type=\"series.candlestick\",t.dependencies=[\"xAxis\",\"yAxis\",\"grid\"],t.defaultOption={z:2,coordinateSystem:\"cartesian2d\",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:\"#eb5454\",color0:\"#47b262\",borderColor:\"#eb5454\",borderColor0:\"#47b262\",borderColorDoji:null,borderWidth:1},emphasis:{itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:\"mod\",animationEasing:\"linear\",animationDuration:300},t}(_n);Ca(Bge,Mge,!0);function h6t(e){!e||!nt(e.series)||q(e.series,function(t){ir(t)&&t.type===\"k\"&&(t.type=\"candlestick\")})}var p6t={seriesType:\"candlestick\",plan:r1(),reset:function(e){var t=e.coordinateSystem,r=e.getData(),n=m6t(e,r),a=0,i=1,o=[\"x\",\"y\"],l=r.getDimensionIndex(r.mapDimension(o[a])),s=ot(r.mapDimensionsAll(o[i]),r.getDimensionIndex,r),u=s[0],c=s[1],d=s[2],f=s[3];if(r.setLayout({candleWidth:n,isSimpleBox:n<=1.3}),l<0||s.length<4)return;return{progress:e.pipelineContext.large?p:h};function h(v,g){for(var y,b=g.getStore();(y=v.next())!=null;){var x=b.get(l,y),F=b.get(u,y),S=b.get(c,y),E=b.get(d,y),w=b.get(f,y),D=Math.min(F,S),A=Math.max(F,S),_=B(D,x),I=B(A,x),M=B(E,x),T=B(w,x),k=[];N(k,I,0),N(k,_,1),k.push(z(T),z(I),z(M),z(_));var R=g.getItemModel(y),P=!!R.get([\"itemStyle\",\"borderColorDoji\"]);g.setItemLayout(y,{sign:tZ(b,y,F,S,c,P),initBaseline:F>S?I[i]:_[i],ends:k,brushRect:O(E,w,x)})}function B(W,L){var j=[];return j[a]=L,j[i]=W,isNaN(L)||isNaN(W)?[NaN,NaN]:t.dataToPoint(j)}function N(W,L,j){var H=L.slice(),V=L.slice();H[a]=Pw(H[a]+n/2,1,!1),V[a]=Pw(V[a]-n/2,1,!0),j?W.push(H,V):W.push(V,H)}function O(W,L,j){var H=B(W,j),V=B(L,j);return H[a]-=n/2,V[a]-=n/2,{x:H[0],y:H[1],width:n,height:V[1]-H[1]}}function z(W){return W[a]=Pw(W[a],1),W}}function p(v,g){for(var y=Ju(v.count*4),b=0,x,F=[],S=[],E,w=g.getStore(),D=!!e.get([\"itemStyle\",\"borderColorDoji\"]);(E=v.next())!=null;){var A=w.get(l,E),_=w.get(u,E),I=w.get(c,E),M=w.get(d,E),T=w.get(f,E);if(isNaN(A)||isNaN(M)||isNaN(T)){y[b++]=NaN,b+=3;continue}y[b++]=tZ(w,E,_,I,c,D),F[a]=A,F[i]=M,x=t.dataToPoint(F,null,S),y[b++]=x?x[0]:NaN,y[b++]=x?x[1]:NaN,F[i]=T,x=t.dataToPoint(F,null,S),y[b++]=x?x[1]:NaN}g.setLayout(\"largePoints\",y)}}};function tZ(e,t,r,n,a,i){var o;return r>n?o=-1:r<n?o=1:o=i?0:t>0?e.get(a,t-1)<=n?1:-1:1,o}function m6t(e,t){var r=e.getBaseAxis(),n,a=r.type===\"category\"?r.getBandWidth():(n=r.getExtent(),Math.abs(n[1]-n[0])/t.count()),i=Ft(Fr(e.get(\"barMaxWidth\"),a),a),o=Ft(Fr(e.get(\"barMinWidth\"),1),a),l=e.get(\"barWidth\");return l!=null?Ft(l,a):Math.max(Math.min(a/2,i),o)}function v6t(e){e.registerChartView(s6t),e.registerSeriesModel(Bge),e.registerPreprocessor(h6t),e.registerVisual(o6t),e.registerLayout(p6t)}function rZ(e,t){var r=t.rippleEffectColor||t.color;e.eachChild(function(n){n.attr({z:t.z,zlevel:t.zlevel,style:{stroke:t.brushType===\"stroke\"?r:null,fill:t.brushType===\"fill\"?r:null}})})}var g6t=function(e){Re(t,e);function t(r,n){var a=e.call(this)||this,i=new uC(r,n),o=new pr;return a.add(i),a.add(o),a.updateData(r,n),a}return t.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},t.prototype.startEffectAnimation=function(r){for(var n=r.symbolType,a=r.color,i=r.rippleNumber,o=this.childAt(1),l=0;l<i;l++){var s=_a(n,-1,-1,2,2,a);s.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scaleX:.5,scaleY:.5});var u=-l/i*r.period+r.effectOffset;s.animate(\"\",!0).when(r.period,{scaleX:r.rippleScale/2,scaleY:r.rippleScale/2}).delay(u).start(),s.animateStyle(!0).when(r.period,{opacity:0}).delay(u).start(),o.add(s)}rZ(o,r)},t.prototype.updateEffectAnimation=function(r){for(var n=this._effectCfg,a=this.childAt(1),i=[\"symbolType\",\"period\",\"rippleScale\",\"rippleNumber\"],o=0;o<i.length;o++){var l=i[o];if(n[l]!==r[l]){this.stopEffectAnimation(),this.startEffectAnimation(r);return}}rZ(a,r)},t.prototype.highlight=function(){fd(this)},t.prototype.downplay=function(){hd(this)},t.prototype.getSymbolType=function(){var r=this.childAt(0);return r&&r.getSymbolType()},t.prototype.updateData=function(r,n){var a=this,i=r.hostModel;this.childAt(0).updateData(r,n);var o=this.childAt(1),l=r.getItemModel(n),s=r.getItemVisual(n,\"symbol\"),u=a1(r.getItemVisual(n,\"symbolSize\")),c=r.getItemVisual(n,\"style\"),d=c&&c.fill,f=l.getModel(\"emphasis\");o.setScale(u),o.traverse(function(g){g.setStyle(\"fill\",d)});var h=jm(r.getItemVisual(n,\"symbolOffset\"),u);h&&(o.x=h[0],o.y=h[1]);var p=r.getItemVisual(n,\"symbolRotate\");o.rotation=(p||0)*Math.PI/180||0;var v={};v.showEffectOn=i.get(\"showEffectOn\"),v.rippleScale=l.get([\"rippleEffect\",\"scale\"]),v.brushType=l.get([\"rippleEffect\",\"brushType\"]),v.period=l.get([\"rippleEffect\",\"period\"])*1e3,v.effectOffset=n/r.count(),v.z=i.getShallow(\"z\")||0,v.zlevel=i.getShallow(\"zlevel\")||0,v.symbolType=s,v.color=d,v.rippleEffectColor=l.get([\"rippleEffect\",\"color\"]),v.rippleNumber=l.get([\"rippleEffect\",\"number\"]),v.showEffectOn===\"render\"?(this._effectCfg?this.updateEffectAnimation(v):this.startEffectAnimation(v),this._effectCfg=v):(this._effectCfg=null,this.stopEffectAnimation(),this.onHoverStateChange=function(g){g===\"emphasis\"?v.showEffectOn!==\"render\"&&a.startEffectAnimation(v):g===\"normal\"&&v.showEffectOn!==\"render\"&&a.stopEffectAnimation()}),this._effectCfg=v,sa(this,f.get(\"focus\"),f.get(\"blurScope\"),f.get(\"disabled\"))},t.prototype.fadeOut=function(r){r&&r()},t}(pr),y6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(){this._symbolDraw=new cC(g6t)},t.prototype.render=function(r,n,a){var i=r.getData(),o=this._symbolDraw;o.updateData(i,{clipShape:this._getClipShape(r)}),this.group.add(o.group)},t.prototype._getClipShape=function(r){var n=r.coordinateSystem,a=n&&n.getArea&&n.getArea();return r.get(\"clip\",!0)?a:null},t.prototype.updateTransform=function(r,n,a){var i=r.getData();this.group.dirty();var o=fC(\"\").reset(r,n,a);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout()},t.prototype._updateGroupTransform=function(r){var n=r.coordinateSystem;n&&n.getRoamTransform&&(this.group.transform=bhe(n.getRoamTransform()),this.group.decomposeTransform())},t.prototype.remove=function(r,n){this._symbolDraw&&this._symbolDraw.remove(!0)},t.type=\"effectScatter\",t}(Cn),b6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r}return t.prototype.getInitialData=function(r,n){return wc(null,this,{useEncodeDefaulter:!0})},t.prototype.brushSelector=function(r,n,a){return a.point(n.getItemLayout(r))},t.type=\"series.effectScatter\",t.dependencies=[\"grid\",\"polar\"],t.defaultOption={coordinateSystem:\"cartesian2d\",z:2,legendHoverLink:!0,effectType:\"ripple\",progressive:0,showEffectOn:\"render\",clip:!0,rippleEffect:{period:4,scale:2.5,brushType:\"fill\",number:3},universalTransition:{divideShape:\"clone\"},symbolSize:10},t}(_n);function x6t(e){e.registerChartView(y6t),e.registerSeriesModel(b6t),e.registerLayout(fC(\"effectScatter\"))}var Nge=function(e){Re(t,e);function t(r,n,a){var i=e.call(this)||this;return i.add(i.createLine(r,n,a)),i._updateEffectSymbol(r,n),i}return t.prototype.createLine=function(r,n,a){return new A$(r,n,a)},t.prototype._updateEffectSymbol=function(r,n){var a=r.getItemModel(n),i=a.getModel(\"effect\"),o=i.get(\"symbolSize\"),l=i.get(\"symbol\");nt(o)||(o=[o,o]);var s=r.getItemVisual(n,\"style\"),u=i.get(\"color\")||s&&s.stroke,c=this.childAt(1);this._symbolType!==l&&(this.remove(c),c=_a(l,-.5,-.5,1,1,u),c.z2=100,c.culling=!0,this.add(c)),c&&(c.setStyle(\"shadowColor\",u),c.setStyle(i.getItemStyle([\"color\"])),c.scaleX=o[0],c.scaleY=o[1],c.setColor(u),this._symbolType=l,this._symbolScale=o,this._updateEffectAnimation(r,i,n))},t.prototype._updateEffectAnimation=function(r,n,a){var i=this.childAt(1);if(i){var o=r.getItemLayout(a),l=n.get(\"period\")*1e3,s=n.get(\"loop\"),u=n.get(\"roundTrip\"),c=n.get(\"constantSpeed\"),d=ui(n.get(\"delay\"),function(h){return h/r.count()*l/3});if(i.ignore=!0,this._updateAnimationPoints(i,o),c>0&&(l=this._getLineLength(i)/c*1e3),l!==this._period||s!==this._loop||u!==this._roundTrip){i.stopAnimation();var f=void 0;er(d)?f=d(a):f=d,i.__t>0&&(f=-l*i.__t),this._animateSymbol(i,l,f,s,u)}this._period=l,this._loop=s,this._roundTrip=u}},t.prototype._animateSymbol=function(r,n,a,i,o){if(n>0){r.__t=0;var l=this,s=r.animate(\"\",i).when(o?n*2:n,{__t:o?2:1}).delay(a).during(function(){l._updateSymbolPosition(r)});i||s.done(function(){l.remove(r)}),s.start()}},t.prototype._getLineLength=function(r){return jc(r.__p1,r.__cp1)+jc(r.__cp1,r.__p2)},t.prototype._updateAnimationPoints=function(r,n){r.__p1=n[0],r.__p2=n[1],r.__cp1=n[2]||[(n[0][0]+n[1][0])/2,(n[0][1]+n[1][1])/2]},t.prototype.updateData=function(r,n,a){this.childAt(0).updateData(r,n,a),this._updateEffectSymbol(r,n)},t.prototype._updateSymbolPosition=function(r){var n=r.__p1,a=r.__p2,i=r.__cp1,o=r.__t<1?r.__t:2-r.__t,l=[r.x,r.y],s=l.slice(),u=Fi,c=$M;l[0]=u(n[0],i[0],a[0],o),l[1]=u(n[1],i[1],a[1],o);var d=r.__t<1?c(n[0],i[0],a[0],o):c(a[0],i[0],n[0],1-o),f=r.__t<1?c(n[1],i[1],a[1],o):c(a[1],i[1],n[1],1-o);r.rotation=-Math.atan2(f,d)-Math.PI/2,(this._symbolType===\"line\"||this._symbolType===\"rect\"||this._symbolType===\"roundRect\")&&(r.__lastT!==void 0&&r.__lastT<r.__t?(r.scaleY=jc(s,l)*1.05,o===1&&(l[0]=s[0]+(l[0]-s[0])/2,l[1]=s[1]+(l[1]-s[1])/2)):r.__lastT===1?r.scaleY=2*jc(n,l):r.scaleY=this._symbolScale[1]),r.__lastT=r.__t,r.ignore=!1,r.x=l[0],r.y=l[1]},t.prototype.updateLayout=function(r,n){this.childAt(0).updateLayout(r,n);var a=r.getItemModel(n).getModel(\"effect\");this._updateEffectAnimation(r,a,n)},t}(pr),$ge=function(e){Re(t,e);function t(r,n,a){var i=e.call(this)||this;return i._createPolyline(r,n,a),i}return t.prototype._createPolyline=function(r,n,a){var i=r.getItemLayout(n),o=new To({shape:{points:i}});this.add(o),this._updateCommonStl(r,n,a)},t.prototype.updateData=function(r,n,a){var i=r.hostModel,o=this.childAt(0),l={shape:{points:r.getItemLayout(n)}};cn(o,l,i,n),this._updateCommonStl(r,n,a)},t.prototype._updateCommonStl=function(r,n,a){var i=this.childAt(0),o=r.getItemModel(n),l=a&&a.emphasisLineStyle,s=a&&a.focus,u=a&&a.blurScope,c=a&&a.emphasisDisabled;if(!a||r.hasItemOption){var d=o.getModel(\"emphasis\");l=d.getModel(\"lineStyle\").getLineStyle(),c=d.get(\"disabled\"),s=d.get(\"focus\"),u=d.get(\"blurScope\")}i.useStyle(r.getItemVisual(n,\"style\")),i.style.fill=null,i.style.strokeNoScale=!0;var f=i.ensureState(\"emphasis\");f.style=l,sa(this,s,u,c)},t.prototype.updateLayout=function(r,n){var a=this.childAt(0);a.setShape(\"points\",r.getItemLayout(n))},t}(pr),C6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._lastFrame=0,r._lastFramePercent=0,r}return t.prototype.createLine=function(r,n,a){return new $ge(r,n,a)},t.prototype._updateAnimationPoints=function(r,n){this._points=n;for(var a=[0],i=0,o=1;o<n.length;o++){var l=n[o-1],s=n[o];i+=jc(l,s),a.push(i)}if(i===0){this._length=0;return}for(var o=0;o<a.length;o++)a[o]/=i;this._offsets=a,this._length=i},t.prototype._getLineLength=function(){return this._length},t.prototype._updateSymbolPosition=function(r){var n=r.__t<1?r.__t:2-r.__t,a=this._points,i=this._offsets,o=a.length;if(i){var l=this._lastFrame,s;if(n<this._lastFramePercent){var u=Math.min(l+1,o-1);for(s=u;s>=0&&!(i[s]<=n);s--);s=Math.min(s,o-2)}else{for(s=l;s<o&&!(i[s]>n);s++);s=Math.min(s-1,o-2)}var c=(n-i[s])/(i[s+1]-i[s]),d=a[s],f=a[s+1];r.x=d[0]*(1-c)+c*f[0],r.y=d[1]*(1-c)+c*f[1];var h=r.__t<1?f[0]-d[0]:d[0]-f[0],p=r.__t<1?f[1]-d[1]:d[1]-f[1];r.rotation=-Math.atan2(p,h)-Math.PI/2,this._lastFrame=s,this._lastFramePercent=n,r.ignore=!1}},t}(Nge),F6t=function(){function e(){this.polyline=!1,this.curveness=0,this.segs=[]}return e}(),S6t=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n._off=0,n.hoverDataIdx=-1,n}return t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.getDefaultStyle=function(){return{stroke:\"#000\",fill:null}},t.prototype.getDefaultShape=function(){return new F6t},t.prototype.buildPath=function(r,n){var a=n.segs,i=n.curveness,o;if(n.polyline)for(o=this._off;o<a.length;){var l=a[o++];if(l>0){r.moveTo(a[o++],a[o++]);for(var s=1;s<l;s++)r.lineTo(a[o++],a[o++])}}else for(o=this._off;o<a.length;){var u=a[o++],c=a[o++],d=a[o++],f=a[o++];if(r.moveTo(u,c),i>0){var h=(u+d)/2-(c-f)*i,p=(c+f)/2-(d-u)*i;r.quadraticCurveTo(h,p,d,f)}else r.lineTo(d,f)}this.incremental&&(this._off=o,this.notClear=!0)},t.prototype.findDataIndex=function(r,n){var a=this.shape,i=a.segs,o=a.curveness,l=this.style.lineWidth;if(a.polyline)for(var s=0,u=0;u<i.length;){var c=i[u++];if(c>0)for(var d=i[u++],f=i[u++],h=1;h<c;h++){var p=i[u++],v=i[u++];if(Xd(d,f,p,v,l,r,n))return s}s++}else for(var s=0,u=0;u<i.length;){var d=i[u++],f=i[u++],p=i[u++],v=i[u++];if(o>0){var g=(d+p)/2-(f-v)*o,y=(f+v)/2-(p-d)*o;if(cpe(d,f,g,y,p,v,l,r,n))return s}else if(Xd(d,f,p,v,l,r,n))return s;s++}return-1},t.prototype.contain=function(r,n){var a=this.transformCoordToLocal(r,n),i=this.getBoundingRect();if(r=a[0],n=a[1],i.contain(r,n)){var o=this.hoverDataIdx=this.findDataIndex(r,n);return o>=0}return this.hoverDataIdx=-1,!1},t.prototype.getBoundingRect=function(){var r=this._rect;if(!r){for(var n=this.shape,a=n.segs,i=1/0,o=1/0,l=-1/0,s=-1/0,u=0;u<a.length;){var c=a[u++],d=a[u++];i=Math.min(c,i),l=Math.max(c,l),o=Math.min(d,o),s=Math.max(d,s)}r=this._rect=new Ir(i,o,l,s)}return r},t}(Vr),w6t=function(){function e(){this.group=new pr}return e.prototype.updateData=function(t){this._clear();var r=this._create();r.setShape({segs:t.getLayout(\"linesPoints\")}),this._setCommon(r,t)},e.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clear()},e.prototype.incrementalUpdate=function(t,r){var n=this._newAdded[0],a=r.getLayout(\"linesPoints\"),i=n&&n.shape.segs;if(i&&i.length<2e4){var o=i.length,l=new Float32Array(o+a.length);l.set(i),l.set(a,o),n.setShape({segs:l})}else{this._newAdded=[];var s=this._create();s.incremental=!0,s.setShape({segs:a}),this._setCommon(s,r),s.__startIndex=t.start}},e.prototype.remove=function(){this._clear()},e.prototype.eachRendered=function(t){this._newAdded[0]&&t(this._newAdded[0])},e.prototype._create=function(){var t=new S6t({cursor:\"default\",ignoreCoarsePointer:!0});return this._newAdded.push(t),this.group.add(t),t},e.prototype._setCommon=function(t,r,n){var a=r.hostModel;t.setShape({polyline:a.get(\"polyline\"),curveness:a.get([\"lineStyle\",\"curveness\"])}),t.useStyle(a.getModel(\"lineStyle\").getLineStyle()),t.style.strokeNoScale=!0;var i=r.getVisual(\"style\");i&&i.stroke&&t.setStyle(\"stroke\",i.stroke),t.setStyle(\"fill\",null);var o=br(t);o.seriesIndex=a.seriesIndex,t.on(\"mousemove\",function(l){o.dataIndex=null;var s=t.hoverDataIdx;s>0&&(o.dataIndex=s+t.__startIndex)})},e.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},e}(),Lge={seriesType:\"lines\",plan:r1(),reset:function(e){var t=e.coordinateSystem;if(t){var r=e.get(\"polyline\"),n=e.pipelineContext.large;return{progress:function(a,i){var o=[];if(n){var l=void 0,s=a.end-a.start;if(r){for(var u=0,c=a.start;c<a.end;c++)u+=e.getLineCoordsCount(c);l=new Float32Array(s+u*2)}else l=new Float32Array(s*4);for(var d=0,f=[],c=a.start;c<a.end;c++){var h=e.getLineCoords(c,o);r&&(l[d++]=h);for(var p=0;p<h;p++)f=t.dataToPoint(o[p],!1,f),l[d++]=f[0],l[d++]=f[1]}i.setLayout(\"linesPoints\",l)}else for(var c=a.start;c<a.end;c++){var v=i.getItemModel(c),h=e.getLineCoords(c,o),g=[];if(r)for(var y=0;y<h;y++)g.push(t.dataToPoint(o[y]));else{g[0]=t.dataToPoint(o[0]),g[1]=t.dataToPoint(o[1]);var b=v.get([\"lineStyle\",\"curveness\"]);+b&&(g[2]=[(g[0][0]+g[1][0])/2-(g[0][1]-g[1][1])*b,(g[0][1]+g[1][1])/2-(g[1][0]-g[0][0])*b])}i.setItemLayout(c,g)}}}}}},E6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=r.getData(),o=this._updateLineDraw(i,r),l=r.get(\"zlevel\"),s=r.get([\"effect\",\"trailLength\"]),u=a.getZr(),c=u.painter.getType()===\"svg\";c||u.painter.getLayer(l).clear(!0),this._lastZlevel!=null&&!c&&u.configLayer(this._lastZlevel,{motionBlur:!1}),this._showEffect(r)&&s>0&&(c||u.configLayer(l,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(s/10+.9,1),0)})),o.updateData(i);var d=r.get(\"clip\",!0)&&dC(r.coordinateSystem,!1,r);d?this.group.setClipPath(d):this.group.removeClipPath(),this._lastZlevel=l,this._finished=!0},t.prototype.incrementalPrepareRender=function(r,n,a){var i=r.getData(),o=this._updateLineDraw(i,r);o.incrementalPrepareUpdate(i),this._clearLayer(a),this._finished=!1},t.prototype.incrementalRender=function(r,n,a){this._lineDraw.incrementalUpdate(r,n.getData()),this._finished=r.end===n.getData().count()},t.prototype.eachRendered=function(r){this._lineDraw&&this._lineDraw.eachRendered(r)},t.prototype.updateTransform=function(r,n,a){var i=r.getData(),o=r.pipelineContext;if(!this._finished||o.large||o.progressiveRender)return{update:!0};var l=Lge.reset(r,n,a);l.progress&&l.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(a)},t.prototype._updateLineDraw=function(r,n){var a=this._lineDraw,i=this._showEffect(n),o=!!n.get(\"polyline\"),l=n.pipelineContext,s=l.large;return(!a||i!==this._hasEffet||o!==this._isPolyline||s!==this._isLargeDraw)&&(a&&a.remove(),a=this._lineDraw=s?new w6t:new _$(o?i?C6t:$ge:i?Nge:A$),this._hasEffet=i,this._isPolyline=o,this._isLargeDraw=s),this.group.add(a.group),a},t.prototype._showEffect=function(r){return!!r.get([\"effect\",\"show\"])},t.prototype._clearLayer=function(r){var n=r.getZr(),a=n.painter.getType()===\"svg\";!a&&this._lastZlevel!=null&&n.painter.getLayer(this._lastZlevel).clear(!0)},t.prototype.remove=function(r,n){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(n)},t.prototype.dispose=function(r,n){this.remove(r,n)},t.type=\"lines\",t}(Cn),D6t=typeof Uint32Array>\"u\"?Array:Uint32Array,A6t=typeof Float64Array>\"u\"?Array:Float64Array;function nZ(e){var t=e.data;t&&t[0]&&t[0][0]&&t[0][0].coord&&(e.data=ot(t,function(r){var n=[r[0].coord,r[1].coord],a={coords:n};return r[0].name&&(a.fromName=r[0].name),r[1].name&&(a.toName=r[1].name),ND([a,r[0],r[1]])}))}var _6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.visualStyleAccessPath=\"lineStyle\",r.visualDrawType=\"stroke\",r}return t.prototype.init=function(r){r.data=r.data||[],nZ(r);var n=this._processFlatCoordsArray(r.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(r.data=new Float32Array(n.count)),e.prototype.init.apply(this,arguments)},t.prototype.mergeOption=function(r){if(nZ(r),r.data){var n=this._processFlatCoordsArray(r.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(r.data=new Float32Array(n.count))}e.prototype.mergeOption.apply(this,arguments)},t.prototype.appendData=function(r){var n=this._processFlatCoordsArray(r.data);n.flatCoords&&(this._flatCoords?(this._flatCoords=ng(this._flatCoords,n.flatCoords),this._flatCoordsOffset=ng(this._flatCoordsOffset,n.flatCoordsOffset)):(this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset),r.data=new Float32Array(n.count)),this.getRawData().appendData(r.data)},t.prototype._getCoordsFromItemModel=function(r){var n=this.getData().getItemModel(r),a=n.option instanceof Array?n.option:n.getShallow(\"coords\");return a},t.prototype.getLineCoordsCount=function(r){return this._flatCoordsOffset?this._flatCoordsOffset[r*2+1]:this._getCoordsFromItemModel(r).length},t.prototype.getLineCoords=function(r,n){if(this._flatCoordsOffset){for(var a=this._flatCoordsOffset[r*2],i=this._flatCoordsOffset[r*2+1],o=0;o<i;o++)n[o]=n[o]||[],n[o][0]=this._flatCoords[a+o*2],n[o][1]=this._flatCoords[a+o*2+1];return i}else{for(var l=this._getCoordsFromItemModel(r),o=0;o<l.length;o++)n[o]=n[o]||[],n[o][0]=l[o][0],n[o][1]=l[o][1];return l.length}},t.prototype._processFlatCoordsArray=function(r){var n=0;if(this._flatCoords&&(n=this._flatCoords.length),nn(r[0])){for(var a=r.length,i=new D6t(a),o=new A6t(a),l=0,s=0,u=0,c=0;c<a;){u++;var d=r[c++];i[s++]=l+n,i[s++]=d;for(var f=0;f<d;f++){var h=r[c++],p=r[c++];o[l++]=h,o[l++]=p}}return{flatCoordsOffset:new Uint32Array(i.buffer,0,s),flatCoords:o,count:u}}return{flatCoordsOffset:null,flatCoords:null,count:r.length}},t.prototype.getInitialData=function(r,n){var a=new xo([\"value\"],this);return a.hasItemOption=!1,a.initData(r.data,[],function(i,o,l,s){if(i instanceof Array)return NaN;a.hasItemOption=!0;var u=i.value;if(u!=null)return u instanceof Array?u[s]:u}),a},t.prototype.formatTooltip=function(r,n,a){var i=this.getData(),o=i.getItemModel(r),l=o.get(\"name\");if(l)return l;var s=o.get(\"fromName\"),u=o.get(\"toName\"),c=[];return s!=null&&c.push(s),u!=null&&c.push(u),gi(\"nameValue\",{name:c.join(\" > \")})},t.prototype.preventIncremental=function(){return!!this.get([\"effect\",\"show\"])},t.prototype.getProgressive=function(){var r=this.option.progressive;return r??(this.option.large?1e4:this.get(\"progressive\"))},t.prototype.getProgressiveThreshold=function(){var r=this.option.progressiveThreshold;return r??(this.option.large?2e4:this.get(\"progressiveThreshold\"))},t.prototype.getZLevelKey=function(){var r=this.getModel(\"effect\"),n=r.get(\"trailLength\");return this.getData().count()>this.getProgressiveThreshold()?this.id:r.get(\"show\")&&n>0?n+\"\":\"\"},t.type=\"series.lines\",t.dependencies=[\"grid\",\"polar\",\"geo\",\"calendar\"],t.defaultOption={coordinateSystem:\"geo\",z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:[\"none\",\"none\"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:\"circle\",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:\"end\"},lineStyle:{opacity:.5}},t}(_n);function TS(e){return e instanceof Array||(e=[e,e]),e}var T6t={seriesType:\"lines\",reset:function(e){var t=TS(e.get(\"symbol\")),r=TS(e.get(\"symbolSize\")),n=e.getData();n.setVisual(\"fromSymbol\",t&&t[0]),n.setVisual(\"toSymbol\",t&&t[1]),n.setVisual(\"fromSymbolSize\",r&&r[0]),n.setVisual(\"toSymbolSize\",r&&r[1]);function a(i,o){var l=i.getItemModel(o),s=TS(l.getShallow(\"symbol\",!0)),u=TS(l.getShallow(\"symbolSize\",!0));s[0]&&i.setItemVisual(o,\"fromSymbol\",s[0]),s[1]&&i.setItemVisual(o,\"toSymbol\",s[1]),u[0]&&i.setItemVisual(o,\"fromSymbolSize\",u[0]),u[1]&&i.setItemVisual(o,\"toSymbolSize\",u[1])}return{dataEach:n.hasItemOption?a:null}}};function I6t(e){e.registerChartView(E6t),e.registerSeriesModel(_6t),e.registerLayout(Lge),e.registerVisual(T6t)}var k6t=256,R6t=function(){function e(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=xu.createCanvas();this.canvas=t}return e.prototype.update=function(t,r,n,a,i,o){var l=this._getBrush(),s=this._getGradient(i,\"inRange\"),u=this._getGradient(i,\"outOfRange\"),c=this.pointSize+this.blurSize,d=this.canvas,f=d.getContext(\"2d\"),h=t.length;d.width=r,d.height=n;for(var p=0;p<h;++p){var v=t[p],g=v[0],y=v[1],b=v[2],x=a(b);f.globalAlpha=x,f.drawImage(l,g-c,y-c)}if(!d.width||!d.height)return d;for(var F=f.getImageData(0,0,d.width,d.height),S=F.data,E=0,w=S.length,D=this.minOpacity,A=this.maxOpacity,_=A-D;E<w;){var x=S[E+3]/256,I=Math.floor(x*(k6t-1))*4;if(x>0){var M=o(x)?s:u;x>0&&(x=x*_+D),S[E++]=M[I],S[E++]=M[I+1],S[E++]=M[I+2],S[E++]=M[I+3]*x*256}else E+=4}return f.putImageData(F,0,0),d},e.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=xu.createCanvas()),r=this.pointSize+this.blurSize,n=r*2;t.width=n,t.height=n;var a=t.getContext(\"2d\");return a.clearRect(0,0,n,n),a.shadowOffsetX=n,a.shadowBlur=this.blurSize,a.shadowColor=\"#000\",a.beginPath(),a.arc(-r,r,this.pointSize,0,Math.PI*2,!0),a.closePath(),a.fill(),t},e.prototype._getGradient=function(t,r){for(var n=this._gradientPixels,a=n[r]||(n[r]=new Uint8ClampedArray(256*4)),i=[0,0,0,0],o=0,l=0;l<256;l++)t[r](l/255,!0,i),a[o++]=i[0],a[o++]=i[1],a[o++]=i[2],a[o++]=i[3];return a},e}();function M6t(e,t,r){var n=e[1]-e[0];t=ot(t,function(o){return{interval:[(o.interval[0]-e[0])/n,(o.interval[1]-e[0])/n]}});var a=t.length,i=0;return function(o){var l;for(l=i;l<a;l++){var s=t[l].interval;if(s[0]<=o&&o<=s[1]){i=l;break}}if(l===a)for(l=i-1;l>=0;l--){var s=t[l].interval;if(s[0]<=o&&o<=s[1]){i=l;break}}return l>=0&&l<a&&r[l]}}function P6t(e,t){var r=e[1]-e[0];return t=[(t[0]-e[0])/r,(t[1]-e[0])/r],function(n){return n>=t[0]&&n<=t[1]}}function aZ(e){var t=e.dimensions;return t[0]===\"lng\"&&t[1]===\"lat\"}var O6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i;n.eachComponent(\"visualMap\",function(l){l.eachTargetSeries(function(s){s===r&&(i=l)})}),this._progressiveEls=null,this.group.removeAll();var o=r.coordinateSystem;o.type===\"cartesian2d\"||o.type===\"calendar\"?this._renderOnCartesianAndCalendar(r,a,0,r.getData().count()):aZ(o)&&this._renderOnGeo(o,r,i,a)},t.prototype.incrementalPrepareRender=function(r,n,a){this.group.removeAll()},t.prototype.incrementalRender=function(r,n,a,i){var o=n.coordinateSystem;o&&(aZ(o)?this.render(n,a,i):(this._progressiveEls=[],this._renderOnCartesianAndCalendar(n,i,r.start,r.end,!0)))},t.prototype.eachRendered=function(r){sh(this._progressiveEls||this.group,r)},t.prototype._renderOnCartesianAndCalendar=function(r,n,a,i,o){var l=r.coordinateSystem,s=zm(l,\"cartesian2d\"),u,c,d,f;if(s){var h=l.getAxis(\"x\"),p=l.getAxis(\"y\");u=h.getBandWidth()+.5,c=p.getBandWidth()+.5,d=h.scale.getExtent(),f=p.scale.getExtent()}for(var v=this.group,g=r.getData(),y=r.getModel([\"emphasis\",\"itemStyle\"]).getItemStyle(),b=r.getModel([\"blur\",\"itemStyle\"]).getItemStyle(),x=r.getModel([\"select\",\"itemStyle\"]).getItemStyle(),F=r.get([\"itemStyle\",\"borderRadius\"]),S=vi(r),E=r.getModel(\"emphasis\"),w=E.get(\"focus\"),D=E.get(\"blurScope\"),A=E.get(\"disabled\"),_=s?[g.mapDimension(\"x\"),g.mapDimension(\"y\"),g.mapDimension(\"value\")]:[g.mapDimension(\"time\"),g.mapDimension(\"value\")],I=a;I<i;I++){var M=void 0,T=g.getItemVisual(I,\"style\");if(s){var k=g.get(_[0],I),R=g.get(_[1],I);if(isNaN(g.get(_[2],I))||isNaN(k)||isNaN(R)||k<d[0]||k>d[1]||R<f[0]||R>f[1])continue;var P=l.dataToPoint([k,R]);M=new Zr({shape:{x:P[0]-u/2,y:P[1]-c/2,width:u,height:c},style:T})}else{if(isNaN(g.get(_[1],I)))continue;M=new Zr({z2:1,shape:l.dataToRect([g.get(_[0],I)]).contentShape,style:T})}if(g.hasItemOption){var B=g.getItemModel(I),N=B.getModel(\"emphasis\");y=N.getModel(\"itemStyle\").getItemStyle(),b=B.getModel([\"blur\",\"itemStyle\"]).getItemStyle(),x=B.getModel([\"select\",\"itemStyle\"]).getItemStyle(),F=B.get([\"itemStyle\",\"borderRadius\"]),w=N.get(\"focus\"),D=N.get(\"blurScope\"),A=N.get(\"disabled\"),S=vi(B)}M.shape.r=F;var O=r.getRawValue(I),z=\"-\";O&&O[2]!=null&&(z=O[2]+\"\"),Xi(M,S,{labelFetcher:r,labelDataIndex:I,defaultOpacity:T.opacity,defaultText:z}),M.ensureState(\"emphasis\").style=y,M.ensureState(\"blur\").style=b,M.ensureState(\"select\").style=x,sa(M,w,D,A),M.incremental=o,o&&(M.states.emphasis.hoverLayer=!0),v.add(M),g.setItemGraphicEl(I,M),this._progressiveEls&&this._progressiveEls.push(M)}},t.prototype._renderOnGeo=function(r,n,a,i){var o=a.targetVisuals.inRange,l=a.targetVisuals.outOfRange,s=n.getData(),u=this._hmLayer||this._hmLayer||new R6t;u.blurSize=n.get(\"blurSize\"),u.pointSize=n.get(\"pointSize\"),u.minOpacity=n.get(\"minOpacity\"),u.maxOpacity=n.get(\"maxOpacity\");var c=r.getViewRect().clone(),d=r.getRoamTransform();c.applyTransform(d);var f=Math.max(c.x,0),h=Math.max(c.y,0),p=Math.min(c.width+c.x,i.getWidth()),v=Math.min(c.height+c.y,i.getHeight()),g=p-f,y=v-h,b=[s.mapDimension(\"lng\"),s.mapDimension(\"lat\"),s.mapDimension(\"value\")],x=s.mapArray(b,function(w,D,A){var _=r.dataToPoint([w,D]);return _[0]-=f,_[1]-=h,_.push(A),_}),F=a.getExtent(),S=a.type===\"visualMap.continuous\"?P6t(F,a.option.range):M6t(F,a.getPieceList(),a.option.selected);u.update(x,g,y,o.color.getNormalizer(),{inRange:o.color.getColorMapper(),outOfRange:l.color.getColorMapper()},S);var E=new yi({style:{width:g,height:y,x:f,y:h,image:u.canvas},silent:!0});this.group.add(E)},t.type=\"heatmap\",t}(Cn),B6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getInitialData=function(r,n){return wc(null,this,{generateCoord:\"value\"})},t.prototype.preventIncremental=function(){var r=t1.get(this.get(\"coordinateSystem\"));if(r&&r.dimensions)return r.dimensions[0]===\"lng\"&&r.dimensions[1]===\"lat\"},t.type=\"series.heatmap\",t.dependencies=[\"grid\",\"geo\",\"calendar\"],t.defaultOption={coordinateSystem:\"cartesian2d\",z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:\"#212121\"}}},t}(_n);function N6t(e){e.registerChartView(O6t),e.registerSeriesModel(B6t)}var $6t=[\"itemStyle\",\"borderWidth\"],iZ=[{xy:\"x\",wh:\"width\",index:0,posDesc:[\"left\",\"right\"]},{xy:\"y\",wh:\"height\",index:1,posDesc:[\"top\",\"bottom\"]}],rk=new Fc,L6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=this.group,o=r.getData(),l=this._data,s=r.coordinateSystem,u=s.getBaseAxis(),c=u.isHorizontal(),d=s.master.getRect(),f={ecSize:{width:a.getWidth(),height:a.getHeight()},seriesModel:r,coordSys:s,coordSysExtent:[[d.x,d.x+d.width],[d.y,d.y+d.height]],isHorizontal:c,valueDim:iZ[+c],categoryDim:iZ[1-+c]};o.diff(l).add(function(p){if(o.hasValue(p)){var v=lZ(o,p),g=oZ(o,p,v,f),y=sZ(o,f,g);o.setItemGraphicEl(p,y),i.add(y),cZ(y,f,g)}}).update(function(p,v){var g=l.getItemGraphicEl(v);if(!o.hasValue(p)){i.remove(g);return}var y=lZ(o,p),b=oZ(o,p,y,f),x=Gge(o,b);g&&x!==g.__pictorialShapeStr&&(i.remove(g),o.setItemGraphicEl(p,null),g=null),g?U6t(g,f,b):g=sZ(o,f,b,!0),o.setItemGraphicEl(p,g),g.__pictorialSymbolMeta=b,i.add(g),cZ(g,f,b)}).remove(function(p){var v=l.getItemGraphicEl(p);v&&uZ(l,p,v.__pictorialSymbolMeta.animationModel,v)}).execute();var h=r.get(\"clip\",!0)?dC(r.coordinateSystem,!1,r):null;return h?i.setClipPath(h):i.removeClipPath(),this._data=o,this.group},t.prototype.remove=function(r,n){var a=this.group,i=this._data;r.get(\"animation\")?i&&i.eachItemGraphicEl(function(o){uZ(i,br(o).dataIndex,r,o)}):a.removeAll()},t.type=\"pictorialBar\",t}(Cn);function oZ(e,t,r,n){var a=e.getItemLayout(t),i=r.get(\"symbolRepeat\"),o=r.get(\"symbolClip\"),l=r.get(\"symbolPosition\")||\"start\",s=r.get(\"symbolRotate\"),u=(s||0)*Math.PI/180||0,c=r.get(\"symbolPatternSize\")||2,d=r.isAnimationEnabled(),f={dataIndex:t,layout:a,itemModel:r,symbolType:e.getItemVisual(t,\"symbol\")||\"circle\",style:e.getItemVisual(t,\"style\"),symbolClip:o,symbolRepeat:i,symbolRepeatDirection:r.get(\"symbolRepeatDirection\"),symbolPatternSize:c,rotation:u,animationModel:d?r:null,hoverScale:d&&r.get([\"emphasis\",\"scale\"]),z2:r.getShallow(\"z\",!0)||0};j6t(r,i,a,n,f),z6t(e,t,a,i,o,f.boundingLength,f.pxSign,c,n,f),H6t(r,f.symbolScale,u,n,f);var h=f.symbolSize,p=jm(r.get(\"symbolOffset\"),h);return V6t(r,h,a,i,o,p,l,f.valueLineWidth,f.boundingLength,f.repeatCutLength,n,f),f}function j6t(e,t,r,n,a){var i=n.valueDim,o=e.get(\"symbolBoundingData\"),l=n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),s=l.toGlobalCoord(l.dataToCoord(0)),u=1-+(r[i.wh]<=0),c;if(nt(o)){var d=[nk(l,o[0])-s,nk(l,o[1])-s];d[1]<d[0]&&d.reverse(),c=d[u]}else o!=null?c=nk(l,o)-s:t?c=n.coordSysExtent[i.index][u]-s:c=r[i.wh];a.boundingLength=c,t&&(a.repeatCutLength=r[i.wh]);var f=i.xy===\"x\",h=l.inverse;a.pxSign=f&&!h||!f&&h?c>=0?1:-1:c>0?1:-1}function nk(e,t){return e.toGlobalCoord(e.dataToCoord(e.scale.parse(t)))}function z6t(e,t,r,n,a,i,o,l,s,u){var c=s.valueDim,d=s.categoryDim,f=Math.abs(r[d.wh]),h=e.getItemVisual(t,\"symbolSize\"),p;nt(h)?p=h.slice():h==null?p=[\"100%\",\"100%\"]:p=[h,h],p[d.index]=Ft(p[d.index],f),p[c.index]=Ft(p[c.index],n?f:Math.abs(i)),u.symbolSize=p;var v=u.symbolScale=[p[0]/l,p[1]/l];v[c.index]*=(s.isHorizontal?-1:1)*o}function H6t(e,t,r,n,a){var i=e.get($6t)||0;i&&(rk.attr({scaleX:t[0],scaleY:t[1],rotation:r}),rk.updateTransform(),i/=rk.getLineScale(),i*=t[n.valueDim.index]),a.valueLineWidth=i||0}function V6t(e,t,r,n,a,i,o,l,s,u,c,d){var f=c.categoryDim,h=c.valueDim,p=d.pxSign,v=Math.max(t[h.index]+l,0),g=v;if(n){var y=Math.abs(s),b=ui(e.get(\"symbolMargin\"),\"15%\")+\"\",x=!1;b.lastIndexOf(\"!\")===b.length-1&&(x=!0,b=b.slice(0,b.length-1));var F=Ft(b,t[h.index]),S=Math.max(v+F*2,0),E=x?0:F*2,w=iN(n),D=w?n:dZ((y+E)/S),A=y-D*v;F=A/2/(x?D:Math.max(D-1,1)),S=v+F*2,E=x?0:F*2,!w&&n!==\"fixed\"&&(D=u?dZ((Math.abs(u)+E)/S):0),g=D*S-E,d.repeatTimes=D,d.symbolMargin=F}var _=p*(g/2),I=d.pathPosition=[];I[f.index]=r[f.wh]/2,I[h.index]=o===\"start\"?_:o===\"end\"?s-_:s/2,i&&(I[0]+=i[0],I[1]+=i[1]);var M=d.bundlePosition=[];M[f.index]=r[f.xy],M[h.index]=r[h.xy];var T=d.barRectShape=Xe({},r);T[h.wh]=p*Math.max(Math.abs(r[h.wh]),Math.abs(I[h.index]+_)),T[f.wh]=r[f.wh];var k=d.clipShape={};k[f.xy]=-r[f.xy],k[f.wh]=c.ecSize[f.wh],k[h.xy]=0,k[h.wh]=r[h.wh]}function jge(e){var t=e.symbolPatternSize,r=_a(e.symbolType,-t/2,-t/2,t,t);return r.attr({culling:!0}),r.type!==\"image\"&&r.setStyle({strokeNoScale:!0}),r}function zge(e,t,r,n){var a=e.__pictorialBundle,i=r.symbolSize,o=r.valueLineWidth,l=r.pathPosition,s=t.valueDim,u=r.repeatTimes||0,c=0,d=i[t.valueDim.index]+o+r.symbolMargin*2;for($$(e,function(v){v.__pictorialAnimationIndex=c,v.__pictorialRepeatTimes=u,c<u?R0(v,null,p(c),r,n):R0(v,null,{scaleX:0,scaleY:0},r,n,function(){a.remove(v)}),c++});c<u;c++){var f=jge(r);f.__pictorialAnimationIndex=c,f.__pictorialRepeatTimes=u,a.add(f);var h=p(c);R0(f,{x:h.x,y:h.y,scaleX:0,scaleY:0},{scaleX:h.scaleX,scaleY:h.scaleY,rotation:h.rotation},r,n)}function p(v){var g=l.slice(),y=r.pxSign,b=v;return(r.symbolRepeatDirection===\"start\"?y>0:y<0)&&(b=u-1-v),g[s.index]=d*(b-u/2+.5)+l[s.index],{x:g[0],y:g[1],scaleX:r.symbolScale[0],scaleY:r.symbolScale[1],rotation:r.rotation}}}function Hge(e,t,r,n){var a=e.__pictorialBundle,i=e.__pictorialMainPath;i?R0(i,null,{x:r.pathPosition[0],y:r.pathPosition[1],scaleX:r.symbolScale[0],scaleY:r.symbolScale[1],rotation:r.rotation},r,n):(i=e.__pictorialMainPath=jge(r),a.add(i),R0(i,{x:r.pathPosition[0],y:r.pathPosition[1],scaleX:0,scaleY:0,rotation:r.rotation},{scaleX:r.symbolScale[0],scaleY:r.symbolScale[1]},r,n))}function Vge(e,t,r){var n=Xe({},t.barRectShape),a=e.__pictorialBarRect;a?R0(a,null,{shape:n},t,r):(a=e.__pictorialBarRect=new Zr({z2:2,shape:n,silent:!0,style:{stroke:\"transparent\",fill:\"transparent\",lineWidth:0}}),a.disableMorphing=!0,e.add(a))}function Wge(e,t,r,n){if(r.symbolClip){var a=e.__pictorialClipPath,i=Xe({},r.clipShape),o=t.valueDim,l=r.animationModel,s=r.dataIndex;if(a)cn(a,{shape:i},l,s);else{i[o.wh]=0,a=new Zr({shape:i}),e.__pictorialBundle.setClipPath(a),e.__pictorialClipPath=a;var u={};u[o.wh]=r.clipShape[o.wh],$m[n?\"updateProps\":\"initProps\"](a,{shape:u},l,s)}}}function lZ(e,t){var r=e.getItemModel(t);return r.getAnimationDelayParams=W6t,r.isAnimationEnabled=G6t,r}function W6t(e){return{index:e.__pictorialAnimationIndex,count:e.__pictorialRepeatTimes}}function G6t(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow(\"animation\")}function sZ(e,t,r,n){var a=new pr,i=new pr;return a.add(i),a.__pictorialBundle=i,i.x=r.bundlePosition[0],i.y=r.bundlePosition[1],r.symbolRepeat?zge(a,t,r):Hge(a,t,r),Vge(a,r,n),Wge(a,t,r,n),a.__pictorialShapeStr=Gge(e,r),a.__pictorialSymbolMeta=r,a}function U6t(e,t,r){var n=r.animationModel,a=r.dataIndex,i=e.__pictorialBundle;cn(i,{x:r.bundlePosition[0],y:r.bundlePosition[1]},n,a),r.symbolRepeat?zge(e,t,r,!0):Hge(e,t,r,!0),Vge(e,r,!0),Wge(e,t,r,!0)}function uZ(e,t,r,n){var a=n.__pictorialBarRect;a&&a.removeTextContent();var i=[];$$(n,function(o){i.push(o)}),n.__pictorialMainPath&&i.push(n.__pictorialMainPath),n.__pictorialClipPath&&(r=null),q(i,function(o){qf(o,{scaleX:0,scaleY:0},r,t,function(){n.parent&&n.parent.remove(n)})}),e.setItemGraphicEl(t,null)}function Gge(e,t){return[e.getItemVisual(t.dataIndex,\"symbol\")||\"none\",!!t.symbolRepeat,!!t.symbolClip].join(\":\")}function $$(e,t,r){q(e.__pictorialBundle.children(),function(n){n!==e.__pictorialBarRect&&t.call(r,n)})}function R0(e,t,r,n,a,i){t&&e.attr(t),n.symbolClip&&!a?r&&e.attr(r):r&&$m[a?\"updateProps\":\"initProps\"](e,r,n.animationModel,n.dataIndex,i)}function cZ(e,t,r){var n=r.dataIndex,a=r.itemModel,i=a.getModel(\"emphasis\"),o=i.getModel(\"itemStyle\").getItemStyle(),l=a.getModel([\"blur\",\"itemStyle\"]).getItemStyle(),s=a.getModel([\"select\",\"itemStyle\"]).getItemStyle(),u=a.getShallow(\"cursor\"),c=i.get(\"focus\"),d=i.get(\"blurScope\"),f=i.get(\"scale\");$$(e,function(v){if(v instanceof yi){var g=v.style;v.useStyle(Xe({image:g.image,x:g.x,y:g.y,width:g.width,height:g.height},r.style))}else v.useStyle(r.style);var y=v.ensureState(\"emphasis\");y.style=o,f&&(y.scaleX=v.scaleX*1.1,y.scaleY=v.scaleY*1.1),v.ensureState(\"blur\").style=l,v.ensureState(\"select\").style=s,u&&(v.cursor=u),v.z2=r.z2});var h=t.valueDim.posDesc[+(r.boundingLength>0)],p=e.__pictorialBarRect;p.ignoreClip=!0,Xi(p,vi(a),{labelFetcher:t.seriesModel,labelDataIndex:n,defaultText:ug(t.seriesModel.getData(),n),inheritColor:r.style.fill,defaultOpacity:r.style.opacity,defaultOutsidePosition:h}),sa(e,c,d,i.get(\"disabled\"))}function dZ(e){var t=Math.round(e);return Math.abs(e-t)<1e-4?t:Math.ceil(e)}var K6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.hasSymbolVisual=!0,r.defaultSymbol=\"roundRect\",r}return t.prototype.getInitialData=function(r){return r.stack=null,e.prototype.getInitialData.apply(this,arguments)},t.type=\"series.pictorialBar\",t.dependencies=[\"grid\"],t.defaultOption=uh(z2.defaultOption,{symbol:\"circle\",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:\"end\",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:\"-100%\",clip:!1,progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:\"#212121\"}}}),t}(z2);function Y6t(e){e.registerChartView(L6t),e.registerSeriesModel(K6t),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,wr(_ve,\"pictorialBar\")),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Tve(\"pictorialBar\"))}var q6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._layers=[],r}return t.prototype.render=function(r,n,a){var i=r.getData(),o=this,l=this.group,s=r.getLayerSeries(),u=i.getLayout(\"layoutInfo\"),c=u.rect,d=u.boundaryGap;l.x=0,l.y=c.y+d[0];function f(g){return g.name}var h=new pd(this._layersSeries||[],s,f,f),p=[];h.add(Pt(v,this,\"add\")).update(Pt(v,this,\"update\")).remove(Pt(v,this,\"remove\")).execute();function v(g,y,b){var x=o._layers;if(g===\"remove\"){l.remove(x[y]);return}for(var F=[],S=[],E,w=s[y].indices,D=0;D<w.length;D++){var A=i.getItemLayout(w[D]),_=A.x,I=A.y0,M=A.y;F.push(_,I),S.push(_,I+M),E=i.getItemVisual(w[D],\"style\")}var T,k=i.getItemLayout(w[0]),R=r.getModel(\"label\"),P=R.get(\"margin\"),B=r.getModel(\"emphasis\");if(g===\"add\"){var N=p[y]=new pr;T=new g0e({shape:{points:F,stackedOnPoints:S,smooth:.4,stackedOnSmooth:.4,smoothConstraint:!1},z2:0}),N.add(T),l.add(N),r.isAnimationEnabled()&&T.setClipPath(X6t(T.getBoundingRect(),r,function(){T.removeClipPath()}))}else{var N=x[b];T=N.childAt(0),l.add(N),p[y]=N,cn(T,{shape:{points:F,stackedOnPoints:S}},r),Su(T)}Xi(T,vi(r),{labelDataIndex:w[D-1],defaultText:i.getName(w[D-1]),inheritColor:E.fill},{normal:{verticalAlign:\"middle\"}}),T.setTextConfig({position:null,local:!0});var O=T.getTextContent();O&&(O.x=k.x-P,O.y=k.y0+k.y/2),T.useStyle(E),i.setItemGraphicEl(y,T),qi(T,r),sa(T,B.get(\"focus\"),B.get(\"blurScope\"),B.get(\"disabled\"))}this._layersSeries=s,this._layers=p},t.type=\"themeRiver\",t}(Cn);function X6t(e,t,r){var n=new Zr({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}});return Yn(n,{shape:{x:e.x-50,width:e.width+100,height:e.height+20}},t,r),n}var ak=2,J6t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new pC(Pt(this.getData,this),Pt(this.getRawData,this))},t.prototype.fixData=function(r){var n=r.length,a={},i=eP(r,function(f){return a.hasOwnProperty(f[0]+\"\")||(a[f[0]+\"\"]=-1),f[2]}),o=[];i.buckets.each(function(f,h){o.push({name:h,dataList:f})});for(var l=o.length,s=0;s<l;++s){for(var u=o[s].name,c=0;c<o[s].dataList.length;++c){var d=o[s].dataList[c][0]+\"\";a[d]=s}for(var d in a)a.hasOwnProperty(d)&&a[d]!==s&&(a[d]=s,r[n]=[d,0,u],n++)}return r},t.prototype.getInitialData=function(r,n){for(var a=this.getReferringComponents(\"singleAxis\",Oa).models[0],i=a.get(\"type\"),o=hn(r.data,function(p){return p[2]!==void 0}),l=this.fixData(o||[]),s=[],u=this.nameMap=Gt(),c=0,d=0;d<l.length;++d)s.push(l[d][ak]),u.get(l[d][ak])||(u.set(l[d][ak],c),c++);var f=i1(l,{coordDimensions:[\"single\"],dimensionsDefine:[{name:\"time\",type:Z3(i)},{name:\"value\",type:\"float\"},{name:\"name\",type:\"ordinal\"}],encodeDefine:{single:0,value:1,itemName:2}}).dimensions,h=new xo(f,this);return h.initData(l),h},t.prototype.getLayerSeries=function(){for(var r=this.getData(),n=r.count(),a=[],i=0;i<n;++i)a[i]=i;var o=r.mapDimension(\"single\"),l=eP(a,function(u){return r.get(\"name\",u)}),s=[];return l.buckets.each(function(u,c){u.sort(function(d,f){return r.get(o,d)-r.get(o,f)}),s.push({name:c,indices:u})}),s},t.prototype.getAxisTooltipData=function(r,n,a){nt(r)||(r=r?[r]:[]);for(var i=this.getData(),o=this.getLayerSeries(),l=[],s=o.length,u,c=0;c<s;++c){for(var d=Number.MAX_VALUE,f=-1,h=o[c].indices.length,p=0;p<h;++p){var v=i.get(r[0],o[c].indices[p]),g=Math.abs(v-n);g<=d&&(u=v,d=g,f=o[c].indices[p])}l.push(f)}return{dataIndices:l,nestestValue:u}},t.prototype.formatTooltip=function(r,n,a){var i=this.getData(),o=i.getName(r),l=i.get(i.mapDimension(\"value\"),r);return gi(\"nameValue\",{name:o,value:l})},t.type=\"series.themeRiver\",t.dependencies=[\"singleAxis\"],t.defaultOption={z:2,colorBy:\"data\",coordinateSystem:\"singleAxis\",boundaryGap:[\"10%\",\"10%\"],singleAxisIndex:0,animationEasing:\"linear\",label:{margin:4,show:!0,position:\"left\",fontSize:11},emphasis:{label:{show:!0}}},t}(_n);function Z6t(e,t){e.eachSeriesByType(\"themeRiver\",function(r){var n=r.getData(),a=r.coordinateSystem,i={},o=a.getRect();i.rect=o;var l=r.get(\"boundaryGap\"),s=a.getAxis();if(i.boundaryGap=l,s.orient===\"horizontal\"){l[0]=Ft(l[0],o.height),l[1]=Ft(l[1],o.height);var u=o.height-l[0]-l[1];fZ(n,r,u)}else{l[0]=Ft(l[0],o.width),l[1]=Ft(l[1],o.width);var c=o.width-l[0]-l[1];fZ(n,r,c)}n.setLayout(\"layoutInfo\",i)})}function fZ(e,t,r){if(e.count())for(var n=t.coordinateSystem,a=t.getLayerSeries(),i=e.mapDimension(\"single\"),o=e.mapDimension(\"value\"),l=ot(a,function(g){return ot(g.indices,function(y){var b=n.dataToPoint(e.get(i,y));return b[1]=e.get(o,y),b})}),s=Q6t(l),u=s.y0,c=r/s.max,d=a.length,f=a[0].indices.length,h,p=0;p<f;++p){h=u[p]*c,e.setItemLayout(a[0].indices[p],{layerIndex:0,x:l[0][p][0],y0:h,y:l[0][p][1]*c});for(var v=1;v<d;++v)h+=l[v-1][p][1]*c,e.setItemLayout(a[v].indices[p],{layerIndex:v,x:l[v][p][0],y0:h,y:l[v][p][1]*c})}}function Q6t(e){for(var t=e.length,r=e[0].length,n=[],a=[],i=0,o=0;o<r;++o){for(var l=0,s=0;s<t;++s)l+=e[s][o][1];l>i&&(i=l),n.push(l)}for(var u=0;u<r;++u)a[u]=(i-n[u])/2;i=0;for(var c=0;c<r;++c){var d=n[c]+a[c];d>i&&(i=d)}return{y0:a,max:i}}function eDt(e){e.registerChartView(q6t),e.registerSeriesModel(J6t),e.registerLayout(Z6t),e.registerProcessor(hC(\"themeRiver\"))}var tDt=2,rDt=4,hZ=function(e){Re(t,e);function t(r,n,a,i){var o=e.call(this)||this;o.z2=tDt,o.textConfig={inside:!0},br(o).seriesIndex=n.seriesIndex;var l=new Jr({z2:rDt,silent:r.getModel().get([\"label\",\"silent\"])});return o.setTextContent(l),o.updateData(!0,r,n,a,i),o}return t.prototype.updateData=function(r,n,a,i,o){this.node=n,n.piece=this,a=a||this._seriesModel,i=i||this._ecModel;var l=this;br(l).dataIndex=n.dataIndex;var s=n.getModel(),u=s.getModel(\"emphasis\"),c=n.getLayout(),d=Xe({},c);d.label=null;var f=n.getVisual(\"style\");f.lineJoin=\"bevel\";var h=n.getVisual(\"decal\");h&&(f.decal=sg(h,o));var p=bp(s.getModel(\"itemStyle\"),d,!0);Xe(d,p),q(Ko,function(b){var x=l.ensureState(b),F=s.getModel([b,\"itemStyle\"]);x.style=F.getItemStyle();var S=bp(F,d);S&&(x.shape=S)}),r?(l.setShape(d),l.shape.r=c.r0,Yn(l,{shape:{r:c.r}},a,n.dataIndex)):(cn(l,{shape:d},a),Su(l)),l.useStyle(f),this._updateLabel(a);var v=s.getShallow(\"cursor\");v&&l.attr(\"cursor\",v),this._seriesModel=a||this._seriesModel,this._ecModel=i||this._ecModel;var g=u.get(\"focus\"),y=g===\"relative\"?ng(n.getAncestorsIndices(),n.getDescendantIndices()):g===\"ancestor\"?n.getAncestorsIndices():g===\"descendant\"?n.getDescendantIndices():g;sa(this,y,u.get(\"blurScope\"),u.get(\"disabled\"))},t.prototype._updateLabel=function(r){var n=this,a=this.node.getModel(),i=a.getModel(\"label\"),o=this.node.getLayout(),l=o.endAngle-o.startAngle,s=(o.startAngle+o.endAngle)/2,u=Math.cos(s),c=Math.sin(s),d=this,f=d.getTextContent(),h=this.node.dataIndex,p=i.get(\"minAngle\")/180*Math.PI,v=i.get(\"show\")&&!(p!=null&&Math.abs(l)<p);f.ignore=!v,q(T2,function(y){var b=y===\"normal\"?a.getModel(\"label\"):a.getModel([y,\"label\"]),x=y===\"normal\",F=x?f:f.ensureState(y),S=r.getFormattedLabel(h,y);x&&(S=S||n.node.name),F.style=Mn(b,{},null,y!==\"normal\",!0),S&&(F.style.text=S);var E=b.get(\"show\");E!=null&&!x&&(F.ignore=!E);var w=g(b,\"position\"),D=x?d:d.states[y],A=D.style.fill;D.textConfig={outsideFill:b.get(\"color\")===\"inherit\"?A:null,inside:w!==\"outside\"};var _,I=g(b,\"distance\")||0,M=g(b,\"align\"),T=g(b,\"rotate\"),k=Math.PI*.5,R=Math.PI*1.5,P=Pl(T===\"tangential\"?Math.PI/2-s:s),B=P>k&&!ag(P-k)&&P<R;w===\"outside\"?(_=o.r+I,M=B?\"right\":\"left\"):!M||M===\"center\"?(l===2*Math.PI&&o.r0===0?_=0:_=(o.r+o.r0)/2,M=\"center\"):M===\"left\"?(_=o.r0+I,M=B?\"right\":\"left\"):M===\"right\"&&(_=o.r-I,M=B?\"left\":\"right\"),F.style.align=M,F.style.verticalAlign=g(b,\"verticalAlign\")||\"middle\",F.x=_*u+o.cx,F.y=_*c+o.cy;var N=0;T===\"radial\"?N=Pl(-s)+(B?Math.PI:0):T===\"tangential\"?N=Pl(Math.PI/2-s)+(B?Math.PI:0):nn(T)&&(N=T*Math.PI/180),F.rotation=Pl(N)});function g(y,b){var x=y.get(b);return x??i.get(b)}f.dirtyStyle()},t}(So),t9=\"sunburstRootToNode\",pZ=\"sunburstHighlight\",nDt=\"sunburstUnhighlight\";function aDt(e){e.registerAction({type:t9,update:\"updateView\"},function(t,r){r.eachComponent({mainType:\"series\",subType:\"sunburst\",query:t},n);function n(a,i){var o=V2(t,[t9],a);if(o){var l=a.getViewRoot();l&&(t.direction=F$(l,o.node)?\"rollUp\":\"drillDown\"),a.resetViewRoot(o.node)}}}),e.registerAction({type:pZ,update:\"none\"},function(t,r,n){t=Xe({},t),r.eachComponent({mainType:\"series\",subType:\"sunburst\",query:t},a);function a(i){var o=V2(t,[pZ],i);o&&(t.dataIndex=o.node.dataIndex)}n.dispatchAction(Xe(t,{type:\"highlight\"}))}),e.registerAction({type:nDt,update:\"updateView\"},function(t,r,n){t=Xe({},t),n.dispatchAction(Xe(t,{type:\"downplay\"}))})}var iDt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a,i){var o=this;this.seriesModel=r,this.api=a,this.ecModel=n;var l=r.getData(),s=l.tree.root,u=r.getViewRoot(),c=this.group,d=r.get(\"renderLabelForZeroData\"),f=[];u.eachNode(function(b){f.push(b)});var h=this._oldChildren||[];p(f,h),y(s,u),this._initEvents(),this._oldChildren=f;function p(b,x){if(b.length===0&&x.length===0)return;new pd(x,b,F,F).add(S).update(S).remove(wr(S,null)).execute();function F(E){return E.getId()}function S(E,w){var D=E==null?null:b[E],A=w==null?null:x[w];v(D,A)}}function v(b,x){if(!d&&b&&!b.getValue()&&(b=null),b!==s&&x!==s){if(x&&x.piece)b?(x.piece.updateData(!1,b,r,n,a),l.setItemGraphicEl(b.dataIndex,x.piece)):g(x);else if(b){var F=new hZ(b,r,n,a);c.add(F),l.setItemGraphicEl(b.dataIndex,F)}}}function g(b){b&&b.piece&&(c.remove(b.piece),b.piece=null)}function y(b,x){x.depth>0?(o.virtualPiece?o.virtualPiece.updateData(!1,b,r,n,a):(o.virtualPiece=new hZ(b,r,n,a),c.add(o.virtualPiece)),x.piece.off(\"click\"),o.virtualPiece.on(\"click\",function(F){o._rootToNode(x.parentNode)})):o.virtualPiece&&(c.remove(o.virtualPiece),o.virtualPiece=null)}},t.prototype._initEvents=function(){var r=this;this.group.off(\"click\"),this.group.on(\"click\",function(n){var a=!1,i=r.seriesModel.getViewRoot();i.eachNode(function(o){if(!a&&o.piece&&o.piece===n.target){var l=o.getModel().get(\"nodeClick\");if(l===\"rootToNode\")r._rootToNode(o);else if(l===\"link\"){var s=o.getModel(),u=s.get(\"link\");if(u){var c=s.get(\"target\",!0)||\"_blank\";H3(u,c)}}a=!0}})})},t.prototype._rootToNode=function(r){r!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:t9,from:this.uid,seriesId:this.seriesModel.id,targetNode:r})},t.prototype.containPoint=function(r,n){var a=n.getData(),i=a.getItemLayout(0);if(i){var o=r[0]-i.cx,l=r[1]-i.cy,s=Math.sqrt(o*o+l*l);return s<=i.r&&s>=i.r0}},t.type=\"sunburst\",t}(Cn),oDt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.ignoreStyleOnData=!0,r}return t.prototype.getInitialData=function(r,n){var a={name:r.name,children:r.data};Uge(a);var i=this._levelModels=ot(r.levels||[],function(s){return new pn(s,this,n)},this),o=C$.createTree(a,this,l);function l(s){s.wrapMethod(\"getItemModel\",function(u,c){var d=o.getNodeByDataIndex(c),f=i[d.depth];return f&&(u.parentModel=f),u})}return o.data},t.prototype.optionUpdated=function(){this.resetViewRoot()},t.prototype.getDataParams=function(r){var n=e.prototype.getDataParams.apply(this,arguments),a=this.getData().tree.getNodeByDataIndex(r);return n.treePathInfo=xA(a,this),n},t.prototype.getLevelModel=function(r){return this._levelModels&&this._levelModels[r.depth]},t.prototype.getViewRoot=function(){return this._viewRoot},t.prototype.resetViewRoot=function(r){r?this._viewRoot=r:r=this._viewRoot;var n=this.getRawData().tree.root;(!r||r!==n&&!n.contains(r))&&(this._viewRoot=n)},t.prototype.enableAriaDecal=function(){J0e(this)},t.type=\"series.sunburst\",t.defaultOption={z:2,center:[\"50%\",\"50%\"],radius:[0,\"75%\"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:\"rootToNode\",renderLabelForZeroData:!1,label:{rotate:\"radial\",show:!0,opacity:1,align:\"center\",position:\"inside\",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:\"white\",borderType:\"solid\",shadowBlur:0,shadowColor:\"rgba(0, 0, 0, 0.2)\",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:\"descendant\"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:\"expansion\",animationDuration:1e3,animationDurationUpdate:500,data:[],sort:\"desc\"},t}(_n);function Uge(e){var t=0;q(e.children,function(n){Uge(n);var a=n.value;nt(a)&&(a=a[0]),t+=a});var r=e.value;nt(r)&&(r=r[0]),(r==null||isNaN(r))&&(r=t),r<0&&(r=0),nt(e.value)?e.value[0]=r:e.value=r}var mZ=Math.PI/180;function lDt(e,t,r){t.eachSeriesByType(e,function(n){var a=n.get(\"center\"),i=n.get(\"radius\");nt(i)||(i=[0,i]),nt(a)||(a=[a,a]);var o=r.getWidth(),l=r.getHeight(),s=Math.min(o,l),u=Ft(a[0],o),c=Ft(a[1],l),d=Ft(i[0],s/2),f=Ft(i[1],s/2),h=-n.get(\"startAngle\")*mZ,p=n.get(\"minAngle\")*mZ,v=n.getData().tree.root,g=n.getViewRoot(),y=g.depth,b=n.get(\"sort\");b!=null&&Kge(g,b);var x=0;q(g.children,function(P){!isNaN(P.getValue())&&x++});var F=g.getValue(),S=Math.PI/(F||x)*2,E=g.depth>0,w=g.height-(E?-1:1),D=(f-d)/(w||1),A=n.get(\"clockwise\"),_=n.get(\"stillShowZeroSum\"),I=A?1:-1,M=function(P,B){if(P){var N=B;if(P!==v){var O=P.getValue(),z=F===0&&_?S:O*S;z<p&&(z=p),N=B+I*z;var W=P.depth-y-(E?-1:1),L=d+D*W,j=d+D*(W+1),H=n.getLevelModel(P);if(H){var V=H.get(\"r0\",!0),U=H.get(\"r\",!0),Q=H.get(\"radius\",!0);Q!=null&&(V=Q[0],U=Q[1]),V!=null&&(L=Ft(V,s/2)),U!=null&&(j=Ft(U,s/2))}P.setLayout({angle:z,startAngle:B,endAngle:N,clockwise:A,cx:u,cy:c,r0:L,r:j})}if(P.children&&P.children.length){var K=0;q(P.children,function(Y){K+=M(Y,B+K)})}return N-B}};if(E){var T=d,k=d+D,R=Math.PI*2;v.setLayout({angle:R,startAngle:h,endAngle:h+R,clockwise:A,cx:u,cy:c,r0:T,r:k})}M(g,h)})}function Kge(e,t){var r=e.children||[];e.children=sDt(r,t),r.length&&q(e.children,function(n){Kge(n,t)})}function sDt(e,t){if(er(t)){var r=ot(e,function(a,i){var o=a.getValue();return{params:{depth:a.depth,height:a.height,dataIndex:a.dataIndex,getValue:function(){return o}},index:i}});return r.sort(function(a,i){return t(a.params,i.params)}),ot(r,function(a){return e[a.index]})}else{var n=t===\"asc\";return e.sort(function(a,i){var o=(a.getValue()-i.getValue())*(n?1:-1);return o===0?(a.dataIndex-i.dataIndex)*(n?-1:1):o})}}function uDt(e){var t={};function r(n,a,i){for(var o=n;o&&o.depth>1;)o=o.parentNode;var l=a.getColorFromPalette(o.name||o.dataIndex+\"\",t);return n.depth>1&&At(l)&&(l=I3(l,(n.depth-1)/(i-1)*.5)),l}e.eachSeriesByType(\"sunburst\",function(n){var a=n.getData(),i=a.tree;i.eachNode(function(o){var l=o.getModel(),s=l.getModel(\"itemStyle\").getItemStyle();s.fill||(s.fill=r(o,n,i.root.height));var u=a.ensureUniqueItemVisual(o.dataIndex,\"style\");Xe(u,s)})})}function cDt(e){e.registerChartView(iDt),e.registerSeriesModel(oDt),e.registerLayout(wr(lDt,\"sunburst\")),e.registerProcessor(wr(hC,\"sunburst\")),e.registerVisual(uDt),aDt(e)}var vZ={color:\"fill\",borderColor:\"stroke\"},dDt={symbol:1,symbolSize:1,symbolKeepAspect:1,legendIcon:1,visualMeta:1,liftZ:1,decal:1},Jc=rn(),fDt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.optionUpdated=function(){this.currentZLevel=this.get(\"zlevel\",!0),this.currentZ=this.get(\"z\",!0)},t.prototype.getInitialData=function(r,n){return wc(null,this)},t.prototype.getDataParams=function(r,n,a){var i=e.prototype.getDataParams.call(this,r,n);return a&&(i.info=Jc(a).info),i},t.type=\"series.custom\",t.dependencies=[\"grid\",\"polar\",\"geo\",\"singleAxis\",\"calendar\"],t.defaultOption={coordinateSystem:\"cartesian2d\",z:2,legendHoverLink:!0,clip:!1},t}(_n);function hDt(e,t){return t=t||[0,0],ot([\"x\",\"y\"],function(r,n){var a=this.getAxis(r),i=t[n],o=e[n]/2;return a.type===\"category\"?a.getBandWidth():Math.abs(a.dataToCoord(i-o)-a.dataToCoord(i+o))},this)}function pDt(e){var t=e.master.getRect();return{coordSys:{type:\"cartesian2d\",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(r){return e.dataToPoint(r)},size:Pt(hDt,e)}}}function mDt(e,t){return t=t||[0,0],ot([0,1],function(r){var n=t[r],a=e[r]/2,i=[],o=[];return i[r]=n-a,o[r]=n+a,i[1-r]=o[1-r]=t[1-r],Math.abs(this.dataToPoint(i)[r]-this.dataToPoint(o)[r])},this)}function vDt(e){var t=e.getBoundingRect();return{coordSys:{type:\"geo\",x:t.x,y:t.y,width:t.width,height:t.height,zoom:e.getZoom()},api:{coord:function(r){return e.dataToPoint(r)},size:Pt(mDt,e)}}}function gDt(e,t){var r=this.getAxis(),n=t instanceof Array?t[0]:t,a=(e instanceof Array?e[0]:e)/2;return r.type===\"category\"?r.getBandWidth():Math.abs(r.dataToCoord(n-a)-r.dataToCoord(n+a))}function yDt(e){var t=e.getRect();return{coordSys:{type:\"singleAxis\",x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(r){return e.dataToPoint(r)},size:Pt(gDt,e)}}}function bDt(e,t){return t=t||[0,0],ot([\"Radius\",\"Angle\"],function(r,n){var a=\"get\"+r+\"Axis\",i=this[a](),o=t[n],l=e[n]/2,s=i.type===\"category\"?i.getBandWidth():Math.abs(i.dataToCoord(o-l)-i.dataToCoord(o+l));return r===\"Angle\"&&(s=s*Math.PI/180),s},this)}function xDt(e){var t=e.getRadiusAxis(),r=e.getAngleAxis(),n=t.getExtent();return n[0]>n[1]&&n.reverse(),{coordSys:{type:\"polar\",cx:e.cx,cy:e.cy,r:n[1],r0:n[0]},api:{coord:function(a){var i=t.dataToRadius(a[0]),o=r.dataToAngle(a[1]),l=e.coordToPoint([i,o]);return l.push(i,o*Math.PI/180),l},size:Pt(bDt,e)}}}function CDt(e){var t=e.getRect(),r=e.getRangeInfo();return{coordSys:{type:\"calendar\",x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:e.getCellWidth(),cellHeight:e.getCellHeight(),rangeInfo:{start:r.start,end:r.end,weeks:r.weeks,dayCount:r.allDay}},api:{coord:function(n,a){return e.dataToPoint(n,a)}}}}function Yge(e,t,r,n){return e&&(e.legacy||e.legacy!==!1&&!r&&!n&&t!==\"tspan\"&&(t===\"text\"||$t(e,\"text\")))}function qge(e,t,r){var n=e,a,i,o;if(t===\"text\")o=n;else{o={},$t(n,\"text\")&&(o.text=n.text),$t(n,\"rich\")&&(o.rich=n.rich),$t(n,\"textFill\")&&(o.fill=n.textFill),$t(n,\"textStroke\")&&(o.stroke=n.textStroke),$t(n,\"fontFamily\")&&(o.fontFamily=n.fontFamily),$t(n,\"fontSize\")&&(o.fontSize=n.fontSize),$t(n,\"fontStyle\")&&(o.fontStyle=n.fontStyle),$t(n,\"fontWeight\")&&(o.fontWeight=n.fontWeight),i={type:\"text\",style:o,silent:!0},a={};var l=$t(n,\"textPosition\");r?a.position=l?n.textPosition:\"inside\":l&&(a.position=n.textPosition),$t(n,\"textPosition\")&&(a.position=n.textPosition),$t(n,\"textOffset\")&&(a.offset=n.textOffset),$t(n,\"textRotation\")&&(a.rotation=n.textRotation),$t(n,\"textDistance\")&&(a.distance=n.textDistance)}return gZ(o,e),q(o.rich,function(s){gZ(s,s)}),{textConfig:a,textContent:i}}function gZ(e,t){t&&(t.font=t.textFont||t.font,$t(t,\"textStrokeWidth\")&&(e.lineWidth=t.textStrokeWidth),$t(t,\"textAlign\")&&(e.align=t.textAlign),$t(t,\"textVerticalAlign\")&&(e.verticalAlign=t.textVerticalAlign),$t(t,\"textLineHeight\")&&(e.lineHeight=t.textLineHeight),$t(t,\"textWidth\")&&(e.width=t.textWidth),$t(t,\"textHeight\")&&(e.height=t.textHeight),$t(t,\"textBackgroundColor\")&&(e.backgroundColor=t.textBackgroundColor),$t(t,\"textPadding\")&&(e.padding=t.textPadding),$t(t,\"textBorderColor\")&&(e.borderColor=t.textBorderColor),$t(t,\"textBorderWidth\")&&(e.borderWidth=t.textBorderWidth),$t(t,\"textBorderRadius\")&&(e.borderRadius=t.textBorderRadius),$t(t,\"textBoxShadowColor\")&&(e.shadowColor=t.textBoxShadowColor),$t(t,\"textBoxShadowBlur\")&&(e.shadowBlur=t.textBoxShadowBlur),$t(t,\"textBoxShadowOffsetX\")&&(e.shadowOffsetX=t.textBoxShadowOffsetX),$t(t,\"textBoxShadowOffsetY\")&&(e.shadowOffsetY=t.textBoxShadowOffsetY))}function yZ(e,t,r){var n=e;n.textPosition=n.textPosition||r.position||\"inside\",r.offset!=null&&(n.textOffset=r.offset),r.rotation!=null&&(n.textRotation=r.rotation),r.distance!=null&&(n.textDistance=r.distance);var a=n.textPosition.indexOf(\"inside\")>=0,i=e.fill||\"#000\";bZ(n,t);var o=n.textFill==null;return a?o&&(n.textFill=r.insideFill||\"#fff\",!n.textStroke&&r.insideStroke&&(n.textStroke=r.insideStroke),!n.textStroke&&(n.textStroke=i),n.textStrokeWidth==null&&(n.textStrokeWidth=2)):(o&&(n.textFill=e.fill||r.outsideFill||\"#000\"),!n.textStroke&&r.outsideStroke&&(n.textStroke=r.outsideStroke)),n.text=t.text,n.rich=t.rich,q(t.rich,function(l){bZ(l,l)}),n}function bZ(e,t){t&&($t(t,\"fill\")&&(e.textFill=t.fill),$t(t,\"stroke\")&&(e.textStroke=t.fill),$t(t,\"lineWidth\")&&(e.textStrokeWidth=t.lineWidth),$t(t,\"font\")&&(e.font=t.font),$t(t,\"fontStyle\")&&(e.fontStyle=t.fontStyle),$t(t,\"fontWeight\")&&(e.fontWeight=t.fontWeight),$t(t,\"fontSize\")&&(e.fontSize=t.fontSize),$t(t,\"fontFamily\")&&(e.fontFamily=t.fontFamily),$t(t,\"align\")&&(e.textAlign=t.align),$t(t,\"verticalAlign\")&&(e.textVerticalAlign=t.verticalAlign),$t(t,\"lineHeight\")&&(e.textLineHeight=t.lineHeight),$t(t,\"width\")&&(e.textWidth=t.width),$t(t,\"height\")&&(e.textHeight=t.height),$t(t,\"backgroundColor\")&&(e.textBackgroundColor=t.backgroundColor),$t(t,\"padding\")&&(e.textPadding=t.padding),$t(t,\"borderColor\")&&(e.textBorderColor=t.borderColor),$t(t,\"borderWidth\")&&(e.textBorderWidth=t.borderWidth),$t(t,\"borderRadius\")&&(e.textBorderRadius=t.borderRadius),$t(t,\"shadowColor\")&&(e.textBoxShadowColor=t.shadowColor),$t(t,\"shadowBlur\")&&(e.textBoxShadowBlur=t.shadowBlur),$t(t,\"shadowOffsetX\")&&(e.textBoxShadowOffsetX=t.shadowOffsetX),$t(t,\"shadowOffsetY\")&&(e.textBoxShadowOffsetY=t.shadowOffsetY),$t(t,\"textShadowColor\")&&(e.textShadowColor=t.textShadowColor),$t(t,\"textShadowBlur\")&&(e.textShadowBlur=t.textShadowBlur),$t(t,\"textShadowOffsetX\")&&(e.textShadowOffsetX=t.textShadowOffsetX),$t(t,\"textShadowOffsetY\")&&(e.textShadowOffsetY=t.textShadowOffsetY))}var Xge={position:[\"x\",\"y\"],scale:[\"scaleX\",\"scaleY\"],origin:[\"originX\",\"originY\"]},xZ=Ur(Xge);Ds(mc,function(e,t){return e[t]=1,e},{});mc.join(\", \");var c4=[\"\",\"style\",\"shape\",\"extra\"],fg=rn();function L$(e,t,r,n,a){var i=e+\"Animation\",o=qg(e,n,a)||{},l=fg(t).userDuring;return o.duration>0&&(o.during=l?Pt(DDt,{el:t,userDuring:l}):null,o.setToFinal=!0,o.scope=e),Xe(o,r[i]),o}function jw(e,t,r,n){n=n||{};var a=n.dataIndex,i=n.isInit,o=n.clearStyle,l=r.isAnimationEnabled(),s=fg(e),u=t.style;s.userDuring=t.during;var c={},d={};if(_Dt(e,t,d),FZ(\"shape\",t,d),FZ(\"extra\",t,d),!i&&l&&(ADt(e,t,c),CZ(\"shape\",e,t,c),CZ(\"extra\",e,t,c),TDt(e,t,u,c)),d.style=u,FDt(e,d,o),wDt(e,t),l)if(i){var f={};q(c4,function(p){var v=p?t[p]:t;v&&v.enterFrom&&(p&&(f[p]=f[p]||{}),Xe(p?f[p]:f,v.enterFrom))});var h=L$(\"enter\",e,t,r,a);h.duration>0&&e.animateFrom(f,h)}else SDt(e,t,a||0,r,c);Jge(e,t),u?e.dirty():e.markRedraw()}function Jge(e,t){for(var r=fg(e).leaveToProps,n=0;n<c4.length;n++){var a=c4[n],i=a?t[a]:t;i&&i.leaveTo&&(r||(r=fg(e).leaveToProps={}),a&&(r[a]=r[a]||{}),Xe(a?r[a]:r,i.leaveTo))}}function SA(e,t,r,n){if(e){var a=e.parent,i=fg(e).leaveToProps;if(i){var o=L$(\"update\",e,t,r,0);o.done=function(){a.remove(e)},e.animateTo(i,o)}else a.remove(e)}}function Np(e){return e===\"all\"}function FDt(e,t,r){var n=t.style;if(!e.isGroup&&n){if(r){e.useStyle({});for(var a=e.animators,i=0;i<a.length;i++){var o=a[i];o.targetName===\"style\"&&o.changeTarget(e.style)}}e.setStyle(n)}t&&(t.style=null,t&&e.attr(t),t.style=n)}function SDt(e,t,r,n,a){if(a){var i=L$(\"update\",e,t,n,r);i.duration>0&&e.animateFrom(a,i)}}function wDt(e,t){$t(t,\"silent\")&&(e.silent=t.silent),$t(t,\"ignore\")&&(e.ignore=t.ignore),e instanceof As&&$t(t,\"invisible\")&&(e.invisible=t.invisible),e instanceof Vr&&$t(t,\"autoBatch\")&&(e.autoBatch=t.autoBatch)}var Lu={},EDt={setTransform:function(e,t){return Lu.el[e]=t,this},getTransform:function(e){return Lu.el[e]},setShape:function(e,t){var r=Lu.el,n=r.shape||(r.shape={});return n[e]=t,r.dirtyShape&&r.dirtyShape(),this},getShape:function(e){var t=Lu.el.shape;if(t)return t[e]},setStyle:function(e,t){var r=Lu.el,n=r.style;return n&&(n[e]=t,r.dirtyStyle&&r.dirtyStyle()),this},getStyle:function(e){var t=Lu.el.style;if(t)return t[e]},setExtra:function(e,t){var r=Lu.el.extra||(Lu.el.extra={});return r[e]=t,this},getExtra:function(e){var t=Lu.el.extra;if(t)return t[e]}};function DDt(){var e=this,t=e.el;if(t){var r=fg(t).userDuring,n=e.userDuring;if(r!==n){e.el=e.userDuring=null;return}Lu.el=t,n(EDt)}}function CZ(e,t,r,n){var a=r[e];if(a){var i=t[e],o;if(i){var l=r.transition,s=a.transition;if(s)if(!o&&(o=n[e]={}),Np(s))Xe(o,i);else for(var u=An(s),c=0;c<u.length;c++){var d=u[c],f=i[d];o[d]=f}else if(Np(l)||Mr(l,e)>=0){!o&&(o=n[e]={});for(var h=Ur(i),c=0;c<h.length;c++){var d=h[c],f=i[d];IDt(a[d],f)&&(o[d]=f)}}}}}function FZ(e,t,r){var n=t[e];if(n)for(var a=r[e]={},i=Ur(n),o=0;o<i.length;o++){var l=i[o];a[l]=db(n[l])}}function ADt(e,t,r){for(var n=t.transition,a=Np(n)?mc:An(n||[]),i=0;i<a.length;i++){var o=a[i];if(!(o===\"style\"||o===\"shape\"||o===\"extra\")){var l=e[o];r[o]=l}}}function _Dt(e,t,r){for(var n=0;n<xZ.length;n++){var a=xZ[n],i=Xge[a],o=t[a];o&&(r[i[0]]=o[0],r[i[1]]=o[1])}for(var n=0;n<mc.length;n++){var l=mc[n];t[l]!=null&&(r[l]=t[l])}}function TDt(e,t,r,n){if(r){var a=e.style,i;if(a){var o=r.transition,l=t.transition;if(o&&!Np(o)){var s=An(o);!i&&(i=n.style={});for(var u=0;u<s.length;u++){var c=s[u],d=a[c];i[c]=d}}else if(e.getAnimationStyleProps&&(Np(l)||Np(o)||Mr(l,\"style\")>=0)){var f=e.getAnimationStyleProps(),h=f?f.style:null;if(h){!i&&(i=n.style={});for(var p=Ur(r),u=0;u<p.length;u++){var c=p[u];if(h[c]){var d=a[c];i[c]=d}}}}}}}function IDt(e,t){return Yi(e)?e!==t:e!=null&&isFinite(e)}var Zge=rn(),kDt=[\"percent\",\"easing\",\"shape\",\"style\",\"extra\"];function Qge(e){e.stopAnimation(\"keyframe\"),e.attr(Zge(e))}function d4(e,t,r){if(!(!r.isAnimationEnabled()||!t)){if(nt(t)){q(t,function(l){d4(e,l,r)});return}var n=t.keyframes,a=t.duration;if(r&&a==null){var i=qg(\"enter\",r,0);a=i&&i.duration}if(!(!n||!a)){var o=Zge(e);q(c4,function(l){if(!(l&&!e[l])){var s;n.sort(function(u,c){return u.percent-c.percent}),q(n,function(u){var c=e.animators,d=l?u[l]:u;if(d){var f=Ur(d);if(l||(f=hn(f,function(v){return Mr(kDt,v)<0})),!!f.length){s||(s=e.animate(l,t.loop,!0),s.scope=\"keyframe\");for(var h=0;h<c.length;h++)c[h]!==s&&c[h].targetName===s.targetName&&c[h].stopTracks(f);l&&(o[l]=o[l]||{});var p=l?o[l]:o;q(f,function(v){p[v]=((l?e[l]:e)||{})[v]}),s.whenWithKeys(a*u.percent,d,f,u.easing)}}}),s&&s.delay(t.delay||0).duration(a).start(t.easing)}})}}}var Zc=\"emphasis\",vf=\"normal\",j$=\"blur\",z$=\"select\",Zf=[vf,Zc,j$,z$],ik={normal:[\"itemStyle\"],emphasis:[Zc,\"itemStyle\"],blur:[j$,\"itemStyle\"],select:[z$,\"itemStyle\"]},ok={normal:[\"label\"],emphasis:[Zc,\"label\"],blur:[j$,\"label\"],select:[z$,\"label\"]},RDt=[\"x\",\"y\"],MDt=\"e\\0\\0\",Ql={normal:{},emphasis:{},blur:{},select:{}},PDt={cartesian2d:pDt,geo:vDt,single:yDt,polar:xDt,calendar:CDt};function r9(e){return e instanceof Vr}function n9(e){return e instanceof As}function ODt(e,t){t.copyTransform(e),n9(t)&&n9(e)&&(t.setStyle(e.style),t.z=e.z,t.z2=e.z2,t.zlevel=e.zlevel,t.invisible=e.invisible,t.ignore=e.ignore,r9(t)&&r9(e)&&t.setShape(e.shape))}var BDt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a,i){this._progressiveEls=null;var o=this._data,l=r.getData(),s=this.group,u=SZ(r,l,n,a);o||s.removeAll(),l.diff(o).add(function(d){lk(a,null,d,u(d,i),r,s,l)}).remove(function(d){var f=o.getItemGraphicEl(d);f&&SA(f,Jc(f).option,r)}).update(function(d,f){var h=o.getItemGraphicEl(f);lk(a,h,d,u(d,i),r,s,l)}).execute();var c=r.get(\"clip\",!0)?dC(r.coordinateSystem,!1,r):null;c?s.setClipPath(c):s.removeClipPath(),this._data=l},t.prototype.incrementalPrepareRender=function(r,n,a){this.group.removeAll(),this._data=null},t.prototype.incrementalRender=function(r,n,a,i,o){var l=n.getData(),s=SZ(n,l,a,i),u=this._progressiveEls=[];function c(h){h.isGroup||(h.incremental=!0,h.ensureState(\"emphasis\").hoverLayer=!0)}for(var d=r.start;d<r.end;d++){var f=lk(null,null,d,s(d,o),n,this.group,l);f&&(f.traverse(c),u.push(f))}},t.prototype.eachRendered=function(r){sh(this._progressiveEls||this.group,r)},t.prototype.filterForExposedEvent=function(r,n,a,i){var o=n.element;if(o==null||a.name===o)return!0;for(;(a=a.__hostTarget||a.parent)&&a!==this.group;)if(a.name===o)return!0;return!1},t.type=\"custom\",t}(Cn);function H$(e){var t=e.type,r;if(t===\"path\"){var n=e.shape,a=n.width!=null&&n.height!=null?{x:n.x||0,y:n.y||0,width:n.width,height:n.height}:null,i=r1e(n);r=aC(i,null,a,n.layout||\"center\"),Jc(r).customPathData=i}else if(t===\"image\")r=new yi({}),Jc(r).customImagePath=e.style.image;else if(t===\"text\")r=new Jr({});else if(t===\"group\")r=new pr;else{if(t===\"compoundPath\")throw new Error('\"compoundPath\" is not supported yet.');var o=QD(t);if(!o){var l=\"\";bn(l)}r=new o}return Jc(r).customGraphicType=t,r.name=e.name,r.z2EmphasisLift=1,r.z2SelectLift=1,r}function V$(e,t,r,n,a,i,o){Qge(t);var l=a&&a.normal.cfg;l&&t.setTextConfig(l),n&&n.transition==null&&(n.transition=RDt);var s=n&&n.style;if(s){if(t.type===\"text\"){var u=s;$t(u,\"textFill\")&&(u.fill=u.textFill),$t(u,\"textStroke\")&&(u.stroke=u.textStroke)}var c=void 0,d=r9(t)?s.decal:null;e&&d&&(d.dirty=!0,c=sg(d,e)),s.__decalPattern=c}if(n9(t)&&s){var c=s.__decalPattern;c&&(s.decal=c)}jw(t,n,i,{dataIndex:r,isInit:o,clearStyle:!0}),d4(t,n.keyframeAnimation,i)}function e1e(e,t,r,n,a){var i=t.isGroup?null:t,o=a&&a[e].cfg;if(i){var l=i.ensureState(e);if(n===!1){var s=i.getState(e);s&&(s.style=null)}else l.style=n||null;o&&(l.textConfig=o),om(i)}}function NDt(e,t,r){if(!e.isGroup){var n=e,a=r.currentZ,i=r.currentZLevel;n.z=a,n.zlevel=i;var o=t.z2;o!=null&&(n.z2=o||0);for(var l=0;l<Zf.length;l++)$Dt(n,t,Zf[l])}}function $Dt(e,t,r){var n=r===vf,a=n?t:f4(t,r),i=a?a.z2:null,o;i!=null&&(o=n?e:e.ensureState(r),o.z2=i||0)}function SZ(e,t,r,n){var a=e.get(\"renderItem\"),i=e.coordinateSystem,o={};i&&(o=i.prepareCustoms?i.prepareCustoms(i):PDt[i.type](i));for(var l=rr({getWidth:n.getWidth,getHeight:n.getHeight,getZr:n.getZr,getDevicePixelRatio:n.getDevicePixelRatio,value:F,style:E,ordinalRawValue:S,styleEmphasis:w,visual:_,barLayout:I,currentSeriesIndices:M,font:T},o.api||{}),s={context:{},seriesId:e.id,seriesName:e.name,seriesIndex:e.seriesIndex,coordSys:o.coordSys,dataInsideLength:t.count(),encode:LDt(e.getData())},u,c,d={},f={},h={},p={},v=0;v<Zf.length;v++){var g=Zf[v];h[g]=e.getModel(ik[g]),p[g]=e.getModel(ok[g])}function y(k){return k===u?c||(c=t.getItemModel(k)):t.getItemModel(k)}function b(k,R){return t.hasItemOption?k===u?d[R]||(d[R]=y(k).getModel(ik[R])):y(k).getModel(ik[R]):h[R]}function x(k,R){return t.hasItemOption?k===u?f[R]||(f[R]=y(k).getModel(ok[R])):y(k).getModel(ok[R]):p[R]}return function(k,R){return u=k,c=null,d={},f={},a&&a(rr({dataIndexInside:k,dataIndex:t.getRawIndex(k),actionType:R?R.type:null},s),l)};function F(k,R){return R==null&&(R=u),t.getStore().get(t.getDimensionIndex(k||0),R)}function S(k,R){R==null&&(R=u),k=k||0;var P=t.getDimensionInfo(k);if(!P){var B=t.getDimensionIndex(k);return B>=0?t.getStore().get(B,R):void 0}var N=t.get(P.name,R),O=P&&P.ordinalMeta;return O?O.categories[N]:N}function E(k,R){R==null&&(R=u);var P=t.getItemVisual(R,\"style\"),B=P&&P.fill,N=P&&P.opacity,O=b(R,vf).getItemStyle();B!=null&&(O.fill=B),N!=null&&(O.opacity=N);var z={inheritColor:At(B)?B:\"#000\"},W=x(R,vf),L=Mn(W,null,z,!1,!0);L.text=W.getShallow(\"show\")?Fr(e.getFormattedLabel(R,vf),ug(t,R)):null;var j=j3(W,z,!1);return A(k,O),O=yZ(O,L,j),k&&D(O,k),O.legacy=!0,O}function w(k,R){R==null&&(R=u);var P=b(R,Zc).getItemStyle(),B=x(R,Zc),N=Mn(B,null,null,!0,!0);N.text=B.getShallow(\"show\")?cu(e.getFormattedLabel(R,Zc),e.getFormattedLabel(R,vf),ug(t,R)):null;var O=j3(B,null,!0);return A(k,P),P=yZ(P,N,O),k&&D(P,k),P.legacy=!0,P}function D(k,R){for(var P in R)$t(R,P)&&(k[P]=R[P])}function A(k,R){k&&(k.textFill&&(R.textFill=k.textFill),k.textPosition&&(R.textPosition=k.textPosition))}function _(k,R){if(R==null&&(R=u),$t(vZ,k)){var P=t.getItemVisual(R,\"style\");return P?P[vZ[k]]:null}if($t(dDt,k))return t.getItemVisual(R,k)}function I(k){if(i.type===\"cartesian2d\"){var R=i.getBaseAxis();return pxt(rr({axis:R},k))}}function M(){return r.getCurrentSeriesIndices()}function T(k){return FN(k,r)}}function LDt(e){var t={};return q(e.dimensions,function(r){var n=e.getDimensionInfo(r);if(!n.isExtraCoord){var a=n.coordDim,i=t[a]=t[a]||[];i[n.coordDimIndex]=e.getDimensionIndex(r)}}),t}function lk(e,t,r,n,a,i,o){if(!n){i.remove(t);return}var l=W$(e,t,r,n,a,i);return l&&o.setItemGraphicEl(r,l),l&&sa(l,n.focus,n.blurScope,n.emphasisDisabled),l}function W$(e,t,r,n,a,i){var o=-1,l=t;t&&t1e(t,n,a)&&(o=Mr(i.childrenRef(),t),t=null);var s=!t,u=t;u?u.clearStates():(u=H$(n),l&&ODt(l,u)),n.morph===!1?u.disableMorphing=!0:u.disableMorphing&&(u.disableMorphing=!1),Ql.normal.cfg=Ql.normal.conOpt=Ql.emphasis.cfg=Ql.emphasis.conOpt=Ql.blur.cfg=Ql.blur.conOpt=Ql.select.cfg=Ql.select.conOpt=null,Ql.isLegacy=!1,zDt(u,r,n,a,s,Ql),jDt(u,r,n,a,s),V$(e,u,r,n,Ql,a,s),$t(n,\"info\")&&(Jc(u).info=n.info);for(var c=0;c<Zf.length;c++){var d=Zf[c];if(d!==vf){var f=f4(n,d),h=G$(n,f,d);e1e(d,u,f,h,Ql)}}return NDt(u,n,a),n.type===\"group\"&&HDt(e,u,r,n,a),o>=0?i.replaceAt(u,o):i.add(u),u}function t1e(e,t,r){var n=Jc(e),a=t.type,i=t.shape,o=t.style;return r.isUniversalTransitionEnabled()||a!=null&&a!==n.customGraphicType||a===\"path\"&&UDt(i)&&r1e(i)!==n.customPathData||a===\"image\"&&$t(o,\"image\")&&o.image!==n.customImagePath}function jDt(e,t,r,n,a){var i=r.clipPath;if(i===!1)e&&e.getClipPath()&&e.removeClipPath();else if(i){var o=e.getClipPath();o&&t1e(o,i,n)&&(o=null),o||(o=H$(i),e.setClipPath(o)),V$(null,o,t,i,null,n,a)}}function zDt(e,t,r,n,a,i){if(!e.isGroup){wZ(r,null,i),wZ(r,Zc,i);var o=i.normal.conOpt,l=i.emphasis.conOpt,s=i.blur.conOpt,u=i.select.conOpt;if(o!=null||l!=null||u!=null||s!=null){var c=e.getTextContent();if(o===!1)c&&e.removeTextContent();else{o=i.normal.conOpt=o||{type:\"text\"},c?c.clearStates():(c=H$(o),e.setTextContent(c)),V$(null,c,t,o,null,n,a);for(var d=o&&o.style,f=0;f<Zf.length;f++){var h=Zf[f];if(h!==vf){var p=i[h].conOpt;e1e(h,c,p,G$(o,p,h),null)}}d?c.dirty():c.markRedraw()}}}}function wZ(e,t,r){var n=t?f4(e,t):e,a=t?G$(e,n,Zc):e.style,i=e.type,o=n?n.textConfig:null,l=e.textContent,s=l?t?f4(l,t):l:null;if(a&&(r.isLegacy||Yge(a,i,!!o,!!s))){r.isLegacy=!0;var u=qge(a,i,!t);!o&&u.textConfig&&(o=u.textConfig),!s&&u.textContent&&(s=u.textContent)}if(!t&&s){var c=s;!c.type&&(c.type=\"text\")}var d=t?r[t]:r.normal;d.cfg=o,d.conOpt=s}function f4(e,t){return t?e?e[t]:null:e}function G$(e,t,r){var n=t&&t.style;return n==null&&r===Zc&&e&&(n=e.styleEmphasis),n}function HDt(e,t,r,n,a){var i=n.children,o=i?i.length:0,l=n.$mergeChildren,s=l===\"byName\"||n.diffChildrenByName,u=l===!1;if(!(!o&&!s&&!u)){if(s){WDt({api:e,oldChildren:t.children()||[],newChildren:i||[],dataIndex:r,seriesModel:a,group:t});return}u&&t.removeAll();for(var c=0;c<o;c++){var d=i[c],f=t.childAt(c);d?(d.ignore==null&&(d.ignore=!1),W$(e,f,r,d,a,t)):f.ignore=!0}for(var h=t.childCount()-1;h>=c;h--){var p=t.childAt(h);VDt(t,p,a)}}}function VDt(e,t,r){t&&SA(t,Jc(e).option,r)}function WDt(e){new pd(e.oldChildren,e.newChildren,EZ,EZ,e).add(DZ).update(DZ).remove(GDt).execute()}function EZ(e,t){var r=e&&e.name;return r??MDt+t}function DZ(e,t){var r=this.context,n=e!=null?r.newChildren[e]:null,a=t!=null?r.oldChildren[t]:null;W$(r.api,a,r.dataIndex,n,r.seriesModel,r.group)}function GDt(e){var t=this.context,r=t.oldChildren[e];r&&SA(r,Jc(r).option,t.seriesModel)}function r1e(e){return e&&(e.pathData||e.d)}function UDt(e){return e&&($t(e,\"pathData\")||$t(e,\"d\"))}function KDt(e){e.registerChartView(BDt),e.registerSeriesModel(fDt)}var rp=rn(),AZ=lr,sk=Pt,U$=function(){function e(){this._dragging=!1,this.animationThreshold=15}return e.prototype.render=function(t,r,n,a){var i=r.get(\"value\"),o=r.get(\"status\");if(this._axisModel=t,this._axisPointerModel=r,this._api=n,!(!a&&this._lastValue===i&&this._lastStatus===o)){this._lastValue=i,this._lastStatus=o;var l=this._group,s=this._handle;if(!o||o===\"hide\"){l&&l.hide(),s&&s.hide();return}l&&l.show(),s&&s.show();var u={};this.makeElOption(u,i,t,r,n);var c=u.graphicKey;c!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=c;var d=this._moveAnimation=this.determineAnimation(t,r);if(!l)l=this._group=new pr,this.createPointerEl(l,u,t,r),this.createLabelEl(l,u,t,r),n.getZr().add(l);else{var f=wr(_Z,r,d);this.updatePointerEl(l,u,f),this.updateLabelEl(l,u,f,r)}IZ(l,r,!0),this._renderHandle(i)}},e.prototype.remove=function(t){this.clear(t)},e.prototype.dispose=function(t){this.clear(t)},e.prototype.determineAnimation=function(t,r){var n=r.get(\"animation\"),a=t.axis,i=a.type===\"category\",o=r.get(\"snap\");if(!o&&!i)return!1;if(n===\"auto\"||n==null){var l=this.animationThreshold;if(i&&a.getBandWidth()>l)return!0;if(o){var s=p$(t).seriesDataCount,u=a.getExtent();return Math.abs(u[0]-u[1])/s>l}return!1}return n===!0},e.prototype.makeElOption=function(t,r,n,a,i){},e.prototype.createPointerEl=function(t,r,n,a){var i=r.pointer;if(i){var o=rp(t).pointerEl=new $m[i.type](AZ(r.pointer));t.add(o)}},e.prototype.createLabelEl=function(t,r,n,a){if(r.label){var i=rp(t).labelEl=new Jr(AZ(r.label));t.add(i),TZ(i,a)}},e.prototype.updatePointerEl=function(t,r,n){var a=rp(t).pointerEl;a&&r.pointer&&(a.setStyle(r.pointer.style),n(a,{shape:r.pointer.shape}))},e.prototype.updateLabelEl=function(t,r,n,a){var i=rp(t).labelEl;i&&(i.setStyle(r.label.style),n(i,{x:r.label.x,y:r.label.y}),TZ(i,a))},e.prototype._renderHandle=function(t){if(!(this._dragging||!this.updateHandleTransform)){var r=this._axisPointerModel,n=this._api.getZr(),a=this._handle,i=r.getModel(\"handle\"),o=r.get(\"status\");if(!i.get(\"show\")||!o||o===\"hide\"){a&&n.remove(a),this._handle=null;return}var l;this._handle||(l=!0,a=this._handle=Xg(i.get(\"icon\"),{cursor:\"move\",draggable:!0,onmousemove:function(u){dd(u.event)},onmousedown:sk(this._onHandleDragMove,this,0,0),drift:sk(this._onHandleDragMove,this),ondragend:sk(this._onHandleDragEnd,this)}),n.add(a)),IZ(a,r,!1),a.setStyle(i.getItemStyle(null,[\"color\",\"borderColor\",\"borderWidth\",\"opacity\",\"shadowColor\",\"shadowBlur\",\"shadowOffsetX\",\"shadowOffsetY\"]));var s=i.get(\"size\");nt(s)||(s=[s,s]),a.scaleX=s[0]/2,a.scaleY=s[1]/2,n1(this,\"_doDispatchAxisPointer\",i.get(\"throttle\")||0,\"fixRate\"),this._moveHandleToValue(t,l)}},e.prototype._moveHandleToValue=function(t,r){_Z(this._axisPointerModel,!r&&this._moveAnimation,this._handle,uk(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},e.prototype._onHandleDragMove=function(t,r){var n=this._handle;if(n){this._dragging=!0;var a=this.updateHandleTransform(uk(n),[t,r],this._axisModel,this._axisPointerModel);this._payloadInfo=a,n.stopAnimation(),n.attr(uk(a)),rp(n).lastProp=null,this._doDispatchAxisPointer()}},e.prototype._doDispatchAxisPointer=function(){var t=this._handle;if(t){var r=this._payloadInfo,n=this._axisModel;this._api.dispatchAction({type:\"updateAxisPointer\",x:r.cursorPoint[0],y:r.cursorPoint[1],tooltipOption:r.tooltipOption,axesInfo:[{axisDim:n.axis.dim,axisIndex:n.componentIndex}]})}},e.prototype._onHandleDragEnd=function(){this._dragging=!1;var t=this._handle;if(t){var r=this._axisPointerModel.get(\"value\");this._moveHandleToValue(r),this._api.dispatchAction({type:\"hideTip\"})}},e.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var r=t.getZr(),n=this._group,a=this._handle;r&&n&&(this._lastGraphicKey=null,n&&r.remove(n),a&&r.remove(a),this._group=null,this._handle=null,this._payloadInfo=null),O2(this,\"_doDispatchAxisPointer\")},e.prototype.doClear=function(){},e.prototype.buildLabel=function(t,r,n){return n=n||0,{x:t[n],y:t[1-n],width:r[n],height:r[1-n]}},e}();function _Z(e,t,r,n){n1e(rp(r).lastProp,n)||(rp(r).lastProp=n,t?cn(r,n,e):(r.stopAnimation(),r.attr(n)))}function n1e(e,t){if(ir(e)&&ir(t)){var r=!0;return q(t,function(n,a){r=r&&n1e(e[a],n)}),!!r}else return e===t}function TZ(e,t){e[t.get([\"label\",\"show\"])?\"show\":\"hide\"]()}function uk(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function IZ(e,t,r){var n=t.get(\"z\"),a=t.get(\"zlevel\");e&&e.traverse(function(i){i.type!==\"group\"&&(n!=null&&(i.z=n),a!=null&&(i.zlevel=a),i.silent=r)})}function K$(e){var t=e.get(\"type\"),r=e.getModel(t+\"Style\"),n;return t===\"line\"?(n=r.getLineStyle(),n.fill=null):t===\"shadow\"&&(n=r.getAreaStyle(),n.stroke=null),n}function a1e(e,t,r,n,a){var i=r.get(\"value\"),o=i1e(i,t.axis,t.ecModel,r.get(\"seriesDataIndices\"),{precision:r.get([\"label\",\"precision\"]),formatter:r.get([\"label\",\"formatter\"])}),l=r.getModel(\"label\"),s=Lm(l.get(\"padding\")||0),u=l.getFont(),c=Qx(o,u),d=a.position,f=c.width+s[1]+s[3],h=c.height+s[0]+s[2],p=a.align;p===\"right\"&&(d[0]-=f),p===\"center\"&&(d[0]-=f/2);var v=a.verticalAlign;v===\"bottom\"&&(d[1]-=h),v===\"middle\"&&(d[1]-=h/2),YDt(d,f,h,n);var g=l.get(\"backgroundColor\");(!g||g===\"auto\")&&(g=t.get([\"axisLine\",\"lineStyle\",\"color\"])),e.label={x:d[0],y:d[1],style:Mn(l,{text:o,font:u,fill:l.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function YDt(e,t,r,n){var a=n.getWidth(),i=n.getHeight();e[0]=Math.min(e[0]+t,a)-t,e[1]=Math.min(e[1]+r,i)-r,e[0]=Math.max(e[0],0),e[1]=Math.max(e[1],0)}function i1e(e,t,r,n,a){e=t.scale.parse(e);var i=t.scale.getLabel({value:e},{precision:a.precision}),o=a.formatter;if(o){var l={value:n$(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};q(n,function(s){var u=r.getSeriesByIndex(s.seriesIndex),c=s.dataIndexInside,d=u&&u.getDataParams(c);d&&l.seriesData.push(d)}),At(o)?i=o.replace(\"{value}\",i):er(o)&&(i=o(l))}return i}function Y$(e,t,r){var n=hl();return lh(n,n,r.rotation),Cu(n,n,r.position),hu([e.dataToCoord(t),(r.labelOffset||0)+(r.labelDirection||1)*(r.labelMargin||0)],n)}function o1e(e,t,r,n,a,i){var o=Vo.innerTextLayout(r.rotation,0,r.labelDirection);r.labelMargin=a.get([\"label\",\"margin\"]),a1e(t,n,a,i,{position:Y$(n.axis,e,r),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function q$(e,t,r){return r=r||0,{x1:e[r],y1:e[1-r],x2:t[r],y2:t[1-r]}}function l1e(e,t,r){return r=r||0,{x:e[r],y:e[1-r],width:t[r],height:t[1-r]}}function kZ(e,t,r,n,a,i){return{cx:e,cy:t,r0:r,r:n,startAngle:a,endAngle:i,clockwise:!0}}var qDt=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,a,i,o){var l=a.axis,s=l.grid,u=i.get(\"type\"),c=RZ(s,l).getOtherAxis(l).getGlobalExtent(),d=l.toGlobalCoord(l.dataToCoord(n,!0));if(u&&u!==\"none\"){var f=K$(i),h=XDt[u](l,d,c);h.style=f,r.graphicKey=h.type,r.pointer=h}var p=NP(s.model,a);o1e(n,r,p,a,i,o)},t.prototype.getHandleTransform=function(r,n,a){var i=NP(n.axis.grid.model,n,{labelInside:!1});i.labelMargin=a.get([\"handle\",\"margin\"]);var o=Y$(n.axis,r,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,a,i){var o=a.axis,l=o.grid,s=o.getGlobalExtent(!0),u=RZ(l,o).getOtherAxis(o).getGlobalExtent(),c=o.dim===\"x\"?0:1,d=[r.x,r.y];d[c]+=n[c],d[c]=Math.min(s[1],d[c]),d[c]=Math.max(s[0],d[c]);var f=(u[1]+u[0])/2,h=[f,f];h[c]=d[c];var p=[{verticalAlign:\"middle\"},{align:\"center\"}];return{x:d[0],y:d[1],rotation:r.rotation,cursorPoint:h,tooltipOption:p[c]}},t}(U$);function RZ(e,t){var r={};return r[t.dim+\"AxisIndex\"]=t.index,e.getCartesian(r)}var XDt={line:function(e,t,r){var n=q$([t,r[0]],[t,r[1]],MZ(e));return{type:\"Line\",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=Math.max(1,e.getBandWidth()),a=r[1]-r[0];return{type:\"Rect\",shape:l1e([t-n/2,r[0]],[n,a],MZ(e))}}};function MZ(e){return e.dim===\"x\"?0:1}var JDt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"axisPointer\",t.defaultOption={show:\"auto\",z:50,type:\"line\",snap:!1,triggerTooltip:!0,triggerEmphasis:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:\"#B9BEC9\",width:1,type:\"dashed\"},shadowStyle:{color:\"rgba(210,219,238,0.2)\"},label:{show:!0,formatter:null,precision:\"auto\",margin:3,color:\"#fff\",padding:[5,7,5,7],backgroundColor:\"auto\",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:\"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z\",size:45,margin:50,color:\"#333\",shadowBlur:3,shadowColor:\"#aaa\",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},t}(jr),Wc=rn(),ZDt=q;function s1e(e,t,r){if(!zr.node){var n=t.getZr();Wc(n).records||(Wc(n).records={}),QDt(n,t);var a=Wc(n).records[e]||(Wc(n).records[e]={});a.handler=r}}function QDt(e,t){if(Wc(e).initialized)return;Wc(e).initialized=!0,r(\"click\",wr(PZ,\"click\")),r(\"mousemove\",wr(PZ,\"mousemove\")),r(\"globalout\",tAt);function r(n,a){e.on(n,function(i){var o=rAt(t);ZDt(Wc(e).records,function(l){l&&a(l,i,o.dispatchAction)}),eAt(o.pendings,t)})}}function eAt(e,t){var r=e.showTip.length,n=e.hideTip.length,a;r?a=e.showTip[r-1]:n&&(a=e.hideTip[n-1]),a&&(a.dispatchAction=null,t.dispatchAction(a))}function tAt(e,t,r){e.handler(\"leave\",null,r)}function PZ(e,t,r,n){t.handler(e,r,n)}function rAt(e){var t={showTip:[],hideTip:[]},r=function(n){var a=t[n.type];a?a.push(n):(n.dispatchAction=r,e.dispatchAction(n))};return{dispatchAction:r,pendings:t}}function a9(e,t){if(!zr.node){var r=t.getZr(),n=(Wc(r).records||{})[e];n&&(Wc(r).records[e]=null)}}var nAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=n.getComponent(\"tooltip\"),o=r.get(\"triggerOn\")||i&&i.get(\"triggerOn\")||\"mousemove|click\";s1e(\"axisPointer\",a,function(l,s,u){o!==\"none\"&&(l===\"leave\"||o.indexOf(l)>=0)&&u({type:\"updateAxisPointer\",currTrigger:l,x:s&&s.offsetX,y:s&&s.offsetY})})},t.prototype.remove=function(r,n){a9(\"axisPointer\",n)},t.prototype.dispose=function(r,n){a9(\"axisPointer\",n)},t.type=\"axisPointer\",t}(Wn);function u1e(e,t){var r=[],n=e.seriesIndex,a;if(n==null||!(a=t.getSeriesByIndex(n)))return{point:[]};var i=a.getData(),o=am(i,e);if(o==null||o<0||nt(o))return{point:[]};var l=i.getItemGraphicEl(o),s=a.coordinateSystem;if(a.getTooltipPosition)r=a.getTooltipPosition(o)||[];else if(s&&s.dataToPoint)if(e.isStacked){var u=s.getBaseAxis(),c=s.getOtherAxis(u),d=c.dim,f=u.dim,h=d===\"x\"||d===\"radius\"?1:0,p=i.mapDimension(f),v=[];v[h]=i.get(p,o),v[1-h]=i.get(i.getCalculationInfo(\"stackResultDimension\"),o),r=s.dataToPoint(v)||[]}else r=s.dataToPoint(i.getValues(ot(s.dimensions,function(y){return i.mapDimension(y)}),o))||[];else if(l){var g=l.getBoundingRect().clone();g.applyTransform(l.transform),r=[g.x+g.width/2,g.y+g.height/2]}return{point:r,el:l}}var OZ=rn();function aAt(e,t,r){var n=e.currTrigger,a=[e.x,e.y],i=e,o=e.dispatchAction||Pt(r.dispatchAction,r),l=t.getComponent(\"axisPointer\").coordSysAxesInfo;if(l){zw(a)&&(a=u1e({seriesIndex:i.seriesIndex,dataIndex:i.dataIndex},t).point);var s=zw(a),u=i.axesInfo,c=l.axesInfo,d=n===\"leave\"||zw(a),f={},h={},p={list:[],map:{}},v={showPointer:wr(oAt,h),showTooltip:wr(lAt,p)};q(l.coordSysMap,function(y,b){var x=s||y.containPoint(a);q(l.coordSysAxesInfo[b],function(F,S){var E=F.axis,w=dAt(u,F);if(!d&&x&&(!u||w)){var D=w&&w.value;D==null&&!s&&(D=E.pointToData(a)),D!=null&&BZ(F,D,v,!1,f)}})});var g={};return q(c,function(y,b){var x=y.linkGroup;x&&!h[b]&&q(x.axesInfo,function(F,S){var E=h[S];if(F!==y&&E){var w=E.value;x.mapper&&(w=y.axis.scale.parse(x.mapper(w,NZ(F),NZ(y)))),g[y.key]=w}})}),q(g,function(y,b){BZ(c[b],y,v,!0,f)}),sAt(h,c,f),uAt(p,a,e,o),cAt(c,o,r),f}}function BZ(e,t,r,n,a){var i=e.axis;if(!(i.scale.isBlank()||!i.containData(t))){if(!e.involveSeries){r.showPointer(e,t);return}var o=iAt(t,e),l=o.payloadBatch,s=o.snapToValue;l[0]&&a.seriesIndex==null&&Xe(a,l[0]),!n&&e.snap&&i.containData(s)&&s!=null&&(t=s),r.showPointer(e,t,l),r.showTooltip(e,o,s)}}function iAt(e,t){var r=t.axis,n=r.dim,a=e,i=[],o=Number.MAX_VALUE,l=-1;return q(t.seriesModels,function(s,u){var c=s.getData().mapDimensionsAll(n),d,f;if(s.getAxisTooltipData){var h=s.getAxisTooltipData(c,e,r);f=h.dataIndices,d=h.nestestValue}else{if(f=s.getData().indicesOfNearest(c[0],e,r.type===\"category\"?.5:null),!f.length)return;d=s.getData().get(c[0],f[0])}if(!(d==null||!isFinite(d))){var p=e-d,v=Math.abs(p);v<=o&&((v<o||p>=0&&l<0)&&(o=v,l=p,a=d,i.length=0),q(f,function(g){i.push({seriesIndex:s.seriesIndex,dataIndexInside:g,dataIndex:s.getData().getRawIndex(g)})}))}}),{payloadBatch:i,snapToValue:a}}function oAt(e,t,r,n){e[t.key]={value:r,payloadBatch:n}}function lAt(e,t,r,n){var a=r.payloadBatch,i=t.axis,o=i.model,l=t.axisPointerModel;if(!(!t.triggerTooltip||!a.length)){var s=t.coordSys.model,u=H2(s),c=e.map[u];c||(c=e.map[u]={coordSysId:s.id,coordSysIndex:s.componentIndex,coordSysType:s.type,coordSysMainType:s.mainType,dataByAxis:[]},e.list.push(c)),c.dataByAxis.push({axisDim:i.dim,axisIndex:o.componentIndex,axisType:o.type,axisId:o.id,value:n,valueLabelOpt:{precision:l.get([\"label\",\"precision\"]),formatter:l.get([\"label\",\"formatter\"])},seriesDataIndices:a.slice()})}}function sAt(e,t,r){var n=r.axesInfo=[];q(t,function(a,i){var o=a.axisPointerModel.option,l=e[i];l?(!a.useHandle&&(o.status=\"show\"),o.value=l.value,o.seriesDataIndices=(l.payloadBatch||[]).slice()):!a.useHandle&&(o.status=\"hide\"),o.status===\"show\"&&n.push({axisDim:a.axis.dim,axisIndex:a.axis.model.componentIndex,value:o.value})})}function uAt(e,t,r,n){if(zw(t)||!e.list.length){n({type:\"hideTip\"});return}var a=((e.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:\"showTip\",escapeConnect:!0,x:t[0],y:t[1],tooltipOption:r.tooltipOption,position:r.position,dataIndexInside:a.dataIndexInside,dataIndex:a.dataIndex,seriesIndex:a.seriesIndex,dataByCoordSys:e.list})}function cAt(e,t,r){var n=r.getZr(),a=\"axisPointerLastHighlights\",i=OZ(n)[a]||{},o=OZ(n)[a]={};q(e,function(u,c){var d=u.axisPointerModel.option;d.status===\"show\"&&u.triggerEmphasis&&q(d.seriesDataIndices,function(f){var h=f.seriesIndex+\" | \"+f.dataIndex;o[h]=f})});var l=[],s=[];q(i,function(u,c){!o[c]&&s.push(u)}),q(o,function(u,c){!i[c]&&l.push(u)}),s.length&&r.dispatchAction({type:\"downplay\",escapeConnect:!0,notBlur:!0,batch:s}),l.length&&r.dispatchAction({type:\"highlight\",escapeConnect:!0,notBlur:!0,batch:l})}function dAt(e,t){for(var r=0;r<(e||[]).length;r++){var n=e[r];if(t.axis.dim===n.axisDim&&t.axis.model.componentIndex===n.axisIndex)return n}}function NZ(e){var t=e.axis.model,r={},n=r.axisDim=e.axis.dim;return r.axisIndex=r[n+\"AxisIndex\"]=t.componentIndex,r.axisName=r[n+\"AxisName\"]=t.name,r.axisId=r[n+\"AxisId\"]=t.id,r}function zw(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function gC(e){Hm.registerAxisPointerClass(\"CartesianAxisPointer\",qDt),e.registerComponentModel(JDt),e.registerComponentView(nAt),e.registerPreprocessor(function(t){if(t){(!t.axisPointer||t.axisPointer.length===0)&&(t.axisPointer={});var r=t.axisPointer.link;r&&!nt(r)&&(t.axisPointer.link=[r])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,function(t,r){t.getComponent(\"axisPointer\").coordSysAxesInfo=CSt(t,r)}),e.registerAction({type:\"updateAxisPointer\",event:\"updateAxisPointer\",update:\":updateAxisPointer\"},aAt)}function fAt(e){Nr(N0e),Nr(gC)}var hAt=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,a,i,o){var l=a.axis;l.dim===\"angle\"&&(this.animationThreshold=Math.PI/18);var s=l.polar,u=s.getOtherAxis(l),c=u.getExtent(),d=l.dataToCoord(n),f=i.get(\"type\");if(f&&f!==\"none\"){var h=K$(i),p=mAt[f](l,s,d,c);p.style=h,r.graphicKey=p.type,r.pointer=p}var v=i.get([\"label\",\"margin\"]),g=pAt(n,a,i,s,v);a1e(r,a,i,o,g)},t}(U$);function pAt(e,t,r,n,a){var i=t.axis,o=i.dataToCoord(e),l=n.getAngleAxis().getExtent()[0];l=l/180*Math.PI;var s=n.getRadiusAxis().getExtent(),u,c,d;if(i.dim===\"radius\"){var f=hl();lh(f,f,l),Cu(f,f,[n.cx,n.cy]),u=hu([o,-a],f);var h=t.getModel(\"axisLabel\").get(\"rotate\")||0,p=Vo.innerTextLayout(l,h*Math.PI/180,-1);c=p.textAlign,d=p.textVerticalAlign}else{var v=s[1];u=n.coordToPoint([v+a,o]);var g=n.cx,y=n.cy;c=Math.abs(u[0]-g)/v<.3?\"center\":u[0]>g?\"left\":\"right\",d=Math.abs(u[1]-y)/v<.3?\"middle\":u[1]>y?\"top\":\"bottom\"}return{position:u,align:c,verticalAlign:d}}var mAt={line:function(e,t,r,n){return e.dim===\"angle\"?{type:\"Line\",shape:q$(t.coordToPoint([n[0],r]),t.coordToPoint([n[1],r]))}:{type:\"Circle\",shape:{cx:t.cx,cy:t.cy,r}}},shadow:function(e,t,r,n){var a=Math.max(1,e.getBandWidth()),i=Math.PI/180;return e.dim===\"angle\"?{type:\"Sector\",shape:kZ(t.cx,t.cy,n[0],n[1],(-r-a/2)*i,(-r+a/2)*i)}:{type:\"Sector\",shape:kZ(t.cx,t.cy,r-a/2,r+a/2,0,Math.PI*2)}}},vAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.findAxisModel=function(r){var n,a=this.ecModel;return a.eachComponent(r,function(i){i.getCoordSysModel()===this&&(n=i)},this),n},t.type=\"polar\",t.dependencies=[\"radiusAxis\",\"angleAxis\"],t.defaultOption={z:0,center:[\"50%\",\"50%\"],radius:\"80%\"},t}(jr),X$=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents(\"polar\",Oa).models[0]},t.type=\"polarAxis\",t}(jr);Ca(X$,l1);var gAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"angleAxis\",t}(X$),yAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"radiusAxis\",t}(X$),J$=function(e){Re(t,e);function t(r,n){return e.call(this,\"radius\",r,n)||this}return t.prototype.pointToData=function(r,n){return this.polar.pointToData(r,n)[this.dim===\"radius\"?0:1]},t}(Bs);J$.prototype.dataToRadius=Bs.prototype.dataToCoord;J$.prototype.radiusToData=Bs.prototype.coordToData;var bAt=rn(),Z$=function(e){Re(t,e);function t(r,n){return e.call(this,\"angle\",r,n||[0,360])||this}return t.prototype.pointToData=function(r,n){return this.polar.pointToData(r,n)[this.dim===\"radius\"?0:1]},t.prototype.calculateCategoryInterval=function(){var r=this,n=r.getLabelModel(),a=r.scale,i=a.getExtent(),o=a.count();if(i[1]-i[0]<1)return 0;var l=i[0],s=r.dataToCoord(l+1)-r.dataToCoord(l),u=Math.abs(s),c=Qx(l==null?\"\":l+\"\",n.getFont(),\"center\",\"top\"),d=Math.max(c.height,7),f=d/u;isNaN(f)&&(f=1/0);var h=Math.max(0,Math.floor(f)),p=bAt(r.model),v=p.lastAutoInterval,g=p.lastTickCount;return v!=null&&g!=null&&Math.abs(v-h)<=1&&Math.abs(g-o)<=1&&v>h?h=v:(p.lastTickCount=o,p.lastAutoInterval=h),h},t}(Bs);Z$.prototype.dataToAngle=Bs.prototype.dataToCoord;Z$.prototype.angleToData=Bs.prototype.coordToData;var c1e=[\"radius\",\"angle\"],xAt=function(){function e(t){this.dimensions=c1e,this.type=\"polar\",this.cx=0,this.cy=0,this._radiusAxis=new J$,this._angleAxis=new Z$,this.axisPointerEnabled=!0,this.name=t||\"\",this._radiusAxis.polar=this._angleAxis.polar=this}return e.prototype.containPoint=function(t){var r=this.pointToCoord(t);return this._radiusAxis.contain(r[0])&&this._angleAxis.contain(r[1])},e.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},e.prototype.getAxis=function(t){var r=\"_\"+t+\"Axis\";return this[r]},e.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},e.prototype.getAxesByScale=function(t){var r=[],n=this._angleAxis,a=this._radiusAxis;return n.scale.type===t&&r.push(n),a.scale.type===t&&r.push(a),r},e.prototype.getAngleAxis=function(){return this._angleAxis},e.prototype.getRadiusAxis=function(){return this._radiusAxis},e.prototype.getOtherAxis=function(t){var r=this._angleAxis;return t===r?this._radiusAxis:r},e.prototype.getBaseAxis=function(){return this.getAxesByScale(\"ordinal\")[0]||this.getAxesByScale(\"time\")[0]||this.getAngleAxis()},e.prototype.getTooltipAxes=function(t){var r=t!=null&&t!==\"auto\"?this.getAxis(t):this.getBaseAxis();return{baseAxes:[r],otherAxes:[this.getOtherAxis(r)]}},e.prototype.dataToPoint=function(t,r){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],r),this._angleAxis.dataToAngle(t[1],r)])},e.prototype.pointToData=function(t,r){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],r),this._angleAxis.angleToData(n[1],r)]},e.prototype.pointToCoord=function(t){var r=t[0]-this.cx,n=t[1]-this.cy,a=this.getAngleAxis(),i=a.getExtent(),o=Math.min(i[0],i[1]),l=Math.max(i[0],i[1]);a.inverse?o=l-360:l=o+360;var s=Math.sqrt(r*r+n*n);r/=s,n/=s;for(var u=Math.atan2(-n,r)/Math.PI*180,c=u<o?1:-1;u<o||u>l;)u+=c*360;return[s,u]},e.prototype.coordToPoint=function(t){var r=t[0],n=t[1]/180*Math.PI,a=Math.cos(n)*r+this.cx,i=-Math.sin(n)*r+this.cy;return[a,i]},e.prototype.getArea=function(){var t=this.getAngleAxis(),r=this.getRadiusAxis(),n=r.getExtent().slice();n[0]>n[1]&&n.reverse();var a=t.getExtent(),i=Math.PI/180,o=1e-4;return{cx:this.cx,cy:this.cy,r0:n[0],r:n[1],startAngle:-a[0]*i,endAngle:-a[1]*i,clockwise:t.inverse,contain:function(l,s){var u=l-this.cx,c=s-this.cy,d=u*u+c*c,f=this.r,h=this.r0;return f!==h&&d-o<=f*f&&d+o>=h*h}}},e.prototype.convertToPixel=function(t,r,n){var a=$Z(r);return a===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,r,n){var a=$Z(r);return a===this?this.pointToData(n):null},e}();function $Z(e){var t=e.seriesModel,r=e.polarModel;return r&&r.coordinateSystem||t&&t.coordinateSystem}function CAt(e,t,r){var n=t.get(\"center\"),a=r.getWidth(),i=r.getHeight();e.cx=Ft(n[0],a),e.cy=Ft(n[1],i);var o=e.getRadiusAxis(),l=Math.min(a,i)/2,s=t.get(\"radius\");s==null?s=[0,\"100%\"]:nt(s)||(s=[0,s]);var u=[Ft(s[0],l),Ft(s[1],l)];o.inverse?o.setExtent(u[1],u[0]):o.setExtent(u[0],u[1])}function FAt(e,t){var r=this,n=r.getAngleAxis(),a=r.getRadiusAxis();if(n.scale.setExtent(1/0,-1/0),a.scale.setExtent(1/0,-1/0),e.eachSeries(function(l){if(l.coordinateSystem===r){var s=l.getData();q(Q3(s,\"radius\"),function(u){a.scale.unionExtentFromData(s,u)}),q(Q3(s,\"angle\"),function(u){n.scale.unionExtentFromData(s,u)})}}),sm(n.scale,n.model),sm(a.scale,a.model),n.type===\"category\"&&!n.onBand){var i=n.getExtent(),o=360/n.scale.count();n.inverse?i[1]+=o:i[1]-=o,n.setExtent(i[0],i[1])}}function SAt(e){return e.mainType===\"angleAxis\"}function LZ(e,t){var r;if(e.type=t.get(\"type\"),e.scale=sC(t),e.onBand=t.get(\"boundaryGap\")&&e.type===\"category\",e.inverse=t.get(\"inverse\"),SAt(t)){e.inverse=e.inverse!==t.get(\"clockwise\");var n=t.get(\"startAngle\"),a=(r=t.get(\"endAngle\"))!==null&&r!==void 0?r:n+(e.inverse?-360:360);e.setExtent(n,a)}t.axis=e,e.model=t}var wAt={dimensions:c1e,create:function(e,t){var r=[];return e.eachComponent(\"polar\",function(n,a){var i=new xAt(a+\"\");i.update=FAt;var o=i.getRadiusAxis(),l=i.getAngleAxis(),s=n.findAxisModel(\"radiusAxis\"),u=n.findAxisModel(\"angleAxis\");LZ(o,s),LZ(l,u),CAt(i,n,t),r.push(i),n.coordinateSystem=i,i.model=n}),e.eachSeries(function(n){if(n.get(\"coordinateSystem\")===\"polar\"){var a=n.getReferringComponents(\"polar\",Oa).models[0];n.coordinateSystem=a.coordinateSystem}}),r}},EAt=[\"axisLine\",\"axisLabel\",\"axisTick\",\"minorTick\",\"splitLine\",\"minorSplitLine\",\"splitArea\"];function IS(e,t,r){t[1]>t[0]&&(t=t.slice().reverse());var n=e.coordToPoint([t[0],r]),a=e.coordToPoint([t[1],r]);return{x1:n[0],y1:n[1],x2:a[0],y2:a[1]}}function kS(e){var t=e.getRadiusAxis();return t.inverse?0:1}function jZ(e){var t=e[0],r=e[e.length-1];t&&r&&Math.abs(Math.abs(t.coord-r.coord)-360)<1e-4&&e.pop()}var DAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.axisPointerClass=\"PolarAxisPointer\",r}return t.prototype.render=function(r,n){if(this.group.removeAll(),!!r.get(\"show\")){var a=r.axis,i=a.polar,o=i.getRadiusAxis().getExtent(),l=a.getTicksCoords(),s=a.getMinorTicksCoords(),u=ot(a.getViewLabels(),function(c){c=lr(c);var d=a.scale,f=d.type===\"ordinal\"?d.getRawOrdinalNumber(c.tickValue):c.tickValue;return c.coord=a.dataToCoord(f),c});jZ(u),jZ(l),q(EAt,function(c){r.get([c,\"show\"])&&(!a.scale.isBlank()||c===\"axisLine\")&&AAt[c](this.group,r,i,l,s,o,u)},this)}},t.type=\"angleAxis\",t}(Hm),AAt={axisLine:function(e,t,r,n,a,i){var o=t.getModel([\"axisLine\",\"lineStyle\"]),l=r.getAngleAxis(),s=Math.PI/180,u=l.getExtent(),c=kS(r),d=c?0:1,f,h=Math.abs(u[1]-u[0])===360?\"Circle\":\"Arc\";i[d]===0?f=new $m[h]({shape:{cx:r.cx,cy:r.cy,r:i[c],startAngle:-u[0]*s,endAngle:-u[1]*s,clockwise:l.inverse},style:o.getLineStyle(),z2:1,silent:!0}):f=new Ug({shape:{cx:r.cx,cy:r.cy,r:i[c],r0:i[d]},style:o.getLineStyle(),z2:1,silent:!0}),f.style.fill=null,e.add(f)},axisTick:function(e,t,r,n,a,i){var o=t.getModel(\"axisTick\"),l=(o.get(\"inside\")?-1:1)*o.get(\"length\"),s=i[kS(r)],u=ot(n,function(c){return new Xa({shape:IS(r,[s,s+l],c.coord)})});e.add(Tl(u,{style:rr(o.getModel(\"lineStyle\").getLineStyle(),{stroke:t.get([\"axisLine\",\"lineStyle\",\"color\"])})}))},minorTick:function(e,t,r,n,a,i){if(a.length){for(var o=t.getModel(\"axisTick\"),l=t.getModel(\"minorTick\"),s=(o.get(\"inside\")?-1:1)*l.get(\"length\"),u=i[kS(r)],c=[],d=0;d<a.length;d++)for(var f=0;f<a[d].length;f++)c.push(new Xa({shape:IS(r,[u,u+s],a[d][f].coord)}));e.add(Tl(c,{style:rr(l.getModel(\"lineStyle\").getLineStyle(),rr(o.getLineStyle(),{stroke:t.get([\"axisLine\",\"lineStyle\",\"color\"])}))}))}},axisLabel:function(e,t,r,n,a,i,o){var l=t.getCategories(!0),s=t.getModel(\"axisLabel\"),u=s.get(\"margin\"),c=t.get(\"triggerEvent\");q(o,function(d,f){var h=s,p=d.tickValue,v=i[kS(r)],g=r.coordToPoint([v+u,d.coord]),y=r.cx,b=r.cy,x=Math.abs(g[0]-y)/v<.3?\"center\":g[0]>y?\"left\":\"right\",F=Math.abs(g[1]-b)/v<.3?\"middle\":g[1]>b?\"top\":\"bottom\";if(l&&l[p]){var S=l[p];ir(S)&&S.textStyle&&(h=new pn(S.textStyle,s,s.ecModel))}var E=new Jr({silent:Vo.isLabelSilent(t),style:Mn(h,{x:g[0],y:g[1],fill:h.getTextColor()||t.get([\"axisLine\",\"lineStyle\",\"color\"]),text:d.formattedLabel,align:x,verticalAlign:F})});if(e.add(E),c){var w=Vo.makeAxisEventDataBase(t);w.targetType=\"axisLabel\",w.value=d.rawLabel,br(E).eventData=w}},this)},splitLine:function(e,t,r,n,a,i){var o=t.getModel(\"splitLine\"),l=o.getModel(\"lineStyle\"),s=l.get(\"color\"),u=0;s=s instanceof Array?s:[s];for(var c=[],d=0;d<n.length;d++){var f=u++%s.length;c[f]=c[f]||[],c[f].push(new Xa({shape:IS(r,i,n[d].coord)}))}for(var d=0;d<c.length;d++)e.add(Tl(c[d],{style:rr({stroke:s[d%s.length]},l.getLineStyle()),silent:!0,z:t.get(\"z\")}))},minorSplitLine:function(e,t,r,n,a,i){if(a.length){for(var o=t.getModel(\"minorSplitLine\"),l=o.getModel(\"lineStyle\"),s=[],u=0;u<a.length;u++)for(var c=0;c<a[u].length;c++)s.push(new Xa({shape:IS(r,i,a[u][c].coord)}));e.add(Tl(s,{style:l.getLineStyle(),silent:!0,z:t.get(\"z\")}))}},splitArea:function(e,t,r,n,a,i){if(n.length){var o=t.getModel(\"splitArea\"),l=o.getModel(\"areaStyle\"),s=l.get(\"color\"),u=0;s=s instanceof Array?s:[s];for(var c=[],d=Math.PI/180,f=-n[0].coord*d,h=Math.min(i[0],i[1]),p=Math.max(i[0],i[1]),v=t.get(\"clockwise\"),g=1,y=n.length;g<=y;g++){var b=g===y?n[0].coord:n[g].coord,x=u++%s.length;c[x]=c[x]||[],c[x].push(new So({shape:{cx:r.cx,cy:r.cy,r0:h,r:p,startAngle:f,endAngle:-b*d,clockwise:v},silent:!0})),f=-b*d}for(var g=0;g<c.length;g++)e.add(Tl(c[g],{style:rr({fill:s[g%s.length]},l.getAreaStyle()),silent:!0}))}}},_At=[\"axisLine\",\"axisTickLabel\",\"axisName\"],TAt=[\"splitLine\",\"splitArea\",\"minorSplitLine\"],IAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.axisPointerClass=\"PolarAxisPointer\",r}return t.prototype.render=function(r,n){if(this.group.removeAll(),!!r.get(\"show\")){var a=this._axisGroup,i=this._axisGroup=new pr;this.group.add(i);var o=r.axis,l=o.polar,s=l.getAngleAxis(),u=o.getTicksCoords(),c=o.getMinorTicksCoords(),d=s.getExtent()[0],f=o.getExtent(),h=RAt(l,r,d),p=new Vo(r,h);q(_At,p.add,p),i.add(p.getGroup()),iC(a,i,r),q(TAt,function(v){r.get([v,\"show\"])&&!o.scale.isBlank()&&kAt[v](this.group,r,l,d,f,u,c)},this)}},t.type=\"radiusAxis\",t}(Hm),kAt={splitLine:function(e,t,r,n,a,i){var o=t.getModel(\"splitLine\"),l=o.getModel(\"lineStyle\"),s=l.get(\"color\"),u=0,c=r.getAngleAxis(),d=Math.PI/180,f=c.getExtent(),h=Math.abs(f[1]-f[0])===360?\"Circle\":\"Arc\";s=s instanceof Array?s:[s];for(var p=[],v=0;v<i.length;v++){var g=u++%s.length;p[g]=p[g]||[],p[g].push(new $m[h]({shape:{cx:r.cx,cy:r.cy,r:Math.max(i[v].coord,0),startAngle:-f[0]*d,endAngle:-f[1]*d,clockwise:c.inverse}}))}for(var v=0;v<p.length;v++)e.add(Tl(p[v],{style:rr({stroke:s[v%s.length],fill:null},l.getLineStyle()),silent:!0}))},minorSplitLine:function(e,t,r,n,a,i,o){if(o.length){for(var l=t.getModel(\"minorSplitLine\"),s=l.getModel(\"lineStyle\"),u=[],c=0;c<o.length;c++)for(var d=0;d<o[c].length;d++)u.push(new Fc({shape:{cx:r.cx,cy:r.cy,r:o[c][d].coord}}));e.add(Tl(u,{style:rr({fill:null},s.getLineStyle()),silent:!0}))}},splitArea:function(e,t,r,n,a,i){if(i.length){var o=t.getModel(\"splitArea\"),l=o.getModel(\"areaStyle\"),s=l.get(\"color\"),u=0;s=s instanceof Array?s:[s];for(var c=[],d=i[0].coord,f=1;f<i.length;f++){var h=u++%s.length;c[h]=c[h]||[],c[h].push(new So({shape:{cx:r.cx,cy:r.cy,r0:d,r:i[f].coord,startAngle:0,endAngle:Math.PI*2},silent:!0})),d=i[f].coord}for(var f=0;f<c.length;f++)e.add(Tl(c[f],{style:rr({fill:s[f%s.length]},l.getAreaStyle()),silent:!0}))}}};function RAt(e,t,r){return{position:[e.cx,e.cy],rotation:r/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:t.getModel(\"axisLabel\").get(\"rotate\"),z2:1}}function d1e(e){return e.get(\"stack\")||\"__ec_stack_\"+e.seriesIndex}function f1e(e,t){return t.dim+e.model.componentIndex}function MAt(e,t,r){var n={},a=PAt(hn(t.getSeriesByType(e),function(i){return!t.isSeriesFiltered(i)&&i.coordinateSystem&&i.coordinateSystem.type===\"polar\"}));t.eachSeriesByType(e,function(i){if(i.coordinateSystem.type===\"polar\"){var o=i.getData(),l=i.coordinateSystem,s=l.getBaseAxis(),u=f1e(l,s),c=d1e(i),d=a[u][c],f=d.offset,h=d.width,p=l.getOtherAxis(s),v=i.coordinateSystem.cx,g=i.coordinateSystem.cy,y=i.get(\"barMinHeight\")||0,b=i.get(\"barMinAngle\")||0;n[c]=n[c]||[];for(var x=o.mapDimension(p.dim),F=o.mapDimension(s.dim),S=md(o,x),E=s.dim!==\"radius\"||!i.get(\"roundCap\",!0),w=p.model,D=w.get(\"startValue\"),A=p.dataToCoord(D||0),_=0,I=o.count();_<I;_++){var M=o.get(x,_),T=o.get(F,_),k=M>=0?\"p\":\"n\",R=A;S&&(n[c][T]||(n[c][T]={p:A,n:A}),R=n[c][T][k]);var P=void 0,B=void 0,N=void 0,O=void 0;if(p.dim===\"radius\"){var z=p.dataToCoord(M)-A,W=s.dataToCoord(T);Math.abs(z)<y&&(z=(z<0?-1:1)*y),P=R,B=R+z,N=W-f,O=N-h,S&&(n[c][T][k]=B)}else{var L=p.dataToCoord(M,E)-A,j=s.dataToCoord(T);Math.abs(L)<b&&(L=(L<0?-1:1)*b),P=j+f,B=P+h,N=R,O=R+L,S&&(n[c][T][k]=O)}o.setItemLayout(_,{cx:v,cy:g,r0:P,r:B,startAngle:-N*Math.PI/180,endAngle:-O*Math.PI/180,clockwise:N>=O})}}})}function PAt(e){var t={};q(e,function(n,a){var i=n.getData(),o=n.coordinateSystem,l=o.getBaseAxis(),s=f1e(o,l),u=l.getExtent(),c=l.type===\"category\"?l.getBandWidth():Math.abs(u[1]-u[0])/i.count(),d=t[s]||{bandWidth:c,remainedWidth:c,autoWidthCount:0,categoryGap:\"20%\",gap:\"30%\",stacks:{}},f=d.stacks;t[s]=d;var h=d1e(n);f[h]||d.autoWidthCount++,f[h]=f[h]||{width:0,maxWidth:0};var p=Ft(n.get(\"barWidth\"),c),v=Ft(n.get(\"barMaxWidth\"),c),g=n.get(\"barGap\"),y=n.get(\"barCategoryGap\");p&&!f[h].width&&(p=Math.min(d.remainedWidth,p),f[h].width=p,d.remainedWidth-=p),v&&(f[h].maxWidth=v),g!=null&&(d.gap=g),y!=null&&(d.categoryGap=y)});var r={};return q(t,function(n,a){r[a]={};var i=n.stacks,o=n.bandWidth,l=Ft(n.categoryGap,o),s=Ft(n.gap,1),u=n.remainedWidth,c=n.autoWidthCount,d=(u-l)/(c+(c-1)*s);d=Math.max(d,0),q(i,function(v,g){var y=v.maxWidth;y&&y<d&&(y=Math.min(y,u),v.width&&(y=Math.min(y,v.width)),u-=y,v.width=y,c--)}),d=(u-l)/(c+(c-1)*s),d=Math.max(d,0);var f=0,h;q(i,function(v,g){v.width||(v.width=d),h=v,f+=v.width*(1+s)}),h&&(f-=h.width*s);var p=-f/2;q(i,function(v,g){r[a][g]=r[a][g]||{offset:p,width:v.width},p+=v.width*(1+s)})}),r}var OAt={startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:0}},BAt={splitNumber:5},NAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"polar\",t}(Wn);function $At(e){Nr(gC),Hm.registerAxisPointerClass(\"PolarAxisPointer\",hAt),e.registerCoordinateSystem(\"polar\",wAt),e.registerComponentModel(vAt),e.registerComponentView(NAt),cg(e,\"angle\",gAt,OAt),cg(e,\"radius\",yAt,BAt),e.registerComponentView(DAt),e.registerComponentView(IAt),e.registerLayout(wr(MAt,\"bar\"))}function i9(e,t){t=t||{};var r=e.coordinateSystem,n=e.axis,a={},i=n.position,o=n.orient,l=r.getRect(),s=[l.x,l.x+l.width,l.y,l.y+l.height],u={horizontal:{top:s[2],bottom:s[3]},vertical:{left:s[0],right:s[1]}};a.position=[o===\"vertical\"?u.vertical[i]:s[0],o===\"horizontal\"?u.horizontal[i]:s[3]];var c={horizontal:0,vertical:1};a.rotation=Math.PI/2*c[o];var d={top:-1,bottom:1,right:1,left:-1};a.labelDirection=a.tickDirection=a.nameDirection=d[i],e.get([\"axisTick\",\"inside\"])&&(a.tickDirection=-a.tickDirection),ui(t.labelInside,e.get([\"axisLabel\",\"inside\"]))&&(a.labelDirection=-a.labelDirection);var f=t.rotate;return f==null&&(f=e.get([\"axisLabel\",\"rotate\"])),a.labelRotation=i===\"top\"?-f:f,a.z2=1,a}var LAt=[\"axisLine\",\"axisTickLabel\",\"axisName\"],jAt=[\"splitArea\",\"splitLine\"],zAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.axisPointerClass=\"SingleAxisPointer\",r}return t.prototype.render=function(r,n,a,i){var o=this.group;o.removeAll();var l=this._axisGroup;this._axisGroup=new pr;var s=i9(r),u=new Vo(r,s);q(LAt,u.add,u),o.add(this._axisGroup),o.add(u.getGroup()),q(jAt,function(c){r.get([c,\"show\"])&&HAt[c](this,this.group,this._axisGroup,r)},this),iC(l,this._axisGroup,r),e.prototype.render.call(this,r,n,a,i)},t.prototype.remove=function(){P0e(this)},t.type=\"singleAxis\",t}(Hm),HAt={splitLine:function(e,t,r,n){var a=n.axis;if(!a.scale.isBlank()){var i=n.getModel(\"splitLine\"),o=i.getModel(\"lineStyle\"),l=o.get(\"color\");l=l instanceof Array?l:[l];for(var s=o.get(\"width\"),u=n.coordinateSystem.getRect(),c=a.isHorizontal(),d=[],f=0,h=a.getTicksCoords({tickModel:i}),p=[],v=[],g=0;g<h.length;++g){var y=a.toGlobalCoord(h[g].coord);c?(p[0]=y,p[1]=u.y,v[0]=y,v[1]=u.y+u.height):(p[0]=u.x,p[1]=y,v[0]=u.x+u.width,v[1]=y);var b=new Xa({shape:{x1:p[0],y1:p[1],x2:v[0],y2:v[1]},silent:!0});og(b.shape,s);var x=f++%l.length;d[x]=d[x]||[],d[x].push(b)}for(var F=o.getLineStyle([\"color\"]),g=0;g<d.length;++g)t.add(Tl(d[g],{style:rr({stroke:l[g%l.length]},F),silent:!0}))}},splitArea:function(e,t,r,n){M0e(e,r,n,n)}},Hw=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.getCoordSysModel=function(){return this},t.type=\"singleAxis\",t.layoutMode=\"box\",t.defaultOption={left:\"5%\",top:\"5%\",right:\"5%\",bottom:\"5%\",type:\"value\",position:\"bottom\",orient:\"horizontal\",axisLine:{show:!0,lineStyle:{width:1,type:\"solid\"}},tooltip:{show:!0},axisTick:{show:!0,length:6,lineStyle:{width:1}},axisLabel:{show:!0,interval:\"auto\"},splitLine:{show:!0,lineStyle:{type:\"dashed\",opacity:.2}}},t}(jr);Ca(Hw,l1.prototype);var VAt=function(e){Re(t,e);function t(r,n,a,i,o){var l=e.call(this,r,n,a)||this;return l.type=i||\"value\",l.position=o||\"bottom\",l}return t.prototype.isHorizontal=function(){var r=this.position;return r===\"top\"||r===\"bottom\"},t.prototype.pointToData=function(r,n){return this.coordinateSystem.pointToData(r)[0]},t}(Bs),h1e=[\"single\"],WAt=function(){function e(t,r,n){this.type=\"single\",this.dimension=\"single\",this.dimensions=h1e,this.axisPointerEnabled=!0,this.model=t,this._init(t,r,n)}return e.prototype._init=function(t,r,n){var a=this.dimension,i=new VAt(a,sC(t),[0,0],t.get(\"type\"),t.get(\"position\")),o=i.type===\"category\";i.onBand=o&&t.get(\"boundaryGap\"),i.inverse=t.get(\"inverse\"),i.orient=t.get(\"orient\"),t.axis=i,i.model=t,i.coordinateSystem=this,this._axis=i},e.prototype.update=function(t,r){t.eachSeries(function(n){if(n.coordinateSystem===this){var a=n.getData();q(a.mapDimensionsAll(this.dimension),function(i){this._axis.scale.unionExtentFromData(a,i)},this),sm(this._axis.scale,this._axis.model)}},this)},e.prototype.resize=function(t,r){this._rect=Na({left:t.get(\"left\"),top:t.get(\"top\"),right:t.get(\"right\"),bottom:t.get(\"bottom\"),width:t.get(\"width\"),height:t.get(\"height\")},{width:r.getWidth(),height:r.getHeight()}),this._adjustAxis()},e.prototype.getRect=function(){return this._rect},e.prototype._adjustAxis=function(){var t=this._rect,r=this._axis,n=r.isHorizontal(),a=n?[0,t.width]:[0,t.height],i=r.inverse?1:0;r.setExtent(a[i],a[1-i]),this._updateAxisTransform(r,n?t.x:t.y)},e.prototype._updateAxisTransform=function(t,r){var n=t.getExtent(),a=n[0]+n[1],i=t.isHorizontal();t.toGlobalCoord=i?function(o){return o+r}:function(o){return a-o+r},t.toLocalCoord=i?function(o){return o-r}:function(o){return a-o+r}},e.prototype.getAxis=function(){return this._axis},e.prototype.getBaseAxis=function(){return this._axis},e.prototype.getAxes=function(){return[this._axis]},e.prototype.getTooltipAxes=function(){return{baseAxes:[this.getAxis()],otherAxes:[]}},e.prototype.containPoint=function(t){var r=this.getRect(),n=this.getAxis(),a=n.orient;return a===\"horizontal\"?n.contain(n.toLocalCoord(t[0]))&&t[1]>=r.y&&t[1]<=r.y+r.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=r.y&&t[0]<=r.y+r.height},e.prototype.pointToData=function(t){var r=this.getAxis();return[r.coordToData(r.toLocalCoord(t[r.orient===\"horizontal\"?0:1]))]},e.prototype.dataToPoint=function(t){var r=this.getAxis(),n=this.getRect(),a=[],i=r.orient===\"horizontal\"?0:1;return t instanceof Array&&(t=t[0]),a[i]=r.toGlobalCoord(r.dataToCoord(+t)),a[1-i]=i===0?n.y+n.height/2:n.x+n.width/2,a},e.prototype.convertToPixel=function(t,r,n){var a=zZ(r);return a===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,r,n){var a=zZ(r);return a===this?this.pointToData(n):null},e}();function zZ(e){var t=e.seriesModel,r=e.singleAxisModel;return r&&r.coordinateSystem||t&&t.coordinateSystem}function GAt(e,t){var r=[];return e.eachComponent(\"singleAxis\",function(n,a){var i=new WAt(n,e,t);i.name=\"single_\"+a,i.resize(n,t),n.coordinateSystem=i,r.push(i)}),e.eachSeries(function(n){if(n.get(\"coordinateSystem\")===\"singleAxis\"){var a=n.getReferringComponents(\"singleAxis\",Oa).models[0];n.coordinateSystem=a&&a.coordinateSystem}}),r}var UAt={create:GAt,dimensions:h1e},HZ=[\"x\",\"y\"],KAt=[\"width\",\"height\"],YAt=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.makeElOption=function(r,n,a,i,o){var l=a.axis,s=l.coordinateSystem,u=ck(s,1-h4(l)),c=s.dataToPoint(n)[0],d=i.get(\"type\");if(d&&d!==\"none\"){var f=K$(i),h=qAt[d](l,c,u);h.style=f,r.graphicKey=h.type,r.pointer=h}var p=i9(a);o1e(n,r,p,a,i,o)},t.prototype.getHandleTransform=function(r,n,a){var i=i9(n,{labelInside:!1});i.labelMargin=a.get([\"handle\",\"margin\"]);var o=Y$(n.axis,r,i);return{x:o[0],y:o[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},t.prototype.updateHandleTransform=function(r,n,a,i){var o=a.axis,l=o.coordinateSystem,s=h4(o),u=ck(l,s),c=[r.x,r.y];c[s]+=n[s],c[s]=Math.min(u[1],c[s]),c[s]=Math.max(u[0],c[s]);var d=ck(l,1-s),f=(d[1]+d[0])/2,h=[f,f];return h[s]=c[s],{x:c[0],y:c[1],rotation:r.rotation,cursorPoint:h,tooltipOption:{verticalAlign:\"middle\"}}},t}(U$),qAt={line:function(e,t,r){var n=q$([t,r[0]],[t,r[1]],h4(e));return{type:\"Line\",subPixelOptimize:!0,shape:n}},shadow:function(e,t,r){var n=e.getBandWidth(),a=r[1]-r[0];return{type:\"Rect\",shape:l1e([t-n/2,r[0]],[n,a],h4(e))}}};function h4(e){return e.isHorizontal()?0:1}function ck(e,t){var r=e.getRect();return[r[HZ[t]],r[HZ[t]]+r[KAt[t]]]}var XAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"single\",t}(Wn);function JAt(e){Nr(gC),Hm.registerAxisPointerClass(\"SingleAxisPointer\",YAt),e.registerComponentView(XAt),e.registerComponentView(zAt),e.registerComponentModel(Hw),cg(e,\"single\",Hw,Hw.defaultOption),e.registerCoordinateSystem(\"single\",UAt)}var ZAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n,a){var i=Qg(r);e.prototype.init.apply(this,arguments),VZ(r,i)},t.prototype.mergeOption=function(r){e.prototype.mergeOption.apply(this,arguments),VZ(this.option,r)},t.prototype.getCellSize=function(){return this.option.cellSize},t.type=\"calendar\",t.defaultOption={z:2,left:80,top:60,cellSize:20,orient:\"horizontal\",splitLine:{show:!0,lineStyle:{color:\"#000\",width:1,type:\"solid\"}},itemStyle:{color:\"#fff\",borderWidth:1,borderColor:\"#ccc\"},dayLabel:{show:!0,firstDay:0,position:\"start\",margin:\"50%\",color:\"#000\"},monthLabel:{show:!0,position:\"start\",margin:5,align:\"center\",formatter:null,color:\"#000\"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:\"#ccc\",fontFamily:\"sans-serif\",fontWeight:\"bolder\",fontSize:20}},t}(jr);function VZ(e,t){var r=e.cellSize,n;nt(r)?n=r:n=e.cellSize=[r,r],n.length===1&&(n[1]=n[0]);var a=ot([0,1],function(i){return ryt(t,i)&&(n[i]=\"auto\"),n[i]!=null&&n[i]!==\"auto\"});Xf(e,t,{type:\"box\",ignoreSize:a})}var QAt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){var i=this.group;i.removeAll();var o=r.coordinateSystem,l=o.getRangeInfo(),s=o.getOrient(),u=n.getLocaleModel();this._renderDayRect(r,l,i),this._renderLines(r,l,s,i),this._renderYearText(r,l,s,i),this._renderMonthText(r,u,s,i),this._renderWeekText(r,u,l,s,i)},t.prototype._renderDayRect=function(r,n,a){for(var i=r.coordinateSystem,o=r.getModel(\"itemStyle\").getItemStyle(),l=i.getCellWidth(),s=i.getCellHeight(),u=n.start.time;u<=n.end.time;u=i.getNextNDay(u,1).time){var c=i.dataToRect([u],!1).tl,d=new Zr({shape:{x:c[0],y:c[1],width:l,height:s},cursor:\"default\",style:o});a.add(d)}},t.prototype._renderLines=function(r,n,a,i){var o=this,l=r.coordinateSystem,s=r.getModel([\"splitLine\",\"lineStyle\"]).getLineStyle(),u=r.get([\"splitLine\",\"show\"]),c=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var d=n.start,f=0;d.time<=n.end.time;f++){p(d.formatedDate),f===0&&(d=l.getDateInfo(n.start.y+\"-\"+n.start.m));var h=d.date;h.setMonth(h.getMonth()+1),d=l.getDateInfo(h)}p(l.getNextNDay(n.end.time,1).formatedDate);function p(v){o._firstDayOfMonth.push(l.getDateInfo(v)),o._firstDayPoints.push(l.dataToRect([v],!1).tl);var g=o._getLinePointsOfOneWeek(r,v,a);o._tlpoints.push(g[0]),o._blpoints.push(g[g.length-1]),u&&o._drawSplitline(g,s,i)}u&&this._drawSplitline(o._getEdgesPoints(o._tlpoints,c,a),s,i),u&&this._drawSplitline(o._getEdgesPoints(o._blpoints,c,a),s,i)},t.prototype._getEdgesPoints=function(r,n,a){var i=[r[0].slice(),r[r.length-1].slice()],o=a===\"horizontal\"?0:1;return i[0][o]=i[0][o]-n/2,i[1][o]=i[1][o]+n/2,i},t.prototype._drawSplitline=function(r,n,a){var i=new To({z2:20,shape:{points:r},style:n});a.add(i)},t.prototype._getLinePointsOfOneWeek=function(r,n,a){for(var i=r.coordinateSystem,o=i.getDateInfo(n),l=[],s=0;s<7;s++){var u=i.getNextNDay(o.time,s),c=i.dataToRect([u.time],!1);l[2*u.day]=c.tl,l[2*u.day+1]=c[a===\"horizontal\"?\"bl\":\"tr\"]}return l},t.prototype._formatterLabel=function(r,n){return At(r)&&r?Z1t(r,n):er(r)?r(n):n.nameMap},t.prototype._yearTextPositionControl=function(r,n,a,i,o){var l=n[0],s=n[1],u=[\"center\",\"bottom\"];i===\"bottom\"?(s+=o,u=[\"center\",\"top\"]):i===\"left\"?l-=o:i===\"right\"?(l+=o,u=[\"center\",\"top\"]):s-=o;var c=0;return(i===\"left\"||i===\"right\")&&(c=Math.PI/2),{rotation:c,x:l,y:s,style:{align:u[0],verticalAlign:u[1]}}},t.prototype._renderYearText=function(r,n,a,i){var o=r.getModel(\"yearLabel\");if(o.get(\"show\")){var l=o.get(\"margin\"),s=o.get(\"position\");s||(s=a!==\"horizontal\"?\"top\":\"left\");var u=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],c=(u[0][0]+u[1][0])/2,d=(u[0][1]+u[1][1])/2,f=a===\"horizontal\"?0:1,h={top:[c,u[f][1]],bottom:[c,u[1-f][1]],left:[u[1-f][0],d],right:[u[f][0],d]},p=n.start.y;+n.end.y>+n.start.y&&(p=p+\"-\"+n.end.y);var v=o.get(\"formatter\"),g={start:n.start.y,end:n.end.y,nameMap:p},y=this._formatterLabel(v,g),b=new Jr({z2:30,style:Mn(o,{text:y}),silent:o.get(\"silent\")});b.attr(this._yearTextPositionControl(b,h[s],a,s,l)),i.add(b)}},t.prototype._monthTextPositionControl=function(r,n,a,i,o){var l=\"left\",s=\"top\",u=r[0],c=r[1];return a===\"horizontal\"?(c=c+o,n&&(l=\"center\"),i===\"start\"&&(s=\"bottom\")):(u=u+o,n&&(s=\"middle\"),i===\"start\"&&(l=\"right\")),{x:u,y:c,align:l,verticalAlign:s}},t.prototype._renderMonthText=function(r,n,a,i){var o=r.getModel(\"monthLabel\");if(o.get(\"show\")){var l=o.get(\"nameMap\"),s=o.get(\"margin\"),u=o.get(\"position\"),c=o.get(\"align\"),d=[this._tlpoints,this._blpoints];(!l||At(l))&&(l&&(n=fP(l)||n),l=n.get([\"time\",\"monthAbbr\"])||[]);var f=u===\"start\"?0:1,h=a===\"horizontal\"?0:1;s=u===\"start\"?-s:s;for(var p=c===\"center\",v=o.get(\"silent\"),g=0;g<d[f].length-1;g++){var y=d[f][g].slice(),b=this._firstDayOfMonth[g];if(p){var x=this._firstDayPoints[g];y[h]=(x[h]+d[0][g+1][h])/2}var F=o.get(\"formatter\"),S=l[+b.m-1],E={yyyy:b.y,yy:(b.y+\"\").slice(2),MM:b.m,M:+b.m,nameMap:S},w=this._formatterLabel(F,E),D=new Jr({z2:30,style:Xe(Mn(o,{text:w}),this._monthTextPositionControl(y,p,a,u,s)),silent:v});i.add(D)}}},t.prototype._weekTextPositionControl=function(r,n,a,i,o){var l=\"center\",s=\"middle\",u=r[0],c=r[1],d=a===\"start\";return n===\"horizontal\"?(u=u+i+(d?1:-1)*o[0]/2,l=d?\"right\":\"left\"):(c=c+i+(d?1:-1)*o[1]/2,s=d?\"bottom\":\"top\"),{x:u,y:c,align:l,verticalAlign:s}},t.prototype._renderWeekText=function(r,n,a,i,o){var l=r.getModel(\"dayLabel\");if(l.get(\"show\")){var s=r.coordinateSystem,u=l.get(\"position\"),c=l.get(\"nameMap\"),d=l.get(\"margin\"),f=s.getFirstDayOfWeek();if(!c||At(c)){c&&(n=fP(c)||n);var h=n.get([\"time\",\"dayOfWeekShort\"]);c=h||ot(n.get([\"time\",\"dayOfWeekAbbr\"]),function(E){return E[0]})}var p=s.getNextNDay(a.end.time,7-a.lweek).time,v=[s.getCellWidth(),s.getCellHeight()];d=Ft(d,Math.min(v[1],v[0])),u===\"start\"&&(p=s.getNextNDay(a.start.time,-(7+a.fweek)).time,d=-d);for(var g=l.get(\"silent\"),y=0;y<7;y++){var b=s.getNextNDay(p,y),x=s.dataToRect([b.time],!1).center,F=y;F=Math.abs((y+f)%7);var S=new Jr({z2:30,style:Xe(Mn(l,{text:c[F]}),this._weekTextPositionControl(x,i,u,d,v)),silent:g});o.add(S)}}},t.type=\"calendar\",t}(Wn),dk=864e5,e_t=function(){function e(t,r,n){this.type=\"calendar\",this.dimensions=e.dimensions,this.getDimensionsInfo=e.getDimensionsInfo,this._model=t}return e.getDimensionsInfo=function(){return[{name:\"time\",type:\"time\"},\"value\"]},e.prototype.getRangeInfo=function(){return this._rangeInfo},e.prototype.getModel=function(){return this._model},e.prototype.getRect=function(){return this._rect},e.prototype.getCellWidth=function(){return this._sw},e.prototype.getCellHeight=function(){return this._sh},e.prototype.getOrient=function(){return this._orient},e.prototype.getFirstDayOfWeek=function(){return this._firstDayOfWeek},e.prototype.getDateInfo=function(t){t=jl(t);var r=t.getFullYear(),n=t.getMonth()+1,a=n<10?\"0\"+n:\"\"+n,i=t.getDate(),o=i<10?\"0\"+i:\"\"+i,l=t.getDay();return l=Math.abs((l+7-this.getFirstDayOfWeek())%7),{y:r+\"\",m:a,d:o,day:l,time:t.getTime(),formatedDate:r+\"-\"+a+\"-\"+o,date:t}},e.prototype.getNextNDay=function(t,r){return r=r||0,r===0?this.getDateInfo(t):(t=new Date(this.getDateInfo(t).time),t.setDate(t.getDate()+r),this.getDateInfo(t))},e.prototype.update=function(t,r){this._firstDayOfWeek=+this._model.getModel(\"dayLabel\").get(\"firstDay\"),this._orient=this._model.get(\"orient\"),this._lineWidth=this._model.getModel(\"itemStyle\").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,a=[\"width\",\"height\"],i=this._model.getCellSize().slice(),o=this._model.getBoxLayoutParams(),l=this._orient===\"horizontal\"?[n,7]:[7,n];q([0,1],function(d){c(i,d)&&(o[a[d]]=i[d]*l[d])});var s={width:r.getWidth(),height:r.getHeight()},u=this._rect=Na(o,s);q([0,1],function(d){c(i,d)||(i[d]=u[a[d]]/l[d])});function c(d,f){return d[f]!=null&&d[f]!==\"auto\"}this._sw=i[0],this._sh=i[1]},e.prototype.dataToPoint=function(t,r){nt(t)&&(t=t[0]),r==null&&(r=!0);var n=this.getDateInfo(t),a=this._rangeInfo,i=n.formatedDate;if(r&&!(n.time>=a.start.time&&n.time<a.end.time+dk))return[NaN,NaN];var o=n.day,l=this._getRangeInfo([a.start.time,i]).nthWeek;return this._orient===\"vertical\"?[this._rect.x+o*this._sw+this._sw/2,this._rect.y+l*this._sh+this._sh/2]:[this._rect.x+l*this._sw+this._sw/2,this._rect.y+o*this._sh+this._sh/2]},e.prototype.pointToData=function(t){var r=this.pointToDate(t);return r&&r.time},e.prototype.dataToRect=function(t,r){var n=this.dataToPoint(t,r);return{contentShape:{x:n[0]-(this._sw-this._lineWidth)/2,y:n[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:n,tl:[n[0]-this._sw/2,n[1]-this._sh/2],tr:[n[0]+this._sw/2,n[1]-this._sh/2],br:[n[0]+this._sw/2,n[1]+this._sh/2],bl:[n[0]-this._sw/2,n[1]+this._sh/2]}},e.prototype.pointToDate=function(t){var r=Math.floor((t[0]-this._rect.x)/this._sw)+1,n=Math.floor((t[1]-this._rect.y)/this._sh)+1,a=this._rangeInfo.range;return this._orient===\"vertical\"?this._getDateByWeeksAndDay(n,r-1,a):this._getDateByWeeksAndDay(r,n-1,a)},e.prototype.convertToPixel=function(t,r,n){var a=WZ(r);return a===this?a.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,r,n){var a=WZ(r);return a===this?a.pointToData(n):null},e.prototype.containPoint=function(t){return console.warn(\"Not implemented.\"),!1},e.prototype._initRangeOption=function(){var t=this._model.get(\"range\"),r;if(nt(t)&&t.length===1&&(t=t[0]),nt(t))r=t;else{var n=t.toString();if(/^\\d{4}$/.test(n)&&(r=[n+\"-01-01\",n+\"-12-31\"]),/^\\d{4}[\\/|-]\\d{1,2}$/.test(n)){var a=this.getDateInfo(n),i=a.date;i.setMonth(i.getMonth()+1);var o=this.getNextNDay(i,-1);r=[a.formatedDate,o.formatedDate]}/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(n)&&(r=[n,n])}if(!r)return t;var l=this._getRangeInfo(r);return l.start.time>l.end.time&&r.reverse(),r},e.prototype._getRangeInfo=function(t){var r=[this.getDateInfo(t[0]),this.getDateInfo(t[1])],n;r[0].time>r[1].time&&(n=!0,r.reverse());var a=Math.floor(r[1].time/dk)-Math.floor(r[0].time/dk)+1,i=new Date(r[0].time),o=i.getDate(),l=r[1].date.getDate();i.setDate(o+a-1);var s=i.getDate();if(s!==l)for(var u=i.getTime()-r[1].time>0?1:-1;(s=i.getDate())!==l&&(i.getTime()-r[1].time)*u>0;)a-=u,i.setDate(s-u);var c=Math.floor((a+r[0].day+6)/7),d=n?-c+1:c-1;return n&&r.reverse(),{range:[r[0].formatedDate,r[1].formatedDate],start:r[0],end:r[1],allDay:a,weeks:c,nthWeek:d,fweek:r[0].day,lweek:r[1].day}},e.prototype._getDateByWeeksAndDay=function(t,r,n){var a=this._getRangeInfo(n);if(t>a.weeks||t===0&&r<a.fweek||t===a.weeks&&r>a.lweek)return null;var i=(t-1)*7-a.fweek+r,o=new Date(a.start.time);return o.setDate(+a.start.d+i),this.getDateInfo(o)},e.create=function(t,r){var n=[];return t.eachComponent(\"calendar\",function(a){var i=new e(a);n.push(i),a.coordinateSystem=i}),t.eachSeries(function(a){a.get(\"coordinateSystem\")===\"calendar\"&&(a.coordinateSystem=n[a.get(\"calendarIndex\")||0])}),n},e.dimensions=[\"time\",\"value\"],e}();function WZ(e){var t=e.calendarModel,r=e.seriesModel,n=t?t.coordinateSystem:r?r.coordinateSystem:null;return n}function t_t(e){e.registerComponentModel(ZAt),e.registerComponentView(QAt),e.registerCoordinateSystem(\"calendar\",e_t)}function r_t(e,t){var r=e.existing;if(t.id=e.keyInfo.id,!t.type&&r&&(t.type=r.type),t.parentId==null){var n=t.parentOption;n?t.parentId=n.id:r&&(t.parentId=r.parentId)}t.parentOption=null}function GZ(e,t){var r;return q(t,function(n){e[n]!=null&&e[n]!==\"auto\"&&(r=!0)}),r}function n_t(e,t,r){var n=Xe({},r),a=e[t],i=r.$action||\"merge\";i===\"merge\"?a?(Er(a,n,!0),Xf(a,n,{ignoreSize:!0}),rme(r,a),RS(r,a),RS(r,a,\"shape\"),RS(r,a,\"style\"),RS(r,a,\"extra\"),r.clipPath=a.clipPath):e[t]=n:i===\"replace\"?e[t]=n:i===\"remove\"&&a&&(e[t]=null)}var p1e=[\"transition\",\"enterFrom\",\"leaveTo\"],a_t=p1e.concat([\"enterAnimation\",\"updateAnimation\",\"leaveAnimation\"]);function RS(e,t,r){if(r&&(!e[r]&&t[r]&&(e[r]={}),e=e[r],t=t[r]),!(!e||!t))for(var n=r?p1e:a_t,a=0;a<n.length;a++){var i=n[a];e[i]==null&&t[i]!=null&&(e[i]=t[i])}}function i_t(e,t){if(e&&(e.hv=t.hv=[GZ(t,[\"left\",\"right\"]),GZ(t,[\"top\",\"bottom\"])],e.type===\"group\")){var r=e,n=t;r.width==null&&(r.width=n.width=0),r.height==null&&(r.height=n.height=0)}}var o_t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.preventAutoZ=!0,r}return t.prototype.mergeOption=function(r,n){var a=this.option.elements;this.option.elements=null,e.prototype.mergeOption.call(this,r,n),this.option.elements=a},t.prototype.optionUpdated=function(r,n){var a=this.option,i=(n?a:r).elements,o=a.elements=n?[]:a.elements,l=[];this._flatten(i,l,null);var s=epe(o,l,\"normalMerge\"),u=this._elOptionsToUpdate=[];q(s,function(c,d){var f=c.newOption;f&&(u.push(f),r_t(c,f),n_t(o,d,f),i_t(o[d],f))},this),a.elements=hn(o,function(c){return c&&delete c.$action,c!=null})},t.prototype._flatten=function(r,n,a){q(r,function(i){if(i){a&&(i.parentOption=a),n.push(i);var o=i.children;o&&o.length&&this._flatten(o,n,i),delete i.children}},this)},t.prototype.useElOptionsToUpdate=function(){var r=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,r},t.type=\"graphic\",t.defaultOption={elements:[]},t}(jr),UZ={path:null,compoundPath:null,group:pr,image:yi,text:Jr},ss=rn(),l_t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(){this._elMap=Gt()},t.prototype.render=function(r,n,a){r!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=r,this._updateElements(r),this._relocate(r,a)},t.prototype._updateElements=function(r){var n=r.useElOptionsToUpdate();if(n){var a=this._elMap,i=this.group,o=r.get(\"z\"),l=r.get(\"zlevel\");q(n,function(s){var u=qa(s.id,null),c=u!=null?a.get(u):null,d=qa(s.parentId,null),f=d!=null?a.get(d):i,h=s.type,p=s.style;h===\"text\"&&p&&s.hv&&s.hv[1]&&(p.textVerticalAlign=p.textBaseline=p.verticalAlign=p.align=null);var v=s.textContent,g=s.textConfig;if(p&&Yge(p,h,!!g,!!v)){var y=qge(p,h,!0);!g&&y.textConfig&&(g=s.textConfig=y.textConfig),!v&&y.textContent&&(v=y.textContent)}var b=s_t(s),x=s.$action||\"merge\",F=x===\"merge\",S=x===\"replace\";if(F){var E=!c,w=c;E?w=KZ(u,f,s.type,a):(w&&(ss(w).isNew=!1),Qge(w)),w&&(jw(w,b,r,{isInit:E}),YZ(w,s,o,l))}else if(S){Vw(c,s,a,r);var D=KZ(u,f,s.type,a);D&&(jw(D,b,r,{isInit:!0}),YZ(D,s,o,l))}else x===\"remove\"&&(Jge(c,s),Vw(c,s,a,r));var A=a.get(u);if(A&&v)if(F){var _=A.getTextContent();_?_.attr(v):A.setTextContent(new Jr(v))}else S&&A.setTextContent(new Jr(v));if(A){var I=s.clipPath;if(I){var M=I.type,T=void 0,E=!1;if(F){var k=A.getClipPath();E=!k||ss(k).type!==M,T=E?o9(M):k}else S&&(E=!0,T=o9(M));A.setClipPath(T),jw(T,I,r,{isInit:E}),d4(T,I.keyframeAnimation,r)}var R=ss(A);A.setTextConfig(g),R.option=s,u_t(A,r,s),Nm({el:A,componentModel:r,itemName:A.name,itemTooltipOption:s.tooltip}),d4(A,s.keyframeAnimation,r)}})}},t.prototype._relocate=function(r,n){for(var a=r.option.elements,i=this.group,o=this._elMap,l=n.getWidth(),s=n.getHeight(),u=[\"x\",\"y\"],c=0;c<a.length;c++){var d=a[c],f=qa(d.id,null),h=f!=null?o.get(f):null;if(!(!h||!h.isGroup)){var p=h.parent,v=p===i,g=ss(h),y=ss(p);g.width=Ft(g.option.width,v?l:y.width)||0,g.height=Ft(g.option.height,v?s:y.height)||0}}for(var c=a.length-1;c>=0;c--){var d=a[c],f=qa(d.id,null),h=f!=null?o.get(f):null;if(h){var p=h.parent,y=ss(p),b=p===i?{width:l,height:s}:{width:y.width,height:y.height},x={},F=oA(h,d,b,null,{hv:d.hv,boundingMode:d.bounding},x);if(!ss(h).isNew&&F){for(var S=d.transition,E={},w=0;w<u.length;w++){var D=u[w],A=x[D];S&&(Np(S)||Mr(S,D)>=0)?E[D]=A:h[D]=A}cn(h,E,r,0)}else h.attr(x)}}},t.prototype._clear=function(){var r=this,n=this._elMap;n.each(function(a){Vw(a,ss(a).option,n,r._lastGraphicModel)}),this._elMap=Gt()},t.prototype.dispose=function(){this._clear()},t.type=\"graphic\",t}(Wn);function o9(e){var t=$t(UZ,e)?UZ[e]:QD(e),r=new t({});return ss(r).type=e,r}function KZ(e,t,r,n){var a=o9(r);return t.add(a),n.set(e,a),ss(a).id=e,ss(a).isNew=!0,a}function Vw(e,t,r,n){var a=e&&e.parent;a&&(e.type===\"group\"&&e.traverse(function(i){Vw(i,t,r,n)}),SA(e,t,n),r.removeKey(ss(e).id))}function YZ(e,t,r,n){e.isGroup||q([[\"cursor\",As.prototype.cursor],[\"zlevel\",n||0],[\"z\",r||0],[\"z2\",0]],function(a){var i=a[0];$t(t,i)?e[i]=Fr(t[i],a[1]):e[i]==null&&(e[i]=a[1])}),q(Ur(t),function(a){if(a.indexOf(\"on\")===0){var i=t[a];e[a]=er(i)?i:null}}),$t(t,\"draggable\")&&(e.draggable=t.draggable),t.name!=null&&(e.name=t.name),t.id!=null&&(e.id=t.id)}function s_t(e){return e=Xe({},e),q([\"id\",\"parentId\",\"$action\",\"hv\",\"bounding\",\"textContent\",\"clipPath\"].concat(tme),function(t){delete e[t]}),e}function u_t(e,t,r){var n=br(e).eventData;!e.silent&&!e.ignore&&!n&&(n=br(e).eventData={componentType:\"graphic\",componentIndex:t.componentIndex,name:e.name}),n&&(n.info=r.info)}function c_t(e){e.registerComponentModel(o_t),e.registerComponentView(l_t),e.registerPreprocessor(function(t){var r=t.graphic;nt(r)?!r[0]||!r[0].elements?t.graphic=[{elements:r}]:t.graphic=[t.graphic[0]]:r&&!r.elements&&(t.graphic=[{elements:[r]}])})}var qZ=[\"x\",\"y\",\"radius\",\"angle\",\"single\"],d_t=[\"cartesian2d\",\"polar\",\"singleAxis\"];function f_t(e){var t=e.get(\"coordinateSystem\");return Mr(d_t,t)>=0}function gf(e){return e+\"Axis\"}function h_t(e,t){var r=Gt(),n=[],a=Gt();e.eachComponent({mainType:\"dataZoom\",query:t},function(c){a.get(c.uid)||l(c)});var i;do i=!1,e.eachComponent(\"dataZoom\",o);while(i);function o(c){!a.get(c.uid)&&s(c)&&(l(c),i=!0)}function l(c){a.set(c.uid,!0),n.push(c),u(c)}function s(c){var d=!1;return c.eachTargetAxis(function(f,h){var p=r.get(f);p&&p[h]&&(d=!0)}),d}function u(c){c.eachTargetAxis(function(d,f){(r.get(d)||r.set(d,[]))[f]=!0})}return n}function m1e(e){var t=e.ecModel,r={infoList:[],infoMap:Gt()};return e.eachTargetAxis(function(n,a){var i=t.getComponent(gf(n),a);if(i){var o=i.getCoordSysModel();if(o){var l=o.uid,s=r.infoMap.get(l);s||(s={model:o,axisModels:[]},r.infoList.push(s),r.infoMap.set(l,s)),s.axisModels.push(i)}}}),r}var fk=function(){function e(){this.indexList=[],this.indexMap=[]}return e.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},e}(),Y2=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._autoThrottle=!0,r._noTarget=!0,r._rangePropMode=[\"percent\",\"percent\"],r}return t.prototype.init=function(r,n,a){var i=XZ(r);this.settledOption=i,this.mergeDefaultAndTheme(r,a),this._doInit(i)},t.prototype.mergeOption=function(r){var n=XZ(r);Er(this.option,r,!0),Er(this.settledOption,n,!0),this._doInit(n)},t.prototype._doInit=function(r){var n=this.option;this._setDefaultThrottle(r),this._updateRangeUse(r);var a=this.settledOption;q([[\"start\",\"startValue\"],[\"end\",\"endValue\"]],function(i,o){this._rangePropMode[o]===\"value\"&&(n[i[0]]=a[i[0]]=null)},this),this._resetTarget()},t.prototype._resetTarget=function(){var r=this.get(\"orient\",!0),n=this._targetAxisInfoMap=Gt(),a=this._fillSpecifiedTargetAxis(n);a?this._orient=r||this._makeAutoOrientByTargetAxis():(this._orient=r||\"horizontal\",this._fillAutoTargetAxisByOrient(n,this._orient)),this._noTarget=!0,n.each(function(i){i.indexList.length&&(this._noTarget=!1)},this)},t.prototype._fillSpecifiedTargetAxis=function(r){var n=!1;return q(qZ,function(a){var i=this.getReferringComponents(gf(a),W0t);if(i.specified){n=!0;var o=new fk;q(i.models,function(l){o.add(l.componentIndex)}),r.set(a,o)}},this),n},t.prototype._fillAutoTargetAxisByOrient=function(r,n){var a=this.ecModel,i=!0;if(i){var o=n===\"vertical\"?\"y\":\"x\",l=a.findComponents({mainType:o+\"Axis\"});s(l,o)}if(i){var l=a.findComponents({mainType:\"singleAxis\",filter:function(c){return c.get(\"orient\",!0)===n}});s(l,\"single\")}function s(u,c){var d=u[0];if(d){var f=new fk;if(f.add(d.componentIndex),r.set(c,f),i=!1,c===\"x\"||c===\"y\"){var h=d.getReferringComponents(\"grid\",Oa).models[0];h&&q(u,function(p){d.componentIndex!==p.componentIndex&&h===p.getReferringComponents(\"grid\",Oa).models[0]&&f.add(p.componentIndex)})}}}i&&q(qZ,function(u){if(i){var c=a.findComponents({mainType:gf(u),filter:function(f){return f.get(\"type\",!0)===\"category\"}});if(c[0]){var d=new fk;d.add(c[0].componentIndex),r.set(u,d),i=!1}}},this)},t.prototype._makeAutoOrientByTargetAxis=function(){var r;return this.eachTargetAxis(function(n){!r&&(r=n)},this),r===\"y\"?\"vertical\":\"horizontal\"},t.prototype._setDefaultThrottle=function(r){if(r.hasOwnProperty(\"throttle\")&&(this._autoThrottle=!1),this._autoThrottle){var n=this.ecModel.option;this.option.throttle=n.animation&&n.animationDurationUpdate>0?100:20}},t.prototype._updateRangeUse=function(r){var n=this._rangePropMode,a=this.get(\"rangeMode\");q([[\"start\",\"startValue\"],[\"end\",\"endValue\"]],function(i,o){var l=r[i[0]]!=null,s=r[i[1]]!=null;l&&!s?n[o]=\"percent\":!l&&s?n[o]=\"value\":a?n[o]=a[o]:l&&(n[o]=\"percent\")})},t.prototype.noTarget=function(){return this._noTarget},t.prototype.getFirstTargetAxisModel=function(){var r;return this.eachTargetAxis(function(n,a){r==null&&(r=this.ecModel.getComponent(gf(n),a))},this),r},t.prototype.eachTargetAxis=function(r,n){this._targetAxisInfoMap.each(function(a,i){q(a.indexList,function(o){r.call(n,i,o)})})},t.prototype.getAxisProxy=function(r,n){var a=this.getAxisModel(r,n);if(a)return a.__dzAxisProxy},t.prototype.getAxisModel=function(r,n){var a=this._targetAxisInfoMap.get(r);if(a&&a.indexMap[n])return this.ecModel.getComponent(gf(r),n)},t.prototype.setRawRange=function(r){var n=this.option,a=this.settledOption;q([[\"start\",\"startValue\"],[\"end\",\"endValue\"]],function(i){(r[i[0]]!=null||r[i[1]]!=null)&&(n[i[0]]=a[i[0]]=r[i[0]],n[i[1]]=a[i[1]]=r[i[1]])},this),this._updateRangeUse(r)},t.prototype.setCalculatedRange=function(r){var n=this.option;q([\"start\",\"startValue\",\"end\",\"endValue\"],function(a){n[a]=r[a]})},t.prototype.getPercentRange=function(){var r=this.findRepresentativeAxisProxy();if(r)return r.getDataPercentWindow()},t.prototype.getValueRange=function(r,n){if(r==null&&n==null){var a=this.findRepresentativeAxisProxy();if(a)return a.getDataValueWindow()}else return this.getAxisProxy(r,n).getDataValueWindow()},t.prototype.findRepresentativeAxisProxy=function(r){if(r)return r.__dzAxisProxy;for(var n,a=this._targetAxisInfoMap.keys(),i=0;i<a.length;i++)for(var o=a[i],l=this._targetAxisInfoMap.get(o),s=0;s<l.indexList.length;s++){var u=this.getAxisProxy(o,l.indexList[s]);if(u.hostedBy(this))return u;n||(n=u)}return n},t.prototype.getRangePropMode=function(){return this._rangePropMode.slice()},t.prototype.getOrient=function(){return this._orient},t.type=\"dataZoom\",t.dependencies=[\"xAxis\",\"yAxis\",\"radiusAxis\",\"angleAxis\",\"singleAxis\",\"series\",\"toolbox\"],t.defaultOption={z:4,filterMode:\"filter\",start:0,end:100},t}(jr);function XZ(e){var t={};return q([\"start\",\"end\",\"startValue\",\"endValue\",\"throttle\"],function(r){e.hasOwnProperty(r)&&(t[r]=e[r])}),t}var p_t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"dataZoom.select\",t}(Y2),Q$=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a,i){this.dataZoomModel=r,this.ecModel=n,this.api=a},t.type=\"dataZoom\",t}(Wn),m_t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"dataZoom.select\",t}(Q$),Lv=q,JZ=Ml,v_t=function(){function e(t,r,n,a){this._dimName=t,this._axisIndex=r,this.ecModel=a,this._dataZoomModel=n}return e.prototype.hostedBy=function(t){return this._dataZoomModel===t},e.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},e.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},e.prototype.getTargetSeriesModels=function(){var t=[];return this.ecModel.eachSeries(function(r){if(f_t(r)){var n=gf(this._dimName),a=r.getReferringComponents(n,Oa).models[0];a&&this._axisIndex===a.componentIndex&&t.push(r)}},this),t},e.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+\"Axis\",this._axisIndex)},e.prototype.getMinMaxSpan=function(){return lr(this._minMaxSpan)},e.prototype.calculateDataWindow=function(t){var r=this._dataExtent,n=this.getAxisModel(),a=n.axis.scale,i=this._dataZoomModel.getRangePropMode(),o=[0,100],l=[],s=[],u;Lv([\"start\",\"end\"],function(f,h){var p=t[f],v=t[f+\"Value\"];i[h]===\"percent\"?(p==null&&(p=o[h]),v=a.parse(yn(p,o,r))):(u=!0,v=v==null?r[h]:a.parse(v),p=yn(v,r,o)),s[h]=v==null||isNaN(v)?r[h]:v,l[h]=p==null||isNaN(p)?o[h]:p}),JZ(s),JZ(l);var c=this._minMaxSpan;u?d(s,l,r,o,!1):d(l,s,o,r,!0);function d(f,h,p,v,g){var y=g?\"Span\":\"ValueSpan\";Vm(0,f,p,\"all\",c[\"min\"+y],c[\"max\"+y]);for(var b=0;b<2;b++)h[b]=yn(f[b],p,v,!0),g&&(h[b]=a.parse(h[b]))}return{valueWindow:s,percentWindow:l}},e.prototype.reset=function(t){if(t===this._dataZoomModel){var r=this.getTargetSeriesModels();this._dataExtent=g_t(this,this._dimName,r),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},e.prototype.filterData=function(t,r){if(t!==this._dataZoomModel)return;var n=this._dimName,a=this.getTargetSeriesModels(),i=t.get(\"filterMode\"),o=this._valueWindow;if(i===\"none\")return;Lv(a,function(s){var u=s.getData(),c=u.mapDimensionsAll(n);if(c.length){if(i===\"weakFilter\"){var d=u.getStore(),f=ot(c,function(h){return u.getDimensionIndex(h)},u);u.filterSelf(function(h){for(var p,v,g,y=0;y<c.length;y++){var b=d.get(f[y],h),x=!isNaN(b),F=b<o[0],S=b>o[1];if(x&&!F&&!S)return!0;x&&(g=!0),F&&(p=!0),S&&(v=!0)}return g&&p&&v})}else Lv(c,function(h){if(i===\"empty\")s.setData(u=u.map(h,function(v){return l(v)?v:NaN}));else{var p={};p[h]=o,u.selectRange(p)}});Lv(c,function(h){u.setApproximateExtent(o,h)})}});function l(s){return s>=o[0]&&s<=o[1]}},e.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},r=this._dataZoomModel,n=this._dataExtent;Lv([\"min\",\"max\"],function(a){var i=r.get(a+\"Span\"),o=r.get(a+\"ValueSpan\");o!=null&&(o=this.getAxisModel().axis.scale.parse(o)),o!=null?i=yn(n[0]+o,n,[0,100],!0):i!=null&&(o=yn(i,[0,100],n,!0)-n[0]),t[a+\"Span\"]=i,t[a+\"ValueSpan\"]=o},this)},e.prototype._setAxisModel=function(){var t=this.getAxisModel(),r=this._percentWindow,n=this._valueWindow;if(r){var a=rN(n,[0,500]);a=Math.min(a,20);var i=t.axis.scale.rawExtentInfo;r[0]!==0&&i.setDeterminedMinMax(\"min\",+n[0].toFixed(a)),r[1]!==100&&i.setDeterminedMinMax(\"max\",+n[1].toFixed(a)),i.freeze()}},e}();function g_t(e,t,r){var n=[1/0,-1/0];Lv(r,function(o){Bxt(n,o.getData(),t)});var a=e.getAxisModel(),i=Mve(a.axis.scale,a,n).calculate();return[i.min,i.max]}var y_t={getTargetSeries:function(e){function t(a){e.eachComponent(\"dataZoom\",function(i){i.eachTargetAxis(function(o,l){var s=e.getComponent(gf(o),l);a(o,l,s,i)})})}t(function(a,i,o,l){o.__dzAxisProxy=null});var r=[];t(function(a,i,o,l){o.__dzAxisProxy||(o.__dzAxisProxy=new v_t(a,i,l,e),r.push(o.__dzAxisProxy))});var n=Gt();return q(r,function(a){q(a.getTargetSeriesModels(),function(i){n.set(i.uid,i)})}),n},overallReset:function(e,t){e.eachComponent(\"dataZoom\",function(r){r.eachTargetAxis(function(n,a){r.getAxisProxy(n,a).reset(r)}),r.eachTargetAxis(function(n,a){r.getAxisProxy(n,a).filterData(r,t)})}),e.eachComponent(\"dataZoom\",function(r){var n=r.findRepresentativeAxisProxy();if(n){var a=n.getDataPercentWindow(),i=n.getDataValueWindow();r.setCalculatedRange({start:a[0],end:a[1],startValue:i[0],endValue:i[1]})}})}};function b_t(e){e.registerAction(\"dataZoom\",function(t,r){var n=h_t(r,t);q(n,function(a){a.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})})}var ZZ=!1;function eL(e){ZZ||(ZZ=!0,e.registerProcessor(e.PRIORITY.PROCESSOR.FILTER,y_t),b_t(e),e.registerSubTypeDefaulter(\"dataZoom\",function(){return\"slider\"}))}function x_t(e){e.registerComponentModel(p_t),e.registerComponentView(m_t),eL(e)}var hs=function(){function e(){}return e}(),v1e={};function jv(e,t){v1e[e]=t}function g1e(e){return v1e[e]}var C_t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.optionUpdated=function(){e.prototype.optionUpdated.apply(this,arguments);var r=this.ecModel;q(this.option.feature,function(n,a){var i=g1e(a);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(r)),Er(n,i.defaultOption))})},t.type=\"toolbox\",t.layoutMode={type:\"box\",ignoreSize:!0},t.defaultOption={show:!0,z:6,orient:\"horizontal\",left:\"right\",top:\"top\",backgroundColor:\"transparent\",borderColor:\"#ccc\",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:\"#666\",color:\"none\"},emphasis:{iconStyle:{borderColor:\"#3E98C5\"}},tooltip:{show:!1,position:\"bottom\"}},t}(jr);function F_t(e,t,r){var n=t.getBoxLayoutParams(),a=t.get(\"padding\"),i={width:r.getWidth(),height:r.getHeight()},o=Na(n,i,a);Pp(t.get(\"orient\"),e,t.get(\"itemGap\"),o.width,o.height),oA(e,n,i,a)}function y1e(e,t){var r=Lm(t.get(\"padding\")),n=t.getItemStyle([\"color\",\"opacity\"]);return n.fill=t.get(\"backgroundColor\"),e=new Zr({shape:{x:e.x-r[3],y:e.y-r[0],width:e.width+r[1]+r[3],height:e.height+r[0]+r[2],r:t.get(\"borderRadius\")},style:n,silent:!0,z2:-1}),e}var S_t=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(r,n,a,i){var o=this.group;if(o.removeAll(),!r.get(\"show\"))return;var l=+r.get(\"itemSize\"),s=r.get(\"orient\")===\"vertical\",u=r.get(\"feature\")||{},c=this._features||(this._features={}),d=[];q(u,function(p,v){d.push(v)}),new pd(this._featureNames||[],d).add(f).update(f).remove(wr(f,null)).execute(),this._featureNames=d;function f(p,v){var g=d[p],y=d[v],b=u[g],x=new pn(b,r,r.ecModel),F;if(i&&i.newTitle!=null&&i.featureName===g&&(b.title=i.newTitle),g&&!y){if(w_t(g))F={onclick:x.option.onclick,featureName:g};else{var S=g1e(g);if(!S)return;F=new S}c[g]=F}else if(F=c[y],!F)return;F.uid=Zg(\"toolbox-feature\"),F.model=x,F.ecModel=n,F.api=a;var E=F instanceof hs;if(!g&&y){E&&F.dispose&&F.dispose(n,a);return}if(!x.get(\"show\")||E&&F.unusable){E&&F.remove&&F.remove(n,a);return}h(x,F,g),x.setIconStatus=function(w,D){var A=this.option,_=this.iconPaths;A.iconStatus=A.iconStatus||{},A.iconStatus[w]=D,_[w]&&(D===\"emphasis\"?fd:hd)(_[w])},F instanceof hs&&F.render&&F.render(x,n,a,i)}function h(p,v,g){var y=p.getModel(\"iconStyle\"),b=p.getModel([\"emphasis\",\"iconStyle\"]),x=v instanceof hs&&v.getIcons?v.getIcons():p.get(\"icon\"),F=p.get(\"title\")||{},S,E;At(x)?(S={},S[g]=x):S=x,At(F)?(E={},E[g]=F):E=F;var w=p.iconPaths={};q(S,function(D,A){var _=Xg(D,{},{x:-l/2,y:-l/2,width:l,height:l});_.setStyle(y.getItemStyle());var I=_.ensureState(\"emphasis\");I.style=b.getItemStyle();var M=new Jr({style:{text:E[A],align:b.get(\"textAlign\"),borderRadius:b.get(\"textBorderRadius\"),padding:b.get(\"textPadding\"),fill:null,font:FN({fontStyle:b.get(\"textFontStyle\"),fontFamily:b.get(\"textFontFamily\"),fontSize:b.get(\"textFontSize\"),fontWeight:b.get(\"textFontWeight\")},n)},ignore:!0});_.setTextContent(M),Nm({el:_,componentModel:r,itemName:A,formatterParamsExtra:{title:E[A]}}),_.__title=E[A],_.on(\"mouseover\",function(){var T=b.getItemStyle(),k=s?r.get(\"right\")==null&&r.get(\"left\")!==\"right\"?\"right\":\"left\":r.get(\"bottom\")==null&&r.get(\"top\")!==\"bottom\"?\"bottom\":\"top\";M.setStyle({fill:b.get(\"textFill\")||T.fill||T.stroke||\"#000\",backgroundColor:b.get(\"textBackgroundColor\")}),_.setTextConfig({position:b.get(\"textPosition\")||k}),M.ignore=!r.get(\"showTitle\"),a.enterEmphasis(this)}).on(\"mouseout\",function(){p.get([\"iconStatus\",A])!==\"emphasis\"&&a.leaveEmphasis(this),M.hide()}),(p.get([\"iconStatus\",A])===\"emphasis\"?fd:hd)(_),o.add(_),_.on(\"click\",Pt(v.onclick,v,n,a,A)),w[A]=_})}F_t(o,r,a),o.add(y1e(o.getBoundingRect(),r)),s||o.eachChild(function(p){var v=p.__title,g=p.ensureState(\"emphasis\"),y=g.textConfig||(g.textConfig={}),b=p.getTextContent(),x=b&&b.ensureState(\"emphasis\");if(x&&!er(x)&&v){var F=x.style||(x.style={}),S=Qx(v,Jr.makeFont(F)),E=p.x+o.x,w=p.y+o.y+l,D=!1;w+S.height>a.getHeight()&&(y.position=\"top\",D=!0);var A=D?-5-S.height:l+10;E+S.width/2>a.getWidth()?(y.position=[\"100%\",A],F.align=\"right\"):E-S.width/2<0&&(y.position=[0,A],F.align=\"left\")}})},t.prototype.updateView=function(r,n,a,i){q(this._features,function(o){o instanceof hs&&o.updateView&&o.updateView(o.model,n,a,i)})},t.prototype.remove=function(r,n){q(this._features,function(a){a instanceof hs&&a.remove&&a.remove(r,n)}),this.group.removeAll()},t.prototype.dispose=function(r,n){q(this._features,function(a){a instanceof hs&&a.dispose&&a.dispose(r,n)})},t.type=\"toolbox\",t}(Wn);function w_t(e){return e.indexOf(\"my\")===0}var E_t=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(r,n){var a=this.model,i=a.get(\"name\")||r.get(\"title.0.text\")||\"echarts\",o=n.getZr().painter.getType()===\"svg\",l=o?\"svg\":a.get(\"type\",!0)||\"png\",s=n.getConnectedDataURL({type:l,backgroundColor:a.get(\"backgroundColor\",!0)||r.get(\"backgroundColor\")||\"#fff\",connectedBackgroundColor:a.get(\"connectedBackgroundColor\"),excludeComponents:a.get(\"excludeComponents\"),pixelRatio:a.get(\"pixelRatio\")}),u=zr.browser;if(typeof MouseEvent==\"function\"&&(u.newEdge||!u.ie&&!u.edge)){var c=document.createElement(\"a\");c.download=i+\".\"+l,c.target=\"_blank\",c.href=s;var d=new MouseEvent(\"click\",{view:document.defaultView,bubbles:!0,cancelable:!1});c.dispatchEvent(d)}else if(window.navigator.msSaveOrOpenBlob||o){var f=s.split(\",\"),h=f[0].indexOf(\"base64\")>-1,p=o?decodeURIComponent(f[1]):f[1];h&&(p=window.atob(p));var v=i+\".\"+l;if(window.navigator.msSaveOrOpenBlob){for(var g=p.length,y=new Uint8Array(g);g--;)y[g]=p.charCodeAt(g);var b=new Blob([y]);window.navigator.msSaveOrOpenBlob(b,v)}else{var x=document.createElement(\"iframe\");document.body.appendChild(x);var F=x.contentWindow,S=F.document;S.open(\"image/svg+xml\",\"replace\"),S.write(p),S.close(),F.focus(),S.execCommand(\"SaveAs\",!0,v),document.body.removeChild(x)}}else{var E=a.get(\"lang\"),w='<body style=\"margin:0;\"><img src=\"'+s+'\" style=\"max-width:100%;\" title=\"'+(E&&E[0]||\"\")+'\" /></body>',D=window.open();D.document.write(w),D.document.title=i}},t.getDefaultOption=function(r){var n={show:!0,icon:\"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0\",title:r.getLocaleModel().get([\"toolbox\",\"saveAsImage\",\"title\"]),type:\"png\",connectedBackgroundColor:\"#fff\",name:\"\",excludeComponents:[\"toolbox\"],lang:r.getLocaleModel().get([\"toolbox\",\"saveAsImage\",\"lang\"])};return n},t}(hs),QZ=\"__ec_magicType_stack__\",D_t=[[\"line\",\"bar\"],[\"stack\"]],A_t=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getIcons=function(){var r=this.model,n=r.get(\"icon\"),a={};return q(r.get(\"type\"),function(i){n[i]&&(a[i]=n[i])}),a},t.getDefaultOption=function(r){var n={show:!0,type:[],icon:{line:\"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4\",bar:\"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7\",stack:\"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z\"},title:r.getLocaleModel().get([\"toolbox\",\"magicType\",\"title\"]),option:{},seriesIndex:{}};return n},t.prototype.onclick=function(r,n,a){var i=this.model,o=i.get([\"seriesIndex\",a]);if(eQ[a]){var l={series:[]},s=function(d){var f=d.subType,h=d.id,p=eQ[a](f,h,d,i);p&&(rr(p,d.option),l.series.push(p));var v=d.coordinateSystem;if(v&&v.type===\"cartesian2d\"&&(a===\"line\"||a===\"bar\")){var g=v.getAxesByScale(\"ordinal\")[0];if(g){var y=g.dim,b=y+\"Axis\",x=d.getReferringComponents(b,Oa).models[0],F=x.componentIndex;l[b]=l[b]||[];for(var S=0;S<=F;S++)l[b][F]=l[b][F]||{};l[b][F].boundaryGap=a===\"bar\"}}};q(D_t,function(d){Mr(d,a)>=0&&q(d,function(f){i.setIconStatus(f,\"normal\")})}),i.setIconStatus(a,\"emphasis\"),r.eachComponent({mainType:\"series\",query:o==null?null:{seriesIndex:o}},s);var u,c=a;a===\"stack\"&&(u=Er({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title),i.get([\"iconStatus\",a])!==\"emphasis\"&&(c=\"tiled\")),n.dispatchAction({type:\"changeMagicType\",currentType:c,newOption:l,newTitle:u,featureName:\"magicType\"})}},t}(hs),eQ={line:function(e,t,r,n){if(e===\"bar\")return Er({id:t,type:\"line\",data:r.get(\"data\"),stack:r.get(\"stack\"),markPoint:r.get(\"markPoint\"),markLine:r.get(\"markLine\")},n.get([\"option\",\"line\"])||{},!0)},bar:function(e,t,r,n){if(e===\"line\")return Er({id:t,type:\"bar\",data:r.get(\"data\"),stack:r.get(\"stack\"),markPoint:r.get(\"markPoint\"),markLine:r.get(\"markLine\")},n.get([\"option\",\"bar\"])||{},!0)},stack:function(e,t,r,n){var a=r.get(\"stack\")===QZ;if(e===\"line\"||e===\"bar\")return n.setIconStatus(\"stack\",a?\"normal\":\"emphasis\"),Er({id:t,stack:a?\"\":QZ},n.get([\"option\",\"stack\"])||{},!0)}};_u({type:\"changeMagicType\",event:\"magicTypeChanged\",update:\"prepareAndUpdate\"},function(e,t){t.mergeOption(e.newOption)});var wA=new Array(60).join(\"-\"),hg=\"\t\";function __t(e){var t={},r=[],n=[];return e.eachRawSeries(function(a){var i=a.coordinateSystem;if(i&&(i.type===\"cartesian2d\"||i.type===\"polar\")){var o=i.getBaseAxis();if(o.type===\"category\"){var l=o.dim+\"_\"+o.index;t[l]||(t[l]={categoryAxis:o,valueAxis:i.getOtherAxis(o),series:[]},n.push({axisDim:o.dim,axisIndex:o.index})),t[l].series.push(a)}else r.push(a)}else r.push(a)}),{seriesGroupByCategoryAxis:t,other:r,meta:n}}function T_t(e){var t=[];return q(e,function(r,n){var a=r.categoryAxis,i=r.valueAxis,o=i.dim,l=[\" \"].concat(ot(r.series,function(h){return h.name})),s=[a.model.getCategories()];q(r.series,function(h){var p=h.getRawData();s.push(h.getRawData().mapArray(p.mapDimension(o),function(v){return v}))});for(var u=[l.join(hg)],c=0;c<s[0].length;c++){for(var d=[],f=0;f<s.length;f++)d.push(s[f][c]);u.push(d.join(hg))}t.push(u.join(`\n`))}),t.join(`\n\n`+wA+`\n\n`)}function I_t(e){return ot(e,function(t){var r=t.getRawData(),n=[t.name],a=[];return r.each(r.dimensions,function(){for(var i=arguments.length,o=arguments[i-1],l=r.getName(o),s=0;s<i-1;s++)a[s]=arguments[s];n.push((l?l+hg:\"\")+a.join(hg))}),n.join(`\n`)}).join(`\n\n`+wA+`\n\n`)}function k_t(e){var t=__t(e);return{value:hn([T_t(t.seriesGroupByCategoryAxis),I_t(t.other)],function(r){return!!r.replace(/[\\n\\t\\s]/g,\"\")}).join(`\n\n`+wA+`\n\n`),meta:t.meta}}function p4(e){return e.replace(/^\\s\\s*/,\"\").replace(/\\s\\s*$/,\"\")}function R_t(e){var t=e.slice(0,e.indexOf(`\n`));if(t.indexOf(hg)>=0)return!0}var l9=new RegExp(\"[\"+hg+\"]+\",\"g\");function M_t(e){for(var t=e.split(/\\n+/g),r=p4(t.shift()).split(l9),n=[],a=ot(r,function(s){return{name:s,data:[]}}),i=0;i<t.length;i++){var o=p4(t[i]).split(l9);n.push(o.shift());for(var l=0;l<o.length;l++)a[l]&&(a[l].data[i]=o[l])}return{series:a,categories:n}}function P_t(e){for(var t=e.split(/\\n+/g),r=p4(t.shift()),n=[],a=0;a<t.length;a++){var i=p4(t[a]);if(i){var o=i.split(l9),l=\"\",s=void 0,u=!1;isNaN(o[0])?(u=!0,l=o[0],o=o.slice(1),n[a]={name:l,value:[]},s=n[a].value):s=n[a]=[];for(var c=0;c<o.length;c++)s.push(+o[c]);s.length===1&&(u?n[a].value=s[0]:n[a]=s[0])}}return{name:r,data:n}}function O_t(e,t){var r=e.split(new RegExp(`\n*`+wA+`\n*`,\"g\")),n={series:[]};return q(r,function(a,i){if(R_t(a)){var o=M_t(a),l=t[i],s=l.axisDim+\"Axis\";l&&(n[s]=n[s]||[],n[s][l.axisIndex]={data:o.categories},n.series=n.series.concat(o.series))}else{var o=P_t(a);n.series.push(o)}}),n}var B_t=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(r,n){setTimeout(function(){n.dispatchAction({type:\"hideTip\"})});var a=n.getDom(),i=this.model;this._dom&&a.removeChild(this._dom);var o=document.createElement(\"div\");o.style.cssText=\"position:absolute;top:0;bottom:0;left:0;right:0;padding:5px\",o.style.backgroundColor=i.get(\"backgroundColor\")||\"#fff\";var l=document.createElement(\"h4\"),s=i.get(\"lang\")||[];l.innerHTML=s[0]||i.get(\"title\"),l.style.cssText=\"margin:10px 20px\",l.style.color=i.get(\"textColor\");var u=document.createElement(\"div\"),c=document.createElement(\"textarea\");u.style.cssText=\"overflow:auto\";var d=i.get(\"optionToContent\"),f=i.get(\"contentToOption\"),h=k_t(r);if(er(d)){var p=d(n.getOption());At(p)?u.innerHTML=p:rm(p)&&u.appendChild(p)}else{c.readOnly=i.get(\"readOnly\");var v=c.style;v.cssText=\"display:block;width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;resize:none;box-sizing:border-box;outline:none\",v.color=i.get(\"textColor\"),v.borderColor=i.get(\"textareaBorderColor\"),v.backgroundColor=i.get(\"textareaColor\"),c.value=h.value,u.appendChild(c)}var g=h.meta,y=document.createElement(\"div\");y.style.cssText=\"position:absolute;bottom:5px;left:0;right:0\";var b=\"float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px\",x=document.createElement(\"div\"),F=document.createElement(\"div\");b+=\";background-color:\"+i.get(\"buttonColor\"),b+=\";color:\"+i.get(\"buttonTextColor\");var S=this;function E(){a.removeChild(o),S._dom=null}NM(x,\"click\",E),NM(F,\"click\",function(){if(f==null&&d!=null||f!=null&&d==null){E();return}var w;try{er(f)?w=f(u,n.getOption()):w=O_t(c.value,g)}catch(D){throw E(),new Error(\"Data view format error \"+D)}w&&n.dispatchAction({type:\"changeDataView\",newOption:w}),E()}),x.innerHTML=s[1],F.innerHTML=s[2],F.style.cssText=x.style.cssText=b,!i.get(\"readOnly\")&&y.appendChild(F),y.appendChild(x),o.appendChild(l),o.appendChild(u),o.appendChild(y),u.style.height=a.clientHeight-80+\"px\",a.appendChild(o),this._dom=o},t.prototype.remove=function(r,n){this._dom&&n.getDom().removeChild(this._dom)},t.prototype.dispose=function(r,n){this.remove(r,n)},t.getDefaultOption=function(r){var n={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:\"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28\",title:r.getLocaleModel().get([\"toolbox\",\"dataView\",\"title\"]),lang:r.getLocaleModel().get([\"toolbox\",\"dataView\",\"lang\"]),backgroundColor:\"#fff\",textColor:\"#000\",textareaColor:\"#fff\",textareaBorderColor:\"#333\",buttonColor:\"#c23531\",buttonTextColor:\"#fff\"};return n},t}(hs);function N_t(e,t){return ot(e,function(r,n){var a=t&&t[n];if(ir(a)&&!nt(a)){var i=ir(r)&&!nt(r);i||(r={value:r});var o=a.name!=null&&r.name==null;return r=rr(r,a),o&&delete r.name,r}else return r})}_u({type:\"changeDataView\",event:\"dataViewChanged\",update:\"prepareAndUpdate\"},function(e,t){var r=[];q(e.newOption.series,function(n){var a=t.getSeriesByName(n.name)[0];if(!a)r.push(Xe({type:\"scatter\"},n));else{var i=a.get(\"data\");r.push({name:n.name,data:N_t(n.data,i)})}}),t.mergeOption(rr({series:r},e.newOption))});var b1e=q,x1e=rn();function $_t(e,t){var r=tL(e);b1e(t,function(n,a){for(var i=r.length-1;i>=0;i--){var o=r[i];if(o[a])break}if(i<0){var l=e.queryComponents({mainType:\"dataZoom\",subType:\"select\",id:a})[0];if(l){var s=l.getPercentRange();r[0][a]={dataZoomId:a,start:s[0],end:s[1]}}}}),r.push(t)}function L_t(e){var t=tL(e),r=t[t.length-1];t.length>1&&t.pop();var n={};return b1e(r,function(a,i){for(var o=t.length-1;o>=0;o--)if(a=t[o][i],a){n[i]=a;break}}),n}function j_t(e){x1e(e).snapshots=null}function z_t(e){return tL(e).length}function tL(e){var t=x1e(e);return t.snapshots||(t.snapshots=[{}]),t.snapshots}var H_t=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(r,n){j_t(r),n.dispatchAction({type:\"restore\",from:this.uid})},t.getDefaultOption=function(r){var n={show:!0,icon:\"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5\",title:r.getLocaleModel().get([\"toolbox\",\"restore\",\"title\"])};return n},t}(hs);_u({type:\"restore\",event:\"restore\",update:\"prepareAndUpdate\"},function(e,t){t.resetOption(\"recreate\")});var V_t=[\"grid\",\"xAxis\",\"yAxis\",\"geo\",\"graph\",\"polar\",\"radiusAxis\",\"angleAxis\",\"bmap\"],rL=function(){function e(t,r,n){var a=this;this._targetInfoList=[];var i=tQ(r,t);q(W_t,function(o,l){(!n||!n.include||Mr(n.include,l)>=0)&&o(i,a._targetInfoList)})}return e.prototype.setOutputRanges=function(t,r){return this.matchOutputRanges(t,r,function(n,a,i){if((n.coordRanges||(n.coordRanges=[])).push(a),!n.coordRange){n.coordRange=a;var o=hk[n.brushType](0,i,a);n.__rangeOffset={offset:iQ[n.brushType](o.values,n.range,[1,1]),xyMinMax:o.xyMinMax}}}),t},e.prototype.matchOutputRanges=function(t,r,n){q(t,function(a){var i=this.findTargetInfo(a,r);i&&i!==!0&&q(i.coordSyses,function(o){var l=hk[a.brushType](1,o,a.range,!0);n(a,l.values,o,r)})},this)},e.prototype.setInputRanges=function(t,r){q(t,function(n){var a=this.findTargetInfo(n,r);if(n.range=n.range||[],a&&a!==!0){n.panelId=a.panelId;var i=hk[n.brushType](0,a.coordSys,n.coordRange),o=n.__rangeOffset;n.range=o?iQ[n.brushType](i.values,o.offset,G_t(i.xyMinMax,o.xyMinMax)):i.values}},this)},e.prototype.makePanelOpts=function(t,r){return ot(this._targetInfoList,function(n){var a=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:r?r(n):null,clipPath:_ge(a),isTargetByCursor:Ige(a,t,n.coordSysModel),getLinearBrushOtherExtent:Tge(a)}})},e.prototype.controlSeries=function(t,r,n){var a=this.findTargetInfo(t,n);return a===!0||a&&Mr(a.coordSyses,r.coordinateSystem)>=0},e.prototype.findTargetInfo=function(t,r){for(var n=this._targetInfoList,a=tQ(r,t),i=0;i<n.length;i++){var o=n[i],l=t.panelId;if(l){if(o.panelId===l)return o}else for(var s=0;s<rQ.length;s++)if(rQ[s](a,o))return o}return!0},e}();function s9(e){return e[0]>e[1]&&e.reverse(),e}function tQ(e,t){return hb(e,t,{includeMainTypes:V_t})}var W_t={grid:function(e,t){var r=e.xAxisModels,n=e.yAxisModels,a=e.gridModels,i=Gt(),o={},l={};!r&&!n&&!a||(q(r,function(s){var u=s.axis.grid.model;i.set(u.id,u),o[u.id]=!0}),q(n,function(s){var u=s.axis.grid.model;i.set(u.id,u),l[u.id]=!0}),q(a,function(s){i.set(s.id,s),o[s.id]=!0,l[s.id]=!0}),i.each(function(s){var u=s.coordinateSystem,c=[];q(u.getCartesians(),function(d,f){(Mr(r,d.getAxis(\"x\").model)>=0||Mr(n,d.getAxis(\"y\").model)>=0)&&c.push(d)}),t.push({panelId:\"grid--\"+s.id,gridModel:s,coordSysModel:s,coordSys:c[0],coordSyses:c,getPanelRect:nQ.grid,xAxisDeclared:o[s.id],yAxisDeclared:l[s.id]})}))},geo:function(e,t){q(e.geoModels,function(r){var n=r.coordinateSystem;t.push({panelId:\"geo--\"+r.id,geoModel:r,coordSysModel:r,coordSys:n,coordSyses:[n],getPanelRect:nQ.geo})})}},rQ=[function(e,t){var r=e.xAxisModel,n=e.yAxisModel,a=e.gridModel;return!a&&r&&(a=r.axis.grid.model),!a&&n&&(a=n.axis.grid.model),a&&a===t.gridModel},function(e,t){var r=e.geoModel;return r&&r===t.geoModel}],nQ={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var e=this.coordSys,t=e.getBoundingRect().clone();return t.applyTransform(kf(e)),t}},hk={lineX:wr(aQ,0),lineY:wr(aQ,1),rect:function(e,t,r,n){var a=e?t.pointToData([r[0][0],r[1][0]],n):t.dataToPoint([r[0][0],r[1][0]],n),i=e?t.pointToData([r[0][1],r[1][1]],n):t.dataToPoint([r[0][1],r[1][1]],n),o=[s9([a[0],i[0]]),s9([a[1],i[1]])];return{values:o,xyMinMax:o}},polygon:function(e,t,r,n){var a=[[1/0,-1/0],[1/0,-1/0]],i=ot(r,function(o){var l=e?t.pointToData(o,n):t.dataToPoint(o,n);return a[0][0]=Math.min(a[0][0],l[0]),a[1][0]=Math.min(a[1][0],l[1]),a[0][1]=Math.max(a[0][1],l[0]),a[1][1]=Math.max(a[1][1],l[1]),l});return{values:i,xyMinMax:a}}};function aQ(e,t,r,n){var a=r.getAxis([\"x\",\"y\"][e]),i=s9(ot([0,1],function(l){return t?a.coordToData(a.toLocalCoord(n[l]),!0):a.toGlobalCoord(a.dataToCoord(n[l]))})),o=[];return o[e]=i,o[1-e]=[NaN,NaN],{values:i,xyMinMax:o}}var iQ={lineX:wr(oQ,0),lineY:wr(oQ,1),rect:function(e,t,r){return[[e[0][0]-r[0]*t[0][0],e[0][1]-r[0]*t[0][1]],[e[1][0]-r[1]*t[1][0],e[1][1]-r[1]*t[1][1]]]},polygon:function(e,t,r){return ot(e,function(n,a){return[n[0]-r[0]*t[a][0],n[1]-r[1]*t[a][1]]})}};function oQ(e,t,r,n){return[t[0]-n[e]*r[0],t[1]-n[e]*r[1]]}function G_t(e,t){var r=lQ(e),n=lQ(t),a=[r[0]/n[0],r[1]/n[1]];return isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a}function lQ(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]}var u9=q,U_t=L0t(\"toolbox-dataZoom_\"),K_t=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(r,n,a,i){this._brushController||(this._brushController=new T$(a.getZr()),this._brushController.on(\"brush\",Pt(this._onBrush,this)).mount()),X_t(r,n,this,i,a),q_t(r,n)},t.prototype.onclick=function(r,n,a){Y_t[a].call(this)},t.prototype.remove=function(r,n){this._brushController&&this._brushController.unmount()},t.prototype.dispose=function(r,n){this._brushController&&this._brushController.dispose()},t.prototype._onBrush=function(r){var n=r.areas;if(!r.isEnd||!n.length)return;var a={},i=this.ecModel;this._brushController.updateCovers([]);var o=new rL(nL(this.model),i,{include:[\"grid\"]});o.matchOutputRanges(n,i,function(u,c,d){if(d.type===\"cartesian2d\"){var f=u.brushType;f===\"rect\"?(l(\"x\",d,c[0]),l(\"y\",d,c[1])):l({lineX:\"x\",lineY:\"y\"}[f],d,c)}}),$_t(i,a),this._dispatchZoomAction(a);function l(u,c,d){var f=c.getAxis(u),h=f.model,p=s(u,h,i),v=p.findRepresentativeAxisProxy(h).getMinMaxSpan();(v.minValueSpan!=null||v.maxValueSpan!=null)&&(d=Vm(0,d.slice(),f.scale.getExtent(),0,v.minValueSpan,v.maxValueSpan)),p&&(a[p.id]={dataZoomId:p.id,startValue:d[0],endValue:d[1]})}function s(u,c,d){var f;return d.eachComponent({mainType:\"dataZoom\",subType:\"select\"},function(h){var p=h.getAxisModel(u,c.componentIndex);p&&(f=h)}),f}},t.prototype._dispatchZoomAction=function(r){var n=[];u9(r,function(a,i){n.push(lr(a))}),n.length&&this.api.dispatchAction({type:\"dataZoom\",from:this.uid,batch:n})},t.getDefaultOption=function(r){var n={show:!0,filterMode:\"filter\",icon:{zoom:\"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1\",back:\"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26\"},title:r.getLocaleModel().get([\"toolbox\",\"dataZoom\",\"title\"]),brushStyle:{borderWidth:0,color:\"rgba(210,219,238,0.2)\"}};return n},t}(hs),Y_t={zoom:function(){var e=!this._isZoomActive;this.api.dispatchAction({type:\"takeGlobalCursor\",key:\"dataZoomSelect\",dataZoomSelectActive:e})},back:function(){this._dispatchZoomAction(L_t(this.ecModel))}};function nL(e){var t={xAxisIndex:e.get(\"xAxisIndex\",!0),yAxisIndex:e.get(\"yAxisIndex\",!0),xAxisId:e.get(\"xAxisId\",!0),yAxisId:e.get(\"yAxisId\",!0)};return t.xAxisIndex==null&&t.xAxisId==null&&(t.xAxisIndex=\"all\"),t.yAxisIndex==null&&t.yAxisId==null&&(t.yAxisIndex=\"all\"),t}function q_t(e,t){e.setIconStatus(\"back\",z_t(t)>1?\"emphasis\":\"normal\")}function X_t(e,t,r,n,a){var i=r._isZoomActive;n&&n.type===\"takeGlobalCursor\"&&(i=n.key===\"dataZoomSelect\"?n.dataZoomSelectActive:!1),r._isZoomActive=i,e.setIconStatus(\"zoom\",i?\"emphasis\":\"normal\");var o=new rL(nL(e),t,{include:[\"grid\"]}),l=o.makePanelOpts(a,function(s){return s.xAxisDeclared&&!s.yAxisDeclared?\"lineX\":!s.xAxisDeclared&&s.yAxisDeclared?\"lineY\":\"rect\"});r._brushController.setPanels(l).enableBrush(i&&l.length?{brushType:\"auto\",brushStyle:e.getModel(\"brushStyle\").getItemStyle()}:!1)}syt(\"dataZoom\",function(e){var t=e.getComponent(\"toolbox\",0),r=[\"feature\",\"dataZoom\"];if(!t||t.get(r)==null)return;var n=t.getModel(r),a=[],i=nL(n),o=hb(e,i);u9(o.xAxisModels,function(s){return l(s,\"xAxis\",\"xAxisIndex\")}),u9(o.yAxisModels,function(s){return l(s,\"yAxis\",\"yAxisIndex\")});function l(s,u,c){var d=s.componentIndex,f={type:\"select\",$fromToolbox:!0,filterMode:n.get(\"filterMode\",!0)||\"filter\",id:U_t+u+d};f[c]=d,a.push(f)}return a});function J_t(e){e.registerComponentModel(C_t),e.registerComponentView(S_t),jv(\"saveAsImage\",E_t),jv(\"magicType\",A_t),jv(\"dataView\",B_t),jv(\"dataZoom\",K_t),jv(\"restore\",H_t),Nr(x_t)}var Z_t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"tooltip\",t.dependencies=[\"axisPointer\"],t.defaultOption={z:60,show:!0,showContent:!0,trigger:\"item\",triggerOn:\"mousemove|click\",alwaysShowContent:!1,displayMode:\"single\",renderMode:\"auto\",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:\"#fff\",shadowBlur:10,shadowColor:\"rgba(0, 0, 0, .2)\",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:\"\",axisPointer:{type:\"line\",axis:\"auto\",animation:\"auto\",animationDurationUpdate:200,animationEasingUpdate:\"exponentialOut\",crossStyle:{color:\"#999\",width:1,type:\"dashed\",textStyle:{}}},textStyle:{color:\"#666\",fontSize:14}},t}(jr);function C1e(e){var t=e.get(\"confine\");return t!=null?!!t:e.get(\"renderMode\")===\"richText\"}function F1e(e){if(zr.domSupported){for(var t=document.documentElement.style,r=0,n=e.length;r<n;r++)if(e[r]in t)return e[r]}}var S1e=F1e([\"transform\",\"webkitTransform\",\"OTransform\",\"MozTransform\",\"msTransform\"]),Q_t=F1e([\"webkitTransition\",\"transition\",\"OTransition\",\"MozTransition\",\"msTransition\"]);function w1e(e,t){if(!e)return t;t=IN(t,!0);var r=e.indexOf(t);return e=r===-1?t:\"-\"+e.slice(0,r)+\"-\"+t,e.toLowerCase()}function e5t(e,t){var r=e.currentStyle||document.defaultView&&document.defaultView.getComputedStyle(e);return r?r[t]:null}var t5t=w1e(Q_t,\"transition\"),aL=w1e(S1e,\"transform\"),r5t=\"position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;\"+(zr.transform3dSupported?\"will-change:transform;\":\"\");function n5t(e){return e=e===\"left\"?\"right\":e===\"right\"?\"left\":e===\"top\"?\"bottom\":\"top\",e}function a5t(e,t,r){if(!At(r)||r===\"inside\")return\"\";var n=e.get(\"backgroundColor\"),a=e.get(\"borderWidth\");t=lm(t);var i=n5t(r),o=Math.max(Math.round(a)*1.5,6),l=\"\",s=aL+\":\",u;Mr([\"left\",\"right\"],i)>-1?(l+=\"top:50%\",s+=\"translateY(-50%) rotate(\"+(u=i===\"left\"?-225:-45)+\"deg)\"):(l+=\"left:50%\",s+=\"translateX(-50%) rotate(\"+(u=i===\"top\"?225:45)+\"deg)\");var c=u*Math.PI/180,d=o+a,f=d*Math.abs(Math.cos(c))+d*Math.abs(Math.sin(c)),h=Math.round(((f-Math.SQRT2*a)/2+Math.SQRT2*a-(f-d)/2)*100)/100;l+=\";\"+i+\":-\"+h+\"px\";var p=t+\" solid \"+a+\"px;\",v=[\"position:absolute;width:\"+o+\"px;height:\"+o+\"px;z-index:-1;\",l+\";\"+s+\";\",\"border-bottom:\"+p,\"border-right:\"+p,\"background-color:\"+n+\";\"];return'<div style=\"'+v.join(\"\")+'\"></div>'}function i5t(e,t){var r=\"cubic-bezier(0.23,1,0.32,1)\",n=\" \"+e/2+\"s \"+r,a=\"opacity\"+n+\",visibility\"+n;return t||(n=\" \"+e+\"s \"+r,a+=zr.transformSupported?\",\"+aL+n:\",left\"+n+\",top\"+n),t5t+\":\"+a}function sQ(e,t,r){var n=e.toFixed(0)+\"px\",a=t.toFixed(0)+\"px\";if(!zr.transformSupported)return r?\"top:\"+a+\";left:\"+n+\";\":[[\"top\",a],[\"left\",n]];var i=zr.transform3dSupported,o=\"translate\"+(i?\"3d\":\"\")+\"(\"+n+\",\"+a+(i?\",0\":\"\")+\")\";return r?\"top:0;left:0;\"+aL+\":\"+o+\";\":[[\"top\",0],[\"left\",0],[S1e,o]]}function o5t(e){var t=[],r=e.get(\"fontSize\"),n=e.getTextColor();n&&t.push(\"color:\"+n),t.push(\"font:\"+e.getFont());var a=Fr(e.get(\"lineHeight\"),Math.round(r*3/2));r&&t.push(\"line-height:\"+a+\"px\");var i=e.get(\"textShadowColor\"),o=e.get(\"textShadowBlur\")||0,l=e.get(\"textShadowOffsetX\")||0,s=e.get(\"textShadowOffsetY\")||0;return i&&o&&t.push(\"text-shadow:\"+l+\"px \"+s+\"px \"+o+\"px \"+i),q([\"decoration\",\"align\"],function(u){var c=e.get(u);c&&t.push(\"text-\"+u+\":\"+c)}),t.join(\";\")}function l5t(e,t,r){var n=[],a=e.get(\"transitionDuration\"),i=e.get(\"backgroundColor\"),o=e.get(\"shadowBlur\"),l=e.get(\"shadowColor\"),s=e.get(\"shadowOffsetX\"),u=e.get(\"shadowOffsetY\"),c=e.getModel(\"textStyle\"),d=Mme(e,\"html\"),f=s+\"px \"+u+\"px \"+o+\"px \"+l;return n.push(\"box-shadow:\"+f),t&&a&&n.push(i5t(a,r)),i&&n.push(\"background-color:\"+i),q([\"width\",\"color\",\"radius\"],function(h){var p=\"border-\"+h,v=IN(p),g=e.get(v);g!=null&&n.push(p+\":\"+g+(h===\"color\"?\"\":\"px\"))}),n.push(o5t(c)),d!=null&&n.push(\"padding:\"+Lm(d).join(\"px \")+\"px\"),n.join(\";\")+\";\"}function uQ(e,t,r,n,a){var i=t&&t.painter;if(r){var o=i&&i.getViewportRoot();o&&hvt(e,o,r,n,a)}else{e[0]=n,e[1]=a;var l=i&&i.getViewportRootOffset();l&&(e[0]+=l.offsetLeft,e[1]+=l.offsetTop)}e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var s5t=function(){function e(t,r){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._alwaysShowContent=!1,this._firstShow=!0,this._longHide=!0,zr.wxa)return null;var n=document.createElement(\"div\");n.domBelongToZr=!0,this.el=n;var a=this._zr=t.getZr(),i=r.appendTo,o=i&&(At(i)?document.querySelector(i):rm(i)?i:er(i)&&i(t.getDom()));uQ(this._styleCoord,a,o,t.getWidth()/2,t.getHeight()/2),(o||t.getDom()).appendChild(n),this._api=t,this._container=o;var l=this;n.onmouseenter=function(){l._enterable&&(clearTimeout(l._hideTimeout),l._show=!0),l._inContent=!0},n.onmousemove=function(s){if(s=s||window.event,!l._enterable){var u=a.handler,c=a.painter.getViewportRoot();ns(c,s,!0),u.dispatch(\"mousemove\",s)}},n.onmouseleave=function(){l._inContent=!1,l._enterable&&l._show&&l.hideLater(l._hideDelay)}}return e.prototype.update=function(t){if(!this._container){var r=this._api.getDom(),n=e5t(r,\"position\"),a=r.style;a.position!==\"absolute\"&&n!==\"absolute\"&&(a.position=\"relative\")}var i=t.get(\"alwaysShowContent\");i&&this._moveIfResized(),this._alwaysShowContent=i,this.el.className=t.get(\"className\")||\"\"},e.prototype.show=function(t,r){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,a=n.style,i=this._styleCoord;n.innerHTML?a.cssText=r5t+l5t(t,!this._firstShow,this._longHide)+sQ(i[0],i[1],!0)+(\"border-color:\"+lm(r)+\";\")+(t.get(\"extraCssText\")||\"\")+(\";pointer-events:\"+(this._enterable?\"auto\":\"none\")):a.display=\"none\",this._show=!0,this._firstShow=!1,this._longHide=!1},e.prototype.setContent=function(t,r,n,a,i){var o=this.el;if(t==null){o.innerHTML=\"\";return}var l=\"\";if(At(i)&&n.get(\"trigger\")===\"item\"&&!C1e(n)&&(l=a5t(n,a,i)),At(t))o.innerHTML=t+l;else if(t){o.innerHTML=\"\",nt(t)||(t=[t]);for(var s=0;s<t.length;s++)rm(t[s])&&t[s].parentNode!==o&&o.appendChild(t[s]);if(l&&o.childNodes.length){var u=document.createElement(\"div\");u.innerHTML=l,o.appendChild(u)}}},e.prototype.setEnterable=function(t){this._enterable=t},e.prototype.getSize=function(){var t=this.el;return t?[t.offsetWidth,t.offsetHeight]:[0,0]},e.prototype.moveTo=function(t,r){if(this.el){var n=this._styleCoord;if(uQ(n,this._zr,this._container,t,r),n[0]!=null&&n[1]!=null){var a=this.el.style,i=sQ(n[0],n[1]);q(i,function(o){a[o[0]]=o[1]})}}},e.prototype._moveIfResized=function(){var t=this._styleCoord[2],r=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),r*this._zr.getHeight())},e.prototype.hide=function(){var t=this,r=this.el.style;r.visibility=\"hidden\",r.opacity=\"0\",zr.transform3dSupported&&(r.willChange=\"\"),this._show=!1,this._longHideTimeout=setTimeout(function(){return t._longHide=!0},500)},e.prototype.hideLater=function(t){this._show&&!(this._inContent&&this._enterable)&&!this._alwaysShowContent&&(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(Pt(this.hide,this),t)):this.hide())},e.prototype.isShow=function(){return this._show},e.prototype.dispose=function(){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var t=this.el.parentNode;t&&t.removeChild(this.el),this.el=this._container=null},e}(),u5t=function(){function e(t){this._show=!1,this._styleCoord=[0,0,0,0],this._alwaysShowContent=!1,this._enterable=!0,this._zr=t.getZr(),dQ(this._styleCoord,this._zr,t.getWidth()/2,t.getHeight()/2)}return e.prototype.update=function(t){var r=t.get(\"alwaysShowContent\");r&&this._moveIfResized(),this._alwaysShowContent=r},e.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},e.prototype.setContent=function(t,r,n,a,i){var o=this;ir(t)&&bn(\"\"),this.el&&this._zr.remove(this.el);var l=n.getModel(\"textStyle\");this.el=new Jr({style:{rich:r.richTextStyles,text:t,lineHeight:22,borderWidth:1,borderColor:a,textShadowColor:l.get(\"textShadowColor\"),fill:n.get([\"textStyle\",\"color\"]),padding:Mme(n,\"richText\"),verticalAlign:\"top\",align:\"left\"},z:n.get(\"z\")}),q([\"backgroundColor\",\"borderRadius\",\"shadowColor\",\"shadowBlur\",\"shadowOffsetX\",\"shadowOffsetY\"],function(u){o.el.style[u]=n.get(u)}),q([\"textShadowBlur\",\"textShadowOffsetX\",\"textShadowOffsetY\"],function(u){o.el.style[u]=l.get(u)||0}),this._zr.add(this.el);var s=this;this.el.on(\"mouseover\",function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0}),this.el.on(\"mouseout\",function(){s._enterable&&s._show&&s.hideLater(s._hideDelay),s._inContent=!1})},e.prototype.setEnterable=function(t){this._enterable=t},e.prototype.getSize=function(){var t=this.el,r=this.el.getBoundingRect(),n=cQ(t.style);return[r.width+n.left+n.right,r.height+n.top+n.bottom]},e.prototype.moveTo=function(t,r){var n=this.el;if(n){var a=this._styleCoord;dQ(a,this._zr,t,r),t=a[0],r=a[1];var i=n.style,o=Ud(i.borderWidth||0),l=cQ(i);n.x=t+o+l.left,n.y=r+o+l.top,n.markRedraw()}},e.prototype._moveIfResized=function(){var t=this._styleCoord[2],r=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),r*this._zr.getHeight())},e.prototype.hide=function(){this.el&&this.el.hide(),this._show=!1},e.prototype.hideLater=function(t){this._show&&!(this._inContent&&this._enterable)&&!this._alwaysShowContent&&(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(Pt(this.hide,this),t)):this.hide())},e.prototype.isShow=function(){return this._show},e.prototype.dispose=function(){this._zr.remove(this.el)},e}();function Ud(e){return Math.max(0,e)}function cQ(e){var t=Ud(e.shadowBlur||0),r=Ud(e.shadowOffsetX||0),n=Ud(e.shadowOffsetY||0);return{left:Ud(t-r),right:Ud(t+r),top:Ud(t-n),bottom:Ud(t+n)}}function dQ(e,t,r,n){e[0]=r,e[1]=n,e[2]=e[0]/t.getWidth(),e[3]=e[1]/t.getHeight()}var c5t=new Zr({shape:{x:-1,y:-1,width:2,height:2}}),d5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){if(!(zr.node||!n.getDom())){var a=r.getComponent(\"tooltip\"),i=this._renderMode=U0t(a.get(\"renderMode\"));this._tooltipContent=i===\"richText\"?new u5t(n):new s5t(n,{appendTo:a.get(\"appendToBody\",!0)?\"body\":a.get(\"appendTo\",!0)})}},t.prototype.render=function(r,n,a){if(!(zr.node||!a.getDom())){this.group.removeAll(),this._tooltipModel=r,this._ecModel=n,this._api=a;var i=this._tooltipContent;i.update(r),i.setEnterable(r.get(\"enterable\")),this._initGlobalListener(),this._keepShow(),this._renderMode!==\"richText\"&&r.get(\"transitionDuration\")?n1(this,\"_updatePosition\",50,\"fixRate\"):O2(this,\"_updatePosition\")}},t.prototype._initGlobalListener=function(){var r=this._tooltipModel,n=r.get(\"triggerOn\");s1e(\"itemTooltip\",this._api,Pt(function(a,i,o){n!==\"none\"&&(n.indexOf(a)>=0?this._tryShow(i,o):a===\"leave\"&&this._hide(o))},this))},t.prototype._keepShow=function(){var r=this._tooltipModel,n=this._ecModel,a=this._api,i=r.get(\"triggerOn\");if(this._lastX!=null&&this._lastY!=null&&i!==\"none\"&&i!==\"click\"){var o=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){!a.isDisposed()&&o.manuallyShowTip(r,n,a,{x:o._lastX,y:o._lastY,dataByCoordSys:o._lastDataByCoordSys})})}},t.prototype.manuallyShowTip=function(r,n,a,i){if(!(i.from===this.uid||zr.node||!a.getDom())){var o=fQ(i,a);this._ticket=\"\";var l=i.dataByCoordSys,s=m5t(i,n,a);if(s){var u=s.el.getBoundingRect().clone();u.applyTransform(s.el.transform),this._tryShow({offsetX:u.x+u.width/2,offsetY:u.y+u.height/2,target:s.el,position:i.position,positionDefault:\"bottom\"},o)}else if(i.tooltip&&i.x!=null&&i.y!=null){var c=c5t;c.x=i.x,c.y=i.y,c.update(),br(c).tooltipConfig={name:null,option:i.tooltip},this._tryShow({offsetX:i.x,offsetY:i.y,target:c},o)}else if(l)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:l,tooltipOption:i.tooltipOption},o);else if(i.seriesIndex!=null){if(this._manuallyAxisShowTip(r,n,a,i))return;var d=u1e(i,n),f=d.point[0],h=d.point[1];f!=null&&h!=null&&this._tryShow({offsetX:f,offsetY:h,target:d.el,position:i.position,positionDefault:\"bottom\"},o)}else i.x!=null&&i.y!=null&&(a.dispatchAction({type:\"updateAxisPointer\",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:a.getZr().findHover(i.x,i.y).target},o))}},t.prototype.manuallyHideTip=function(r,n,a,i){var o=this._tooltipContent;this._tooltipModel&&o.hideLater(this._tooltipModel.get(\"hideDelay\")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(fQ(i,a))},t.prototype._manuallyAxisShowTip=function(r,n,a,i){var o=i.seriesIndex,l=i.dataIndex,s=n.getComponent(\"axisPointer\").coordSysAxesInfo;if(!(o==null||l==null||s==null)){var u=n.getSeriesByIndex(o);if(u){var c=u.getData(),d=Q1([c.getItemModel(l),u,(u.coordinateSystem||{}).model],this._tooltipModel);if(d.get(\"trigger\")===\"axis\")return a.dispatchAction({type:\"updateAxisPointer\",seriesIndex:o,dataIndex:l,position:i.position}),!0}}},t.prototype._tryShow=function(r,n){var a=r.target,i=this._tooltipModel;if(i){this._lastX=r.offsetX,this._lastY=r.offsetY;var o=r.dataByCoordSys;if(o&&o.length)this._showAxisTooltip(o,r);else if(a){var l=br(a);if(l.ssrType===\"legend\")return;this._lastDataByCoordSys=null;var s,u;vp(a,function(c){if(br(c).dataIndex!=null)return s=c,!0;if(br(c).tooltipConfig!=null)return u=c,!0},!0),s?this._showSeriesItemTooltip(r,s,n):u?this._showComponentItemTooltip(r,u,n):this._hide(n)}else this._lastDataByCoordSys=null,this._hide(n)}},t.prototype._showOrMove=function(r,n){var a=r.get(\"showDelay\");n=Pt(n,this),clearTimeout(this._showTimout),a>0?this._showTimout=setTimeout(n,a):n()},t.prototype._showAxisTooltip=function(r,n){var a=this._ecModel,i=this._tooltipModel,o=[n.offsetX,n.offsetY],l=Q1([n.tooltipOption],i),s=this._renderMode,u=[],c=gi(\"section\",{blocks:[],noHeader:!0}),d=[],f=new ZT;q(r,function(b){q(b.dataByAxis,function(x){var F=a.getComponent(x.axisDim+\"Axis\",x.axisIndex),S=x.value;if(!(!F||S==null)){var E=i1e(S,F.axis,a,x.seriesDataIndices,x.valueLabelOpt),w=gi(\"section\",{header:E,noHeader:!vs(E),sortBlocks:!0,blocks:[]});c.blocks.push(w),q(x.seriesDataIndices,function(D){var A=a.getSeriesByIndex(D.seriesIndex),_=D.dataIndexInside,I=A.getDataParams(_);if(!(I.dataIndex<0)){I.axisDim=x.axisDim,I.axisIndex=x.axisIndex,I.axisType=x.axisType,I.axisId=x.axisId,I.axisValue=n$(F.axis,{value:S}),I.axisValueLabel=E,I.marker=f.makeTooltipMarker(\"item\",lm(I.color),s);var M=QY(A.formatTooltip(_,!0,null)),T=M.frag;if(T){var k=Q1([A],i).get(\"valueFormatter\");w.blocks.push(k?Xe({valueFormatter:k},T):T)}M.text&&d.push(M.text),u.push(I)}})}})}),c.blocks.reverse(),d.reverse();var h=n.position,p=l.get(\"order\"),v=iq(c,f,s,p,a.get(\"useUTC\"),l.get(\"textStyle\"));v&&d.unshift(v);var g=s===\"richText\"?`\n\n`:\"<br/>\",y=d.join(g);this._showOrMove(l,function(){this._updateContentNotChangedOnAxis(r,u)?this._updatePosition(l,h,o[0],o[1],this._tooltipContent,u):this._showTooltipContent(l,y,u,Math.random()+\"\",o[0],o[1],h,null,f)})},t.prototype._showSeriesItemTooltip=function(r,n,a){var i=this._ecModel,o=br(n),l=o.seriesIndex,s=i.getSeriesByIndex(l),u=o.dataModel||s,c=o.dataIndex,d=o.dataType,f=u.getData(d),h=this._renderMode,p=r.positionDefault,v=Q1([f.getItemModel(c),u,s&&(s.coordinateSystem||{}).model],this._tooltipModel,p?{position:p}:null),g=v.get(\"trigger\");if(!(g!=null&&g!==\"item\")){var y=u.getDataParams(c,d),b=new ZT;y.marker=b.makeTooltipMarker(\"item\",lm(y.color),h);var x=QY(u.formatTooltip(c,!1,d)),F=v.get(\"order\"),S=v.get(\"valueFormatter\"),E=x.frag,w=E?iq(S?Xe({valueFormatter:S},E):E,b,h,F,i.get(\"useUTC\"),v.get(\"textStyle\")):x.text,D=\"item_\"+u.name+\"_\"+c;this._showOrMove(v,function(){this._showTooltipContent(v,w,y,D,r.offsetX,r.offsetY,r.position,r.target,b)}),a({type:\"showTip\",dataIndexInside:c,dataIndex:f.getRawIndex(c),seriesIndex:l,from:this.uid})}},t.prototype._showComponentItemTooltip=function(r,n,a){var i=this._renderMode===\"html\",o=br(n),l=o.tooltipConfig,s=l.option||{},u=s.encodeHTMLContent;if(At(s)){var c=s;s={content:c,formatter:c},u=!0}u&&i&&s.content&&(s=lr(s),s.content=po(s.content));var d=[s],f=this._ecModel.getComponent(o.componentMainType,o.componentIndex);f&&d.push(f),d.push({formatter:s.content});var h=r.positionDefault,p=Q1(d,this._tooltipModel,h?{position:h}:null),v=p.get(\"content\"),g=Math.random()+\"\",y=new ZT;this._showOrMove(p,function(){var b=lr(p.get(\"formatterParams\")||{});this._showTooltipContent(p,v,b,g,r.offsetX,r.offsetY,r.position,n,y)}),a({type:\"showTip\",from:this.uid})},t.prototype._showTooltipContent=function(r,n,a,i,o,l,s,u,c){if(this._ticket=\"\",!(!r.get(\"showContent\")||!r.get(\"show\"))){var d=this._tooltipContent;d.setEnterable(r.get(\"enterable\"));var f=r.get(\"formatter\");s=s||r.get(\"position\");var h=n,p=this._getNearestPoint([o,l],a,r.get(\"trigger\"),r.get(\"borderColor\")),v=p.color;if(f)if(At(f)){var g=r.ecModel.get(\"useUTC\"),y=nt(a)?a[0]:a,b=y&&y.axisType&&y.axisType.indexOf(\"time\")>=0;h=f,b&&(h=oC(y.axisValue,h,g)),h=kN(h,a,!0)}else if(er(f)){var x=Pt(function(F,S){F===this._ticket&&(d.setContent(S,c,r,v,s),this._updatePosition(r,s,o,l,d,a,u))},this);this._ticket=i,h=f(a,i,x)}else h=f;d.setContent(h,c,r,v,s),d.show(r,v),this._updatePosition(r,s,o,l,d,a,u)}},t.prototype._getNearestPoint=function(r,n,a,i){if(a===\"axis\"||nt(n))return{color:i||(this._renderMode===\"html\"?\"#fff\":\"none\")};if(!nt(n))return{color:i||n.color||n.borderColor}},t.prototype._updatePosition=function(r,n,a,i,o,l,s){var u=this._api.getWidth(),c=this._api.getHeight();n=n||r.get(\"position\");var d=o.getSize(),f=r.get(\"align\"),h=r.get(\"verticalAlign\"),p=s&&s.getBoundingRect().clone();if(s&&p.applyTransform(s.transform),er(n)&&(n=n([a,i],l,o.el,p,{viewSize:[u,c],contentSize:d.slice()})),nt(n))a=Ft(n[0],u),i=Ft(n[1],c);else if(ir(n)){var v=n;v.width=d[0],v.height=d[1];var g=Na(v,{width:u,height:c});a=g.x,i=g.y,f=null,h=null}else if(At(n)&&s){var y=p5t(n,p,d,r.get(\"borderWidth\"));a=y[0],i=y[1]}else{var y=f5t(a,i,o,u,c,f?null:20,h?null:20);a=y[0],i=y[1]}if(f&&(a-=hQ(f)?d[0]/2:f===\"right\"?d[0]:0),h&&(i-=hQ(h)?d[1]/2:h===\"bottom\"?d[1]:0),C1e(r)){var y=h5t(a,i,o,u,c);a=y[0],i=y[1]}o.moveTo(a,i)},t.prototype._updateContentNotChangedOnAxis=function(r,n){var a=this._lastDataByCoordSys,i=this._cbParamsList,o=!!a&&a.length===r.length;return o&&q(a,function(l,s){var u=l.dataByAxis||[],c=r[s]||{},d=c.dataByAxis||[];o=o&&u.length===d.length,o&&q(u,function(f,h){var p=d[h]||{},v=f.seriesDataIndices||[],g=p.seriesDataIndices||[];o=o&&f.value===p.value&&f.axisType===p.axisType&&f.axisId===p.axisId&&v.length===g.length,o&&q(v,function(y,b){var x=g[b];o=o&&y.seriesIndex===x.seriesIndex&&y.dataIndex===x.dataIndex}),i&&q(f.seriesDataIndices,function(y){var b=y.seriesIndex,x=n[b],F=i[b];x&&F&&F.data!==x.data&&(o=!1)})})}),this._lastDataByCoordSys=r,this._cbParamsList=n,!!o},t.prototype._hide=function(r){this._lastDataByCoordSys=null,r({type:\"hideTip\",from:this.uid})},t.prototype.dispose=function(r,n){zr.node||!n.getDom()||(O2(this,\"_updatePosition\"),this._tooltipContent.dispose(),a9(\"itemTooltip\",n))},t.type=\"tooltip\",t}(Wn);function Q1(e,t,r){var n=t.ecModel,a;r?(a=new pn(r,n,n),a=new pn(t.option,a,n)):a=t;for(var i=e.length-1;i>=0;i--){var o=e[i];o&&(o instanceof pn&&(o=o.get(\"tooltip\",!0)),At(o)&&(o={formatter:o}),o&&(a=new pn(o,a,n)))}return a}function fQ(e,t){return e.dispatchAction||Pt(t.dispatchAction,t)}function f5t(e,t,r,n,a,i,o){var l=r.getSize(),s=l[0],u=l[1];return i!=null&&(e+s+i+2>n?e-=s+i:e+=i),o!=null&&(t+u+o>a?t-=u+o:t+=o),[e,t]}function h5t(e,t,r,n,a){var i=r.getSize(),o=i[0],l=i[1];return e=Math.min(e+o,n)-o,t=Math.min(t+l,a)-l,e=Math.max(e,0),t=Math.max(t,0),[e,t]}function p5t(e,t,r,n){var a=r[0],i=r[1],o=Math.ceil(Math.SQRT2*n)+8,l=0,s=0,u=t.width,c=t.height;switch(e){case\"inside\":l=t.x+u/2-a/2,s=t.y+c/2-i/2;break;case\"top\":l=t.x+u/2-a/2,s=t.y-i-o;break;case\"bottom\":l=t.x+u/2-a/2,s=t.y+c+o;break;case\"left\":l=t.x-a-o,s=t.y+c/2-i/2;break;case\"right\":l=t.x+u+o,s=t.y+c/2-i/2}return[l,s]}function hQ(e){return e===\"center\"||e===\"middle\"}function m5t(e,t,r){var n=lN(e).queryOptionMap,a=n.keys()[0];if(!(!a||a===\"series\")){var i=eC(t,a,n.get(a),{useDefault:!1,enableAll:!1,enableNone:!1}),o=i.models[0];if(o){var l=r.getViewOfComponentModel(o),s;if(l.group.traverse(function(u){var c=br(u).tooltipConfig;if(c&&c.name===e.name)return s=u,!0}),s)return{componentMainType:a,componentIndex:o.componentIndex,el:s}}}}function v5t(e){Nr(gC),e.registerComponentModel(Z_t),e.registerComponentView(d5t),e.registerAction({type:\"showTip\",event:\"showTip\",update:\"tooltip:manuallyShowTip\"},ga),e.registerAction({type:\"hideTip\",event:\"hideTip\",update:\"tooltip:manuallyHideTip\"},ga)}var g5t=[\"rect\",\"polygon\",\"keep\",\"clear\"];function y5t(e,t){var r=An(e?e.brush:[]);if(r.length){var n=[];q(r,function(s){var u=s.hasOwnProperty(\"toolbox\")?s.toolbox:[];u instanceof Array&&(n=n.concat(u))});var a=e&&e.toolbox;nt(a)&&(a=a[0]),a||(a={feature:{}},e.toolbox=[a]);var i=a.feature||(a.feature={}),o=i.brush||(i.brush={}),l=o.type||(o.type=[]);l.push.apply(l,n),b5t(l),t&&!l.length&&l.push.apply(l,g5t)}}function b5t(e){var t={};q(e,function(r){t[r]=1}),e.length=0,q(t,function(r,n){e.push(n)})}var pQ=q;function mQ(e){if(e){for(var t in e)if(e.hasOwnProperty(t))return!0}}function c9(e,t,r){var n={};return pQ(t,function(i){var o=n[i]=a();pQ(e[i],function(l,s){if(di.isValidType(s)){var u={type:s,visual:l};r&&r(u,i),o[s]=new di(u),s===\"opacity\"&&(u=lr(u),u.type=\"colorAlpha\",o.__hidden.__alphaForOpacity=new di(u))}})}),n;function a(){var i=function(){};i.prototype.__hidden=i.prototype;var o=new i;return o}}function E1e(e,t,r){var n;q(r,function(a){t.hasOwnProperty(a)&&mQ(t[a])&&(n=!0)}),n&&q(r,function(a){t.hasOwnProperty(a)&&mQ(t[a])?e[a]=lr(t[a]):delete e[a]})}function x5t(e,t,r,n,a,i){var o={};q(e,function(d){var f=di.prepareVisualTypes(t[d]);o[d]=f});var l;function s(d){return zN(r,l,d)}function u(d,f){Vme(r,l,d,f)}r.each(c);function c(d,f){l=d;var h=r.getRawDataItem(l);if(!(h&&h.visualMap===!1))for(var p=n.call(a,d),v=t[p],g=o[p],y=0,b=g.length;y<b;y++){var x=g[y];v[x]&&v[x].applyVisual(d,s,u)}}}function C5t(e,t,r,n){var a={};return q(e,function(i){var o=di.prepareVisualTypes(t[i]);a[i]=o}),{progress:function(o,l){var s;n!=null&&(s=l.getDimensionIndex(n));function u(S){return zN(l,d,S)}function c(S,E){Vme(l,d,S,E)}for(var d,f=l.getStore();(d=o.next())!=null;){var h=l.getRawDataItem(d);if(!(h&&h.visualMap===!1))for(var p=n!=null?f.get(s,d):d,v=r(p),g=t[v],y=a[v],b=0,x=y.length;b<x;b++){var F=y[b];g[F]&&g[F].applyVisual(p,u,c)}}}}}function F5t(e){var t=e.brushType,r={point:function(n){return vQ[t].point(n,r,e)},rect:function(n){return vQ[t].rect(n,r,e)}};return r}var vQ={lineX:gQ(0),lineY:gQ(1),rect:{point:function(e,t,r){return e&&r.boundingRect.contain(e[0],e[1])},rect:function(e,t,r){return e&&r.boundingRect.intersect(e)}},polygon:{point:function(e,t,r){return e&&r.boundingRect.contain(e[0],e[1])&&ep(r.range,e[0],e[1])},rect:function(e,t,r){var n=r.range;if(!e||n.length<=1)return!1;var a=e.x,i=e.y,o=e.width,l=e.height,s=n[0];if(ep(n,a,i)||ep(n,a+o,i)||ep(n,a,i+l)||ep(n,a+o,i+l)||Ir.create(e).contain(s[0],s[1])||Fy(a,i,a+o,i,n)||Fy(a,i,a,i+l,n)||Fy(a+o,i,a+o,i+l,n)||Fy(a,i+l,a+o,i+l,n))return!0}}};function gQ(e){var t=[\"x\",\"y\"],r=[\"width\",\"height\"];return{point:function(n,a,i){if(n){var o=i.range,l=n[e];return ey(l,o)}},rect:function(n,a,i){if(n){var o=i.range,l=[n[t[e]],n[t[e]]+n[r[e]]];return l[1]<l[0]&&l.reverse(),ey(l[0],o)||ey(l[1],o)||ey(o[0],l)||ey(o[1],l)}}}}function ey(e,t){return t[0]<=e&&e<=t[1]}var yQ=[\"inBrush\",\"outOfBrush\"],pk=\"__ecBrushSelect\",d9=\"__ecInBrushSelectEvent\";function D1e(e){e.eachComponent({mainType:\"brush\"},function(t){var r=t.brushTargetManager=new rL(t.option,e);r.setInputRanges(t.areas,e)})}function S5t(e,t,r){var n=[],a,i;e.eachComponent({mainType:\"brush\"},function(o){r&&r.type===\"takeGlobalCursor\"&&o.setBrushOption(r.key===\"brush\"?r.brushOption:{brushType:!1})}),D1e(e),e.eachComponent({mainType:\"brush\"},function(o,l){var s={brushId:o.id,brushIndex:l,brushName:o.name,areas:lr(o.areas),selected:[]};n.push(s);var u=o.option,c=u.brushLink,d=[],f=[],h=[],p=!1;l||(a=u.throttleType,i=u.throttleDelay);var v=ot(o.areas,function(S){var E=A5t[S.brushType],w=rr({boundingRect:E?E(S):void 0},S);return w.selectors=F5t(w),w}),g=c9(o.option,yQ,function(S){S.mappingMethod=\"fixed\"});nt(c)&&q(c,function(S){d[S]=1});function y(S){return c===\"all\"||!!d[S]}function b(S){return!!S.length}e.eachSeries(function(S,E){var w=h[E]=[];S.subType===\"parallel\"?x(S,E):F(S,E,w)});function x(S,E){var w=S.coordinateSystem;p=p||w.hasAxisBrushed(),y(E)&&w.eachActiveState(S.getData(),function(D,A){D===\"active\"&&(f[A]=1)})}function F(S,E,w){if(!(!S.brushSelector||D5t(o,E))&&(q(v,function(A){o.brushTargetManager.controlSeries(A,S,e)&&w.push(A),p=p||b(w)}),y(E)&&b(w))){var D=S.getData();D.each(function(A){bQ(S,w,D,A)&&(f[A]=1)})}}e.eachSeries(function(S,E){var w={seriesId:S.id,seriesIndex:E,seriesName:S.name,dataIndex:[]};s.selected.push(w);var D=h[E],A=S.getData(),_=y(E)?function(I){return f[I]?(w.dataIndex.push(A.getRawIndex(I)),\"inBrush\"):\"outOfBrush\"}:function(I){return bQ(S,D,A,I)?(w.dataIndex.push(A.getRawIndex(I)),\"inBrush\"):\"outOfBrush\"};(y(E)?p:b(D))&&x5t(yQ,g,A,_)})}),w5t(t,a,i,n,r)}function w5t(e,t,r,n,a){if(a){var i=e.getZr();if(!i[d9]){i[pk]||(i[pk]=E5t);var o=n1(i,pk,r,t);o(e,n)}}}function E5t(e,t){if(!e.isDisposed()){var r=e.getZr();r[d9]=!0,e.dispatchAction({type:\"brushSelect\",batch:t}),r[d9]=!1}}function bQ(e,t,r,n){for(var a=0,i=t.length;a<i;a++){var o=t[a];if(e.brushSelector(n,r,o.selectors,o))return!0}}function D5t(e,t){var r=e.option.seriesIndex;return r!=null&&r!==\"all\"&&(nt(r)?Mr(r,t)<0:t!==r)}var A5t={rect:function(e){return xQ(e.range)},polygon:function(e){for(var t,r=e.range,n=0,a=r.length;n<a;n++){t=t||[[1/0,-1/0],[1/0,-1/0]];var i=r[n];i[0]<t[0][0]&&(t[0][0]=i[0]),i[0]>t[0][1]&&(t[0][1]=i[0]),i[1]<t[1][0]&&(t[1][0]=i[1]),i[1]>t[1][1]&&(t[1][1]=i[1])}return t&&xQ(t)}};function xQ(e){return new Ir(e[0][0],e[1][0],e[0][1]-e[0][0],e[1][1]-e[1][0])}var _5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){this.ecModel=r,this.api=n,this.model,(this._brushController=new T$(n.getZr())).on(\"brush\",Pt(this._onBrush,this)).mount()},t.prototype.render=function(r,n,a,i){this.model=r,this._updateController(r,n,a,i)},t.prototype.updateTransform=function(r,n,a,i){D1e(n),this._updateController(r,n,a,i)},t.prototype.updateVisual=function(r,n,a,i){this.updateTransform(r,n,a,i)},t.prototype.updateView=function(r,n,a,i){this._updateController(r,n,a,i)},t.prototype._updateController=function(r,n,a,i){(!i||i.$from!==r.id)&&this._brushController.setPanels(r.brushTargetManager.makePanelOpts(a)).enableBrush(r.brushOption).updateCovers(r.areas.slice())},t.prototype.dispose=function(){this._brushController.dispose()},t.prototype._onBrush=function(r){var n=this.model.id,a=this.model.brushTargetManager.setOutputRanges(r.areas,this.ecModel);(!r.isEnd||r.removeOnClick)&&this.api.dispatchAction({type:\"brush\",brushId:n,areas:lr(a),$from:n}),r.isEnd&&this.api.dispatchAction({type:\"brushEnd\",brushId:n,areas:lr(a),$from:n})},t.type=\"brush\",t}(Wn),T5t=\"#ddd\",I5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.areas=[],r.brushOption={},r}return t.prototype.optionUpdated=function(r,n){var a=this.option;!n&&E1e(a,r,[\"inBrush\",\"outOfBrush\"]);var i=a.inBrush=a.inBrush||{};a.outOfBrush=a.outOfBrush||{color:T5t},i.hasOwnProperty(\"liftZ\")||(i.liftZ=5)},t.prototype.setAreas=function(r){r&&(this.areas=ot(r,function(n){return CQ(this.option,n)},this))},t.prototype.setBrushOption=function(r){this.brushOption=CQ(this.option,r),this.brushType=this.brushOption.brushType},t.type=\"brush\",t.dependencies=[\"geo\",\"grid\",\"xAxis\",\"yAxis\",\"parallel\",\"series\"],t.defaultOption={seriesIndex:\"all\",brushType:\"rect\",brushMode:\"single\",transformable:!0,brushStyle:{borderWidth:1,color:\"rgba(210,219,238,0.3)\",borderColor:\"#D2DBEE\"},throttleType:\"fixRate\",throttleDelay:0,removeOnClick:!0,z:1e4},t}(jr);function CQ(e,t){return Er({brushType:e.brushType,brushMode:e.brushMode,transformable:e.transformable,brushStyle:new pn(e.brushStyle).getItemStyle(),removeOnClick:e.removeOnClick,z:e.z},t,!0)}var k5t=[\"rect\",\"polygon\",\"lineX\",\"lineY\",\"keep\",\"clear\"],R5t=function(e){Re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(r,n,a){var i,o,l;n.eachComponent({mainType:\"brush\"},function(s){i=s.brushType,o=s.brushOption.brushMode||\"single\",l=l||!!s.areas.length}),this._brushType=i,this._brushMode=o,q(r.get(\"type\",!0),function(s){r.setIconStatus(s,(s===\"keep\"?o===\"multiple\":s===\"clear\"?l:s===i)?\"emphasis\":\"normal\")})},t.prototype.updateView=function(r,n,a){this.render(r,n,a)},t.prototype.getIcons=function(){var r=this.model,n=r.get(\"icon\",!0),a={};return q(r.get(\"type\",!0),function(i){n[i]&&(a[i]=n[i])}),a},t.prototype.onclick=function(r,n,a){var i=this._brushType,o=this._brushMode;a===\"clear\"?(n.dispatchAction({type:\"axisAreaSelect\",intervals:[]}),n.dispatchAction({type:\"brush\",command:\"clear\",areas:[]})):n.dispatchAction({type:\"takeGlobalCursor\",key:\"brush\",brushOption:{brushType:a===\"keep\"?i:i===a?!1:a,brushMode:a===\"keep\"?o===\"multiple\"?\"single\":\"multiple\":o}})},t.getDefaultOption=function(r){var n={show:!0,type:k5t.slice(),icon:{rect:\"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13\",polygon:\"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2\",lineX:\"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4\",lineY:\"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4\",keep:\"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z\",clear:\"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2\"},title:r.getLocaleModel().get([\"toolbox\",\"brush\",\"title\"])};return n},t}(hs);function M5t(e){e.registerComponentView(_5t),e.registerComponentModel(I5t),e.registerPreprocessor(y5t),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,S5t),e.registerAction({type:\"brush\",event:\"brush\",update:\"updateVisual\"},function(t,r){r.eachComponent({mainType:\"brush\",query:t},function(n){n.setAreas(t.areas)})}),e.registerAction({type:\"brushSelect\",event:\"brushSelected\",update:\"none\"},ga),e.registerAction({type:\"brushEnd\",event:\"brushEnd\",update:\"none\"},ga),jv(\"brush\",R5t)}var P5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:\"box\",ignoreSize:!0},r}return t.type=\"title\",t.defaultOption={z:6,show:!0,text:\"\",target:\"blank\",subtext:\"\",subtarget:\"blank\",left:0,top:0,backgroundColor:\"rgba(0,0,0,0)\",borderColor:\"#ccc\",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:\"bold\",color:\"#464646\"},subtextStyle:{fontSize:12,color:\"#6E7079\"}},t}(jr),O5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.render=function(r,n,a){if(this.group.removeAll(),!!r.get(\"show\")){var i=this.group,o=r.getModel(\"textStyle\"),l=r.getModel(\"subtextStyle\"),s=r.get(\"textAlign\"),u=Fr(r.get(\"textBaseline\"),r.get(\"textVerticalAlign\")),c=new Jr({style:Mn(o,{text:r.get(\"text\"),fill:o.getTextColor()},{disableBox:!0}),z2:10}),d=c.getBoundingRect(),f=r.get(\"subtext\"),h=new Jr({style:Mn(l,{text:f,fill:l.getTextColor(),y:d.height+r.get(\"itemGap\"),verticalAlign:\"top\"},{disableBox:!0}),z2:10}),p=r.get(\"link\"),v=r.get(\"sublink\"),g=r.get(\"triggerEvent\",!0);c.silent=!p&&!g,h.silent=!v&&!g,p&&c.on(\"click\",function(){H3(p,\"_\"+r.get(\"target\"))}),v&&h.on(\"click\",function(){H3(v,\"_\"+r.get(\"subtarget\"))}),br(c).eventData=br(h).eventData=g?{componentType:\"title\",componentIndex:r.componentIndex}:null,i.add(c),f&&i.add(h);var y=i.getBoundingRect(),b=r.getBoxLayoutParams();b.width=y.width,b.height=y.height;var x=Na(b,{width:a.getWidth(),height:a.getHeight()},r.get(\"padding\"));s||(s=r.get(\"left\")||r.get(\"right\"),s===\"middle\"&&(s=\"center\"),s===\"right\"?x.x+=x.width:s===\"center\"&&(x.x+=x.width/2)),u||(u=r.get(\"top\")||r.get(\"bottom\"),u===\"center\"&&(u=\"middle\"),u===\"bottom\"?x.y+=x.height:u===\"middle\"&&(x.y+=x.height/2),u=u||\"top\"),i.x=x.x,i.y=x.y,i.markRedraw();var F={align:s,verticalAlign:u};c.setStyle(F),h.setStyle(F),y=i.getBoundingRect();var S=x.margin,E=r.getItemStyle([\"color\",\"opacity\"]);E.fill=r.get(\"backgroundColor\");var w=new Zr({shape:{x:y.x-S[3],y:y.y-S[0],width:y.width+S[1]+S[3],height:y.height+S[0]+S[2],r:r.get(\"borderRadius\")},style:E,subPixelOptimize:!0,silent:!0});i.add(w)}},t.type=\"title\",t}(Wn);function B5t(e){e.registerComponentModel(P5t),e.registerComponentView(O5t)}var FQ=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode=\"box\",r}return t.prototype.init=function(r,n,a){this.mergeDefaultAndTheme(r,a),this._initData()},t.prototype.mergeOption=function(r){e.prototype.mergeOption.apply(this,arguments),this._initData()},t.prototype.setCurrentIndex=function(r){r==null&&(r=this.option.currentIndex);var n=this._data.count();this.option.loop?r=(r%n+n)%n:(r>=n&&(r=n-1),r<0&&(r=0)),this.option.currentIndex=r},t.prototype.getCurrentIndex=function(){return this.option.currentIndex},t.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},t.prototype.setPlayState=function(r){this.option.autoPlay=!!r},t.prototype.getPlayState=function(){return!!this.option.autoPlay},t.prototype._initData=function(){var r=this.option,n=r.data||[],a=r.axisType,i=this._names=[],o;a===\"category\"?(o=[],q(n,function(u,c){var d=qa(Wg(u),\"\"),f;ir(u)?(f=lr(u),f.value=c):f=c,o.push(f),i.push(d)})):o=n;var l={category:\"ordinal\",time:\"time\",value:\"number\"}[a]||\"number\",s=this._data=new xo([{name:\"value\",type:l}],this);s.initData(o,i)},t.prototype.getData=function(){return this._data},t.prototype.getCategories=function(){if(this.get(\"axisType\")===\"category\")return this._names.slice()},t.type=\"timeline\",t.defaultOption={z:4,show:!0,axisType:\"time\",realtime:!0,left:\"20%\",top:null,right:\"20%\",bottom:0,width:null,height:40,padding:5,controlPosition:\"left\",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:\"#000\"},data:[]},t}(jr),A1e=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"timeline.slider\",t.defaultOption=uh(FQ.defaultOption,{backgroundColor:\"rgba(0,0,0,0)\",borderColor:\"#ccc\",borderWidth:0,orient:\"horizontal\",inverse:!1,tooltip:{trigger:\"item\"},symbol:\"circle\",symbolSize:12,lineStyle:{show:!0,width:2,color:\"#DAE1F5\"},label:{position:\"auto\",show:!0,interval:\"auto\",rotate:0,color:\"#A4B1D7\"},itemStyle:{color:\"#A4B1D7\",borderWidth:1},checkpointStyle:{symbol:\"circle\",symbolSize:15,color:\"#316bf3\",borderColor:\"#fff\",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:\"rgba(0, 0, 0, 0.3)\",animation:!0,animationDuration:300,animationEasing:\"quinticInOut\"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:\"left\",playIcon:\"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z\",stopIcon:\"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z\",nextIcon:\"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z\",prevIcon:\"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z\",prevBtnSize:18,nextBtnSize:18,color:\"#A4B1D7\",borderColor:\"#A4B1D7\",borderWidth:1},emphasis:{label:{show:!0,color:\"#6f778d\"},itemStyle:{color:\"#316BF3\"},controlStyle:{color:\"#316BF3\",borderColor:\"#316BF3\",borderWidth:2}},progress:{lineStyle:{color:\"#316BF3\"},itemStyle:{color:\"#316BF3\"},label:{color:\"#6f778d\"}},data:[]}),t}(FQ);Ca(A1e,sA.prototype);var N5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"timeline\",t}(Wn),$5t=function(e){Re(t,e);function t(r,n,a,i){var o=e.call(this,r,n,a)||this;return o.type=i||\"value\",o}return t.prototype.getLabelModel=function(){return this.model.getModel(\"label\")},t.prototype.isHorizontal=function(){return this.model.get(\"orient\")===\"horizontal\"},t}(Bs),mk=Math.PI,SQ=rn(),L5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(r,n){this.api=n},t.prototype.render=function(r,n,a){if(this.model=r,this.api=a,this.ecModel=n,this.group.removeAll(),r.get(\"show\",!0)){var i=this._layout(r,a),o=this._createGroup(\"_mainGroup\"),l=this._createGroup(\"_labelGroup\"),s=this._axis=this._createAxis(i,r);r.formatTooltip=function(u){var c=s.scale.getLabel({value:u});return gi(\"nameValue\",{noName:!0,value:c})},q([\"AxisLine\",\"AxisTick\",\"Control\",\"CurrentPointer\"],function(u){this[\"_render\"+u](i,o,s,r)},this),this._renderAxisLabel(i,l,s,r),this._position(i,r)}this._doPlayStop(),this._updateTicksStatus()},t.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},t.prototype.dispose=function(){this._clearTimer()},t.prototype._layout=function(r,n){var a=r.get([\"label\",\"position\"]),i=r.get(\"orient\"),o=z5t(r,n),l;a==null||a===\"auto\"?l=i===\"horizontal\"?o.y+o.height/2<n.getHeight()/2?\"-\":\"+\":o.x+o.width/2<n.getWidth()/2?\"+\":\"-\":At(a)?l={horizontal:{top:\"-\",bottom:\"+\"},vertical:{left:\"-\",right:\"+\"}}[i][a]:l=a;var s={horizontal:\"center\",vertical:l>=0||l===\"+\"?\"left\":\"right\"},u={horizontal:l>=0||l===\"+\"?\"top\":\"bottom\",vertical:\"middle\"},c={horizontal:0,vertical:mk/2},d=i===\"vertical\"?o.height:o.width,f=r.getModel(\"controlStyle\"),h=f.get(\"show\",!0),p=h?f.get(\"itemSize\"):0,v=h?f.get(\"itemGap\"):0,g=p+v,y=r.get([\"label\",\"rotate\"])||0;y=y*mk/180;var b,x,F,S=f.get(\"position\",!0),E=h&&f.get(\"showPlayBtn\",!0),w=h&&f.get(\"showPrevBtn\",!0),D=h&&f.get(\"showNextBtn\",!0),A=0,_=d;S===\"left\"||S===\"bottom\"?(E&&(b=[0,0],A+=g),w&&(x=[A,0],A+=g),D&&(F=[_-p,0],_-=g)):(E&&(b=[_-p,0],_-=g),w&&(x=[0,0],A+=g),D&&(F=[_-p,0],_-=g));var I=[A,_];return r.get(\"inverse\")&&I.reverse(),{viewRect:o,mainLength:d,orient:i,rotation:c[i],labelRotation:y,labelPosOpt:l,labelAlign:r.get([\"label\",\"align\"])||s[i],labelBaseline:r.get([\"label\",\"verticalAlign\"])||r.get([\"label\",\"baseline\"])||u[i],playPosition:b,prevBtnPosition:x,nextBtnPosition:F,axisExtent:I,controlSize:p,controlGap:v}},t.prototype._position=function(r,n){var a=this._mainGroup,i=this._labelGroup,o=r.viewRect;if(r.orient===\"vertical\"){var l=hl(),s=o.x,u=o.y+o.height;Cu(l,l,[-s,-u]),lh(l,l,-mk/2),Cu(l,l,[s,u]),o=o.clone(),o.applyTransform(l)}var c=b(o),d=b(a.getBoundingRect()),f=b(i.getBoundingRect()),h=[a.x,a.y],p=[i.x,i.y];p[0]=h[0]=c[0][0];var v=r.labelPosOpt;if(v==null||At(v)){var g=v===\"+\"?0:1;x(h,d,c,1,g),x(p,f,c,1,1-g)}else{var g=v>=0?0:1;x(h,d,c,1,g),p[1]=h[1]+v}a.setPosition(h),i.setPosition(p),a.rotation=i.rotation=r.rotation,y(a),y(i);function y(F){F.originX=c[0][0]-F.x,F.originY=c[1][0]-F.y}function b(F){return[[F.x,F.x+F.width],[F.y,F.y+F.height]]}function x(F,S,E,w,D){F[w]+=E[w][D]-S[w][D]}},t.prototype._createAxis=function(r,n){var a=n.getData(),i=n.get(\"axisType\"),o=j5t(n,i);o.getTicks=function(){return a.mapArray([\"value\"],function(u){return{value:u}})};var l=a.getDataExtent(\"value\");o.setExtent(l[0],l[1]),o.calcNiceTicks();var s=new $5t(\"value\",o,r.axisExtent,i);return s.model=n,s},t.prototype._createGroup=function(r){var n=this[r]=new pr;return this.group.add(n),n},t.prototype._renderAxisLine=function(r,n,a,i){var o=a.getExtent();if(i.get([\"lineStyle\",\"show\"])){var l=new Xa({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:Xe({lineCap:\"round\"},i.getModel(\"lineStyle\").getLineStyle()),silent:!0,z2:1});n.add(l);var s=this._progressLine=new Xa({shape:{x1:o[0],x2:this._currentPointer?this._currentPointer.x:o[0],y1:0,y2:0},style:rr({lineCap:\"round\",lineWidth:l.style.lineWidth},i.getModel([\"progress\",\"lineStyle\"]).getLineStyle()),silent:!0,z2:1});n.add(s)}},t.prototype._renderAxisTick=function(r,n,a,i){var o=this,l=i.getData(),s=a.scale.getTicks();this._tickSymbols=[],q(s,function(u){var c=a.dataToCoord(u.value),d=l.getItemModel(u.value),f=d.getModel(\"itemStyle\"),h=d.getModel([\"emphasis\",\"itemStyle\"]),p=d.getModel([\"progress\",\"itemStyle\"]),v={x:c,y:0,onclick:Pt(o._changeTimeline,o,u.value)},g=wQ(d,f,n,v);g.ensureState(\"emphasis\").style=h.getItemStyle(),g.ensureState(\"progress\").style=p.getItemStyle(),If(g);var y=br(g);d.get(\"tooltip\")?(y.dataIndex=u.value,y.dataModel=i):y.dataIndex=y.dataModel=null,o._tickSymbols.push(g)})},t.prototype._renderAxisLabel=function(r,n,a,i){var o=this,l=a.getLabelModel();if(l.get(\"show\")){var s=i.getData(),u=a.getViewLabels();this._tickLabels=[],q(u,function(c){var d=c.tickValue,f=s.getItemModel(d),h=f.getModel(\"label\"),p=f.getModel([\"emphasis\",\"label\"]),v=f.getModel([\"progress\",\"label\"]),g=a.dataToCoord(c.tickValue),y=new Jr({x:g,y:0,rotation:r.labelRotation-r.rotation,onclick:Pt(o._changeTimeline,o,d),silent:!1,style:Mn(h,{text:c.formattedLabel,align:r.labelAlign,verticalAlign:r.labelBaseline})});y.ensureState(\"emphasis\").style=Mn(p),y.ensureState(\"progress\").style=Mn(v),n.add(y),If(y),SQ(y).dataIndex=d,o._tickLabels.push(y)})}},t.prototype._renderControl=function(r,n,a,i){var o=r.controlSize,l=r.rotation,s=i.getModel(\"controlStyle\").getItemStyle(),u=i.getModel([\"emphasis\",\"controlStyle\"]).getItemStyle(),c=i.getPlayState(),d=i.get(\"inverse\",!0);f(r.nextBtnPosition,\"next\",Pt(this._changeTimeline,this,d?\"-\":\"+\")),f(r.prevBtnPosition,\"prev\",Pt(this._changeTimeline,this,d?\"+\":\"-\")),f(r.playPosition,c?\"stop\":\"play\",Pt(this._handlePlayClick,this,!c),!0);function f(h,p,v,g){if(h){var y=Fu(Fr(i.get([\"controlStyle\",p+\"BtnSize\"]),o),o),b=[0,-y/2,y,y],x=H5t(i,p+\"Icon\",b,{x:h[0],y:h[1],originX:o/2,originY:0,rotation:g?-l:0,rectHover:!0,style:s,onclick:v});x.ensureState(\"emphasis\").style=u,n.add(x),If(x)}}},t.prototype._renderCurrentPointer=function(r,n,a,i){var o=i.getData(),l=i.getCurrentIndex(),s=o.getItemModel(l).getModel(\"checkpointStyle\"),u=this,c={onCreate:function(d){d.draggable=!0,d.drift=Pt(u._handlePointerDrag,u),d.ondragend=Pt(u._handlePointerDragend,u),EQ(d,u._progressLine,l,a,i,!0)},onUpdate:function(d){EQ(d,u._progressLine,l,a,i)}};this._currentPointer=wQ(s,s,this._mainGroup,{},this._currentPointer,c)},t.prototype._handlePlayClick=function(r){this._clearTimer(),this.api.dispatchAction({type:\"timelinePlayChange\",playState:r,from:this.uid})},t.prototype._handlePointerDrag=function(r,n,a){this._clearTimer(),this._pointerChangeTimeline([a.offsetX,a.offsetY])},t.prototype._handlePointerDragend=function(r){this._pointerChangeTimeline([r.offsetX,r.offsetY],!0)},t.prototype._pointerChangeTimeline=function(r,n){var a=this._toAxisCoord(r)[0],i=this._axis,o=Ml(i.getExtent().slice());a>o[1]&&(a=o[1]),a<o[0]&&(a=o[0]),this._currentPointer.x=a,this._currentPointer.markRedraw();var l=this._progressLine;l&&(l.shape.x2=a,l.dirty());var s=this._findNearestTick(a),u=this.model;(n||s!==u.getCurrentIndex()&&u.get(\"realtime\"))&&this._changeTimeline(s)},t.prototype._doPlayStop=function(){var r=this;this._clearTimer(),this.model.getPlayState()&&(this._timer=setTimeout(function(){var n=r.model;r._changeTimeline(n.getCurrentIndex()+(n.get(\"rewind\",!0)?-1:1))},this.model.get(\"playInterval\")))},t.prototype._toAxisCoord=function(r){var n=this._mainGroup.getLocalTransform();return hu(r,n,!0)},t.prototype._findNearestTick=function(r){var n=this.model.getData(),a=1/0,i,o=this._axis;return n.each([\"value\"],function(l,s){var u=o.dataToCoord(l),c=Math.abs(u-r);c<a&&(a=c,i=s)}),i},t.prototype._clearTimer=function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},t.prototype._changeTimeline=function(r){var n=this.model.getCurrentIndex();r===\"+\"?r=n+1:r===\"-\"&&(r=n-1),this.api.dispatchAction({type:\"timelineChange\",currentIndex:r,from:this.uid})},t.prototype._updateTicksStatus=function(){var r=this.model.getCurrentIndex(),n=this._tickSymbols,a=this._tickLabels;if(n)for(var i=0;i<n.length;i++)n&&n[i]&&n[i].toggleState(\"progress\",i<r);if(a)for(var i=0;i<a.length;i++)a&&a[i]&&a[i].toggleState(\"progress\",SQ(a[i]).dataIndex<=r)},t.type=\"timeline.slider\",t}(N5t);function j5t(e,t){if(t=t||e.get(\"type\"),t)switch(t){case\"category\":return new vA({ordinalMeta:e.getCategories(),extent:[1/0,-1/0]});case\"time\":return new t$({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get(\"useUTC\")});default:return new vd}}function z5t(e,t){return Na(e.getBoxLayoutParams(),{width:t.getWidth(),height:t.getHeight()},e.get(\"padding\"))}function H5t(e,t,r,n){var a=n.style,i=Xg(e.get([\"controlStyle\",t]),n||{},new Ir(r[0],r[1],r[2],r[3]));return a&&i.setStyle(a),i}function wQ(e,t,r,n,a,i){var o=t.get(\"color\");if(a)a.setColor(o),r.add(a),i&&i.onUpdate(a);else{var l=e.get(\"symbol\");a=_a(l,-1,-1,2,2,o),a.setStyle(\"strokeNoScale\",!0),r.add(a),i&&i.onCreate(a)}var s=t.getItemStyle([\"color\"]);a.setStyle(s),n=Er({rectHover:!0,z2:100},n,!0);var u=a1(e.get(\"symbolSize\"));n.scaleX=u[0]/2,n.scaleY=u[1]/2;var c=jm(e.get(\"symbolOffset\"),u);c&&(n.x=(n.x||0)+c[0],n.y=(n.y||0)+c[1]);var d=e.get(\"symbolRotate\");return n.rotation=(d||0)*Math.PI/180||0,a.attr(n),a.updateTransform(),a}function EQ(e,t,r,n,a,i){if(!e.dragging){var o=a.getModel(\"checkpointStyle\"),l=n.dataToCoord(a.getData().get(\"value\",r));if(i||!o.get(\"animation\",!0))e.attr({x:l,y:0}),t&&t.attr({shape:{x2:l}});else{var s={duration:o.get(\"animationDuration\",!0),easing:o.get(\"animationEasing\",!0)};e.stopAnimation(null,!0),e.animateTo({x:l,y:0},s),t&&t.animateTo({shape:{x2:l}},s)}}}function V5t(e){e.registerAction({type:\"timelineChange\",event:\"timelineChanged\",update:\"prepareAndUpdate\"},function(t,r,n){var a=r.getComponent(\"timeline\");return a&&t.currentIndex!=null&&(a.setCurrentIndex(t.currentIndex),!a.get(\"loop\",!0)&&a.isIndexMax()&&a.getPlayState()&&(a.setPlayState(!1),n.dispatchAction({type:\"timelinePlayChange\",playState:!1,from:t.from}))),r.resetOption(\"timeline\",{replaceMerge:a.get(\"replaceMerge\",!0)}),rr({currentIndex:a.option.currentIndex},t)}),e.registerAction({type:\"timelinePlayChange\",event:\"timelinePlayChanged\",update:\"update\"},function(t,r){var n=r.getComponent(\"timeline\");n&&t.playState!=null&&n.setPlayState(t.playState)})}function W5t(e){var t=e&&e.timeline;nt(t)||(t=t?[t]:[]),q(t,function(r){r&&G5t(r)})}function G5t(e){var t=e.type,r={number:\"value\",time:\"time\"};if(r[t]&&(e.axisType=r[t],delete e.type),DQ(e),np(e,\"controlPosition\")){var n=e.controlStyle||(e.controlStyle={});np(n,\"position\")||(n.position=e.controlPosition),n.position===\"none\"&&!np(n,\"show\")&&(n.show=!1,delete n.position),delete e.controlPosition}q(e.data||[],function(a){ir(a)&&!nt(a)&&(!np(a,\"value\")&&np(a,\"name\")&&(a.value=a.name),DQ(a))})}function DQ(e){var t=e.itemStyle||(e.itemStyle={}),r=t.emphasis||(t.emphasis={}),n=e.label||e.label||{},a=n.normal||(n.normal={}),i={normal:1,emphasis:1};q(n,function(o,l){!i[l]&&!np(a,l)&&(a[l]=o)}),r.label&&!np(n,\"emphasis\")&&(n.emphasis=r.label,delete r.label)}function np(e,t){return e.hasOwnProperty(t)}function U5t(e){e.registerComponentModel(A1e),e.registerComponentView(L5t),e.registerSubTypeDefaulter(\"timeline\",function(){return\"slider\"}),V5t(e),e.registerPreprocessor(W5t)}function iL(e,t){if(!e)return!1;for(var r=nt(e)?e:[e],n=0;n<r.length;n++)if(r[n]&&r[n][t])return!0;return!1}function MS(e){nm(e,\"label\",[\"show\"])}var PS=rn(),yd=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.createdBySelf=!1,r}return t.prototype.init=function(r,n,a){this.mergeDefaultAndTheme(r,a),this._mergeOption(r,a,!1,!0)},t.prototype.isAnimationEnabled=function(){if(zr.node)return!1;var r=this.__hostSeries;return this.getShallow(\"animation\")&&r&&r.isAnimationEnabled()},t.prototype.mergeOption=function(r,n){this._mergeOption(r,n,!1,!1)},t.prototype._mergeOption=function(r,n,a,i){var o=this.mainType;a||n.eachSeries(function(l){var s=l.get(this.mainType,!0),u=PS(l)[o];if(!s||!s.data){PS(l)[o]=null;return}u?u._mergeOption(s,n,!0):(i&&MS(s),q(s.data,function(c){c instanceof Array?(MS(c[0]),MS(c[1])):MS(c)}),u=this.createMarkerModelFromSeries(s,this,n),Xe(u,{mainType:this.mainType,seriesIndex:l.seriesIndex,name:l.name,createdBySelf:!0}),u.__hostSeries=l),PS(l)[o]=u},this)},t.prototype.formatTooltip=function(r,n,a){var i=this.getData(),o=this.getRawValue(r),l=i.getName(r);return gi(\"section\",{header:this.name,blocks:[gi(\"nameValue\",{name:l,value:o,noName:!l,noValue:o==null})]})},t.prototype.getData=function(){return this._data},t.prototype.setData=function(r){this._data=r},t.prototype.getDataParams=function(r,n){var a=sA.prototype.getDataParams.call(this,r,n),i=this.__hostSeries;return i&&(a.seriesId=i.id,a.seriesName=i.name,a.seriesType=i.subType),a},t.getMarkerModelFromSeries=function(r,n){return PS(r)[n]},t.type=\"marker\",t.dependencies=[\"series\",\"grid\",\"polar\",\"geo\"],t}(jr);Ca(yd,sA.prototype);var K5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.createMarkerModelFromSeries=function(r,n,a){return new t(r,n,a)},t.type=\"markPoint\",t.defaultOption={z:5,symbol:\"pin\",symbolSize:50,tooltip:{trigger:\"item\"},label:{show:!0,position:\"inside\"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},t}(yd);function f9(e){return!(isNaN(parseFloat(e.x))&&isNaN(parseFloat(e.y)))}function Y5t(e){return!isNaN(parseFloat(e.x))&&!isNaN(parseFloat(e.y))}function OS(e,t,r,n,a,i){var o=[],l=md(t,n),s=l?t.getCalculationInfo(\"stackResultDimension\"):n,u=oL(t,s,e),c=t.indicesOfNearest(s,u)[0];o[a]=t.get(r,c),o[i]=t.get(s,c);var d=t.get(n,c),f=tu(t.get(n,c));return f=Math.min(f,20),f>=0&&(o[i]=+o[i].toFixed(f)),[o,d]}var vk={min:wr(OS,\"min\"),max:wr(OS,\"max\"),average:wr(OS,\"average\"),median:wr(OS,\"median\")};function q2(e,t){if(t){var r=e.getData(),n=e.coordinateSystem,a=n&&n.dimensions;if(!Y5t(t)&&!nt(t.coord)&&nt(a)){var i=_1e(t,r,n,e);if(t=lr(t),t.type&&vk[t.type]&&i.baseAxis&&i.valueAxis){var o=Mr(a,i.baseAxis.dim),l=Mr(a,i.valueAxis.dim),s=vk[t.type](r,i.baseDataDim,i.valueDataDim,o,l);t.coord=s[0],t.value=s[1]}else t.coord=[t.xAxis!=null?t.xAxis:t.radiusAxis,t.yAxis!=null?t.yAxis:t.angleAxis]}if(t.coord==null||!nt(a))t.coord=[];else for(var u=t.coord,c=0;c<2;c++)vk[u[c]]&&(u[c]=oL(r,r.mapDimension(a[c]),u[c]));return t}}function _1e(e,t,r,n){var a={};return e.valueIndex!=null||e.valueDim!=null?(a.valueDataDim=e.valueIndex!=null?t.getDimension(e.valueIndex):e.valueDim,a.valueAxis=r.getAxis(q5t(n,a.valueDataDim)),a.baseAxis=r.getOtherAxis(a.valueAxis),a.baseDataDim=t.mapDimension(a.baseAxis.dim)):(a.baseAxis=n.getBaseAxis(),a.valueAxis=r.getOtherAxis(a.baseAxis),a.baseDataDim=t.mapDimension(a.baseAxis.dim),a.valueDataDim=t.mapDimension(a.valueAxis.dim)),a}function q5t(e,t){var r=e.getData().getDimensionInfo(t);return r&&r.coordDim}function X2(e,t){return e&&e.containData&&t.coord&&!f9(t)?e.containData(t.coord):!0}function X5t(e,t,r){return e&&e.containZone&&t.coord&&r.coord&&!f9(t)&&!f9(r)?e.containZone(t.coord,r.coord):!0}function T1e(e,t){return e?function(r,n,a,i){var o=i<2?r.coord&&r.coord[i]:r.value;return Mf(o,t[i])}:function(r,n,a,i){return Mf(r.value,t[i])}}function oL(e,t,r){if(r===\"average\"){var n=0,a=0;return e.each(t,function(i,o){isNaN(i)||(n+=i,a++)}),n/a}else return r===\"median\"?e.getMedian(t):e.getDataExtent(t)[r===\"max\"?1:0]}var gk=rn(),lL=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.init=function(){this.markerGroupMap=Gt()},t.prototype.render=function(r,n,a){var i=this,o=this.markerGroupMap;o.each(function(l){gk(l).keep=!1}),n.eachSeries(function(l){var s=yd.getMarkerModelFromSeries(l,i.type);s&&i.renderSeries(l,s,n,a)}),o.each(function(l){!gk(l).keep&&i.group.remove(l.group)})},t.prototype.markKeep=function(r){gk(r).keep=!0},t.prototype.toggleBlurSeries=function(r,n){var a=this;q(r,function(i){var o=yd.getMarkerModelFromSeries(i,a.type);if(o){var l=o.getData();l.eachItemGraphicEl(function(s){s&&(n?xpe(s):pN(s))})}})},t.type=\"marker\",t}(Wn);function AQ(e,t,r){var n=t.coordinateSystem;e.each(function(a){var i=e.getItemModel(a),o,l=Ft(i.get(\"x\"),r.getWidth()),s=Ft(i.get(\"y\"),r.getHeight());if(!isNaN(l)&&!isNaN(s))o=[l,s];else if(t.getMarkerPosition)o=t.getMarkerPosition(e.getValues(e.dimensions,a));else if(n){var u=e.get(n.dimensions[0],a),c=e.get(n.dimensions[1],a);o=n.dataToPoint([u,c])}isNaN(l)||(o[0]=l),isNaN(s)||(o[1]=s),e.setItemLayout(a,o)})}var J5t=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.updateTransform=function(r,n,a){n.eachSeries(function(i){var o=yd.getMarkerModelFromSeries(i,\"markPoint\");o&&(AQ(o.getData(),i,a),this.markerGroupMap.get(i.id).updateLayout())},this)},t.prototype.renderSeries=function(r,n,a,i){var o=r.coordinateSystem,l=r.id,s=r.getData(),u=this.markerGroupMap,c=u.get(l)||u.set(l,new cC),d=Z5t(o,r,n);n.setData(d),AQ(n.getData(),r,i),d.each(function(f){var h=d.getItemModel(f),p=h.getShallow(\"symbol\"),v=h.getShallow(\"symbolSize\"),g=h.getShallow(\"symbolRotate\"),y=h.getShallow(\"symbolOffset\"),b=h.getShallow(\"symbolKeepAspect\");if(er(p)||er(v)||er(g)||er(y)){var x=n.getRawValue(f),F=n.getDataParams(f);er(p)&&(p=p(x,F)),er(v)&&(v=v(x,F)),er(g)&&(g=g(x,F)),er(y)&&(y=y(x,F))}var S=h.getModel(\"itemStyle\").getItemStyle(),E=lC(s,\"color\");S.fill||(S.fill=E),d.setItemVisual(f,{symbol:p,symbolSize:v,symbolRotate:g,symbolOffset:y,symbolKeepAspect:b,style:S})}),c.updateData(d),this.group.add(c.group),d.eachItemGraphicEl(function(f){f.traverse(function(h){br(h).dataModel=n})}),this.markKeep(c),c.group.silent=n.get(\"silent\")||r.get(\"silent\")},t.type=\"markPoint\",t}(lL);function Z5t(e,t,r){var n;e?n=ot(e&&e.dimensions,function(l){var s=t.getData().getDimensionInfo(t.getData().mapDimension(l))||{};return Xe(Xe({},s),{name:l,ordinalMeta:null})}):n=[{name:\"value\",type:\"float\"}];var a=new xo(n,r),i=ot(r.get(\"data\"),wr(q2,t));e&&(i=hn(i,wr(X2,e)));var o=T1e(!!e,n);return a.initData(i,null,o),a}function Q5t(e){e.registerComponentModel(K5t),e.registerComponentView(J5t),e.registerPreprocessor(function(t){iL(t.series,\"markPoint\")&&(t.markPoint=t.markPoint||{})})}var eTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.createMarkerModelFromSeries=function(r,n,a){return new t(r,n,a)},t.type=\"markLine\",t.defaultOption={z:5,symbol:[\"circle\",\"arrow\"],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:\"item\"},label:{show:!0,position:\"end\",distance:5},lineStyle:{type:\"dashed\"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:\"linear\"},t}(yd),BS=rn(),tTt=function(e,t,r,n){var a=e.getData(),i;if(nt(n))i=n;else{var o=n.type;if(o===\"min\"||o===\"max\"||o===\"average\"||o===\"median\"||n.xAxis!=null||n.yAxis!=null){var l=void 0,s=void 0;if(n.yAxis!=null||n.xAxis!=null)l=t.getAxis(n.yAxis!=null?\"y\":\"x\"),s=ui(n.yAxis,n.xAxis);else{var u=_1e(n,a,t,e);l=u.valueAxis;var c=QN(a,u.valueDataDim);s=oL(a,c,o)}var d=l.dim===\"x\"?0:1,f=1-d,h=lr(n),p={coord:[]};h.type=null,h.coord=[],h.coord[f]=-1/0,p.coord[f]=1/0;var v=r.get(\"precision\");v>=0&&nn(s)&&(s=+s.toFixed(Math.min(v,20))),h.coord[d]=p.coord[d]=s,i=[h,p,{type:o,valueIndex:n.valueIndex,value:s}]}else i=[]}var g=[q2(e,i[0]),q2(e,i[1]),Xe({},i[2])];return g[2].type=g[2].type||null,Er(g[2],g[0]),Er(g[2],g[1]),g};function m4(e){return!isNaN(e)&&!isFinite(e)}function _Q(e,t,r,n){var a=1-e,i=n.dimensions[e];return m4(t[a])&&m4(r[a])&&t[e]===r[e]&&n.getAxis(i).containData(t[e])}function rTt(e,t){if(e.type===\"cartesian2d\"){var r=t[0].coord,n=t[1].coord;if(r&&n&&(_Q(1,r,n,e)||_Q(0,r,n,e)))return!0}return X2(e,t[0])&&X2(e,t[1])}function yk(e,t,r,n,a){var i=n.coordinateSystem,o=e.getItemModel(t),l,s=Ft(o.get(\"x\"),a.getWidth()),u=Ft(o.get(\"y\"),a.getHeight());if(!isNaN(s)&&!isNaN(u))l=[s,u];else{if(n.getMarkerPosition)l=n.getMarkerPosition(e.getValues(e.dimensions,t));else{var c=i.dimensions,d=e.get(c[0],t),f=e.get(c[1],t);l=i.dataToPoint([d,f])}if(zm(i,\"cartesian2d\")){var h=i.getAxis(\"x\"),p=i.getAxis(\"y\"),c=i.dimensions;m4(e.get(c[0],t))?l[0]=h.toGlobalCoord(h.getExtent()[r?0:1]):m4(e.get(c[1],t))&&(l[1]=p.toGlobalCoord(p.getExtent()[r?0:1]))}isNaN(s)||(l[0]=s),isNaN(u)||(l[1]=u)}e.setItemLayout(t,l)}var nTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.updateTransform=function(r,n,a){n.eachSeries(function(i){var o=yd.getMarkerModelFromSeries(i,\"markLine\");if(o){var l=o.getData(),s=BS(o).from,u=BS(o).to;s.each(function(c){yk(s,c,!0,i,a),yk(u,c,!1,i,a)}),l.each(function(c){l.setItemLayout(c,[s.getItemLayout(c),u.getItemLayout(c)])}),this.markerGroupMap.get(i.id).updateLayout()}},this)},t.prototype.renderSeries=function(r,n,a,i){var o=r.coordinateSystem,l=r.id,s=r.getData(),u=this.markerGroupMap,c=u.get(l)||u.set(l,new _$);this.group.add(c.group);var d=aTt(o,r,n),f=d.from,h=d.to,p=d.line;BS(n).from=f,BS(n).to=h,n.setData(p);var v=n.get(\"symbol\"),g=n.get(\"symbolSize\"),y=n.get(\"symbolRotate\"),b=n.get(\"symbolOffset\");nt(v)||(v=[v,v]),nt(g)||(g=[g,g]),nt(y)||(y=[y,y]),nt(b)||(b=[b,b]),d.from.each(function(F){x(f,F,!0),x(h,F,!1)}),p.each(function(F){var S=p.getItemModel(F).getModel(\"lineStyle\").getLineStyle();p.setItemLayout(F,[f.getItemLayout(F),h.getItemLayout(F)]),S.stroke==null&&(S.stroke=f.getItemVisual(F,\"style\").fill),p.setItemVisual(F,{fromSymbolKeepAspect:f.getItemVisual(F,\"symbolKeepAspect\"),fromSymbolOffset:f.getItemVisual(F,\"symbolOffset\"),fromSymbolRotate:f.getItemVisual(F,\"symbolRotate\"),fromSymbolSize:f.getItemVisual(F,\"symbolSize\"),fromSymbol:f.getItemVisual(F,\"symbol\"),toSymbolKeepAspect:h.getItemVisual(F,\"symbolKeepAspect\"),toSymbolOffset:h.getItemVisual(F,\"symbolOffset\"),toSymbolRotate:h.getItemVisual(F,\"symbolRotate\"),toSymbolSize:h.getItemVisual(F,\"symbolSize\"),toSymbol:h.getItemVisual(F,\"symbol\"),style:S})}),c.updateData(p),d.line.eachItemGraphicEl(function(F){br(F).dataModel=n,F.traverse(function(S){br(S).dataModel=n})});function x(F,S,E){var w=F.getItemModel(S);yk(F,S,E,r,i);var D=w.getModel(\"itemStyle\").getItemStyle();D.fill==null&&(D.fill=lC(s,\"color\")),F.setItemVisual(S,{symbolKeepAspect:w.get(\"symbolKeepAspect\"),symbolOffset:Fr(w.get(\"symbolOffset\",!0),b[E?0:1]),symbolRotate:Fr(w.get(\"symbolRotate\",!0),y[E?0:1]),symbolSize:Fr(w.get(\"symbolSize\"),g[E?0:1]),symbol:Fr(w.get(\"symbol\",!0),v[E?0:1]),style:D})}this.markKeep(c),c.group.silent=n.get(\"silent\")||r.get(\"silent\")},t.type=\"markLine\",t}(lL);function aTt(e,t,r){var n;e?n=ot(e&&e.dimensions,function(u){var c=t.getData().getDimensionInfo(t.getData().mapDimension(u))||{};return Xe(Xe({},c),{name:u,ordinalMeta:null})}):n=[{name:\"value\",type:\"float\"}];var a=new xo(n,r),i=new xo(n,r),o=new xo([],r),l=ot(r.get(\"data\"),wr(tTt,t,e,r));e&&(l=hn(l,wr(rTt,e)));var s=T1e(!!e,n);return a.initData(ot(l,function(u){return u[0]}),null,s),i.initData(ot(l,function(u){return u[1]}),null,s),o.initData(ot(l,function(u){return u[2]})),o.hasItemOption=!0,{from:a,to:i,line:o}}function iTt(e){e.registerComponentModel(eTt),e.registerComponentView(nTt),e.registerPreprocessor(function(t){iL(t.series,\"markLine\")&&(t.markLine=t.markLine||{})})}var oTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.createMarkerModelFromSeries=function(r,n,a){return new t(r,n,a)},t.type=\"markArea\",t.defaultOption={z:1,tooltip:{trigger:\"item\"},animation:!1,label:{show:!0,position:\"top\"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:\"top\"}}},t}(yd),NS=rn(),lTt=function(e,t,r,n){var a=n[0],i=n[1];if(!(!a||!i)){var o=q2(e,a),l=q2(e,i),s=o.coord,u=l.coord;s[0]=ui(s[0],-1/0),s[1]=ui(s[1],-1/0),u[0]=ui(u[0],1/0),u[1]=ui(u[1],1/0);var c=ND([{},o,l]);return c.coord=[o.coord,l.coord],c.x0=o.x,c.y0=o.y,c.x1=l.x,c.y1=l.y,c}};function v4(e){return!isNaN(e)&&!isFinite(e)}function TQ(e,t,r,n){var a=1-e;return v4(t[a])&&v4(r[a])}function sTt(e,t){var r=t.coord[0],n=t.coord[1],a={coord:r,x:t.x0,y:t.y0},i={coord:n,x:t.x1,y:t.y1};return zm(e,\"cartesian2d\")?r&&n&&(TQ(1,r,n)||TQ(0,r,n))?!0:X5t(e,a,i):X2(e,a)||X2(e,i)}function IQ(e,t,r,n,a){var i=n.coordinateSystem,o=e.getItemModel(t),l,s=Ft(o.get(r[0]),a.getWidth()),u=Ft(o.get(r[1]),a.getHeight());if(!isNaN(s)&&!isNaN(u))l=[s,u];else{if(n.getMarkerPosition){var c=e.getValues([\"x0\",\"y0\"],t),d=e.getValues([\"x1\",\"y1\"],t),f=i.clampData(c),h=i.clampData(d),p=[];r[0]===\"x0\"?p[0]=f[0]>h[0]?d[0]:c[0]:p[0]=f[0]>h[0]?c[0]:d[0],r[1]===\"y0\"?p[1]=f[1]>h[1]?d[1]:c[1]:p[1]=f[1]>h[1]?c[1]:d[1],l=n.getMarkerPosition(p,r,!0)}else{var v=e.get(r[0],t),g=e.get(r[1],t),y=[v,g];i.clampData&&i.clampData(y,y),l=i.dataToPoint(y,!0)}if(zm(i,\"cartesian2d\")){var b=i.getAxis(\"x\"),x=i.getAxis(\"y\"),v=e.get(r[0],t),g=e.get(r[1],t);v4(v)?l[0]=b.toGlobalCoord(b.getExtent()[r[0]===\"x0\"?0:1]):v4(g)&&(l[1]=x.toGlobalCoord(x.getExtent()[r[1]===\"y0\"?0:1]))}isNaN(s)||(l[0]=s),isNaN(u)||(l[1]=u)}return l}var kQ=[[\"x0\",\"y0\"],[\"x1\",\"y0\"],[\"x1\",\"y1\"],[\"x0\",\"y1\"]],uTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.updateTransform=function(r,n,a){n.eachSeries(function(i){var o=yd.getMarkerModelFromSeries(i,\"markArea\");if(o){var l=o.getData();l.each(function(s){var u=ot(kQ,function(d){return IQ(l,s,d,i,a)});l.setItemLayout(s,u);var c=l.getItemGraphicEl(s);c.setShape(\"points\",u)})}},this)},t.prototype.renderSeries=function(r,n,a,i){var o=r.coordinateSystem,l=r.id,s=r.getData(),u=this.markerGroupMap,c=u.get(l)||u.set(l,{group:new pr});this.group.add(c.group),this.markKeep(c);var d=cTt(o,r,n);n.setData(d),d.each(function(f){var h=ot(kQ,function(D){return IQ(d,f,D,r,i)}),p=o.getAxis(\"x\").scale,v=o.getAxis(\"y\").scale,g=p.getExtent(),y=v.getExtent(),b=[p.parse(d.get(\"x0\",f)),p.parse(d.get(\"x1\",f))],x=[v.parse(d.get(\"y0\",f)),v.parse(d.get(\"y1\",f))];Ml(b),Ml(x);var F=!(g[0]>b[1]||g[1]<b[0]||y[0]>x[1]||y[1]<x[0]),S=!F;d.setItemLayout(f,{points:h,allClipped:S});var E=d.getItemModel(f).getModel(\"itemStyle\").getItemStyle(),w=lC(s,\"color\");E.fill||(E.fill=w,At(E.fill)&&(E.fill=E2(E.fill,.4))),E.stroke||(E.stroke=w),d.setItemVisual(f,\"style\",E)}),d.diff(NS(c).data).add(function(f){var h=d.getItemLayout(f);if(!h.allClipped){var p=new wo({shape:{points:h.points}});d.setItemGraphicEl(f,p),c.group.add(p)}}).update(function(f,h){var p=NS(c).data.getItemGraphicEl(h),v=d.getItemLayout(f);v.allClipped?p&&c.group.remove(p):(p?cn(p,{shape:{points:v.points}},n,f):p=new wo({shape:{points:v.points}}),d.setItemGraphicEl(f,p),c.group.add(p))}).remove(function(f){var h=NS(c).data.getItemGraphicEl(f);c.group.remove(h)}).execute(),d.eachItemGraphicEl(function(f,h){var p=d.getItemModel(h),v=d.getItemVisual(h,\"style\");f.useStyle(d.getItemVisual(h,\"style\")),Xi(f,vi(p),{labelFetcher:n,labelDataIndex:h,defaultText:d.getName(h)||\"\",inheritColor:At(v.fill)?E2(v.fill,1):\"#000\"}),qi(f,p),sa(f,null,null,p.get([\"emphasis\",\"disabled\"])),br(f).dataModel=n}),NS(c).data=d,c.group.silent=n.get(\"silent\")||r.get(\"silent\")},t.type=\"markArea\",t}(lL);function cTt(e,t,r){var n,a,i=[\"x0\",\"y0\",\"x1\",\"y1\"];if(e){var o=ot(e&&e.dimensions,function(u){var c=t.getData(),d=c.getDimensionInfo(c.mapDimension(u))||{};return Xe(Xe({},d),{name:u,ordinalMeta:null})});a=ot(i,function(u,c){return{name:u,type:o[c%2].type}}),n=new xo(a,r)}else a=[{name:\"value\",type:\"float\"}],n=new xo(a,r);var l=ot(r.get(\"data\"),wr(lTt,t,e,r));e&&(l=hn(l,wr(sTt,e)));var s=e?function(u,c,d,f){var h=u.coord[Math.floor(f/2)][f%2];return Mf(h,a[f])}:function(u,c,d,f){return Mf(u.value,a[f])};return n.initData(l,null,s),n.hasItemOption=!0,n}function dTt(e){e.registerComponentModel(oTt),e.registerComponentView(uTt),e.registerPreprocessor(function(t){iL(t.series,\"markArea\")&&(t.markArea=t.markArea||{})})}var fTt=function(e,t){if(t===\"all\")return{type:\"all\",title:e.getLocaleModel().get([\"legend\",\"selector\",\"all\"])};if(t===\"inverse\")return{type:\"inverse\",title:e.getLocaleModel().get([\"legend\",\"selector\",\"inverse\"])}},h9=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.layoutMode={type:\"box\",ignoreSize:!0},r}return t.prototype.init=function(r,n,a){this.mergeDefaultAndTheme(r,a),r.selected=r.selected||{},this._updateSelector(r)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),this._updateSelector(r)},t.prototype._updateSelector=function(r){var n=r.selector,a=this.ecModel;n===!0&&(n=r.selector=[\"all\",\"inverse\"]),nt(n)&&q(n,function(i,o){At(i)&&(i={type:i}),n[o]=Er(i,fTt(a,i.type))})},t.prototype.optionUpdated=function(){this._updateData(this.ecModel);var r=this._data;if(r[0]&&this.get(\"selectedMode\")===\"single\"){for(var n=!1,a=0;a<r.length;a++){var i=r[a].get(\"name\");if(this.isSelected(i)){this.select(i),n=!0;break}}!n&&this.select(r[0].get(\"name\"))}},t.prototype._updateData=function(r){var n=[],a=[];r.eachRawSeries(function(s){var u=s.name;a.push(u);var c;if(s.legendVisualProvider){var d=s.legendVisualProvider,f=d.getAllNames();r.isSeriesFiltered(s)||(a=a.concat(f)),f.length?n=n.concat(f):c=!0}else c=!0;c&&oN(s)&&n.push(s.name)}),this._availableNames=a;var i=this.get(\"data\")||n,o=Gt(),l=ot(i,function(s){return(At(s)||nn(s))&&(s={name:s}),o.get(s.name)?null:(o.set(s.name,!0),new pn(s,this,this.ecModel))},this);this._data=hn(l,function(s){return!!s})},t.prototype.getData=function(){return this._data},t.prototype.select=function(r){var n=this.option.selected,a=this.get(\"selectedMode\");if(a===\"single\"){var i=this._data;q(i,function(o){n[o.get(\"name\")]=!1})}n[r]=!0},t.prototype.unSelect=function(r){this.get(\"selectedMode\")!==\"single\"&&(this.option.selected[r]=!1)},t.prototype.toggleSelected=function(r){var n=this.option.selected;n.hasOwnProperty(r)||(n[r]=!0),this[n[r]?\"unSelect\":\"select\"](r)},t.prototype.allSelect=function(){var r=this._data,n=this.option.selected;q(r,function(a){n[a.get(\"name\",!0)]=!0})},t.prototype.inverseSelect=function(){var r=this._data,n=this.option.selected;q(r,function(a){var i=a.get(\"name\",!0);n.hasOwnProperty(i)||(n[i]=!0),n[i]=!n[i]})},t.prototype.isSelected=function(r){var n=this.option.selected;return!(n.hasOwnProperty(r)&&!n[r])&&Mr(this._availableNames,r)>=0},t.prototype.getOrient=function(){return this.get(\"orient\")===\"vertical\"?{index:1,name:\"vertical\"}:{index:0,name:\"horizontal\"}},t.type=\"legend.plain\",t.dependencies=[\"series\"],t.defaultOption={z:4,show:!0,orient:\"horizontal\",left:\"center\",top:0,align:\"auto\",backgroundColor:\"rgba(0,0,0,0)\",borderColor:\"#ccc\",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,symbolRotate:\"inherit\",symbolKeepAspect:!0,inactiveColor:\"#ccc\",inactiveBorderColor:\"#ccc\",inactiveBorderWidth:\"auto\",itemStyle:{color:\"inherit\",opacity:\"inherit\",borderColor:\"inherit\",borderWidth:\"auto\",borderCap:\"inherit\",borderJoin:\"inherit\",borderDashOffset:\"inherit\",borderMiterLimit:\"inherit\"},lineStyle:{width:\"auto\",color:\"inherit\",inactiveColor:\"#ccc\",inactiveWidth:2,opacity:\"inherit\",type:\"inherit\",cap:\"inherit\",join:\"inherit\",dashOffset:\"inherit\",miterLimit:\"inherit\"},textStyle:{color:\"#333\"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:\"sans-serif\",color:\"#666\",borderWidth:1,borderColor:\"#666\"},emphasis:{selectorLabel:{show:!0,color:\"#eee\",backgroundColor:\"#666\"}},selectorPosition:\"auto\",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},t}(jr),Av=wr,p9=q,$S=pr,I1e=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!1,r}return t.prototype.init=function(){this.group.add(this._contentGroup=new $S),this.group.add(this._selectorGroup=new $S),this._isFirstRender=!0},t.prototype.getContentGroup=function(){return this._contentGroup},t.prototype.getSelectorGroup=function(){return this._selectorGroup},t.prototype.render=function(r,n,a){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),!!r.get(\"show\",!0)){var o=r.get(\"align\"),l=r.get(\"orient\");(!o||o===\"auto\")&&(o=r.get(\"left\")===\"right\"&&l===\"vertical\"?\"right\":\"left\");var s=r.get(\"selector\",!0),u=r.get(\"selectorPosition\",!0);s&&(!u||u===\"auto\")&&(u=l===\"horizontal\"?\"end\":\"start\"),this.renderInner(o,r,n,a,s,l,u);var c=r.getBoxLayoutParams(),d={width:a.getWidth(),height:a.getHeight()},f=r.get(\"padding\"),h=Na(c,d,f),p=this.layoutInner(r,o,h,i,s,u),v=Na(rr({width:p.width,height:p.height},c),d,f);this.group.x=v.x-p.x,this.group.y=v.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=y1e(p,r))}},t.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},t.prototype.renderInner=function(r,n,a,i,o,l,s){var u=this.getContentGroup(),c=Gt(),d=n.get(\"selectedMode\"),f=[];a.eachRawSeries(function(h){!h.get(\"legendHoverLink\")&&f.push(h.id)}),p9(n.getData(),function(h,p){var v=h.get(\"name\");if(!this.newlineDisabled&&(v===\"\"||v===`\n`)){var g=new $S;g.newline=!0,u.add(g);return}var y=a.getSeriesByName(v)[0];if(!c.get(v))if(y){var b=y.getData(),x=b.getVisual(\"legendLineStyle\")||{},F=b.getVisual(\"legendIcon\"),S=b.getVisual(\"style\"),E=this._createItem(y,v,p,h,n,r,x,S,F,d,i);E.on(\"click\",Av(RQ,v,null,i,f)).on(\"mouseover\",Av(m9,y.name,null,i,f)).on(\"mouseout\",Av(v9,y.name,null,i,f)),a.ssr&&E.eachChild(function(w){var D=br(w);D.seriesIndex=y.seriesIndex,D.dataIndex=p,D.ssrType=\"legend\"}),c.set(v,!0)}else a.eachRawSeries(function(w){if(!c.get(v)&&w.legendVisualProvider){var D=w.legendVisualProvider;if(!D.containName(v))return;var A=D.indexOfName(v),_=D.getItemVisual(A,\"style\"),I=D.getItemVisual(A,\"legendIcon\"),M=Ho(_.fill);M&&M[3]===0&&(M[3]=.2,_=Xe(Xe({},_),{fill:fu(M,\"rgba\")}));var T=this._createItem(w,v,p,h,n,r,{},_,I,d,i);T.on(\"click\",Av(RQ,null,v,i,f)).on(\"mouseover\",Av(m9,null,v,i,f)).on(\"mouseout\",Av(v9,null,v,i,f)),a.ssr&&T.eachChild(function(k){var R=br(k);R.seriesIndex=w.seriesIndex,R.dataIndex=p,R.ssrType=\"legend\"}),c.set(v,!0)}},this)},this),o&&this._createSelector(o,n,i,l,s)},t.prototype._createSelector=function(r,n,a,i,o){var l=this.getSelectorGroup();p9(r,function(u){var c=u.type,d=new Jr({style:{x:0,y:0,align:\"center\",verticalAlign:\"middle\"},onclick:function(){a.dispatchAction({type:c===\"all\"?\"legendAllSelect\":\"legendInverseSelect\",legendId:n.id})}});l.add(d);var f=n.getModel(\"selectorLabel\"),h=n.getModel([\"emphasis\",\"selectorLabel\"]);Xi(d,{normal:f,emphasis:h},{defaultText:u.title}),If(d)})},t.prototype._createItem=function(r,n,a,i,o,l,s,u,c,d,f){var h=r.visualDrawType,p=o.get(\"itemWidth\"),v=o.get(\"itemHeight\"),g=o.isSelected(n),y=i.get(\"symbolRotate\"),b=i.get(\"symbolKeepAspect\"),x=i.get(\"icon\");c=x||c||\"roundRect\";var F=hTt(c,i,s,u,h,g,f),S=new $S,E=i.getModel(\"textStyle\");if(er(r.getLegendIcon)&&(!x||x===\"inherit\"))S.add(r.getLegendIcon({itemWidth:p,itemHeight:v,icon:c,iconRotate:y,itemStyle:F.itemStyle,lineStyle:F.lineStyle,symbolKeepAspect:b}));else{var w=x===\"inherit\"&&r.getData().getVisual(\"symbol\")?y===\"inherit\"?r.getData().getVisual(\"symbolRotate\"):y:0;S.add(pTt({itemWidth:p,itemHeight:v,icon:c,iconRotate:w,itemStyle:F.itemStyle,symbolKeepAspect:b}))}var D=l===\"left\"?p+5:-5,A=l,_=o.get(\"formatter\"),I=n;At(_)&&_?I=_.replace(\"{name}\",n??\"\"):er(_)&&(I=_(n));var M=g?E.getTextColor():i.get(\"inactiveColor\");S.add(new Jr({style:Mn(E,{text:I,x:D,y:v/2,fill:M,align:A,verticalAlign:\"middle\"},{inheritColor:M})}));var T=new Zr({shape:S.getBoundingRect(),style:{fill:\"transparent\"}}),k=i.getModel(\"tooltip\");return k.get(\"show\")&&Nm({el:T,componentModel:o,itemName:n,itemTooltipOption:k.option}),S.add(T),S.eachChild(function(R){R.silent=!0}),T.silent=!d,this.getContentGroup().add(S),If(S),S.__legendDataIndex=a,S},t.prototype.layoutInner=function(r,n,a,i,o,l){var s=this.getContentGroup(),u=this.getSelectorGroup();Pp(r.get(\"orient\"),s,r.get(\"itemGap\"),a.width,a.height);var c=s.getBoundingRect(),d=[-c.x,-c.y];if(u.markRedraw(),s.markRedraw(),o){Pp(\"horizontal\",u,r.get(\"selectorItemGap\",!0));var f=u.getBoundingRect(),h=[-f.x,-f.y],p=r.get(\"selectorButtonGap\",!0),v=r.getOrient().index,g=v===0?\"width\":\"height\",y=v===0?\"height\":\"width\",b=v===0?\"y\":\"x\";l===\"end\"?h[v]+=c[g]+p:d[v]+=f[g]+p,h[1-v]+=c[y]/2-f[y]/2,u.x=h[0],u.y=h[1],s.x=d[0],s.y=d[1];var x={x:0,y:0};return x[g]=c[g]+p+f[g],x[y]=Math.max(c[y],f[y]),x[b]=Math.min(0,f[b]+h[1-v]),x}else return s.x=d[0],s.y=d[1],this.group.getBoundingRect()},t.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},t.type=\"legend.plain\",t}(Wn);function hTt(e,t,r,n,a,i,o){function l(g,y){g.lineWidth===\"auto\"&&(g.lineWidth=y.lineWidth>0?2:0),p9(g,function(b,x){g[x]===\"inherit\"&&(g[x]=y[x])})}var s=t.getModel(\"itemStyle\"),u=s.getItemStyle(),c=e.lastIndexOf(\"empty\",0)===0?\"fill\":\"stroke\",d=s.getShallow(\"decal\");u.decal=!d||d===\"inherit\"?n.decal:sg(d,o),u.fill===\"inherit\"&&(u.fill=n[a]),u.stroke===\"inherit\"&&(u.stroke=n[c]),u.opacity===\"inherit\"&&(u.opacity=(a===\"fill\"?n:r).opacity),l(u,n);var f=t.getModel(\"lineStyle\"),h=f.getLineStyle();if(l(h,r),u.fill===\"auto\"&&(u.fill=n.fill),u.stroke===\"auto\"&&(u.stroke=n.fill),h.stroke===\"auto\"&&(h.stroke=n.fill),!i){var p=t.get(\"inactiveBorderWidth\"),v=u[c];u.lineWidth=p===\"auto\"?n.lineWidth>0&&v?2:0:u.lineWidth,u.fill=t.get(\"inactiveColor\"),u.stroke=t.get(\"inactiveBorderColor\"),h.stroke=f.get(\"inactiveColor\"),h.lineWidth=f.get(\"inactiveWidth\")}return{itemStyle:u,lineStyle:h}}function pTt(e){var t=e.icon||\"roundRect\",r=_a(t,0,0,e.itemWidth,e.itemHeight,e.itemStyle.fill,e.symbolKeepAspect);return r.setStyle(e.itemStyle),r.rotation=(e.iconRotate||0)*Math.PI/180,r.setOrigin([e.itemWidth/2,e.itemHeight/2]),t.indexOf(\"empty\")>-1&&(r.style.stroke=r.style.fill,r.style.fill=\"#fff\",r.style.lineWidth=2),r}function RQ(e,t,r,n){v9(e,t,r,n),r.dispatchAction({type:\"legendToggleSelect\",name:e??t}),m9(e,t,r,n)}function k1e(e){for(var t=e.getZr().storage.getDisplayList(),r,n=0,a=t.length;n<a&&!(r=t[n].states.emphasis);)n++;return r&&r.hoverLayer}function m9(e,t,r,n){k1e(r)||r.dispatchAction({type:\"highlight\",seriesName:e,name:t,excludeSeriesId:n})}function v9(e,t,r,n){k1e(r)||r.dispatchAction({type:\"downplay\",seriesName:e,name:t,excludeSeriesId:n})}function mTt(e){var t=e.findComponents({mainType:\"legend\"});t&&t.length&&e.filterSeries(function(r){for(var n=0;n<t.length;n++)if(!t[n].isSelected(r.name))return!1;return!0})}function ty(e,t,r){var n=e===\"allSelect\"||e===\"inverseSelect\",a={},i=[];r.eachComponent({mainType:\"legend\",query:t},function(l){n?l[e]():l[e](t.name),MQ(l,a),i.push(l.componentIndex)});var o={};return r.eachComponent(\"legend\",function(l){q(a,function(s,u){l[s?\"select\":\"unSelect\"](u)}),MQ(l,o)}),n?{selected:o,legendIndex:i}:{name:t.name,selected:o}}function MQ(e,t){var r=t||{};return q(e.getData(),function(n){var a=n.get(\"name\");if(!(a===`\n`||a===\"\")){var i=e.isSelected(a);$t(r,a)?r[a]=r[a]&&i:r[a]=i}}),r}function vTt(e){e.registerAction(\"legendToggleSelect\",\"legendselectchanged\",wr(ty,\"toggleSelected\")),e.registerAction(\"legendAllSelect\",\"legendselectall\",wr(ty,\"allSelect\")),e.registerAction(\"legendInverseSelect\",\"legendinverseselect\",wr(ty,\"inverseSelect\")),e.registerAction(\"legendSelect\",\"legendselected\",wr(ty,\"select\")),e.registerAction(\"legendUnSelect\",\"legendunselected\",wr(ty,\"unSelect\"))}function R1e(e){e.registerComponentModel(h9),e.registerComponentView(I1e),e.registerProcessor(e.PRIORITY.PROCESSOR.SERIES_FILTER,mTt),e.registerSubTypeDefaulter(\"legend\",function(){return\"plain\"}),vTt(e)}var gTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.setScrollDataIndex=function(r){this.option.scrollDataIndex=r},t.prototype.init=function(r,n,a){var i=Qg(r);e.prototype.init.call(this,r,n,a),PQ(this,r,i)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),PQ(this,this.option,r)},t.type=\"legend.scroll\",t.defaultOption=uh(h9.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:\"end\",pageFormatter:\"{current}/{total}\",pageIcons:{horizontal:[\"M0,0L12,-10L12,10z\",\"M0,0L-12,-10L-12,10z\"],vertical:[\"M0,0L20,0L10,-20z\",\"M0,0L20,0L10,20z\"]},pageIconColor:\"#2f4554\",pageIconInactiveColor:\"#aaa\",pageIconSize:15,pageTextStyle:{color:\"#333\"},animationDurationUpdate:800}),t}(h9);function PQ(e,t,r){var n=e.getOrient(),a=[1,1];a[n.index]=0,Xf(t,r,{type:\"box\",ignoreSize:!!a})}var OQ=pr,bk=[\"width\",\"height\"],xk=[\"x\",\"y\"],yTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.newlineDisabled=!0,r._currentIndex=0,r}return t.prototype.init=function(){e.prototype.init.call(this),this.group.add(this._containerGroup=new OQ),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new OQ)},t.prototype.resetInner=function(){e.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},t.prototype.renderInner=function(r,n,a,i,o,l,s){var u=this;e.prototype.renderInner.call(this,r,n,a,i,o,l,s);var c=this._controllerGroup,d=n.get(\"pageIconSize\",!0),f=nt(d)?d:[d,d];p(\"pagePrev\",0);var h=n.getModel(\"pageTextStyle\");c.add(new Jr({name:\"pageText\",style:{text:\"xx/xx\",fill:h.getTextColor(),font:h.getFont(),verticalAlign:\"middle\",align:\"center\"},silent:!0})),p(\"pageNext\",1);function p(v,g){var y=v+\"DataIndex\",b=Xg(n.get(\"pageIcons\",!0)[n.getOrient().name][g],{onclick:Pt(u._pageGo,u,y,n,i)},{x:-f[0]/2,y:-f[1]/2,width:f[0],height:f[1]});b.name=v,c.add(b)}},t.prototype.layoutInner=function(r,n,a,i,o,l){var s=this.getSelectorGroup(),u=r.getOrient().index,c=bk[u],d=xk[u],f=bk[1-u],h=xk[1-u];o&&Pp(\"horizontal\",s,r.get(\"selectorItemGap\",!0));var p=r.get(\"selectorButtonGap\",!0),v=s.getBoundingRect(),g=[-v.x,-v.y],y=lr(a);o&&(y[c]=a[c]-v[c]-p);var b=this._layoutContentAndController(r,i,y,u,c,f,h,d);if(o){if(l===\"end\")g[u]+=b[c]+p;else{var x=v[c]+p;g[u]-=x,b[d]-=x}b[c]+=v[c]+p,g[1-u]+=b[h]+b[f]/2-v[f]/2,b[f]=Math.max(b[f],v[f]),b[h]=Math.min(b[h],v[h]+g[1-u]),s.x=g[0],s.y=g[1],s.markRedraw()}return b},t.prototype._layoutContentAndController=function(r,n,a,i,o,l,s,u){var c=this.getContentGroup(),d=this._containerGroup,f=this._controllerGroup;Pp(r.get(\"orient\"),c,r.get(\"itemGap\"),i?a.width:null,i?null:a.height),Pp(\"horizontal\",f,r.get(\"pageButtonItemGap\",!0));var h=c.getBoundingRect(),p=f.getBoundingRect(),v=this._showController=h[o]>a[o],g=[-h.x,-h.y];n||(g[i]=c[u]);var y=[0,0],b=[-p.x,-p.y],x=Fr(r.get(\"pageButtonGap\",!0),r.get(\"itemGap\",!0));if(v){var F=r.get(\"pageButtonPosition\",!0);F===\"end\"?b[i]+=a[o]-p[o]:y[i]+=p[o]+x}b[1-i]+=h[l]/2-p[l]/2,c.setPosition(g),d.setPosition(y),f.setPosition(b);var S={x:0,y:0};if(S[o]=v?a[o]:h[o],S[l]=Math.max(h[l],p[l]),S[s]=Math.min(0,p[s]+b[1-i]),d.__rectSize=a[o],v){var E={x:0,y:0};E[o]=Math.max(a[o]-p[o]-x,0),E[l]=S[l],d.setClipPath(new Zr({shape:E})),d.__rectSize=E[o]}else f.eachChild(function(D){D.attr({invisible:!0,silent:!0})});var w=this._getPageInfo(r);return w.pageIndex!=null&&cn(c,{x:w.contentPosition[0],y:w.contentPosition[1]},v?r:null),this._updatePageInfoView(r,w),S},t.prototype._pageGo=function(r,n,a){var i=this._getPageInfo(n)[r];i!=null&&a.dispatchAction({type:\"legendScroll\",scrollDataIndex:i,legendId:n.id})},t.prototype._updatePageInfoView=function(r,n){var a=this._controllerGroup;q([\"pagePrev\",\"pageNext\"],function(c){var d=c+\"DataIndex\",f=n[d]!=null,h=a.childOfName(c);h&&(h.setStyle(\"fill\",f?r.get(\"pageIconColor\",!0):r.get(\"pageIconInactiveColor\",!0)),h.cursor=f?\"pointer\":\"default\")});var i=a.childOfName(\"pageText\"),o=r.get(\"pageFormatter\"),l=n.pageIndex,s=l!=null?l+1:0,u=n.pageCount;i&&o&&i.setStyle(\"text\",At(o)?o.replace(\"{current}\",s==null?\"\":s+\"\").replace(\"{total}\",u==null?\"\":u+\"\"):o({current:s,total:u}))},t.prototype._getPageInfo=function(r){var n=r.get(\"scrollDataIndex\",!0),a=this.getContentGroup(),i=this._containerGroup.__rectSize,o=r.getOrient().index,l=bk[o],s=xk[o],u=this._findTargetItemIndex(n),c=a.children(),d=c[u],f=c.length,h=f?1:0,p={contentPosition:[a.x,a.y],pageCount:h,pageIndex:h-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!d)return p;var v=F(d);p.contentPosition[o]=-v.s;for(var g=u+1,y=v,b=v,x=null;g<=f;++g)x=F(c[g]),(!x&&b.e>y.s+i||x&&!S(x,y.s))&&(b.i>y.i?y=b:y=x,y&&(p.pageNextDataIndex==null&&(p.pageNextDataIndex=y.i),++p.pageCount)),b=x;for(var g=u-1,y=v,b=v,x=null;g>=-1;--g)x=F(c[g]),(!x||!S(b,x.s))&&y.i<b.i&&(b=y,p.pagePrevDataIndex==null&&(p.pagePrevDataIndex=y.i),++p.pageCount,++p.pageIndex),y=x;return p;function F(E){if(E){var w=E.getBoundingRect(),D=w[s]+E[s];return{s:D,e:D+w[l],i:E.__legendDataIndex}}}function S(E,w){return E.e>=w&&E.s<=w+i}},t.prototype._findTargetItemIndex=function(r){if(!this._showController)return 0;var n,a=this.getContentGroup(),i;return a.eachChild(function(o,l){var s=o.__legendDataIndex;i==null&&s!=null&&(i=l),s===r&&(n=l)}),n??i},t.type=\"legend.scroll\",t}(I1e);function bTt(e){e.registerAction(\"legendScroll\",\"legendscroll\",function(t,r){var n=t.scrollDataIndex;n!=null&&r.eachComponent({mainType:\"legend\",subType:\"scroll\",query:t},function(a){a.setScrollDataIndex(n)})})}function xTt(e){Nr(R1e),e.registerComponentModel(gTt),e.registerComponentView(yTt),bTt(e)}function CTt(e){Nr(R1e),Nr(xTt)}var FTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"dataZoom.inside\",t.defaultOption=uh(Y2.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),t}(Y2),sL=rn();function STt(e,t,r){sL(e).coordSysRecordMap.each(function(n){var a=n.dataZoomInfoMap.get(t.uid);a&&(a.getRange=r)})}function wTt(e,t){for(var r=sL(e).coordSysRecordMap,n=r.keys(),a=0;a<n.length;a++){var i=n[a],o=r.get(i),l=o.dataZoomInfoMap;if(l){var s=t.uid,u=l.get(s);u&&(l.removeKey(s),l.keys().length||M1e(r,o))}}}function M1e(e,t){if(t){e.removeKey(t.model.uid);var r=t.controller;r&&r.dispose()}}function ETt(e,t){var r={model:t,containsPoint:wr(ATt,t),dispatchAction:wr(DTt,e),dataZoomInfoMap:null,controller:null},n=r.controller=new mC(e.getZr());return q([\"pan\",\"zoom\",\"scrollMove\"],function(a){n.on(a,function(i){var o=[];r.dataZoomInfoMap.each(function(l){if(i.isAvailableBehavior(l.model.option)){var s=(l.getRange||{})[a],u=s&&s(l.dzReferCoordSysInfo,r.model.mainType,r.controller,i);!l.model.get(\"disabled\",!0)&&u&&o.push({dataZoomId:l.model.id,start:u[0],end:u[1]})}}),o.length&&r.dispatchAction(o)})}),r}function DTt(e,t){e.isDisposed()||e.dispatchAction({type:\"dataZoom\",animation:{easing:\"cubicOut\",duration:100},batch:t})}function ATt(e,t,r,n){return e.coordinateSystem.containPoint([r,n])}function _Tt(e){var t,r=\"type_\",n={type_true:2,type_move:1,type_false:0,type_undefined:-1},a=!0;return e.each(function(i){var o=i.model,l=o.get(\"disabled\",!0)?!1:o.get(\"zoomLock\",!0)?\"move\":!0;n[r+l]>n[r+t]&&(t=l),a=a&&o.get(\"preventDefaultMouseMove\",!0)}),{controlType:t,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!a}}}function TTt(e){e.registerProcessor(e.PRIORITY.PROCESSOR.FILTER,function(t,r){var n=sL(r),a=n.coordSysRecordMap||(n.coordSysRecordMap=Gt());a.each(function(i){i.dataZoomInfoMap=null}),t.eachComponent({mainType:\"dataZoom\",subType:\"inside\"},function(i){var o=m1e(i);q(o.infoList,function(l){var s=l.model.uid,u=a.get(s)||a.set(s,ETt(r,l.model)),c=u.dataZoomInfoMap||(u.dataZoomInfoMap=Gt());c.set(i.uid,{dzReferCoordSysInfo:l,model:i,getRange:null})})}),a.each(function(i){var o=i.controller,l,s=i.dataZoomInfoMap;if(s){var u=s.keys()[0];u!=null&&(l=s.get(u))}if(!l){M1e(a,i);return}var c=_Tt(s);o.enable(c.controlType,c.opt),o.setPointerChecker(i.containsPoint),n1(i,\"dispatchAction\",l.model.get(\"throttle\",!0),\"fixRate\")})})}var ITt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"dataZoom.inside\",r}return t.prototype.render=function(r,n,a){if(e.prototype.render.apply(this,arguments),r.noTarget()){this._clear();return}this.range=r.getPercentRange(),STt(a,r,{pan:Pt(Ck.pan,this),zoom:Pt(Ck.zoom,this),scrollMove:Pt(Ck.scrollMove,this)})},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){wTt(this.api,this.dataZoomModel),this.range=null},t.type=\"dataZoom.inside\",t}(Q$),Ck={zoom:function(e,t,r,n){var a=this.range,i=a.slice(),o=e.axisModels[0];if(o){var l=Fk[t](null,[n.originX,n.originY],o,r,e),s=(l.signal>0?l.pixelStart+l.pixelLength-l.pixel:l.pixel-l.pixelStart)/l.pixelLength*(i[1]-i[0])+i[0],u=Math.max(1/n.scale,0);i[0]=(i[0]-s)*u+s,i[1]=(i[1]-s)*u+s;var c=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(Vm(0,i,[0,100],0,c.minSpan,c.maxSpan),this.range=i,a[0]!==i[0]||a[1]!==i[1])return i}},pan:BQ(function(e,t,r,n,a,i){var o=Fk[n]([i.oldX,i.oldY],[i.newX,i.newY],t,a,r);return o.signal*(e[1]-e[0])*o.pixel/o.pixelLength}),scrollMove:BQ(function(e,t,r,n,a,i){var o=Fk[n]([0,0],[i.scrollDelta,i.scrollDelta],t,a,r);return o.signal*(e[1]-e[0])*i.scrollDelta})};function BQ(e){return function(t,r,n,a){var i=this.range,o=i.slice(),l=t.axisModels[0];if(l){var s=e(o,l,t,r,n,a);if(Vm(s,o,[0,100],\"all\"),this.range=o,i[0]!==o[0]||i[1]!==o[1])return o}}}var Fk={grid:function(e,t,r,n,a){var i=r.axis,o={},l=a.model.coordinateSystem.getRect();return e=e||[0,0],i.dim===\"x\"?(o.pixel=t[0]-e[0],o.pixelLength=l.width,o.pixelStart=l.x,o.signal=i.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=l.height,o.pixelStart=l.y,o.signal=i.inverse?-1:1),o},polar:function(e,t,r,n,a){var i=r.axis,o={},l=a.model.coordinateSystem,s=l.getRadiusAxis().getExtent(),u=l.getAngleAxis().getExtent();return e=e?l.pointToCoord(e):[0,0],t=l.pointToCoord(t),r.mainType===\"radiusAxis\"?(o.pixel=t[0]-e[0],o.pixelLength=s[1]-s[0],o.pixelStart=s[0],o.signal=i.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=u[1]-u[0],o.pixelStart=u[0],o.signal=i.inverse?-1:1),o},singleAxis:function(e,t,r,n,a){var i=r.axis,o=a.model.coordinateSystem.getRect(),l={};return e=e||[0,0],i.orient===\"horizontal\"?(l.pixel=t[0]-e[0],l.pixelLength=o.width,l.pixelStart=o.x,l.signal=i.inverse?1:-1):(l.pixel=t[1]-e[1],l.pixelLength=o.height,l.pixelStart=o.y,l.signal=i.inverse?-1:1),l}};function P1e(e){eL(e),e.registerComponentModel(FTt),e.registerComponentView(ITt),TTt(e)}var kTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.type=\"dataZoom.slider\",t.layoutMode=\"box\",t.defaultOption=uh(Y2.defaultOption,{show:!0,right:\"ph\",top:\"ph\",width:\"ph\",height:\"ph\",left:null,bottom:null,borderColor:\"#d2dbee\",borderRadius:3,backgroundColor:\"rgba(47,69,84,0)\",dataBackground:{lineStyle:{color:\"#d2dbee\",width:.5},areaStyle:{color:\"#d2dbee\",opacity:.2}},selectedDataBackground:{lineStyle:{color:\"#8fb0f7\",width:.5},areaStyle:{color:\"#8fb0f7\",opacity:.2}},fillerColor:\"rgba(135,175,274,0.2)\",handleIcon:\"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z\",handleSize:\"100%\",handleStyle:{color:\"#fff\",borderColor:\"#ACB8D1\"},moveHandleSize:7,moveHandleIcon:\"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z\",moveHandleStyle:{color:\"#D2DBEE\",opacity:.7},showDetail:!0,showDataShadow:\"auto\",realtime:!0,zoomLock:!1,textStyle:{color:\"#6E7079\"},brushSelect:!0,brushStyle:{color:\"rgba(135,175,274,0.15)\"},emphasis:{handleLabel:{show:!0},handleStyle:{borderColor:\"#8FB0F7\"},moveHandleStyle:{color:\"#8FB0F7\"}}}),t}(Y2),ry=Zr,NQ=7,RTt=1,Sk=30,MTt=7,ny=\"horizontal\",$Q=\"vertical\",PTt=5,OTt=[\"line\",\"bar\",\"candlestick\",\"scatter\"],BTt={easing:\"cubicOut\",duration:100,delay:0},NTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._displayables={},r}return t.prototype.init=function(r,n){this.api=n,this._onBrush=Pt(this._onBrush,this),this._onBrushEnd=Pt(this._onBrushEnd,this)},t.prototype.render=function(r,n,a,i){if(e.prototype.render.apply(this,arguments),n1(this,\"_dispatchZoomAction\",r.get(\"throttle\"),\"fixRate\"),this._orient=r.getOrient(),r.get(\"show\")===!1){this.group.removeAll();return}if(r.noTarget()){this._clear(),this.group.removeAll();return}(!i||i.type!==\"dataZoom\"||i.from!==this.uid)&&this._buildView(),this._updateView()},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){O2(this,\"_dispatchZoomAction\");var r=this.api.getZr();r.off(\"mousemove\",this._onBrush),r.off(\"mouseup\",this._onBrushEnd)},t.prototype._buildView=function(){var r=this.group;r.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var n=this._displayables.sliderGroup=new pr;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),r.add(n),this._positionGroup()},t.prototype._resetLocation=function(){var r=this.dataZoomModel,n=this.api,a=r.get(\"brushSelect\"),i=a?MTt:0,o=this._findCoordRect(),l={width:n.getWidth(),height:n.getHeight()},s=this._orient===ny?{right:l.width-o.x-o.width,top:l.height-Sk-NQ-i,width:o.width,height:Sk}:{right:NQ,top:o.y,width:Sk,height:o.height},u=Qg(r.option);q([\"right\",\"top\",\"width\",\"height\"],function(d){u[d]===\"ph\"&&(u[d]=s[d])});var c=Na(u,l);this._location={x:c.x,y:c.y},this._size=[c.width,c.height],this._orient===$Q&&this._size.reverse()},t.prototype._positionGroup=function(){var r=this.group,n=this._location,a=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),o=i&&i.get(\"inverse\"),l=this._displayables.sliderGroup,s=(this._dataShadowInfo||{}).otherAxisInverse;l.attr(a===ny&&!o?{scaleY:s?1:-1,scaleX:1}:a===ny&&o?{scaleY:s?1:-1,scaleX:-1}:a===$Q&&!o?{scaleY:s?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:s?-1:1,scaleX:-1,rotation:Math.PI/2});var u=r.getBoundingRect([l]);r.x=n.x-u.x,r.y=n.y-u.y,r.markRedraw()},t.prototype._getViewExtent=function(){return[0,this._size[0]]},t.prototype._renderBackground=function(){var r=this.dataZoomModel,n=this._size,a=this._displayables.sliderGroup,i=r.get(\"brushSelect\");a.add(new ry({silent:!0,shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:r.get(\"backgroundColor\")},z2:-40}));var o=new ry({shape:{x:0,y:0,width:n[0],height:n[1]},style:{fill:\"transparent\"},z2:0,onclick:Pt(this._onClickPanel,this)}),l=this.api.getZr();i?(o.on(\"mousedown\",this._onBrushStart,this),o.cursor=\"crosshair\",l.on(\"mousemove\",this._onBrush),l.on(\"mouseup\",this._onBrushEnd)):(l.off(\"mousemove\",this._onBrush),l.off(\"mouseup\",this._onBrushEnd)),a.add(o)},t.prototype._renderDataShadow=function(){var r=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!r)return;var n=this._size,a=this._shadowSize||[],i=r.series,o=i.getRawData(),l=i.getShadowDim&&i.getShadowDim(),s=l&&o.getDimensionInfo(l)?i.getShadowDim():r.otherDim;if(s==null)return;var u=this._shadowPolygonPts,c=this._shadowPolylinePts;if(o!==this._shadowData||s!==this._shadowDim||n[0]!==a[0]||n[1]!==a[1]){var d=o.getDataExtent(s),f=(d[1]-d[0])*.3;d=[d[0]-f,d[1]+f];var h=[0,n[1]],p=[0,n[0]],v=[[n[0],0],[0,0]],g=[],y=p[1]/(o.count()-1),b=0,x=Math.round(o.count()/n[0]),F;o.each([s],function(A,_){if(x>0&&_%x){b+=y;return}var I=A==null||isNaN(A)||A===\"\",M=I?0:yn(A,d,h,!0);I&&!F&&_?(v.push([v[v.length-1][0],0]),g.push([g[g.length-1][0],0])):!I&&F&&(v.push([b,0]),g.push([b,0])),v.push([b,M]),g.push([b,M]),b+=y,F=I}),u=this._shadowPolygonPts=v,c=this._shadowPolylinePts=g}this._shadowData=o,this._shadowDim=s,this._shadowSize=[n[0],n[1]];var S=this.dataZoomModel;function E(A){var _=S.getModel(A?\"selectedDataBackground\":\"dataBackground\"),I=new pr,M=new wo({shape:{points:u},segmentIgnoreThreshold:1,style:_.getModel(\"areaStyle\").getAreaStyle(),silent:!0,z2:-20}),T=new To({shape:{points:c},segmentIgnoreThreshold:1,style:_.getModel(\"lineStyle\").getLineStyle(),silent:!0,z2:-19});return I.add(M),I.add(T),I}for(var w=0;w<3;w++){var D=E(w===1);this._displayables.sliderGroup.add(D),this._displayables.dataShadowSegs.push(D)}},t.prototype._prepareDataShadowInfo=function(){var r=this.dataZoomModel,n=r.get(\"showDataShadow\");if(n!==!1){var a,i=this.ecModel;return r.eachTargetAxis(function(o,l){var s=r.getAxisProxy(o,l).getTargetSeriesModels();q(s,function(u){if(!a&&!(n!==!0&&Mr(OTt,u.get(\"type\"))<0)){var c=i.getComponent(gf(o),l).axis,d=$Tt(o),f,h=u.coordinateSystem;d!=null&&h.getOtherAxis&&(f=h.getOtherAxis(c).inverse),d=u.getData().mapDimension(d),a={thisAxis:c,series:u,thisDim:o,otherDim:d,otherAxisInverse:f}}},this)},this),a}},t.prototype._renderHandle=function(){var r=this.group,n=this._displayables,a=n.handles=[null,null],i=n.handleLabels=[null,null],o=this._displayables.sliderGroup,l=this._size,s=this.dataZoomModel,u=this.api,c=s.get(\"borderRadius\")||0,d=s.get(\"brushSelect\"),f=n.filler=new ry({silent:d,style:{fill:s.get(\"fillerColor\")},textConfig:{position:\"inside\"}});o.add(f),o.add(new ry({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:l[0],height:l[1],r:c},style:{stroke:s.get(\"dataBackgroundColor\")||s.get(\"borderColor\"),lineWidth:RTt,fill:\"rgba(0,0,0,0)\"}})),q([0,1],function(x){var F=s.get(\"handleIcon\");!G3[F]&&F.indexOf(\"path://\")<0&&F.indexOf(\"image://\")<0&&(F=\"path://\"+F);var S=_a(F,-1,0,2,2,null,!0);S.attr({cursor:LQ(this._orient),draggable:!0,drift:Pt(this._onDragMove,this,x),ondragend:Pt(this._onDragEnd,this),onmouseover:Pt(this._showDataInfo,this,!0),onmouseout:Pt(this._showDataInfo,this,!1),z2:5});var E=S.getBoundingRect(),w=s.get(\"handleSize\");this._handleHeight=Ft(w,this._size[1]),this._handleWidth=E.width/E.height*this._handleHeight,S.setStyle(s.getModel(\"handleStyle\").getItemStyle()),S.style.strokeNoScale=!0,S.rectHover=!0,S.ensureState(\"emphasis\").style=s.getModel([\"emphasis\",\"handleStyle\"]).getItemStyle(),If(S);var D=s.get(\"handleColor\");D!=null&&(S.style.fill=D),o.add(a[x]=S);var A=s.getModel(\"textStyle\"),_=s.get(\"handleLabel\")||{},I=_.show||!1;r.add(i[x]=new Jr({silent:!0,invisible:!I,style:Mn(A,{x:0,y:0,text:\"\",verticalAlign:\"middle\",align:\"center\",fill:A.getTextColor(),font:A.getFont()}),z2:10}))},this);var h=f;if(d){var p=Ft(s.get(\"moveHandleSize\"),l[1]),v=n.moveHandle=new Zr({style:s.getModel(\"moveHandleStyle\").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:l[1]-.5,height:p}}),g=p*.8,y=n.moveHandleIcon=_a(s.get(\"moveHandleIcon\"),-g/2,-g/2,g,g,\"#fff\",!0);y.silent=!0,y.y=l[1]+p/2-.5,v.ensureState(\"emphasis\").style=s.getModel([\"emphasis\",\"moveHandleStyle\"]).getItemStyle();var b=Math.min(l[1]/2,Math.max(p,10));h=n.moveZone=new Zr({invisible:!0,shape:{y:l[1]-b,height:p+b}}),h.on(\"mouseover\",function(){u.enterEmphasis(v)}).on(\"mouseout\",function(){u.leaveEmphasis(v)}),o.add(v),o.add(y),o.add(h)}h.attr({draggable:!0,cursor:LQ(this._orient),drift:Pt(this._onDragMove,this,\"all\"),ondragstart:Pt(this._showDataInfo,this,!0),ondragend:Pt(this._onDragEnd,this),onmouseover:Pt(this._showDataInfo,this,!0),onmouseout:Pt(this._showDataInfo,this,!1)})},t.prototype._resetInterval=function(){var r=this._range=this.dataZoomModel.getPercentRange(),n=this._getViewExtent();this._handleEnds=[yn(r[0],[0,100],n,!0),yn(r[1],[0,100],n,!0)]},t.prototype._updateInterval=function(r,n){var a=this.dataZoomModel,i=this._handleEnds,o=this._getViewExtent(),l=a.findRepresentativeAxisProxy().getMinMaxSpan(),s=[0,100];Vm(n,i,o,a.get(\"zoomLock\")?\"all\":r,l.minSpan!=null?yn(l.minSpan,s,o,!0):null,l.maxSpan!=null?yn(l.maxSpan,s,o,!0):null);var u=this._range,c=this._range=Ml([yn(i[0],o,s,!0),yn(i[1],o,s,!0)]);return!u||u[0]!==c[0]||u[1]!==c[1]},t.prototype._updateView=function(r){var n=this._displayables,a=this._handleEnds,i=Ml(a.slice()),o=this._size;q([0,1],function(h){var p=n.handles[h],v=this._handleHeight;p.attr({scaleX:v/2,scaleY:v/2,x:a[h]+(h?-1:1),y:o[1]/2-v/2})},this),n.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:o[1]});var l={x:i[0],width:i[1]-i[0]};n.moveHandle&&(n.moveHandle.setShape(l),n.moveZone.setShape(l),n.moveZone.getBoundingRect(),n.moveHandleIcon&&n.moveHandleIcon.attr(\"x\",l.x+l.width/2));for(var s=n.dataShadowSegs,u=[0,i[0],i[1],o[0]],c=0;c<s.length;c++){var d=s[c],f=d.getClipPath();f||(f=new Zr,d.setClipPath(f)),f.setShape({x:u[c],y:0,width:u[c+1]-u[c],height:o[1]})}this._updateDataInfo(r)},t.prototype._updateDataInfo=function(r){var n=this.dataZoomModel,a=this._displayables,i=a.handleLabels,o=this._orient,l=[\"\",\"\"];if(n.get(\"showDetail\")){var s=n.findRepresentativeAxisProxy();if(s){var u=s.getAxisModel().axis,c=this._range,d=r?s.calculateDataWindow({start:c[0],end:c[1]}).valueWindow:s.getDataValueWindow();l=[this._formatLabel(d[0],u),this._formatLabel(d[1],u)]}}var f=Ml(this._handleEnds.slice());h.call(this,0),h.call(this,1);function h(p){var v=kf(a.handles[p].parent,this.group),g=eA(p===0?\"right\":\"left\",v),y=this._handleWidth/2+PTt,b=hu([f[p]+(p===0?-y:y),this._size[1]/2],v);i[p].setStyle({x:b[0],y:b[1],verticalAlign:o===ny?\"middle\":g,align:o===ny?g:\"center\",text:l[p]})}},t.prototype._formatLabel=function(r,n){var a=this.dataZoomModel,i=a.get(\"labelFormatter\"),o=a.get(\"labelPrecision\");(o==null||o===\"auto\")&&(o=n.getPixelPrecision());var l=r==null||isNaN(r)?\"\":n.type===\"category\"||n.type===\"time\"?n.scale.getLabel({value:Math.round(r)}):r.toFixed(Math.min(o,20));return er(i)?i(r,l):At(i)?i.replace(\"{value}\",l):l},t.prototype._showDataInfo=function(r){var n=this.dataZoomModel.get(\"handleLabel\")||{},a=n.show||!1,i=this.dataZoomModel.getModel([\"emphasis\",\"handleLabel\"]),o=i.get(\"show\")||!1,l=r||this._dragging?o:a,s=this._displayables,u=s.handleLabels;u[0].attr(\"invisible\",!l),u[1].attr(\"invisible\",!l),s.moveHandle&&this.api[l?\"enterEmphasis\":\"leaveEmphasis\"](s.moveHandle,1)},t.prototype._onDragMove=function(r,n,a,i){this._dragging=!0,dd(i.event);var o=this._displayables.sliderGroup.getLocalTransform(),l=hu([n,a],o,!0),s=this._updateInterval(r,l[0]),u=this.dataZoomModel.get(\"realtime\");this._updateView(!u),s&&u&&this._dispatchZoomAction(!0)},t.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1);var r=this.dataZoomModel.get(\"realtime\");!r&&this._dispatchZoomAction(!1)},t.prototype._onClickPanel=function(r){var n=this._size,a=this._displayables.sliderGroup.transformCoordToLocal(r.offsetX,r.offsetY);if(!(a[0]<0||a[0]>n[0]||a[1]<0||a[1]>n[1])){var i=this._handleEnds,o=(i[0]+i[1])/2,l=this._updateInterval(\"all\",a[0]-o);this._updateView(),l&&this._dispatchZoomAction(!1)}},t.prototype._onBrushStart=function(r){var n=r.offsetX,a=r.offsetY;this._brushStart=new Ar(n,a),this._brushing=!0,this._brushStartTime=+new Date},t.prototype._onBrushEnd=function(r){if(this._brushing){var n=this._displayables.brushRect;if(this._brushing=!1,!!n){n.attr(\"ignore\",!0);var a=n.shape,i=+new Date;if(!(i-this._brushStartTime<200&&Math.abs(a.width)<5)){var o=this._getViewExtent(),l=[0,100];this._range=Ml([yn(a.x,o,l,!0),yn(a.x+a.width,o,l,!0)]),this._handleEnds=[a.x,a.x+a.width],this._updateView(),this._dispatchZoomAction(!1)}}}},t.prototype._onBrush=function(r){this._brushing&&(dd(r.event),this._updateBrushRect(r.offsetX,r.offsetY))},t.prototype._updateBrushRect=function(r,n){var a=this._displayables,i=this.dataZoomModel,o=a.brushRect;o||(o=a.brushRect=new ry({silent:!0,style:i.getModel(\"brushStyle\").getItemStyle()}),a.sliderGroup.add(o)),o.attr(\"ignore\",!1);var l=this._brushStart,s=this._displayables.sliderGroup,u=s.transformCoordToLocal(r,n),c=s.transformCoordToLocal(l.x,l.y),d=this._size;u[0]=Math.max(Math.min(d[0],u[0]),0),o.setShape({x:c[0],y:0,width:u[0]-c[0],height:d[1]})},t.prototype._dispatchZoomAction=function(r){var n=this._range;this.api.dispatchAction({type:\"dataZoom\",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:r?BTt:null,start:n[0],end:n[1]})},t.prototype._findCoordRect=function(){var r,n=m1e(this.dataZoomModel).infoList;if(!r&&n.length){var a=n[0].model.coordinateSystem;r=a.getRect&&a.getRect()}if(!r){var i=this.api.getWidth(),o=this.api.getHeight();r={x:i*.2,y:o*.2,width:i*.6,height:o*.6}}return r},t.type=\"dataZoom.slider\",t}(Q$);function $Tt(e){var t={x:\"y\",y:\"x\",radius:\"angle\",angle:\"radius\"};return t[e]}function LQ(e){return e===\"vertical\"?\"ns-resize\":\"ew-resize\"}function O1e(e){e.registerComponentModel(kTt),e.registerComponentView(NTt),eL(e)}function LTt(e){Nr(P1e),Nr(O1e)}var B1e={get:function(e,t,r){var n=lr((jTt[e]||{})[t]);return r&&nt(n)?n[n.length-1]:n}},jTt={color:{active:[\"#006edd\",\"#e0ffff\"],inactive:[\"rgba(0,0,0,0)\"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:[\"circle\",\"roundRect\",\"diamond\"],inactive:[\"none\"]},symbolSize:{active:[10,50],inactive:[0,0]}},jQ=di.mapVisual,zTt=di.eachVisual,HTt=nt,zQ=q,VTt=Ml,WTt=yn,g4=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.stateList=[\"inRange\",\"outOfRange\"],r.replacableOptionKeys=[\"inRange\",\"outOfRange\",\"target\",\"controller\",\"color\"],r.layoutMode={type:\"box\",ignoreSize:!0},r.dataBound=[-1/0,1/0],r.targetVisuals={},r.controllerVisuals={},r}return t.prototype.init=function(r,n,a){this.mergeDefaultAndTheme(r,a)},t.prototype.optionUpdated=function(r,n){var a=this.option;!n&&E1e(a,r,this.replacableOptionKeys),this.textStyleModel=this.getModel(\"textStyle\"),this.resetItemSize(),this.completeVisualOption()},t.prototype.resetVisual=function(r){var n=this.stateList;r=Pt(r,this),this.controllerVisuals=c9(this.option.controller,n,r),this.targetVisuals=c9(this.option.target,n,r)},t.prototype.getItemSymbol=function(){return null},t.prototype.getTargetSeriesIndices=function(){var r=this.option.seriesIndex,n=[];return r==null||r===\"all\"?this.ecModel.eachSeries(function(a,i){n.push(i)}):n=An(r),n},t.prototype.eachTargetSeries=function(r,n){q(this.getTargetSeriesIndices(),function(a){var i=this.ecModel.getSeriesByIndex(a);i&&r.call(n,i)},this)},t.prototype.isTargetSeries=function(r){var n=!1;return this.eachTargetSeries(function(a){a===r&&(n=!0)}),n},t.prototype.formatValueText=function(r,n,a){var i=this.option,o=i.precision,l=this.dataBound,s=i.formatter,u;a=a||[\"<\",\">\"],nt(r)&&(r=r.slice(),u=!0);var c=n?r:u?[d(r[0]),d(r[1])]:d(r);if(At(s))return s.replace(\"{value}\",u?c[0]:c).replace(\"{value2}\",u?c[1]:c);if(er(s))return u?s(r[0],r[1]):s(r);if(u)return r[0]===l[0]?a[0]+\" \"+c[1]:r[1]===l[1]?a[1]+\" \"+c[0]:c[0]+\" - \"+c[1];return c;function d(f){return f===l[0]?\"min\":f===l[1]?\"max\":(+f).toFixed(Math.min(o,20))}},t.prototype.resetExtent=function(){var r=this.option,n=VTt([r.min,r.max]);this._dataExtent=n},t.prototype.getDataDimensionIndex=function(r){var n=this.option.dimension;if(n!=null)return r.getDimensionIndex(n);for(var a=r.dimensions,i=a.length-1;i>=0;i--){var o=a[i],l=r.getDimensionInfo(o);if(!l.isCalculationCoord)return l.storeDimIndex}},t.prototype.getExtent=function(){return this._dataExtent.slice()},t.prototype.completeVisualOption=function(){var r=this.ecModel,n=this.option,a={inRange:n.inRange,outOfRange:n.outOfRange},i=n.target||(n.target={}),o=n.controller||(n.controller={});Er(i,a),Er(o,a);var l=this.isCategory();s.call(this,i),s.call(this,o),u.call(this,i,\"inRange\",\"outOfRange\"),c.call(this,o);function s(d){HTt(n.color)&&!d.inRange&&(d.inRange={color:n.color.slice().reverse()}),d.inRange=d.inRange||{color:r.get(\"gradientColor\")}}function u(d,f,h){var p=d[f],v=d[h];p&&!v&&(v=d[h]={},zQ(p,function(g,y){if(di.isValidType(y)){var b=B1e.get(y,\"inactive\",l);b!=null&&(v[y]=b,y===\"color\"&&!v.hasOwnProperty(\"opacity\")&&!v.hasOwnProperty(\"colorAlpha\")&&(v.opacity=[0,0]))}}))}function c(d){var f=(d.inRange||{}).symbol||(d.outOfRange||{}).symbol,h=(d.inRange||{}).symbolSize||(d.outOfRange||{}).symbolSize,p=this.get(\"inactiveColor\"),v=this.getItemSymbol(),g=v||\"roundRect\";zQ(this.stateList,function(y){var b=this.itemSize,x=d[y];x||(x=d[y]={color:l?p:[p]}),x.symbol==null&&(x.symbol=f&&lr(f)||(l?g:[g])),x.symbolSize==null&&(x.symbolSize=h&&lr(h)||(l?b[0]:[b[0],b[0]])),x.symbol=jQ(x.symbol,function(E){return E===\"none\"?g:E});var F=x.symbolSize;if(F!=null){var S=-1/0;zTt(F,function(E){E>S&&(S=E)}),x.symbolSize=jQ(F,function(E){return WTt(E,[0,S],[0,b[0]],!0)})}},this)}},t.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get(\"itemWidth\")),parseFloat(this.get(\"itemHeight\"))]},t.prototype.isCategory=function(){return!!this.option.categories},t.prototype.setSelected=function(r){},t.prototype.getSelected=function(){return null},t.prototype.getValueState=function(r){return null},t.prototype.getVisualMeta=function(r){return null},t.type=\"visualMap\",t.dependencies=[\"series\"],t.defaultOption={show:!0,z:4,seriesIndex:\"all\",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:\"vertical\",backgroundColor:\"rgba(0,0,0,0)\",borderColor:\"#ccc\",contentColor:\"#5793f3\",inactiveColor:\"#aaa\",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:\"#333\"}},t}(jr),HQ=[20,140],GTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.optionUpdated=function(r,n){e.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(a){a.mappingMethod=\"linear\",a.dataExtent=this.getExtent()}),this._resetRange()},t.prototype.resetItemSize=function(){e.prototype.resetItemSize.apply(this,arguments);var r=this.itemSize;(r[0]==null||isNaN(r[0]))&&(r[0]=HQ[0]),(r[1]==null||isNaN(r[1]))&&(r[1]=HQ[1])},t.prototype._resetRange=function(){var r=this.getExtent(),n=this.option.range;!n||n.auto?(r.auto=1,this.option.range=r):nt(n)&&(n[0]>n[1]&&n.reverse(),n[0]=Math.max(n[0],r[0]),n[1]=Math.min(n[1],r[1]))},t.prototype.completeVisualOption=function(){e.prototype.completeVisualOption.apply(this,arguments),q(this.stateList,function(r){var n=this.option.controller[r].symbolSize;n&&n[0]!==n[1]&&(n[0]=n[1]/3)},this)},t.prototype.setSelected=function(r){this.option.range=r.slice(),this._resetRange()},t.prototype.getSelected=function(){var r=this.getExtent(),n=Ml((this.get(\"range\")||[]).slice());return n[0]>r[1]&&(n[0]=r[1]),n[1]>r[1]&&(n[1]=r[1]),n[0]<r[0]&&(n[0]=r[0]),n[1]<r[0]&&(n[1]=r[0]),n},t.prototype.getValueState=function(r){var n=this.option.range,a=this.getExtent();return(n[0]<=a[0]||n[0]<=r)&&(n[1]>=a[1]||r<=n[1])?\"inRange\":\"outOfRange\"},t.prototype.findTargetDataIndices=function(r){var n=[];return this.eachTargetSeries(function(a){var i=[],o=a.getData();o.each(this.getDataDimensionIndex(o),function(l,s){r[0]<=l&&l<=r[1]&&i.push(s)},this),n.push({seriesId:a.id,dataIndex:i})},this),n},t.prototype.getVisualMeta=function(r){var n=VQ(this,\"outOfRange\",this.getExtent()),a=VQ(this,\"inRange\",this.option.range.slice()),i=[];function o(h,p){i.push({value:h,color:r(h,p)})}for(var l=0,s=0,u=a.length,c=n.length;s<c&&(!a.length||n[s]<=a[0]);s++)n[s]<a[l]&&o(n[s],\"outOfRange\");for(var d=1;l<u;l++,d=0)d&&i.length&&o(a[l],\"outOfRange\"),o(a[l],\"inRange\");for(var d=1;s<c;s++)(!a.length||a[a.length-1]<n[s])&&(d&&(i.length&&o(i[i.length-1].value,\"outOfRange\"),d=0),o(n[s],\"outOfRange\"));var f=i.length;return{stops:i,outerColors:[f?i[0].color:\"transparent\",f?i[f-1].color:\"transparent\"]}},t.type=\"visualMap.continuous\",t.defaultOption=uh(g4.defaultOption,{align:\"auto\",calculable:!1,hoverLink:!0,realtime:!0,handleIcon:\"path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z\",handleSize:\"120%\",handleStyle:{borderColor:\"#fff\",borderWidth:1},indicatorIcon:\"circle\",indicatorSize:\"50%\",indicatorStyle:{borderColor:\"#fff\",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:\"rgba(0,0,0,0.2)\"}}),t}(g4);function VQ(e,t,r){if(r[0]===r[1])return r.slice();for(var n=200,a=(r[1]-r[0])/n,i=r[0],o=[],l=0;l<=n&&i<r[1];l++)o.push(i),i+=a;return o.push(r[1]),o}var N1e=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r.autoPositionValues={left:1,right:1,top:1,bottom:1},r}return t.prototype.init=function(r,n){this.ecModel=r,this.api=n},t.prototype.render=function(r,n,a,i){if(this.visualMapModel=r,r.get(\"show\")===!1){this.group.removeAll();return}this.doRender(r,n,a,i)},t.prototype.renderBackground=function(r){var n=this.visualMapModel,a=Lm(n.get(\"padding\")||0),i=r.getBoundingRect();r.add(new Zr({z2:-1,silent:!0,shape:{x:i.x-a[3],y:i.y-a[0],width:i.width+a[3]+a[1],height:i.height+a[0]+a[2]},style:{fill:n.get(\"backgroundColor\"),stroke:n.get(\"borderColor\"),lineWidth:n.get(\"borderWidth\")}}))},t.prototype.getControllerVisual=function(r,n,a){a=a||{};var i=a.forceState,o=this.visualMapModel,l={};if(n===\"color\"){var s=o.get(\"contentColor\");l.color=s}function u(h){return l[h]}function c(h,p){l[h]=p}var d=o.controllerVisuals[i||o.getValueState(r)],f=di.prepareVisualTypes(d);return q(f,function(h){var p=d[h];a.convertOpacityToAlpha&&h===\"opacity\"&&(h=\"colorAlpha\",p=d.__alphaForOpacity),di.dependsOn(h,n)&&p&&p.applyVisual(r,u,c)}),l[n]},t.prototype.positionGroup=function(r){var n=this.visualMapModel,a=this.api;oA(r,n.getBoxLayoutParams(),{width:a.getWidth(),height:a.getHeight()})},t.prototype.doRender=function(r,n,a,i){},t.type=\"visualMap\",t}(Wn),WQ=[[\"left\",\"right\",\"width\"],[\"top\",\"bottom\",\"height\"]];function $1e(e,t,r){var n=e.option,a=n.align;if(a!=null&&a!==\"auto\")return a;for(var i={width:t.getWidth(),height:t.getHeight()},o=n.orient===\"horizontal\"?1:0,l=WQ[o],s=[0,null,10],u={},c=0;c<3;c++)u[WQ[1-o][c]]=s[c],u[l[c]]=c===2?r[0]:n[l[c]];var d=[[\"x\",\"width\",3],[\"y\",\"height\",0]][o],f=Na(u,i,n.padding);return l[(f.margin[d[2]]||0)+f[d[0]]+f[d[1]]*.5<i[d[1]]*.5?0:1]}function Ww(e,t){return q(e||[],function(r){r.dataIndex!=null&&(r.dataIndexInside=r.dataIndex,r.dataIndex=null),r.highlightKey=\"visualMap\"+(t?t.componentIndex:\"\")}),e}var ju=yn,UTt=q,GQ=Math.min,wk=Math.max,KTt=12,YTt=6,qTt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._shapes={},r._dataInterval=[],r._handleEnds=[],r._hoverLinkDataIndices=[],r}return t.prototype.init=function(r,n){e.prototype.init.call(this,r,n),this._hoverLinkFromSeriesMouseOver=Pt(this._hoverLinkFromSeriesMouseOver,this),this._hideIndicator=Pt(this._hideIndicator,this)},t.prototype.doRender=function(r,n,a,i){(!i||i.type!==\"selectDataRange\"||i.from!==this.uid)&&this._buildView()},t.prototype._buildView=function(){this.group.removeAll();var r=this.visualMapModel,n=this.group;this._orient=r.get(\"orient\"),this._useHandle=r.get(\"calculable\"),this._resetInterval(),this._renderBar(n);var a=r.get(\"text\");this._renderEndsText(n,a,0),this._renderEndsText(n,a,1),this._updateView(!0),this.renderBackground(n),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(n)},t.prototype._renderEndsText=function(r,n,a){if(n){var i=n[1-a];i=i!=null?i+\"\":\"\";var o=this.visualMapModel,l=o.get(\"textGap\"),s=o.itemSize,u=this._shapes.mainGroup,c=this._applyTransform([s[0]/2,a===0?-l:s[1]+l],u),d=this._applyTransform(a===0?\"bottom\":\"top\",u),f=this._orient,h=this.visualMapModel.textStyleModel;this.group.add(new Jr({style:Mn(h,{x:c[0],y:c[1],verticalAlign:f===\"horizontal\"?\"middle\":d,align:f===\"horizontal\"?d:\"center\",text:i})}))}},t.prototype._renderBar=function(r){var n=this.visualMapModel,a=this._shapes,i=n.itemSize,o=this._orient,l=this._useHandle,s=$1e(n,this.api,i),u=a.mainGroup=this._createBarGroup(s),c=new pr;u.add(c),c.add(a.outOfRange=UQ()),c.add(a.inRange=UQ(null,l?YQ(this._orient):null,Pt(this._dragHandle,this,\"all\",!1),Pt(this._dragHandle,this,\"all\",!0))),c.setClipPath(new Zr({shape:{x:0,y:0,width:i[0],height:i[1],r:3}}));var d=n.textStyleModel.getTextRect(\"国\"),f=wk(d.width,d.height);l&&(a.handleThumbs=[],a.handleLabels=[],a.handleLabelPoints=[],this._createHandle(n,u,0,i,f,o),this._createHandle(n,u,1,i,f,o)),this._createIndicator(n,u,i,f,o),r.add(u)},t.prototype._createHandle=function(r,n,a,i,o,l){var s=Pt(this._dragHandle,this,a,!1),u=Pt(this._dragHandle,this,a,!0),c=Fu(r.get(\"handleSize\"),i[0]),d=_a(r.get(\"handleIcon\"),-c/2,-c/2,c,c,null,!0),f=YQ(this._orient);d.attr({cursor:f,draggable:!0,drift:s,ondragend:u,onmousemove:function(y){dd(y.event)}}),d.x=i[0]/2,d.useStyle(r.getModel(\"handleStyle\").getItemStyle()),d.setStyle({strokeNoScale:!0,strokeFirst:!0}),d.style.lineWidth*=2,d.ensureState(\"emphasis\").style=r.getModel([\"emphasis\",\"handleStyle\"]).getItemStyle(),pp(d,!0),n.add(d);var h=this.visualMapModel.textStyleModel,p=new Jr({cursor:f,draggable:!0,drift:s,onmousemove:function(y){dd(y.event)},ondragend:u,style:Mn(h,{x:0,y:0,text:\"\"})});p.ensureState(\"blur\").style={opacity:.1},p.stateTransition={duration:200},this.group.add(p);var v=[c,0],g=this._shapes;g.handleThumbs[a]=d,g.handleLabelPoints[a]=v,g.handleLabels[a]=p},t.prototype._createIndicator=function(r,n,a,i,o){var l=Fu(r.get(\"indicatorSize\"),a[0]),s=_a(r.get(\"indicatorIcon\"),-l/2,-l/2,l,l,null,!0);s.attr({cursor:\"move\",invisible:!0,silent:!0,x:a[0]/2});var u=r.getModel(\"indicatorStyle\").getItemStyle();if(s instanceof yi){var c=s.style;s.useStyle(Xe({image:c.image,x:c.x,y:c.y,width:c.width,height:c.height},u))}else s.useStyle(u);n.add(s);var d=this.visualMapModel.textStyleModel,f=new Jr({silent:!0,invisible:!0,style:Mn(d,{x:0,y:0,text:\"\"})});this.group.add(f);var h=[(o===\"horizontal\"?i/2:YTt)+a[0]/2,0],p=this._shapes;p.indicator=s,p.indicatorLabel=f,p.indicatorLabelPoint=h,this._firstShowIndicator=!0},t.prototype._dragHandle=function(r,n,a,i){if(this._useHandle){if(this._dragging=!n,!n){var o=this._applyTransform([a,i],this._shapes.mainGroup,!0);this._updateInterval(r,o[1]),this._hideIndicator(),this._updateView()}n===!this.visualMapModel.get(\"realtime\")&&this.api.dispatchAction({type:\"selectDataRange\",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),n?!this._hovering&&this._clearHoverLinkToSeries():KQ(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[r],!1)}},t.prototype._resetInterval=function(){var r=this.visualMapModel,n=this._dataInterval=r.getSelected(),a=r.getExtent(),i=[0,r.itemSize[1]];this._handleEnds=[ju(n[0],a,i,!0),ju(n[1],a,i,!0)]},t.prototype._updateInterval=function(r,n){n=n||0;var a=this.visualMapModel,i=this._handleEnds,o=[0,a.itemSize[1]];Vm(n,i,o,r,0);var l=a.getExtent();this._dataInterval=[ju(i[0],o,l,!0),ju(i[1],o,l,!0)]},t.prototype._updateView=function(r){var n=this.visualMapModel,a=n.getExtent(),i=this._shapes,o=[0,n.itemSize[1]],l=r?o:this._handleEnds,s=this._createBarVisual(this._dataInterval,a,l,\"inRange\"),u=this._createBarVisual(a,a,o,\"outOfRange\");i.inRange.setStyle({fill:s.barColor}).setShape(\"points\",s.barPoints),i.outOfRange.setStyle({fill:u.barColor}).setShape(\"points\",u.barPoints),this._updateHandle(l,s)},t.prototype._createBarVisual=function(r,n,a,i){var o={forceState:i,convertOpacityToAlpha:!0},l=this._makeColorGradient(r,o),s=[this.getControllerVisual(r[0],\"symbolSize\",o),this.getControllerVisual(r[1],\"symbolSize\",o)],u=this._createBarPoints(a,s);return{barColor:new Yg(0,0,0,1,l),barPoints:u,handlesColor:[l[0].color,l[l.length-1].color]}},t.prototype._makeColorGradient=function(r,n){var a=100,i=[],o=(r[1]-r[0])/a;i.push({color:this.getControllerVisual(r[0],\"color\",n),offset:0});for(var l=1;l<a;l++){var s=r[0]+o*l;if(s>r[1])break;i.push({color:this.getControllerVisual(s,\"color\",n),offset:l/a})}return i.push({color:this.getControllerVisual(r[1],\"color\",n),offset:1}),i},t.prototype._createBarPoints=function(r,n){var a=this.visualMapModel.itemSize;return[[a[0]-n[0],r[0]],[a[0],r[0]],[a[0],r[1]],[a[0]-n[1],r[1]]]},t.prototype._createBarGroup=function(r){var n=this._orient,a=this.visualMapModel.get(\"inverse\");return new pr(n===\"horizontal\"&&!a?{scaleX:r===\"bottom\"?1:-1,rotation:Math.PI/2}:n===\"horizontal\"&&a?{scaleX:r===\"bottom\"?-1:1,rotation:-Math.PI/2}:n===\"vertical\"&&!a?{scaleX:r===\"left\"?1:-1,scaleY:-1}:{scaleX:r===\"left\"?1:-1})},t.prototype._updateHandle=function(r,n){if(this._useHandle){var a=this._shapes,i=this.visualMapModel,o=a.handleThumbs,l=a.handleLabels,s=i.itemSize,u=i.getExtent(),c=this._applyTransform(\"left\",a.mainGroup);UTt([0,1],function(d){var f=o[d];f.setStyle(\"fill\",n.handlesColor[d]),f.y=r[d];var h=ju(r[d],[0,s[1]],u,!0),p=this.getControllerVisual(h,\"symbolSize\");f.scaleX=f.scaleY=p/s[0],f.x=s[0]-p/2;var v=hu(a.handleLabelPoints[d],kf(f,this.group));if(this._orient===\"horizontal\"){var g=c===\"left\"||c===\"top\"?(s[0]-p)/2:(s[0]-p)/-2;v[1]+=g}l[d].setStyle({x:v[0],y:v[1],text:i.formatValueText(this._dataInterval[d]),verticalAlign:\"middle\",align:this._orient===\"vertical\"?this._applyTransform(\"left\",a.mainGroup):\"center\"})},this)}},t.prototype._showIndicator=function(r,n,a,i){var o=this.visualMapModel,l=o.getExtent(),s=o.itemSize,u=[0,s[1]],c=this._shapes,d=c.indicator;if(d){d.attr(\"invisible\",!1);var f={convertOpacityToAlpha:!0},h=this.getControllerVisual(r,\"color\",f),p=this.getControllerVisual(r,\"symbolSize\"),v=ju(r,l,u,!0),g=s[0]-p/2,y={x:d.x,y:d.y};d.y=v,d.x=g;var b=hu(c.indicatorLabelPoint,kf(d,this.group)),x=c.indicatorLabel;x.attr(\"invisible\",!1);var F=this._applyTransform(\"left\",c.mainGroup),S=this._orient,E=S===\"horizontal\";x.setStyle({text:(a||\"\")+o.formatValueText(n),verticalAlign:E?F:\"middle\",align:E?\"center\":F});var w={x:g,y:v,style:{fill:h}},D={style:{x:b[0],y:b[1]}};if(o.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var A={duration:100,easing:\"cubicInOut\",additive:!0};d.x=y.x,d.y=y.y,d.animateTo(w,A),x.animateTo(D,A)}else d.attr(w),x.attr(D);this._firstShowIndicator=!1;var _=this._shapes.handleLabels;if(_)for(var I=0;I<_.length;I++)this.api.enterBlur(_[I])}},t.prototype._enableHoverLinkToSeries=function(){var r=this;this._shapes.mainGroup.on(\"mousemove\",function(n){if(r._hovering=!0,!r._dragging){var a=r.visualMapModel.itemSize,i=r._applyTransform([n.offsetX,n.offsetY],r._shapes.mainGroup,!0,!0);i[1]=GQ(wk(0,i[1]),a[1]),r._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=a[0])}}).on(\"mouseout\",function(){r._hovering=!1,!r._dragging&&r._clearHoverLinkToSeries()})},t.prototype._enableHoverLinkFromSeries=function(){var r=this.api.getZr();this.visualMapModel.option.hoverLink?(r.on(\"mouseover\",this._hoverLinkFromSeriesMouseOver,this),r.on(\"mouseout\",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},t.prototype._doHoverLinkToSeries=function(r,n){var a=this.visualMapModel,i=a.itemSize;if(a.option.hoverLink){var o=[0,i[1]],l=a.getExtent();r=GQ(wk(o[0],r),o[1]);var s=XTt(a,l,o),u=[r-s,r+s],c=ju(r,o,l,!0),d=[ju(u[0],o,l,!0),ju(u[1],o,l,!0)];u[0]<o[0]&&(d[0]=-1/0),u[1]>o[1]&&(d[1]=1/0),n&&(d[0]===-1/0?this._showIndicator(c,d[1],\"< \",s):d[1]===1/0?this._showIndicator(c,d[0],\"> \",s):this._showIndicator(c,c,\"≈ \",s));var f=this._hoverLinkDataIndices,h=[];(n||KQ(a))&&(h=this._hoverLinkDataIndices=a.findTargetDataIndices(d));var p=H0t(f,h);this._dispatchHighDown(\"downplay\",Ww(p[0],a)),this._dispatchHighDown(\"highlight\",Ww(p[1],a))}},t.prototype._hoverLinkFromSeriesMouseOver=function(r){var n;if(vp(r.target,function(s){var u=br(s);if(u.dataIndex!=null)return n=u,!0},!0),!!n){var a=this.ecModel.getSeriesByIndex(n.seriesIndex),i=this.visualMapModel;if(i.isTargetSeries(a)){var o=a.getData(n.dataType),l=o.getStore().get(i.getDataDimensionIndex(o),n.dataIndex);isNaN(l)||this._showIndicator(l,l)}}},t.prototype._hideIndicator=function(){var r=this._shapes;r.indicator&&r.indicator.attr(\"invisible\",!0),r.indicatorLabel&&r.indicatorLabel.attr(\"invisible\",!0);var n=this._shapes.handleLabels;if(n)for(var a=0;a<n.length;a++)this.api.leaveBlur(n[a])},t.prototype._clearHoverLinkToSeries=function(){this._hideIndicator();var r=this._hoverLinkDataIndices;this._dispatchHighDown(\"downplay\",Ww(r,this.visualMapModel)),r.length=0},t.prototype._clearHoverLinkFromSeries=function(){this._hideIndicator();var r=this.api.getZr();r.off(\"mouseover\",this._hoverLinkFromSeriesMouseOver),r.off(\"mouseout\",this._hideIndicator)},t.prototype._applyTransform=function(r,n,a,i){var o=kf(n,i?null:this.group);return nt(r)?hu(r,o,a):eA(r,o,a)},t.prototype._dispatchHighDown=function(r,n){n&&n.length&&this.api.dispatchAction({type:r,batch:n})},t.prototype.dispose=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},t.type=\"visualMap.continuous\",t}(N1e);function UQ(e,t,r,n){return new wo({shape:{points:e},draggable:!!r,cursor:t,drift:r,onmousemove:function(a){dd(a.event)},ondragend:n})}function XTt(e,t,r){var n=KTt/2,a=e.get(\"hoverLinkDataSize\");return a&&(n=ju(a,t,r,!0)/2),n}function KQ(e){var t=e.get(\"hoverLinkOnHandle\");return!!(t??e.get(\"realtime\"))}function YQ(e){return e===\"vertical\"?\"ns-resize\":\"ew-resize\"}var JTt={type:\"selectDataRange\",event:\"dataRangeSelected\",update:\"update\"},ZTt=function(e,t){t.eachComponent({mainType:\"visualMap\",query:e},function(r){r.setSelected(e.selected)})},QTt=[{createOnAllSeries:!0,reset:function(e,t){var r=[];return t.eachComponent(\"visualMap\",function(n){var a=e.pipelineContext;!n.isTargetSeries(e)||a&&a.large||r.push(C5t(n.stateList,n.targetVisuals,Pt(n.getValueState,n),n.getDataDimensionIndex(e.getData())))}),r}},{createOnAllSeries:!0,reset:function(e,t){var r=e.getData(),n=[];t.eachComponent(\"visualMap\",function(a){if(a.isTargetSeries(e)){var i=a.getVisualMeta(Pt(eIt,null,e,a))||{stops:[],outerColors:[]},o=a.getDataDimensionIndex(r);o>=0&&(i.dimension=o,n.push(i))}}),e.getData().setVisual(\"visualMeta\",n)}}];function eIt(e,t,r,n){for(var a=t.targetVisuals[n],i=di.prepareVisualTypes(a),o={color:lC(e.getData(),\"color\")},l=0,s=i.length;l<s;l++){var u=i[l],c=a[u===\"opacity\"?\"__alphaForOpacity\":u];c&&c.applyVisual(r,d,f)}return o.color;function d(h){return o[h]}function f(h,p){o[h]=p}}var qQ=q;function tIt(e){var t=e&&e.visualMap;nt(t)||(t=t?[t]:[]),qQ(t,function(r){if(r){_v(r,\"splitList\")&&!_v(r,\"pieces\")&&(r.pieces=r.splitList,delete r.splitList);var n=r.pieces;n&&nt(n)&&qQ(n,function(a){ir(a)&&(_v(a,\"start\")&&!_v(a,\"min\")&&(a.min=a.start),_v(a,\"end\")&&!_v(a,\"max\")&&(a.max=a.end))})}})}function _v(e,t){return e&&e.hasOwnProperty&&e.hasOwnProperty(t)}var XQ=!1;function L1e(e){XQ||(XQ=!0,e.registerSubTypeDefaulter(\"visualMap\",function(t){return!t.categories&&(!(t.pieces?t.pieces.length>0:t.splitNumber>0)||t.calculable)?\"continuous\":\"piecewise\"}),e.registerAction(JTt,ZTt),q(QTt,function(t){e.registerVisual(e.PRIORITY.VISUAL.COMPONENT,t)}),e.registerPreprocessor(tIt))}function j1e(e){e.registerComponentModel(GTt),e.registerComponentView(qTt),L1e(e)}var rIt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r._pieceList=[],r}return t.prototype.optionUpdated=function(r,n){e.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var a=this._mode=this._determineMode();this._pieceList=[],nIt[this._mode].call(this,this._pieceList),this._resetSelected(r,n);var i=this.option.categories;this.resetVisual(function(o,l){a===\"categories\"?(o.mappingMethod=\"category\",o.categories=lr(i)):(o.dataExtent=this.getExtent(),o.mappingMethod=\"piecewise\",o.pieceList=ot(this._pieceList,function(s){return s=lr(s),l!==\"inRange\"&&(s.visual=null),s}))})},t.prototype.completeVisualOption=function(){var r=this.option,n={},a=di.listVisualTypes(),i=this.isCategory();q(r.pieces,function(l){q(a,function(s){l.hasOwnProperty(s)&&(n[s]=1)})}),q(n,function(l,s){var u=!1;q(this.stateList,function(c){u=u||o(r,c,s)||o(r.target,c,s)},this),!u&&q(this.stateList,function(c){(r[c]||(r[c]={}))[s]=B1e.get(s,c===\"inRange\"?\"active\":\"inactive\",i)})},this);function o(l,s,u){return l&&l[s]&&l[s].hasOwnProperty(u)}e.prototype.completeVisualOption.apply(this,arguments)},t.prototype._resetSelected=function(r,n){var a=this.option,i=this._pieceList,o=(n?a:r).selected||{};if(a.selected=o,q(i,function(s,u){var c=this.getSelectedMapKey(s);o.hasOwnProperty(c)||(o[c]=!0)},this),a.selectedMode===\"single\"){var l=!1;q(i,function(s,u){var c=this.getSelectedMapKey(s);o[c]&&(l?o[c]=!1:l=!0)},this)}},t.prototype.getItemSymbol=function(){return this.get(\"itemSymbol\")},t.prototype.getSelectedMapKey=function(r){return this._mode===\"categories\"?r.value+\"\":r.index+\"\"},t.prototype.getPieceList=function(){return this._pieceList},t.prototype._determineMode=function(){var r=this.option;return r.pieces&&r.pieces.length>0?\"pieces\":this.option.categories?\"categories\":\"splitNumber\"},t.prototype.setSelected=function(r){this.option.selected=lr(r)},t.prototype.getValueState=function(r){var n=di.findPieceIndex(r,this._pieceList);return n!=null&&this.option.selected[this.getSelectedMapKey(this._pieceList[n])]?\"inRange\":\"outOfRange\"},t.prototype.findTargetDataIndices=function(r){var n=[],a=this._pieceList;return this.eachTargetSeries(function(i){var o=[],l=i.getData();l.each(this.getDataDimensionIndex(l),function(s,u){var c=di.findPieceIndex(s,a);c===r&&o.push(u)},this),n.push({seriesId:i.id,dataIndex:o})},this),n},t.prototype.getRepresentValue=function(r){var n;if(this.isCategory())n=r.value;else if(r.value!=null)n=r.value;else{var a=r.interval||[];n=a[0]===-1/0&&a[1]===1/0?0:(a[0]+a[1])/2}return n},t.prototype.getVisualMeta=function(r){if(this.isCategory())return;var n=[],a=[\"\",\"\"],i=this;function o(c,d){var f=i.getRepresentValue({interval:c});d||(d=i.getValueState(f));var h=r(f,d);c[0]===-1/0?a[0]=h:c[1]===1/0?a[1]=h:n.push({value:c[0],color:h},{value:c[1],color:h})}var l=this._pieceList.slice();if(!l.length)l.push({interval:[-1/0,1/0]});else{var s=l[0].interval[0];s!==-1/0&&l.unshift({interval:[-1/0,s]}),s=l[l.length-1].interval[1],s!==1/0&&l.push({interval:[s,1/0]})}var u=-1/0;return q(l,function(c){var d=c.interval;d&&(d[0]>u&&o([u,d[0]],\"outOfRange\"),o(d.slice()),u=d[1])},this),{stops:n,outerColors:a}},t.type=\"visualMap.piecewise\",t.defaultOption=uh(g4.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:\"auto\",itemWidth:20,itemHeight:14,itemSymbol:\"roundRect\",pieces:null,categories:null,splitNumber:5,selectedMode:\"multiple\",itemGap:10,hoverLink:!0}),t}(g4),nIt={splitNumber:function(e){var t=this.option,r=Math.min(t.precision,20),n=this.getExtent(),a=t.splitNumber;a=Math.max(parseInt(a,10),1),t.splitNumber=a;for(var i=(n[1]-n[0])/a;+i.toFixed(r)!==i&&r<5;)r++;t.precision=r,i=+i.toFixed(r),t.minOpen&&e.push({interval:[-1/0,n[0]],close:[0,0]});for(var o=0,l=n[0];o<a;l+=i,o++){var s=o===a-1?n[1]:l+i;e.push({interval:[l,s],close:[1,1]})}t.maxOpen&&e.push({interval:[n[1],1/0],close:[0,0]}),QM(e),q(e,function(u,c){u.index=c,u.text=this.formatValueText(u.interval)},this)},categories:function(e){var t=this.option;q(t.categories,function(r){e.push({text:this.formatValueText(r,!0),value:r})},this),JQ(t,e)},pieces:function(e){var t=this.option;q(t.pieces,function(r,n){ir(r)||(r={value:r});var a={text:\"\",index:n};if(r.label!=null&&(a.text=r.label),r.hasOwnProperty(\"value\")){var i=a.value=r.value;a.interval=[i,i],a.close=[1,1]}else{for(var o=a.interval=[],l=a.close=[0,0],s=[1,0,1],u=[-1/0,1/0],c=[],d=0;d<2;d++){for(var f=[[\"gte\",\"gt\",\"min\"],[\"lte\",\"lt\",\"max\"]][d],h=0;h<3&&o[d]==null;h++)o[d]=r[f[h]],l[d]=s[h],c[d]=h===2;o[d]==null&&(o[d]=u[d])}c[0]&&o[1]===1/0&&(l[0]=0),c[1]&&o[0]===-1/0&&(l[1]=0),o[0]===o[1]&&l[0]&&l[1]&&(a.value=o[0])}a.visual=di.retrieveVisuals(r),e.push(a)},this),JQ(t,e),QM(e),q(e,function(r){var n=r.close,a=[[\"<\",\"≤\"][n[1]],[\">\",\"≥\"][n[0]]];r.text=r.text||this.formatValueText(r.value!=null?r.value:r.interval,!1,a)},this)}};function JQ(e,t){var r=e.inverse;(e.orient===\"vertical\"?!r:r)&&t.reverse()}var aIt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=t.type,r}return t.prototype.doRender=function(){var r=this.group;r.removeAll();var n=this.visualMapModel,a=n.get(\"textGap\"),i=n.textStyleModel,o=i.getFont(),l=i.getTextColor(),s=this._getItemAlign(),u=n.itemSize,c=this._getViewData(),d=c.endsText,f=ui(n.get(\"showLabel\",!0),!d),h=!n.get(\"selectedMode\");d&&this._renderEndsText(r,d[0],u,f,s),q(c.viewPieceList,function(p){var v=p.piece,g=new pr;g.onclick=Pt(this._onItemClick,this,v),this._enableHoverLink(g,p.indexInModelPieceList);var y=n.getRepresentValue(v);if(this._createItemSymbol(g,y,[0,0,u[0],u[1]],h),f){var b=this.visualMapModel.getValueState(y);g.add(new Jr({style:{x:s===\"right\"?-a:u[0]+a,y:u[1]/2,text:v.text,verticalAlign:\"middle\",align:s,font:o,fill:l,opacity:b===\"outOfRange\"?.5:1},silent:h}))}r.add(g)},this),d&&this._renderEndsText(r,d[1],u,f,s),Pp(n.get(\"orient\"),r,n.get(\"itemGap\")),this.renderBackground(r),this.positionGroup(r)},t.prototype._enableHoverLink=function(r,n){var a=this;r.on(\"mouseover\",function(){return i(\"highlight\")}).on(\"mouseout\",function(){return i(\"downplay\")});var i=function(o){var l=a.visualMapModel;l.option.hoverLink&&a.api.dispatchAction({type:o,batch:Ww(l.findTargetDataIndices(n),l)})}},t.prototype._getItemAlign=function(){var r=this.visualMapModel,n=r.option;if(n.orient===\"vertical\")return $1e(r,this.api,r.itemSize);var a=n.align;return(!a||a===\"auto\")&&(a=\"left\"),a},t.prototype._renderEndsText=function(r,n,a,i,o){if(n){var l=new pr,s=this.visualMapModel.textStyleModel;l.add(new Jr({style:Mn(s,{x:i?o===\"right\"?a[0]:0:a[0]/2,y:a[1]/2,verticalAlign:\"middle\",align:i?o:\"center\",text:n})})),r.add(l)}},t.prototype._getViewData=function(){var r=this.visualMapModel,n=ot(r.getPieceList(),function(l,s){return{piece:l,indexInModelPieceList:s}}),a=r.get(\"text\"),i=r.get(\"orient\"),o=r.get(\"inverse\");return(i===\"horizontal\"?o:!o)?n.reverse():a&&(a=a.slice().reverse()),{viewPieceList:n,endsText:a}},t.prototype._createItemSymbol=function(r,n,a,i){var o=_a(this.getControllerVisual(n,\"symbol\"),a[0],a[1],a[2],a[3],this.getControllerVisual(n,\"color\"));o.silent=i,r.add(o)},t.prototype._onItemClick=function(r){var n=this.visualMapModel,a=n.option,i=a.selectedMode;if(i){var o=lr(a.selected),l=n.getSelectedMapKey(r);i===\"single\"||i===!0?(o[l]=!0,q(o,function(s,u){o[u]=u===l})):o[l]=!o[l],this.api.dispatchAction({type:\"selectDataRange\",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}},t.type=\"visualMap.piecewise\",t}(N1e);function z1e(e){e.registerComponentModel(rIt),e.registerComponentView(aIt),L1e(e)}function iIt(e){Nr(j1e),Nr(z1e)}var oIt={label:{enabled:!0},decal:{show:!1}},ZQ=rn(),lIt={};function sIt(e,t){var r=e.getModel(\"aria\");if(!r.get(\"enabled\"))return;var n=lr(oIt);Er(n.label,e.getLocaleModel().get(\"aria\"),!1),Er(r.option,n,!1),a(),i();function a(){var u=r.getModel(\"decal\"),c=u.get(\"show\");if(c){var d=Gt();e.eachSeries(function(f){if(!f.isColorBySeries()){var h=d.get(f.type);h||(h={},d.set(f.type,h)),ZQ(f).scope=h}}),e.eachRawSeries(function(f){if(e.isSeriesFiltered(f))return;if(er(f.enableAriaDecal)){f.enableAriaDecal();return}var h=f.getData();if(f.isColorBySeries()){var b=mP(f.ecModel,f.name,lIt,e.getSeriesCount()),x=h.getVisual(\"decal\");h.setVisual(\"decal\",F(x,b))}else{var p=f.getRawData(),v={},g=ZQ(f).scope;h.each(function(S){var E=h.getRawIndex(S);v[E]=S});var y=p.count();p.each(function(S){var E=v[S],w=p.getName(S)||S+\"\",D=mP(f.ecModel,w,g,y),A=h.getItemVisual(E,\"decal\");h.setItemVisual(E,\"decal\",F(A,D))})}function F(S,E){var w=S?Xe(Xe({},E),S):E;return w.dirty=!0,w}})}}function i(){var u=t.getZr().dom;if(u){var c=e.getLocaleModel().get(\"aria\"),d=r.getModel(\"label\");if(d.option=rr(d.option,c),!!d.get(\"enabled\")){if(u.setAttribute(\"role\",\"img\"),d.get(\"description\")){u.setAttribute(\"aria-label\",d.get(\"description\"));return}var f=e.getSeriesCount(),h=d.get([\"data\",\"maxCount\"])||10,p=d.get([\"series\",\"maxCount\"])||10,v=Math.min(f,p),g;if(!(f<1)){var y=l();if(y){var b=d.get([\"general\",\"withTitle\"]);g=o(b,{title:y})}else g=d.get([\"general\",\"withoutTitle\"]);var x=[],F=f>1?d.get([\"series\",\"multiple\",\"prefix\"]):d.get([\"series\",\"single\",\"prefix\"]);g+=o(F,{seriesCount:f}),e.eachSeries(function(D,A){if(A<v){var _=void 0,I=D.get(\"name\"),M=I?\"withName\":\"withoutName\";_=f>1?d.get([\"series\",\"multiple\",M]):d.get([\"series\",\"single\",M]),_=o(_,{seriesId:D.seriesIndex,seriesName:D.get(\"name\"),seriesType:s(D.subType)});var T=D.getData();if(T.count()>h){var k=d.get([\"data\",\"partialData\"]);_+=o(k,{displayCnt:h})}else _+=d.get([\"data\",\"allData\"]);for(var R=d.get([\"data\",\"separator\",\"middle\"]),P=d.get([\"data\",\"separator\",\"end\"]),B=d.get([\"data\",\"excludeDimensionId\"]),N=[],O=0;O<T.count();O++)if(O<h){var z=T.getName(O),W=B?hn(T.getValues(O),function(j,H){return Mr(B,H)===-1}):T.getValues(O),L=d.get([\"data\",z?\"withName\":\"withoutName\"]);N.push(o(L,{name:z,value:W.join(R)}))}_+=N.join(R)+P,x.push(_)}});var S=d.getModel([\"series\",\"multiple\",\"separator\"]),E=S.get(\"middle\"),w=S.get(\"end\");g+=x.join(E)+w,u.setAttribute(\"aria-label\",g)}}}}function o(u,c){if(!At(u))return u;var d=u;return q(c,function(f,h){d=d.replace(new RegExp(\"\\\\{\\\\s*\"+h+\"\\\\s*\\\\}\",\"g\"),f)}),d}function l(){var u=e.get(\"title\");return u&&u.length&&(u=u[0]),u&&u.text}function s(u){var c=e.getLocaleModel().get([\"series\",\"typeNames\"]);return c[u]||c.chart}}function uIt(e){if(!(!e||!e.aria)){var t=e.aria;t.show!=null&&(t.enabled=t.show),t.label=t.label||{},q([\"description\",\"general\",\"series\",\"data\"],function(r){t[r]!=null&&(t.label[r]=t[r])})}}function cIt(e){e.registerPreprocessor(uIt),e.registerVisual(e.PRIORITY.VISUAL.ARIA,sIt)}var QQ={value:\"eq\",\"<\":\"lt\",\"<=\":\"lte\",\">\":\"gt\",\">=\":\"gte\",\"=\":\"eq\",\"!=\":\"ne\",\"<>\":\"ne\"},dIt=function(){function e(t){var r=this._condVal=At(t)?new RegExp(t):fhe(t)?t:null;if(r==null){var n=\"\";bn(n)}}return e.prototype.evaluate=function(t){var r=typeof t;return At(r)?this._condVal.test(t):nn(r)?this._condVal.test(t+\"\"):!1},e}(),fIt=function(){function e(){}return e.prototype.evaluate=function(){return this.value},e}(),hIt=function(){function e(){}return e.prototype.evaluate=function(){for(var t=this.children,r=0;r<t.length;r++)if(!t[r].evaluate())return!1;return!0},e}(),pIt=function(){function e(){}return e.prototype.evaluate=function(){for(var t=this.children,r=0;r<t.length;r++)if(t[r].evaluate())return!0;return!1},e}(),mIt=function(){function e(){}return e.prototype.evaluate=function(){return!this.child.evaluate()},e}(),vIt=function(){function e(){}return e.prototype.evaluate=function(){for(var t=!!this.valueParser,r=this.getValue,n=r(this.valueGetterParam),a=t?this.valueParser(n):null,i=0;i<this.subCondList.length;i++)if(!this.subCondList[i].evaluate(t?a:n))return!1;return!0},e}();function uL(e,t){if(e===!0||e===!1){var r=new fIt;return r.value=e,r}var n=\"\";return H1e(e)||bn(n),e.and?eee(\"and\",e,t):e.or?eee(\"or\",e,t):e.not?gIt(e,t):yIt(e,t)}function eee(e,t,r){var n=t[e],a=\"\";nt(n)||bn(a),n.length||bn(a);var i=e===\"and\"?new hIt:new pIt;return i.children=ot(n,function(o){return uL(o,r)}),i.children.length||bn(a),i}function gIt(e,t){var r=e.not,n=\"\";H1e(r)||bn(n);var a=new mIt;return a.child=uL(r,t),a.child||bn(n),a}function yIt(e,t){for(var r=\"\",n=t.prepareGetValue(e),a=[],i=Ur(e),o=e.parser,l=o?xme(o):null,s=0;s<i.length;s++){var u=i[s];if(!(u===\"parser\"||t.valueGetterAttrMap.get(u))){var c=$t(QQ,u)?QQ[u]:u,d=e[u],f=l?l(d):d,h=Vyt(c,f)||c===\"reg\"&&new dIt(f);h||bn(r),a.push(h)}}a.length||bn(r);var p=new vIt;return p.valueGetterParam=n,p.valueParser=l,p.getValue=t.getValue,p.subCondList=a,p}function H1e(e){return ir(e)&&!Yi(e)}var bIt=function(){function e(t,r){this._cond=uL(t,r)}return e.prototype.evaluate=function(){return this._cond.evaluate()},e}();function xIt(e,t){return new bIt(e,t)}var CIt={type:\"echarts:filter\",transform:function(e){for(var t=e.upstream,r,n=xIt(e.config,{valueGetterAttrMap:Gt({dimension:!0}),prepareGetValue:function(l){var s=\"\",u=l.dimension;$t(l,\"dimension\")||bn(s);var c=t.getDimensionInfo(u);return c||bn(s),{dimIdx:c.index}},getValue:function(l){return t.retrieveValueFromItem(r,l.dimIdx)}}),a=[],i=0,o=t.count();i<o;i++)r=t.getRawDataItem(i),n.evaluate()&&a.push(r);return{data:a}}},FIt={type:\"echarts:sort\",transform:function(e){var t=e.upstream,r=e.config,n=\"\",a=An(r);a.length||bn(n);var i=[];q(a,function(c){var d=c.dimension,f=c.order,h=c.parser,p=c.incomparable;if(d==null&&bn(n),f!==\"asc\"&&f!==\"desc\"&&bn(n),p&&p!==\"min\"&&p!==\"max\"){var v=\"\";bn(v)}if(f!==\"asc\"&&f!==\"desc\"){var g=\"\";bn(g)}var y=t.getDimensionInfo(d);y||bn(n);var b=h?xme(h):null;h&&!b&&bn(n),i.push({dimIdx:y.index,parser:b,comparator:new Fme(f,p)})});var o=t.sourceFormat;o!==Eo&&o!==Os&&bn(n);for(var l=[],s=0,u=t.count();s<u;s++)l.push(t.getRawDataItem(s));return l.sort(function(c,d){for(var f=0;f<i.length;f++){var h=i[f],p=t.retrieveValueFromItem(c,h.dimIdx),v=t.retrieveValueFromItem(d,h.dimIdx);h.parser&&(p=h.parser(p),v=h.parser(v));var g=h.comparator.evaluate(p,v);if(g!==0)return g}return 0}),{data:l}}};function SIt(e){e.registerTransform(CIt),e.registerTransform(FIt)}var wIt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"dataset\",r}return t.prototype.init=function(r,n,a){e.prototype.init.call(this,r,n,a),this._sourceManager=new Dme(this),nq(this)},t.prototype.mergeOption=function(r,n){e.prototype.mergeOption.call(this,r,n),nq(this)},t.prototype.optionUpdated=function(){this._sourceManager.dirty()},t.prototype.getSourceManager=function(){return this._sourceManager},t.type=\"dataset\",t.defaultOption={seriesLayoutBy:oc},t}(jr),EIt=function(e){Re(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.type=\"dataset\",r}return t.type=\"dataset\",t}(Wn);function DIt(e){e.registerComponentModel(wIt),e.registerComponentView(EIt)}var Ou=gc.CMD;function s0(e,t){return Math.abs(e-t)<1e-5}function g9(e){var t=e.data,r=e.len(),n=[],a,i=0,o=0,l=0,s=0;function u(T,k){a&&a.length>2&&n.push(a),a=[T,k]}function c(T,k,R,P){s0(T,R)&&s0(k,P)||a.push(T,k,R,P,R,P)}function d(T,k,R,P,B,N){var O=Math.abs(k-T),z=Math.tan(O/4)*4/3,W=k<T?-1:1,L=Math.cos(T),j=Math.sin(T),H=Math.cos(k),V=Math.sin(k),U=L*B+R,Q=j*N+P,K=H*B+R,Y=V*N+P,ee=B*z*W,J=N*z*W;a.push(U-ee*j,Q+J*L,K+ee*V,Y-J*H,K,Y)}for(var f,h,p,v,g=0;g<r;){var y=t[g++],b=g===1;switch(b&&(i=t[g],o=t[g+1],l=i,s=o,(y===Ou.L||y===Ou.C||y===Ou.Q)&&(a=[l,s])),y){case Ou.M:i=l=t[g++],o=s=t[g++],u(l,s);break;case Ou.L:f=t[g++],h=t[g++],c(i,o,f,h),i=f,o=h;break;case Ou.C:a.push(t[g++],t[g++],t[g++],t[g++],i=t[g++],o=t[g++]);break;case Ou.Q:f=t[g++],h=t[g++],p=t[g++],v=t[g++],a.push(i+2/3*(f-i),o+2/3*(h-o),p+2/3*(f-p),v+2/3*(h-v),p,v),i=p,o=v;break;case Ou.A:var x=t[g++],F=t[g++],S=t[g++],E=t[g++],w=t[g++],D=t[g++]+w;g+=1;var A=!t[g++];f=Math.cos(w)*S+x,h=Math.sin(w)*E+F,b?(l=f,s=h,u(l,s)):c(i,o,f,h),i=Math.cos(D)*S+x,o=Math.sin(D)*E+F;for(var _=(A?-1:1)*Math.PI/2,I=w;A?I>D:I<D;I+=_){var M=A?Math.max(I+_,D):Math.min(I+_,D);d(I,M,x,F,S,E)}break;case Ou.R:l=i=t[g++],s=o=t[g++],f=l+t[g++],h=s+t[g++],u(f,s),c(f,s,f,h),c(f,h,l,h),c(l,h,l,s),c(l,s,f,s);break;case Ou.Z:a&&c(i,o,l,s),i=l,o=s;break}}return a&&a.length>2&&n.push(a),n}function y9(e,t,r,n,a,i,o,l,s,u){if(s0(e,r)&&s0(t,n)&&s0(a,o)&&s0(i,l)){s.push(o,l);return}var c=2/u,d=c*c,f=o-e,h=l-t,p=Math.sqrt(f*f+h*h);f/=p,h/=p;var v=r-e,g=n-t,y=a-o,b=i-l,x=v*v+g*g,F=y*y+b*b;if(x<d&&F<d){s.push(o,l);return}var S=f*v+h*g,E=-f*y-h*b,w=x-S*S,D=F-E*E;if(w<d&&S>=0&&D<d&&E>=0){s.push(o,l);return}var A=[],_=[];Yf(e,r,a,o,.5,A),Yf(t,n,i,l,.5,_),y9(A[0],_[0],A[1],_[1],A[2],_[2],A[3],_[3],s,u),y9(A[4],_[4],A[5],_[5],A[6],_[6],A[7],_[7],s,u)}function AIt(e,t){var r=g9(e),n=[];t=t||1;for(var a=0;a<r.length;a++){var i=r[a],o=[],l=i[0],s=i[1];o.push(l,s);for(var u=2;u<i.length;){var c=i[u++],d=i[u++],f=i[u++],h=i[u++],p=i[u++],v=i[u++];y9(l,s,c,d,f,h,p,v,o,t),l=p,s=v}n.push(o)}return n}function V1e(e,t,r){var n=e[t],a=e[1-t],i=Math.abs(n/a),o=Math.ceil(Math.sqrt(i*r)),l=Math.floor(r/o);l===0&&(l=1,o=r);for(var s=[],u=0;u<o;u++)s.push(l);var c=o*l,d=r-c;if(d>0)for(var u=0;u<d;u++)s[u%o]+=1;return s}function tee(e,t,r){for(var n=e.r0,a=e.r,i=e.startAngle,o=e.endAngle,l=Math.abs(o-i),s=l*a,u=a-n,c=s>Math.abs(u),d=V1e([s,u],c?0:1,t),f=(c?l:u)/d.length,h=0;h<d.length;h++)for(var p=(c?u:l)/d[h],v=0;v<d[h];v++){var g={};c?(g.startAngle=i+f*h,g.endAngle=i+f*(h+1),g.r0=n+p*v,g.r=n+p*(v+1)):(g.startAngle=i+p*v,g.endAngle=i+p*(v+1),g.r0=n+f*h,g.r=n+f*(h+1)),g.clockwise=e.clockwise,g.cx=e.cx,g.cy=e.cy,r.push(g)}}function _It(e,t,r){for(var n=e.width,a=e.height,i=n>a,o=V1e([n,a],i?0:1,t),l=i?\"width\":\"height\",s=i?\"height\":\"width\",u=i?\"x\":\"y\",c=i?\"y\":\"x\",d=e[l]/o.length,f=0;f<o.length;f++)for(var h=e[s]/o[f],p=0;p<o[f];p++){var v={};v[u]=f*d,v[c]=p*h,v[l]=d,v[s]=h,v.x+=e.x,v.y+=e.y,r.push(v)}}function ree(e,t,r,n){return e*n-r*t}function TIt(e,t,r,n,a,i,o,l){var s=r-e,u=n-t,c=o-a,d=l-i,f=ree(c,d,s,u);if(Math.abs(f)<1e-6)return null;var h=e-a,p=t-i,v=ree(h,p,c,d)/f;return v<0||v>1?null:new Ar(v*s+e,v*u+t)}function IIt(e,t,r){var n=new Ar;Ar.sub(n,r,t),n.normalize();var a=new Ar;Ar.sub(a,e,t);var i=a.dot(n);return i}function Tv(e,t){var r=e[e.length-1];r&&r[0]===t[0]&&r[1]===t[1]||e.push(t)}function kIt(e,t,r){for(var n=e.length,a=[],i=0;i<n;i++){var o=e[i],l=e[(i+1)%n],s=TIt(o[0],o[1],l[0],l[1],t.x,t.y,r.x,r.y);s&&a.push({projPt:IIt(s,t,r),pt:s,idx:i})}if(a.length<2)return[{points:e},{points:e}];a.sort(function(g,y){return g.projPt-y.projPt});var u=a[0],c=a[a.length-1];if(c.idx<u.idx){var d=u;u=c,c=d}for(var f=[u.pt.x,u.pt.y],h=[c.pt.x,c.pt.y],p=[f],v=[h],i=u.idx+1;i<=c.idx;i++)Tv(p,e[i].slice());Tv(p,h),Tv(p,f);for(var i=c.idx+1;i<=u.idx+n;i++)Tv(v,e[i%n].slice());return Tv(v,f),Tv(v,h),[{points:p},{points:v}]}function nee(e){var t=e.points,r=[],n=[];qD(t,r,n);var a=new Ir(r[0],r[1],n[0]-r[0],n[1]-r[1]),i=a.width,o=a.height,l=a.x,s=a.y,u=new Ar,c=new Ar;return i>o?(u.x=c.x=l+i/2,u.y=s,c.y=s+o):(u.y=c.y=s+o/2,u.x=l,c.x=l+i),kIt(t,u,c)}function y4(e,t,r,n){if(r===1)n.push(t);else{var a=Math.floor(r/2),i=e(t);y4(e,i[0],a,n),y4(e,i[1],r-a,n)}return n}function RIt(e,t){for(var r=[],n=0;n<t;n++)r.push(vN(e));return r}function MIt(e,t){t.setStyle(e.style),t.z=e.z,t.z2=e.z2,t.zlevel=e.zlevel}function PIt(e){for(var t=[],r=0;r<e.length;)t.push([e[r++],e[r++]]);return t}function OIt(e,t){var r=[],n=e.shape,a;switch(e.type){case\"rect\":_It(n,t,r),a=Zr;break;case\"sector\":tee(n,t,r),a=So;break;case\"circle\":tee({r0:0,r:n.r,startAngle:0,endAngle:Math.PI*2,cx:n.cx,cy:n.cy},t,r),a=So;break;default:var i=e.getComputedTransform(),o=i?Math.sqrt(Math.max(i[0]*i[0]+i[1]*i[1],i[2]*i[2]+i[3]*i[3])):1,l=ot(AIt(e.getUpdatedPathProxy(),o),function(y){return PIt(y)}),s=l.length;if(s===0)y4(nee,{points:l[0]},t,r);else if(s===t)for(var u=0;u<s;u++)r.push({points:l[u]});else{var c=0,d=ot(l,function(y){var b=[],x=[];qD(y,b,x);var F=(x[1]-b[1])*(x[0]-b[0]);return c+=F,{poly:y,area:F}});d.sort(function(y,b){return b.area-y.area});for(var f=t,u=0;u<s;u++){var h=d[u];if(f<=0)break;var p=u===s-1?f:Math.ceil(h.area/c*t);p<0||(y4(nee,{points:h.poly},p,r),f-=p)}}a=wo;break}if(!a)return RIt(e,t);for(var v=[],u=0;u<r.length;u++){var g=new a;g.setShape(r[u]),MIt(e,g),v.push(g)}return v}function BIt(e,t){var r=e.length,n=t.length;if(r===n)return[e,t];for(var a=[],i=[],o=r<n?e:t,l=Math.min(r,n),s=Math.abs(n-r)/6,u=(l-2)/6,c=Math.ceil(s/u)+1,d=[o[0],o[1]],f=s,h=2;h<l;){var p=o[h-2],v=o[h-1],g=o[h++],y=o[h++],b=o[h++],x=o[h++],F=o[h++],S=o[h++];if(f<=0){d.push(g,y,b,x,F,S);continue}for(var E=Math.min(f,c-1)+1,w=1;w<=E;w++){var D=w/E;Yf(p,g,b,F,D,a),Yf(v,y,x,S,D,i),p=a[3],v=i[3],d.push(a[1],i[1],a[2],i[2],p,v),g=a[5],y=i[5],b=a[6],x=i[6]}f-=E-1}return o===e?[d,t]:[e,d]}function aee(e,t){for(var r=e.length,n=e[r-2],a=e[r-1],i=[],o=0;o<t.length;)i[o++]=n,i[o++]=a;return i}function NIt(e,t){for(var r,n,a,i=[],o=[],l=0;l<Math.max(e.length,t.length);l++){var s=e[l],u=t[l],c=void 0,d=void 0;s?u?(r=BIt(s,u),c=r[0],d=r[1],n=c,a=d):(d=aee(a||s,s),c=s):(c=aee(n||u,u),d=u),i.push(c),o.push(d)}return[i,o]}function iee(e){for(var t=0,r=0,n=0,a=e.length,i=0,o=a-2;i<a;o=i,i+=2){var l=e[o],s=e[o+1],u=e[i],c=e[i+1],d=l*c-u*s;t+=d,r+=(l+u)*d,n+=(s+c)*d}return t===0?[e[0]||0,e[1]||0]:[r/t/3,n/t/3,t]}function $It(e,t,r,n){for(var a=(e.length-2)/6,i=1/0,o=0,l=e.length,s=l-2,u=0;u<a;u++){for(var c=u*6,d=0,f=0;f<l;f+=2){var h=f===0?c:(c+f-2)%s+2,p=e[h]-r[0],v=e[h+1]-r[1],g=t[f]-n[0],y=t[f+1]-n[1],b=g-p,x=y-v;d+=b*b+x*x}d<i&&(i=d,o=u)}return o}function LIt(e){for(var t=[],r=e.length,n=0;n<r;n+=2)t[n]=e[r-n-2],t[n+1]=e[r-n-1];return t}function jIt(e,t,r,n){for(var a=[],i,o=0;o<e.length;o++){var l=e[o],s=t[o],u=iee(l),c=iee(s);i==null&&(i=u[2]<0!=c[2]<0);var d=[],f=[],h=0,p=1/0,v=[],g=l.length;i&&(l=LIt(l));for(var y=$It(l,s,u,c)*6,b=g-2,x=0;x<b;x+=2){var F=(y+x)%b+2;d[x+2]=l[F]-u[0],d[x+3]=l[F+1]-u[1]}d[0]=l[y]-u[0],d[1]=l[y+1]-u[1];for(var S=n/r,E=-n/2;E<=n/2;E+=S){for(var w=Math.sin(E),D=Math.cos(E),A=0,x=0;x<l.length;x+=2){var _=d[x],I=d[x+1],M=s[x]-c[0],T=s[x+1]-c[1],k=M*D-T*w,R=M*w+T*D;v[x]=k,v[x+1]=R;var P=k-_,B=R-I;A+=P*P+B*B}if(A<p){p=A,h=E;for(var N=0;N<v.length;N++)f[N]=v[N]}}a.push({from:d,to:f,fromCp:u,toCp:c,rotation:-h})}return a}function b4(e){return e.__isCombineMorphing}var W1e=\"__mOriginal_\";function x4(e,t,r){var n=W1e+t,a=e[n]||e[t];e[n]||(e[n]=e[t]);var i=r.replace,o=r.after,l=r.before;e[t]=function(){var s=arguments,u;return l&&l.apply(this,s),i?u=i.apply(this,s):u=a.apply(this,s),o&&o.apply(this,s),u}}function Fb(e,t){var r=W1e+t;e[r]&&(e[t]=e[r],e[r]=null)}function oee(e,t){for(var r=0;r<e.length;r++)for(var n=e[r],a=0;a<n.length;){var i=n[a],o=n[a+1];n[a++]=t[0]*i+t[2]*o+t[4],n[a++]=t[1]*i+t[3]*o+t[5]}}function G1e(e,t){var r=e.getUpdatedPathProxy(),n=t.getUpdatedPathProxy(),a=NIt(g9(r),g9(n)),i=a[0],o=a[1],l=e.getComputedTransform(),s=t.getComputedTransform();function u(){this.transform=null}l&&oee(i,l),s&&oee(o,s),x4(t,\"updateTransform\",{replace:u}),t.transform=null;var c=jIt(i,o,10,Math.PI),d=[];x4(t,\"buildPath\",{replace:function(f){for(var h=t.__morphT,p=1-h,v=[],g=0;g<c.length;g++){var y=c[g],b=y.from,x=y.to,F=y.rotation*h,S=y.fromCp,E=y.toCp,w=Math.sin(F),D=Math.cos(F);sb(v,S,E,h);for(var A=0;A<b.length;A+=2){var _=b[A],I=b[A+1],M=x[A],T=x[A+1],k=_*p+M*h,R=I*p+T*h;d[A]=k*D-R*w+v[0],d[A+1]=k*w+R*D+v[1]}var P=d[0],B=d[1];f.moveTo(P,B);for(var A=2;A<b.length;){var M=d[A++],T=d[A++],N=d[A++],O=d[A++],z=d[A++],W=d[A++];P===M&&B===T&&N===z&&O===W?f.lineTo(z,W):f.bezierCurveTo(M,T,N,O,z,W),P=z,B=W}}}})}function cL(e,t,r){if(!e||!t)return t;var n=r.done,a=r.during;G1e(e,t),t.__morphT=0;function i(){Fb(t,\"buildPath\"),Fb(t,\"updateTransform\"),t.__morphT=-1,t.createPathProxy(),t.dirtyShape()}return t.animateTo({__morphT:1},rr({during:function(o){t.dirtyShape(),a&&a(o)},done:function(){i(),n&&n()}},r)),t}function zIt(e,t,r,n,a,i){var o=16;e=a===r?0:Math.round(32767*(e-r)/(a-r)),t=i===n?0:Math.round(32767*(t-n)/(i-n));for(var l=0,s,u=(1<<o)/2;u>0;u/=2){var c=0,d=0;(e&u)>0&&(c=1),(t&u)>0&&(d=1),l+=u*u*(3*c^d),d===0&&(c===1&&(e=u-1-e,t=u-1-t),s=e,e=t,t=s)}return l}function C4(e){var t=1/0,r=1/0,n=-1/0,a=-1/0,i=ot(e,function(l){var s=l.getBoundingRect(),u=l.getComputedTransform(),c=s.x+s.width/2+(u?u[4]:0),d=s.y+s.height/2+(u?u[5]:0);return t=Math.min(c,t),r=Math.min(d,r),n=Math.max(c,n),a=Math.max(d,a),[c,d]}),o=ot(i,function(l,s){return{cp:l,z:zIt(l[0],l[1],t,r,n,a),path:e[s]}});return o.sort(function(l,s){return l.z-s.z}).map(function(l){return l.path})}function U1e(e){return OIt(e.path,e.count)}function b9(){return{fromIndividuals:[],toIndividuals:[],count:0}}function HIt(e,t,r){var n=[];function a(S){for(var E=0;E<S.length;E++){var w=S[E];b4(w)?a(w.childrenRef()):w instanceof Vr&&n.push(w)}}a(e);var i=n.length;if(!i)return b9();var o=r.dividePath||U1e,l=o({path:t,count:i});if(l.length!==i)return console.error(\"Invalid morphing: unmatched splitted path\"),b9();n=C4(n),l=C4(l);for(var s=r.done,u=r.during,c=r.individualDelay,d=new Vc,f=0;f<i;f++){var h=n[f],p=l[f];p.parent=t,p.copyTransform(d),c||G1e(h,p)}t.__isCombineMorphing=!0,t.childrenRef=function(){return l};function v(S){for(var E=0;E<l.length;E++)l[E].addSelfToZr(S)}x4(t,\"addSelfToZr\",{after:function(S){v(S)}}),x4(t,\"removeSelfFromZr\",{after:function(S){for(var E=0;E<l.length;E++)l[E].removeSelfFromZr(S)}});function g(){t.__isCombineMorphing=!1,t.__morphT=-1,t.childrenRef=null,Fb(t,\"addSelfToZr\"),Fb(t,\"removeSelfFromZr\")}var y=l.length;if(c)for(var b=y,x=function(){b--,b===0&&(g(),s&&s())},f=0;f<y;f++){var F=c?rr({delay:(r.delay||0)+c(f,y,n[f],l[f]),done:x},r):r;cL(n[f],l[f],F)}else t.__morphT=0,t.animateTo({__morphT:1},rr({during:function(S){for(var E=0;E<y;E++){var w=l[E];w.__morphT=t.__morphT,w.dirtyShape()}u&&u(S)},done:function(){g();for(var S=0;S<e.length;S++)Fb(e[S],\"updateTransform\");s&&s()}},r));return t.__zr&&v(t.__zr),{fromIndividuals:n,toIndividuals:l,count:y}}function VIt(e,t,r){var n=t.length,a=[],i=r.dividePath||U1e;function o(h){for(var p=0;p<h.length;p++){var v=h[p];b4(v)?o(v.childrenRef()):v instanceof Vr&&a.push(v)}}if(b4(e)){o(e.childrenRef());var l=a.length;if(l<n)for(var s=0,u=l;u<n;u++)a.push(vN(a[s++%l]));a.length=n}else{a=i({path:e,count:n});for(var c=e.getComputedTransform(),u=0;u<a.length;u++)a[u].setLocalTransform(c);if(a.length!==n)return console.error(\"Invalid morphing: unmatched splitted path\"),b9()}a=C4(a),t=C4(t);for(var d=r.individualDelay,u=0;u<n;u++){var f=d?rr({delay:(r.delay||0)+d(u,n,a[u],t[u])},r):r;cL(a[u],t[u],f)}return{fromIndividuals:a,toIndividuals:t,count:t.length}}function lee(e){return nt(e[0])}function see(e,t){for(var r=[],n=e.length,a=0;a<n;a++)r.push({one:e[a],many:[]});for(var a=0;a<t.length;a++){var i=t[a].length,o=void 0;for(o=0;o<i;o++)r[o%n].many.push(t[a][o])}for(var l=0,a=n-1;a>=0;a--)if(!r[a].many.length){var s=r[l].many;if(s.length<=1)if(l)l=0;else return r;var i=s.length,u=Math.ceil(i/2);r[a].many=s.slice(u,i),r[l].many=s.slice(0,u),l++}return r}var WIt={clone:function(e){for(var t=[],r=1-Math.pow(1-e.path.style.opacity,1/e.count),n=0;n<e.count;n++){var a=vN(e.path);a.setStyle(\"opacity\",r),t.push(a)}return t},split:null};function Ek(e,t,r,n,a,i){if(!e.length||!t.length)return;var o=qg(\"update\",n,a);if(!(o&&o.duration>0))return;var l=n.getModel(\"universalTransition\").get(\"delay\"),s=Object.assign({setToFinal:!0},o),u,c;lee(e)&&(u=e,c=t),lee(t)&&(u=t,c=e);function d(y,b,x,F,S){var E=y.many,w=y.one;if(E.length===1&&!S){var D=b?E[0]:w,A=b?w:E[0];if(b4(D))d({many:[D],one:A},!0,x,F,!0);else{var _=l?rr({delay:l(x,F)},s):s;cL(D,A,_),i(D,A,D,A,_)}}else for(var I=rr({dividePath:WIt[r],individualDelay:l&&function(B,N,O,z){return l(B+x,F)}},s),M=b?HIt(E,w,I):VIt(w,E,I),T=M.fromIndividuals,k=M.toIndividuals,R=T.length,P=0;P<R;P++){var _=l?rr({delay:l(P,R)},s):s;i(T[P],k[P],b?E[P]:y.one,b?y.one:E[P],_)}}for(var f=u?u===e:e.length>t.length,h=u?see(c,u):see(f?t:e,[f?e:t]),p=0,v=0;v<h.length;v++)p+=h[v].many.length;for(var g=0,v=0;v<h.length;v++)d(h[v],f,g,p),g+=h[v].many.length}function qh(e){if(!e)return[];if(nt(e)){for(var t=[],r=0;r<e.length;r++)t.push(qh(e[r]));return t}var n=[];return e.traverse(function(a){a instanceof Vr&&!a.disableMorphing&&!a.invisible&&!a.ignore&&n.push(a)}),n}var K1e=1e4,GIt=0,uee=1,cee=2,UIt=rn();function KIt(e,t){for(var r=e.dimensions,n=0;n<r.length;n++){var a=e.getDimensionInfo(r[n]);if(a&&a.otherDims[t]===0)return r[n]}}function YIt(e,t,r){var n=e.getDimensionInfo(r),a=n&&n.ordinalMeta;if(n){var i=e.get(n.name,t);return a&&a.categories[i]||i+\"\"}}function dee(e,t,r,n){var a=n?\"itemChildGroupId\":\"itemGroupId\",i=KIt(e,a);if(i){var o=YIt(e,t,i);return o}var l=e.getRawDataItem(t),s=n?\"childGroupId\":\"groupId\";if(l&&l[s])return l[s]+\"\";if(!n)return r||e.getId(t)}function fee(e){var t=[];return q(e,function(r){var n=r.data,a=r.dataGroupId;if(!(n.count()>K1e))for(var i=n.getIndices(),o=0;o<i.length;o++)t.push({data:n,groupId:dee(n,o,a,!1),childGroupId:dee(n,o,a,!0),divide:r.divide,dataIndex:o})}),t}function Dk(e,t,r){e.traverse(function(n){n instanceof Vr&&Yn(n,{style:{opacity:0}},t,{dataIndex:r,isFrom:!0})})}function Ak(e){if(e.parent){var t=e.getComputedTransform();e.setLocalTransform(t),e.parent.remove(e)}}function Iv(e){e.stopAnimation(),e.isGroup&&e.traverse(function(t){t.stopAnimation()})}function qIt(e,t,r){var n=qg(\"update\",r,t);n&&e.traverse(function(a){if(a instanceof As){var i=A1t(a);i&&a.animateFrom({style:i},n)}})}function XIt(e,t){var r=e.length;if(r!==t.length)return!1;for(var n=0;n<r;n++){var a=e[n],i=t[n];if(a.data.getId(a.dataIndex)!==i.data.getId(i.dataIndex))return!1}return!0}function Y1e(e,t,r){var n=fee(e),a=fee(t);function i(x,F,S,E,w){(S||x)&&F.animateFrom({style:S&&S!==x?Xe(Xe({},S.style),x.style):x.style},w)}var o=!1,l=GIt,s=Gt(),u=Gt();n.forEach(function(x){x.groupId&&s.set(x.groupId,!0),x.childGroupId&&u.set(x.childGroupId,!0)});for(var c=0;c<a.length;c++){var d=a[c].groupId;if(u.get(d)){l=uee;break}var f=a[c].childGroupId;if(f&&s.get(f)){l=cee;break}}function h(x,F){return function(S){var E=S.data,w=S.dataIndex;return F?E.getId(w):x?l===uee?S.childGroupId:S.groupId:l===cee?S.childGroupId:S.groupId}}var p=XIt(n,a),v={};if(!p)for(var c=0;c<a.length;c++){var g=a[c],y=g.data.getItemGraphicEl(g.dataIndex);y&&(v[y.id]=!0)}function b(x,F){var S=n[F],E=a[x],w=E.data.hostModel,D=S.data.getItemGraphicEl(S.dataIndex),A=E.data.getItemGraphicEl(E.dataIndex);if(D===A){A&&qIt(A,E.dataIndex,w);return}D&&v[D.id]||A&&(Iv(A),D?(Iv(D),Ak(D),o=!0,Ek(qh(D),qh(A),E.divide,w,x,i)):Dk(A,w,x))}new pd(n,a,h(!0,p),h(!1,p),null,\"multiple\").update(b).updateManyToOne(function(x,F){var S=a[x],E=S.data,w=E.hostModel,D=E.getItemGraphicEl(S.dataIndex),A=hn(ot(F,function(_){return n[_].data.getItemGraphicEl(n[_].dataIndex)}),function(_){return _&&_!==D&&!v[_.id]});D&&(Iv(D),A.length?(q(A,function(_){Iv(_),Ak(_)}),o=!0,Ek(qh(A),qh(D),S.divide,w,x,i)):Dk(D,w,S.dataIndex))}).updateOneToMany(function(x,F){var S=n[F],E=S.data.getItemGraphicEl(S.dataIndex);if(!(E&&v[E.id])){var w=hn(ot(x,function(A){return a[A].data.getItemGraphicEl(a[A].dataIndex)}),function(A){return A&&A!==E}),D=a[x[0]].data.hostModel;w.length&&(q(w,function(A){return Iv(A)}),E?(Iv(E),Ak(E),o=!0,Ek(qh(E),qh(w),S.divide,D,x[0],i)):q(w,function(A){return Dk(A,D,x[0])}))}}).updateManyToMany(function(x,F){new pd(F,x,function(S){return n[S].data.getId(n[S].dataIndex)},function(S){return a[S].data.getId(a[S].dataIndex)}).update(function(S,E){b(x[S],F[E])}).execute()}).execute(),o&&q(t,function(x){var F=x.data,S=F.hostModel,E=S&&r.getViewOfSeriesModel(S),w=qg(\"update\",S,0);E&&S.isAnimationEnabled()&&w&&w.duration>0&&E.group.traverse(function(D){D instanceof Vr&&!D.animators.length&&D.animateFrom({style:{opacity:0}},w)})})}function hee(e){var t=e.getModel(\"universalTransition\").get(\"seriesKey\");return t||e.id}function pee(e){return nt(e)?e.sort().join(\",\"):e}function Jd(e){if(e.hostModel)return e.hostModel.getModel(\"universalTransition\").get(\"divideShape\")}function JIt(e,t){var r=Gt(),n=Gt(),a=Gt();return q(e.oldSeries,function(i,o){var l=e.oldDataGroupIds[o],s=e.oldData[o],u=hee(i),c=pee(u);n.set(c,{dataGroupId:l,data:s}),nt(u)&&q(u,function(d){a.set(d,{key:c,dataGroupId:l,data:s})})}),q(t.updatedSeries,function(i){if(i.isUniversalTransitionEnabled()&&i.isAnimationEnabled()){var o=i.get(\"dataGroupId\"),l=i.getData(),s=hee(i),u=pee(s),c=n.get(u);if(c)r.set(u,{oldSeries:[{dataGroupId:c.dataGroupId,divide:Jd(c.data),data:c.data}],newSeries:[{dataGroupId:o,divide:Jd(l),data:l}]});else if(nt(s)){var d=[];q(s,function(p){var v=n.get(p);v.data&&d.push({dataGroupId:v.dataGroupId,divide:Jd(v.data),data:v.data})}),d.length&&r.set(u,{oldSeries:d,newSeries:[{dataGroupId:o,data:l,divide:Jd(l)}]})}else{var f=a.get(s);if(f){var h=r.get(f.key);h||(h={oldSeries:[{dataGroupId:f.dataGroupId,data:f.data,divide:Jd(f.data)}],newSeries:[]},r.set(f.key,h)),h.newSeries.push({dataGroupId:o,data:l,divide:Jd(l)})}}}}),r}function mee(e,t){for(var r=0;r<e.length;r++){var n=t.seriesIndex!=null&&t.seriesIndex===e[r].seriesIndex||t.seriesId!=null&&t.seriesId===e[r].id;if(n)return r}}function ZIt(e,t,r,n){var a=[],i=[];q(An(e.from),function(o){var l=mee(t.oldSeries,o);l>=0&&a.push({dataGroupId:t.oldDataGroupIds[l],data:t.oldData[l],divide:Jd(t.oldData[l]),groupIdDim:o.dimension})}),q(An(e.to),function(o){var l=mee(r.updatedSeries,o);if(l>=0){var s=r.updatedSeries[l].getData();i.push({dataGroupId:t.oldDataGroupIds[l],data:s,divide:Jd(s),groupIdDim:o.dimension})}}),a.length>0&&i.length>0&&Y1e(a,i,n)}function QIt(e){e.registerUpdateLifecycle(\"series:beforeupdate\",function(t,r,n){q(An(n.seriesTransition),function(a){q(An(a.to),function(i){for(var o=n.updatedSeries,l=0;l<o.length;l++)(i.seriesIndex!=null&&i.seriesIndex===o[l].seriesIndex||i.seriesId!=null&&i.seriesId===o[l].id)&&(o[l][Nw]=!0)})})}),e.registerUpdateLifecycle(\"series:transition\",function(t,r,n){var a=UIt(r);if(a.oldSeries&&n.updatedSeries&&n.optionChanged){var i=n.seriesTransition;if(i)q(An(i),function(h){ZIt(h,a,n,r)});else{var o=JIt(a,n);q(o.keys(),function(h){var p=o.get(h);Y1e(p.oldSeries,p.newSeries,r)})}q(n.updatedSeries,function(h){h[Nw]&&(h[Nw]=!1)})}for(var l=t.getSeries(),s=a.oldSeries=[],u=a.oldDataGroupIds=[],c=a.oldData=[],d=0;d<l.length;d++){var f=l[d].getData();f.count()<K1e&&(s.push(l[d]),u.push(l[d].get(\"dataGroupId\")),c.push(f))}})}Nr([uFt]);Nr([aFt]);Nr([TFt,WFt,eSt,MSt,WSt,Iwt,aEt,zEt,u3t,m3t,w3t,y4t,V4t,e6t,v6t,x6t,I6t,N6t,Y6t,eDt,cDt,KDt]);Nr(fAt);Nr($At);Nr(U0e);Nr(JAt);Nr(kge);Nr(t_t);Nr(c_t);Nr(J_t);Nr(v5t);Nr(gC);Nr(M5t);Nr(B5t);Nr(U5t);Nr(Q5t);Nr(iTt);Nr(dTt);Nr(CTt);Nr(LTt);Nr(P1e);Nr(O1e);Nr(iIt);Nr(j1e);Nr(z1e);Nr(cIt);Nr(SIt);Nr(DIt);Nr(QIt);Nr(wCt);const ekt=Object.freeze(Object.defineProperty({__proto__:null,Axis:Bs,ChartView:Cn,ComponentModel:jr,ComponentView:Wn,List:xo,Model:pn,PRIORITY:tve,SeriesModel:_n,color:Uvt,connect:M2t,dataTool:j2t,dependencies:m2t,disConnect:P2t,disconnect:uve,dispose:O2t,env:zr,extendChartView:dCt,extendComponentModel:sCt,extendComponentView:uCt,extendSeriesModel:cCt,format:Jxt,getCoordinateSystemDimensions:N2t,getInstanceByDom:KN,getInstanceById:B2t,getMap:L2t,graphic:Xxt,helper:Hxt,init:R2t,innerDrawElementOnCanvas:VN,matrix:wvt,number:Yxt,parseGeoJSON:IP,parseGeoJson:IP,registerAction:_u,registerCoordinateSystem:fve,registerLayout:hve,registerLoading:ZN,registerLocale:EN,registerMap:pve,registerPostInit:cve,registerPostUpdate:dve,registerPreprocessor:qN,registerProcessor:XN,registerTheme:YN,registerTransform:mve,registerUpdateLifecycle:fA,registerVisual:ch,setCanvasCreator:$2t,setPlatformAPI:lhe,throttle:cA,time:qxt,use:Nr,util:Zxt,vector:cvt,version:p2t,zrUtil:nvt,zrender:A0t},Symbol.toStringTag,{value:\"Module\"}));var $p={},Of={},q1e={};(function(e){Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=void 0;var t=1;e.default=function(){return\"\".concat(t++)}})(q1e);var EA={},DA={},dL={};(function(e){Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=void 0,e.default=function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:60,a=null;return function(){for(var i=this,o=arguments.length,l=new Array(o),s=0;s<o;s++)l[s]=arguments[s];clearTimeout(a),a=setTimeout(function(){r.apply(i,l)},n)}}})(dL);var lc={};Object.defineProperty(lc,\"__esModule\",{value:!0});lc.SizeSensorId=lc.SensorTabIndex=lc.SensorClassName=void 0;lc.SizeSensorId=\"size-sensor-id\";lc.SensorClassName=\"size-sensor-object\";lc.SensorTabIndex=\"-1\";Object.defineProperty(DA,\"__esModule\",{value:!0});DA.createSensor=void 0;var tkt=rkt(dL),_k=lc;function rkt(e){return e&&e.__esModule?e:{default:e}}DA.createSensor=function(t,r){var n=void 0,a=[],i=function(){getComputedStyle(t).position===\"static\"&&(t.style.position=\"relative\");var d=document.createElement(\"object\");return d.onload=function(){d.contentDocument.defaultView.addEventListener(\"resize\",o),o()},d.style.display=\"block\",d.style.position=\"absolute\",d.style.top=\"0\",d.style.left=\"0\",d.style.height=\"100%\",d.style.width=\"100%\",d.style.overflow=\"hidden\",d.style.pointerEvents=\"none\",d.style.zIndex=\"-1\",d.style.opacity=\"0\",d.setAttribute(\"class\",_k.SensorClassName),d.setAttribute(\"tabindex\",_k.SensorTabIndex),d.type=\"text/html\",t.appendChild(d),d.data=\"about:blank\",d},o=(0,tkt.default)(function(){a.forEach(function(c){c(t)})}),l=function(d){n||(n=i()),a.indexOf(d)===-1&&a.push(d)},s=function(){n&&n.parentNode&&(n.contentDocument&&n.contentDocument.defaultView.removeEventListener(\"resize\",o),n.parentNode.removeChild(n),t.removeAttribute(_k.SizeSensorId),n=void 0,a=[],r&&r())},u=function(d){var f=a.indexOf(d);f!==-1&&a.splice(f,1),a.length===0&&n&&s()};return{element:t,bind:l,destroy:s,unbind:u}};var AA={};Object.defineProperty(AA,\"__esModule\",{value:!0});AA.createSensor=void 0;var nkt=lc,akt=ikt(dL);function ikt(e){return e&&e.__esModule?e:{default:e}}AA.createSensor=function(t,r){var n=void 0,a=[],i=(0,akt.default)(function(){a.forEach(function(c){c(t)})}),o=function(){var d=new ResizeObserver(i);return d.observe(t),i(),d},l=function(d){n||(n=o()),a.indexOf(d)===-1&&a.push(d)},s=function(){n&&n.disconnect(),a=[],n=void 0,t.removeAttribute(nkt.SizeSensorId),r&&r()},u=function(d){var f=a.indexOf(d);f!==-1&&a.splice(f,1),a.length===0&&n&&s()};return{element:t,bind:l,destroy:s,unbind:u}};Object.defineProperty(EA,\"__esModule\",{value:!0});EA.createSensor=void 0;var okt=DA,lkt=AA;EA.createSensor=typeof ResizeObserver<\"u\"?lkt.createSensor:okt.createSensor;Object.defineProperty(Of,\"__esModule\",{value:!0});Of.removeSensor=Of.getSensor=Of.Sensors=void 0;var skt=ckt(q1e),ukt=EA,x9=lc;function ckt(e){return e&&e.__esModule?e:{default:e}}var Sb=Of.Sensors={};function X1e(e){e&&Sb[e]&&delete Sb[e]}Of.getSensor=function(t){var r=t.getAttribute(x9.SizeSensorId);if(r&&Sb[r])return Sb[r];var n=(0,skt.default)();t.setAttribute(x9.SizeSensorId,n);var a=(0,ukt.createSensor)(t,function(){return X1e(n)});return Sb[n]=a,a};Of.removeSensor=function(t){var r=t.element.getAttribute(x9.SizeSensorId);t.destroy(),X1e(r)};var fL,hL;Object.defineProperty($p,\"__esModule\",{value:!0});$p.ver=hL=$p.clear=fL=$p.bind=void 0;var C9=Of;fL=$p.bind=function(t,r){var n=(0,C9.getSensor)(t);return n.bind(r),function(){n.unbind(r)}};hL=$p.clear=function(t){var r=(0,C9.getSensor)(t);(0,C9.removeSensor)(r)};$p.ver=\"1.0.3\";function vee(e,t){var r={};return t.forEach(function(n){r[n]=e[n]}),r}function Tk(e){return typeof e==\"function\"}function dkt(e){return typeof e==\"string\"}var fkt=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t==\"object\"&&typeof r==\"object\"){if(t.constructor!==r.constructor)return!1;var n,a,i;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!e(t[a],r[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(i=Object.keys(t),n=i.length,n!==Object.keys(r).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,i[a]))return!1;for(a=n;a--!==0;){var o=i[a];if(!e(t[o],r[o]))return!1}return!0}return t!==t&&r!==r};const kv=Yo(fkt);var hkt=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.echarts=r.echarts,n.ele=null,n.isInitialResize=!0,n.eventHandlerRefs={},n}return t.prototype.componentDidMount=function(){this.renderNewEcharts()},t.prototype.componentDidUpdate=function(r){var n=this.props.shouldSetOption;if(!(Tk(n)&&!n(r,this.props))){if(!kv(r.theme,this.props.theme)||!kv(r.opts,this.props.opts)){this.dispose(),this.renderNewEcharts();return}var a=this.getEchartsInstance();kv(r.onEvents,this.props.onEvents)||(this.unbindEvents(a),this.bindEvents(a,this.props.onEvents));var i=[\"option\",\"notMerge\",\"replaceMerge\",\"lazyUpdate\",\"showLoading\",\"loadingOption\"];kv(vee(this.props,i),vee(r,i))||this.updateEChartsOption(),(!kv(r.style,this.props.style)||!kv(r.className,this.props.className))&&this.resize()}},t.prototype.componentWillUnmount=function(){this.dispose()},t.prototype.initEchartsInstance=function(){return gK(this,void 0,void 0,function(){var r=this;return yK(this,function(n){return[2,new Promise(function(a){r.echarts.init(r.ele,r.props.theme,r.props.opts);var i=r.getEchartsInstance();i.on(\"finished\",function(){var o=r.ele.clientWidth,l=r.ele.clientHeight;r.echarts.dispose(r.ele);var s=ib({width:o,height:l},r.props.opts);a(r.echarts.init(r.ele,r.props.theme,s))})})]})})},t.prototype.getEchartsInstance=function(){return this.echarts.getInstanceByDom(this.ele)},t.prototype.dispose=function(){if(this.ele){try{hL(this.ele)}catch(r){console.warn(r)}this.echarts.dispose(this.ele)}},t.prototype.renderNewEcharts=function(){return gK(this,void 0,void 0,function(){var r,n,a,i,o,l,s=this;return yK(this,function(u){switch(u.label){case 0:return r=this.props,n=r.onEvents,a=r.onChartReady,i=r.autoResize,o=i===void 0?!0:i,[4,this.initEchartsInstance()];case 1:return u.sent(),l=this.updateEChartsOption(),this.bindEvents(l,n||{}),Tk(a)&&a(l),this.ele&&o&&fL(this.ele,function(){s.resize()}),[2]}})})},t.prototype.bindEvents=function(r,n){var a=this,i=function(l,s){if(dkt(l)&&Tk(s)){var u=function(c){s(c,r)};r.on(l,u),a.eventHandlerRefs[l]=u}};for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&i(o,n[o])},t.prototype.unbindEvents=function(r){for(var n=0,a=Object.entries(this.eventHandlerRefs);n<a.length;n++){var i=a[n],o=i[0],l=i[1];r.off(o,l)}this.eventHandlerRefs={}},t.prototype.updateEChartsOption=function(){var r=this.props,n=r.option,a=r.notMerge,i=a===void 0?!1:a,o=r.replaceMerge,l=o===void 0?null:o,s=r.lazyUpdate,u=s===void 0?!1:s,c=r.showLoading,d=r.loadingOption,f=d===void 0?null:d,h=this.getEchartsInstance();return h.setOption(n,{notMerge:i,replaceMerge:l,lazyUpdate:u}),c?h.showLoading(f):h.hideLoading(),h},t.prototype.resize=function(){var r=this.getEchartsInstance();if(!this.isInitialResize)try{r.resize({width:\"auto\",height:\"auto\"})}catch(n){console.warn(n)}this.isInitialResize=!1},t.prototype.render=function(){var r=this,n=this.props,a=n.style,i=n.className,o=i===void 0?\"\":i;n.echarts,n.option,n.theme,n.notMerge,n.replaceMerge,n.lazyUpdate,n.showLoading,n.loadingOption,n.opts,n.onChartReady,n.onEvents,n.shouldSetOption,n.autoResize;var l=jmt(n,[\"style\",\"className\",\"echarts\",\"option\",\"theme\",\"notMerge\",\"replaceMerge\",\"lazyUpdate\",\"showLoading\",\"loadingOption\",\"opts\",\"onChartReady\",\"onEvents\",\"shouldSetOption\",\"autoResize\"]),s=ib({height:300},a);return le.createElement(\"div\",ib({ref:function(u){r.ele=u},style:s,className:\"echarts-for-react \".concat(o)},l))},t}(m.PureComponent),pL=function(e){Re(t,e);function t(r){var n=e.call(this,r)||this;return n.echarts=ekt,n}return t}(hkt);const LS=[Lc.primary,Lc.success,Lc.warning,Lc.danger],J1e=({data:e,xField:t,yFields:r,title:n,legend:a=!0,height:i=320,smooth:o=!0})=>{const l=m.useMemo(()=>({title:n?{text:n,left:\"center\",textStyle:{fontSize:14,fontWeight:500}}:void 0,tooltip:{trigger:\"axis\"},legend:a?{data:r.map(s=>s.name),bottom:0}:void 0,grid:{left:\"3%\",right:\"4%\",bottom:a?\"12%\":\"3%\",top:n?\"15%\":\"8%\",containLabel:!0},xAxis:{type:\"category\",data:e.map(s=>String(s[t])),boundaryGap:!1},yAxis:{type:\"value\"},series:r.map((s,u)=>({name:s.name,type:\"line\",smooth:o,data:e.map(c=>Number(c[s.field])||0),itemStyle:{color:s.color||LS[u%LS.length]},lineStyle:{width:2}})),color:r.map((s,u)=>s.color||LS[u%LS.length])}),[e,t,r,n,a,o]);return C.jsx(pL,{option:l,style:{height:i},notMerge:!0})},mL=({data:e,xField:t,yField:r,title:n,stack:a,height:i=320,color:o})=>{const l=m.useMemo(()=>({title:n?{text:n,left:\"center\",textStyle:{fontSize:14,fontWeight:500}}:void 0,tooltip:{trigger:\"axis\"},grid:{left:\"3%\",right:\"4%\",bottom:\"3%\",top:n?\"15%\":\"8%\",containLabel:!0},xAxis:{type:\"category\",data:e.map(s=>String(s[t]))},yAxis:{type:\"value\"},series:[{type:\"bar\",data:e.map(s=>Number(s[r])||0),itemStyle:{color:o||Lc.primary},stack:a,barWidth:\"40%\"}]}),[e,t,r,n,a,o]);return C.jsx(pL,{option:l,style:{height:i},notMerge:!0})},Z1e=({data:e,nameField:t,valueField:r,title:n,height:a=320})=>{const i=m.useMemo(()=>({title:n?{text:n,left:\"center\",textStyle:{fontSize:14,fontWeight:500}}:void 0,tooltip:{trigger:\"item\",formatter:\"{b}: {c} ({d}%)\"},legend:{orient:\"vertical\",left:\"left\",top:\"middle\"},series:[{type:\"pie\",radius:[\"40%\",\"70%\"],center:[\"60%\",\"50%\"],avoidLabelOverlap:!1,itemStyle:{borderRadius:4,borderColor:\"#fff\",borderWidth:2},label:{show:!0,formatter:\"{b}: {d}%\"},data:e.map(o=>({name:String(o[t]),value:Number(o[r])||0}))}],color:[Lc.primary,Lc.success,Lc.warning,Lc.danger,\"#722ed1\",\"#13c2c2\"]}),[e,t,r,n]);return C.jsx(pL,{option:i,style:{height:a},notMerge:!0})},gs=({title:e,value:t,precision:r,prefix:n,suffix:a,trend:i,trendValue:o,icon:l,style:s})=>{const u={title:e,value:typeof t==\"number\"&&typeof r==\"number\"?t.toFixed(r):t,prefix:n,suffix:a,valueStyle:{fontSize:24,fontWeight:600,color:i===\"up\"?\"#52c41a\":i===\"down\"?\"#ff4d4f\":void 0}};return C.jsx(hr,{style:s,bodyStyle:{padding:20},children:C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[C.jsx(nl,{...u}),i&&o&&C.jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",color:i===\"up\"?\"#52c41a\":\"#ff4d4f\",fontSize:14},children:[i===\"up\"?C.jsx(tde,{}):C.jsx(ede,{}),C.jsx(\"span\",{style:{marginLeft:4},children:o})]}),l&&C.jsx(\"div\",{style:{fontSize:32,color:\"#1890ff\",opacity:.8},children:l})]})})},pkt=()=>{const e=La(),{planData:t,loading:r}=da(o=>o.dashboard);m.useEffect(()=>{e(yw())},[e]);const n=m.useMemo(()=>[{month:\"1月\",created:12,completed:8},{month:\"2月\",created:15,completed:11},{month:\"3月\",created:18,completed:14},{month:\"4月\",created:22,completed:19},{month:\"5月\",created:20,completed:16},{month:\"6月\",created:25,completed:21}],[]),a=m.useMemo(()=>{var o,l,s;return[{name:\"测评\",value:((o=t==null?void 0:t.plansByType)==null?void 0:o[Si.Review])||45},{name:\"回评\",value:((l=t==null?void 0:t.plansByType)==null?void 0:l[Si.Reply])||30},{name:\"免评\",value:((s=t==null?void 0:t.plansByType)==null?void 0:s[Si.Free])||25}]},[t]),i=m.useMemo(()=>[{channel:\"IM\",count:120},{channel:\"EDM\",count:95},{channel:\"APP\",count:78},{channel:\"TEL\",count:45},{channel:\"KOC\",count:35},{channel:\"KOL\",count:28}],[]);return r||!t?C.jsx(mi,{size:\"large\",style:{display:\"block\",margin:\"100px auto\"}}):C.jsxs(\"div\",{children:[C.jsxs(sr,{gutter:16,style:{marginBottom:24},children:[C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"总计划数\",value:t.totalPlans})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"进行中\",value:t.activePlans,trend:\"up\",trendValue:\"12%\"})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"已完成\",value:t.completedPlans,trend:\"up\",trendValue:\"8%\"})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"完成率\",value:t.completionRate,suffix:\"%\",precision:1})})]}),C.jsxs(sr,{gutter:16,style:{marginBottom:24},children:[C.jsx(Se,{span:14,children:C.jsx(hr,{title:\"月度计划趋势\",children:C.jsx(J1e,{data:n,xField:\"month\",yFields:[{field:\"created\",name:\"新建\",color:\"#1890ff\"},{field:\"completed\",name:\"完成\",color:\"#52c41a\"}],height:320})})}),C.jsx(Se,{span:10,children:C.jsx(hr,{title:\"计划类型分布\",children:C.jsx(Z1e,{data:a,nameField:\"name\",valueField:\"value\",height:320})})})]}),C.jsx(sr,{gutter:16,children:C.jsx(Se,{span:24,children:C.jsx(hr,{title:\"渠道推送效果对比\",children:C.jsx(mL,{data:i,xField:\"channel\",yField:\"count\",height:300})})})})]})},mkt=Object.freeze(Object.defineProperty({__proto__:null,default:pkt},Symbol.toStringTag,{value:\"Module\"})),vkt=()=>{var i;const e=La(),{asinData:t,loading:r}=da(o=>o.dashboard);m.useEffect(()=>{e(_ce())},[e]);const n=m.useMemo(()=>[{range:\"0-5\",count:120},{range:\"6-10\",count:85},{range:\"11-20\",count:65},{range:\"21-50\",count:40},{range:\"50+\",count:15}],[]),a=m.useMemo(()=>{var o,l,s;return[{name:\"好评\",value:((o=t==null?void 0:t.ratingDistribution)==null?void 0:o[\"5\"])||55},{name:\"中评\",value:((l=t==null?void 0:t.ratingDistribution)==null?void 0:l[\"3\"])||25},{name:\"差评\",value:((s=t==null?void 0:t.ratingDistribution)==null?void 0:s[\"1\"])||15},{name:\"待评价\",value:20}]},[t]);return r||!t?C.jsx(mi,{size:\"large\",style:{display:\"block\",margin:\"100px auto\"}}):C.jsxs(\"div\",{children:[C.jsxs(sr,{gutter:16,style:{marginBottom:24},children:[C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"总ASIN数\",value:t.totalASINs})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"已评价ASIN\",value:t.asinsWithReviews,trend:\"up\",trendValue:\"5%\"})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"平均评分\",value:t.averageRating,precision:1,suffix:\"/5\"})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"风险ASIN\",value:((i=t.riskASINs)==null?void 0:i.length)||0,trend:\"down\",trendValue:\"3%\"})})]}),C.jsxs(sr,{gutter:16,style:{marginBottom:24},children:[C.jsx(Se,{span:14,children:C.jsx(hr,{title:\"ASIN 评价数量分布\",children:C.jsx(mL,{data:n,xField:\"range\",yField:\"count\",height:320})})}),C.jsx(Se,{span:10,children:C.jsx(hr,{title:\"评价状态分布\",children:C.jsx(Z1e,{data:a,nameField:\"name\",valueField:\"value\",height:320})})})]})]})},gkt=Object.freeze(Object.defineProperty({__proto__:null,default:vkt},Symbol.toStringTag,{value:\"Module\"})),ykt=()=>{const e=La(),{csData:t,loading:r}=da(i=>i.dashboard);m.useEffect(()=>{e(Tce())},[e]);const n=m.useMemo(()=>[{date:\"周一\",created:45,resolved:38},{date:\"周二\",created:52,resolved:45},{date:\"周三\",created:48,resolved:42},{date:\"周四\",created:61,resolved:55},{date:\"周五\",created:58,resolved:50},{date:\"周六\",created:35,resolved:30},{date:\"周日\",created:28,resolved:25}],[]),a=m.useMemo(()=>t!=null&&t.agentMetrics?t.agentMetrics.map(i=>({name:i.agentName,tickets:i.resolvedTickets})):[],[t]);return r||!t?C.jsx(mi,{size:\"large\",style:{display:\"block\",margin:\"100px auto\"}}):C.jsxs(\"div\",{children:[C.jsxs(sr,{gutter:16,style:{marginBottom:24},children:[C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"工单总数\",value:t.totalTickets})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"平均响应时间\",value:t.avgResolutionTime,suffix:\"min\"})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"解决率\",value:t.totalTickets>0?Math.round(t.resolvedToday/t.totalTickets*100):0,suffix:\"%\"})}),C.jsx(Se,{span:6,children:C.jsx(gs,{title:\"满意度\",value:t.avgSatisfactionScore,precision:1,suffix:\"/5\",trend:\"up\",trendValue:\"2%\"})})]}),C.jsxs(sr,{gutter:16,style:{marginBottom:24},children:[C.jsx(Se,{span:14,children:C.jsx(hr,{title:\"每日工单趋势\",children:C.jsx(J1e,{data:n,xField:\"date\",yFields:[{field:\"created\",name:\"新建工单\",color:\"#1890ff\"},{field:\"resolved\",name:\"已解决\",color:\"#52c41a\"}],height:320})})}),C.jsx(Se,{span:10,children:C.jsx(hr,{title:\"客服人员绩效排名\",children:C.jsx(mL,{data:a.length>0?a:[{name:\"张三\",tickets:45},{name:\"李四\",tickets:38},{name:\"王五\",tickets:32},{name:\"赵六\",tickets:28},{name:\"孙七\",tickets:22}],xField:\"name\",yField:\"tickets\",height:320})})})]})]})},bkt=Object.freeze(Object.defineProperty({__proto__:null,default:ykt},Symbol.toStringTag,{value:\"Module\"})),xkt=()=>{const{code:e}=$g(),t=Ia(),r={userName:\"buba00\",userId:\"200235449\",country:\"United Kingdom\",phone:\"-\",email:\"-\",userType:\"APP用户\",userAddress:\"-\",joyhubId:\"22114554\",joyhubNickname:\"buba00\",appRegisterTime:\"2026-05-21 07:02:09\",appLastOnlineTime:\"2026-05-22 23:08:24\",appBoundProducts:\"红颜知己\",appActivityCount:\"-\",emailCode:\"-\",totalOrders:\"206-9778136-6488364 (订单1)\",replyCount:1,reviewCount:0},n={status:\"已完成\",callNumber:\"-\",linkedAccount:\"2066\",userEmail:\"-\",userEmailRemark:\"-\",orderQueryRemark:\"-\",consultOrder:\"206-9778136-6488364\",shop:\"可用*UK2、UK4*AM-G147-UK / MaiDaXingXuan\",problemProduct:\"-\",problemAttachment:\"-\",solution:\"回评(红颜知己-紫色-新APP进行中\",solutionRemark:\"-\",refundAccount1:\"-\",refundAccount1Remark:\"-\",visitTime:\"-\",visitRemark:\"-\",freeTimeSlot:\"-\",freeTimeRemark:\"-\",csStaff:\"Jhona Ver\",serviceTime:\"2026-05-23 11:10:45\"},a={orderNo:\"206-9778136-6488364\",product:\"ROSELLA 2 / 红颜知己-紫色-新APP\",asin:\"B0FS35RJ9Q\",msku:\"2Q-SABN-MAGW\",quantity:1,unitPrice:\"£ 13.32\",title:\"Lolitree AI Sync Rose Toy Clit Sucker, Comfort-Fit Flat-Rim, 10 Sucking Vibrating Modes Nipple Clitorise Stimulator Sucker Adult Toys, Female Sex Toyscouples for Women Vibrabrat, Silent Pleasure\",recipient:\"Hanna Wegrowska\",country:\"Britain\",totalAmount:\"£ 15.99\",trackingNo:\"-\",shop:\"可用*UK2、UK4*AM-G147-UK / MaiDaXingXuan\",address:\"LONDON GB\",zipCode:\"N9 7BD\",orderTime:\"2026-05-19 18:55:10\"},i=()=>{t(`/cs/chat-record?customerId=${r.userId}`)};return e?C.jsxs(\"div\",{style:{padding:24,backgroundColor:\"#f5f5f5\",minHeight:\"calc(100vh - 64px - 48px)\"},children:[C.jsx(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:24},children:C.jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\"},children:[C.jsx(ze,{type:\"text\",icon:C.jsx(_m,{}),onClick:()=>t(-1),style:{marginRight:12},children:\"返回\"}),C.jsxs(\"h2\",{style:{margin:0},children:[\"售后信息详情\",C.jsx(et,{color:\"blue\",style:{marginLeft:8},children:e})]})]})}),C.jsxs(\"div\",{style:{display:\"flex\",gap:24},children:[C.jsxs(\"div\",{style:{flex:1,minWidth:0},children:[C.jsx(hr,{title:C.jsx(\"span\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8},children:\"用户信息\"}),style:{marginBottom:24},children:C.jsxs(Ne,{bordered:!0,size:\"small\",column:3,children:[C.jsx(Ne.Item,{label:\"用户姓名\",children:r.userName}),C.jsx(Ne.Item,{label:\"用户ID\",children:r.userId}),C.jsx(Ne.Item,{label:\"所在国家\",children:r.country}),C.jsx(Ne.Item,{label:\"电话\",children:r.phone}),C.jsx(Ne.Item,{label:\"邮箱\",children:r.email}),C.jsx(Ne.Item,{label:\"类型\",children:r.userType}),C.jsx(Ne.Item,{label:\"用户地址\",children:r.userAddress}),C.jsx(Ne.Item,{label:\"JOYHUB的ID\",children:r.joyhubId}),C.jsx(Ne.Item,{label:\"JOYHUB 昵称\",children:r.joyhubNickname}),C.jsx(Ne.Item,{label:\"APP注册时间\",children:r.appRegisterTime}),C.jsx(Ne.Item,{label:\"APP最近上线时间\",children:r.appLastOnlineTime}),C.jsx(Ne.Item,{label:\"APP绑定产品\",children:r.appBoundProducts}),C.jsx(Ne.Item,{label:\"APP参与活动数\",children:r.appActivityCount}),C.jsx(Ne.Item,{label:\"APP参与推送\",children:r.emailCode}),C.jsx(Ne.Item,{label:\"邮箱编码\",children:r.emailCode}),C.jsx(Ne.Item,{label:\"历史订单\",children:r.totalOrders}),C.jsx(Ne.Item,{label:\"回评数\",children:r.replyCount}),C.jsx(Ne.Item,{label:\"测评数\",children:r.reviewCount})]})}),C.jsx(hr,{title:C.jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[C.jsxs(\"span\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8},children:[\"售后服务详情 \",C.jsx(et,{color:\"success\",children:n.status})]}),C.jsx(ze,{type:\"primary\",size:\"small\",icon:C.jsx(n3,{}),onClick:i,children:\"查看售后服务聊天详情\"})]}),style:{marginBottom:24},children:C.jsxs(Ne,{bordered:!0,size:\"small\",column:2,children:[C.jsx(Ne.Item,{label:\"来电号码\",children:n.callNumber}),C.jsx(Ne.Item,{label:\"对接账号\",children:n.linkedAccount}),C.jsx(Ne.Item,{label:\"用户邮箱\",children:n.userEmail}),C.jsx(Ne.Item,{label:\"用户邮箱备注\",children:n.userEmailRemark}),C.jsx(Ne.Item,{label:\"订单查询备注\",children:n.orderQueryRemark}),C.jsx(Ne.Item,{label:\"咨询订单1\",children:C.jsx(\"a\",{children:n.consultOrder})}),C.jsx(Ne.Item,{label:\"所属店铺\",children:n.shop}),C.jsx(Ne.Item,{label:\"问题产品\",children:n.problemProduct}),C.jsx(Ne.Item,{label:\"问题记录附件\",children:n.problemAttachment}),C.jsx(Ne.Item,{label:\"解决方案\",children:n.solution}),C.jsx(Ne.Item,{label:\"解决方案备注\",children:n.solutionRemark}),C.jsx(Ne.Item,{label:\"退款账户1\",children:n.refundAccount1}),C.jsx(Ne.Item,{label:\"退款账户1备注\",children:n.refundAccount1Remark}),C.jsx(Ne.Item,{label:\"回访时间\",children:n.visitTime}),C.jsx(Ne.Item,{label:\"回访时间备注\",children:n.visitRemark}),C.jsx(Ne.Item,{label:\"空闲时间段\",children:n.freeTimeSlot}),C.jsx(Ne.Item,{label:\"空闲时间段备注\",children:n.freeTimeRemark}),C.jsx(Ne.Item,{label:\"客服人员\",children:n.csStaff}),C.jsx(Ne.Item,{label:\"服务时间\",children:n.serviceTime})]})}),C.jsx(hr,{title:C.jsx(\"span\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8},children:\"咨询订单信息\"}),children:C.jsxs(\"div\",{style:{border:\"1px solid #d9d9d9\",borderRadius:4,padding:16},children:[C.jsxs(\"div\",{children:[C.jsx(\"strong\",{children:\"订单号:\"}),a.orderNo]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"产品:\"}),C.jsx(et,{color:\"success\",children:\"Shipped\"}),C.jsx(et,{color:\"blue\",children:\"APP回评\"}),C.jsx(\"br\",{}),a.product,C.jsx(\"br\",{}),C.jsx(et,{color:\"success\",children:\"在售\"}),C.jsx(et,{children:\"回评订单 (1)\"})]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"ASIN\"}),a.asin]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"MSKU\"}),a.msku]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"数量:\"}),a.quantity]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"单价:\"}),a.unitPrice]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"标题:\"}),a.title]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"收件人:\"}),a.recipient]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"国家:\"}),a.country]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"总金额:\"}),a.totalAmount]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"运单号:\"}),a.trackingNo]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"店铺:\"}),a.shop]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"地址:\"}),a.address]}),C.jsxs(\"div\",{style:{marginTop:8},children:[C.jsx(\"strong\",{children:\"邮编:\"}),a.zipCode]}),C.jsx(wp,{style:{margin:\"12px 0\"}}),C.jsxs(\"div\",{children:[C.jsx(\"strong\",{children:\"商品下单\"}),\" \",a.orderTime]})]})})]}),C.jsx(\"div\",{style:{width:300,flexShrink:0},children:C.jsx(hr,{title:C.jsx(\"span\",{style:{borderLeft:\"3px solid #1890ff\",paddingLeft:8},children:\"数据日志\"}),children:C.jsx(q6,{items:[{children:C.jsxs(\"div\",{children:[C.jsx(\"div\",{style:{color:\"#333\"},children:\"创建售后服务\"}),C.jsx(\"div\",{style:{fontSize:12,color:\"#999\"},children:\"2026-05-23 11:10:45\"}),C.jsx(\"div\",{style:{fontSize:12,color:\"#999\"},children:\"Jhona Ver\"})]})}]})})})]})]}):C.jsx(wm,{status:\"error\",title:\"缺少售后编码\",subTitle:\"请通过正确的链接访问售后详情\"})},Ckt=Object.freeze(Object.defineProperty({__proto__:null,default:xkt},Symbol.toStringTag,{value:\"Module\"})),Fkt=()=>{const e=Ia(),t=La(),[r,n]=m.useState(!1),a=m.useCallback(async i=>{n(!0);try{const o=await bD.login(i);localStorage.setItem(\"auth_token\",o.token),localStorage.setItem(\"user_info\",JSON.stringify(o.user)),t(fQe(o.token)),vt.success(\"登录成功\"),e(\"/dashboard\",{replace:!0})}catch(o){const l=o instanceof Error?o.message:\"登录失败,请检查用户名和密码\";vt.error(l)}finally{n(!1)}},[e,t]);return C.jsxs(\"div\",{className:\"login-page\",children:[C.jsxs(\"section\",{className:\"login-showcase\",children:[C.jsxs(\"div\",{className:\"login-brand\",children:[C.jsx(\"span\",{className:\"login-brand-mark\",children:\"UR\"}),C.jsx(\"span\",{children:\"USER评价业务闭环系统\"})]}),C.jsxs(\"div\",{children:[C.jsx(\"h1\",{children:\"把需求、触达、客服、风控和评价结果放在同一个工作台\"}),C.jsx(\"p\",{children:\"面向 Amazon 评价运营的全链路管理入口,覆盖测评、回评、免评计划执行,以及真实人额度、客服工单和风险拦截。\"})]}),C.jsxs(\"div\",{className:\"login-metrics\",children:[C.jsxs(\"div\",{className:\"login-metric\",children:[C.jsx(\"strong\",{children:\"4/4/12\"}),C.jsx(\"span\",{children:\"额度规则\"})]}),C.jsxs(\"div\",{className:\"login-metric\",children:[C.jsx(\"strong\",{children:\"100%\"}),C.jsx(\"span\",{children:\"链路追踪\"})]}),C.jsxs(\"div\",{className:\"login-metric\",children:[C.jsx(\"strong\",{children:\"2h\"}),C.jsx(\"span\",{children:\"风险响应\"})]})]})]}),C.jsx(\"section\",{className:\"login-panel\",children:C.jsxs(\"div\",{className:\"login-card\",children:[C.jsxs(\"div\",{className:\"login-title\",children:[C.jsx(\"h2\",{children:\"登录控制台\"}),C.jsx(\"span\",{children:\"使用运营账号进入工作台\"})]}),C.jsxs(be,{onFinish:a,size:\"large\",autoComplete:\"off\",children:[C.jsx(be.Item,{name:\"username\",rules:[{required:!0,message:\"请输入用户名\"}],children:C.jsx(ut,{prefix:C.jsx(i3,{}),placeholder:\"用户名\"})}),C.jsx(be.Item,{name:\"password\",rules:[{required:!0,message:\"请输入密码\"}],children:C.jsx(ut.Password,{prefix:C.jsx(Tnt,{}),placeholder:\"密码\"})}),C.jsx(be.Item,{children:C.jsx(ze,{type:\"primary\",htmlType:\"submit\",loading:r,block:!0,children:\"登录\"})})]}),C.jsx(\"div\",{className:\"login-demo-account\",children:\"测试账号admin / admin123\"})]})})]})},Skt=Object.freeze(Object.defineProperty({__proto__:null,default:Fkt},Symbol.toStringTag,{value:\"Module\"})),wkt=()=>{const e=Ia();return C.jsx(wm,{status:\"404\",title:\"404\",subTitle:\"抱歉,您访问的页面不存在\",extra:C.jsx(ze,{type:\"primary\",onClick:()=>e(\"/\"),children:\"返回首页\"})})},Ekt=Object.freeze(Object.defineProperty({__proto__:null,default:wkt},Symbol.toStringTag,{value:\"Module\"}));\n\n</script>\n <style>\n:root{--color-primary: #2563eb;--color-primary-hover: #3b82f6;--color-primary-active: #1d4ed8;--color-primary-light: #dbeafe;--color-primary-bg: #eff6ff;--color-success: #16a34a;--color-success-hover: #22c55e;--color-success-active: #15803d;--color-success-light: #dcfce7;--color-success-bg: #f0fdf4;--color-warning: #d97706;--color-warning-hover: #f59e0b;--color-warning-active: #b45309;--color-warning-light: #fef3c7;--color-warning-bg: #fffbeb;--color-danger: #dc2626;--color-danger-hover: #ef4444;--color-danger-active: #b91c1c;--color-danger-light: #fee2e2;--color-danger-bg: #fef2f2;--color-info: #0891b2;--color-info-hover: #06b6d4;--color-info-active: #0e7490;--color-info-light: #cffafe;--color-info-bg: #ecfeff;--color-disabled: #d9d9d9;--color-disabled-bg: #f5f5f5;--color-disabled-text: rgba(0, 0, 0, .25);--color-text-primary: #172033;--color-text-secondary: #4b5565;--color-text-tertiary: #7a8798;--color-text-disabled: #a8b2c1;--color-bg-primary: #eef2f7;--color-bg-container: #ffffff;--color-bg-elevated: #ffffff;--color-bg-spotlight: #f6f8fb;--color-border: #d9e2ef;--color-border-light: #e7edf5;--color-border-split: #edf1f7;--shadow-card: 0 10px 28px rgba(16, 24, 40, .08);--shadow-elevated: 0 18px 44px rgba(16, 24, 40, .14);--shadow-modal: 0 20px 48px rgba(16, 24, 40, .16);--header-height: 64px;--sidebar-width: 220px;--sidebar-collapsed-width: 64px;--page-padding: 24px;--card-border-radius: 8px;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--z-dropdown: 1050;--z-sticky: 1060;--z-fixed: 1070;--z-modal: 1080;--z-popover: 1090;--z-tooltip: 1100}.mixin-card{background:var(--color-bg-container);border-radius:var(--card-border-radius);box-shadow:var(--shadow-card);padding:var(--page-padding)}.mixin-section{background:var(--color-bg-container);border-radius:var(--card-border-radius);padding:20px 24px;margin-bottom:16px}.mixin-flex-row{display:flex;flex-direction:row;align-items:center}.mixin-flex-col{display:flex;flex-direction:column}.mixin-flex-between{display:flex;justify-content:space-between;align-items:center}.mixin-flex-center{display:flex;justify-content:center;align-items:center}.mixin-text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mixin-text-primary{color:var(--color-text-primary)}.mixin-text-secondary{color:var(--color-text-secondary)}.mixin-text-success{color:var(--color-success)}.mixin-text-warning{color:var(--color-warning)}.mixin-text-danger{color:var(--color-danger)}.mixin-text-info{color:var(--color-info)}.mixin-badge-success{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);color:var(--color-success);background:var(--color-success-light)}.mixin-badge-warning{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);color:var(--color-warning);background:var(--color-warning-light)}.mixin-badge-danger{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);color:var(--color-danger);background:var(--color-danger-light)}.mixin-badge-info{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);color:var(--color-info);background:var(--color-info-light)}.mixin-badge-default{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--font-size-xs);color:var(--color-text-secondary);background:var(--color-bg-spotlight)}.mixin-scrollable{overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.15) transparent}.mixin-line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.mixin-line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\";color:var(--color-text-primary);background:radial-gradient(circle at top left,rgba(37,99,235,.08),transparent 34rem),linear-gradient(180deg,#f8fafc 0%,var(--color-bg-primary) 48rem);line-height:1.5715}#root{min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}::-moz-selection{background:#bfdbfe;color:var(--color-text-primary)}::selection{background:#bfdbfe;color:var(--color-text-primary)}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flex-center{display:flex;justify-content:center;align-items:center}.app-shell{min-height:100vh;background:radial-gradient(circle at 16% 0%,rgba(37,99,235,.12),transparent 22rem),linear-gradient(135deg,#f8fafc,#eef2f7 48%,#f7f9fc)}.app-sider{overflow:auto;height:100vh;position:fixed!important;left:0;top:0;bottom:0;z-index:20;background:linear-gradient(180deg,#101828,#172033 52%,#0f172a)!important;border-right:1px solid rgba(255,255,255,.08);box-shadow:10px 0 28px #0f172a26}.app-brand{height:var(--header-height);display:flex;align-items:center;gap:10px;padding:0 18px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.08)}.app-brand-mark{width:34px;height:34px;flex:0 0 34px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;background:linear-gradient(135deg,#2563eb,#0891b2);border-radius:8px;box-shadow:0 10px 22px #2563eb47}.app-brand-text{min-width:0}.app-brand-title{color:#fff;font-size:16px;font-weight:700;line-height:20px;white-space:nowrap}.app-brand-subtitle{color:#ffffff94;font-size:12px;line-height:16px;white-space:nowrap}.app-sidebar-menu.ant-menu{padding:12px 10px 20px;background:transparent;color:#ffffffbd}.app-sidebar-menu.ant-menu-inline{border-inline-end:0}.app-sidebar-menu .ant-menu-item,.app-sidebar-menu .ant-menu-submenu-title{height:40px;line-height:40px;margin:3px 0;color:#ffffffc7;border-radius:6px}.app-sidebar-menu .ant-menu-item .anticon,.app-sidebar-menu .ant-menu-submenu-title .anticon{color:#ffffffb8}.app-sidebar-menu .ant-menu-item:hover,.app-sidebar-menu .ant-menu-submenu-title:hover{color:#fff!important;background:#ffffff14!important}.app-sidebar-menu .ant-menu-item-selected{color:#fff!important;background:linear-gradient(135deg,#2563ebf2,#0891b2f2)!important;box-shadow:0 12px 22px #2563eb33}.app-sidebar-menu .ant-menu-item-selected .anticon{color:#fff}.app-sidebar-menu .ant-menu-submenu-arrow{color:#ffffff7a}.app-main-layout{min-height:100vh;transition:margin-left .2s ease;background:transparent}.app-header{height:var(--header-height);padding:0 24px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;background:#ffffffdb;border-bottom:1px solid rgba(217,226,239,.78);box-shadow:0 8px 24px #1018280d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header-left,.app-header-right{display:flex;align-items:center;gap:14px}.app-header-toggle{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);background:#fff;border:1px solid var(--color-border-light);border-radius:8px;cursor:pointer;transition:all .2s ease}.app-header-toggle:hover{color:var(--color-primary);border-color:#bfdbfe;box-shadow:0 8px 18px #2563eb1a}.app-header-search{width:min(360px,28vw)}.app-header .ant-breadcrumb{color:var(--color-text-tertiary)}.app-header .ant-breadcrumb a{color:var(--color-text-secondary)}.app-header-user{padding:6px 8px;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s ease}.app-header-user:hover{background:#f6f8fb;border-color:var(--color-border-light)}.app-content{margin:20px;padding:0;min-height:calc(100vh - 104px);background:transparent}.page-surface{background:#fff;border:1px solid rgba(217,226,239,.82);border-radius:8px;box-shadow:var(--shadow-card)}.notification-trigger{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-secondary);background:#fff;border:1px solid var(--color-border-light);border-radius:8px;cursor:pointer;transition:all .2s ease}.notification-trigger:hover{color:var(--color-primary);border-color:#bfdbfe;box-shadow:0 8px 18px #2563eb1a}.notification-panel{width:360px}.notification-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.notification-item{padding:10px 12px!important;cursor:pointer;border-radius:8px}.notification-item.is-unread{background:#f1f6ff}.dashboard-page{display:flex;flex-direction:column;gap:18px}.dashboard-hero{min-height:210px;padding:24px;display:grid;grid-template-columns:minmax(0,1.1fr) 420px;gap:22px;overflow:hidden;color:#fff;background:linear-gradient(135deg,#0f172af0,#1e40afe0),url(https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=1600&q=80) center/cover}.dashboard-hero h1{margin:0 0 10px;color:#fff;font-size:28px;line-height:36px}.dashboard-hero-copy{max-width:680px;color:#ffffffc2;font-size:14px}.dashboard-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.dashboard-hero-panel{align-self:stretch;padding:18px;display:grid;gap:12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:8px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.dashboard-hero-metric{display:flex;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.14)}.dashboard-hero-metric:last-child{padding-bottom:0;border-bottom:0}.dashboard-hero-metric span{color:#ffffffad}.dashboard-hero-metric strong{color:#fff;font-size:22px}.dashboard-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-entry-card{min-height:178px;padding:20px;display:flex;flex-direction:column;gap:14px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.dashboard-entry-card:hover{transform:translateY(-2px);border-color:#bfdbfe;box-shadow:0 16px 36px #1018281f}.dashboard-entry-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.dashboard-entry-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;color:#fff;border-radius:8px;font-size:20px}.dashboard-entry-title{margin:0;color:var(--color-text-primary);font-size:16px;line-height:24px}.dashboard-entry-desc{min-height:44px;margin:0;color:var(--color-text-secondary)}.dashboard-entry-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;color:var(--color-text-tertiary);font-size:13px}.dashboard-workflow{padding:20px}.dashboard-workflow-title{margin:0 0 16px;font-size:16px;color:var(--color-text-primary)}.workflow-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.workflow-node{padding:14px;background:#f8fafc;border:1px solid var(--color-border-light);border-radius:8px}.workflow-node strong{display:block;margin-bottom:4px;color:var(--color-text-primary)}.workflow-node span{color:var(--color-text-tertiary);font-size:12px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 460px;background:linear-gradient(135deg,#0f172ae0,#1e40afd1),url(https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1800&q=80) center/cover}.login-showcase{min-width:0;padding:56px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.login-showcase h1{max-width:760px;margin:0 0 18px;color:#fff;font-size:42px;line-height:52px}.login-showcase p{max-width:640px;color:#ffffffbf;font-size:15px}.login-brand{display:inline-flex;align-items:center;gap:10px;color:#fff;font-weight:700}.login-brand-mark{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2563eb,#0891b2);border-radius:8px}.login-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,150px));gap:12px}.login-metric{padding:14px;background:#ffffff1a;border:1px solid rgba(255,255,255,.16);border-radius:8px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-metric strong{display:block;color:#fff;font-size:22px}.login-metric span{color:#ffffffad;font-size:12px}.login-panel{padding:40px;display:flex;align-items:center;background:#fffffff0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.login-card{width:100%;padding:34px 32px;background:#fff;border:1px solid rgba(217,226,239,.92);border-radius:8px;box-shadow:var(--shadow-elevated)}.login-title{margin-bottom:28px}.login-title h2{margin:0 0 6px;color:var(--color-text-primary);font-size:24px}.login-title span{color:var(--color-text-secondary)}.login-demo-account{padding:12px;color:var(--color-text-secondary);background:#f8fafc;border:1px solid var(--color-border-light);border-radius:8px;text-align:center;font-size:12px}@media (max-width: 1180px){.dashboard-hero{grid-template-columns:1fr}.dashboard-card-grid,.workflow-track{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.app-header{padding:0 14px}.app-header-search{display:none}.app-content{margin:12px;min-height:calc(100vh - 88px)}.dashboard-card-grid,.workflow-track,.login-page{grid-template-columns:1fr}.login-showcase{min-height:46vh;padding:32px 24px}.login-showcase h1{font-size:30px;line-height:38px}.login-panel{padding:24px}}\n\n</style>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n</html>\n",
"wikilinks": [
"10,15",
"^\\",
"^\\",
"^\\",
"^\\",
"3,9",
"r,n",
"1,0",
"1,\"rgba(207,212,219,0.2)\"",
"\"rect\"",
"e",
"0,0",
"t,t",
"o.x,o.y",
"s.x,s.y",
"1,\"#E6EBF8\""
],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/evaluation-business-architecture",
"type": "document",
"name": "评价业务流闭环项目架构文档",
"filePath": "05_需求文档/evaluation-business-architecture.md",
"summary": "评价业务流闭环项目架构文档 版本v0.7 更新时间2026 04 26 当前阶段:业务框架搭建与部门业务梳理 1. 文档目标 本文档用于沉淀评价业务流闭环的业务结构、部门职责、核心数据、看板规划和后续项目规划依据。 当前重点不是直接进入系统设计,而是先明确: 业务闭环如何运转 各部门在闭环中的职责边界 每个部门需要哪些看板与数据字段 APP 与亚马逊运营",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "# 评价业务流闭环项目架构文档\n\n版本v0.7 \n更新时间2026-04-26 \n当前阶段业务框架搭建与部门业务梳理\n\n## 1. 文档目标\n\n本文档用于沉淀评价业务流闭环的业务结构、部门职责、核心数据、看板规划和后续项目规划依据。\n\n当前重点不是直接进入系统设计而是先明确\n\n- 业务闭环如何运转\n- 各部门在闭环中的职责边界\n- 每个部门需要哪些看板与数据字段\n- APP 与亚马逊运营、品牌运营、内容运营、用户运营、客服运营之间的数据关系\n- 后续项目需要支持哪些管理动作、数据归因和异常预警\n\n## 2. 总体业务闭环\n\n### 2.1 当前业务主链路\n\n亚马逊运营、品牌运营、内容运营负责拉新与引流。 \n主要带来曝光和点击其中当前主要流量来源于亚马逊小部分开始来源于社媒与网站宣发。\n\n↓\n\n亚马逊运营负责亚马逊渠道转化与成交品牌运营负责独立站转化与成交。\n\n↓\n\n成交后产生订单与成交数据。\n\n↓\n\n用户运营基于成交用户、绑定用户、活跃用户进行触达推送与索评。 \n同时用户运营或评价运营需要维护 ASIN 健康度,核心依赖回评结果。\n\n↓\n\n客服运营收集售后问题、用户反馈、负面反馈和评价相关问题并执行处理与改善动作。\n\n↓\n\n数据层和管理层进行复盘调整产品策略、销售策略、推送策略、评价策略和人员分工。\n\n### 2.2 闭环中的核心角色\n\n| 角色/部门 | 主要职责 | 当前定位 |\n|---|---|---|\n| 亚马逊运营 | 亚马逊销售、产品销售管理、测评计划需求、免评计划需求、关键词推新、评价健康维护协同 | 当前 APP 用户最主要、最优质来源 |\n| 品牌运营 | 独立站品牌宣发、独立站销售转化、社媒品牌形象、品牌推广、新品宣发、活动宣发、粉丝互动 | 品牌侧销售与推广主责方,协助亚马逊扩大品牌市场份额 |\n| 内容运营 | 售前社区广告计划、APP 广告位、社区内容分发、帖子加权、新帖推流、固定流量池管理、用户 KOC/KCO 对接 | 配合亚马逊运营与品牌运营做销售前期宣发和社区流量承接 |\n| 用户运营 | 测评计划落地、用户触达、IM/EDM/TEL 推送、索评、回评跟进、社区互动、合作伙伴渠道管理 | 系统核心使用者,连接销售需求、用户资源、评价结果与客服执行 |\n| 客服运营 | 售后接待、登记、回复、问题完结、负面反馈处理 | 归属用户部门管理,承接售后与评价问题改善 |\n| 数据层/管理层 | 指标复盘、异常监控、成本分析、策略调整 | 统一看板、归因和管理决策 |\n\n## 3. 基础指标与统一数据口径\n\n### 3.1 销售核心指标\n\n- 销量:日销量、月销量、总销量\n- 绑定数:总用户数、月活、日活、产品绑定用户数\n- 评价数:测评数、回评数、每日每产品评价数、计划所需数量、实际完成数量、差评数\n- 成本:产品成本、返现成本、人力成本、提成、管理成本\n\n### 3.2 基础数据维度\n\n| 数据维度 | 说明 |\n|---|---|\n| 渠道影响力 | 衡量各渠道内容、活动、广告位、推送计划的效果 |\n| 用户属性 | 发帖人属性、用户行为、性别、活跃状态、风险标记 |\n| 时间维度 | 每日、每周、每月、活动周期、新品周期 |\n| 产品维度 | 国家、品牌、类目、二级类目、ASIN、产品绑定情况 |\n| 漏斗维度 | 曝光、点击、跳转、转化、成交、绑定、触达、评价 |\n| 风险维度 | 风险标记用户数、差评数、ASIN 健康风险、异常推送效果 |\n\n### 3.3 建议统一主键\n\n后续系统设计应优先统一以下主键避免销售、用户、评价、售后数据无法串联\n\n- 用户 ID\n- 订单 ID\n- 产品 ID\n- ASIN\n- 品牌 ID\n- 国家/站点\n- 渠道 ID\n- 推送 ID\n\n## 4. 第一部分:亚马逊运营相关业务\n\n### 4.1 亚马逊运营在闭环中的定位\n\n亚马逊运营负责在亚马逊平台上进行电商销售工作是当前 APP 用户最主要、最优质的来源。\n\nAPP 与亚马逊运营之间的核心关系是:\n\n1. 亚马逊销售带来订单和用户来源。\n2. APP 需要识别这些购买用户是否下载安装并绑定产品。\n3. 当前每卖出 10 个玩具,约 40% 用户下载并绑定 APP。\n4. 需要亚马逊运营在 Listing、说明书、官网、售后触点等位置配合提升 APP 下载率和产品绑定率。\n5. 亚马逊运营需要提出测评计划、免评计划、推新计划和回评计划相关需求。\n6. APP 内现有用户资源需要根据产品重要级、推新节奏和评价健康度进行分配。\n\n### 4.2 亚马逊运营核心业务模块\n\n| 模块 | 业务内容 | 与 APP 的关系 |\n|---|---|---|\n| 销售管理 | 亚马逊站点销售、销量监控、产品销售报表 | 提供销量、成交、站点、产品数据 |\n| 产品聚合管理 | 按品牌、国家、类目聚合新品、重点产品、清仓产品 | APP 侧需要计算绑定率和用户覆盖情况 |\n| 绑定率提升 | Listing、说明书、官网等触点引导下载与绑定 APP | APP 提供绑定率数据,亚马逊运营优化触点 |\n| 测评计划 | 亚马逊运营根据销售需求提出测评需求和节奏 | 用户运营负责实际实现,品牌运营参与协同 |\n| 免评计划 | 关键词 + 实时销量策略,定时下单,主要承接补单诉求 | 需单独纳入合规与风险监控 |\n| 推新计划 | 面向 S 级或当期重点产品,结合关键词进行推广 | APP 内推送资源分配需要与推新计划匹配 |\n| 回评计划 | 维护链接评价数、回评数和评分等级 | 主要由亚马逊运营与用户运营协作,品牌运营参与协同 |\n| 品牌推广协同 | 亚马逊运营同步品牌推广计划,并在亚马逊站内承接品牌调性 | 品牌运营为亚马逊站外品牌推广主责方 |\n\n### 4.3 独立看板一:产品销量与绑定率看板\n\n#### 4.3.1 看板目标\n\n用于从亚马逊运营视角监控不同品牌、国家、类目、产品类型下的销量与 APP 绑定情况。\n\n该看板需要支持\n\n- 品牌聚合\n- 国家/站点聚合\n- 类目与二级类目聚合\n- 新品、重点产品、清仓产品拆分\n- 销量与绑定率对比\n- 异常数据报警\n- 对应人员责任归属\n\n#### 4.3.2 产品类型\n\n| 产品类型 | 说明 |\n|---|---|\n| 新品 | 新上市产品,需要重点关注销量、绑定率、评价启动速度 |\n| 重点产品 | 当期重点销售或重点维护产品,如 S 级产品 |\n| 清仓产品 | 需要配合库存、促销、清仓节奏进行销售与触达 |\n\n#### 4.3.3 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 产品名 | 产品展示名称 |\n| 国家 | 销售国家或市场 |\n| 品牌 | 所属品牌 |\n| 对应人员 | 负责该产品或站点的运营人员 |\n| 二级类目 | 产品所属二级类目 |\n| ASIN | 亚马逊 ASIN |\n| 产品类型 | 新品、重点产品、清仓产品 |\n| 各站点销量 | 各亚马逊站点销量,详细数据涉密 |\n| 总销量 | 汇总销量 |\n| APP 绑定数 | APP 可识别的、已绑定指定玩具的用户数 |\n| 绑定率 | APP 可识别的绑定了指定玩具的用户数 / 销售数 |\n| 异常状态 | 是否出现销量异常、绑定率异常、数据缺失等 |\n| 异常原因 | 异常说明或系统识别原因 |\n| 最近更新时间 | 数据刷新时间 |\n\n#### 4.3.4 重点指标\n\n- 产品销量\n- APP 绑定数\n- APP 绑定率\n- 新品绑定率爬坡情况\n- 重点产品绑定率\n- 清仓产品触达与绑定情况\n- 低绑定率产品列表\n- 异常站点/异常国家/异常类目\n\n#### 4.3.5 异常报警建议\n\n| 异常类型 | 触发逻辑 |\n|---|---|\n| 绑定率过低 | 产品销量正常,但 APP 绑定率低于目标值 |\n| 销量异常波动 | 单日或单周销量较基准值显著上升或下降 |\n| 站点数据缺失 | 某国家/站点销量或绑定数据未同步 |\n| 新品启动异常 | 新品有销量但绑定数或评价启动明显滞后 |\n| 重点产品风险 | S 级或重点产品绑定率、评价数、评分低于目标 |\n\n### 4.4 独立看板二:推新计划与 APP 推送资源分配看板\n\n#### 4.4.1 看板目标\n\n用于管理亚马逊推新计划和 APP 内现有推送资源之间的配合关系。\n\n推新计划的核心是关键词相关的重点产品推广尤其是当期周度、月度重点产品如 S 级产品。\n\nAPP 侧需要根据现有用户资源,在 APP 内用户中进行定向推送、曝光、点击、回复、登记和评价转化跟踪。\n\n#### 4.4.2 推新业务结构\n\n| 层级 | 内容 |\n|---|---|\n| 当期重点产品 | 周度、月度重点产品表,例如 S 级产品 |\n| 关键词策略 | 每个重点产品关联的关键词方向 |\n| 推新算法 | 基于产品重要级、用户资源、活跃度、绑定数、历史效果进行推送分配 |\n| APP 推送资源 | APP 内用户、社区消息、广告位、图片点击、活动曝光等 |\n| 效果回收 | 曝光、点击、回复、登记、评价、回评 |\n\n#### 4.4.3 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 产品名 | 推新产品名称 |\n| ASIN | 对应亚马逊 ASIN |\n| 产品重要级 | 如 S 级、A级、普通等 |\n| 关键词 | 推新关联关键词 |\n| 推送方案 | 当前采用的推送策略或资源组合 |\n| 推送 ID | APP 内推送任务 ID |\n| 关联图片点击率 | 推送图片或关联素材点击率 |\n| 产品绑定数 | 已绑定该产品的用户数 |\n| 总用户数 | APP 总用户数或目标用户池总数 |\n| 当月活跃用户数 | 当月活跃用户规模 |\n| 当月活跃率 | 当月活跃用户数 / 总用户数 |\n| 推送数 | 实际推送数量 |\n| 曝光数 | 用户实际看到的曝光数量 |\n| 点击数 | 用户点击数量 |\n| 回复数 | 用户回复数量 |\n| 登记数 | 用户登记或报名数量 |\n| 评价数 | 最终产生的评价数量 |\n| 回评数 | 最终产生的回评数量 |\n| 推送状态 | 未开始、进行中、已结束、暂停、异常 |\n| 负责人 | 推新或推送负责人 |\n\n#### 4.4.4 核心计算指标\n\n- 曝光率 = 曝光数 / 推送数\n- 点击率 = 点击数 / 曝光数\n- 回复率 = 回复数 / 点击数\n- 登记率 = 登记数 / 点击数\n- 评价转化率 = 评价数 / 登记数\n- 回评转化率 = 回评数 / 评价数\n- 活跃用户覆盖率 = 推送数 / 当月活跃用户数\n\n#### 4.4.5 当前推新资源分配口径\n\n当前推新计划先采用基础规则后续逐步引入模型。\n\n现阶段基本逻辑\n\n- S 级产品需求需要最大程度满足。\n- 当前流量池预计约 50% 分配给核心 S 级产品。\n- A 级、B 级及其他产品共同占用剩余约 50% 流量。\n- 产品数量比例上S 级约 10 来个,其他产品约 200 来个。\n- 后续建议计划需要综合关键词需求、GEO 需求、销量、产品重要级和突发事件生成。\n\n### 4.5 独立看板三:测评计划与免评计划看板\n\n#### 4.5.1 看板目标\n\n用于管理亚马逊运营、用户运营与品牌运营协同的核心评价业务包括测评计划和免评计划。\n\n协作关系\n\n- 亚马逊运营:根据亚马逊销售需求提出测评计划、免评计划和回评目标。\n- 用户运营:负责实际触达、推送、登记、索评、回评跟进和结果回收。\n- 品牌运营:由于了解亚马逊运营需求,参与协同对接,但不是实际执行主责方。\n\n其中\n\n- 测评计划:主要用于新品、重点产品的评价启动、评价数量建设和关键词推广配合。\n- 免评计划:主要基于关键词和实时销量策略进行定时下单,当前主要承接补单诉求。\n\n#### 4.5.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 计划 ID | 测评或免评计划唯一标识 |\n| 计划类型 | 测评计划、免评计划 |\n| 产品名 | 关联产品 |\n| ASIN | 关联 ASIN |\n| 国家/站点 | 亚马逊站点 |\n| 品牌 | 所属品牌 |\n| 产品类型 | 新品、重点、清仓 |\n| 产品重要级 | S 级、A级等 |\n| 关键词 | 计划关联关键词 |\n| 计划周期 | 周、月或指定活动周期 |\n| 计划数量 | 计划执行数量 |\n| 实际完成数量 | 已完成数量 |\n| 完成率 | 实际完成数量 / 计划数量 |\n| APP 配合方式 | 推送、广告位、社区触达、客服触达等 |\n| 风险等级 | 低、中、高 |\n| 审批状态 | 待审批、已审批、执行中、已结束、暂停 |\n| 负责人 | 亚马逊运营负责人 |\n| 协同负责人 | APP 或用户运营负责人 |\n\n#### 4.5.3 审批流口径\n\n测评计划、回评计划、免评计划需要建立审批流。\n\n流程口径\n\n1. 亚马逊运营提出测评、回评、免评计划。\n2. 亚马逊运营总监审批确认。\n3. 审批通过后进入用户运营执行排期。\n4. 用户运营根据用户池、渠道资源和频控规则制定可执行计划。\n\n#### 4.5.4 风险说明\n\n免评计划、补单诉求、返现或强索评相关动作应进入风险管理与审批机制不能只作为普通运营动作处理。\n\n建议后续单独规划\n\n- 合规风险字段\n- 审批流\n- ASIN 风险状态\n- 账号风险状态\n- 高风险动作留痕\n\n### 4.6 独立看板四:回评计划与 ASIN 评价健康度看板\n\n#### 4.6.1 看板目标\n\n用于保障亚马逊链接的评价数和评分等级尤其是新品爆款周期内需要评价数量和评价等级与销售节奏匹配。\n\n核心目标\n\n- 保障链接评价数\n- 保障评分等级\n- 支撑新品爆款周期\n- 识别 ASIN 评价健康风险\n- 区分新品、重点产品、清仓产品的回评需求\n\n#### 4.6.2 评价健康标准\n\n当前业务描述中的核心标准\n\n- 评价数要与新品爆款周期匹配,原则上数量要多。\n- 评价等级需要维持在较高水平。\n- 新品或爆款产品期望评价等级原则上应达到 4.8 以上。\n- 4.8 属于很健康。\n- 4.5 属于健康。\n- 4.2 属于高风险,需要加强对未回评用户的回评推送。\n\n#### 4.6.3 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| ASIN | 亚马逊 ASIN |\n| 产品名 | 产品名称 |\n| 国家/站点 | 销售国家或亚马逊站点 |\n| 品牌 | 所属品牌 |\n| 产品类型 | 新品、重点、清仓 |\n| 产品重要级 | S 级、A级等 |\n| 当月计划回评数 | 当月计划获得的回评数量 |\n| 实际回评数 | 当月实际回评数量 |\n| 回评完成率 | 实际回评数 / 当月计划回评数 |\n| 期望评价等级 | 目标评分等级 |\n| 实际评价等级 | 当前实际评分等级 |\n| 当前评价数 | 当前累计评价数量 |\n| 当月新增评价数 | 当月新增评价数量 |\n| 差评数 | 当前或当月差评数量 |\n| 差评率 | 差评数 / 评价数 |\n| 健康状态 | 健康、关注、风险、严重风险 |\n| 负责人 | ASIN 负责人 |\n\n#### 4.6.4 产品类型下的回评管理\n\n| 产品类型 | 回评管理重点 |\n|---|---|\n| 新品 | 评价启动速度、评价数量爬坡、评分稳定性、爆款周期匹配 |\n| 重点产品 | 评分等级维护、差评预警、持续回评目标达成 |\n| 清仓产品 | 根据清仓节奏决定是否继续投入回评资源,避免资源浪费 |\n\n#### 4.6.5 ASIN 评价健康等级\n\n| 实际评价等级 | 健康状态 | 处理建议 |\n|---|---|---|\n| 4.8 及以上 | 很健康 | 维持正常回评节奏,重点保障新品爆款周期 |\n| 4.5-4.79 | 健康 | 保持监控,按计划推进回评 |\n| 4.2-4.49 | 高风险 | 加强对未回评用户的回评推送 |\n| 低于 4.2 | 严重风险 | 需要升级处理,结合客服、用户运营和亚马逊运营共同干预 |\n\n### 4.7 亚马逊运营协同品牌推广计划\n\n品牌推广计划由亚马逊运营与品牌运营协同完成。\n\n除亚马逊站内的品牌承接和销售动作外以下工作以品牌运营为主进行决策亚马逊运营同步即可\n\n- JOYHUB 内推广\n- 社媒互动\n- 新品宣发\n- 活动宣发\n- 粉丝互动管理\n- 销售管理\n- 独立站推广\n- 新品推广\n- 社媒数据\n- KOL 互动数据\n\n#### 4.7.1 品牌推广协同数据\n\n| 字段 | 说明 |\n|---|---|\n| 推广计划 ID | 品牌推广计划唯一标识 |\n| 推广类型 | JOYHUB、社媒、新品宣发、活动宣发、KOL、独立站等 |\n| 产品名 | 关联产品 |\n| ASIN | 关联 ASIN |\n| 品牌 | 所属品牌 |\n| 国家 | 推广国家 |\n| 渠道 | 推广渠道 |\n| 曝光数 | 推广曝光 |\n| 点击数 | 推广点击 |\n| 跳转数 | 跳转到亚马逊或独立站的数量 |\n| 转化数 | 产生转化数量 |\n| 成交数 | 产生订单数量 |\n| 互动数 | 点赞、评论、私信、粉丝互动等 |\n| KOL 信息 | 合作达人或账号 |\n| 负责人 | 推广负责人 |\n\n## 5. 第二部分:品牌运营相关业务\n\n### 5.1 品牌运营在闭环中的定位\n\n品牌运营与亚马逊运营不在同一个办公区但需要协助亚马逊运营共同建立销售体系。\n\n品牌运营的核心定位是\n\n1. 负责独立站品牌宣发。\n2. 负责在社媒建立品牌形象。\n3. 负责独立站成交与品牌侧销售管理。\n4. 协助亚马逊运营在亚马逊平台上提高品牌调性。\n5. 协助亚马逊运营扩大品牌在亚马逊上的市场份额。\n6. 与亚马逊运营共同参与品牌推广计划。\n7. 在亚马逊站外品牌推广相关事项上,品牌运营为主责决策方,亚马逊运营同步。\n\n### 5.2 品牌运营与亚马逊运营的分工边界\n\n| 业务事项 | 主责方 | 协同方 | 说明 |\n|---|---|---|---|\n| 亚马逊站内销售 | 亚马逊运营 | 品牌运营 | 品牌运营协助提高品牌调性和市场份额 |\n| 亚马逊站内品牌承接 | 亚马逊运营 | 品牌运营 | Listing、品牌内容、品牌调性需要双方协同 |\n| 独立站品牌宣发 | 品牌运营 | 亚马逊运营同步 | 独立站推广和转化由品牌运营主责 |\n| 独立站成交 | 品牌运营 | 亚马逊运营同步 | 独立站销售数由品牌运营负责 |\n| 社媒品牌形象 | 品牌运营 | 亚马逊运营同步 | 包含账号内容、互动、粉丝维护 |\n| JOYHUB 内推广 | 品牌运营 | 亚马逊运营同步 | 实际为品牌运营工作,亚马逊运营了解进度 |\n| 新品宣发 | 品牌运营 | 亚马逊运营同步 | 站外宣发主责在品牌运营 |\n| 活动宣发 | 品牌运营 | 亚马逊运营同步 | 活动口径需要与销售节奏同步 |\n| 粉丝互动管理 | 品牌运营 | 亚马逊运营同步 | 社媒与品牌用户关系维护 |\n| KOL 互动 | 品牌运营 | 亚马逊运营同步 | KOL 数据和互动效果由品牌运营负责 |\n| AMZ 测评计划 | 亚马逊运营、用户运营 | 品牌运营协同 | 亚马逊运营提需求,用户运营实现,品牌运营参与协同 |\n| 回评计划 | 亚马逊运营、用户运营 | 品牌运营协同 | 主要服务 ASIN 评价健康度 |\n\n### 5.3 品牌运营核心业务模块\n\n| 模块 | 业务内容 | 输出 |\n|---|---|---|\n| 品牌宣发 | 独立站、社媒、JOYHUB、新品、活动等品牌曝光 | 品牌推广计划、宣发内容、渠道效果 |\n| 社媒运营 | 建立品牌形象、粉丝互动、社媒内容发布 | 社媒访问、点击、互动、转化数据 |\n| 独立站推广 | 独立站访问、点击、转化、成交管理 | 独立站销售数、转化漏斗 |\n| 新品推广 | 新品宣发、站外曝光、内容传播 | 新品推广数据、用户兴趣数据 |\n| 活动推广 | 活动宣发、活动页面、粉丝触达 | 活动曝光、点击、转化、成交 |\n| KOL 合作 | KOL 互动、达人合作、内容发布 | KOL 互动数据、访问与转化效果 |\n| 品牌销售管理 | 独立站成交、品牌侧销售数据管理 | 销售数、成交数、转化数 |\n| 亚马逊协同 | 协助亚马逊提升品牌调性和市场份额 | 品牌素材、推广节奏、协同反馈 |\n\n### 5.4 独立看板五:品牌影响力与独立站销售看板\n\n#### 5.4.1 看板目标\n\n用于衡量品牌运营在独立站、社媒、JOYHUB、KOL、新品宣发和活动宣发等渠道中的影响力、转化效果和销售结果。\n\n该看板以品牌运营为主责亚马逊运营同步查看用于判断站外品牌推广对亚马逊销售和独立站销售的辅助效果。\n\n#### 5.4.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 品牌 | 所属品牌 |\n| 国家 | 推广国家或市场 |\n| 渠道来源 | 独立站、社媒、JOYHUB、KOL、新品宣发、活动宣发等 |\n| 推广类型 | 新品、活动、日常内容、KOL、粉丝互动等 |\n| 产品名 | 关联产品 |\n| ASIN | 如有关联亚马逊产品,则记录 ASIN |\n| 负责人 | 品牌运营负责人 |\n| 访问数 | 各来源访问量 |\n| 点击数 | 各来源点击量 |\n| 转化数 | 各来源转化数量 |\n| 销售数 | 独立站或品牌侧销售数量,由品牌运营负责 |\n| 成交数 | 实际成交订单数量 |\n| 互动数 | 点赞、评论、分享、私信、粉丝互动等 |\n| KOL 信息 | 合作达人或账号信息 |\n| 内容/活动 ID | 关联内容、活动或投放任务 |\n| 跳转目标 | 亚马逊、独立站、APP、活动页等 |\n| 数据周期 | 日、周、月、活动周期 |\n\n#### 5.4.3 核心指标\n\n- 访问数\n- 点击数\n- 转化数\n- 销售数\n- 成交数\n- 社媒互动数\n- KOL 互动数据\n- 独立站转化率\n- 渠道访问贡献\n- 品牌活动转化效果\n\n#### 5.4.4 品牌影响力评估口径\n\n品牌影响力从两方面评估\n\n1. 各渠道转化包括独立站转化、亚马逊跳转转化、APP 承接转化等。\n2. 社媒影响力与调研反馈,包括互动、评论、粉丝反馈和品牌认知反馈。\n\n通过品牌活动前往亚马逊形成的转化也归属品牌运营 OKR 结果。\n\n### 5.5 独立看板六:品牌推广计划协同看板\n\n#### 5.5.1 看板目标\n\n用于管理品牌运营与亚马逊运营共同参与的品牌推广计划。\n\n该看板需要明确\n\n- 品牌运营在站外推广中的主责地位\n- 亚马逊运营在亚马逊站内承接品牌调性与销售转化的职责\n- 品牌推广与亚马逊销售、独立站销售、APP 用户增长之间的关系\n- 品牌推广计划与 AMZ 测评计划之间的协同关系\n\n#### 5.5.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 推广计划 ID | 品牌推广计划唯一标识 |\n| 推广计划名称 | 计划名称 |\n| 主责部门 | 品牌运营 |\n| 协同部门 | 亚马逊运营、用户运营、内容运营等 |\n| 推广类型 | JOYHUB、社媒、新品宣发、活动宣发、KOL、独立站等 |\n| 品牌 | 所属品牌 |\n| 国家 | 推广国家 |\n| 产品名 | 关联产品 |\n| ASIN | 关联亚马逊 ASIN |\n| 独立站链接 | 独立站承接地址 |\n| 亚马逊链接 | 亚马逊承接地址 |\n| APP 承接方式 | 是否需要 APP 内承接、推送或活动页 |\n| 计划开始时间 | 推广开始时间 |\n| 计划结束时间 | 推广结束时间 |\n| 预算 | 推广预算 |\n| 访问数 | 推广访问量 |\n| 点击数 | 推广点击量 |\n| 转化数 | 推广转化数量 |\n| 销售数 | 品牌侧销售数量 |\n| 成交数 | 实际成交订单 |\n| 亚马逊同步状态 | 未同步、已同步、需调整 |\n| 计划状态 | 草稿、待确认、执行中、已结束、暂停 |\n\n### 5.6 品牌运营参与 AMZ 测评计划的协作关系\n\nAMZ 测评计划由三方协作完成:\n\n| 角色 | 职责 |\n|---|---|\n| 亚马逊运营 | 根据亚马逊平台销售需求提出测评计划、回评计划、关键词和产品优先级需求 |\n| 品牌运营 | 理解并同步亚马逊运营需求,协同亚马逊运营与用户运营对接 |\n| 用户运营 | 负责实际实现,包括用户触达、推送、登记、索评、回评跟进和结果反馈 |\n\n需要明确的是\n\n- 测评计划和回评计划的主要协作方是亚马逊运营与用户运营。\n- 品牌运营参与协同,但不是实际落地执行主责方。\n- 品牌运营的核心主责仍然是品牌宣发、社媒品牌形象、独立站成交和站外推广管理。\n\n### 5.7 APP 内资源协同边界\n\n| 资源类型 | 管理分配方 | 品牌运营角色 |\n|---|---|---|\n| APP 内社区资源 | 内容运营分配,品牌运营与内容运营协同 | 将亚马逊运营和品牌运营需求与内容运营协商 |\n| 用户推送资源 | 用户运营管理分配 | 将亚马逊运营和品牌运营需求与用户运营协商 |\n\n品牌运营熟悉内容运营和用户运营两侧资源负责把亚马逊运营需求和品牌运营自身需求同步给相关部门并推动协商解决。\n\n### 5.8 品牌运营与其他部门的数据关系\n\n| 数据流向 | 内容 | 用途 |\n|---|---|---|\n| 品牌运营 → 亚马逊运营 | 品牌推广计划、社媒/KOL 数据、新品宣发节奏、活动宣发数据 | 帮助亚马逊站内承接品牌调性和销售转化 |\n| 亚马逊运营 → 品牌运营 | 亚马逊销售需求、重点 ASIN、推新节奏、测评需求、关键词方向 | 品牌运营理解销售重点并做站外协同 |\n| 品牌运营 → 用户运营 | 推广计划、活动节奏、需要 APP 承接的用户触达需求 | APP 内推送、活动承接、用户触达 |\n| 用户运营 → 品牌运营 | APP 用户反馈、触达数据、活动参与、评价反馈 | 优化品牌内容和活动策略 |\n| 品牌运营 → 数据层/管理层 | 访问、点击、转化、销售数、互动数、KOL 数据 | 品牌影响力、渠道 ROI、独立站销售复盘 |\n\n## 6. 第三部分:用户运营相关业务\n\n### 6.1 用户运营在闭环中的定位\n\n用户运营是该系统的核心使用者。客服部门实际也归属用户部门管理。\n\n用户运营的核心定位是\n\n1. 接收亚马逊运营与品牌运营协同后的销售数据和测评需求。\n2. 根据关键词、销量、产品重要级、ASIN 评价健康度共同制定可执行的测评计划。\n3. 基于 APP 用户、绑定用户、活跃用户、社区用户、非 APP 或低活跃用户进行分层触达。\n4. 在社区中与用户互动,鼓励测评人参与。\n5. 负责推送、登记、索评、回评跟进和结果回收。\n6. 按 ASIN 评价健康度动态调整触达资源和回评节奏。\n7. 管理 TEL、EDM、KOC/KOL/PR、短信、社区、非评价推送等多渠道触达。\n8. 管理客服售后相关执行数据,并将售后反馈纳入触达策略优化。\n\n### 6.2 用户运营核心业务模块\n\n| 模块 | 业务内容 | 输出 |\n|---|---|---|\n| 测评计划执行 | 根据亚马逊销售需求、关键词、销量、产品重要级制定可执行测评计划 | 推送计划、登记数据、评价数、计划完成度 |\n| 用户社区互动 | 在 APP 社区中与用户互动,鼓励用户参与新玩具测评 | 回复数、登记数、评价数 |\n| 回评计划跟进 | 根据 ASIN 评价健康度跟进回评目标 | 回评完成度、风险等级、ASIN 健康状态 |\n| IM 社区消息推送 | 推动新玩具购买与买后索评 | 曝光、点击、回复、登记、出评 |\n| 已成交索评 | 针对已绑定、已购买玩具的用户进行索评 | 实际回评数、评价等级改善 |\n| TEL 电话售后 | 接听售后和呼出电话 | 接听售后数据、呼出数据、售后原因 |\n| EDM 邮件推送 | 针对非 APP 或低 APP 活跃用户进行邮件触达 | 打开、点击、回复、转化 |\n| KOC/KOL/PR 合作 | 通过 JOYCOLLAB 网站管理合作伙伴体系 | 合作伙伴效果、带货链接、销售与提成数据 |\n| 其他触达渠道 | 短信、社区、非评价推送等仍在搭建中的渠道 | 新增测评渠道、内容改善、用户反感度控制 |\n\n### 6.3 测评计划执行数据\n\n用户运营根据亚马逊运营和品牌运营协同后的需求结合销售数据、关键词和销量生成可执行的测评计划。\n\n测评计划的关键是把“销售侧需求”转化为“用户侧可执行动作”。\n\n#### 6.3.1 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 产品名 | 关联产品 |\n| ASIN | 亚马逊 ASIN |\n| 产品重要级 | S 级、重点、普通等 |\n| 关键词 | 亚马逊运营提出的关键词方向 |\n| 推送方案 | 用户运营制定的触达策略 |\n| 推送 ID | 推送任务唯一标识 |\n| 关联图片点击率 | 推送图片或素材点击率 |\n| 产品绑定数 | 已绑定该产品的用户数 |\n| 总用户数 | 可触达用户总数 |\n| 当月活跃用户数 | 当月活跃用户规模 |\n| 当月活跃率 | 当月活跃用户数 / 总用户数 |\n| 推送数 | 实际推送数量 |\n| 曝光数 | 实际曝光数量 |\n| 点击数 | 实际点击数量 |\n| 回复数 | 用户回复数量 |\n| 登记数 | 用户报名、登记或确认参与数量 |\n| 评价数 | 最终产生的评价数量 |\n\n### 6.4 ASIN 评价健康度与回评计划\n\n用户运营需要根据随时更新的 Listing 健康状况和 ASIN 评价健康度跟进回评计划。\n\n核心原则\n\n- 新品爆款周期需要与评价数量和评价等级匹配。\n- 新品和爆款原则上评价数量要多。\n- 新品和爆款的期望评价等级原则上应达到 4.8 以上。\n- 常规产品需要保障链接评价数和评分等级。\n- 回评计划需要区分新品、重点产品、清仓产品。\n\n#### 6.4.1 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| ASIN | 亚马逊 ASIN |\n| 产品名 | 关联产品 |\n| 产品类型 | 新品、重点、清仓 |\n| 当月计划回评数 | 当月计划回评数量 |\n| 实际回评数 | 当月实际完成回评数量 |\n| 期望评价等级 | 目标评价等级 |\n| 实际评价等级 | 当前实际评价等级 |\n| 回评完成率 | 实际回评数 / 当月计划回评数 |\n| 风险等级 | 健康、关注、风险、严重风险 |\n| 跟进人 | 用户运营负责人 |\n\n### 6.5 独立看板七IM 社区消息推送计划看板\n\n#### 6.5.1 业务场景\n\nIM 社区消息推送主要用于推动新玩具测评。\n\n当用户没有购买我们想推动的新玩具时用户运营通过 IM 社区消息推送促使用户购买新玩具,并在购买后进行索评。\n\n#### 6.5.2 看板目标\n\n按地区、品牌、类目、策略观察不同推送计划的效果。\n\n#### 6.5.3 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 推送 ID | 推送任务唯一标识 |\n| 关联产品 | 推送关联产品 |\n| ASIN | 关联 ASIN |\n| 国家/地区 | 推送覆盖地区 |\n| 品牌 | 所属品牌 |\n| 类目 | 产品类目 |\n| 策略 | 推送策略 |\n| 曝光 | 推送曝光数 |\n| 点击 | 用户点击数 |\n| 回复 | 用户回复数 |\n| 登记 | 用户登记数 |\n| 出评 | 最终产生评价数 |\n| 转化率 | 出评或登记转化率 |\n| 计划完成度 | 实际完成 / 计划目标 |\n| 订单号 | 订单号,含亚马逊来源和独立站来源,涉密字段 |\n| 订单来源 | 亚马逊、独立站等 |\n| profile ID | 用户 Profile 标识,涉密字段 |\n| joyhub ID | JOYHUB 用户标识,涉密字段 |\n\n### 6.6 独立看板八:已成交索评与回评计划完成度看板\n\n#### 6.6.1 业务场景\n\n当用户已经绑定某个玩具时APP 能识别用户购买了哪个玩具。用户运营可以针对已有玩具进行已成交索评。\n\n该看板与 ASIN 评价健康度直接关联,用于确保亚马逊链接健康。\n\n#### 6.6.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 产品类型 | 新品、重点、清仓 |\n| 产品名 | 关联产品 |\n| ASIN | 关联 ASIN |\n| 产品计划回评数 | 当前产品计划回评数量 |\n| 实际回评数 | 当前产品实际回评数量 |\n| 回评完成率 | 实际回评数 / 产品计划回评数 |\n| 当前 ASIN 评价等级 | 当前 ASIN 星级或评分 |\n| 风险等级 | 健康、关注、风险、严重风险 |\n| 负责人 | 用户运营负责人 |\n\n### 6.7 独立看板九TEL 电话售后渠道看板\n\n#### 6.7.1 业务场景\n\nTEL 电话售后渠道包括接听售后和呼出电话,主要用于改善服务、收集售后问题、支撑索评和降低负面反馈。\n\n#### 6.7.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 电话号码 | 高度涉密字段 |\n| 国家 | 用户国家 |\n| 品牌 | 关联品牌 |\n| 产品 | 关联产品 |\n| 售后原因 | 用户咨询或售后原因 |\n| 呼出数 | 呼出电话数量 |\n| 接听数 | 接听电话数量 |\n| 订单号 | 涉密字段 |\n| 跟进人 | 客服或用户运营负责人 |\n| 处理状态 | 待处理、处理中、已完结、需升级 |\n\n### 6.8 独立看板十EDM 邮件推送渠道看板\n\n#### 6.8.1 业务场景\n\nEDM 邮件推送主要面向非 APP 用户或低 APP 活跃用户,用于补充 APP 内推送触达能力。\n\n#### 6.8.2 看板目标\n\n用于持续改善 EDM 计划,包括邮件打开、点击、回复和转化效果。\n\n#### 6.8.3 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 国家 | 用户国家 |\n| 地区 | 用户地区 |\n| 邮件服务商 | 邮件服务商 |\n| 用户邮箱 | 高度涉密字段 |\n| USER ID | 非 APP 用户 ID |\n| 推送 ID | EDM 推送任务 ID |\n| 点击数 | 邮件点击数量 |\n| 打开数 | 邮件打开数量 |\n| 回复数 | 邮件回复数量 |\n| 转化数 | 由邮件触达带来的转化数量 |\n| 计划状态 | 草稿、执行中、已结束、异常 |\n\n### 6.9 独立看板十一KOC/KOL/PR 合作伙伴效果看板\n\n#### 6.9.1 业务场景\n\nKOC、KOL、PR 渠道用于合作伙伴对接和带货推广。合作伙伴体系通过 JOYCOLLAB 网站承接。\n\nKOC 在 JOYCOLLAB 上的带货数据原则上先在 JOYCOLLAB 网站内处理,再同步到大用户后台。财务也会参与销售数据、提成数据和交易金额的核算或校验。\n\n#### 6.9.2 看板目标\n\n用于改善合作伙伴效果观察合作伙伴在不同国家、平台、产品和带货链路上的实际贡献。\n\n#### 6.9.3 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 合作伙伴 ID | 合作伙伴唯一标识 |\n| 国家 | 合作伙伴所在国家 |\n| 姓名 | 合作伙伴姓名,涉密字段 |\n| 时间 | 合作或跟进时间 |\n| 平台 | 合作平台 |\n| 粉丝 | 粉丝数量或粉丝规模 |\n| 备注 | 合作备注 |\n| 跟进人 | 用户运营或合作伙伴负责人 |\n| 合作产品 | 合作推广产品 |\n| 带货链接 | 合作伙伴带货链接 |\n| 销售数据 | 通过带货链接产生的销售数据 |\n| 提成数据 | 合作伙伴提成数据,涉密字段 |\n| 交易金额 | 产生的交易金额 |\n\n### 6.10 其他触达渠道\n\n其他渠道包括\n\n- 短信\n- 社区\n- 非评价推送\n\n这些渠道仍在搭建当中目标包括\n\n1. 继续增加测评渠道。\n2. 改善内容触达效果。\n3. 降低用户对高频推送、索评、活动通知的反感。\n4. 为非评价类推送沉淀策略,例如活动、内容、售后提醒、品牌互动。\n\n### 6.11 用户识别、黑名单与频控口径\n\n#### 6.11.1 用户识别主标识\n\n订单号和 JOYHUB ID 是用户索评与黑名单查询中的两个主要标识。\n\n订单号包括\n\n- 亚马逊来源订单号\n- 独立站来源订单号\n\n当用户注册后必然有 JOYHUB ID。 \n当用户提供订单号时JOYHUB ID 和订单号建立关联。\n\nAPP 侧还会保留注册邮箱、用户基础 IP、设备号、用户行为数据等信息。订单号可以关联用户地址、姓名、用户名等信息。\n\n#### 6.11.2 邮箱、账号与风险关联\n\n注册用户的 JOYHUB ID 和邮箱必然关联。部分用户可能使用多个邮箱注册多个账号,每个账号都有独立 JOYHUB ID。\n\n系统需要通过 IP、设备号等信息做黑名单关联。关联后多个账号可被认定为关联账号或在后台被划入高度风险关联并按单一用户处理。\n\n#### 6.11.3 多渠道统一频控\n\nTEL、EDM、IM、社区、短信等渠道需要统一控制触达频率并统一了解对用户的骚扰程度避免过于频繁触达导致用户反感。\n\n### 6.12 用户运营与其他部门的数据关系\n\n| 数据流向 | 内容 | 用途 |\n|---|---|---|\n| 亚马逊运营 → 用户运营 | 销售数据、关键词、重点产品、测评需求、回评目标、ASIN 健康状态 | 制定可执行测评计划和回评计划 |\n| 品牌运营 → 用户运营 | 品牌推广计划、活动节奏、站外触达需求、APP 承接需求 | 配合品牌推广进行 APP 内触达 |\n| 用户运营 → 亚马逊运营 | 推送效果、登记数、评价数、回评数、ASIN 风险反馈 | 调整测评计划、推新计划和评价健康策略 |\n| 用户运营 → 品牌运营 | 用户反馈、触达效果、活动参与、转化结果 | 优化品牌内容、活动和独立站推广 |\n| 用户运营 → 客服运营 | 待跟进用户、售后触达需求、负面反馈线索 | 电话售后、问题处理和服务改善 |\n| 客服运营 → 用户运营 | 接听售后数据、呼出数据、售后原因、处理结果 | 优化推送策略、索评节奏和用户分层 |\n| 用户运营 → 数据层/管理层 | 推送、登记、评价、回评、TEL、EDM、合作伙伴数据 | 复盘渠道效果、人效、成本和风险 |\n\n## 7. 第四部分:菲律宾客服相关业务\n\n### 7.1 菲律宾客服在闭环中的定位\n\n菲律宾客服直接接受用户运营指导工作。\n\n当亚马逊运营存在短期需求变动时不直接绕过用户运营调整客服工作而是通过用户运营转达和排期。这样可以保证测评计划、回评计划、售后触达、人员安排和成本统计在同一套用户运营口径下管理。\n\n菲律宾客服的核心定位是\n\n1. 执行用户运营下发的评价、登记、回复、售后跟进等具体任务。\n2. 承接各渠道用户接待与基础沟通。\n3. 配合评价计划落地,提升评价转化和完结评价数。\n4. 反馈客服侧接待、登记、回复、完结情况。\n5. 支撑用户运营进行成本管理、人效管理和渠道效果复盘。\n\n### 7.2 核心指标\n\n| 指标 | 说明 |\n|---|---|\n| 客源 | 来自不同渠道的用户来源或待处理线索 |\n| 转化数 | 从接待、登记、回复到评价完成的转化数量 |\n| 转化率 | 评价转化数 / 客源或登记数 |\n| 节约成本 | 通过客服执行、人效提升、渠道优化节约的成本 |\n\n### 7.3 独立看板十二:菲律宾客服人员管理看板\n\n#### 7.3.1 看板目标\n\n用于管理菲律宾客服人员、出勤、每日工作量和各渠道执行情况。\n\n#### 7.3.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 人员 | 客服人员姓名或账号 |\n| 团队/组别 | 所属客服小组 |\n| 出勤 | 出勤状态、出勤天数或工时 |\n| 日期 | 工作日期 |\n| 渠道 | IM、TEL、EDM、社区、KOC/KOL/PR、其他 |\n| 接待数 | 当日接待用户数量 |\n| 登记数 | 当日登记数量 |\n| 回复数 | 当日回复数量 |\n| 每日评价数 | 当日产生评价数量 |\n| 完结评价数 | 当日完结评价数量,按各渠道统计 |\n| 待处理数 | 尚未处理或未完结任务数量 |\n| 负责人 | 用户运营或客服主管 |\n\n### 7.4 独立看板十三:菲律宾客服评价计划管理看板\n\n#### 7.4.1 看板目标\n\n用于跟踪菲律宾客服执行评价计划的过程和结果重点观察客源、登记、回复、出评和计划完成度。\n\n#### 7.4.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 评价计划 ID | 关联测评或回评计划 |\n| 推送 ID | 关联用户运营推送任务 |\n| 产品名 | 关联产品 |\n| ASIN | 关联 ASIN |\n| 产品类型 | 新品、重点、清仓 |\n| 渠道 | IM、TEL、EDM、社区、其他 |\n| 客源数 | 进入客服处理池的用户数量 |\n| 接待数 | 客服实际接待数量 |\n| 登记数 | 用户登记或确认参与数量 |\n| 回复数 | 用户回复数量 |\n| 每日评价数 | 每日产生评价数量 |\n| 完结评价数 | 完成闭环的评价数量 |\n| 转化数 | 从客源到评价完成的转化数量 |\n| 转化率 | 转化数 / 客源数或登记数 |\n| 计划完成度 | 实际完成 / 计划目标 |\n| 跟进人 | 菲律宾客服人员 |\n| 指导人 | 用户运营负责人 |\n\n### 7.5 独立看板十四:菲律宾客服成本管理看板\n\n#### 7.5.1 看板目标\n\n用于管理菲律宾客服相关人力成本、财务表和成本节约效果。\n\n#### 7.5.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 人员 | 客服人员 |\n| 出勤 | 出勤天数或工时 |\n| 人力成本 | 人员工资、补贴或对应成本 |\n| 提成 | 如存在评价、转化或完结相关提成,则单独记录 |\n| 管理成本 | 管理、培训、工具等分摊成本 |\n| 完结评价数 | 该人员或团队完成评价数量 |\n| 单评成本 | 总成本 / 完结评价数 |\n| 转化数 | 产生的有效转化数量 |\n| 单转化成本 | 总成本 / 转化数 |\n| 节约成本 | 因流程改善、人效提升或渠道优化节约的成本 |\n| 财务表 | 人事或财务表关联记录 |\n\n### 7.6 菲律宾客服与其他部门的数据关系\n\n| 数据流向 | 内容 | 用途 |\n|---|---|---|\n| 用户运营 → 菲律宾客服 | 评价计划、待跟进用户、推送任务、短期需求变动、售后跟进要求 | 指导客服执行 |\n| 菲律宾客服 → 用户运营 | 出勤、接待、登记、回复、每日评价、完结评价数、售后反馈 | 用户运营复盘渠道效果、人效和计划完成情况 |\n| 亚马逊运营 → 用户运营 → 菲律宾客服 | 亚马逊运营短期测评、回评或售后需求变动 | 通过用户运营统一转达,避免执行口径混乱 |\n| 菲律宾客服 → 数据层/管理层 | 人员、人效、评价转化、成本、财务表数据 | 成本管理、绩效评估和管理复盘 |\n\n## 8. 第五部分:内容运营相关业务\n\n### 8.1 内容运营在闭环中的定位\n\n内容运营在当前以用户运营为核心的业务需求中主要负责配合亚马逊运营与品牌运营在销售前期为产品做宣发和社区内流量承接。\n\n内容运营的核心定位是\n\n1. 配合亚马逊运营和品牌运营做产品售前宣发。\n2. 管理 APP 内广告资源包括开屏、弹窗、文末、ME、评论末等位置。\n3. 在社区内配合用户 KOC/KCO 对接,支持产品内容传播和测评前期预热。\n4. 执行售前社区广告计划。\n5. 通过推流管理提升重点产品、重点帖子、活动内容的曝光和点击。\n6. 管理加权、新帖、固定位置和固定流量池资源。\n7. 监控曝光、点击、打开、跳转、成交和互动数据,并识别风险。\n\n### 8.2 内容运营核心业务模块\n\n| 模块 | 业务内容 | 输出 |\n|---|---|---|\n| 售前社区广告计划 | 配合产品上市、活动、测评计划做社区前期宣发 | 广告计划、曝光、点击、跳转、成交数据 |\n| APP 广告管理 | 管理开屏、弹窗、文末、ME、评论末等广告位 | 广告位排期、用户行为数据、转化数据 |\n| 推流管理 | 对帖子加权、新帖扶持、固定位置投放、固定流量池管理 | 帖子曝光、点击、打开、互动、风险数据 |\n| KOC/KCO 对接 | 在社区中与用户或内容参与者对接 | 内容互动、测评预热、社区反馈 |\n| 风险识别 | 识别异常用户、异常互动、内容风险或投流风险 | 风险标记、处理建议 |\n\n### 8.3 独立看板十五APP 广告管理看板\n\n#### 8.3.1 看板目标\n\n用于管理 APP 内广告位资源,支撑亚马逊运营和品牌运营在销售前期进行产品宣发、活动宣发和售前社区触达。\n\n广告位包括\n\n- 开屏\n- 弹窗\n- 文末\n- ME\n- 评论末\n\n#### 8.3.2 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 月份 | 月度统计周期 |\n| 日期 | 每日统计周期 |\n| 产品 | 关联产品 |\n| ASIN | 如关联亚马逊产品,则记录 ASIN |\n| 品牌 | 所属品牌 |\n| 国家/地区 | 投放国家或地区 |\n| 广告位 | 开屏、弹窗、文末、ME、评论末等 |\n| 绑定情况 | 产品绑定用户数、绑定率或绑定状态 |\n| 用户行为 | 浏览、点击、打开、跳转、互动、购买等行为 |\n| 性别 | 用户性别 |\n| 其他标记用户数 | 风险用户、重点用户、异常用户或其他业务标记用户数 |\n| 曝光 | 广告曝光数 |\n| 点击 | 广告点击数 |\n| 打开 | 广告打开数 |\n| 跳转 | 跳转到产品页、亚马逊、独立站、活动页或 APP 页面数量 |\n| 成交数 | 由广告触达带来的成交数量 |\n| 负责人 | 内容运营负责人 |\n\n#### 8.3.3 核心指标\n\n- 曝光数\n- 点击数\n- 打开数\n- 跳转数\n- 成交数\n- 点击率\n- 打开率\n- 跳转率\n- 成交转化率\n- 不同广告位效果对比\n\n### 8.4 独立看板十六:推流管理看板\n\n#### 8.4.1 看板目标\n\n用于管理社区内容推流包括帖子加权、新帖推流、固定位置和固定流量池。\n\n该看板服务于售前社区广告计划帮助重点产品和重点内容获得更稳定的曝光与互动。\n\n#### 8.4.2 推流动作\n\n| 动作 | 说明 |\n|---|---|\n| 加权 | 对重点帖子或产品内容增加推荐权重 |\n| 新帖 | 对新发布内容进行启动流量扶持 |\n| 固定位置 | 将内容投放到指定社区位置 |\n| 固定流量池管理 | 管理固定流量池分配和资源占用 |\n\n#### 8.4.3 字段规划\n\n| 字段 | 说明 |\n|---|---|\n| 帖子 ID | 社区帖子唯一标识 |\n| 产品 | 关联产品 |\n| ASIN | 如关联亚马逊产品,则记录 ASIN |\n| 品牌 | 所属品牌 |\n| 发帖人属性 | 发帖人身份、用户类型、KOC/KCO、普通用户等 |\n| 帖子周期 | 新帖期、加权期、稳定期、结束期等 |\n| 投流等级 | 投流优先级或资源等级 |\n| 流量等级 | 实际分配的流量层级 |\n| 固定位置 | 是否使用固定位置及位置名称 |\n| 固定流量池 | 是否占用固定流量池及流量池名称 |\n| 曝光 | 帖子曝光数 |\n| 点击 | 帖子点击数 |\n| 打开 | 帖子打开数 |\n| 互动数 | 点赞、评论、收藏、分享、回复等互动总数 |\n| 各互动数 | 各类型互动明细 |\n| 风险 | 内容风险、用户风险、异常互动或投流风险 |\n| 负责人 | 内容运营负责人 |\n\n### 8.5 内容运营与其他部门的数据关系\n\n| 数据流向 | 内容 | 用途 |\n|---|---|---|\n| 亚马逊运营 → 内容运营 | 重点产品、ASIN、推新节奏、售前宣发需求、测评前期需求 | 安排社区广告和推流资源 |\n| 品牌运营 → 内容运营 | 品牌推广计划、新品宣发、活动宣发、素材与口径 | 统一品牌内容和社区投放 |\n| 用户运营 → 内容运营 | 用户触达节奏、测评计划、用户反馈、频控要求 | 避免内容触达与用户推送冲突 |\n| 内容运营 → 亚马逊运营/品牌运营 | 广告曝光、点击、打开、跳转、成交、帖子互动、风险数据 | 复盘售前宣发效果和销售辅助效果 |\n| 内容运营 → 数据层/管理层 | APP 广告、推流、互动、风险、成交归因数据 | 管理社区资源效率和内容投流效果 |\n\n## 9. 亚马逊运营与其他部门的数据关系\n\n| 数据流向 | 内容 | 用途 |\n|---|---|---|\n| 亚马逊运营 → APP/用户运营 | 销量、订单、ASIN、产品、国家、站点、成交用户 | 绑定率计算、用户触达、索评 |\n| APP/用户运营 → 亚马逊运营 | 绑定数、绑定率、活跃用户、推送效果、评价结果 | Listing/说明书/官网优化,评价计划调整 |\n| 亚马逊运营 → 评价运营 | 重点产品、推新计划、测评计划、回评目标 | 制定评价数量和评分维护策略 |\n| 评价运营 → 亚马逊运营 | 实际评价数、回评数、评分、差评、ASIN 健康状态 | 判断链接健康度和销售风险 |\n| 客服运营 → 亚马逊运营 | 售后问题、负面反馈、用户投诉、问题类型 | 优化产品、Listing、说明书和售后策略 |\n| 品牌/内容运营 → 亚马逊运营 | 品牌推广、内容曝光、社媒/KOL 数据 | 辅助亚马逊销售转化和新品启动 |\n\n## 10. 已确认问题与业务口径\n\n| 编号 | 已确认口径 | 后续影响 |\n|---|---|---|\n| Q1 | 绑定率 = APP 可识别的绑定了指定玩具的用户数 / 销售数。 | 绑定率看板按产品和 ASIN 计算。 |\n| Q2 | 支持在权限控制下查看明细,明细需要具体到每个 ASIN。 | 需要做 ASIN 级权限和涉密销量明细权限。 |\n| Q3 | S、A 级重要性由公司领导约 2-3 人和亚马逊核心总监确认,由用户运营指定人员维护。 | 产品重要级需要维护入口、确认记录和变更日志。 |\n| Q4 | 推新先用基础规则,后续逐步引入模型。当前 S 级需求最大程度满足,约 50% 流量给核心 S 级产品,其余 A/B 等产品共享约 50% 流量。 | 推新算法一期用规则引擎,二期再考虑模型。 |\n| Q5 | 测评、回评、免评计划需要审批流。亚马逊运营提出计划,亚马逊运营总监审批确认。 | 需要建立计划审批状态、审批人和审批记录。 |\n| Q6 | 4.8 很健康4.5 健康4.2 高风险4.2 时需要加强对未回评用户的回评推送。 | ASIN 健康看板需要按评分阈值报警。 |\n| Q7 | 用户提供订单号时进行关联。APP 有 JOYHUB ID、注册邮箱、基础 IP、设备号、用户行为数据等订单号可关联用户地址、姓名、用户名等。 | 用户识别需要订单号 + JOYHUB ID 双主标识,并保留辅助识别信息。 |\n| Q8 | 品牌影响力核心从两方面评估:各渠道转化、社媒影响力与调研反馈。 | 品牌看板需要同时支持转化数据和影响力反馈数据。 |\n| Q9 | 通过品牌活动前往亚马逊形成的转化,也归属品牌运营 OKR 结果。 | 销售归因需要支持品牌活动到亚马逊转化。 |\n| Q10 | APP 内社区资源由品牌运营与内容运营协同、内容运营分配;用户推送资源由用户运营管理分配。品牌运营负责将亚马逊和品牌需求与内容运营、用户运营协商解决。 | 资源排期需要区分社区资源和用户推送资源。 |\n| Q11 | 需要逐步根据亚马逊平台算法把关键词需求、GEO 需求同步到测评计划中,综合销量、重要级、突发事件生成建议计划,再调动 IM、EDM、电话、KOC、KOL 等渠道。 | 后续需要计划生成引擎和多渠道资源调度。 |\n| Q12 | 订单号和 JOYHUB ID 是两个主要标识。订单号包括亚马逊来源和独立站来源。用户注册后必然有 JOYHUB ID提供订单号后两者关联。 | 修正字段为“订单号”,不再使用 OA 订单号。 |\n| Q13 | 各渠道需要统一控制频率,并统一了解对用户的骚扰程度,避免过于频繁。 | 需要建设跨渠道频控和用户反感度监控。 |\n| Q14 | 注册用户的 JOYHUB ID 和邮箱必然关联;多个邮箱多账号可通过 IP、设备号等做黑名单关联后台可按单一用户处理。 | 需要账号关联、黑名单和高风险关联用户机制。 |\n| Q15 | JOYCOLLAB 和财务都会参与。原则上 KOC 在 JOYCOLLAB 上的带货数据在网站内处理后同步到大用户后台。 | KOC/KOL/PR 看板需要支持 JOYCOLLAB 同步和财务核算校验。 |\n\n## 11. 进入项目规划前的系统设计问题\n\n当前业务链条已经基本清晰可以进入项目规划与系统模块拆分。进入 ERP 系统设计前,需要把以下问题作为系统设计约束统一管理。\n\n### 11.1 角色权限\n\n需要明确不同角色的数据可见范围、操作权限和审批权限。\n\n重点问题\n\n- 谁能查看销售明细?\n- 谁能查看用户邮箱、电话、订单号、地址、姓名等高度涉密字段?\n- 谁能审批、修改、暂停测评计划、回评计划、免评计划?\n- 菲律宾客服能看到哪些用户字段?\n- 内容运营能看到哪些用户行为和成交归因字段?\n\n### 11.2 计划流程状态\n\n测评、回评、免评、推送、内容投流、客服任务都需要统一状态流。\n\n建议基础状态\n\n- 草稿\n- 待审批\n- 已审批\n- 执行中\n- 暂停\n- 异常\n- 已完成\n- 已复盘\n\n### 11.3 数据来源\n\n需要在系统层面明确每类数据的来源、同步方式、刷新频率和权限等级。\n\n| 数据类型 | 可能来源 |\n|---|---|\n| 亚马逊销量/订单 | 亚马逊运营数据源、导入表、API 或报表 |\n| 独立站订单 | 独立站系统 |\n| APP 绑定 | JOYHUB/APP 用户系统 |\n| 用户资料 | JOYHUB ID、注册邮箱、IP、设备号、用户行为数据 |\n| EDM 数据 | 邮件服务商 |\n| TEL 数据 | 电话系统或客服登记 |\n| JOYCOLLAB 数据 | JOYCOLLAB 网站 |\n| 财务/人事数据 | 财务表、人事表、成本表 |\n| 内容广告数据 | APP 广告位、社区内容系统 |\n\n### 11.4 核心业务对象\n\n后续建系统时至少需要统一以下核心对象\n\n- 用户\n- 订单\n- 产品\n- ASIN\n- 品牌\n- 国家/站点\n- 推送计划\n- 测评计划\n- 回评计划\n- 免评计划\n- 内容投流计划\n- 广告位\n- 客服任务\n- 合作伙伴\n- 成本记录\n- 风险用户/黑名单\n\n### 11.5 计划生成规则\n\n推新和测评计划一期建议先采用规则引擎后续再逐步引入模型。\n\n仍需继续细化\n\n- S/A/B 级产品资源比例是否固定,还是允许人工调整?\n- 突发事件如何插队?\n- 一个用户多久不能被重复触达?\n- 一个 ASIN 高风险时是否自动提升优先级?\n- GEO 需求如何进入计划生成?\n- 关键词需求如何与用户池匹配?\n\n### 11.6 评价健康报警\n\n评分阈值已经初步明确但还需要补充数量类和进度类报警。\n\n待细化\n\n- 回评数低于计划多少算异常?\n- 新品多少天内必须达到多少评价?\n- 差评率达到多少触发客服或用户运营介入?\n- ASIN 评分下降多少需要升级?\n- 评价健康报警是否自动触发回评推送计划?\n\n### 11.7 成本口径\n\n成本口径需要统一否则无法做真实 ROI 和人效复盘。\n\n待细化\n\n- 单评成本如何计算?\n- 返现成本是否纳入单评成本?\n- 菲律宾客服人力成本如何分摊到产品、ASIN、计划\n- KOC/KOL 提成如何归因到订单?\n- 管理成本如何分摊?\n\n### 11.8 归因规则\n\n多渠道触达一定会发生交叉归因规则需要系统化。\n\n典型场景\n\n用户先看到 APP 内容广告,再收到 EDM最后通过亚马逊购买。\n\n待确定\n\n- 采用首触归因、末触归因、主要贡献渠道,还是多渠道权重归因?\n- 品牌活动到亚马逊成交如何归因?\n- 内容广告和用户推送都参与时如何拆分贡献?\n- KOC/KOL 带货链接与后续 APP 触达如何处理归因冲突?\n\n### 11.9 黑名单与风险用户处理\n\n黑名单与风险用户需要成为系统基础能力。\n\n待细化\n\n- 谁能加入黑名单?\n- 黑名单是否影响推送、返现、测评资格?\n- 高风险用户是否允许客服继续跟进?\n- 多账号关联后是否自动合并为单一风险用户?\n- 黑名单查询是否支持订单号和 JOYHUB ID 双入口?\n\n### 11.10 一期项目边界建议\n\n一期不宜追求一次性覆盖所有 ERP 能力,应优先建设评价业务闭环的主干。\n\n建议一期优先\n\n1. 产品/ASIN 看板\n2. 测评计划、回评计划、免评计划审批流\n3. 用户推送计划\n4. ASIN 评价健康看板\n5. 菲律宾客服执行看板\n6. 基础权限与涉密字段控制\n7. 基础数据导入和统一主键\n\n后续二期及以后再逐步扩展模型化计划生成、多渠道归因、复杂成本核算、内容广告优化、JOYCOLLAB 深度集成和管理层经营分析。\n\n## 12. 修改记录\n\n| 版本 | 日期 | 修改内容 | 记录人 |\n|---|---|---|---|\n| v0.7 | 2026-04-26 | 将业务链条确认后的系统设计问题写入文档;补充角色权限、计划状态流、数据来源、核心业务对象、计划生成规则、评价健康报警、成本口径、归因规则、黑名单与风险用户处理和一期项目边界建议。 | Codex |\n| v0.6 | 2026-04-26 | 追加内容运营相关业务;明确内容运营配合亚马逊运营与品牌运营进行销售前期宣发、售前社区广告计划和社区 KOC/KCO 对接;新增 APP 广告管理看板和推流管理看板覆盖开屏、弹窗、文末、ME、评论末、加权、新帖、固定位置、固定流量池、用户行为、互动与风险字段。 | Codex |\n| v0.5 | 2026-04-26 | 追加菲律宾客服相关业务;明确菲律宾客服直接接受用户运营指导,亚马逊运营短期需求变动通过用户运营转达;新增核心指标客源、转化数、转化率、节约成本;新增人员管理、评价计划管理、成本管理三个看板及字段;补充菲律宾客服与用户运营、亚马逊运营、数据层/管理层的数据关系。 | Codex |\n| v0.4 | 2026-04-26 | 回答并固化 Q1-Q15 业务口径明确绑定率公式、ASIN 明细权限、产品重要级确认与维护、推新资源规则、测评/回评/免评审批流、ASIN 评价健康阈值、订单号与 JOYHUB ID 双主标识、品牌影响力评估、品牌活动归因、APP 社区与用户推送资源边界、测评计划建议生成方向、跨渠道频控、黑名单关联和 JOYCOLLAB/财务数据来源。 | Codex |\n| v0.3 | 2026-04-26 | 追加用户运营相关业务明确用户运营为系统核心使用者客服部门归属用户部门管理新增测评计划执行、ASIN 评价健康与回评计划、IM 社区消息推送、已成交索评、TEL 电话售后、EDM 邮件推送、KOC/KOL/PR 合作伙伴、其他触达渠道等模块;新增用户运营与其他部门的数据关系和待确认问题。 | Codex |\n| v0.2 | 2026-04-26 | 追加品牌运营相关业务;明确品牌运营与亚马逊运营不在同一办公区但共同建立销售体系;修正品牌推广计划归属为品牌运营主责、亚马逊运营同步;明确 AMZ 测评计划由亚马逊运营提需求、品牌运营协同、用户运营实际实现;新增品牌影响力与独立站销售看板、品牌推广计划协同看板、品牌运营数据关系和待确认问题。 | Codex |\n| v0.1 | 2026-04-26 | 建立评价业务流闭环项目架构文档;整理总体业务闭环、基础指标、亚马逊运营相关业务;新增销量与绑定率看板、推新计划与 APP 推送资源分配看板、测评与免评计划看板、回评计划与 ASIN 评价健康度看板、品牌推广协同数据和待确认问题。 | Codex |\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/user_erp_mvp_admin_prototype_v10",
"type": "document",
"name": "USER 后台 ERP MVP · 管理员总览原型 v10",
"filePath": "05_需求文档/user_erp_mvp_admin_prototype_v10.html",
"summary": "USER 后台 ERP MVP · 管理员总览原型 v10 JOYHUB Ops 💬 3 IM 消息 当前模块 经营总览 系统管理员最高权限视图 常用跳转 21 重要事项 3 审核类 4 字段关系 5 问题总结 9 经营总览 系统管理员 · 最高权限 · 全部部门 搜索 至 日 周 月 全部部门 Amazon 运营 用户运营 客服 系统管理员(最高权限) ",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>USER 后台 ERP MVP · 管理员总览原型 v10</title>\n <style>\n :root {\n --bg: #f4f6f8;\n --panel: #ffffff;\n --panel-soft: #f8fafc;\n --line: #d9e1e8;\n --line-strong: #b9c6d2;\n --text: #1f2933;\n --muted: #66737f;\n --blue: #2563eb;\n --blue-soft: #eaf1ff;\n --green: #188260;\n --green-soft: #e7f7f0;\n --red: #c93636;\n --red-soft: #fdecec;\n --amber: #b56a16;\n --amber-soft: #fff4df;\n --purple: #725ac1;\n --purple-soft: #f0ecff;\n --shadow: 0 18px 44px rgba(24, 39, 61, 0.12);\n --radius: 8px;\n --sidebar: #17212b;\n --sidebar-soft: #22313f;\n }\n\n * {\n box-sizing: border-box;\n }\n\n body {\n margin: 0;\n min-height: 100vh;\n background: var(--bg);\n color: var(--text);\n font-family: \"Microsoft YaHei\", \"Segoe UI\", Arial, sans-serif;\n letter-spacing: 0;\n }\n\n button,\n input,\n select,\n textarea {\n font: inherit;\n }\n\n button {\n cursor: pointer;\n }\n\n .app-shell {\n min-height: 100vh;\n display: grid;\n grid-template-columns: 340px minmax(0, 1fr);\n }\n\n .sidebar {\n background: transparent;\n color: var(--text);\n position: sticky;\n top: 0;\n height: 100vh;\n display: grid;\n grid-template-columns: 96px 244px;\n border-right: 1px solid var(--line);\n }\n\n .side-rail {\n background: #111827;\n color: #e8eef5;\n padding: 18px 14px;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n gap: 14px;\n min-height: 0;\n }\n\n .rail-brand {\n display: grid;\n gap: 3px;\n justify-items: center;\n padding-bottom: 14px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n text-align: center;\n }\n\n .rail-brand-title {\n font-size: 14px;\n font-weight: 900;\n letter-spacing: 0;\n color: #fff;\n }\n\n .rail-brand-subtitle {\n font-size: 12px;\n color: #a8b5c2;\n }\n\n .rail-nav {\n display: grid;\n gap: 8px;\n align-content: start;\n overflow: auto;\n min-height: 0;\n }\n\n .rail-button {\n min-height: 70px;\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: #dce7f2;\n display: grid;\n justify-items: center;\n align-content: center;\n gap: 5px;\n padding: 8px 4px;\n position: relative;\n }\n\n .rail-button:hover,\n .rail-button.active {\n background: #1f2d3c;\n color: #fff;\n }\n\n .rail-button.active::before {\n content: \"\";\n position: absolute;\n left: -14px;\n top: 12px;\n bottom: 12px;\n width: 4px;\n border-radius: 999px;\n background: var(--blue);\n }\n\n .rail-icon {\n width: 26px;\n height: 26px;\n border: 1px solid rgba(255, 255, 255, 0.28);\n border-radius: 7px;\n display: grid;\n place-items: center;\n font-size: 12px;\n font-weight: 900;\n color: #edf4ff;\n }\n\n .rail-label {\n font-size: 12px;\n line-height: 1.2;\n text-align: center;\n }\n\n .rail-count {\n min-width: 24px;\n height: 22px;\n display: grid;\n place-items: center;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.14);\n color: #d7e4ef;\n font-size: 12px;\n padding: 0 6px;\n }\n\n .rail-foot {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 8px;\n padding: 10px 6px;\n text-align: center;\n display: grid;\n gap: 4px;\n color: #cbd5e1;\n font-size: 12px;\n }\n\n .rail-foot strong {\n color: #111827;\n background: #fff7d6;\n width: 48px;\n height: 48px;\n border-radius: 999px;\n display: grid;\n place-items: center;\n justify-self: center;\n font-size: 13px;\n line-height: 1.1;\n }\n\n .rail-foot .im-trigger {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 8px;\n padding: 10px 6px;\n text-align: center;\n display: grid;\n gap: 4px;\n color: #cbd5e1;\n font-size: 12px;\n background: transparent;\n cursor: pointer;\n width: 100%;\n }\n\n .rail-foot .im-trigger:hover {\n background: rgba(255, 255, 255, 0.08);\n border-color: rgba(255, 255, 255, 0.24);\n }\n\n .rail-foot .im-trigger .im-avatar {\n color: #111827;\n background: linear-gradient(135deg, #10b981, #059669);\n width: 48px;\n height: 48px;\n border-radius: 999px;\n display: grid;\n place-items: center;\n justify-self: center;\n font-size: 18px;\n font-weight: 900;\n position: relative;\n }\n\n .rail-foot .im-trigger .im-avatar .im-badge {\n position: absolute;\n top: -2px;\n right: -2px;\n min-width: 18px;\n height: 18px;\n background: #ef4444;\n color: #fff;\n border-radius: 999px;\n font-size: 11px;\n display: grid;\n place-items: center;\n padding: 0 4px;\n border: 2px solid #111827;\n }\n\n .im-panel {\n position: fixed;\n left: 0;\n top: 0;\n bottom: 0;\n width: 380px;\n background: #fff;\n box-shadow: 4px 0 24px rgba(0,0,0,0.15);\n z-index: 200;\n display: none;\n flex-direction: column;\n border-right: 1px solid var(--line);\n }\n\n .im-panel.open {\n display: flex;\n }\n\n .im-panel-head {\n padding: 14px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n background: #f9fbfd;\n }\n\n .im-panel-head h2 {\n margin: 0;\n font-size: 16px;\n font-weight: 800;\n color: #182331;\n }\n\n .im-panel-head .im-tabs {\n display: flex;\n gap: 6px;\n }\n\n .im-panel-head .im-tab {\n height: 30px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 8px;\n padding: 0 12px;\n color: var(--muted);\n font-size: 12px;\n font-weight: 700;\n cursor: pointer;\n }\n\n .im-panel-head .im-tab.active {\n background: var(--blue);\n color: #fff;\n border-color: var(--blue);\n }\n\n .im-panel-head .im-tab .im-count {\n background: #ef4444;\n color: #fff;\n border-radius: 999px;\n padding: 1px 6px;\n font-size: 10px;\n margin-left: 4px;\n }\n\n .im-list {\n flex: 1;\n overflow-y: auto;\n padding: 8px;\n }\n\n .im-item {\n display: grid;\n grid-template-columns: 44px 1fr auto;\n gap: 10px;\n align-items: start;\n padding: 12px 10px;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.15s ease;\n }\n\n .im-item:hover {\n background: #f1f5f9;\n }\n\n .im-item.unread {\n background: #eef6ff;\n }\n\n .im-item.unread:hover {\n background: #e0eeff;\n }\n\n .im-avatar-small {\n width: 44px;\n height: 44px;\n border-radius: 999px;\n background: linear-gradient(135deg, var(--blue), #1d4ed8);\n display: grid;\n place-items: center;\n color: #fff;\n font-weight: 800;\n font-size: 14px;\n position: relative;\n }\n\n .im-avatar-small .online-dot {\n position: absolute;\n bottom: 1px;\n right: 1px;\n width: 10px;\n height: 10px;\n background: #22c55e;\n border-radius: 999px;\n border: 2px solid #fff;\n }\n\n .im-avatar-small.offline .online-dot {\n display: none;\n }\n\n .im-avatar-small .im-msg-badge {\n position: absolute;\n top: -4px;\n right: -4px;\n min-width: 18px;\n height: 18px;\n background: #ef4444;\n color: #fff;\n border-radius: 999px;\n font-size: 10px;\n display: grid;\n place-items: center;\n padding: 0 4px;\n border: 2px solid #fff;\n }\n\n .im-info {\n min-width: 0;\n }\n\n .im-info-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin-bottom: 4px;\n }\n\n .im-name {\n font-weight: 800;\n font-size: 13px;\n color: #1f2933;\n }\n\n .im-time {\n font-size: 11px;\n color: var(--muted);\n flex-shrink: 0;\n }\n\n .im-preview {\n font-size: 12px;\n color: var(--muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .im-unread-count {\n font-size: 11px;\n color: var(--muted);\n text-align: right;\n }\n\n .im-unread-count strong {\n display: block;\n font-size: 14px;\n color: #ef4444;\n }\n\n .im-chat {\n flex: 1;\n display: none;\n flex-direction: column;\n }\n\n .im-chat.active {\n display: flex;\n }\n\n .im-chat-head {\n padding: 12px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n gap: 10px;\n background: #f9fbfd;\n }\n\n .im-chat-head .back-btn {\n width: 28px;\n height: 28px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 6px;\n display: grid;\n place-items: center;\n cursor: pointer;\n font-size: 12px;\n }\n\n .im-chat-head .back-btn:hover {\n background: #f1f5f9;\n }\n\n .im-chat-head .im-chat-name {\n font-weight: 800;\n font-size: 14px;\n }\n\n .im-chat-head .im-chat-status {\n font-size: 11px;\n color: #22c55e;\n }\n\n .im-messages {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n background: #f4f6f8;\n }\n\n .im-msg {\n display: flex;\n gap: 8px;\n max-width: 85%;\n }\n\n .im-msg.other {\n align-self: flex-start;\n }\n\n .im-msg.self {\n align-self: flex-end;\n flex-direction: row-reverse;\n }\n\n .im-msg .msg-avatar {\n width: 32px;\n height: 32px;\n border-radius: 999px;\n background: linear-gradient(135deg, var(--blue), #1d4ed8);\n display: grid;\n place-items: center;\n color: #fff;\n font-weight: 700;\n font-size: 12px;\n flex-shrink: 0;\n }\n\n .im-msg.self .msg-avatar {\n background: linear-gradient(135deg, #10b981, #059669);\n }\n\n .im-msg .msg-bubble {\n background: #fff;\n border-radius: 12px;\n padding: 10px 12px;\n font-size: 13px;\n line-height: 1.5;\n box-shadow: 0 1px 2px rgba(0,0,0,0.06);\n }\n\n .im-msg.self .msg-bubble {\n background: var(--blue);\n color: #fff;\n }\n\n .im-msg .msg-time {\n font-size: 10px;\n color: var(--muted);\n margin-top: 4px;\n }\n\n .im-msg.self .msg-time {\n text-align: right;\n color: rgba(255,255,255,0.7);\n }\n\n .im-input-area {\n padding: 12px 16px;\n border-top: 1px solid var(--line);\n background: #fff;\n display: flex;\n gap: 8px;\n align-items: flex-end;\n }\n\n .im-input-area textarea {\n flex: 1;\n min-height: 40px;\n max-height: 100px;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 8px 12px;\n font-size: 13px;\n resize: none;\n outline: none;\n }\n\n .im-input-area textarea:focus {\n border-color: var(--blue);\n }\n\n .im-input-area .send-btn {\n height: 40px;\n min-width: 60px;\n background: var(--blue);\n color: #fff;\n border: none;\n border-radius: 8px;\n padding: 0 14px;\n font-weight: 700;\n cursor: pointer;\n }\n\n .im-input-area .send-btn:hover {\n background: #1d4ed8;\n }\n\n .im-mask {\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.3);\n z-index: 199;\n display: none;\n }\n\n .im-mask.open {\n display: block;\n }\n\n .side-panel {\n background: #ffffff;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n min-width: 0;\n min-height: 0;\n border-right: 1px solid var(--line);\n }\n\n .module-head {\n padding: 20px 18px 16px;\n border-bottom: 1px solid var(--line);\n display: grid;\n gap: 6px;\n }\n\n .module-eyebrow {\n color: var(--muted);\n font-size: 12px;\n font-weight: 800;\n }\n\n .module-title {\n font-size: 20px;\n font-weight: 900;\n color: #111827;\n line-height: 1.15;\n }\n\n .module-note {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .brand {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 8px 16px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n .brand-mark {\n width: 34px;\n height: 34px;\n border-radius: 8px;\n display: grid;\n place-items: center;\n background: #2f6fca;\n color: #fff;\n font-weight: 800;\n }\n\n .brand-title {\n font-weight: 800;\n font-size: 15px;\n line-height: 1.2;\n }\n\n .brand-subtitle {\n color: #a8b5c2;\n font-size: 12px;\n margin-top: 2px;\n }\n\n .nav {\n display: grid;\n gap: 6px;\n overflow: auto;\n padding: 14px 12px;\n align-content: start;\n min-height: 0;\n }\n\n .nav-button {\n width: 100%;\n min-height: 48px;\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: var(--text);\n display: grid;\n grid-template-columns: 28px 1fr auto;\n align-items: center;\n text-align: left;\n padding: 8px 10px;\n gap: 10px;\n }\n\n .nav-button:hover,\n .nav-button.active {\n background: var(--blue-soft);\n color: #153a8a;\n }\n\n .nav-icon {\n width: 24px;\n height: 24px;\n border: 1px solid var(--line);\n border-radius: 6px;\n display: grid;\n place-items: center;\n font-size: 11px;\n font-weight: 800;\n color: #34516f;\n background: #fff;\n }\n\n .nav-count {\n min-width: 22px;\n border-radius: 999px;\n background: #eef3f8;\n color: #506070;\n text-align: center;\n font-size: 12px;\n padding: 2px 6px;\n }\n\n .sidebar-todo {\n border-top: 1px solid var(--line);\n padding: 14px 12px 16px;\n display: grid;\n gap: 8px;\n background: #fbfcfe;\n }\n\n .sidebar-todo-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #1f2933;\n font-size: 12px;\n font-weight: 800;\n }\n\n .sidebar-todo-head strong {\n min-width: 26px;\n height: 22px;\n border-radius: 999px;\n display: grid;\n place-items: center;\n background: var(--red);\n color: #fff;\n font-size: 12px;\n }\n\n .sidebar-todo-row {\n min-height: 30px;\n border: 1px solid var(--line);\n border-radius: 6px;\n background: #fff;\n color: var(--text);\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 8px;\n text-align: left;\n font-size: 12px;\n }\n\n .sidebar-todo-row:hover,\n .sidebar-todo-row.primary {\n background: var(--blue-soft);\n color: #153a8a;\n border-color: #bcd0ff;\n }\n\n .sidebar-todo-row strong {\n color: inherit;\n font-size: 13px;\n }\n\n .main {\n min-width: 0;\n display: grid;\n grid-template-rows: 58px minmax(0, 1fr);\n }\n\n .topbar {\n background: var(--panel);\n border-bottom: 1px solid var(--line);\n display: grid;\n grid-template-columns: minmax(300px, 1fr) auto;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 8px 18px;\n position: sticky;\n top: 0;\n z-index: 20;\n min-height: 58px;\n }\n\n .top-left {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n }\n\n .top-title {\n min-width: 138px;\n }\n\n .top-title strong {\n display: block;\n font-size: 16px;\n line-height: 1.2;\n color: #152233;\n }\n\n .top-title span {\n display: block;\n color: var(--muted);\n font-size: 12px;\n margin-top: 2px;\n }\n\n .search {\n width: min(240px, 22vw);\n height: 34px;\n border: 1px solid var(--line);\n background: var(--panel-soft);\n border-radius: 8px;\n display: flex;\n align-items: center;\n padding: 0 10px;\n gap: 8px;\n color: var(--muted);\n flex-shrink: 1;\n }\n\n .search span {\n font-size: 12px;\n font-weight: 800;\n }\n\n .search input {\n width: 100%;\n border: 0;\n background: transparent;\n outline: 0;\n color: var(--text);\n }\n\n .top-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n justify-content: flex-end;\n flex-wrap: wrap;\n }\n\n .role-select,\n .scope-select {\n height: 32px;\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 0 10px;\n color: var(--text);\n }\n\n .scope-select {\n width: 116px;\n }\n\n .role-select {\n width: 164px;\n }\n\n .top-time {\n height: 32px;\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 6px;\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n }\n\n .top-time input {\n width: 98px;\n height: 28px;\n border: 0;\n outline: 0;\n color: var(--text);\n background: transparent;\n }\n\n .top-period {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 32px;\n padding: 3px;\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n }\n\n .top-period button {\n height: 24px;\n min-width: 28px;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: var(--muted);\n font-weight: 800;\n padding: 0 7px;\n }\n\n .top-period button.active {\n background: var(--blue);\n color: #fff;\n }\n\n .content {\n padding: 14px 24px 34px;\n min-width: 0;\n }\n\n .page-head {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 18px;\n margin-bottom: 12px;\n padding: 2px 0 4px;\n }\n\n h1 {\n margin: 0;\n font-size: 19px;\n line-height: 1.2;\n color: #182331;\n }\n\n .page-note {\n margin-top: 6px;\n color: var(--muted);\n font-size: 12px;\n }\n\n .button-row {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n }\n\n .btn {\n min-height: 34px;\n border: 1px solid var(--line);\n background: var(--panel);\n color: var(--text);\n border-radius: 8px;\n padding: 0 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n white-space: nowrap;\n }\n\n .btn:hover {\n border-color: var(--line-strong);\n background: #f9fbfd;\n }\n\n .btn.primary {\n background: var(--blue);\n color: #fff;\n border-color: var(--blue);\n }\n\n .btn.danger {\n background: var(--red);\n color: #fff;\n border-color: var(--red);\n }\n\n .btn.warning {\n background: var(--amber);\n color: #fff;\n border-color: var(--amber);\n }\n\n .btn.ghost {\n background: transparent;\n }\n\n .grid {\n display: grid;\n gap: 14px;\n }\n\n .kpi-grid {\n grid-template-columns: repeat(4, minmax(170px, 1fr));\n margin-bottom: 14px;\n }\n\n .kpi-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 14px;\n min-height: 118px;\n display: grid;\n gap: 8px;\n text-align: left;\n transition: border-color 0.16s ease, transform 0.16s ease;\n }\n\n .kpi-card:hover {\n border-color: var(--blue);\n transform: translateY(-1px);\n }\n\n .kpi-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n }\n\n .kpi-title {\n font-size: 13px;\n color: var(--muted);\n font-weight: 700;\n }\n\n .kpi-value {\n font-size: 30px;\n font-weight: 800;\n line-height: 1;\n color: #172331;\n }\n\n .kpi-foot {\n font-size: 12px;\n color: var(--muted);\n display: flex;\n justify-content: space-between;\n gap: 8px;\n }\n\n .layout-dashboard {\n display: grid;\n grid-template-columns: minmax(0, 1.42fr) minmax(320px, 0.7fr);\n gap: 14px;\n align-items: start;\n }\n\n .panel {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n min-width: 0;\n }\n\n .panel-head {\n padding: 14px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n\n .panel-title {\n margin: 0;\n font-size: 16px;\n font-weight: 800;\n color: #182331;\n }\n\n .panel-note {\n color: var(--muted);\n font-size: 12px;\n margin-top: 3px;\n }\n\n .panel-body {\n padding: 14px 16px 16px;\n }\n\n .tabs {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n\n .tab {\n height: 30px;\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 0 10px;\n color: var(--muted);\n }\n\n .tab.active {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #bcd0ff;\n font-weight: 700;\n }\n\n .filter-bar {\n display: grid;\n grid-template-columns: 1.3fr repeat(2, minmax(128px, 0.7fr)) repeat(4, minmax(126px, 0.8fr)) auto;\n gap: 10px;\n margin-bottom: 12px;\n }\n\n .filter-bar input,\n .filter-bar select {\n height: 34px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 8px;\n padding: 0 10px;\n min-width: 0;\n }\n\n .time-toolbar {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 12px 14px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 14px;\n flex-wrap: wrap;\n }\n\n .time-controls,\n .period-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .time-toolbar input,\n .time-toolbar select,\n .period-toggle button {\n height: 32px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 8px;\n padding: 0 10px;\n color: var(--text);\n }\n\n .period-toggle button.active {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #bcd0ff;\n font-weight: 800;\n }\n\n .trend-line {\n font-size: 12px;\n color: var(--muted);\n display: grid;\n grid-template-columns: repeat(3, max-content);\n gap: 8px;\n align-items: center;\n }\n\n .spark {\n display: flex;\n align-items: end;\n gap: 3px;\n height: 24px;\n min-width: 58px;\n }\n\n .spark i {\n display: block;\n width: 7px;\n border-radius: 3px 3px 0 0;\n background: #9db5d0;\n }\n\n .insight-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 10px;\n margin-bottom: 14px;\n }\n\n .insight-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n min-height: 112px;\n }\n\n .insight-title {\n font-weight: 800;\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n }\n\n .insight-value {\n font-size: 24px;\n font-weight: 800;\n line-height: 1;\n }\n\n .insight-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.5;\n }\n\n .module-charts {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n margin-bottom: 14px;\n }\n\n .chart-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n min-width: 0;\n }\n\n .legacy-workspace {\n display: grid;\n gap: 14px;\n }\n\n .legacy-split {\n display: grid;\n grid-template-columns: minmax(0, 1.35fr) minmax(360px, 0.65fr);\n gap: 14px;\n align-items: start;\n }\n\n .relation-grid {\n display: grid;\n gap: 10px;\n }\n\n .relation-card {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 11px 12px;\n background: #fbfcfe;\n display: grid;\n gap: 6px;\n }\n\n .relation-title {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n font-size: 13px;\n font-weight: 800;\n }\n\n .relation-meta {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .query-matrix table {\n min-width: 980px;\n }\n\n .field-matrix table {\n min-width: 1260px;\n }\n\n .chart-title {\n font-size: 13px;\n font-weight: 800;\n margin-bottom: 8px;\n }\n\n .mini-stat-row {\n display: grid;\n grid-template-columns: 78px minmax(0, 1fr) 44px;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--muted);\n margin-top: 8px;\n }\n\n .pending-strip {\n background: #fff7ed;\n border: 1px solid #f3cf9b;\n border-radius: 8px;\n padding: 10px 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n color: #7d4a0b;\n font-size: 13px;\n }\n\n .executive-hero {\n display: grid;\n grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1.55fr);\n gap: 14px;\n margin-bottom: 14px;\n }\n\n .focus-card {\n background: #111827;\n color: #eef5ff;\n border-radius: 8px;\n padding: 18px;\n display: grid;\n gap: 16px;\n min-height: 260px;\n }\n\n .focus-eyebrow {\n color: #a8b3c2;\n font-size: 12px;\n font-weight: 800;\n }\n\n .focus-title {\n font-size: 21px;\n line-height: 1.32;\n font-weight: 800;\n margin: 0;\n }\n\n .health-score {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: end;\n gap: 14px;\n }\n\n .health-number {\n font-size: 54px;\n font-weight: 900;\n line-height: 0.95;\n }\n\n .health-copy {\n color: #cbd5e1;\n font-size: 13px;\n line-height: 1.55;\n }\n\n .focus-metrics {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 8px;\n }\n\n .focus-metric {\n background: rgba(255, 255, 255, 0.08);\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 8px;\n padding: 10px;\n }\n\n .focus-metric strong {\n display: block;\n font-size: 20px;\n margin-bottom: 4px;\n }\n\n .focus-metric span {\n color: #aebbc9;\n font-size: 12px;\n }\n\n .decision-panel {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n min-width: 0;\n }\n\n .decision-list {\n display: grid;\n gap: 10px;\n padding: 14px;\n }\n\n .decision-row {\n display: grid;\n grid-template-columns: 92px minmax(0, 1fr) auto;\n align-items: center;\n gap: 12px;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n background: #fff;\n }\n\n .decision-row.critical {\n border-color: #f1b5b5;\n background: #fff8f8;\n }\n\n .decision-row.warning {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .decision-title {\n font-size: 14px;\n font-weight: 800;\n margin-bottom: 5px;\n }\n\n .decision-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.5;\n }\n\n .executive-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 12px;\n margin-bottom: 14px;\n }\n\n .executive-card {\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 14px;\n min-height: 158px;\n display: grid;\n gap: 10px;\n text-align: left;\n color: var(--text);\n }\n\n .executive-card.primary {\n border-color: #b9cdfb;\n background: #f7faff;\n }\n\n .executive-card.risk {\n border-color: #efb6b6;\n background: #fff8f8;\n }\n\n .executive-card.warn {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .executive-card.good {\n border-color: #b8e4d0;\n background: #f6fffb;\n }\n\n .executive-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 13px;\n color: var(--muted);\n font-weight: 800;\n }\n\n .executive-value {\n font-size: 28px;\n font-weight: 900;\n line-height: 1.05;\n color: #162335;\n }\n\n .period-stats {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 6px;\n }\n\n .period-stat {\n border: 1px solid var(--line);\n border-radius: 7px;\n padding: 7px;\n background: rgba(255, 255, 255, 0.62);\n }\n\n .period-stat strong {\n display: block;\n font-size: 14px;\n }\n\n .period-stat span {\n color: var(--muted);\n font-size: 11px;\n }\n\n .ops-strip {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: 10px;\n margin-bottom: 14px;\n }\n\n .ops-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n min-height: 112px;\n text-align: left;\n color: var(--text);\n }\n\n .ops-name {\n font-weight: 800;\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n }\n\n .ops-status {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .drilldown-grid {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: 8px;\n margin-bottom: 14px;\n }\n\n .drilldown-button {\n min-height: 44px;\n border-radius: 8px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--text);\n padding: 0 10px;\n font-weight: 800;\n }\n\n .drilldown-button:hover {\n border-color: #b7c5d3;\n background: #f8fafc;\n }\n\n .command-board {\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n margin-bottom: 8px;\n overflow: hidden;\n display: grid;\n grid-template-columns: 124px minmax(0, 1fr) 104px;\n align-items: stretch;\n }\n\n .command-board-head {\n min-height: 58px;\n padding: 8px 10px;\n display: grid;\n align-content: center;\n gap: 2px;\n border-right: 1px solid var(--line);\n background: #f9fbfd;\n }\n\n .command-board-title {\n display: grid;\n gap: 2px;\n min-width: 0;\n }\n\n .command-board-title h2 {\n margin: 0;\n font-size: 14px;\n line-height: 1.15;\n color: #172234;\n white-space: nowrap;\n }\n\n .command-board-title span {\n color: var(--muted);\n font-size: 11px;\n line-height: 1.25;\n }\n\n .command-board-actions {\n min-height: 58px;\n padding: 7px;\n border-left: 1px solid var(--line);\n display: grid;\n align-content: center;\n gap: 5px;\n background: #fbfcfe;\n }\n\n .command-status-strip {\n display: grid;\n grid-template-columns: minmax(150px, 1.15fr) minmax(150px, 1.1fr) repeat(4, minmax(112px, 0.78fr));\n gap: 1px;\n background: var(--line);\n }\n\n .status-unit {\n min-height: 58px;\n border: 0;\n border-radius: 0;\n background: #fff;\n padding: 8px 10px;\n display: grid;\n gap: 4px;\n text-align: left;\n }\n\n .status-unit.alert {\n background: #fff8f8;\n }\n\n .status-unit.warning {\n background: #fffaf0;\n }\n\n .status-unit.goal {\n background: #f7fbff;\n }\n\n .status-unit.featured {\n min-height: 58px;\n }\n\n .command-status-strip.is-collapsed .status-unit.optional {\n display: none;\n }\n\n .status-name {\n color: var(--muted);\n font-size: 11px;\n font-weight: 800;\n }\n\n .status-value {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n font-size: 20px;\n font-weight: 900;\n line-height: 1;\n color: #162335;\n }\n\n .status-value small {\n color: var(--muted);\n font-size: 10px;\n font-weight: 700;\n text-align: right;\n }\n\n .status-progress {\n height: 5px;\n border-radius: 999px;\n background: #e8eef4;\n overflow: hidden;\n }\n\n .status-progress span {\n display: block;\n height: 100%;\n width: var(--progress, 0%);\n border-radius: inherit;\n background: var(--blue);\n }\n\n .command-grid {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 360px;\n gap: 12px;\n align-items: start;\n margin-bottom: 12px;\n }\n\n .panel-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n flex-wrap: wrap;\n }\n\n .compact-tabs {\n display: flex;\n align-items: center;\n gap: 5px;\n flex-wrap: wrap;\n }\n\n .compact-tabs button {\n height: 28px;\n border-radius: 7px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--muted);\n padding: 0 9px;\n font-size: 12px;\n font-weight: 800;\n }\n\n .compact-tabs button.active {\n background: var(--blue-soft);\n border-color: #bcd0ff;\n color: var(--blue);\n }\n\n .priority-table table {\n min-width: 920px;\n }\n\n .priority-table th,\n .priority-table td {\n padding: 10px 9px;\n }\n\n .row-title {\n font-weight: 800;\n color: #182331;\n }\n\n .row-sub {\n color: var(--muted);\n font-size: 12px;\n margin-top: 3px;\n }\n\n .side-stack {\n display: grid;\n gap: 10px;\n }\n\n .side-list {\n display: grid;\n gap: 8px;\n padding: 12px;\n }\n\n .side-row {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n display: grid;\n gap: 7px;\n background: #fff;\n }\n\n .side-row.alert {\n border-color: #efb6b6;\n background: #fff8f8;\n }\n\n .side-row.warning {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .side-row-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-weight: 800;\n font-size: 13px;\n }\n\n .side-row-meta {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .matrix-grid {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 440px;\n gap: 12px;\n align-items: start;\n }\n\n .matrix-table table {\n min-width: 720px;\n }\n\n .channel-table table {\n min-width: 520px;\n }\n\n .table-wrap {\n overflow: auto;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n min-width: 1100px;\n }\n\n th,\n td {\n border-bottom: 1px solid var(--line);\n padding: 11px 10px;\n text-align: left;\n font-size: 13px;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n th {\n color: #536170;\n font-weight: 800;\n background: #fbfcfe;\n }\n\n tr:hover td {\n background: #fbfdff;\n }\n\n .tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 22px;\n border-radius: 999px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 700;\n border: 1px solid transparent;\n }\n\n .tag.blue {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #c7d8ff;\n }\n\n .tag.green {\n background: var(--green-soft);\n color: var(--green);\n border-color: #bde8d5;\n }\n\n .tag.red {\n background: var(--red-soft);\n color: var(--red);\n border-color: #f7bdbd;\n }\n\n .tag.amber {\n background: var(--amber-soft);\n color: var(--amber);\n border-color: #f1d39b;\n }\n\n .tag.purple {\n background: var(--purple-soft);\n color: var(--purple);\n border-color: #d8ccff;\n }\n\n .tag.gray {\n background: #f0f3f6;\n color: #61707f;\n border-color: #dbe2e8;\n }\n\n .mini-btn {\n height: 28px;\n border-radius: 7px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--text);\n padding: 0 8px;\n margin-right: 4px;\n }\n\n .mini-btn.primary {\n color: var(--blue);\n border-color: #bfd0ff;\n background: var(--blue-soft);\n font-weight: 700;\n }\n\n .mini-btn.danger {\n color: var(--red);\n border-color: #f2b8b8;\n background: var(--red-soft);\n font-weight: 700;\n }\n\n .stack {\n display: grid;\n gap: 14px;\n }\n\n .risk-list,\n .activity-list,\n .suggest-list {\n display: grid;\n gap: 10px;\n }\n\n .risk-item,\n .activity-item,\n .suggest-item {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n background: #fff;\n }\n\n .risk-item.high {\n border-color: #f4b4b4;\n background: #fff8f8;\n }\n\n .risk-item.mid {\n border-color: #efd093;\n background: #fffaf0;\n }\n\n .item-title {\n display: flex;\n justify-content: space-between;\n gap: 10px;\n font-weight: 800;\n font-size: 13px;\n }\n\n .item-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.55;\n }\n\n .chart-row {\n display: grid;\n gap: 8px;\n margin-top: 2px;\n }\n\n .bar-line {\n display: grid;\n grid-template-columns: 72px minmax(0, 1fr) 46px;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--muted);\n }\n\n .bar-track {\n height: 10px;\n background: #edf1f5;\n border-radius: 999px;\n overflow: hidden;\n }\n\n .bar-fill {\n height: 100%;\n border-radius: 999px;\n background: var(--blue);\n }\n\n .summary-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 10px;\n }\n\n .summary-cell {\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n padding: 12px;\n }\n\n .summary-value {\n font-size: 22px;\n font-weight: 800;\n margin-bottom: 4px;\n }\n\n .summary-label {\n color: var(--muted);\n font-size: 12px;\n }\n\n .empty {\n padding: 28px;\n color: var(--muted);\n text-align: center;\n border: 1px dashed var(--line);\n border-radius: 8px;\n background: #fbfcfe;\n }\n\n .drawer-mask,\n .modal-mask {\n position: fixed;\n inset: 0;\n background: rgba(10, 18, 28, 0.36);\n z-index: 80;\n display: none;\n }\n\n .drawer-mask.open,\n .modal-mask.open {\n display: block;\n }\n\n .drawer {\n position: fixed;\n right: 0;\n top: 0;\n height: 100vh;\n width: min(680px, 92vw);\n background: var(--panel);\n box-shadow: var(--shadow);\n z-index: 90;\n transform: translateX(102%);\n transition: transform 0.18s ease;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n }\n\n .drawer.open {\n transform: translateX(0);\n }\n\n .drawer-head,\n .drawer-foot {\n padding: 16px 18px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n }\n\n .drawer-foot {\n border-bottom: 0;\n border-top: 1px solid var(--line);\n justify-content: flex-end;\n }\n\n .drawer-body {\n overflow: auto;\n padding: 16px 18px;\n display: grid;\n gap: 14px;\n align-content: start;\n }\n\n .detail-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n }\n\n .detail-cell {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n min-width: 0;\n }\n\n .detail-label {\n font-size: 12px;\n color: var(--muted);\n margin-bottom: 5px;\n }\n\n .detail-value {\n font-size: 13px;\n font-weight: 700;\n overflow-wrap: anywhere;\n }\n\n .timeline {\n display: grid;\n gap: 8px;\n }\n\n .timeline-item {\n border-left: 3px solid var(--blue);\n padding: 4px 0 4px 10px;\n font-size: 13px;\n }\n\n .modal {\n position: fixed;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: min(560px, 92vw);\n background: #fff;\n border-radius: 8px;\n box-shadow: var(--shadow);\n z-index: 100;\n display: none;\n }\n\n .modal.open {\n display: block;\n }\n\n .modal-head,\n .modal-foot {\n padding: 15px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n justify-content: space-between;\n gap: 10px;\n align-items: center;\n }\n\n .modal-foot {\n border-bottom: 0;\n border-top: 1px solid var(--line);\n justify-content: flex-end;\n }\n\n .modal-body {\n padding: 16px;\n display: grid;\n gap: 12px;\n }\n\n .form-row {\n display: grid;\n gap: 6px;\n }\n\n .form-row label {\n font-size: 13px;\n font-weight: 800;\n }\n\n .form-row input,\n .form-row select,\n .form-row textarea {\n border: 1px solid var(--line);\n border-radius: 8px;\n min-height: 36px;\n padding: 8px 10px;\n width: 100%;\n }\n\n .form-row textarea {\n min-height: 88px;\n resize: vertical;\n }\n\n .toast {\n position: fixed;\n right: 18px;\n bottom: 18px;\n z-index: 120;\n display: grid;\n gap: 8px;\n }\n\n .toast-item {\n width: min(360px, calc(100vw - 36px));\n background: #172331;\n color: #fff;\n border-radius: 8px;\n padding: 12px 14px;\n box-shadow: var(--shadow);\n font-size: 13px;\n }\n\n .route-page {\n display: none;\n }\n\n .route-page.active {\n display: block;\n }\n\n .im-push-section {\n margin-bottom: 14px;\n }\n\n .im-push-grid {\n display: grid;\n grid-template-columns: 1fr 1.5fr;\n gap: 14px;\n align-items: start;\n }\n\n .im-push-list {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n }\n\n .im-push-list-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 10px;\n }\n\n .im-push-list-title {\n font-weight: 800;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .im-push-list-title .im-dot {\n width: 8px;\n height: 8px;\n background: #22c55e;\n border-radius: 999px;\n }\n\n .im-push-conversations {\n display: grid;\n gap: 6px;\n }\n\n .im-push-conv {\n display: grid;\n grid-template-columns: 36px 1fr auto;\n gap: 8px;\n align-items: center;\n padding: 8px;\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fafbfc;\n cursor: pointer;\n transition: all 0.15s ease;\n }\n\n .im-push-conv:hover {\n background: #f0f4f8;\n border-color: var(--blue);\n }\n\n .im-push-conv.active {\n background: var(--blue-soft);\n border-color: var(--blue);\n }\n\n .im-push-conv-avatar {\n width: 36px;\n height: 36px;\n border-radius: 999px;\n background: linear-gradient(135deg, var(--blue), #1d4ed8);\n display: grid;\n place-items: center;\n color: #fff;\n font-weight: 700;\n font-size: 12px;\n position: relative;\n }\n\n .im-push-conv-avatar .online-dot {\n position: absolute;\n bottom: 0;\n right: 0;\n width: 8px;\n height: 8px;\n background: #22c55e;\n border-radius: 999px;\n border: 2px solid #fff;\n }\n\n .im-push-conv-info {\n min-width: 0;\n }\n\n .im-push-conv-name {\n font-weight: 700;\n font-size: 12px;\n color: var(--text);\n }\n\n .im-push-conv-preview {\n font-size: 11px;\n color: var(--muted);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .im-push-conv-badge {\n min-width: 18px;\n height: 18px;\n background: #ef4444;\n color: #fff;\n border-radius: 999px;\n font-size: 10px;\n display: grid;\n place-items: center;\n padding: 0 4px;\n }\n\n .im-push-chat {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n display: flex;\n flex-direction: column;\n min-height: 320px;\n }\n\n .im-push-chat-head {\n padding: 12px 14px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .im-push-chat-info {\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .im-push-chat-avatar {\n width: 36px;\n height: 36px;\n border-radius: 999px;\n background: linear-gradient(135deg, var(--blue), #1d4ed8);\n display: grid;\n place-items: center;\n color: #fff;\n font-weight: 700;\n font-size: 14px;\n }\n\n .im-push-chat-name {\n font-weight: 800;\n font-size: 13px;\n }\n\n .im-push-chat-status {\n font-size: 11px;\n color: #22c55e;\n }\n\n .im-push-messages {\n flex: 1;\n padding: 12px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 10px;\n background: #f8fafc;\n }\n\n .im-push-msg {\n display: flex;\n gap: 8px;\n max-width: 85%;\n }\n\n .im-push-msg.other {\n align-self: flex-start;\n }\n\n .im-push-msg.self {\n align-self: flex-end;\n flex-direction: row-reverse;\n }\n\n .im-push-msg-avatar {\n width: 28px;\n height: 28px;\n border-radius: 999px;\n background: linear-gradient(135deg, var(--blue), #1d4ed8);\n display: grid;\n place-items: center;\n color: #fff;\n font-weight: 700;\n font-size: 11px;\n flex-shrink: 0;\n }\n\n .im-push-msg.self .im-push-msg-avatar {\n background: linear-gradient(135deg, #10b981, #059669);\n }\n\n .im-push-msg-bubble {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 12px;\n padding: 8px 12px;\n font-size: 12px;\n line-height: 1.5;\n }\n\n .im-push-msg.self .im-push-msg-bubble {\n background: var(--blue);\n color: #fff;\n border-color: var(--blue);\n }\n\n .im-push-msg-time {\n font-size: 10px;\n color: var(--muted);\n margin-top: 4px;\n }\n\n .im-push-msg.self .im-push-msg-time {\n text-align: right;\n color: rgba(255,255,255,0.6);\n }\n\n .im-push-input {\n padding: 10px 12px;\n border-top: 1px solid var(--line);\n display: flex;\n gap: 8px;\n background: #fff;\n }\n\n .im-push-input textarea {\n flex: 1;\n min-height: 36px;\n max-height: 80px;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 8px 10px;\n font-size: 12px;\n resize: none;\n outline: none;\n }\n\n .im-push-input textarea:focus {\n border-color: var(--blue);\n }\n\n .im-push-input button {\n height: 36px;\n min-width: 60px;\n background: var(--blue);\n color: #fff;\n border: none;\n border-radius: 8px;\n font-weight: 700;\n cursor: pointer;\n }\n\n .im-push-input button:hover {\n background: #1d4ed8;\n }\n\n .im-push-empty {\n flex: 1;\n display: grid;\n place-items: center;\n color: var(--muted);\n font-size: 13px;\n }\n\n /* ==================== 测评运营系统样式 ==================== */\n .review-stats-grid {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 14px;\n margin-bottom: 14px;\n }\n \n .review-stat-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 10px;\n padding: 16px;\n display: flex;\n align-items: flex-start;\n gap: 14px;\n }\n \n .review-stat-card.category-a { border-left: 4px solid #3b82f6; }\n .review-stat-card.category-b { border-left: 4px solid #f59e0b; }\n .review-stat-card.category-c { border-left: 4px solid #10b981; }\n .review-stat-card.pending { border-left: 4px solid #8b5cf6; }\n \n .review-stat-icon {\n font-size: 28px;\n line-height: 1;\n }\n \n .review-stat-info {\n flex: 1;\n }\n \n .review-stat-value {\n font-size: 28px;\n font-weight: 900;\n color: var(--text);\n line-height: 1;\n margin-bottom: 4px;\n }\n \n .review-stat-label {\n font-size: 14px;\n font-weight: 600;\n color: var(--text);\n margin-bottom: 2px;\n }\n \n .review-stat-desc {\n font-size: 11px;\n color: var(--muted);\n }\n\n .emergency-alert {\n background: linear-gradient(135deg, #fef2f2, #fee2e2);\n border: 2px solid #ef4444;\n border-radius: 10px;\n padding: 16px;\n margin-bottom: 14px;\n display: flex;\n gap: 14px;\n }\n \n .emergency-alert-icon {\n font-size: 32px;\n }\n \n .emergency-alert-title {\n font-size: 16px;\n font-weight: 700;\n color: #dc2626;\n margin-bottom: 8px;\n }\n \n .emergency-item {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px 0;\n border-bottom: 1px solid #fecaca;\n flex-wrap: wrap;\n }\n \n .emergency-item:last-child { border-bottom: none; }\n \n .emergency-product { font-weight: 600; color: #991b1b; }\n .emergency-site { background: #fee2e2; padding: 2px 8px; border-radius: 4px; font-size: 12px; }\n .emergency-reason { color: #7f1d1d; font-size: 12px; }\n .emergency-progress { font-weight: 600; color: #dc2626; }\n .emergency-push { color: #991b1b; font-size: 12px; }\n .emergency-status { padding: 2px 8px; border-radius: 4px; font-size: 12px; }\n .emergency-status.active { background: #dc2626; color: white; }\n\n .flow-diagram {\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n \n .flow-section {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 10px;\n padding: 16px;\n }\n \n .flow-title {\n font-size: 15px;\n font-weight: 700;\n color: var(--text);\n margin-bottom: 12px;\n padding-bottom: 8px;\n border-bottom: 2px solid var(--line);\n }\n \n .flow-steps {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n flex-wrap: wrap;\n }\n \n .flow-step {\n background: var(--bg);\n border: 1px solid var(--line);\n border-radius: 6px;\n padding: 8px 12px;\n font-size: 12px;\n }\n \n .flow-step.warning {\n background: #fef3c7;\n border-color: #f59e0b;\n }\n \n .flow-step.success {\n background: #d1fae5;\n border-color: #10b981;\n }\n \n .flow-arrow {\n color: var(--muted);\n font-size: 18px;\n padding-top: 6px;\n }\n \n .flow-branch {\n display: flex;\n flex-direction: column;\n gap: 6px;\n width: 100%;\n margin-top: 8px;\n }\n \n .flow-branch-yes {\n background: #d1fae5;\n border: 1px solid #10b981;\n border-radius: 6px;\n padding: 6px 12px;\n font-size: 12px;\n color: #065f46;\n }\n \n .flow-branch-no {\n background: #fee2e2;\n border: 1px solid #ef4444;\n border-radius: 6px;\n padding: 6px 12px;\n font-size: 12px;\n color: #991b1b;\n }\n \n .flow-sub {\n margin-top: 12px;\n padding-left: 20px;\n }\n\n .review-plan-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\n gap: 14px;\n }\n \n .review-plan-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 10px;\n padding: 16px;\n }\n \n .review-plan-card.urgent {\n border-color: #ef4444;\n background: linear-gradient(135deg, #fef2f2, #fff);\n }\n \n .review-plan-header {\n display: flex;\n justify-content: space-between;\n margin-bottom: 10px;\n }\n \n .review-plan-product {\n font-size: 16px;\n font-weight: 600;\n color: var(--text);\n margin-bottom: 4px;\n }\n \n .review-plan-site {\n font-size: 12px;\n color: var(--muted);\n margin-bottom: 12px;\n }\n \n .review-plan-progress {\n margin-bottom: 10px;\n }\n \n .review-plan-progress-bar {\n height: 8px;\n background: var(--bg);\n border-radius: 4px;\n overflow: hidden;\n margin-bottom: 4px;\n }\n \n .review-plan-progress-fill {\n height: 100%;\n background: linear-gradient(90deg, #3b82f6, #10b981);\n border-radius: 4px;\n transition: width 0.3s;\n }\n \n .review-plan-progress-text {\n font-size: 12px;\n color: var(--muted);\n }\n \n .review-plan-note {\n font-size: 11px;\n color: var(--muted);\n background: var(--bg);\n padding: 6px 10px;\n border-radius: 4px;\n }\n\n /* ==================== IM推送系统 ==================== */\n .push-center-stats {\n display: grid;\n grid-template-columns: repeat(5, 1fr);\n gap: 14px;\n margin-bottom: 14px;\n }\n\n .push-stat-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 14px;\n }\n\n .push-stat-label {\n font-size: 12px;\n color: var(--muted);\n margin-bottom: 6px;\n }\n\n .push-stat-value {\n font-size: 24px;\n font-weight: 900;\n color: var(--text);\n }\n\n .push-stat-value.blue { color: var(--blue); }\n .push-stat-value.green { color: var(--green); }\n .push-stat-value.amber { color: var(--amber); }\n .push-stat-value.red { color: var(--red); }\n\n .push-stat-trend {\n font-size: 11px;\n color: var(--muted);\n margin-top: 4px;\n }\n\n .push-stat-trend.up { color: var(--green); }\n .push-stat-trend.down { color: var(--red); }\n\n /* 推送列表样式 */\n .push-list-tabs {\n display: flex;\n gap: 4px;\n margin-bottom: 12px;\n border-bottom: 1px solid var(--line);\n padding-bottom: 10px;\n }\n\n .push-tab {\n padding: 6px 14px;\n border: none;\n background: transparent;\n color: var(--muted);\n font-size: 13px;\n font-weight: 600;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .push-tab:hover {\n background: var(--panel-soft);\n color: var(--text);\n }\n\n .push-tab.active {\n background: var(--blue-soft);\n color: var(--blue);\n }\n\n .push-tab .count {\n margin-left: 6px;\n background: rgba(0,0,0,0.08);\n padding: 2px 6px;\n border-radius: 10px;\n font-size: 11px;\n }\n\n .push-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 14px;\n margin-bottom: 10px;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 12px;\n align-items: start;\n transition: all 0.15s;\n }\n\n .push-card:hover {\n border-color: var(--blue);\n box-shadow: 0 2px 8px rgba(37, 99, 235, 0.1);\n }\n\n .push-card-header {\n display: flex;\n align-items: center;\n gap: 10px;\n margin-bottom: 8px;\n }\n\n .push-card-type {\n padding: 3px 8px;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 700;\n }\n\n .push-card-type.text { background: #e0f2fe; color: #0369a1; }\n .push-card-type.image { background: #fce7f3; color: #be185d; }\n .push-card-type.gif { background: #fef3c7; color: #b45309; }\n .push-card-type.video { background: #ede9fe; color: #7c3aed; }\n .push-card-type.vote { background: #dcfce7; color: #15803d; }\n .push-card-type.product { background: #fee2e2; color: #dc2626; }\n .push-card-type.event { background: #e0e7ff; color: #4338ca; }\n .push-card-type.rich { background: #f3e8ff; color: #9333ea; }\n .push-card-type.multi { background: #ccfbf1; color: #0d9488; }\n .push-card-type.combo { background: #fef9c3; color: #a16207; }\n\n .push-card-id {\n font-size: 11px;\n color: var(--muted);\n font-family: monospace;\n }\n\n .push-card-title {\n font-weight: 700;\n font-size: 14px;\n color: var(--text);\n margin-bottom: 6px;\n }\n\n .push-card-desc {\n font-size: 12px;\n color: var(--muted);\n line-height: 1.5;\n margin-bottom: 10px;\n }\n\n .push-card-meta {\n display: flex;\n gap: 16px;\n font-size: 11px;\n color: var(--muted);\n }\n\n .push-card-meta span {\n display: flex;\n align-items: center;\n gap: 4px;\n }\n\n .push-card-stats {\n display: flex;\n gap: 12px;\n margin-top: 10px;\n padding-top: 10px;\n border-top: 1px solid var(--line);\n }\n\n .push-card-stat {\n text-align: center;\n }\n\n .push-card-stat-val {\n font-size: 14px;\n font-weight: 800;\n color: var(--text);\n }\n\n .push-card-stat-label {\n font-size: 10px;\n color: var(--muted);\n }\n\n .push-card-actions {\n display: flex;\n flex-direction: column;\n gap: 6px;\n align-items: flex-end;\n }\n\n /* 推送编辑器弹窗 */\n .push-editor-modal {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.6);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n padding: 20px;\n }\n\n .push-editor-modal.active {\n display: flex;\n }\n\n .push-editor {\n background: var(--panel);\n border-radius: 12px;\n width: 100%;\n max-width: 1400px;\n height: 90vh;\n max-height: 900px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n }\n\n .push-editor-head {\n padding: 16px 20px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: #f8fafc;\n }\n\n .push-editor-title {\n font-size: 16px;\n font-weight: 800;\n color: var(--text);\n }\n\n .push-editor-close {\n width: 32px;\n height: 32px;\n border: none;\n background: transparent;\n border-radius: 6px;\n cursor: pointer;\n font-size: 20px;\n color: var(--muted);\n display: grid;\n place-items: center;\n }\n\n .push-editor-close:hover {\n background: var(--panel-soft);\n color: var(--text);\n }\n\n .push-editor-body {\n flex: 1;\n display: grid;\n grid-template-columns: 260px 1fr 320px;\n overflow: hidden;\n }\n\n /* 组件面板 */\n .push-components {\n border-right: 1px solid var(--line);\n overflow-y: auto;\n background: #fafbfc;\n }\n\n .push-components-title {\n padding: 12px 14px;\n font-size: 12px;\n font-weight: 800;\n color: var(--muted);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n border-bottom: 1px solid var(--line);\n background: #f1f5f9;\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n .push-component-group {\n padding: 10px 12px;\n border-bottom: 1px solid var(--line);\n }\n\n .push-component-group-title {\n font-size: 11px;\n font-weight: 700;\n color: var(--muted);\n margin-bottom: 8px;\n text-transform: uppercase;\n letter-spacing: 0.3px;\n }\n\n .push-component-list {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 6px;\n }\n\n .push-component-item {\n padding: 10px 8px;\n border: 1px solid var(--line);\n border-radius: 6px;\n background: var(--panel);\n cursor: grab;\n transition: all 0.15s;\n text-align: center;\n }\n\n .push-component-item:hover {\n border-color: var(--blue);\n background: var(--blue-soft);\n transform: translateY(-1px);\n }\n\n .push-component-item:active {\n cursor: grabbing;\n }\n\n .push-component-icon {\n width: 32px;\n height: 32px;\n border-radius: 6px;\n display: grid;\n place-items: center;\n margin: 0 auto 6px;\n font-size: 14px;\n }\n\n .push-component-icon.text { background: #e0f2fe; color: #0369a1; }\n .push-component-icon.image { background: #fce7f3; color: #be185d; }\n .push-component-icon.gif { background: #fef3c7; color: #b45309; }\n .push-component-icon.video { background: #ede9fe; color: #7c3aed; }\n .push-component-icon.vote { background: #dcfce7; color: #15803d; }\n .push-component-icon.product { background: #fee2e2; color: #dc2626; }\n .push-component-icon.event { background: #e0e7ff; color: #4338ca; }\n .push-component-icon.rich { background: #f3e8ff; color: #9333ea; }\n .push-component-icon.multi { background: #ccfbf1; color: #0d9488; }\n .push-component-icon.combo { background: #fef9c3; color: #a16207; }\n\n .push-component-name {\n font-size: 11px;\n font-weight: 600;\n color: var(--text);\n }\n\n /* 内容编辑区 */\n .push-content-area {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .push-form-config {\n padding: 14px 16px;\n border-bottom: 1px solid var(--line);\n display: grid;\n grid-template-columns: 1fr 1fr 1fr 1fr;\n gap: 10px;\n }\n\n .push-form-field {\n display: flex;\n flex-direction: column;\n gap: 4px;\n }\n\n .push-form-label {\n font-size: 11px;\n font-weight: 700;\n color: var(--muted);\n }\n\n .push-form-field input,\n .push-form-field select {\n height: 32px;\n border: 1px solid var(--line);\n border-radius: 6px;\n padding: 0 10px;\n font-size: 12px;\n background: var(--panel);\n }\n\n .push-form-field input:focus,\n .push-form-field select:focus {\n outline: none;\n border-color: var(--blue);\n }\n\n .push-canvas {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n background: #f1f5f9;\n }\n\n .push-canvas-empty {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n color: var(--muted);\n font-size: 13px;\n }\n\n .push-canvas-empty-icon {\n font-size: 48px;\n margin-bottom: 12px;\n opacity: 0.5;\n }\n\n .push-modules {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .push-module {\n background: var(--panel);\n border: 2px solid var(--line);\n border-radius: 8px;\n overflow: hidden;\n transition: all 0.15s;\n }\n\n .push-module:hover {\n border-color: var(--blue);\n }\n\n .push-module.dragging {\n opacity: 0.5;\n border-color: var(--blue);\n border-style: dashed;\n }\n\n .push-module-head {\n padding: 10px 12px;\n background: #f8fafc;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: grab;\n }\n\n .push-module-head:active {\n cursor: grabbing;\n }\n\n .push-module-title {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n font-weight: 700;\n color: var(--text);\n }\n\n .push-module-type-tag {\n padding: 2px 6px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 700;\n }\n\n .push-module-actions {\n display: flex;\n gap: 4px;\n }\n\n .push-module-btn {\n width: 26px;\n height: 26px;\n border: none;\n background: transparent;\n border-radius: 4px;\n cursor: pointer;\n display: grid;\n place-items: center;\n font-size: 14px;\n color: var(--muted);\n }\n\n .push-module-btn:hover {\n background: var(--panel-soft);\n color: var(--text);\n }\n\n .push-module-btn.delete:hover {\n background: var(--red-soft);\n color: var(--red);\n }\n\n .push-module-body {\n padding: 12px;\n }\n\n /* 预览区 */\n .push-preview {\n border-left: 1px solid var(--line);\n display: flex;\n flex-direction: column;\n background: #fafbfc;\n }\n\n .push-preview-head {\n padding: 12px 14px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: #f1f5f9;\n }\n\n .push-preview-title {\n font-size: 12px;\n font-weight: 800;\n color: var(--muted);\n text-transform: uppercase;\n }\n\n .push-preview-tabs {\n display: flex;\n gap: 2px;\n }\n\n .push-preview-tab {\n padding: 4px 10px;\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 4px;\n font-size: 11px;\n font-weight: 600;\n cursor: pointer;\n color: var(--muted);\n }\n\n .push-preview-tab.active {\n background: var(--blue);\n border-color: var(--blue);\n color: #fff;\n }\n\n .push-preview-body {\n flex: 1;\n overflow-y: auto;\n padding: 16px;\n }\n\n .push-preview-phone {\n width: 100%;\n max-width: 280px;\n margin: 0 auto;\n background: #fff;\n border-radius: 24px;\n padding: 8px;\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);\n }\n\n .push-preview-phone.dark {\n background: #1a1a2e;\n }\n\n .push-preview-phone.dark .push-preview-phone-header,\n .push-preview-phone.dark .push-preview-phone-input {\n background: #16213e;\n color: #fff;\n }\n\n .push-preview-phone.dark .push-preview-phone-msg-other {\n background: #2d2d44;\n color: #fff;\n }\n\n .push-preview-phone-screen {\n background: #fff;\n border-radius: 18px;\n overflow: hidden;\n min-height: 450px;\n display: flex;\n flex-direction: column;\n }\n\n .push-preview-phone-header {\n padding: 10px 12px;\n background: #f8fafc;\n border-bottom: 1px solid #e5e7eb;\n display: flex;\n align-items: center;\n gap: 10px;\n }\n\n .push-preview-phone-avatar {\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background: linear-gradient(135deg, var(--blue), #1d4ed8);\n display: grid;\n place-items: center;\n color: #fff;\n font-size: 12px;\n font-weight: 700;\n }\n\n .push-preview-phone-name {\n font-size: 13px;\n font-weight: 700;\n color: var(--text);\n }\n\n .push-preview-phone-status {\n font-size: 10px;\n color: var(--muted);\n }\n\n .push-preview-phone-msgs {\n flex: 1;\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .push-preview-phone-msg {\n max-width: 85%;\n padding: 8px 12px;\n border-radius: 12px;\n font-size: 12px;\n line-height: 1.4;\n }\n\n .push-preview-phone-msg-self {\n align-self: flex-end;\n background: var(--blue);\n color: #fff;\n }\n\n .push-preview-phone-msg-other {\n align-self: flex-start;\n background: #f1f5f9;\n color: var(--text);\n }\n\n .push-preview-phone-card {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n overflow: hidden;\n margin: 4px 0;\n }\n\n .push-preview-phone-card-img {\n width: 100%;\n height: 120px;\n background: linear-gradient(135deg, #e0f2fe, #bae6fd);\n display: grid;\n place-items: center;\n font-size: 32px;\n }\n\n .push-preview-phone-card-body {\n padding: 10px;\n }\n\n .push-preview-phone-card-title {\n font-size: 12px;\n font-weight: 700;\n color: var(--text);\n margin-bottom: 4px;\n }\n\n .push-preview-phone-card-desc {\n font-size: 11px;\n color: var(--muted);\n }\n\n .push-preview-phone-card-price {\n font-size: 14px;\n font-weight: 800;\n color: var(--red);\n margin-top: 6px;\n }\n\n .push-preview-phone-card-btn {\n margin-top: 8px;\n width: 100%;\n padding: 6px;\n background: var(--blue);\n color: #fff;\n border: none;\n border-radius: 4px;\n font-size: 11px;\n font-weight: 700;\n }\n\n .push-preview-phone-vote {\n background: #f8fafc;\n border-radius: 8px;\n padding: 10px;\n margin: 4px 0;\n }\n\n .push-preview-phone-vote-title {\n font-size: 12px;\n font-weight: 700;\n color: var(--text);\n margin-bottom: 8px;\n }\n\n .push-preview-phone-vote-opt {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 6px 0;\n font-size: 11px;\n color: var(--text);\n }\n\n .push-preview-phone-vote-radio {\n width: 14px;\n height: 14px;\n border: 2px solid var(--blue);\n border-radius: 50%;\n }\n\n .push-preview-phone-input {\n padding: 10px 12px;\n border-top: 1px solid #e5e7eb;\n background: #f8fafc;\n display: flex;\n gap: 8px;\n }\n\n .push-preview-phone-input input {\n flex: 1;\n height: 28px;\n border: 1px solid #e5e7eb;\n border-radius: 14px;\n padding: 0 12px;\n font-size: 11px;\n }\n\n .push-preview-phone-input button {\n width: 28px;\n height: 28px;\n background: var(--blue);\n color: #fff;\n border: none;\n border-radius: 50%;\n cursor: pointer;\n }\n\n /* 编辑器底部 */\n .push-editor-foot {\n padding: 14px 20px;\n border-top: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: #f8fafc;\n }\n\n .push-editor-foot-left {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n\n .push-editor-foot-right {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .push-save-template {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 8px 12px;\n border: 1px solid var(--line);\n border-radius: 6px;\n background: var(--panel);\n font-size: 12px;\n font-weight: 600;\n color: var(--text);\n cursor: pointer;\n }\n\n .push-save-template:hover {\n border-color: var(--blue);\n background: var(--blue-soft);\n }\n\n .btn-push-send {\n height: 36px;\n padding: 0 20px;\n background: var(--green);\n color: #fff;\n border: none;\n border-radius: 8px;\n font-weight: 700;\n font-size: 13px;\n cursor: pointer;\n }\n\n .btn-push-send:hover {\n background: #166534;\n }\n\n .btn-push-draft {\n height: 36px;\n padding: 0 16px;\n background: var(--panel);\n color: var(--text);\n border: 1px solid var(--line);\n border-radius: 8px;\n font-weight: 600;\n font-size: 13px;\n cursor: pointer;\n }\n\n .btn-push-draft:hover {\n background: var(--panel-soft);\n }\n\n /* 模板选择弹窗 */\n .template-modal {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.5);\n display: none;\n align-items: center;\n justify-content: center;\n z-index: 1100;\n }\n\n .template-modal.active {\n display: flex;\n }\n\n .template-modal-content {\n background: var(--panel);\n border-radius: 12px;\n width: 90%;\n max-width: 900px;\n max-height: 80vh;\n overflow: hidden;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);\n }\n\n .template-modal-head {\n padding: 16px 20px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n }\n\n .template-modal-title {\n font-size: 16px;\n font-weight: 800;\n }\n\n .template-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 14px;\n padding: 16px;\n max-height: 60vh;\n overflow-y: auto;\n }\n\n .template-card {\n border: 2px solid var(--line);\n border-radius: 8px;\n overflow: hidden;\n cursor: pointer;\n transition: all 0.15s;\n }\n\n .template-card:hover {\n border-color: var(--blue);\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(37, 99, 235, 0.15);\n }\n\n .template-card-preview {\n height: 120px;\n background: linear-gradient(135deg, #f1f5f9, #e2e8f0);\n display: grid;\n place-items: center;\n font-size: 32px;\n }\n\n .template-card-info {\n padding: 10px;\n background: var(--panel);\n }\n\n .template-card-name {\n font-size: 12px;\n font-weight: 700;\n color: var(--text);\n }\n\n .template-card-desc {\n font-size: 11px;\n color: var(--muted);\n margin-top: 2px;\n }\n\n .template-card-type {\n display: inline-block;\n margin-top: 6px;\n padding: 2px 6px;\n background: var(--blue-soft);\n color: var(--blue);\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n }\n\n /* 投票模块配置 */\n .push-module-config {\n display: grid;\n gap: 10px;\n }\n\n .push-module-config-row {\n display: grid;\n grid-template-columns: 100px 1fr;\n align-items: center;\n gap: 8px;\n }\n\n .push-module-config-label {\n font-size: 11px;\n font-weight: 600;\n color: var(--muted);\n }\n\n .push-module-config-row input,\n .push-module-config-row textarea,\n .push-module-config-row select {\n height: 30px;\n border: 1px solid var(--line);\n border-radius: 4px;\n padding: 0 8px;\n font-size: 11px;\n }\n\n .push-module-config-row textarea {\n height: 60px;\n resize: none;\n padding: 6px 8px;\n }\n\n .push-vote-options {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n\n .push-vote-option {\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .push-vote-option input {\n flex: 1;\n height: 28px;\n border: 1px solid var(--line);\n border-radius: 4px;\n padding: 0 8px;\n font-size: 11px;\n }\n\n .push-vote-option .remove-btn {\n width: 24px;\n height: 24px;\n border: none;\n background: var(--red-soft);\n color: var(--red);\n border-radius: 4px;\n cursor: pointer;\n font-size: 12px;\n }\n\n .push-vote-option .remove-btn:hover {\n background: var(--red);\n color: #fff;\n }\n\n .push-vote-add {\n padding: 6px 10px;\n border: 1px dashed var(--line);\n border-radius: 4px;\n background: transparent;\n color: var(--blue);\n font-size: 11px;\n font-weight: 600;\n cursor: pointer;\n }\n\n .push-vote-add:hover {\n border-color: var(--blue);\n background: var(--blue-soft);\n }\n\n /* 多按钮模块 */\n .push-buttons-config {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .push-button-item {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border: 1px solid var(--line);\n border-radius: 6px;\n background: var(--panel);\n }\n\n .push-button-item input {\n width: 80px;\n height: 24px;\n border: none;\n font-size: 11px;\n font-weight: 600;\n }\n\n .push-button-item select {\n height: 24px;\n border: 1px solid var(--line);\n border-radius: 4px;\n font-size: 10px;\n padding: 0 4px;\n }\n\n /* 预览模式切换 */\n .push-preview-desktop {\n background: var(--panel);\n border-radius: 8px;\n padding: 16px;\n max-width: 500px;\n margin: 0 auto;\n }\n\n .push-preview-desktop .msg-card {\n background: #fff;\n border: 1px solid var(--line);\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 10px;\n }\n\n .push-preview-desktop .msg-card-img {\n width: 100%;\n height: 160px;\n background: linear-gradient(135deg, #fef3c7, #fde68a);\n display: grid;\n place-items: center;\n font-size: 40px;\n }\n\n .push-preview-desktop .msg-card-body {\n padding: 12px;\n }\n\n .push-preview-desktop .msg-card-title {\n font-size: 14px;\n font-weight: 700;\n color: var(--text);\n margin-bottom: 6px;\n }\n\n .push-preview-desktop .msg-card-desc {\n font-size: 12px;\n color: var(--muted);\n line-height: 1.5;\n }\n\n .push-preview-desktop .msg-card-action {\n margin-top: 10px;\n display: flex;\n gap: 8px;\n }\n\n .push-preview-desktop .msg-card-action button {\n flex: 1;\n padding: 8px;\n border: none;\n border-radius: 6px;\n font-size: 12px;\n font-weight: 600;\n cursor: pointer;\n }\n\n .push-preview-desktop .msg-card-action .btn-primary {\n background: var(--blue);\n color: #fff;\n }\n\n .push-preview-desktop .msg-card-action .btn-secondary {\n background: var(--panel-soft);\n color: var(--text);\n border: 1px solid var(--line);\n }\n\n .source-note {\n font-size: 12px;\n color: var(--muted);\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n }\n\n @media (max-width: 1180px) {\n .app-shell {\n grid-template-columns: 96px minmax(0, 1fr);\n }\n\n .sidebar {\n grid-template-columns: 96px;\n }\n\n .side-panel {\n display: none;\n }\n\n .rail-button {\n min-height: 64px;\n }\n\n .layout-dashboard {\n grid-template-columns: 1fr;\n }\n\n .kpi-grid {\n grid-template-columns: repeat(2, minmax(170px, 1fr));\n }\n\n .insight-grid,\n .module-charts,\n .executive-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .executive-hero {\n grid-template-columns: 1fr;\n }\n\n .ops-strip,\n .drilldown-grid,\n .command-status-strip {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .command-board {\n grid-template-columns: 1fr;\n }\n\n .command-board-head,\n .command-board-actions {\n min-height: auto;\n border-right: 0;\n border-left: 0;\n border-bottom: 1px solid var(--line);\n }\n\n .command-grid,\n .matrix-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 780px) {\n .app-shell {\n display: block;\n }\n\n .sidebar {\n position: static;\n height: auto;\n display: block;\n }\n\n .side-rail {\n position: static;\n min-height: auto;\n grid-template-rows: auto;\n }\n\n .rail-nav {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .rail-button.active::before {\n display: none;\n }\n\n .main {\n display: block;\n }\n\n .topbar {\n position: static;\n height: auto;\n grid-template-columns: 1fr;\n padding: 12px;\n }\n\n .top-left {\n width: 100%;\n display: grid;\n }\n\n .search {\n width: 100%;\n }\n\n .content {\n padding: 16px 12px 24px;\n }\n\n .page-head,\n .top-actions {\n display: grid;\n width: 100%;\n }\n\n .kpi-grid,\n .summary-grid,\n .detail-grid {\n grid-template-columns: 1fr;\n }\n\n .filter-bar {\n grid-template-columns: 1fr;\n }\n\n .insight-grid,\n .module-charts,\n .executive-grid,\n .ops-strip,\n .drilldown-grid,\n .command-status-strip,\n .command-grid,\n .matrix-grid {\n grid-template-columns: 1fr;\n }\n\n .decision-row {\n grid-template-columns: 1fr;\n }\n }\n </style>\n</head>\n<body>\n <div class=\"app-shell\">\n <aside class=\"sidebar\">\n <section class=\"side-rail\" aria-label=\"一级模块导航\">\n <div class=\"rail-brand\">\n <div class=\"rail-brand-title\">JOYHUB</div>\n <div class=\"rail-brand-subtitle\">Ops</div>\n </div>\n <nav class=\"rail-nav\" id=\"moduleRail\"></nav>\n <div class=\"rail-foot\">\n <button class=\"im-trigger\" id=\"imTrigger\">\n <div class=\"im-avatar\">\n 💬\n <span class=\"im-badge\" id=\"imBadgeCount\">3</span>\n </div>\n <span>IM 消息</span>\n </button>\n </div>\n </section>\n <section class=\"side-panel\" aria-label=\"当前模块菜单\">\n <div class=\"module-head\">\n <div class=\"module-eyebrow\">当前模块</div>\n <div class=\"module-title\" id=\"moduleTitle\">经营总览</div>\n <div class=\"module-note\" id=\"moduleNote\">系统管理员最高权限视图</div>\n </div>\n <nav class=\"nav\" id=\"nav\"></nav>\n <section class=\"sidebar-todo\" aria-label=\"固定待办提醒\">\n <div class=\"sidebar-todo-head\">\n <span>常用跳转</span>\n <strong>21</strong>\n </div>\n <button class=\"sidebar-todo-row primary\" data-route=\"dashboard\" data-tab=\"all\">\n <span>重要事项</span><strong>3</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"plans\" data-tab=\"approval\">\n <span>审核类</span><strong>4</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"legacy\" data-tab=\"fields\">\n <span>字段关系</span><strong>5</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"reports\" data-tab=\"issue_summary\">\n <span>问题总结</span><strong>9</strong>\n </button>\n </section>\n </section>\n </aside>\n\n <main class=\"main\">\n <header class=\"topbar\">\n <div class=\"top-left\">\n <div class=\"top-title\">\n <strong id=\"topPageTitle\">经营总览</strong>\n <span id=\"topPageSubtitle\">系统管理员 · 最高权限 · 全部部门</span>\n </div>\n <div class=\"search\">\n <span>搜索</span>\n <input id=\"globalSearch\" placeholder=\"ASIN / 需求 / 用户 / 负责人\" />\n </div>\n </div>\n <div class=\"top-actions\">\n <div class=\"top-time\" title=\"时间范围\">\n <input type=\"date\" value=\"2026-05-01\" data-time=\"startDate\" />\n <span>至</span>\n <input type=\"date\" value=\"2026-05-03\" data-time=\"endDate\" />\n </div>\n <div class=\"top-period\" title=\"周期切换\">\n <button class=\"active\" data-period=\"day\">日</button>\n <button data-period=\"week\">周</button>\n <button data-period=\"month\">月</button>\n </div>\n <select class=\"scope-select\" id=\"scopeSelect\">\n <option value=\"all\">全部部门</option>\n <option value=\"amazon\">Amazon 运营</option>\n <option value=\"user_ops\">用户运营</option>\n <option value=\"support\">客服</option>\n </select>\n <select class=\"role-select\" id=\"roleSelect\">\n <option>系统管理员(最高权限)</option>\n <option>Amazon 运营总监</option>\n <option>用户运营负责人</option>\n <option>客服负责人</option>\n </select>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"notice\">通知 12</button>\n </div>\n </header>\n\n <section class=\"content\" id=\"content\"></section>\n </main>\n </div>\n\n <div class=\"drawer-mask\" id=\"drawerMask\"></div>\n <aside class=\"drawer\" id=\"drawer\">\n <div class=\"drawer-head\">\n <div>\n <h2 class=\"panel-title\" id=\"drawerTitle\">详情</h2>\n <div class=\"panel-note\" id=\"drawerSubtitle\">模拟数据,敏感字段默认脱敏</div>\n </div>\n <button class=\"btn\" data-action=\"close-drawer\">关闭</button>\n </div>\n <div class=\"drawer-body\" id=\"drawerBody\"></div>\n <div class=\"drawer-foot\" id=\"drawerFoot\"></div>\n </aside>\n\n <div class=\"modal-mask\" id=\"modalMask\"></div>\n <section class=\"modal\" id=\"modal\">\n <div class=\"modal-head\">\n <h2 class=\"panel-title\" id=\"modalTitle\">操作确认</h2>\n <button class=\"btn\" data-action=\"close-modal\">关闭</button>\n </div>\n <div class=\"modal-body\" id=\"modalBody\"></div>\n <div class=\"modal-foot\" id=\"modalFoot\"></div>\n </section>\n\n <div class=\"toast\" id=\"toast\"></div>\n\n <div class=\"im-mask\" id=\"imMask\"></div>\n <aside class=\"im-panel\" id=\"imPanel\">\n <div class=\"im-panel-head\">\n <h2>IM 消息</h2>\n <div class=\"im-tabs\">\n <button class=\"im-tab active\" data-tab=\"chat\">会话<span class=\"im-count\" id=\"imChatCount\">3</span></button>\n <button class=\"im-tab\" data-tab=\"notify\">通知<span class=\"im-count\" id=\"imNotifyCount\">2</span></button>\n </div>\n <button class=\"btn\" id=\"imCloseBtn\">关闭</button>\n </div>\n <div class=\"im-list\" id=\"imList\"></div>\n <div class=\"im-chat\" id=\"imChat\">\n <div class=\"im-chat-head\">\n <button class=\"back-btn\" id=\"imBackBtn\">←</button>\n <div class=\"im-avatar-small\" id=\"imChatAvatar\">张</div>\n <div>\n <div class=\"im-chat-name\" id=\"imChatName\">张三</div>\n <div class=\"im-chat-status\">在线</div>\n </div>\n </div>\n <div class=\"im-messages\" id=\"imMessages\"></div>\n <div class=\"im-input-area\">\n <textarea id=\"imInput\" placeholder=\"输入消息...\" rows=\"1\"></textarea>\n <button class=\"send-btn\" id=\"imSendBtn\">发送</button>\n </div>\n </div>\n </aside>\n\n <script>\n const DATA_SOURCE = \"模拟数据:用于本机高保真原型演示,不代表真实业务数据\";\n\n const routes = [\n { id: \"dashboard\", label: \"工作台\", icon: \"DB\", count: 12 },\n { id: \"requests\", label: \"需求中心\", icon: \"RQ\", count: 18 },\n { id: \"listings\", label: \"Listing 管理\", icon: \"LS\", count: 7 },\n { id: \"plans\", label: \"计划中心\", icon: \"PL\", count: 12 },\n { id: \"review_ops\", label: \"测评运营\", icon: \"RV\", count: 36 },\n { id: \"push\", label: \"推送中心\", icon: \"PS\", count: 24 },\n { id: \"support\", label: \"客服中心\", icon: \"CS\", count: 9 },\n { id: \"risk\", label: \"风险中心\", icon: \"RK\", count: 10 },\n { id: \"data\", label: \"数据中心\", icon: \"DT\", count: 5 },\n { id: \"legacy\", label: \"现有ERP\", icon: \"ER\", count: 5 },\n { id: \"reports\", label: \"报表中心\", icon: \"RP\", count: 6 },\n { id: \"system\", label: \"系统管理\", icon: \"SY\", count: 4 }\n ];\n\n const moduleGroups = [\n {\n id: \"overview\",\n label: \"工作台\",\n icon: \"W\",\n count: 31,\n title: \"经营总览\",\n note: \"目标完成、问题总结、待办卡点\",\n routes: [\"dashboard\"]\n },\n {\n id: \"user_ops\",\n label: \"用户运营\",\n icon: \"U\",\n count: 42,\n title: \"用户运营\",\n note: \"需求、现有ERP字段、用户画像关系\",\n routes: [\"requests\", \"legacy\"]\n },\n {\n id: \"listing_plan\",\n label: \"Listing计划\",\n icon: \"L\",\n count: 19,\n title: \"Listing 与计划\",\n note: \"Listing 健康、测评计划、紧急策略\",\n routes: [\"listings\", \"plans\", \"review_ops\"]\n },\n {\n id: \"engagement\",\n label: \"触达客服\",\n icon: \"P\",\n count: 33,\n title: \"触达与客服\",\n note: \"IM、EDM、TEL、KOC/KOL 与工单\",\n routes: [\"push\", \"support\"]\n },\n {\n id: \"risk_data\",\n label: \"风险数据\",\n icon: \"R\",\n count: 21,\n title: \"风险与数据\",\n note: \"诈骗同步、黑名单、同步状态、报表\",\n routes: [\"risk\", \"data\", \"reports\"]\n },\n {\n id: \"system_assets\",\n label: \"系统资产\",\n icon: \"S\",\n count: 4,\n title: \"系统资产\",\n note: \"账号、权限、离职、审计日志\",\n routes: [\"system\"]\n }\n ];\n\n const state = {\n route: \"dashboard\",\n activeTab: \"all\",\n keyword: \"\",\n scope: \"all\",\n period: \"day\",\n startDate: \"2026-05-01\",\n endDate: \"2026-05-03\",\n statusExpanded: false,\n statusPriorityFirst: true\n };\n\n const records = {\n kpis: [\n {\n id: \"approved_review_requests\",\n title: \"测评需求审核\",\n value: \"申请 18 / 已批 8\",\n tone: \"blue\",\n desc: \"测评需求由 Amazon 运营提交,已批后用户运营接收\",\n route: \"plans\",\n filter: \"amazon_approved\",\n trend: { day: 8, week: 31, month: 92, risk: \"正常\" },\n spark: [4, 7, 5, 8, 9, 8]\n },\n {\n id: \"push_risk_yesterday\",\n title: \"渠道推送风险\",\n value: \"IM 2 / EDM 1\",\n tone: \"amber\",\n desc: \"IM、EDM、TEL、App Push 日周月风险与反馈\",\n route: \"push\",\n filter: \"risk\",\n trend: { day: 3, week: 9, month: 27, risk: \"偏高\" },\n spark: [2, 3, 4, 5, 3, 6]\n },\n {\n id: \"new_fraud_events\",\n title: \"新增诈骗事件\",\n value: \"昨 5 / 周 18\",\n tone: \"red\",\n desc: \"昨日、近 7 天、近 30 天新增与待同步\",\n route: \"risk\",\n filter: \"fraud\",\n trend: { day: 5, week: 18, month: 64, risk: \"高\" },\n spark: [3, 5, 4, 8, 6, 9]\n },\n {\n id: \"emergency_listings\",\n title: \"紧急 Listing\",\n value: \"新 3 / 未处理 7\",\n tone: \"red\",\n desc: \"按日、周、月展示,并合并之前未处理紧急事件\",\n route: \"listings\",\n filter: \"emergency\",\n trend: { day: 3, week: 11, month: 29, risk: \"高\" },\n spark: [2, 4, 4, 5, 7, 7]\n },\n {\n id: \"pending_approval\",\n title: \"推广计划与紧急策略\",\n value: \"日 12 / 周 38\",\n tone: \"blue\",\n desc: \"确认需求后新建的推广计划、推送计划和紧急策略跟踪\",\n route: \"plans\",\n filter: \"approval\",\n trend: { day: 12, week: 38, month: 116, risk: \"注意审核积压\" },\n spark: [7, 8, 10, 12, 12, 14]\n },\n {\n id: \"review_output_trend\",\n title: \"评价产出趋势\",\n value: \"日 18 / 周 96\",\n tone: \"green\",\n desc: \"真实消费者回评完成、趋势和异常提示\",\n route: \"reports\",\n filter: \"review_done\",\n trend: { day: 18, week: 96, month: 384, risk: \"稳定\" },\n spark: [13, 15, 16, 18, 20, 18]\n },\n {\n id: \"blacklist_sync_failed\",\n title: \"黑名单同步严重度\",\n value: \"失败 2 / 高危 1\",\n tone: \"red\",\n desc: \"系统管理员视角看日周月影响,判断问题是否严重\",\n route: \"risk\",\n filter: \"sync_failed\",\n trend: { day: 2, week: 7, month: 19, risk: \"需复核\" },\n spark: [1, 1, 3, 2, 4, 2]\n },\n {\n id: \"kol_koc_progress\",\n title: \"KOC/KOL 对接\",\n value: \"KOC 21 / KOL 6\",\n tone: \"purple\",\n desc: \"PR 对外联系、价格、CODE、返点和提款进度\",\n route: \"push\",\n filter: \"kol\",\n trend: { day: 6, week: 27, month: 84, risk: \"2 个逾期\" },\n spark: [3, 4, 6, 5, 7, 8]\n },\n {\n id: \"ph_ops\",\n title: \"菲律宾团队管理\",\n value: \"风险 2 / 缺口 1\",\n tone: \"amber\",\n desc: \"日周月工作时长、请假、缺席、人均产出与关键岗位缺口\",\n route: \"support\",\n filter: \"ph\",\n trend: { day: 2, week: 6, month: 15, risk: \"排班风险\" },\n spark: [1, 2, 1, 4, 3, 5]\n },\n {\n id: \"workflow_blocked\",\n title: \"审核积压与风险\",\n value: \"卡点 4\",\n tone: \"amber\",\n desc: \"已发现问题汇总到总页面,避免系统管理员挨个查数据\",\n route: \"plans\",\n filter: \"blocked\",\n trend: { day: 4, week: 13, month: 33, risk: \"影响进度\" },\n spark: [2, 3, 3, 6, 5, 4]\n }\n ],\n workItems: [\n {\n id: \"WK-20260503-001\",\n source: \"Amazon 总监\",\n type: \"测评需求\",\n asin: \"B0TES001\",\n site: \"US\",\n stage: \"Amazon 已批准\",\n owner: \"用户运营负责人\",\n risk: \"中\",\n priority: \"P1\",\n due: \"今日 18:00\",\n action: \"接收\",\n status: \"amazon_approved\",\n submitter: \"Amazon 运营 A\",\n reviewer: \"Amazon 总监\",\n approval: \"通过\",\n sourceForm: \"飞书需求表单 DEMO-001\",\n summary: \"评分 4.46,低于 4.5,需要生成用户互动与真实评价跟踪计划。\"\n },\n {\n id: \"WK-20260503-002\",\n source: \"推送中心\",\n type: \"昨日推送风险\",\n asin: \"B0TES009\",\n site: \"UK\",\n stage: \"风险复核\",\n owner: \"用户运营组长\",\n risk: \"高\",\n priority: \"P0\",\n due: \"今日 12:00\",\n action: \"复核\",\n status: \"risk_review\",\n submitter: \"推送系统\",\n reviewer: \"用户运营组长\",\n approval: \"待复核\",\n sourceForm: \"推送风险自动单 DEMO-006\",\n summary: \"昨日推送退订率高于基线,需复核人群、素材和文案。\"\n },\n {\n id: \"WK-20260503-003\",\n source: \"客服中心\",\n type: \"新增诈骗事件\",\n asin: \"B0TES003\",\n site: \"DE\",\n stage: \"待同步黑名单\",\n owner: \"风险负责人\",\n risk: \"高\",\n priority: \"P0\",\n due: \"今日 14:00\",\n action: \"审核\",\n status: \"fraud\",\n submitter: \"客服 B\",\n reviewer: \"风险负责人\",\n approval: \"待审核\",\n sourceForm: \"客服升级表单 DEMO-003\",\n summary: \"同一 JOYHUB ID 与多个 Profile ID 关联异常样品申请,邮箱和设备号已脱敏。\"\n },\n {\n id: \"WK-20260503-004\",\n source: \"Listing 管理\",\n type: \"紧急 Listing\",\n asin: \"B0TES005\",\n site: \"JP\",\n stage: \"紧急策略审批\",\n owner: \"Amazon 运营总监\",\n risk: \"紧急\",\n priority: \"P0\",\n due: \"今日 11:30\",\n action: \"审批\",\n status: \"emergency\",\n submitter: \"Amazon 运营 C\",\n reviewer: \"Amazon 运营总监\",\n approval: \"待系统管理员确认\",\n sourceForm: \"紧急 Listing 表单 DEMO-004\",\n summary: \"当前评分 4.21,接近 4.2 紧急阈值,需要 Amazon 与用户运营联合策略。\"\n },\n {\n id: \"WK-20260503-005\",\n source: \"客服中心\",\n type: \"差评跟进\",\n asin: \"B0TES007\",\n site: \"US\",\n stage: \"客服升级\",\n owner: \"客服负责人\",\n risk: \"中\",\n priority: \"P1\",\n due: \"明日 10:00\",\n action: \"分配\",\n status: \"support\",\n submitter: \"Amazon 运营 A\",\n reviewer: \"客服负责人\",\n approval: \"通过\",\n sourceForm: \"飞书客服需求 DEMO-005\",\n summary: \"用户反馈产品说明理解偏差,需要客服跟进并回传产品改进建议。\"\n }\n ],\n listings: [\n { id: \"LS-001\", asin: \"B0TES005\", site: \"JP\", marketplaces: \"JP\", rating: 4.21, reviews: 138, negative: 12, health: \"紧急\", grade: \"S\", owner: \"王五\", issue: \"评价下滑且差评集中\", participants: \"Amazon C / 用户运营 B / 客服 A\", progress: \"紧急策略审批\" },\n { id: \"LS-002\", asin: \"B0TES003\", site: \"DE\", marketplaces: \"DE\", rating: 4.18, reviews: 93, negative: 9, health: \"紧急\", grade: \"A\", owner: \"赵六\", issue: \"诈骗疑似叠加差评\", participants: \"Amazon D / 风险负责人\", progress: \"客服与风险介入\" },\n { id: \"LS-003\", asin: \"B0TES001\", site: \"US\", marketplaces: \"US / CA\", rating: 4.46, reviews: 412, negative: 16, health: \"补强\", grade: \"S\", owner: \"张三\", issue: \"美国加拿大同 ASIN 联动\", participants: \"Amazon A / 用户运营负责人\", progress: \"待生成计划\" },\n { id: \"LS-004\", asin: \"B0TES009\", site: \"UK\", marketplaces: \"UK\", rating: 4.51, reviews: 188, negative: 5, health: \"观察\", grade: \"B\", owner: \"李四\", issue: \"推送退订偏高\", participants: \"用户运营组长 / 推送运营\", progress: \"推送风险复核\" }\n ],\n plans: [\n { id: \"PL-0503-001\", type: \"真实评价跟踪\", requestId: \"WK-20260503-001\", asin: \"B0TES001\", site: \"US/CA\", target: 30, coverage: \"已覆盖\", channelMix: \"IM 40% / EDM 35% / TEL 25%\", status: \"Amazon 已批准\", approver: \"Amazon 总监\", owner: \"用户运营负责人\", risk: \"中\", simulated: true },\n { id: \"PL-0503-002\", type: \"紧急 Listing 策略\", requestId: \"WK-20260503-004\", asin: \"B0TES005\", site: \"JP\", target: 18, coverage: \"已覆盖\", channelMix: \"TEL 45% / IM 35% / EDM 20%\", status: \"待系统管理员审批\", approver: \"系统管理员\", owner: \"Amazon 运营总监\", risk: \"紧急\", simulated: true },\n { id: \"PL-0503-003\", type: \"周度推送计划\", requestId: \"WK-20260503-002\", asin: \"多 ASIN\", site: \"US/UK\", target: 2400, coverage: \"部分覆盖\", channelMix: \"IM 50% / EDM 30% / App 20%\", status: \"用户负责人待审\", approver: \"用户运营负责人\", owner: \"用户运营组长\", risk: \"中\", simulated: true }\n ],\n // ==================== 测评运营数据 ====================\n reviewUsers: [\n // A类未参与过\n { id: \"RU-20260515-001\", userId: \"JH-****-1001\", amazonAccount: \"amz_***a1\", category: \"A\", categoryName: \"未参与过\", product: \"B0TES001\", productName: \"儿童益智玩具\", bindTime: \"2026-05-10\", blacklist: false, tags: [\"新绑定用户\"], flowStatus: \"待推送回评卡片\", planTarget: 8, planSent: 0, owner: \"推送运营 A\" },\n { id: \"RU-20260515-002\", userId: \"JH-****-1002\", amazonAccount: \"amz_***b2\", category: \"A\", categoryName: \"未参与过\", product: \"B0TES003\", productName: \"户外运动装备\", bindTime: \"2026-05-12\", blacklist: true, tags: [\"黑名单-设备ID\"], flowStatus: \"黑名单用户-已拦截\", planTarget: 0, planSent: 0, owner: \"系统自动\" },\n { id: \"RU-20260515-003\", userId: \"JH-****-1003\", amazonAccount: \"amz_***c3\", category: \"A\", categoryName: \"未参与过\", product: \"B0TES005\", productName: \"智能手环\", bindTime: \"2026-05-08\", blacklist: false, tags: [\"待核实订单\"], flowStatus: \"订单待核实-已推送客服\", planTarget: 12, planSent: 0, owner: \"客服 B\" },\n { id: \"RU-20260515-004\", userId: \"JH-****-1004\", amazonAccount: \"amz_***d4\", category: \"A\", categoryName: \"未参与过\", product: \"B0TES001\", productName: \"儿童益智玩具\", bindTime: \"2026-05-05\", blacklist: false, tags: [\"待返款\"], flowStatus: \"已登记-待财务返款\", planTarget: 10, planSent: 0, owner: \"财务\" },\n { id: \"RU-20260515-005\", userId: \"JH-****-1005\", amazonAccount: \"amz_***e5\", category: \"A\", categoryName: \"未参与过\", product: \"B0TES007\", productName: \"厨房用品套装\", bindTime: \"2026-05-01\", blacklist: false, tags: [\"已回评\", \"待二次转化\"], flowStatus: \"回评完成-待推送测评卡片\", planTarget: 15, planSent: 5, owner: \"推送运营 A\" },\n // B类参与过账号<12个review\n { id: \"RU-20260514-001\", userId: \"JH-****-2001\", amazonAccount: \"amz_***f6\", category: \"B\", categoryName: \"参与过(<12)\", reviewCount: 8, product: \"B0TES002\", productName: \"美妆工具套装\", tags: [\"待催评\"], flowStatus: \"有未回评测评单\", planTarget: 6, planSent: 3, owner: \"推送运营 B\" },\n { id: \"RU-20260514-002\", userId: \"JH-****-2002\", amazonAccount: \"amz_***g7\", category: \"B\", categoryName: \"参与过(<12)\", reviewCount: 5, product: \"B0TES004\", productName: \"家居收纳盒\", tags: [\"待返款\", \"待回评\"], flowStatus: \"部分信息缺失\", planTarget: 4, planSent: 2, owner: \"客服 C\" },\n { id: \"RU-20260514-003\", userId: \"JH-****-2003\", amazonAccount: \"amz_***h8\", category: \"B\", categoryName: \"参与过(<12)\", reviewCount: 11, product: \"B0TES006\", productName: \"宠物用品\", tags: [\"已完成测评\", \"晋升长期\"], flowStatus: \"测评完成-晋升长期测评人\", planTarget: 8, planSent: 8, owner: \"系统自动\" },\n // C类长期测评人账号>12个review\n { id: \"RU-20260513-001\", userId: \"JH-****-3001\", amazonAccount: \"amz_***i9\", category: \"C\", categoryName: \"长期测评人(>12)\", reviewCount: 24, tags: [\"免评资格\"], flowStatus: \"可参与免评计划\", planTarget: 20, planSent: 15, owner: \"免评计划池\" },\n { id: \"RU-20260513-002\", userId: \"JH-****-3002\", amazonAccount: \"amz_***j0\", category: \"C\", categoryName: \"长期测评人(>12)\", reviewCount: 18, tags: [\"免评资格\"], flowStatus: \"可参与免评计划\", planTarget: 12, planSent: 8, owner: \"免评计划池\" },\n ],\n reviewPlans: [\n { id: \"RP-20260515-001\", type: \"免评计划\", product: \"B0TES001\", productName: \"儿童益智玩具\", site: \"US\", dailyTarget: 50, currentFilled: 38, remaining: 12, status: \"执行中\", urgent: false, note: \"日常免评补单\" },\n { id: \"RP-20260515-002\", type: \"免评计划\", product: \"B0TES003\", productName: \"户外运动装备\", site: \"UK\", dailyTarget: 30, currentFilled: 25, remaining: 5, status: \"执行中\", urgent: false, note: \"日常免评补单\" },\n { id: \"RP-20260515-003\", type: \"紧急催评\", product: \"B0TES005\", productName: \"智能手环\", site: \"US\", dailyTarget: 100, currentFilled: 62, remaining: 38, status: \"紧急\", urgent: true, note: \"店铺评分下跌,需紧急补量\", triggerReason: \"当日掉评3个差评2个\" },\n { id: \"RP-20260515-004\", type: \"免评计划\", product: \"B0TES008\", productName: \"电子音乐设备\", site: \"DE\", dailyTarget: 20, currentFilled: 12, remaining: 8, status: \"执行中\", urgent: false, note: \"新品免评推广\" },\n ],\n emergencyReview: [\n { id: \"ER-20260515-001\", product: \"B0TES005\", productName: \"智能手环\", site: \"US\", dropDate: \"2026-05-15\", dropCount: 3, negativeCount: 2, targetReviews: 100, filled: 62, remaining: 38, urgencyLevel: \"高\", pushTarget: 1900, status: \"执行中\", note: \"按2%回评率计算需触达1900人\" },\n ],\n pushes: [\n { id: \"PS-0503-001\", plan: \"PL-0503-001\", channel: \"IM\", strategy: \"购后真实体验回访\", h5: \"H5-Review-01\", assets: \"图片 A / 文案 B\", audience: \"购后 7-21 天用户\", sent: 980, click: 246, reply: 132, optout: \"0.8%\", risk: \"低\", status: \"执行中\", optimization: \"维持当前策略\" },\n { id: \"PS-0502-006\", plan: \"PL-0503-003\", channel: \"EDM\", strategy: \"老用户内容召回\", h5: \"H5-Story-03\", assets: \"图片 C / 文案 D\", audience: \"高互动老用户\", sent: 1600, click: 188, reply: 87, optout: \"2.9%\", risk: \"高\", status: \"风险复核\", optimization: \"暂停同策略并复盘\" },\n { id: \"PS-0502-009\", plan: \"PL-0503-003\", channel: \"TEL\", strategy: \"客服电话回访\", h5: \"无\", assets: \"话术 V2\", audience: \"活动参与用户\", sent: 740, click: 0, reply: 66, optout: \"无\", risk: \"中\", status: \"暂停待审\", optimization: \"调整拨打时段\" },\n { id: \"PS-0503-010\", plan: \"KOC-PR-001\", channel: \"PR/KOC\", strategy: \"对外合作跟进\", h5: \"H5-KOC-02\", assets: \"CODE 图 / 返点说明\", audience: \"KOC 21 / KOL 6\", sent: 27, click: 19, reply: 11, optout: \"无\", risk: \"中\", status: \"价格待确认\", optimization: \"补齐提款信息\" }\n ],\n support: [\n { id: \"CS-0503-001\", type: \"差评跟进\", user: \"JH-****-9021\", asin: \"B0TES007\", owner: \"客服 A\", status: \"处理中\", risk: \"中\", sla: \"6h\", avgResponse: \"12m\", workHours: \"6.5h\", attendance: \"正常\", output: \"处理 18 / 完成 12\" },\n { id: \"CS-0503-002\", type: \"诈骗疑似\", user: \"JH-****-7712\", asin: \"B0TES003\", owner: \"客服组长\", status: \"升级风险\", risk: \"高\", sla: \"2h\", avgResponse: \"8m\", workHours: \"7.2h\", attendance: \"关键岗缺 1\", output: \"处理 9 / 升级 3\" },\n { id: \"CS-0503-003\", type: \"承诺配合用户\", user: \"JH-****-1180\", asin: \"B0TES001\", owner: \"客服 B\", status: \"待回访\", risk: \"低\", sla: \"24h\", avgResponse: \"18m\", workHours: \"5.8h\", attendance: \"请假 0.5 天\", output: \"处理 16 / 完成 10\" }\n ],\n risks: [\n { id: \"RK-0503-001\", type: \"诈骗同步\", subject: \"JH-****-7712\", relation: \"Profile / 邮箱 / 设备号\", status: \"待同步黑名单\", risk: \"高\" },\n { id: \"RK-0503-002\", type: \"黑名单同步失败\", subject: \"JH-****-2098\", relation: \"接口超时\", status: \"失败待重试\", risk: \"高\" },\n { id: \"RK-0503-003\", type: \"规则提醒\", subject: \"PS-0502-006\", relation: \"退订率高于基线\", status: \"待复核\", risk: \"中\" }\n ],\n syncLogs: [\n { id: \"DT-001\", source: \"Amazon 订单\", interval: \"10 分钟\", last: \"2026-05-03 10:20\", status: \"正常\", rows: 1240 },\n { id: \"DT-002\", source: \"Amazon 评价\", interval: \"运营稳定更新\", last: \"2026-05-03 09:50\", status: \"正常\", rows: 216 },\n { id: \"DT-003\", source: \"黑名单系统\", interval: \"待接口确认\", last: \"2026-05-03 09:42\", status: \"部分失败\", rows: 5 },\n { id: \"DT-004\", source: \"用户画像标签\", interval: \"规划中\", last: \"模拟\", status: \"模拟\", rows: 0 }\n ],\n reports: [\n { id: \"RP-000\", name: \"目标完成度与问题总结\", owner: \"系统管理员\", range: \"日/周/月\", schedule: \"实时入口,周月预生成\", upload: \"数据分析 / OKR / 项目负责人提交\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-001\", name: \"Listing 健康日报\", owner: \"系统管理员 / Amazon 总监\", range: \"日/周/月\", schedule: \"每日 08:30\", upload: \"自动生成\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-002\", name: \"推送效果与风险复盘\", owner: \"用户运营负责人\", range: \"日/周/月\", schedule: \"每日 09:00周月预生成\", upload: \"支持上传补充记录\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-003\", name: \"诈骗同步审计表\", owner: \"系统管理员 / 风险负责人\", range: \"近 7/30 天\", schedule: \"每日 10:00\", upload: \"人工复核附件\", exportable: \"是\", masked: \"强制脱敏\" }\n ],\n system: [\n { id: \"SY-001\", module: \"系统授权\", status: \"待细化\", owner: \"系统管理员\", note: \"主管、组长、组员、客服、外部商家分层权限\" },\n { id: \"SY-002\", module: \"新建账号\", status: \"MVP 可模拟\", owner: \"系统管理员\", note: \"按部门、角色、站点、数据范围开通账号\" },\n { id: \"SY-003\", module: \"离职管理\", status: \"必需\", owner: \"系统管理员\", note: \"停用账号、交接任务、回收敏感权限\" },\n { id: \"SY-004\", module: \"权限分配\", status: \"必需\", owner: \"系统管理员\", note: \"导出、审批、查看敏感信息、黑名单同步独立授权\" },\n { id: \"SY-005\", module: \"审计日志\", status: \"必需\", owner: \"系统管理员\", note: \"导出、查看敏感信息、黑名单同步、审批动作\" }\n ],\n legacyPages: [\n {\n id: \"ERP-USER-001\",\n page: \"用户管理\",\n module: \"用户中心 / 用户\",\n currentFields: \"ID、用户名、头像、注册时间、最近活跃时间、用户身份、标签、邮箱后缀、主页背景图、自我介绍\",\n queryFields: \"搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份\",\n relations: \"用户 - 标签 - 身份 - 产品 - 活动 - EDM - 渠道\",\n usage: \"用户画像筛选、推送人群、客服定位、风险排查\",\n mvpAction: \"纳入用户主档与运营筛选字段\",\n risk: \"高\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-TAG-001\",\n page: \"公域-用户标签\",\n module: \"标签 / 公域用户\",\n currentFields: \"ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、备注、状态\",\n queryFields: \"搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间\",\n relations: \"公域用户标签 - 用户覆盖人数 - 打标记录 - 标签分类\",\n usage: \"公域人群圈选、覆盖人数评估、推送前过滤\",\n mvpAction: \"作为用户标签维表与人群查询条件\",\n risk: \"中\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-TAG-002\",\n page: \"公域-产品标签\",\n module: \"标签 / 公域产品\",\n currentFields: \"标签ID、标签名称、产品、标签覆盖产品数量、备注、创建时间、创建人\",\n queryFields: \"搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间\",\n relations: \"产品标签 - 产品 - 品牌 - Listing / ASIN\",\n usage: \"产品分层、Listing 健康策略、产品绑定率分析\",\n mvpAction: \"补充产品标签维表并关联 Listing 管理\",\n risk: \"中\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-TAG-003\",\n page: \"私域-用户标签\",\n module: \"标签 / 私域用户\",\n currentFields: \"ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、状态\",\n queryFields: \"搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间\",\n relations: \"私域用户标签 - 用户 - 社群/活动 - 客服/推送\",\n usage: \"私域精细运营、客服分组、活动复盘、风险用户隔离\",\n mvpAction: \"和公域标签分开建模,统一进入用户画像查询\",\n risk: \"高\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-ID-001\",\n page: \"身份管理\",\n module: \"身份\",\n currentFields: \"账号身份、图标PNG、图标PNG、图标PNG、操作\",\n queryFields: \"截图未展示查询区;建议补充身份名称、图标语言、状态、更新时间\",\n relations: \"身份 - 用户 - 多语言图标 - 权限/可见标识\",\n usage: \"识别官方、品牌、达人、风险、客服等用户身份\",\n mvpAction: \"纳入身份维表,补齐身份状态和多语言图标字段\",\n risk: \"中\",\n source: \"截图识别\",\n simulated: true\n }\n ],\n legacyFields: [\n { id: \"F-USER-001\", key: \"joyhub_user_id\", cn: \"JOYHUB 用户ID\", type: \"string\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"是\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-002\", key: \"username\", cn: \"用户名\", type: \"string\", source: \"用户管理\", permission: \"授权可见\", masked: \"部分脱敏\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-003\", key: \"avatar_url\", cn: \"头像\", type: \"string/url\", source: \"用户管理\", permission: \"授权可见\", masked: \"否\", exportable: \"否\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-004\", key: \"registered_at\", cn: \"注册时间\", type: \"datetime\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-005\", key: \"last_active_at\", cn: \"最近活跃时间\", type: \"datetime\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-006\", key: \"identity_ids\", cn: \"用户身份\", type: \"array<string>\", source: \"身份管理\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"用户管理/身份管理\", simulated: \"否\" },\n { id: \"F-USER-007\", key: \"public_user_tag_ids\", cn: \"公域用户标签\", type: \"array<string>\", source: \"公域-用户标签\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"公域-用户标签\", simulated: \"否\" },\n { id: \"F-USER-008\", key: \"private_user_tag_ids\", cn: \"私域用户标签\", type: \"array<string>\", source: \"私域-用户标签\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"私域-用户标签\", simulated: \"否\" },\n { id: \"F-USER-009\", key: \"email_domain\", cn: \"邮箱后缀\", type: \"string\", source: \"用户管理\", permission: \"全员可见\", masked: \"已脱敏\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-010\", key: \"country\", cn: \"国家\", type: \"string\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-011\", key: \"gender\", cn: \"性别\", type: \"enum\", source: \"用户管理\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-012\", key: \"bound_product_count\", cn: \"绑定过的产品数\", type: \"integer\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-013\", key: \"connected_product_count\", cn: \"连接过的产品数\", type: \"integer\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-014\", key: \"activity_participation_count\", cn: \"参与过的活动数\", type: \"integer\", source: \"活动数据\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"待接口\" },\n { id: \"F-USER-015\", key: \"edm_push_count_7d\", cn: \"近7天EDM推送数\", type: \"integer\", source: \"推送数据\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"待接口\" },\n { id: \"F-TAG-001\", key: \"tag_code\", cn: \"标签编号\", type: \"string\", source: \"标签模块\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"公域/私域用户标签\", simulated: \"否\" },\n { id: \"F-TAG-002\", key: \"tag_scope\", cn: \"标签域\", type: \"enum\", source: \"新增字段\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"标签模块\", simulated: \"是\" },\n { id: \"F-TAG-003\", key: \"tag_coverage_user_count\", cn: \"标签覆盖人数\", type: \"integer\", source: \"标签模块\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"公域/私域用户标签\", simulated: \"否\" },\n { id: \"F-ID-001\", key: \"identity_group\", cn: \"身份分组\", type: \"enum\", source: \"新增字段\", permission: \"系统管理员/负责人\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"身份管理\", simulated: \"是\" },\n { id: \"F-ID-002\", key: \"risk_level\", cn: \"身份风险等级\", type: \"enum\", source: \"新增字段\", permission: \"系统管理员/风险负责人\", masked: \"否\", exportable: \"是\", blacklistSync: \"是\", page: \"身份管理\", simulated: \"是\" }\n ],\n legacyRelations: [\n { id: \"REL-001\", name: \"用户 - 用户标签\", cardinality: \"多对多\", entities: \"users ↔ user_tags\", queryValue: \"人群圈选、用户画像、风险过滤\", priority: \"P0\" },\n { id: \"REL-002\", name: \"用户 - 身份\", cardinality: \"待确认:一对多或多对多\", entities: \"users ↔ identities\", queryValue: \"官方、品牌、达人、客服、风险身份识别\", priority: \"P0\" },\n { id: \"REL-003\", name: \"用户 - 产品\", cardinality: \"多对多\", entities: \"users ↔ products\", queryValue: \"绑定/连接产品、测评用户池、客服定位\", priority: \"P0\" },\n { id: \"REL-004\", name: \"产品 - 产品标签 - Listing\", cardinality: \"多对多\", entities: \"products ↔ product_tags ↔ listings\", queryValue: \"产品分层、Listing 健康策略、ASIN 归因\", priority: \"P1\" },\n { id: \"REL-005\", name: \"用户 - 活动\", cardinality: \"多对多\", entities: \"users ↔ activities\", queryValue: \"活动参与、KOC/KOL、私域运营沉淀\", priority: \"P1\" },\n { id: \"REL-006\", name: \"用户 - 推送\", cardinality: \"一对多\", entities: \"users ↔ push_records\", queryValue: \"IM/EDM/TEL/App Push 频控、点击、回复、退订\", priority: \"P0\" },\n { id: \"REL-007\", name: \"用户 - 风险/黑名单\", cardinality: \"一对多\", entities: \"users ↔ risk_events\", queryValue: \"诈骗同步、客服升级、风险用户隔离\", priority: \"P0\" }\n ],\n legacyQueries: [\n { id: \"QR-001\", scene: \"用户主档查询\", conditions: \"JOYHUB ID、用户名、邮箱后缀、国家、性别、注册/活跃时间\", output: \"用户主档、标签、身份、产品关系、近期活跃\", landing: \"用户中心 / 客服中心 / 风险中心\", priority: \"P0\" },\n { id: \"QR-002\", scene: \"推送前人群圈选\", conditions: \"标签、身份、国家、渠道、产品绑定/连接、活动、EDM近7天次数\", output: \"候选用户数、预计触达、频控风险、可保存人群包\", landing: \"计划中心 / 推送中心\", priority: \"P0\" },\n { id: \"QR-003\", scene: \"测评与真实评价跟踪人群\", conditions: \"ASIN/Listing、产品绑定、连接产品、最近活跃、国家/站点、风险身份排除\", output: \"推荐用户池、排除用户池、进入计划中心\", landing: \"需求中心 / 计划中心 / 客服中心\", priority: \"P0\" },\n { id: \"QR-004\", scene: \"标签覆盖查询\", conditions: \"标签分类、打标方式、覆盖人数、最新打标时间、状态\", output: \"标签列表、覆盖趋势、异常覆盖提示\", landing: \"现有ERP / 数据中心\", priority: \"P1\" },\n { id: \"QR-005\", scene: \"身份风险查询\", conditions: \"身份名称、身份分组、风险等级、状态\", output: \"风险用户池、客服/推送排除名单、黑名单同步候选\", landing: \"风险中心 / 系统管理\", priority: \"P1\" }\n ]\n };\n\n const tableSchemas = {\n requests: [\"需求ID\", \"类型\", \"提交人\", \"审核人\", \"审核结果\", \"来源表单\", \"ASIN/站点\", \"当前环节\", \"负责人\", \"风险\", \"截止\", \"操作\"],\n listings: [\"Listing\", \"站点组合\", \"评分\", \"等级\", \"评价数\", \"差评数\", \"健康状态\", \"责任人\", \"问题所在\", \"参与人员/进度\", \"操作\"],\n plans: [\"计划ID\", \"类型\", \"关联需求\", \"ASIN/站点\", \"覆盖状态\", \"资源分配\", \"目标量\", \"状态\", \"审批人\", \"风险\", \"操作\"],\n review_ops: [\"用户ID\", \"用户类型\", \"账号Review数\", \"产品\", \"用户标签\", \"流程状态\", \"计划目标\", \"已推送\", \"负责人\", \"操作\"],\n push: [\"推送ID\", \"计划\", \"渠道\", \"策略\", \"H5/素材\", \"人群\", \"发送\", \"点击\", \"回复\", \"退订\", \"风险\", \"状态\", \"操作\"],\n support: [\"工单ID\", \"类型\", \"用户摘要\", \"ASIN\", \"负责人\", \"平均响应\", \"工作时长\", \"出勤\", \"人均产出\", \"风险\", \"SLA\", \"操作\"],\n risk: [\"事件ID\", \"类型\", \"主体摘要\", \"关联字段\", \"状态\", \"风险\", \"操作\"],\n data: [\"日志ID\", \"来源\", \"同步频率\", \"最近同步\", \"状态\", \"记录数\", \"操作\"],\n legacy: [\"页面ID\", \"现有页面\", \"模块\", \"现有表格字段\", \"现有查询条件\", \"关系对象\", \"MVP纳入方式\", \"风险\", \"操作\"],\n reports: [\"报表ID\", \"报表名称\", \"可见角色\", \"周期\", \"生成计划\", \"上传/记录\", \"可导出\", \"脱敏\", \"操作\"],\n system: [\"配置ID\", \"模块\", \"状态\", \"负责人\", \"说明\", \"操作\"]\n };\n\n function escapeHtml(value) {\n return String(value)\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\"/g, \"&quot;\");\n }\n\n function toneClass(value) {\n if ([\"高\", \"紧急\", \"失败\", \"部分失败\"].includes(value)) return \"red\";\n if ([\"中\", \"待细化\", \"暂停待审\", \"风险复核\"].includes(value)) return \"amber\";\n if ([\"低\", \"正常\", \"已完成\", \"执行中\"].includes(value)) return \"green\";\n if ([\"模拟\", \"MVP 可模拟\"].includes(value)) return \"gray\";\n return \"blue\";\n }\n\n function tag(value, tone) {\n return `<span class=\"tag ${tone || toneClass(value)}\">${escapeHtml(value)}</span>`;\n }\n\n function setRoute(route, tab = \"all\") {\n state.route = route;\n state.activeTab = tab;\n window.location.hash = `${route}${tab !== \"all\" ? `:${tab}` : \"\"}`;\n render();\n }\n\n function renderNav() {\n const activeGroup = moduleGroups.find((group) => group.routes.includes(state.route)) || moduleGroups[0];\n const rail = document.getElementById(\"moduleRail\");\n if (rail) {\n rail.innerHTML = moduleGroups.map((group) => {\n const targetRoute = group.routes.includes(state.route) ? state.route : group.routes[0];\n return `\n <button class=\"rail-button ${group.id === activeGroup.id ? \"active\" : \"\"}\" data-route=\"${targetRoute}\">\n <span class=\"rail-icon\">${group.icon}</span>\n <span class=\"rail-label\">${group.label}</span>\n <span class=\"rail-count\">${group.count}</span>\n </button>\n `;\n }).join(\"\");\n }\n const moduleTitle = document.getElementById(\"moduleTitle\");\n const moduleNote = document.getElementById(\"moduleNote\");\n if (moduleTitle) moduleTitle.textContent = activeGroup.title;\n if (moduleNote) moduleNote.textContent = activeGroup.note;\n const nav = document.getElementById(\"nav\");\n const scopedRoutes = routes.filter((route) => activeGroup.routes.includes(route.id));\n nav.innerHTML = scopedRoutes.map((route) => `\n <button class=\"nav-button ${state.route === route.id ? \"active\" : \"\"}\" data-route=\"${route.id}\">\n <span class=\"nav-icon\">${route.icon}</span>\n <span class=\"nav-label\">${route.label}</span>\n <span class=\"nav-count\">${route.count}</span>\n </button>\n `).join(\"\");\n }\n\n function renderHeader(title, note, actions = \"\") {\n return `\n <div class=\"page-head\">\n <div>\n <h1>${title}</h1>\n <div class=\"page-note\">${note}</div>\n </div>\n <div class=\"button-row\">${actions}</div>\n </div>\n `;\n }\n\n function renderSourceNote() {\n return `\n <div class=\"source-note\">\n ${tag(\"模拟数据\", \"gray\")}\n <span>${DATA_SOURCE}</span>\n </div>\n `;\n }\n\n function renderTimeToolbar() {\n return `\n <div class=\"time-toolbar\">\n <div class=\"time-controls\">\n <strong>时间范围</strong>\n <input type=\"date\" value=\"${state.startDate}\" data-time=\"startDate\" />\n <span>至</span>\n <input type=\"date\" value=\"${state.endDate}\" data-time=\"endDate\" />\n <select data-time=\"preset\">\n <option>最近 7 天</option>\n <option>最近 30 天</option>\n <option>本月</option>\n <option>自定义</option>\n </select>\n </div>\n <div class=\"period-toggle\">\n ${[\"day\", \"week\", \"month\"].map((period) => `\n <button class=\"${state.period === period ? \"active\" : \"\"}\" data-period=\"${period}\">\n ${period === \"day\" ? \"日\" : period === \"week\" ? \"周\" : \"月\"}\n </button>\n `).join(\"\")}\n </div>\n <div class=\"source-note\">\n ${tag(\"周/月预生成\", \"gray\")}\n <span>周、月数据可由后台异步预生成,降低页面访问卡顿。</span>\n </div>\n </div>\n `;\n }\n\n function renderSpark(values) {\n const max = Math.max(...values, 1);\n return `\n <span class=\"spark\" aria-hidden=\"true\">\n ${values.map((value) => `<i style=\"height:${Math.max(6, Math.round((value / max) * 24))}px\"></i>`).join(\"\")}\n </span>\n `;\n }\n\n function renderKpis() {\n return `\n <div class=\"grid kpi-grid\">\n ${records.kpis.map((kpi) => `\n <button class=\"kpi-card\" data-route=\"${kpi.route}\" data-tab=\"${kpi.filter}\">\n <div class=\"kpi-top\">\n <div class=\"kpi-title\">${escapeHtml(kpi.title)}</div>\n ${tag(kpi.filter, kpi.tone)}\n </div>\n <div class=\"kpi-value\">${kpi.value}</div>\n <div class=\"kpi-foot\">\n <span>${escapeHtml(kpi.desc)}</span>\n <span>查看</span>\n </div>\n <div class=\"trend-line\">\n <span>日 ${kpi.trend.day}</span>\n <span>周 ${kpi.trend.week}</span>\n <span>月 ${kpi.trend.month}</span>\n </div>\n <div class=\"kpi-foot\">\n ${renderSpark(kpi.spark)}\n ${tag(kpi.trend.risk, kpi.tone)}\n </div>\n </button>\n `).join(\"\")}\n </div>\n `;\n }\n\n function renderDashboard() {\n return `\n ${renderCommandStatusStrip()}\n <div class=\"command-grid\">\n ${renderPriorityQueue()}\n <div class=\"side-stack\">\n ${renderRiskSummaryBoard()}\n ${renderApprovalAgingBoard()}\n </div>\n </div>\n <div class=\"matrix-grid\">\n ${renderThemeMatrix()}\n ${renderChannelMatrix()}\n </div>\n `;\n }\n\n function renderCommandStatusStrip() {\n const units = [\n { name: \"P0 待处理\", value: \"3\", sub: \"最长等待 6h\", tone: \"alert\", route: \"plans\", tab: \"blocked\", priority: 3 },\n { name: \"审核卡点\", value: \"4\", sub: \"影响 2 个计划\", tone: \"warning\", route: \"plans\", tab: \"approval\", priority: 4 },\n { name: \"紧急 Listing\", value: \"7\", sub: \"新 3 / 存量 4\", tone: \"alert\", route: \"listings\", tab: \"emergency\", priority: 5 },\n { name: \"黑名单失败\", value: \"2\", sub: \"高危 1\", tone: \"alert\", route: \"risk\", tab: \"sync_failed\", priority: 6 },\n { name: \"推送复核\", value: \"3\", sub: \"EDM 风险高\", tone: \"warning\", route: \"push\", tab: \"risk\", priority: 7 },\n { name: \"评价产出\", value: \"96\", sub: \"近 7 天稳定\", tone: \"\", route: \"reports\", tab: \"review_done\", priority: 8 },\n { name: \"目标完成度\", value: \"76%\", sub: \"周目标差 6%\", tone: \"goal warning\", route: \"reports\", tab: \"okr\", priority: 1, featured: true, progress: 76 },\n { name: \"问题总结\", value: \"9\", sub: \"数据 4 / OKR 2 / 项目 3\", tone: \"alert\", route: \"reports\", tab: \"issue_summary\", priority: 2, featured: true }\n ];\n const coreUnits = units.filter((unit) => unit.featured);\n const restUnits = units.filter((unit) => !unit.featured);\n const orderedRest = state.statusPriorityFirst\n ? [...restUnits].sort((a, b) => a.priority - b.priority)\n : restUnits;\n const ordered = [...coreUnits, ...orderedRest];\n return `\n <section class=\"command-board\">\n <div class=\"command-board-head\">\n <div class=\"command-board-title\">\n <h2>核心看板</h2>\n <span>目标 / 问题 / 卡点</span>\n </div>\n </div>\n <div class=\"command-status-strip ${state.statusExpanded ? \"is-expanded\" : \"is-collapsed\"}\">\n ${ordered.map((unit, index) => `\n <button class=\"status-unit ${unit.tone} ${unit.featured ? \"featured\" : \"\"} ${!unit.featured && index > 5 ? \"optional\" : \"\"}\" data-route=\"${unit.route}\" data-tab=\"${unit.tab}\">\n <div class=\"status-name\">${unit.name}</div>\n <div class=\"status-value\"><span>${unit.value}</span><small>${unit.sub}</small></div>\n ${unit.progress ? `<div class=\"status-progress\" aria-label=\"目标完成进度\"><span style=\"--progress:${unit.progress}%;\"></span></div>` : \"\"}\n </button>\n `).join(\"\")}\n </div>\n <div class=\"command-board-actions\">\n <button class=\"mini-btn ${state.statusPriorityFirst ? \"primary\" : \"\"}\" data-action=\"priority-status\">\n ${state.statusPriorityFirst ? \"高风险\" : \"原序\"}\n </button>\n <button class=\"mini-btn\" data-action=\"toggle-status\">\n ${state.statusExpanded ? \"收起\" : \"展开\"}\n </button>\n </div>\n </section>\n `;\n }\n\n function renderPriorityQueue() {\n const rows = [\n [\"P0\", \"紧急 Listing 策略等待确认\", \"B0TES005 / JP / 评分 4.21\", \"Amazon 总监\", \"超 4h\", \"审批\", \"critical\", \"plans\", \"blocked\"],\n [\"P0\", \"黑名单同步失败需判断严重度\", \"JH-****-2098 / 接口超时 / 高危 1\", \"风险负责人\", \"2h\", \"处理\", \"critical\", \"risk\", \"sync_failed\"],\n [\"P1\", \"EDM 推送复核后再放量\", \"PS-0502-006 / 退订率 2.9%\", \"用户运营组长\", \"今日 12:00\", \"复核\", \"warning\", \"push\", \"risk\"],\n [\"P1\", \"Amazon 已批需求待接收\", \"8 个测评需求 / 最长等待 6h\", \"用户运营负责人\", \"今日 18:00\", \"接收\", \"warning\", \"plans\", \"amazon_approved\"],\n [\"P2\", \"菲律宾 TEL 排班缺口\", \"关键岗位缺 1 / 影响回访覆盖\", \"客服负责人\", \"明日 10:00\", \"分配\", \"\", \"support\", \"ph\"]\n ];\n return `\n <section class=\"panel\">\n <div class=\"panel-head panel-toolbar\">\n <div>\n <h2 class=\"panel-title\">P0/P1 处理队列</h2>\n <div class=\"panel-note\">首页唯一主任务区:风险、对象、负责人、时限和操作放在同一行。</div>\n </div>\n <div class=\"compact-tabs\">\n <button class=\"active\" data-tab=\"all\">全部</button>\n <button data-route=\"plans\" data-tab=\"blocked\">审核</button>\n <button data-route=\"listings\" data-tab=\"emergency\">Listing</button>\n <button data-route=\"risk\" data-tab=\"sync_failed\">黑名单</button>\n <button data-route=\"push\" data-tab=\"risk\">推送</button>\n </div>\n </div>\n <div class=\"panel-body priority-table\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr><th>级别</th><th>事项</th><th>对象</th><th>负责人</th><th>时限</th><th>操作</th></tr>\n </thead>\n <tbody>\n ${rows.map(([level, title, object, owner, due, action, cls, route, tab]) => `\n <tr>\n <td>${tag(level, level === \"P0\" ? \"red\" : level === \"P1\" ? \"amber\" : \"blue\")}</td>\n <td><div class=\"row-title\">${title}</div><div class=\"row-sub\">${cls === \"critical\" ? \"需要管理层确认\" : \"责任部门可处理,异常自动升级\"}</div></td>\n <td>${object}</td>\n <td>${owner}</td>\n <td>${due}</td>\n <td>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">${action}</button>\n <button class=\"mini-btn\" data-detail=\"workItems\" data-id=\"WK-20260503-001\">详情</button>\n </td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderRiskSummaryBoard() {\n const rows = [\n [\"数据分析\", \"Listing 4.2 附近 3 个,目标完成度拖累 6%\", \"高\", \"alert\", \"reports\", \"issue_summary\"],\n [\"OKR 总结\", \"周目标完成 76%,测评接收与推送复核是主要缺口\", \"中\", \"warning\", \"reports\", \"okr\"],\n [\"负责人提交\", \"EDM 退订超过基线,项目负责人建议暂停放量\", \"中\", \"warning\", \"push\", \"risk\"]\n ];\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">问题总结入口</h2>\n <div class=\"panel-note\">数据分析、OKR 总结、项目负责人提交统一进入这里。</div>\n </div>\n </div>\n <div class=\"side-list\">\n ${rows.map(([name, meta, risk, cls, route, tab]) => `\n <button class=\"side-row ${cls}\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"side-row-title\"><span>${name}</span>${tag(risk)}</div>\n <div class=\"side-row-meta\">${meta}</div>\n </button>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderApprovalAgingBoard() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">审核时效</h2>\n <div class=\"panel-note\">看是否卡住业务流。</div>\n </div>\n <button class=\"btn\" data-route=\"plans\" data-tab=\"approval\">全部审批</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"chart-row\">\n ${[\n [\"0-2h\", 42, \"green\"],\n [\"2-6h\", 28, \"blue\"],\n [\"6-12h\", 18, \"amber\"],\n [\"12h+\", 12, \"red\"]\n ].map(([name, value, color]) => `\n <div class=\"bar-line\">\n <span>${name}</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${value}%; background:var(--${color});\"></div></div>\n <span>${value}%</span>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function renderThemeMatrix() {\n const rows = [\n [\"目标完成度\", \"76%\", \"80%\", \"88%\", \"低于周目标 6%\", \"查看问题总结\", \"reports\", \"okr\"],\n [\"测评需求\", \"18\", \"74\", \"236\", \"已批 8 / 待接收 8\", \"用户运营接收\", \"plans\", \"amazon_approved\"],\n [\"Listing 健康\", \"新 3\", \"11\", \"29\", \"4.2 附近\", \"紧急策略审批\", \"listings\", \"emergency\"],\n [\"诈骗黑名单\", \"5\", \"18\", \"64\", \"失败 2 / 高危 1\", \"复核并同步\", \"risk\", \"sync_failed\"],\n [\"评价产出\", \"18\", \"96\", \"384\", \"稳定\", \"查看周报\", \"reports\", \"review_done\"],\n [\"客服质量\", \"12m\", \"14m\", \"16m\", \"关键岗缺 1\", \"调整排班\", \"support\", \"quality\"]\n ];\n return `\n <section class=\"panel matrix-table\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">经营主题矩阵</h2>\n <div class=\"panel-note\">每组数据有趋势、阈值和下一步动作。</div>\n </div>\n </div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>主题</th><th>日</th><th>周</th><th>月</th><th>状态</th><th>下一步</th><th>操作</th></tr></thead>\n <tbody>\n ${rows.map(([name, day, week, month, status, next, route, tab]) => `\n <tr>\n <td><strong>${name}</strong></td>\n <td>${day}</td>\n <td>${week}</td>\n <td>${month}</td>\n <td>${tag(status, status.includes(\"失败\") || status.includes(\"4.2\") || status.includes(\"缺\") || status.includes(\"低于\") ? \"red\" : status.includes(\"待\") ? \"amber\" : \"green\")}</td>\n <td>${next}</td>\n <td><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">查看</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderChannelMatrix() {\n const rows = [\n [\"IM\", \"正常\", \"980\", \"132\", \"继续\"],\n [\"EDM\", \"高风险\", \"1600\", \"87\", \"复核\"],\n [\"TEL\", \"资源紧\", \"740\", \"66\", \"排班\"],\n [\"PR/KOC\", \"逾期 2\", \"27\", \"11\", \"补资料\"],\n [\"PH 团队\", \"缺口 1\", \"-\", \"-\", \"调班\"]\n ];\n return `\n <section class=\"panel channel-table\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">渠道与团队</h2>\n <div class=\"panel-note\">只看状态和动作,不展开全量过程。</div>\n </div>\n </div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>对象</th><th>状态</th><th>触达</th><th>回复</th><th>动作</th></tr></thead>\n <tbody>\n ${rows.map(([name, status, sent, reply, action]) => `\n <tr>\n <td><strong>${name}</strong></td>\n <td>${tag(status, status === \"正常\" ? \"green\" : status.includes(\"高\") || status.includes(\"缺\") ? \"red\" : \"amber\")}</td>\n <td>${sent}</td>\n <td>${reply}</td>\n <td><button class=\"mini-btn primary\" data-route=\"${name === \"PH 团队\" ? \"support\" : \"push\"}\" data-tab=\"${name === \"EDM\" ? \"risk\" : \"all\"}\">${action}</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderExecutiveHero() {\n return `\n <section class=\"executive-hero\">\n <div class=\"focus-card\">\n <div class=\"focus-eyebrow\">今日管理判断</div>\n <h2 class=\"focus-title\">当前不是数据量问题,主要风险集中在审核卡点、紧急 Listing 和推送复核。</h2>\n <div class=\"health-score\">\n <div class=\"health-number\">78</div>\n <div class=\"health-copy\">\n 经营健康指数 / 100<br />\n 较昨日下降 4 分。需要优先处理 P0 审批和 4.2 附近 Listing。\n </div>\n </div>\n <div class=\"focus-metrics\">\n <div class=\"focus-metric\"><strong>4</strong><span>审核卡点</span></div>\n <div class=\"focus-metric\"><strong>7</strong><span>未处理紧急</span></div>\n <div class=\"focus-metric\"><strong>6h</strong><span>最长等待</span></div>\n </div>\n </div>\n <div class=\"decision-panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">需要处理的 3 件事</h2>\n <div class=\"panel-note\">按影响程度排序,只保留系统管理员需要介入的判断。</div>\n </div>\n <div class=\"button-row\">\n <button class=\"btn primary\" data-route=\"plans\" data-tab=\"blocked\">处理卡点</button>\n <button class=\"btn warning\" data-route=\"risk\" data-tab=\"risk_summary\">风险汇总</button>\n <button class=\"btn\" data-route=\"reports\" data-tab=\"weekly\">周报</button>\n </div>\n </div>\n <div class=\"decision-list\">\n ${[\n [\"P0\", \"紧急 Listing 策略等待确认\", \"B0TES005 评分 4.21,策略审批等待超过 4 小时。\", \"critical\", \"plans\", \"blocked\"],\n [\"P0\", \"黑名单同步失败需判断严重度\", \"2 条失败记录中 1 条高危,可能影响诈骗拦截。\", \"critical\", \"risk\", \"sync_failed\"],\n [\"P1\", \"EDM 推送复核后再放量\", \"退订率高于基线,周计划需要暂停同策略任务。\", \"warning\", \"push\", \"risk\"]\n ].map(([level, title, desc, cls, route, tab]) => `\n <div class=\"decision-row ${cls}\">\n <div>${tag(level, level === \"P0\" ? \"red\" : \"amber\")}</div>\n <div>\n <div class=\"decision-title\">${title}</div>\n <div class=\"decision-desc\">${desc}</div>\n </div>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">处理</button>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function renderExecutiveSnapshot() {\n const cards = [\n [\"测评需求与计划\", \"18 申请 / 8 已批\", \"primary\", \"日 18\", \"周 74\", \"月 236\", \"Amazon 提交后,用户运营接收仍有等待。\", \"plans\", \"amazon_approved\"],\n [\"Listing 健康\", \"7 未处理紧急\", \"risk\", \"新 3\", \"周 11\", \"月 29\", \"4.2 附近 Listing 是当前最高风险。\", \"listings\", \"emergency\"],\n [\"诈骗与黑名单\", \"高危 1 / 失败 2\", \"risk\", \"昨 5\", \"周 18\", \"月 64\", \"看严重度和同步失败影响,不展示全量明细。\", \"risk\", \"sync_failed\"],\n [\"评价与推送产出\", \"周 96 / 回复 296\", \"good\", \"日 18\", \"周 96\", \"月 384\", \"评价产出稳定,但 EDM 风险需要复核。\", \"reports\", \"review_done\"]\n ];\n return `\n <section class=\"executive-grid\">\n ${cards.map(([title, value, cls, day, week, month, desc, route, tab]) => `\n <button class=\"executive-card ${cls}\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"executive-title\">\n <span>${title}</span>\n ${tag(cls === \"risk\" ? \"风险\" : cls === \"good\" ? \"稳定\" : \"关注\", cls === \"risk\" ? \"red\" : cls === \"good\" ? \"green\" : \"blue\")}\n </div>\n <div class=\"executive-value\">${value}</div>\n <div class=\"period-stats\">\n <div class=\"period-stat\"><strong>${day}</strong><span>日</span></div>\n <div class=\"period-stat\"><strong>${week}</strong><span>周</span></div>\n <div class=\"period-stat\"><strong>${month}</strong><span>月</span></div>\n </div>\n <div class=\"insight-desc\">${desc}</div>\n </button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderOpsStrip() {\n const cards = [\n [\"IM\", \"正常\", \"触达 980回复 132继续执行。\", \"green\", \"push\", \"im\"],\n [\"EDM\", \"需复核\", \"退订率 2.9%,暂停同策略放量。\", \"amber\", \"push\", \"risk\"],\n [\"TEL\", \"资源紧\", \"客服回访排班接近满负载。\", \"amber\", \"support\", \"tel\"],\n [\"PR/KOC/KOL\", \"2 个逾期\", \"价格、CODE、返点信息需补齐。\", \"purple\", \"push\", \"kol\"],\n [\"菲律宾团队\", \"关键岗缺 1\", \"请假与缺席影响 TEL 覆盖。\", \"red\", \"support\", \"ph\"]\n ];\n return `\n <section class=\"ops-strip\">\n ${cards.map(([name, status, desc, tone, route, tab]) => `\n <button class=\"ops-card\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"ops-name\"><span>${name}</span>${tag(status, tone)}</div>\n <div class=\"ops-status\">${desc}</div>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${tone === \"green\" ? \"72\" : tone === \"red\" ? \"84\" : \"58\"}%; background:var(--${tone === \"purple\" ? \"purple\" : tone});\"></div></div>\n </button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderDrilldownGrid() {\n const buttons = [\n [\"待审核需求\", \"requests\", \"pending_review\"],\n [\"计划覆盖缺口\", \"plans\", \"coverage\"],\n [\"紧急 Listing\", \"listings\", \"emergency\"],\n [\"客服质量\", \"support\", \"quality\"],\n [\"报表生成\", \"reports\", \"weekly\"]\n ];\n return `\n <section class=\"drilldown-grid\">\n ${buttons.map(([label, route, tab]) => `\n <button class=\"drilldown-button\" data-route=\"${route}\" data-tab=\"${tab}\">${label}</button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderWorkPanel() {\n const tabs = [\n [\"all\", \"全部\"],\n [\"amazon_approved\", \"Amazon 已批\"],\n [\"risk_review\", \"用户运营接收\"],\n [\"support\", \"客服升级\"],\n [\"fraud\", \"风险复核\"]\n ];\n const filtered = state.activeTab === \"all\"\n ? records.workItems\n : records.workItems.filter((item) => item.status === state.activeTab);\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">跨部门待办流</h2>\n <div class=\"panel-note\">把 Amazon 已通过、用户运营接收、客服升级、风险复核放在同一条管理队列。</div>\n </div>\n <div class=\"tabs\">\n ${tabs.map(([id, label]) => `<button class=\"tab ${state.activeTab === id ? \"active\" : \"\"}\" data-tab=\"${id}\">${label}</button>`).join(\"\")}\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>来源</th><th>类型</th><th>ASIN/站点</th><th>当前环节</th>\n <th>负责人</th><th>风险</th><th>截止</th><th>动作</th>\n </tr>\n </thead>\n <tbody>\n ${filtered.map((item) => `\n <tr>\n <td>${escapeHtml(item.source)}</td>\n <td>${tag(item.type, \"blue\")}</td>\n <td>${escapeHtml(item.asin)} / ${escapeHtml(item.site)}</td>\n <td>${escapeHtml(item.stage)}</td>\n <td>${escapeHtml(item.owner)}</td>\n <td>${tag(item.risk)}</td>\n <td>${escapeHtml(item.due)}</td>\n <td>\n <button class=\"mini-btn primary\" data-detail=\"workItems\" data-id=\"${item.id}\">${escapeHtml(item.action)}</button>\n <button class=\"mini-btn\" data-action=\"open-modal\" data-modal=\"assign\" data-target=\"${item.id}\">分配</button>\n </td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderListingPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">Listing 与评价健康</h2>\n <div class=\"panel-note\">4.5 以下进入补强,接近 4.2 进入紧急协同。</div>\n </div>\n <button class=\"btn\" data-route=\"listings\" data-tab=\"all\">更多</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"chart-row\">\n ${[\n [\"4.7 以上\", 62, \"green\"],\n [\"4.5 - 4.7\", 24, \"blue\"],\n [\"4.2 - 4.5\", 11, \"amber\"],\n [\"接近 4.2\", 3, \"red\"]\n ].map(([name, value, color]) => `\n <div class=\"bar-line\">\n <span>${name}</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${value}%; background:var(--${color});\"></div></div>\n <span>${value}%</span>\n </div>\n `).join(\"\")}\n </div>\n <div class=\"table-wrap\" style=\"margin-top:12px;\">\n <table>\n <thead><tr><th>ASIN</th><th>站点</th><th>评分</th><th>健康</th><th>阶段</th><th>动作</th></tr></thead>\n <tbody>\n ${records.listings.slice(0, 4).map((item) => `\n <tr>\n <td>${item.asin}</td><td>${item.site}</td><td>${item.rating}</td>\n <td>${tag(item.health)}</td><td>${item.stage}</td>\n <td><button class=\"mini-btn primary\" data-detail=\"listings\" data-id=\"${item.id}\">查看</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderRiskPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">风险雷达</h2>\n <div class=\"panel-note\">诈骗同步、推送风险、规则提醒、数据同步异常。</div>\n </div>\n <button class=\"btn\" data-route=\"risk\" data-tab=\"all\">进入风险中心</button>\n </div>\n <div class=\"panel-body risk-list\">\n ${records.risks.map((risk) => `\n <div class=\"risk-item ${risk.risk === \"高\" ? \"high\" : \"mid\"}\">\n <div class=\"item-title\">\n <span>${escapeHtml(risk.type)}</span>\n ${tag(risk.risk)}\n </div>\n <div class=\"item-desc\">${escapeHtml(risk.subject)} · ${escapeHtml(risk.relation)} · ${escapeHtml(risk.status)}</div>\n <div><button class=\"mini-btn primary\" data-detail=\"risks\" data-id=\"${risk.id}\">处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderBlockingPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">审核卡点与已发现问题</h2>\n <div class=\"panel-note\">系统管理员页优先展示已经识别的问题,避免逐表查找。</div>\n </div>\n <button class=\"btn\" data-route=\"plans\" data-tab=\"blocked\">处理卡点</button>\n </div>\n <div class=\"panel-body risk-list\">\n ${[\n [\"紧急策略审批超 4h\", \"PL-0503-002 接近 4.2 Listing等待系统管理员确认。\", \"高\", \"plans\", \"blocked\"],\n [\"需求已批但未接收\", \"8 个 Amazon 已批准测评需求待用户运营接收,最长等待 6h。\", \"中\", \"plans\", \"amazon_approved\"],\n [\"推送风险待复核\", \"EDM 退订高于基线,相关周计划不应继续放量。\", \"高\", \"push\", \"risk\"]\n ].map(([title, desc, risk, route, tab]) => `\n <div class=\"risk-item ${risk === \"高\" ? \"high\" : \"mid\"}\">\n <div class=\"item-title\"><span>${title}</span>${tag(risk)}</div>\n <div class=\"item-desc\">${desc}</div>\n <div><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">去处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n\n function renderSuggestPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">管理动作建议</h2>\n <div class=\"panel-note\">按 P0/P1 优先级生成,后期可由算法模块增强。</div>\n </div>\n </div>\n <div class=\"panel-body suggest-list\">\n ${[\n [\"先处理 3 个紧急 Listing\", \"需要 Amazon 与用户运营共同确认跟进策略,避免评分继续逼近 4.2。\", \"listings\", \"emergency\"],\n [\"复核昨日高风险推送\", \"检查人群、素材、文案与退订反馈,必要时暂停同策略任务。\", \"push\", \"risk\"],\n [\"审核新增诈骗事件\", \"确认后同步黑名单子系统,失败记录进入重试队列和审计。\", \"risk\", \"fraud\"]\n ].map(([title, desc, route, tab]) => `\n <div class=\"suggest-item\">\n <div class=\"item-title\"><span>${title}</span>${tag(\"建议\", \"purple\")}</div>\n <div class=\"item-desc\">${desc}</div>\n <div><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">去处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderSummaryPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">业务复盘与中期趋势</h2>\n <div class=\"panel-note\">日/周/月切换;系统管理员、负责人/总监、组长都能看到趋势与风险提示。</div>\n </div>\n <button class=\"btn\" data-route=\"reports\" data-tab=\"yesterday\">查看报表</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"summary-grid\">\n ${[\n [\"2,840\", \"昨日触达用户\"],\n [\"285\", \"用户回复\"],\n [\"96\", \"近 7 天评价完成\"],\n [\"4\", \"审核卡点\"]\n ].map(([value, label]) => `\n <div class=\"summary-cell\">\n <div class=\"summary-value\">${value}</div>\n <div class=\"summary-label\">${label}</div>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function getRows(route) {\n if (route === \"requests\") return records.workItems;\n if (route === \"listings\") return records.listings;\n if (route === \"plans\") return records.plans;\n if (route === \"review_ops\") return records.reviewUsers;\n if (route === \"push\") return records.pushes;\n if (route === \"support\") return records.support;\n if (route === \"risk\") return records.risks;\n if (route === \"data\") return records.syncLogs;\n if (route === \"legacy\") return records.legacyPages;\n if (route === \"reports\") return records.reports;\n if (route === \"system\") return records.system;\n return [];\n }\n\n function rowToCells(route, item) {\n if (route === \"requests\") {\n return [item.id, tag(item.type, \"blue\"), item.submitter, item.reviewer, tag(item.approval), item.sourceForm, `${item.asin}/${item.site}`, item.stage, item.owner, tag(item.risk), item.due];\n }\n if (route === \"listings\") {\n return [item.asin, item.marketplaces, item.rating, tag(item.grade, item.grade === \"S\" ? \"red\" : item.grade === \"A\" ? \"amber\" : \"blue\"), item.reviews, item.negative, tag(item.health), item.owner, item.issue, `${item.participants} / ${item.progress}`];\n }\n if (route === \"plans\") {\n return [item.id, tag(item.type, \"blue\"), item.requestId, `${item.asin}/${item.site}`, tag(item.coverage, item.coverage === \"已覆盖\" ? \"green\" : \"amber\"), item.channelMix, item.target, item.status, item.approver, tag(item.risk)];\n }\n if (route === \"review_ops\") {\n return [\n item.userId, \n tag(item.categoryName, item.category === \"A\" ? \"blue\" : item.category === \"B\" ? \"amber\" : \"green\"),\n item.reviewCount ? item.reviewCount : \"-\",\n `${item.product}/${item.productName || ''}`,\n item.tags.map(t => tag(t, t.includes(\"黑名单\") ? \"red\" : t.includes(\"免评\") ? \"green\" : \"gray\")).join(\" \"),\n tag(item.flowStatus, item.flowStatus.includes(\"完成\") ? \"green\" : item.flowStatus.includes(\"紧急\") ? \"red\" : \"amber\"),\n item.planTarget,\n item.planSent,\n item.owner\n ];\n }\n if (route === \"push\") {\n return [item.id, item.plan, item.channel, item.strategy, `${item.h5} / ${item.assets}`, item.audience, item.sent, item.click, item.reply, item.optout, tag(item.risk), item.status];\n }\n if (route === \"support\") {\n return [item.id, tag(item.type, \"blue\"), item.user, item.asin, item.owner, item.avgResponse, item.workHours, item.attendance, item.output, tag(item.risk), item.sla];\n }\n if (route === \"risk\") {\n return [item.id, tag(item.type, \"blue\"), item.subject, item.relation, item.status, tag(item.risk)];\n }\n if (route === \"data\") {\n return [item.id, item.source, item.interval, item.last, tag(item.status), item.rows];\n }\n if (route === \"legacy\") {\n return [item.id, item.page, item.module, item.currentFields, item.queryFields, item.relations, item.mvpAction, tag(item.risk)];\n }\n if (route === \"reports\") {\n return [item.id, item.name, item.owner, item.range, item.schedule, item.upload, tag(item.exportable, \"green\"), tag(item.masked, \"gray\")];\n }\n if (route === \"system\") {\n return [item.id, item.module, tag(item.status), item.owner, item.note];\n }\n return [];\n }\n\n function renderListPage(route) {\n if (route === \"legacy\") return renderLegacyPage();\n if (route === \"review_ops\") return renderReviewOpsPage();\n const routeMeta = routes.find((item) => item.id === route);\n const rows = getRows(route);\n const schema = tableSchemas[route] || [];\n const actions = listActions(route);\n return `\n ${renderHeader(routeMeta.label, pageNotes(route), actions)}\n ${route === \"push\" ? renderImPushSection() : \"\"}\n ${renderModuleInsights(route)}\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">${routeMeta.label}列表</h2>\n <div class=\"panel-note\">当前筛选:${escapeHtml(state.activeTab)};所有记录为模拟数据。</div>\n </div>\n ${renderSourceNote()}\n </div>\n <div class=\"panel-body\">\n ${route === \"requests\" ? renderPendingStrip(\"待审核需求 6 个,其中测评需求必须由 Amazon 运营提交;飞书表单可作为创建入口并同步到 ERP。\", \"requests\", \"pending_review\") : \"\"}\n ${renderFilterBar(route)}\n <div class=\"table-wrap\">\n <table>\n <thead><tr>${schema.map((col) => `<th>${col}</th>`).join(\"\")}</tr></thead>\n <tbody>\n ${rows.map((item) => `\n <tr>\n ${rowToCells(route, item).map((cell) => `<td>${cell}</td>`).join(\"\")}\n <td>${renderRowActions(route, item)}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n // ==================== 测评运营系统 ====================\n function renderReviewOpsPage() {\n const stats = {\n newUsers: records.reviewUsers.filter(u => u.category === \"A\").length,\n participated: records.reviewUsers.filter(u => u.category === \"B\").length,\n longTerm: records.reviewUsers.filter(u => u.category === \"C\").length,\n pending: records.reviewUsers.filter(u => u.flowStatus.includes(\"待\")).length,\n urgent: records.emergencyReview.length,\n totalTarget: records.reviewPlans.reduce((sum, p) => sum + p.dailyTarget, 0),\n totalFilled: records.reviewPlans.reduce((sum, p) => sum + p.currentFilled, 0)\n };\n\n return `\n ${renderHeader(\"测评运营\", \"测评用户全生命周期管理 - 触达与转化\", \"\")}\n \n <!-- 用户分类统计 -->\n <div class=\"review-stats-grid\">\n <div class=\"review-stat-card category-a\">\n <div class=\"review-stat-icon\">🆕</div>\n <div class=\"review-stat-info\">\n <div class=\"review-stat-value\">${stats.newUsers}</div>\n <div class=\"review-stat-label\">A类未参与过</div>\n <div class=\"review-stat-desc\">新绑定用户,待推送回评卡片</div>\n </div>\n </div>\n <div class=\"review-stat-card category-b\">\n <div class=\"review-stat-icon\">🔄</div>\n <div class=\"review-stat-info\">\n <div class=\"review-stat-value\">${stats.participated}</div>\n <div class=\"review-stat-label\">B类参与过(&lt;12)</div>\n <div class=\"review-stat-desc\">账号&lt;12个review优先催评</div>\n </div>\n </div>\n <div class=\"review-stat-card category-c\">\n <div class=\"review-stat-icon\">⭐</div>\n <div class=\"review-stat-info\">\n <div class=\"review-stat-value\">${stats.longTerm}</div>\n <div class=\"review-stat-label\">C类长期测评人(&gt;12)</div>\n <div class=\"review-stat-desc\">账号&gt;12个review自动免评</div>\n </div>\n </div>\n <div class=\"review-stat-card pending\">\n <div class=\"review-stat-icon\">⏳</div>\n <div class=\"review-stat-info\">\n <div class=\"review-stat-value\">${stats.pending}</div>\n <div class=\"review-stat-label\">待处理</div>\n <div class=\"review-stat-desc\">流程中待推进的用户</div>\n </div>\n </div>\n </div>\n\n <!-- 紧急催评提醒 -->\n ${stats.urgent > 0 ? `\n <div class=\"emergency-alert\">\n <div class=\"emergency-alert-icon\">🚨</div>\n <div class=\"emergency-alert-content\">\n <div class=\"emergency-alert-title\">紧急催评任务</div>\n <div class=\"emergency-alert-list\">\n ${records.emergencyReview.map(e => `\n <div class=\"emergency-item\">\n <span class=\"emergency-product\">${e.productName}</span>\n <span class=\"emergency-site\">${e.site}</span>\n <span class=\"emergency-reason\">${e.triggerReason}</span>\n <span class=\"emergency-progress\">进度: ${e.filled}/${e.target} (还需 ${e.remaining} 个)</span>\n <span class=\"emergency-push\">需触达: ${e.pushTarget.toLocaleString()} 人</span>\n <span class=\"emergency-status ${e.status === '执行中' ? 'active' : ''}\">${e.status}</span>\n </div>\n `).join('')}\n </div>\n </div>\n </div>\n ` : ''}\n\n <!-- 业务流程说明 -->\n <section class=\"panel\">\n <div class=\"panel-head\">\n <h2 class=\"panel-title\">📋 测评业务流程</h2>\n </div>\n <div class=\"panel-body\">\n <div class=\"flow-diagram\">\n <div class=\"flow-section\">\n <div class=\"flow-title\">A类用户未参与过测评</div>\n <div class=\"flow-steps\">\n <div class=\"flow-step\">1. 用户注册APP并绑定产品</div>\n <div class=\"flow-arrow\">→</div>\n <div class=\"flow-step warning\">2. 黑名单检查设备ID</div>\n <div class=\"flow-arrow\">→</div>\n <div class=\"flow-branch\">\n <div class=\"flow-branch-yes\">✅ 非黑名单 → 推送回评卡片</div>\n <div class=\"flow-branch-no\">❌ 黑名单 → 打标长期测评人,推送免评计划</div>\n </div>\n </div>\n <div class=\"flow-sub\">\n <div class=\"flow-step success\">3. 用户提交信息 → 核实订单(测评单/公司产品/单号)</div>\n <div class=\"flow-arrow\">↓</div>\n <div class=\"flow-branch\">\n <div class=\"flow-branch-yes\">✅ 符合 → 登记系统 → 推送财务返款</div>\n <div class=\"flow-branch-no\">❌ 不符合 → 推送客服沟通</div>\n </div>\n </div>\n <div class=\"flow-sub\">\n <div class=\"flow-step success\">4. 收到付款凭证/礼品卡 → 推送用户</div>\n <div class=\"flow-arrow\">↓</div>\n <div class=\"flow-step\">5. 打标\"XX产品已回评\" → 推送测评卡片进行二次转化</div>\n </div>\n </div>\n\n <div class=\"flow-section\">\n <div class=\"flow-title\">B类用户参与过测评账号&lt;12 review</div>\n <div class=\"flow-steps\">\n <div class=\"flow-step\">1. 优先催评未回评的测评单</div>\n <div class=\"flow-arrow\">→</div>\n <div class=\"flow-step\">2. 好评提交后 → 根据计划推送测评卡片</div>\n <div class=\"flow-arrow\">→</div>\n <div class=\"flow-step success\">3. 完成后计算review数 → 若&lt;12继续循环若≥12晋升C类</div>\n </div>\n </div>\n\n <div class=\"flow-section\">\n <div class=\"flow-title\">C类用户长期测评人账号&gt;12 review</div>\n <div class=\"flow-steps\">\n <div class=\"flow-step success\">1. 自动推送免评计划产品</div>\n <div class=\"flow-arrow\">→</div>\n <div class=\"flow-step\">2. 打标\"XX产品免评资格\"</div>\n </div>\n </div>\n </div>\n </div>\n </section>\n\n <!-- 免评计划列表 -->\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">📦 免评计划</h2>\n <div class=\"panel-note\">每日免评目标:${stats.totalTarget} | 已完成:${stats.totalFilled} | 剩余:${stats.totalTarget - stats.totalFilled}</div>\n </div>\n <button class=\"btn btn-primary\">+ 新建计划</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"review-plan-grid\">\n ${records.reviewPlans.map(plan => `\n <div class=\"review-plan-card ${plan.urgent ? 'urgent' : ''}\">\n <div class=\"review-plan-header\">\n <span class=\"review-plan-type\">${tag(plan.type, plan.type === '紧急催评' ? 'red' : 'blue')}</span>\n <span class=\"review-plan-status\">${tag(plan.status, plan.status === '紧急' ? 'red' : 'green')}</span>\n </div>\n <div class=\"review-plan-product\">${plan.productName}</div>\n <div class=\"review-plan-site\">${plan.site}</div>\n <div class=\"review-plan-progress\">\n <div class=\"review-plan-progress-bar\">\n <div class=\"review-plan-progress-fill\" style=\"width: ${(plan.currentFilled / plan.dailyTarget * 100).toFixed(0)}%\"></div>\n </div>\n <div class=\"review-plan-progress-text\">${plan.currentFilled} / ${plan.dailyTarget} (${plan.remaining} 剩余)</div>\n </div>\n <div class=\"review-plan-note\">${plan.note}</div>\n </div>\n `).join('')}\n </div>\n </div>\n </section>\n\n <!-- 用户列表 -->\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">👥 测评用户池</h2>\n <div class=\"panel-note\">按用户类型筛选</div>\n </div>\n <div style=\"display:flex;gap:8px;\">\n <select style=\"padding:6px 12px;border:1px solid var(--border);border-radius:6px;\">\n <option value=\"\">全部类型</option>\n <option value=\"A\">A类未参与过</option>\n <option value=\"B\">B类参与过(&lt;12)</option>\n <option value=\"C\">C类长期测评人(&gt;12)</option>\n </select>\n <button class=\"btn\">导出数据</button>\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>用户ID</th>\n <th>用户类型</th>\n <th>Review数</th>\n <th>产品</th>\n <th>用户标签</th>\n <th>流程状态</th>\n <th>计划目标</th>\n <th>已推送</th>\n <th>负责人</th>\n <th>操作</th>\n </tr>\n </thead>\n <tbody>\n ${records.reviewUsers.map(item => `\n <tr>\n <td>${item.userId}</td>\n <td>${tag(item.categoryName, item.category === \"A\" ? \"blue\" : item.category === \"B\" ? \"amber\" : \"green\")}</td>\n <td>${item.reviewCount ? item.reviewCount : \"-\"}</td>\n <td>${item.product}${item.productName ? `<br><span style=\"font-size:11px;color:var(--muted)\">${item.productName}</span>` : ''}</td>\n <td>${item.blacklist ? tag('黑名单', 'red') + ' ' : ''}${item.tags.map(t => tag(t, t.includes(\"免评\") ? \"green\" : \"gray\")).join(' ')}</td>\n <td>${tag(item.flowStatus, item.flowStatus.includes(\"完成\") ? \"green\" : item.flowStatus.includes(\"紧急\") ? \"red\" : \"amber\")}</td>\n <td>${item.planTarget}</td>\n <td>${item.planSent}</td>\n <td>${item.owner}</td>\n <td>\n <button class=\"mini-btn\">详情</button>\n <button class=\"mini-btn primary\">推送</button>\n </td>\n </tr>\n `).join('')}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n // ==================== IM推送系统数据 ====================\n const pushStats = {\n delivered: { value: \"24,856\", trend: \"+12.3%\", up: true },\n opened: { value: \"18,420\", trend: \"+8.7%\", up: true },\n clicked: { value: \"4,892\", trend: \"+23.1%\", up: true },\n converted: { value: \"1,247\", trend: \"-2.1%\", up: false },\n ctr: { value: \"19.7%\", trend: \"+2.3pp\", up: true }\n };\n\n const pushListData = [\n {\n id: \"PS-20260506-001\",\n type: \"combo\",\n typeName: \"组合消息\",\n title: \"黑五预热活动 - 限时抢购\",\n desc: \"Banner + 商品卡片 + CTA按钮组合推送引导用户参与黑五预热活动\",\n channel: \"IM\",\n site: \"US\",\n audience: \"高价值用户\",\n sent: 5600,\n target: 8000,\n opened: 3240,\n clicked: 1180,\n ctr: \"21.1%\",\n status: \"执行中\",\n createTime: \"2026-05-06 09:30\"\n },\n {\n id: \"PS-20260505-008\",\n type: \"vote\",\n typeName: \"投票推送\",\n title: \"新品颜色偏好调研\",\n desc: \"收集用户对新品颜色的偏好,用于产品选品决策\",\n channel: \"IM\",\n site: \"UK\",\n audience: \"活跃用户\",\n sent: 2800,\n target: 3000,\n opened: 1960,\n clicked: 840,\n ctr: \"30.0%\",\n status: \"已完成\",\n createTime: \"2026-05-05 14:20\"\n },\n {\n id: \"PS-20260505-007\",\n type: \"video\",\n typeName: \"视频推送\",\n title: \"新品使用教程视频\",\n desc: \"发送新品功能讲解视频,提升用户对产品的了解\",\n channel: \"IM\",\n site: \"DE\",\n audience: \"新购买用户\",\n sent: 1200,\n target: 1500,\n opened: 960,\n clicked: 420,\n ctr: \"35.0%\",\n status: \"已完成\",\n createTime: \"2026-05-05 10:15\"\n },\n {\n id: \"PS-20260504-012\",\n type: \"product\",\n typeName: \"商品卡片\",\n title: \"爆款商品推荐\",\n desc: \"根据用户浏览历史推荐相关商品,提升转化\",\n channel: \"IM\",\n site: \"JP\",\n audience: \"浏览未购买\",\n sent: 8900,\n target: 10000,\n opened: 5340,\n clicked: 1602,\n ctr: \"18.0%\",\n status: \"已完成\",\n createTime: \"2026-05-04 16:45\"\n },\n {\n id: \"PS-20260504-005\",\n type: \"gif\",\n typeName: \"动图推送\",\n title: \"秒杀倒计时提醒\",\n desc: \"动态GIF展示秒杀倒计时营造紧迫感促进下单\",\n channel: \"IM\",\n site: \"US\",\n audience: \"秒杀关注用户\",\n sent: 3200,\n target: 5000,\n opened: 2240,\n clicked: 960,\n ctr: \"30.0%\",\n status: \"风险复核\",\n createTime: \"2026-05-04 11:00\"\n },\n {\n id: \"PS-20260503-009\",\n type: \"event\",\n typeName: \"活动报名\",\n title: \"会员日直播预约\",\n desc: \"邀请用户预约会员日直播活动,提升活动参与度\",\n channel: \"IM\",\n site: \"CA\",\n audience: \"会员用户\",\n sent: 4500,\n target: 5000,\n opened: 3150,\n clicked: 1350,\n ctr: \"30.0%\",\n status: \"已完成\",\n createTime: \"2026-05-03 15:30\"\n }\n ];\n\n const templatesData = [\n { id: \"T1\", name: \"限时秒杀模板\", desc: \"倒计时+商品卡片+CTA\", type: \"combo\", preview: \"⏱️\" },\n { id: \"T2\", name: \"新品发布模板\", desc: \"动图+商品详情+按钮\", type: \"combo\", preview: \"🆕\" },\n { id: \"T3\", name: \"活动报名模板\", desc: \"Banner+时间+报名按钮\", type: \"event\", preview: \"📅\" },\n { id: \"T4\", name: \"用户调研模板\", desc: \"投票+多选项\", type: \"vote\", preview: \"📊\" },\n { id: \"T5\", name: \"促销通知模板\", desc: \"图片+折扣信息+链接\", type: \"image\", preview: \"🏷️\" },\n { id: \"T6\", name: \"视频教程模板\", desc: \"视频封面+标题\", type: \"video\", preview: \"🎬\" }\n ];\n\n let pushModules = [];\n let selectedPreviewMode = 'mobile';\n\n function renderImPushSection() {\n return `\n ${renderPushStats()}\n ${renderPushList()}\n ${renderPushEditorModal()}\n ${renderTemplateModal()}\n `;\n }\n\n function renderPushStats() {\n return `\n <div class=\"push-center-stats\">\n <div class=\"push-stat-card\">\n <div class=\"push-stat-label\">送达人数</div>\n <div class=\"push-stat-value blue\">${pushStats.delivered.value}</div>\n <div class=\"push-stat-trend up\">${pushStats.delivered.trend} ↑</div>\n </div>\n <div class=\"push-stat-card\">\n <div class=\"push-stat-label\">打开人数</div>\n <div class=\"push-stat-value green\">${pushStats.opened.value}</div>\n <div class=\"push-stat-trend up\">${pushStats.opened.trend} ↑</div>\n </div>\n <div class=\"push-stat-card\">\n <div class=\"push-stat-label\">点击人数</div>\n <div class=\"push-stat-value\">${pushStats.clicked.value}</div>\n <div class=\"push-stat-trend up\">${pushStats.clicked.trend} ↑</div>\n </div>\n <div class=\"push-stat-card\">\n <div class=\"push-stat-label\">转化人数</div>\n <div class=\"push-stat-value amber\">${pushStats.converted.value}</div>\n <div class=\"push-stat-trend down\">${pushStats.converted.trend} ↓</div>\n </div>\n <div class=\"push-stat-card\">\n <div class=\"push-stat-label\">点击率 CTR</div>\n <div class=\"push-stat-value green\">${pushStats.ctr.value}</div>\n <div class=\"push-stat-trend up\">${pushStats.ctr.trend} ↑</div>\n </div>\n </div>\n `;\n }\n\n function renderPushList() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">推送记录</h2>\n <div class=\"panel-note\">IM推送系统支持11种消息形态点击「新建推送」创建</div>\n </div>\n <div style=\"display:flex;gap:8px;align-items:center;\">\n <button class=\"btn\" data-action=\"open-template-modal\">📋 从模板创建</button>\n <button class=\"btn btn-primary\" data-action=\"open-push-editor\">+ 新建推送</button>\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"push-list-tabs\">\n <button class=\"push-tab active\" data-filter=\"all\">全部 <span class=\"count\">${pushListData.length}</span></button>\n <button class=\"push-tab\" data-filter=\"执行中\">执行中 <span class=\"count\">1</span></button>\n <button class=\"push-tab\" data-filter=\"已完成\">已完成 <span class=\"count\">4</span></button>\n <button class=\"push-tab\" data-filter=\"风险复核\">风险复核 <span class=\"count\">1</span></button>\n <button class=\"push-tab\" data-filter=\"草稿\">草稿 <span class=\"count\">0</span></button>\n </div>\n <div class=\"push-list-content\">\n ${pushListData.map(item => `\n <div class=\"push-card\" data-push-id=\"${item.id}\">\n <div>\n <div class=\"push-card-header\">\n <span class=\"push-card-type ${item.type}\">${item.typeName}</span>\n <span class=\"push-card-id\">${item.id}</span>\n ${tag(item.status, item.status === '已完成' ? 'green' : item.status === '执行中' ? 'blue' : item.status === '风险复核' ? 'amber' : 'gray')}\n </div>\n <div class=\"push-card-title\">${item.title}</div>\n <div class=\"push-card-desc\">${item.desc}</div>\n <div class=\"push-card-meta\">\n <span>📍 ${item.site}</span>\n <span>👥 ${item.audience}</span>\n <span>📅 ${item.createTime}</span>\n <span>🎯 目标 ${item.target ? item.target.toLocaleString() : '-'}</span>\n <span>📤 已发送 ${item.sent.toLocaleString()}${item.target ? ` / 完成 ${(item.sent / item.target * 100).toFixed(0)}%` : ''}</span>\n </div>\n <div class=\"push-card-stats\">\n <div class=\"push-card-stat\">\n <div class=\"push-card-stat-val\">${(item.opened / item.sent * 100).toFixed(1)}%</div>\n <div class=\"push-card-stat-label\">打开率</div>\n </div>\n <div class=\"push-card-stat\">\n <div class=\"push-card-stat-val\">${item.ctr}</div>\n <div class=\"push-card-stat-label\">点击率</div>\n </div>\n <div class=\"push-card-stat\">\n <div class=\"push-card-stat-val\">${item.clicked.toLocaleString()}</div>\n <div class=\"push-card-stat-label\">点击数</div>\n </div>\n </div>\n </div>\n <div class=\"push-card-actions\">\n <button class=\"btn\" style=\"padding:4px 10px;font-size:11px;\">编辑</button>\n <button class=\"btn\" style=\"padding:4px 10px;font-size:11px;\">复制</button>\n <button class=\"btn\" style=\"padding:4px 10px;font-size:11px;\">数据</button>\n ${item.status === '草稿' ? '<button class=\"btn\" style=\"padding:4px 10px;font-size:11px;background:var(--green);color:#fff;\">发布</button>' : ''}\n </div>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function renderPushEditorModal() {\n return `\n <div class=\"push-editor-modal\" id=\"pushEditorModal\">\n <div class=\"push-editor\">\n <div class=\"push-editor-head\">\n <div class=\"push-editor-title\">📤 新建 IM 推送</div>\n <button class=\"push-editor-close\" data-action=\"close-push-editor\">×</button>\n </div>\n <div class=\"push-editor-body\">\n <!-- 组件面板 -->\n <div class=\"push-components\">\n <div class=\"push-components-title\">📦 内容组件</div>\n \n <div class=\"push-component-group\">\n <div class=\"push-component-group-title\">基础组件</div>\n <div class=\"push-component-list\">\n <div class=\"push-component-item\" data-component=\"text\">\n <div class=\"push-component-icon text\">📝</div>\n <div class=\"push-component-name\">文本</div>\n </div>\n <div class=\"push-component-item\" data-component=\"image\">\n <div class=\"push-component-icon image\">🖼️</div>\n <div class=\"push-component-name\">图片</div>\n </div>\n <div class=\"push-component-item\" data-component=\"gif\">\n <div class=\"push-component-icon gif\">🎞️</div>\n <div class=\"push-component-name\">动图</div>\n </div>\n <div class=\"push-component-item\" data-component=\"video\">\n <div class=\"push-component-icon video\">🎬</div>\n <div class=\"push-component-name\">视频</div>\n </div>\n </div>\n </div>\n \n <div class=\"push-component-group\">\n <div class=\"push-component-group-title\">高级组件</div>\n <div class=\"push-component-list\">\n <div class=\"push-component-item\" data-component=\"vote\">\n <div class=\"push-component-icon vote\">📊</div>\n <div class=\"push-component-name\">投票</div>\n </div>\n <div class=\"push-component-item\" data-component=\"product\">\n <div class=\"push-component-icon product\">🏷️</div>\n <div class=\"push-component-name\">商品卡片</div>\n </div>\n <div class=\"push-component-item\" data-component=\"event\">\n <div class=\"push-component-icon event\">📅</div>\n <div class=\"push-component-name\">活动报名</div>\n </div>\n <div class=\"push-component-item\" data-component=\"rich\">\n <div class=\"push-component-icon rich\">📋</div>\n <div class=\"push-component-name\">富文本</div>\n </div>\n </div>\n </div>\n \n <div class=\"push-component-group\">\n <div class=\"push-component-group-title\">营销组件</div>\n <div class=\"push-component-list\">\n <div class=\"push-component-item\" data-component=\"multi\">\n <div class=\"push-component-icon multi\">🔘</div>\n <div class=\"push-component-name\">多按钮</div>\n </div>\n <div class=\"push-component-item\" data-component=\"combo\">\n <div class=\"push-component-icon combo\">🎯</div>\n <div class=\"push-component-name\">组合消息</div>\n </div>\n </div>\n </div>\n </div>\n \n <!-- 内容编辑区 -->\n <div class=\"push-content-area\">\n <div class=\"push-form-config\">\n <div class=\"push-form-field\">\n <label class=\"push-form-label\">推送名称 *</label>\n <input type=\"text\" id=\"pushName\" placeholder=\"内部识别名称\">\n </div>\n <div class=\"push-form-field\">\n <label class=\"push-form-label\">关联计划</label>\n <select id=\"pushPlan\" onchange=\"updateTargetFromPlan()\">\n <option value=\"\">-- 不关联计划 --</option>\n ${records.plans.map(p => `<option value=\"${p.id}\" data-target=\"${p.target}\" data-site=\"${p.site}\" data-channel=\"${p.channelMix}\">${p.id} - ${p.type}</option>`).join('')}\n </select>\n </div>\n <div class=\"push-form-field\">\n <label class=\"push-form-label\">目标推送量 *</label>\n <input type=\"number\" id=\"pushTarget\" placeholder=\"输入目标推送人数\" min=\"1\">\n </div>\n <div class=\"push-form-field\">\n <label class=\"push-form-label\">推送渠道 *</label>\n <select id=\"pushChannel\">\n <option value=\"im\">IM 推送</option>\n <option value=\"edm\">EDM 邮件</option>\n <option value=\"app\">App Push</option>\n </select>\n </div>\n <div class=\"push-form-field\">\n <label class=\"push-form-label\">站点 *</label>\n <select id=\"pushSite\">\n <option value=\"US\">US</option>\n <option value=\"UK\">UK</option>\n <option value=\"DE\">DE</option>\n <option value=\"JP\">JP</option>\n <option value=\"CA\">CA</option>\n </select>\n </div>\n <div class=\"push-form-field\">\n <label class=\"push-form-label\">优先级</label>\n <select id=\"pushPriority\">\n <option value=\"high\">高</option>\n <option value=\"medium\" selected>中</option>\n <option value=\"low\">低</option>\n </select>\n </div>\n </div>\n \n <div class=\"push-canvas\" id=\"pushCanvas\">\n <div class=\"push-canvas-empty\" id=\"pushCanvasEmpty\">\n <div class=\"push-canvas-empty-icon\">📭</div>\n <div>从左侧拖拽或点击组件添加内容</div>\n <div style=\"font-size:11px;margin-top:4px;color:var(--muted);\">支持11种消息形态自由组合</div>\n </div>\n <div class=\"push-modules\" id=\"pushModules\"></div>\n </div>\n </div>\n \n <!-- 预览区 -->\n <div class=\"push-preview\">\n <div class=\"push-preview-head\">\n <div class=\"push-preview-title\">预览</div>\n <div class=\"push-preview-tabs\">\n <button class=\"push-preview-tab ${selectedPreviewMode === 'mobile' ? 'active' : ''}\" data-preview=\"mobile\">📱</button>\n <button class=\"push-preview-tab ${selectedPreviewMode === 'desktop' ? 'active' : ''}\" data-preview=\"desktop\">💻</button>\n <button class=\"push-preview-tab\" data-preview=\"dark\">🌙</button>\n </div>\n </div>\n <div class=\"push-preview-body\" id=\"pushPreviewBody\">\n ${renderPreview('mobile')}\n </div>\n </div>\n </div>\n \n <div class=\"push-editor-foot\">\n <div class=\"push-editor-foot-left\">\n <button class=\"push-save-template\" data-action=\"save-template\">\n 💾 保存为模板\n </button>\n <label style=\"display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);\">\n <input type=\"checkbox\" id=\"pushImmediate\" style=\"width:14px;height:14px;\">\n 立即发送\n </label>\n </div>\n <div class=\"push-editor-foot-right\">\n <button class=\"btn-push-draft\" data-action=\"save-draft\">保存草稿</button>\n <button class=\"btn-push-send\" data-action=\"send-push\">发送推送</button>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n function renderPreview(mode) {\n if (mode === 'mobile') {\n return `\n <div class=\"push-preview-phone\">\n <div class=\"push-preview-phone-screen\">\n <div class=\"push-preview-phone-header\">\n <div class=\"push-preview-phone-avatar\">牌</div>\n <div>\n <div class=\"push-preview-phone-name\">品牌官方</div>\n <div class=\"push-preview-phone-status\">在线</div>\n </div>\n </div>\n <div class=\"push-preview-phone-msgs\" id=\"previewMessages\">\n <div class=\"push-preview-phone-msg push-preview-phone-msg-other\">\n 您好!我们有新品发布活动,邀请您参与 👋\n </div>\n ${pushModules.length === 0 ? `\n <div class=\"push-preview-phone-msg push-preview-phone-msg-other\" style=\"font-style:italic;opacity:0.6;\">\n 预览区域 - 添加组件后显示推送内容\n </div>\n ` : ''}\n ${renderPreviewModules()}\n </div>\n <div class=\"push-preview-phone-input\">\n <input type=\"text\" placeholder=\"输入消息...\">\n <button>➤</button>\n </div>\n </div>\n </div>\n `;\n } else if (mode === 'desktop') {\n return `\n <div class=\"push-preview-desktop\">\n <div style=\"padding:10px 0;font-size:11px;color:var(--muted);\">桌面端预览</div>\n ${renderDesktopPreview()}\n </div>\n `;\n } else if (mode === 'dark') {\n return `\n <div class=\"push-preview-phone dark\">\n <div class=\"push-preview-phone-screen\">\n <div class=\"push-preview-phone-header\">\n <div class=\"push-preview-phone-avatar\">牌</div>\n <div>\n <div class=\"push-preview-phone-name\">品牌官方</div>\n <div class=\"push-preview-phone-status\" style=\"color:#9ca3af;\">在线</div>\n </div>\n </div>\n <div class=\"push-preview-phone-msgs\">\n <div class=\"push-preview-phone-msg push-preview-phone-msg-other\">\n 您好!我们有新品发布活动,邀请您参与 👋\n </div>\n ${renderPreviewModules()}\n </div>\n <div class=\"push-preview-phone-input\">\n <input type=\"text\" placeholder=\"输入消息...\" style=\"background:#2d2d44;border-color:#4a4a6a;color:#fff;\">\n <button>➤</button>\n </div>\n </div>\n </div>\n `;\n }\n }\n\n function renderPreviewModules() {\n return pushModules.map((mod, idx) => {\n switch(mod.type) {\n case 'text':\n return `<div class=\"push-preview-phone-msg push-preview-phone-msg-other\">${mod.content || '文本内容...'}</div>`;\n case 'image':\n return `\n <div class=\"push-preview-phone-card\" style=\"margin:4px 0;\">\n <div class=\"push-preview-phone-card-img\">🖼️</div>\n <div class=\"push-preview-phone-card-body\">\n <div class=\"push-preview-phone-card-title\">${mod.title || '图片标题'}</div>\n <div class=\"push-preview-phone-card-desc\">${mod.desc || '点击查看详情'}</div>\n </div>\n </div>\n `;\n case 'gif':\n return `\n <div class=\"push-preview-phone-card\" style=\"margin:4px 0;\">\n <div class=\"push-preview-phone-card-img\" style=\"height:150px;background:linear-gradient(135deg,#fef3c7,#fde68a);\">🎞️ 动图预览</div>\n </div>\n `;\n case 'video':\n return `\n <div class=\"push-preview-phone-card\" style=\"margin:4px 0;\">\n <div class=\"push-preview-phone-card-img\" style=\"height:150px;background:linear-gradient(135deg,#1a1a2e,#16213e);display:flex;align-items:center;justify-content:center;color:#fff;font-size:40px;\">▶️</div>\n <div class=\"push-preview-phone-card-body\">\n <div class=\"push-preview-phone-card-title\">${mod.title || '视频标题'}</div>\n </div>\n </div>\n `;\n case 'vote':\n return `\n <div class=\"push-preview-phone-vote\">\n <div class=\"push-preview-phone-vote-title\">${mod.title || '投票标题'}</div>\n ${(mod.options || ['选项 A', '选项 B', '选项 C']).slice(0, 4).map(opt => `\n <div class=\"push-preview-phone-vote-opt\">\n <div class=\"push-preview-phone-vote-radio\"></div>\n ${opt}\n </div>\n `).join('')}\n </div>\n `;\n case 'product':\n return `\n <div class=\"push-preview-phone-card\" style=\"margin:4px 0;\">\n <div class=\"push-preview-phone-card-img\">🏷️</div>\n <div class=\"push-preview-phone-card-body\">\n <div class=\"push-preview-phone-card-title\">${mod.title || '商品名称'}</div>\n <div class=\"push-preview-phone-card-price\">$${mod.price || '29.99'}</div>\n <button class=\"push-preview-phone-card-btn\">立即购买</button>\n </div>\n </div>\n `;\n case 'event':\n return `\n <div class=\"push-preview-phone-card\" style=\"margin:4px 0;\">\n <div class=\"push-preview-phone-card-body\">\n <div class=\"push-preview-phone-card-title\">📅 ${mod.title || '活动名称'}</div>\n <div class=\"push-preview-phone-card-desc\">⏰ ${mod.time || '2026-05-20 14:00'}</div>\n <button class=\"push-preview-phone-card-btn\">立即报名</button>\n </div>\n </div>\n `;\n case 'multi':\n return `\n <div style=\"display:flex;gap:6px;margin:4px 0;\">\n ${(mod.buttons || [{text:'按钮1',action:'url'},{text:'按钮2',action:'url'}]).map(btn => `\n <button style=\"flex:1;padding:8px;border:none;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;background:${btn.action === 'url' ? '#2563eb' : '#10b981'};color:#fff;\">${btn.text}</button>\n `).join('')}\n </div>\n `;\n case 'combo':\n return `\n <div class=\"push-preview-phone-card\" style=\"margin:4px 0;\">\n <div class=\"push-preview-phone-card-img\" style=\"height:100px;\">🎯 组合消息</div>\n <div class=\"push-preview-phone-card-body\">\n <div class=\"push-preview-phone-card-title\">${mod.title || '组合推送'}</div>\n <div class=\"push-preview-phone-card-desc\">多模块组合展示</div>\n </div>\n </div>\n `;\n case 'rich':\n return `\n <div class=\"push-preview-phone-msg push-preview-phone-msg-other\" style=\"white-space:pre-wrap;\">${mod.content || '富文本内容...'}</div>\n `;\n default:\n return '';\n }\n }).join('');\n }\n\n function renderDesktopPreview() {\n if (pushModules.length === 0) {\n return '<div style=\"text-align:center;color:var(--muted);padding:40px;\">添加组件后显示预览</div>';\n }\n return pushModules.map(mod => {\n if (mod.type === 'image' || mod.type === 'gif' || mod.type === 'video' || mod.type === 'product') {\n return `\n <div class=\"msg-card\">\n <div class=\"msg-card-img\">${mod.type === 'product' ? '🏷️' : mod.type === 'video' ? '🎬' : mod.type === 'gif' ? '🎞️' : '🖼️'}</div>\n <div class=\"msg-card-body\">\n <div class=\"msg-card-title\">${mod.title || '卡片标题'}</div>\n <div class=\"msg-card-desc\">${mod.desc || '卡片描述内容,点击可查看详情...'}</div>\n <div class=\"msg-card-action\">\n <button class=\"btn-primary\">查看详情</button>\n <button class=\"btn-secondary\">了解更多</button>\n </div>\n </div>\n </div>\n `;\n } else if (mod.type === 'vote') {\n return `\n <div class=\"msg-card\">\n <div class=\"msg-card-body\">\n <div class=\"msg-card-title\">📊 ${mod.title || '投票标题'}</div>\n <div class=\"msg-card-desc\">${(mod.options || ['选项 A', '选项 B']).map(o => `○ ${o}`).join('\\n')}</div>\n </div>\n </div>\n `;\n } else if (mod.type === 'multi') {\n return `\n <div class=\"msg-card\">\n <div class=\"msg-card-body\">\n <div class=\"msg-card-action\">\n ${(mod.buttons || []).map(btn => `<button class=\"btn-primary\" style=\"flex:1;\">${btn.text}</button>`).join('')}\n </div>\n </div>\n </div>\n `;\n } else {\n return `\n <div class=\"msg-card\">\n <div class=\"msg-card-body\">\n <div class=\"msg-card-desc\">${mod.content || mod.title || '内容...'}</div>\n </div>\n </div>\n `;\n }\n }).join('');\n }\n\n function renderTemplateModal() {\n return `\n <div class=\"template-modal\" id=\"templateModal\">\n <div class=\"template-modal-content\">\n <div class=\"template-modal-head\">\n <div class=\"template-modal-title\">📋 选择推送模板</div>\n <button class=\"push-editor-close\" data-action=\"close-template-modal\">×</button>\n </div>\n <div class=\"template-grid\">\n ${templatesData.map(tpl => `\n <div class=\"template-card\" data-template-id=\"${tpl.id}\">\n <div class=\"template-card-preview\">${tpl.preview}</div>\n <div class=\"template-card-info\">\n <div class=\"template-card-name\">${tpl.name}</div>\n <div class=\"template-card-desc\">${tpl.desc}</div>\n <span class=\"template-card-type\">${tpl.type}</span>\n </div>\n </div>\n `).join('')}\n </div>\n </div>\n </div>\n `;\n }\n\n function addPushModule(type) {\n const moduleId = 'mod_' + Date.now();\n let newModule = { id: moduleId, type: type };\n \n // 设置默认内容\n switch(type) {\n case 'text':\n newModule.content = '';\n break;\n case 'image':\n newModule.title = '图片标题';\n newModule.desc = '点击查看详情';\n break;\n case 'gif':\n newModule.title = '动图标题';\n break;\n case 'video':\n newModule.title = '视频标题';\n newModule.desc = '视频描述';\n break;\n case 'vote':\n newModule.title = '投票标题';\n newModule.desc = '投票描述(选填)';\n newModule.options = ['选项 A', '选项 B', '选项 C'];\n newModule.multiSelect = false;\n break;\n case 'product':\n newModule.title = '商品名称';\n newModule.price = '29.99';\n newModule.desc = '商品描述';\n break;\n case 'event':\n newModule.title = '活动名称';\n newModule.time = '2026-05-20 14:00';\n newModule.limit = 100;\n break;\n case 'rich':\n newModule.content = '富文本内容...\\n支持换行、加粗等格式';\n break;\n case 'multi':\n newModule.buttons = [\n { text: '按钮1', action: 'url' },\n { text: '按钮2', action: 'deep_link' }\n ];\n break;\n case 'combo':\n newModule.title = '组合消息标题';\n newModule.desc = '组合消息描述';\n break;\n }\n \n pushModules.push(newModule);\n renderModulesAndPreview();\n }\n\n function removePushModule(id) {\n pushModules = pushModules.filter(m => m.id !== id);\n renderModulesAndPreview();\n }\n\n function renderModulesAndPreview() {\n const canvasEmpty = document.getElementById('pushCanvasEmpty');\n const modulesContainer = document.getElementById('pushModules');\n const previewBody = document.getElementById('pushPreviewBody');\n \n if (canvasEmpty) {\n canvasEmpty.style.display = pushModules.length === 0 ? 'flex' : 'none';\n }\n \n if (modulesContainer) {\n modulesContainer.innerHTML = pushModules.map((mod, idx) => renderModuleItem(mod, idx)).join('');\n }\n \n if (previewBody) {\n previewBody.innerHTML = renderPreview(selectedPreviewMode);\n }\n }\n\n function renderModuleItem(mod, idx) {\n const typeNames = {\n text: '文本', image: '图片', gif: '动图', video: '视频',\n vote: '投票', product: '商品卡片', event: '活动报名',\n rich: '富文本', multi: '多按钮', combo: '组合消息'\n };\n \n let configHtml = '';\n switch(mod.type) {\n case 'text':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">文本内容</span>\n <textarea placeholder=\"输入文本内容...\" data-field=\"content\" data-module=\"${mod.id}\" rows=\"3\">${mod.content || ''}</textarea>\n </div>\n </div>\n `;\n break;\n case 'image':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">图片</span>\n <input type=\"text\" placeholder=\"上传图片或输入URL\" data-field=\"image\" data-module=\"${mod.id}\" value=\"${mod.image || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">标题</span>\n <input type=\"text\" placeholder=\"卡片标题\" data-field=\"title\" data-module=\"${mod.id}\" value=\"${mod.title || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">描述</span>\n <input type=\"text\" placeholder=\"卡片描述\" data-field=\"desc\" data-module=\"${mod.id}\" value=\"${mod.desc || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">跳转链接</span>\n <input type=\"text\" placeholder=\"https://...\" data-field=\"url\" data-module=\"${mod.id}\" value=\"${mod.url || ''}\">\n </div>\n </div>\n `;\n break;\n case 'gif':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">GIF文件</span>\n <input type=\"text\" placeholder=\"上传GIF文件\" data-field=\"file\" data-module=\"${mod.id}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">标题</span>\n <input type=\"text\" placeholder=\"动图标题\" data-field=\"title\" data-module=\"${mod.id}\" value=\"${mod.title || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">跳转链接</span>\n <input type=\"text\" placeholder=\"https://...\" data-field=\"url\" data-module=\"${mod.id}\">\n </div>\n </div>\n `;\n break;\n case 'video':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">视频文件</span>\n <input type=\"text\" placeholder=\"上传MP4视频\" data-field=\"video\" data-module=\"${mod.id}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">封面图</span>\n <input type=\"text\" placeholder=\"上传封面图\" data-field=\"cover\" data-module=\"${mod.id}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">标题</span>\n <input type=\"text\" placeholder=\"视频标题\" data-field=\"title\" data-module=\"${mod.id}\" value=\"${mod.title || ''}\">\n </div>\n </div>\n `;\n break;\n case 'vote':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">投票标题 *</span>\n <input type=\"text\" placeholder=\"投票问题\" data-field=\"title\" data-module=\"${mod.id}\" value=\"${mod.title || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">投票描述</span>\n <input type=\"text\" placeholder=\"投票说明\" data-field=\"desc\" data-module=\"${mod.id}\" value=\"${mod.desc || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">投票选项</span>\n <div class=\"push-vote-options\">\n ${(mod.options || ['选项 A', '选项 B']).map((opt, oIdx) => `\n <div class=\"push-vote-option\" data-option-idx=\"${oIdx}\" data-module=\"${mod.id}\">\n <input type=\"text\" value=\"${opt}\" data-field=\"option\" data-option-idx=\"${oIdx}\" data-module=\"${mod.id}\">\n <button class=\"remove-btn\" data-action=\"remove-option\" data-module=\"${mod.id}\" data-option-idx=\"${oIdx}\">×</button>\n </div>\n `).join('')}\n <button class=\"push-vote-add\" data-action=\"add-option\" data-module=\"${mod.id}\">+ 添加选项</button>\n </div>\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">投票设置</span>\n <select data-field=\"multiSelect\" data-module=\"${mod.id}\">\n <option value=\"false\" ${!mod.multiSelect ? 'selected' : ''}>单选</option>\n <option value=\"true\" ${mod.multiSelect ? 'selected' : ''}>多选</option>\n </select>\n </div>\n </div>\n `;\n break;\n case 'product':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">商品图片</span>\n <input type=\"text\" placeholder=\"上传商品图片\" data-field=\"image\" data-module=\"${mod.id}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">商品标题 *</span>\n <input type=\"text\" placeholder=\"商品名称\" data-field=\"title\" data-module=\"${mod.id}\" value=\"${mod.title || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">商品价格</span>\n <input type=\"text\" placeholder=\"29.99\" data-field=\"price\" data-module=\"${mod.id}\" value=\"${mod.price || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">跳转链接</span>\n <input type=\"text\" placeholder=\"https://...\" data-field=\"url\" data-module=\"${mod.id}\">\n </div>\n </div>\n `;\n break;\n case 'event':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">活动标题 *</span>\n <input type=\"text\" placeholder=\"活动名称\" data-field=\"title\" data-module=\"${mod.id}\" value=\"${mod.title || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">活动时间</span>\n <input type=\"text\" placeholder=\"2026-05-20 14:00\" data-field=\"time\" data-module=\"${mod.id}\" value=\"${mod.time || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">名额限制</span>\n <input type=\"text\" placeholder=\"100\" data-field=\"limit\" data-module=\"${mod.id}\" value=\"${mod.limit || ''}\">\n </div>\n </div>\n `;\n break;\n case 'rich':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">富文本内容</span>\n <textarea placeholder=\"支持多行文本...\" data-field=\"content\" data-module=\"${mod.id}\" rows=\"4\">${mod.content || ''}</textarea>\n </div>\n </div>\n `;\n break;\n case 'multi':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">按钮配置</span>\n <div class=\"push-buttons-config\">\n ${(mod.buttons || []).map((btn, bIdx) => `\n <div class=\"push-button-item\" data-btn-idx=\"${bIdx}\" data-module=\"${mod.id}\">\n <input type=\"text\" value=\"${btn.text}\" data-field=\"btnText\" data-btn-idx=\"${bIdx}\" data-module=\"${mod.id}\" placeholder=\"按钮文案\">\n <select data-field=\"btnAction\" data-btn-idx=\"${bIdx}\" data-module=\"${mod.id}\">\n <option value=\"url\" ${btn.action === 'url' ? 'selected' : ''}>跳转链接</option>\n <option value=\"deep_link\" ${btn.action === 'deep_link' ? 'selected' : ''}>Deep Link</option>\n </select>\n <button class=\"remove-btn\" data-action=\"remove-button\" data-module=\"${mod.id}\" data-btn-idx=\"${bIdx}\">×</button>\n </div>\n `).join('')}\n <button class=\"push-vote-add\" data-action=\"add-button\" data-module=\"${mod.id}\">+ 添加按钮</button>\n </div>\n </div>\n </div>\n `;\n break;\n case 'combo':\n configHtml = `\n <div class=\"push-module-config\">\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">组合标题</span>\n <input type=\"text\" placeholder=\"组合消息标题\" data-field=\"title\" data-module=\"${mod.id}\" value=\"${mod.title || ''}\">\n </div>\n <div class=\"push-module-config-row\">\n <span class=\"push-module-config-label\">组合描述</span>\n <input type=\"text\" placeholder=\"组合消息描述\" data-field=\"desc\" data-module=\"${mod.id}\" value=\"${mod.desc || ''}\">\n </div>\n </div>\n `;\n break;\n }\n \n return `\n <div class=\"push-module\" data-module-id=\"${mod.id}\" draggable=\"true\">\n <div class=\"push-module-head\">\n <div class=\"push-module-title\">\n <span>⋮⋮</span>\n <span class=\"push-module-type-tag ${mod.type}\">${typeNames[mod.type] || mod.type}</span>\n <span>组件 ${idx + 1}</span>\n </div>\n <div class=\"push-module-actions\">\n <button class=\"push-module-btn\" data-action=\"move-up\" data-module=\"${mod.id}\">↑</button>\n <button class=\"push-module-btn\" data-action=\"move-down\" data-module=\"${mod.id}\">↓</button>\n <button class=\"push-module-btn delete\" data-action=\"remove-module\" data-module=\"${mod.id}\">×</button>\n </div>\n </div>\n <div class=\"push-module-body\">\n ${configHtml}\n </div>\n </div>\n `;\n }\n\n // 根据选择的关联计划自动更新目标推送量\n function updateTargetFromPlan() {\n const planSelect = document.getElementById('pushPlan');\n const targetInput = document.getElementById('pushTarget');\n const siteSelect = document.getElementById('pushSite');\n const selectedOption = planSelect.options[planSelect.selectedIndex];\n \n if (selectedOption && selectedOption.value) {\n const target = selectedOption.dataset.target;\n const site = selectedOption.dataset.site;\n \n targetInput.value = target || '';\n \n // 如果计划中有站点信息,也同步更新\n if (site) {\n const sites = site.split('/');\n if (sites.length === 1) {\n // 尝试匹配站点\n const matchSite = ['US', 'UK', 'DE', 'JP', 'CA'].find(s => site.includes(s));\n if (matchSite) {\n siteSelect.value = matchSite;\n }\n }\n }\n }\n }\n\n function initPushEditorEvents() {\n // 打开推送编辑器\n document.querySelectorAll('[data-action=\"open-push-editor\"]').forEach(btn => {\n btn.addEventListener('click', () => {\n pushModules = [];\n document.getElementById('pushEditorModal').classList.add('active');\n renderModulesAndPreview();\n });\n });\n \n // 关闭推送编辑器\n document.querySelectorAll('[data-action=\"close-push-editor\"]').forEach(btn => {\n btn.addEventListener('click', () => {\n document.getElementById('pushEditorModal').classList.remove('active');\n });\n });\n \n // 打开模板弹窗\n document.querySelectorAll('[data-action=\"open-template-modal\"]').forEach(btn => {\n btn.addEventListener('click', () => {\n document.getElementById('templateModal').classList.add('active');\n });\n });\n \n // 关闭模板弹窗\n document.querySelectorAll('[data-action=\"close-template-modal\"]').forEach(btn => {\n btn.addEventListener('click', () => {\n document.getElementById('templateModal').classList.remove('active');\n });\n });\n \n // 添加组件\n document.querySelectorAll('.push-component-item').forEach(item => {\n item.addEventListener('click', () => {\n const type = item.dataset.component;\n addPushModule(type);\n });\n });\n \n // 预览模式切换\n document.querySelectorAll('.push-preview-tab').forEach(tab => {\n tab.addEventListener('click', () => {\n document.querySelectorAll('.push-preview-tab').forEach(t => t.classList.remove('active'));\n tab.classList.add('active');\n selectedPreviewMode = tab.dataset.preview;\n document.getElementById('pushPreviewBody').innerHTML = renderPreview(selectedPreviewMode);\n });\n });\n \n // 模块操作事件委托\n document.getElementById('pushModules')?.addEventListener('click', (e) => {\n const action = e.target.dataset.action;\n const moduleId = e.target.dataset.module;\n \n if (action === 'remove-module') {\n removePushModule(moduleId);\n } else if (action === 'move-up') {\n moveModule(moduleId, -1);\n } else if (action === 'move-down') {\n moveModule(moduleId, 1);\n } else if (action === 'add-option') {\n addVoteOption(moduleId);\n } else if (action === 'remove-option') {\n removeVoteOption(moduleId, parseInt(e.target.dataset.optionIdx));\n } else if (action === 'add-button') {\n addButton(moduleId);\n } else if (action === 'remove-button') {\n removeButton(moduleId, parseInt(e.target.dataset.btnIdx));\n }\n });\n \n // 字段更新事件委托\n document.getElementById('pushModules')?.addEventListener('input', (e) => {\n const field = e.target.dataset.field;\n const moduleId = e.target.dataset.module;\n const value = e.target.value;\n \n updateModuleField(moduleId, field, value, e.target);\n });\n \n document.getElementById('pushModules')?.addEventListener('change', (e) => {\n const field = e.target.dataset.field;\n const moduleId = e.target.dataset.module;\n const value = e.target.value;\n \n if (field === 'option') {\n const optIdx = parseInt(e.target.dataset.optionIdx);\n updateModuleOption(moduleId, optIdx, value);\n } else if (field === 'btnText' || field === 'btnAction') {\n const btnIdx = parseInt(e.target.dataset.btnIdx);\n updateModuleButton(moduleId, btnIdx, field, value);\n } else {\n updateModuleField(moduleId, field, value, e.target);\n }\n });\n \n // 保存模板\n document.querySelectorAll('[data-action=\"save-template\"]').forEach(btn => {\n btn.addEventListener('click', () => {\n alert('模板保存成功!');\n });\n });\n \n // 保存草稿\n document.querySelectorAll('[data-action=\"save-draft\"]').forEach(btn => {\n btn.addEventListener('click', () => {\n alert('草稿保存成功!');\n document.getElementById('pushEditorModal').classList.remove('active');\n });\n });\n \n // 发送推送\n document.querySelectorAll('[data-action=\"send-push\"]').forEach(btn => {\n btn.addEventListener('click', () => {\n if (pushModules.length === 0) {\n alert('请先添加推送内容!');\n return;\n }\n const name = document.getElementById('pushName')?.value;\n if (!name) {\n alert('请输入推送名称!');\n return;\n }\n alert(`推送「${name}」已提交发送!`);\n document.getElementById('pushEditorModal').classList.remove('active');\n });\n });\n }\n\n function moveModule(moduleId, direction) {\n const idx = pushModules.findIndex(m => m.id === moduleId);\n const newIdx = idx + direction;\n if (newIdx >= 0 && newIdx < pushModules.length) {\n const temp = pushModules[idx];\n pushModules[idx] = pushModules[newIdx];\n pushModules[newIdx] = temp;\n renderModulesAndPreview();\n }\n }\n\n function addVoteOption(moduleId) {\n const mod = pushModules.find(m => m.id === moduleId);\n if (mod && mod.options.length < 10) {\n mod.options.push(`选项 ${String.fromCharCode(65 + mod.options.length)}`);\n renderModulesAndPreview();\n }\n }\n\n function removeVoteOption(moduleId, optIdx) {\n const mod = pushModules.find(m => m.id === moduleId);\n if (mod && mod.options.length > 2) {\n mod.options.splice(optIdx, 1);\n renderModulesAndPreview();\n }\n }\n\n function addButton(moduleId) {\n const mod = pushModules.find(m => m.id === moduleId);\n if (mod && mod.buttons.length < 3) {\n mod.buttons.push({ text: `按钮${mod.buttons.length + 1}`, action: 'url' });\n renderModulesAndPreview();\n }\n }\n\n function removeButton(moduleId, btnIdx) {\n const mod = pushModules.find(m => m.id === moduleId);\n if (mod && mod.buttons.length > 1) {\n mod.buttons.splice(btnIdx, 1);\n renderModulesAndPreview();\n }\n }\n\n function updateModuleField(moduleId, field, value, element) {\n const mod = pushModules.find(m => m.id === moduleId);\n if (mod) {\n if (field === 'multiSelect') {\n mod[field] = value === 'true';\n } else {\n mod[field] = value;\n }\n // 实时更新预览\n if (field === 'content' || field === 'title' || field === 'desc' || field === 'price') {\n renderModulesAndPreview();\n }\n }\n }\n\n function updateModuleOption(moduleId, optIdx, value) {\n const mod = pushModules.find(m => m.id === moduleId);\n if (mod && mod.options[optIdx] !== undefined) {\n mod.options[optIdx] = value;\n renderModulesAndPreview();\n }\n }\n\n function updateModuleButton(moduleId, btnIdx, field, value) {\n const mod = pushModules.find(m => m.id === moduleId);\n if (mod && mod.buttons[btnIdx]) {\n if (field === 'btnText') {\n mod.buttons[btnIdx].text = value;\n } else if (field === 'btnAction') {\n mod.buttons[btnIdx].action = value;\n }\n renderModulesAndPreview();\n }\n }\n\n function renderLegacyPage() {\n const routeMeta = routes.find((item) => item.id === \"legacy\");\n return `\n ${renderHeader(routeMeta.label, pageNotes(\"legacy\"), listActions(\"legacy\"))}\n ${renderModuleInsights(\"legacy\")}\n <section class=\"legacy-workspace\">\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">现有页面与当前字段</h2>\n <div class=\"panel-note\">来自截图识别:先做字段盘点,不修改现有数据库结构。</div>\n </div>\n ${renderSourceNote()}\n </div>\n <div class=\"panel-body\">\n ${renderFilterBar(\"legacy\")}\n <div class=\"table-wrap\">\n <table>\n <thead><tr>${tableSchemas.legacy.map((col) => `<th>${col}</th>`).join(\"\")}</tr></thead>\n <tbody>\n ${records.legacyPages.map((item) => `\n <tr>\n ${rowToCells(\"legacy\", item).map((cell) => `<td>${cell}</td>`).join(\"\")}\n <td>${renderRowActions(\"legacy\", item)}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n\n <div class=\"legacy-split\">\n <section class=\"panel field-matrix\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">新增字段明细</h2>\n <div class=\"panel-note\">字段类型、来源、权限、脱敏、导出和黑名单同步先按 MVP 契约标注。</div>\n </div>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"field-table\">生成字段表</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>字段ID</th>\n <th>字段名</th>\n <th>中文名</th>\n <th>类型</th>\n <th>来源</th>\n <th>权限</th>\n <th>脱敏</th>\n <th>可导出</th>\n <th>黑名单同步</th>\n <th>是否模拟</th>\n </tr>\n </thead>\n <tbody>\n ${records.legacyFields.map((field) => `\n <tr>\n <td>${escapeHtml(field.id)}</td>\n <td>${escapeHtml(field.key)}</td>\n <td>${escapeHtml(field.cn)}</td>\n <td>${tag(field.type, \"gray\")}</td>\n <td>${escapeHtml(field.source)}</td>\n <td>${escapeHtml(field.permission)}</td>\n <td>${tag(field.masked, field.masked === \"否\" ? \"green\" : \"amber\")}</td>\n <td>${tag(field.exportable, field.exportable === \"是\" ? \"blue\" : \"gray\")}</td>\n <td>${tag(field.blacklistSync, field.blacklistSync === \"是\" ? \"red\" : field.blacklistSync === \"风险辅助\" ? \"amber\" : \"gray\")}</td>\n <td>${tag(field.simulated, field.simulated === \"是\" ? \"amber\" : field.simulated === \"待接口\" ? \"purple\" : \"green\")}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">关系图谱</h2>\n <div class=\"panel-note\">先记录查询价值,再决定接口与缓存方式。</div>\n </div>\n </div>\n <div class=\"panel-body relation-grid\">\n ${records.legacyRelations.map((relation) => `\n <div class=\"relation-card\">\n <div class=\"relation-title\">\n <span>${escapeHtml(relation.name)}</span>\n ${tag(relation.priority, relation.priority === \"P0\" ? \"red\" : \"amber\")}\n </div>\n <div class=\"relation-meta\">${escapeHtml(relation.entities)} · ${escapeHtml(relation.cardinality)}</div>\n <div class=\"relation-meta\">${escapeHtml(relation.queryValue)}</div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n </div>\n\n <section class=\"panel query-matrix\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">查询需求矩阵</h2>\n <div class=\"panel-note\">这些查询会反向决定 USER ERP 的筛选项、索引、异步汇总和导出权限。</div>\n </div>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"relationship-map\">导出现有关系</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>查询ID</th>\n <th>查询场景</th>\n <th>必要条件</th>\n <th>输出结果</th>\n <th>落点模块</th>\n <th>优先级</th>\n </tr>\n </thead>\n <tbody>\n ${records.legacyQueries.map((query) => `\n <tr>\n <td>${escapeHtml(query.id)}</td>\n <td>${escapeHtml(query.scene)}</td>\n <td>${escapeHtml(query.conditions)}</td>\n <td>${escapeHtml(query.output)}</td>\n <td>${escapeHtml(query.landing)}</td>\n <td>${tag(query.priority, query.priority === \"P0\" ? \"red\" : \"amber\")}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n </section>\n `;\n }\n\n function renderModuleInsights(route) {\n const insightMap = {\n requests: [\n [\"新增需求量\", \"日 18 / 周 74 / 月 236\", \"较上周 +12%,待审核入口需前置。\", \"blue\"],\n [\"需求满足量\", \"日 11 / 周 61\", \"已完成与已覆盖需求比例 82%。\", \"green\"],\n [\"关键产品绑定率\", \"S 级 68%\", \"通过数据库定期更新,低于 60% 标记风险。\", \"amber\"]\n ],\n listings: [\n [\"评分分层\", \"4.8+ 24 / 4.5+ 81\", \"4.2-4.5 有 11 个4.2 以下 2 个。\", \"red\"],\n [\"S/A 级跟进\", \"S 级 6 / A 级 14\", \"重点看责任人、问题和参与人员进度。\", \"blue\"],\n [\"跨站点 ASIN\", \"US/CA 3 个\", \"同一 ASIN 多站点联动,需按站点分别归因。\", \"purple\"]\n ],\n plans: [\n [\"需求覆盖率\", \"已覆盖 82%\", \"未覆盖 7 个,部分覆盖 5 个。\", \"amber\"],\n [\"资源分配\", \"IM 46% / EDM 29% / TEL 25%\", \"按计划策略与团队资源匹配。\", \"blue\"],\n [\"异常计划\", \"卡点 4\", \"审批积压、资源不足、风险复核未完成。\", \"red\"]\n ],\n push: [\n [\"渠道分配\", \"IM 46% / EDM 29% / TEL 18% / PR 7%\", \"与计划中心统一看资源和执行。\", \"blue\"],\n [\"反馈效果\", \"点击 453 / 回复 296\", \"按 H5、图片、文案和用户画像拆解。\", \"green\"],\n [\"优化历史\", \"本周 8 次\", \"记录暂停、放量、换图、换文案等策略变化。\", \"purple\"]\n ],\n support: [\n [\"平均响应\", \"12m\", \"日周月响应时长与 SLA 趋势。\", \"green\"],\n [\"出勤风险\", \"请假 2 / 缺席 1\", \"菲律宾团队关键岗位缺口需提示。\", \"amber\"],\n [\"人均产出\", \"16.4 单/日\", \"统计工单、IM、EDM、TEL 处理与评价产出。\", \"blue\"]\n ],\n risk: [\n [\"新增诈骗\", \"昨 5 / 周 18 / 月 64\", \"同步黑名单前需要审核与脱敏。\", \"red\"],\n [\"同步失败严重度\", \"失败 2 / 高危 1\", \"系统管理员只看影响范围与是否严重。\", \"amber\"],\n [\"规则提醒\", \"待复核 6\", \"自动提醒规则和审核风控风险。\", \"blue\"]\n ],\n data: [\n [\"订单同步\", \"10 分钟\", \"Amazon 与独立站订单同步状态。\", \"green\"],\n [\"周月预生成\", \"已排队 4\", \"复杂统计异步处理,减少页面卡顿。\", \"blue\"],\n [\"数据异常\", \"部分失败 1\", \"黑名单接口待确认,失败进入重试。\", \"amber\"]\n ],\n legacy: [\n [\"已识别页面\", \"5 个\", \"用户管理、公域/私域标签、产品标签、身份管理已进入 MVP 字段盘点。\", \"blue\"],\n [\"核心关系\", \"用户 / 标签 / 身份 / 产品 / 活动 / EDM\", \"用户是主实体,标签和身份是筛选与画像的关键维表。\", \"purple\"],\n [\"查询条件\", \"约 30 项\", \"用户管理筛选最密集,后续应拆成基础筛选、运营筛选和风险筛选。\", \"amber\"]\n ],\n reports: [\n [\"目标完成度\", \"76%\", \"系统管理员入口优先显示目标差距和影响原因。\", \"red\"],\n [\"问题总结\", \"9 条\", \"来源包括数据分析、OKR 总结、项目负责人提交。\", \"amber\"],\n [\"指定报表\", \"12 个\", \"支持日、周、月生成和下载。\", \"blue\"]\n ],\n system: [\n [\"账号管理\", \"新增 3 / 离职 1\", \"新建账号、停用账号、交接任务。\", \"blue\"],\n [\"授权变更\", \"待审 4\", \"导出、审批、敏感信息、黑名单同步独立授权。\", \"amber\"],\n [\"审计风险\", \"高风险 2\", \"查看敏感信息和导出操作需要记录原因。\", \"red\"]\n ]\n };\n const items = insightMap[route];\n if (!items) return \"\";\n return `\n <div class=\"module-charts\">\n ${items.map(([title, value, desc, tone]) => `\n <div class=\"chart-card\">\n <div class=\"chart-title\">${escapeHtml(title)} ${tag(state.period === \"day\" ? \"日\" : state.period === \"week\" ? \"周\" : \"月\", tone)}</div>\n <div class=\"insight-value\">${escapeHtml(value)}</div>\n <div class=\"insight-desc\">${escapeHtml(desc)}</div>\n <div class=\"mini-stat-row\">\n <span>趋势</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${tone === \"red\" ? \"78\" : tone === \"amber\" ? \"58\" : \"68\"}%; background:var(--${tone});\"></div></div>\n <span>${tone === \"red\" ? \"高\" : tone === \"amber\" ? \"注意\" : \"正常\"}</span>\n </div>\n </div>\n `).join(\"\")}\n </div>\n `;\n }\n\n function renderPendingStrip(text, route, tab) {\n return `\n <div class=\"pending-strip\">\n <strong>待处理入口</strong>\n <span>${escapeHtml(text)}</span>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">进入处理</button>\n </div>\n `;\n }\n\n function pageNotes(route) {\n const notes = {\n requests: \"承接需求提交与审核记录;测评需求由 Amazon 运营提交,飞书表单可同步进入 ERP。\",\n listings: \"按评分层级、S/A/B 等级、站点组合、责任人、问题和参与进度管理。\",\n plans: \"关注计划与需求匹配关系,确认需求后生成推广计划和紧急策略。\",\n push: \"与计划中心联动,管理 IM、EDM、TEL、PR/KOC/KOL、H5、素材、反馈和优化历史。\",\n support: \"处理工单沟通,同时关注日周月响应时长、工作时长、出勤、人均产出和菲律宾团队风险。\",\n risk: \"同步诈骗事件、黑名单状态、规则提醒与审计风险。\",\n data: \"展示订单、评价、用户、黑名单等同步状态,不作为数据仓库入口。\",\n legacy: \"对齐现有 JOYHUB ERP 用户、标签、身份页面,梳理字段、关系和查询需求。\",\n reports: \"指定报表生成、下载、上传补充记录和导出审计,支持日/周/月。\",\n system: \"处理系统授权、新建账号、离职管理、权限分配、审批流和审计日志。\"\n };\n return notes[route] || \"\";\n }\n\n function listActions(route) {\n const common = `<button class=\"btn\" data-action=\"open-modal\" data-modal=\"export\">导出</button>`;\n const map = {\n requests: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"create-request\">Amazon 提交测评需求</button><button class=\"btn\" data-route=\"requests\" data-tab=\"pending_review\">待审核入口</button>${common}`,\n listings: `<button class=\"btn warning\" data-action=\"open-modal\" data-modal=\"emergency\">创建紧急策略</button>${common}`,\n plans: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"generate-plan\">生成计划</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"approve\">批量审批</button>`,\n push: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"push-plan\">计划与推送分配</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"risk-review\">风险复核</button>`,\n support: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"assign\">分配工单</button>${common}`,\n risk: `<button class=\"btn danger\" data-action=\"open-modal\" data-modal=\"blacklist\">同步黑名单</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"risk-review\">规则复核</button>`,\n data: `<button class=\"btn\" data-action=\"open-modal\" data-modal=\"sync\">立即同步</button>`,\n legacy: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"field-table\">生成字段表</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"relationship-map\">导出现有关系</button>`,\n reports: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"export\">生成/下载报表</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"upload-report\">上传记录</button>`,\n system: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"new-account\">新建账号</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"offboarding\">离职管理</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"permission\">权限分配</button>`\n };\n return map[route] || common;\n }\n\n function renderFilterBar(route) {\n if (route === \"legacy\") {\n return `\n <div class=\"filter-bar\">\n <input placeholder=\"页面 / 字段 / 关系 / 查询条件\" value=\"${escapeHtml(state.keyword)}\" data-filter=\"keyword\" />\n <select><option>全部现有页面</option><option>用户管理</option><option>公域-用户标签</option><option>公域-产品标签</option><option>私域-用户标签</option><option>身份管理</option></select>\n <select><option>全部关系对象</option><option>用户</option><option>标签</option><option>身份</option><option>产品</option><option>活动</option><option>EDM</option><option>渠道</option></select>\n <select><option>全部风险</option><option>高</option><option>中</option><option>低</option></select>\n <select><option>全部来源</option><option>截图识别</option><option>待接口确认</option><option>待数据库确认</option></select>\n <button class=\"btn primary\" data-action=\"toast\" data-message=\"已按现有 ERP 页面、字段和关系执行模拟查询\">查询</button>\n </div>\n `;\n }\n return `\n <div class=\"filter-bar\">\n <input placeholder=\"关键词ID / ASIN / 负责人 / 用户摘要\" value=\"${escapeHtml(state.keyword)}\" data-filter=\"keyword\" />\n <input type=\"date\" value=\"${state.startDate}\" data-time=\"startDate\" />\n <input type=\"date\" value=\"${state.endDate}\" data-time=\"endDate\" />\n <select><option>全部站点</option><option>US</option><option>CA</option><option>US/CA</option><option>UK</option><option>DE</option><option>JP</option></select>\n <select><option>全部状态</option><option>待审批</option><option>执行中</option><option>风险复核</option><option>已完成</option></select>\n <select><option>全部风险</option><option>紧急</option><option>高</option><option>中</option><option>低</option></select>\n <select><option>全部负责人</option><option>张三</option><option>李四</option><option>王五</option></select>\n <button class=\"btn primary\" data-action=\"toast\" data-message=\"已按当前条件执行模拟查询\">查询</button>\n </div>\n `;\n }\n\n function renderRowActions(route, item) {\n const detailGroup = {\n requests: \"workItems\",\n listings: \"listings\",\n plans: \"plans\",\n push: \"pushes\",\n support: \"support\",\n risk: \"risks\",\n data: \"syncLogs\",\n legacy: \"legacyPages\",\n reports: \"reports\",\n system: \"system\"\n }[route];\n const primaryText = route === \"risk\" ? \"处理\" : route === \"plans\" ? \"审批\" : \"查看\";\n return `\n <button class=\"mini-btn primary\" data-detail=\"${detailGroup}\" data-id=\"${item.id}\">${primaryText}</button>\n <button class=\"mini-btn\" data-action=\"open-modal\" data-modal=\"${route === \"reports\" ? \"export\" : \"approve\"}\" data-target=\"${item.id}\">${route === \"reports\" ? \"导出\" : \"流转\"}</button>\n `;\n }\n\n function openDrawer(group, id) {\n const list = records[group] || [];\n const item = list.find((entry) => entry.id === id);\n if (!item) return;\n document.getElementById(\"drawerTitle\").textContent = `${id} 详情`;\n document.getElementById(\"drawerSubtitle\").textContent = `${DATA_SOURCE};敏感字段默认脱敏。`;\n document.getElementById(\"drawerBody\").innerHTML = `\n <div class=\"detail-grid\">\n ${Object.entries(item).map(([key, value]) => `\n <div class=\"detail-cell\">\n <div class=\"detail-label\">${escapeHtml(key)}</div>\n <div class=\"detail-value\">${escapeHtml(value)}</div>\n </div>\n `).join(\"\")}\n </div>\n <section class=\"panel\">\n <div class=\"panel-head\"><h3 class=\"panel-title\">状态流转记录</h3></div>\n <div class=\"panel-body timeline\">\n <div class=\"timeline-item\">2026-05-03 09:10 创建记录</div>\n <div class=\"timeline-item\">2026-05-03 09:40 自动规则提醒完成</div>\n <div class=\"timeline-item\">2026-05-03 10:20 等待当前负责人处理</div>\n </div>\n </section>\n <section class=\"panel\">\n <div class=\"panel-head\"><h3 class=\"panel-title\">脱敏与审计</h3></div>\n <div class=\"panel-body\">\n <div class=\"item-desc\">JOYHUB ID、邮箱、电话、设备号、IP、订单号等字段在 MVP 原型中仅展示脱敏摘要。点击“查看完整信息”会记录审计,本原型仅模拟弹窗。</div>\n </div>\n </section>\n `;\n document.getElementById(\"drawerFoot\").innerHTML = `\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"audit\">查看完整信息</button>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"assign\">分配</button>\n <button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"approve\">审批/确认</button>\n `;\n document.getElementById(\"drawerMask\").classList.add(\"open\");\n document.getElementById(\"drawer\").classList.add(\"open\");\n }\n\n function closeDrawer() {\n document.getElementById(\"drawerMask\").classList.remove(\"open\");\n document.getElementById(\"drawer\").classList.remove(\"open\");\n }\n\n function openModal(type, target = \"\") {\n const configs = {\n notice: [\"通知中心\", \"展示待办、审批退回、风险提醒与同步失败通知。\", \"标记已读\"],\n export: [\"导出确认\", \"仅主管和系统管理员可导出。导出字段默认脱敏,并写入审计日志。\", \"确认导出\"],\n assign: [\"任务分配\", \"选择下一个责任部门和负责人,支持设置截止时间。\", \"确认分配\"],\n approve: [\"审批/流转\", \"选择通过、退回、转交、升级或关闭,并填写审批意见。\", \"提交审批\"],\n \"create-request\": [\"Amazon 提交测评需求\", \"测评需求由 Amazon 运营提交客服、KOC/KOL、诈骗等其他需求由对应部门或飞书表单入口同步。\", \"提交审核\"],\n emergency: [\"紧急 Listing 策略\", \"用于接近 4.2 的 Listing需 Amazon 与用户运营共同确认。\", \"提交策略审批\"],\n \"generate-plan\": [\"自动生成计划\", \"根据 Listing 健康度、站点目标和用户画像生成计划草稿。\", \"生成草稿\"],\n \"push-plan\": [\"计划与推送分配\", \"按计划资源分配 IM、EDM、TEL、PR/KOC/KOL绑定 H5 页面、图片、文案实验和发送窗口。\", \"保存分配\"],\n \"risk-review\": [\"规则与风险复核\", \"复核推送风险、规则提醒、退订异常和客服升级。\", \"确认复核\"],\n blacklist: [\"同步黑名单\", \"确认诈骗事件后同步黑名单子系统,失败时进入重试队列。\", \"确认同步\"],\n sync: [\"立即同步\", \"触发订单、评价、黑名单或推送回执同步。本原型只模拟动作。\", \"开始同步\"],\n \"field-table\": [\"生成字段表\", \"根据现有 JOYHUB ERP 页面截图生成字段、类型、来源、权限、脱敏和是否进入 MVP 的字段表。\", \"生成字段表\"],\n \"relationship-map\": [\"导出现有关系\", \"导出用户、标签、身份、产品、活动、EDM、渠道之间的关系清单供接口和查询设计使用。\", \"导出关系\"],\n permission: [\"权限调整\", \"维护总监、负责人、组长、组员、客服、系统管理员等权限。\", \"保存权限\"],\n \"new-account\": [\"新建账号\", \"按部门、角色、站点、数据范围创建账号,并记录授权审批。\", \"创建账号\"],\n offboarding: [\"离职管理\", \"停用账号、交接任务、回收导出与敏感信息权限。\", \"确认离职处理\"],\n \"upload-report\": [\"上传报表记录\", \"上传人工复核附件、外部表单、补充报表或下载记录,进入报表审计。\", \"保存记录\"],\n audit: [\"敏感信息审计\", \"查看完整敏感信息需要填写原因,并记录审计日志。\", \"确认查看\"]\n };\n const [title, desc, submit] = configs[type] || configs.approve;\n document.getElementById(\"modalTitle\").textContent = target ? `${title} · ${target}` : title;\n document.getElementById(\"modalBody\").innerHTML = `\n <div class=\"item-desc\">${desc}</div>\n <div class=\"form-row\">\n <label>动作类型</label>\n <select>\n <option>通过 / 确认</option>\n <option>退回修改</option>\n <option>转交</option>\n <option>升级</option>\n <option>关闭</option>\n </select>\n </div>\n <div class=\"form-row\">\n <label>下一负责人</label>\n <select>\n <option>用户运营负责人</option>\n <option>Amazon 运营总监</option>\n <option>客服负责人</option>\n <option>风险负责人</option>\n <option>系统管理员</option>\n </select>\n </div>\n <div class=\"form-row\">\n <label>处理意见</label>\n <textarea placeholder=\"请输入审批意见、分配说明、风险确认或导出原因。\"></textarea>\n </div>\n ${renderSourceNote()}\n `;\n document.getElementById(\"modalFoot\").innerHTML = `\n <button class=\"btn\" data-action=\"close-modal\">取消</button>\n <button class=\"btn primary\" data-action=\"submit-modal\" data-message=\"${submit}成功,已写入模拟操作记录\">${submit}</button>\n `;\n document.getElementById(\"modalMask\").classList.add(\"open\");\n document.getElementById(\"modal\").classList.add(\"open\");\n }\n\n function closeModal() {\n document.getElementById(\"modalMask\").classList.remove(\"open\");\n document.getElementById(\"modal\").classList.remove(\"open\");\n }\n\n function showToast(message) {\n const toast = document.getElementById(\"toast\");\n const item = document.createElement(\"div\");\n item.className = \"toast-item\";\n item.textContent = message;\n toast.appendChild(item);\n window.setTimeout(() => item.remove(), 2600);\n }\n\n function render() {\n renderNav();\n const content = document.getElementById(\"content\");\n updateTopContext();\n if (state.route === \"dashboard\") {\n content.innerHTML = renderDashboard();\n } else {\n content.innerHTML = renderListPage(state.route);\n }\n }\n\n function updateTopContext() {\n const routeMeta = routes.find((item) => item.id === state.route);\n const title = document.getElementById(\"topPageTitle\");\n const subtitle = document.getElementById(\"topPageSubtitle\");\n if (title && routeMeta) title.textContent = routeMeta.label === \"工作台\" ? \"经营总览\" : routeMeta.label;\n if (subtitle) {\n const scopeText = {\n all: \"全部部门\",\n amazon: \"Amazon 运营\",\n user_ops: \"用户运营\",\n support: \"客服\"\n }[state.scope] || \"全部部门\";\n subtitle.textContent = `系统管理员(最高权限) · ${scopeText}`;\n }\n document.querySelectorAll(\".top-period button\").forEach((button) => {\n button.classList.toggle(\"active\", button.dataset.period === state.period);\n });\n }\n\n function bindEvents() {\n document.body.addEventListener(\"click\", (event) => {\n const target = event.target.closest(\"button\");\n if (!target) return;\n const route = target.dataset.route;\n if (route) {\n setRoute(route, target.dataset.tab || \"all\");\n return;\n }\n if (target.dataset.tab) {\n state.activeTab = target.dataset.tab;\n render();\n return;\n }\n if (target.dataset.detail) {\n openDrawer(target.dataset.detail, target.dataset.id);\n return;\n }\n const action = target.dataset.action;\n if (action === \"toggle-status\") {\n state.statusExpanded = !state.statusExpanded;\n render();\n showToast(state.statusExpanded ? \"核心看板已展开全部事项\" : \"核心看板已收起次要事项\");\n return;\n }\n if (action === \"priority-status\") {\n state.statusPriorityFirst = !state.statusPriorityFirst;\n render();\n showToast(state.statusPriorityFirst ? \"已按重要度优先排序\" : \"已恢复原始顺序\");\n return;\n }\n if (action === \"close-drawer\") closeDrawer();\n if (action === \"close-modal\") closeModal();\n if (action === \"open-modal\") openModal(target.dataset.modal, target.dataset.target);\n if (action === \"submit-modal\") {\n closeModal();\n showToast(target.dataset.message || \"操作成功\");\n }\n if (action === \"toast\") showToast(target.dataset.message || \"已执行\");\n });\n\n document.getElementById(\"drawerMask\").addEventListener(\"click\", closeDrawer);\n document.getElementById(\"modalMask\").addEventListener(\"click\", closeModal);\n document.getElementById(\"globalSearch\").addEventListener(\"input\", (event) => {\n state.keyword = event.target.value;\n });\n document.getElementById(\"scopeSelect\").addEventListener(\"change\", (event) => {\n state.scope = event.target.value;\n updateTopContext();\n showToast(`已切换数据范围:${event.target.options[event.target.selectedIndex].text}`);\n });\n document.body.addEventListener(\"change\", (event) => {\n const input = event.target.closest(\"[data-time]\");\n if (!input) return;\n const key = input.dataset.time;\n if (key === \"startDate\" || key === \"endDate\") {\n state[key] = input.value;\n showToast(`时间范围已更新:${state.startDate} 至 ${state.endDate}`);\n }\n });\n document.body.addEventListener(\"click\", (event) => {\n const target = event.target.closest(\"[data-period]\");\n if (!target) return;\n state.period = target.dataset.period;\n render();\n showToast(`已切换为${state.period === \"day\" ? \"日\" : state.period === \"week\" ? \"周\" : \"月\"}视角`);\n });\n\n // IM Push 事件处理\n document.body.addEventListener(\"click\", (event) => {\n const sendBtn = event.target.closest(\"#imPushSendBtn\");\n if (sendBtn) {\n const input = document.getElementById(\"imPushInput\");\n const text = input.value.trim();\n if (text) {\n const messagesEl = document.getElementById(\"imPushMessages\");\n const now = new Date();\n const timeStr = `${now.getHours()}:${String(now.getMinutes()).padStart(2, \"0\")}`;\n const newMsg = document.createElement(\"div\");\n newMsg.className = \"im-push-msg self\";\n newMsg.innerHTML = `\n <div class=\"im-push-msg-avatar\">我</div>\n <div>\n <div class=\"im-push-msg-bubble\">${text}</div>\n <div class=\"im-push-msg-time\">${timeStr}</div>\n </div>\n `;\n messagesEl.appendChild(newMsg);\n messagesEl.scrollTop = messagesEl.scrollHeight;\n input.value = \"\";\n showToast(\"IM 消息已发送\");\n }\n }\n });\n\n document.body.addEventListener(\"keydown\", (event) => {\n if (event.target.id === \"imPushInput\" && event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault();\n document.getElementById(\"imPushSendBtn\")?.click();\n }\n });\n\n window.addEventListener(\"hashchange\", readHash);\n }\n\n function readHash() {\n const hash = window.location.hash.replace(\"#\", \"\");\n if (!hash) return;\n const [route, tab] = hash.split(\":\");\n if (routes.some((item) => item.id === route)) {\n state.route = route;\n state.activeTab = tab || \"all\";\n render();\n }\n }\n\n bindEvents();\n readHash();\n render();\n \n // 推送编辑器事件需要在 render() 后初始化,因为 DOM 元素是 render 时创建的\n initPushEditorEvents();\n\n // ========== IM 消息系统 ==========\n const imData = {\n conversations: [\n {\n id: \"im-001\",\n name: \"张三\",\n avatar: \"张\",\n lastMsg: \"好的,测评计划已提交,请确认\",\n time: \"10:32\",\n unread: 2,\n online: true,\n messages: [\n { from: \"other\", text: \"你好Amazon 运营提交了一个测评需求\", time: \"10:28\" },\n { from: \"self\", text: \"收到,我来看看\", time: \"10:30\" },\n { from: \"other\", text: \"好的,测评计划已提交,请确认\", time: \"10:32\" }\n ]\n },\n {\n id: \"im-002\",\n name: \"李四\",\n avatar: \"李\",\n lastMsg: \"UK 站的风险已处理完毕\",\n time: \"09:15\",\n unread: 1,\n online: true,\n messages: [\n { from: \"other\", text: \"UK 站有个推送风险需要复核\", time: \"09:10\" },\n { from: \"self\", text: \"好的,我马上处理\", time: \"09:12\" },\n { from: \"other\", text: \"UK 站的风险已处理完毕\", time: \"09:15\" }\n ]\n },\n {\n id: \"im-003\",\n name: \"王五\",\n avatar: \"王\",\n lastMsg: \"黑名单同步状态已更新\",\n time: \"昨天\",\n unread: 0,\n online: false,\n messages: [\n { from: \"other\", text: \"黑名单同步状态已更新\", time: \"昨天\" }\n ]\n }\n ],\n notifications: [\n { id: \"n-001\", text: \"新测评需求提交ASIN B0TES001\", time: \"10:30\", read: false },\n { id: \"n-002\", text: \"EDM 推送任务已完成\", time: \"09:45\", read: false }\n ]\n };\n\n let currentImTab = \"chat\";\n let currentConversation = null;\n\n function openImPanel() {\n document.getElementById(\"imMask\").classList.add(\"open\");\n document.getElementById(\"imPanel\").classList.add(\"open\");\n renderImList();\n }\n\n function closeImPanel() {\n document.getElementById(\"imMask\").classList.remove(\"open\");\n document.getElementById(\"imPanel\").classList.remove(\"open\");\n document.getElementById(\"imList\").style.display = \"block\";\n document.getElementById(\"imChat\").classList.remove(\"active\");\n currentConversation = null;\n }\n\n function renderImList() {\n const listEl = document.getElementById(\"imList\");\n const chatEl = document.getElementById(\"imChat\");\n\n if (currentImTab === \"chat\") {\n listEl.style.display = \"block\";\n chatEl.classList.remove(\"active\");\n\n listEl.innerHTML = imData.conversations.map(conv => `\n <div class=\"im-item ${conv.unread > 0 ? 'unread' : ''}\" data-id=\"${conv.id}\">\n <div class=\"im-avatar-small ${conv.online ? '' : 'offline'}\">\n ${conv.avatar}\n <div class=\"online-dot\"></div>\n ${conv.unread > 0 ? `<span class=\"im-msg-badge\">${conv.unread}</span>` : \"\"}\n </div>\n <div class=\"im-info\">\n <div class=\"im-info-head\">\n <span class=\"im-name\">${conv.name}</span>\n <span class=\"im-time\">${conv.time}</span>\n </div>\n <div class=\"im-preview\">${conv.lastMsg}</div>\n </div>\n ${conv.unread > 0 ? `<div class=\"im-unread-count\"><strong>${conv.unread}</strong>条未读</div>` : \"\"}\n </div>\n `).join(\"\");\n\n listEl.querySelectorAll(\".im-item\").forEach(item => {\n item.addEventListener(\"click\", () => {\n const conv = imData.conversations.find(c => c.id === item.dataset.id);\n if (conv) openConversation(conv);\n });\n });\n } else {\n listEl.style.display = \"block\";\n chatEl.classList.remove(\"active\");\n\n listEl.innerHTML = imData.notifications.map(notif => `\n <div class=\"im-item ${notif.read ? '' : 'unread'}\">\n <div class=\"im-avatar-small offline\">\n 🔔\n </div>\n <div class=\"im-info\">\n <div class=\"im-info-head\">\n <span class=\"im-name\">系统通知</span>\n <span class=\"im-time\">${notif.time}</span>\n </div>\n <div class=\"im-preview\">${notif.text}</div>\n </div>\n </div>\n `).join(\"\");\n }\n }\n\n function openConversation(conv) {\n currentConversation = conv;\n const listEl = document.getElementById(\"imList\");\n const chatEl = document.getElementById(\"imChat\");\n\n listEl.style.display = \"none\";\n chatEl.classList.add(\"active\");\n\n document.getElementById(\"imChatAvatar\").textContent = conv.avatar;\n document.getElementById(\"imChatName\").textContent = conv.name;\n\n renderMessages();\n\n // 清空未读\n conv.unread = 0;\n updateImBadge();\n }\n\n function renderMessages() {\n if (!currentConversation) return;\n\n const messagesEl = document.getElementById(\"imMessages\");\n messagesEl.innerHTML = currentConversation.messages.map(msg => `\n <div class=\"im-msg ${msg.from}\">\n <div class=\"msg-avatar\">${msg.from === \"self\" ? \"我\" : currentConversation.avatar}</div>\n <div>\n <div class=\"msg-bubble\">${msg.text}</div>\n <div class=\"msg-time\">${msg.time}</div>\n </div>\n </div>\n `).join(\"\");\n\n messagesEl.scrollTop = messagesEl.scrollHeight;\n }\n\n function sendMessage() {\n const input = document.getElementById(\"imInput\");\n const text = input.value.trim();\n if (!text || !currentConversation) return;\n\n const now = new Date();\n const timeStr = `${now.getHours()}:${String(now.getMinutes()).padStart(2, \"0\")}`;\n\n currentConversation.messages.push({ from: \"self\", text, time: timeStr });\n currentConversation.lastMsg = text;\n currentConversation.time = timeStr;\n\n input.value = \"\";\n renderMessages();\n }\n\n function updateImBadge() {\n const totalUnread = imData.conversations.reduce((sum, c) => sum + c.unread, 0);\n const badge = document.getElementById(\"imBadgeCount\");\n if (badge) {\n badge.textContent = totalUnread;\n badge.style.display = totalUnread > 0 ? \"block\" : \"none\";\n }\n const chatCount = document.getElementById(\"imChatCount\");\n if (chatCount) chatCount.textContent = imData.conversations.filter(c => c.unread > 0).length;\n const notifyCount = document.getElementById(\"imNotifyCount\");\n if (notifyCount) notifyCount.textContent = imData.notifications.filter(n => !n.read).length;\n }\n\n // 初始化 IM 事件\n document.getElementById(\"imTrigger\").addEventListener(\"click\", openImPanel);\n document.getElementById(\"imMask\").addEventListener(\"click\", closeImPanel);\n document.getElementById(\"imCloseBtn\").addEventListener(\"click\", closeImPanel);\n document.getElementById(\"imBackBtn\").addEventListener(\"click\", () => {\n document.getElementById(\"imList\").style.display = \"block\";\n document.getElementById(\"imChat\").classList.remove(\"active\");\n currentConversation = null;\n renderImList();\n });\n document.getElementById(\"imSendBtn\").addEventListener(\"click\", sendMessage);\n document.getElementById(\"imInput\").addEventListener(\"keydown\", (e) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n sendMessage();\n }\n });\n\n document.querySelectorAll(\".im-tab\").forEach(tab => {\n tab.addEventListener(\"click\", () => {\n document.querySelectorAll(\".im-tab\").forEach(t => t.classList.remove(\"active\"));\n tab.classList.add(\"active\");\n currentImTab = tab.dataset.tab;\n renderImList();\n });\n });\n\n updateImBadge();\n </script>\n</body>\n</html>\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/user_erp_mvp_admin_prototype_v10(1)",
"type": "document",
"name": "USER 后台 ERP MVP · 管理员总览原型 v10",
"filePath": "05_需求文档/user_erp_mvp_admin_prototype_v10(1).html",
"summary": "USER 后台 ERP MVP · 管理员总览原型 v10 JOYHUB Ops 模拟数据 第一期模拟 数据 当前模块 经营总览 系统管理员最高权限视图 常用跳转 21 重要事项 3 审核类 4 字段关系 5 问题总结 9 经营总览 系统管理员 · 最高权限 · 全部部门 搜索 至 日 周 月 全部部门 Amazon 运营 用户运营 客服 系统管理员(最高权",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <title>USER 后台 ERP MVP · 管理员总览原型 v10</title>\n <style>\n :root {\n --bg: #f4f6f8;\n --panel: #ffffff;\n --panel-soft: #f8fafc;\n --line: #d9e1e8;\n --line-strong: #b9c6d2;\n --text: #1f2933;\n --muted: #66737f;\n --blue: #2563eb;\n --blue-soft: #eaf1ff;\n --green: #188260;\n --green-soft: #e7f7f0;\n --red: #c93636;\n --red-soft: #fdecec;\n --amber: #b56a16;\n --amber-soft: #fff4df;\n --purple: #725ac1;\n --purple-soft: #f0ecff;\n --shadow: 0 18px 44px rgba(24, 39, 61, 0.12);\n --radius: 8px;\n --sidebar: #17212b;\n --sidebar-soft: #22313f;\n }\n\n * {\n box-sizing: border-box;\n }\n\n body {\n margin: 0;\n min-height: 100vh;\n background: var(--bg);\n color: var(--text);\n font-family: \"Microsoft YaHei\", \"Segoe UI\", Arial, sans-serif;\n letter-spacing: 0;\n }\n\n button,\n input,\n select,\n textarea {\n font: inherit;\n }\n\n button {\n cursor: pointer;\n }\n\n .app-shell {\n min-height: 100vh;\n display: grid;\n grid-template-columns: 340px minmax(0, 1fr);\n }\n\n .sidebar {\n background: transparent;\n color: var(--text);\n position: sticky;\n top: 0;\n height: 100vh;\n display: grid;\n grid-template-columns: 96px 244px;\n border-right: 1px solid var(--line);\n }\n\n .side-rail {\n background: #111827;\n color: #e8eef5;\n padding: 18px 14px;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n gap: 14px;\n min-height: 0;\n }\n\n .rail-brand {\n display: grid;\n gap: 3px;\n justify-items: center;\n padding-bottom: 14px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n text-align: center;\n }\n\n .rail-brand-title {\n font-size: 14px;\n font-weight: 900;\n letter-spacing: 0;\n color: #fff;\n }\n\n .rail-brand-subtitle {\n font-size: 12px;\n color: #a8b5c2;\n }\n\n .rail-nav {\n display: grid;\n gap: 8px;\n align-content: start;\n overflow: auto;\n min-height: 0;\n }\n\n .rail-button {\n min-height: 70px;\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: #dce7f2;\n display: grid;\n justify-items: center;\n align-content: center;\n gap: 5px;\n padding: 8px 4px;\n position: relative;\n }\n\n .rail-button:hover,\n .rail-button.active {\n background: #1f2d3c;\n color: #fff;\n }\n\n .rail-button.active::before {\n content: \"\";\n position: absolute;\n left: -14px;\n top: 12px;\n bottom: 12px;\n width: 4px;\n border-radius: 999px;\n background: var(--blue);\n }\n\n .rail-icon {\n width: 26px;\n height: 26px;\n border: 1px solid rgba(255, 255, 255, 0.28);\n border-radius: 7px;\n display: grid;\n place-items: center;\n font-size: 12px;\n font-weight: 900;\n color: #edf4ff;\n }\n\n .rail-label {\n font-size: 12px;\n line-height: 1.2;\n text-align: center;\n }\n\n .rail-count {\n min-width: 24px;\n height: 22px;\n display: grid;\n place-items: center;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.14);\n color: #d7e4ef;\n font-size: 12px;\n padding: 0 6px;\n }\n\n .rail-foot {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 8px;\n padding: 10px 6px;\n text-align: center;\n display: grid;\n gap: 4px;\n color: #cbd5e1;\n font-size: 12px;\n }\n\n .rail-foot strong {\n color: #111827;\n background: #fff7d6;\n width: 48px;\n height: 48px;\n border-radius: 999px;\n display: grid;\n place-items: center;\n justify-self: center;\n font-size: 13px;\n line-height: 1.1;\n }\n\n .side-panel {\n background: #ffffff;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n min-width: 0;\n min-height: 0;\n border-right: 1px solid var(--line);\n }\n\n .module-head {\n padding: 20px 18px 16px;\n border-bottom: 1px solid var(--line);\n display: grid;\n gap: 6px;\n }\n\n .module-eyebrow {\n color: var(--muted);\n font-size: 12px;\n font-weight: 800;\n }\n\n .module-title {\n font-size: 20px;\n font-weight: 900;\n color: #111827;\n line-height: 1.15;\n }\n\n .module-note {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .brand {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 4px 8px 16px;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n .brand-mark {\n width: 34px;\n height: 34px;\n border-radius: 8px;\n display: grid;\n place-items: center;\n background: #2f6fca;\n color: #fff;\n font-weight: 800;\n }\n\n .brand-title {\n font-weight: 800;\n font-size: 15px;\n line-height: 1.2;\n }\n\n .brand-subtitle {\n color: #a8b5c2;\n font-size: 12px;\n margin-top: 2px;\n }\n\n .nav {\n display: grid;\n gap: 6px;\n overflow: auto;\n padding: 14px 12px;\n align-content: start;\n min-height: 0;\n }\n\n .nav-button {\n width: 100%;\n min-height: 48px;\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: var(--text);\n display: grid;\n grid-template-columns: 28px 1fr auto;\n align-items: center;\n text-align: left;\n padding: 8px 10px;\n gap: 10px;\n }\n\n .nav-button:hover,\n .nav-button.active {\n background: var(--blue-soft);\n color: #153a8a;\n }\n\n .nav-icon {\n width: 24px;\n height: 24px;\n border: 1px solid var(--line);\n border-radius: 6px;\n display: grid;\n place-items: center;\n font-size: 11px;\n font-weight: 800;\n color: #34516f;\n background: #fff;\n }\n\n .nav-count {\n min-width: 22px;\n border-radius: 999px;\n background: #eef3f8;\n color: #506070;\n text-align: center;\n font-size: 12px;\n padding: 2px 6px;\n }\n\n .sidebar-todo {\n border-top: 1px solid var(--line);\n padding: 14px 12px 16px;\n display: grid;\n gap: 8px;\n background: #fbfcfe;\n }\n\n .sidebar-todo-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #1f2933;\n font-size: 12px;\n font-weight: 800;\n }\n\n .sidebar-todo-head strong {\n min-width: 26px;\n height: 22px;\n border-radius: 999px;\n display: grid;\n place-items: center;\n background: var(--red);\n color: #fff;\n font-size: 12px;\n }\n\n .sidebar-todo-row {\n min-height: 30px;\n border: 1px solid var(--line);\n border-radius: 6px;\n background: #fff;\n color: var(--text);\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 8px;\n text-align: left;\n font-size: 12px;\n }\n\n .sidebar-todo-row:hover,\n .sidebar-todo-row.primary {\n background: var(--blue-soft);\n color: #153a8a;\n border-color: #bcd0ff;\n }\n\n .sidebar-todo-row strong {\n color: inherit;\n font-size: 13px;\n }\n\n .main {\n min-width: 0;\n display: grid;\n grid-template-rows: 58px minmax(0, 1fr);\n }\n\n .topbar {\n background: var(--panel);\n border-bottom: 1px solid var(--line);\n display: grid;\n grid-template-columns: minmax(300px, 1fr) auto;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 8px 18px;\n position: sticky;\n top: 0;\n z-index: 20;\n min-height: 58px;\n }\n\n .top-left {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n }\n\n .top-title {\n min-width: 138px;\n }\n\n .top-title strong {\n display: block;\n font-size: 16px;\n line-height: 1.2;\n color: #152233;\n }\n\n .top-title span {\n display: block;\n color: var(--muted);\n font-size: 12px;\n margin-top: 2px;\n }\n\n .search {\n width: min(240px, 22vw);\n height: 34px;\n border: 1px solid var(--line);\n background: var(--panel-soft);\n border-radius: 8px;\n display: flex;\n align-items: center;\n padding: 0 10px;\n gap: 8px;\n color: var(--muted);\n flex-shrink: 1;\n }\n\n .search span {\n font-size: 12px;\n font-weight: 800;\n }\n\n .search input {\n width: 100%;\n border: 0;\n background: transparent;\n outline: 0;\n color: var(--text);\n }\n\n .top-actions {\n display: flex;\n align-items: center;\n gap: 6px;\n justify-content: flex-end;\n flex-wrap: wrap;\n }\n\n .role-select,\n .scope-select {\n height: 32px;\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 0 10px;\n color: var(--text);\n }\n\n .scope-select {\n width: 116px;\n }\n\n .role-select {\n width: 164px;\n }\n\n .top-time {\n height: 32px;\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 0 6px;\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n }\n\n .top-time input {\n width: 98px;\n height: 28px;\n border: 0;\n outline: 0;\n color: var(--text);\n background: transparent;\n }\n\n .top-period {\n display: flex;\n align-items: center;\n gap: 4px;\n height: 32px;\n padding: 3px;\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n }\n\n .top-period button {\n height: 24px;\n min-width: 28px;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: var(--muted);\n font-weight: 800;\n padding: 0 7px;\n }\n\n .top-period button.active {\n background: var(--blue);\n color: #fff;\n }\n\n .content {\n padding: 14px 24px 34px;\n min-width: 0;\n }\n\n .page-head {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 18px;\n margin-bottom: 12px;\n padding: 2px 0 4px;\n }\n\n h1 {\n margin: 0;\n font-size: 19px;\n line-height: 1.2;\n color: #182331;\n }\n\n .page-note {\n margin-top: 6px;\n color: var(--muted);\n font-size: 12px;\n }\n\n .button-row {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n }\n\n .btn {\n min-height: 34px;\n border: 1px solid var(--line);\n background: var(--panel);\n color: var(--text);\n border-radius: 8px;\n padding: 0 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n white-space: nowrap;\n }\n\n .btn:hover {\n border-color: var(--line-strong);\n background: #f9fbfd;\n }\n\n .btn.primary {\n background: var(--blue);\n color: #fff;\n border-color: var(--blue);\n }\n\n .btn.danger {\n background: var(--red);\n color: #fff;\n border-color: var(--red);\n }\n\n .btn.warning {\n background: var(--amber);\n color: #fff;\n border-color: var(--amber);\n }\n\n .btn.ghost {\n background: transparent;\n }\n\n .grid {\n display: grid;\n gap: 14px;\n }\n\n .kpi-grid {\n grid-template-columns: repeat(4, minmax(170px, 1fr));\n margin-bottom: 14px;\n }\n\n .kpi-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 14px;\n min-height: 118px;\n display: grid;\n gap: 8px;\n text-align: left;\n transition: border-color 0.16s ease, transform 0.16s ease;\n }\n\n .kpi-card:hover {\n border-color: var(--blue);\n transform: translateY(-1px);\n }\n\n .kpi-top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n }\n\n .kpi-title {\n font-size: 13px;\n color: var(--muted);\n font-weight: 700;\n }\n\n .kpi-value {\n font-size: 30px;\n font-weight: 800;\n line-height: 1;\n color: #172331;\n }\n\n .kpi-foot {\n font-size: 12px;\n color: var(--muted);\n display: flex;\n justify-content: space-between;\n gap: 8px;\n }\n\n .layout-dashboard {\n display: grid;\n grid-template-columns: minmax(0, 1.42fr) minmax(320px, 0.7fr);\n gap: 14px;\n align-items: start;\n }\n\n .panel {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n min-width: 0;\n }\n\n .panel-head {\n padding: 14px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n\n .panel-title {\n margin: 0;\n font-size: 16px;\n font-weight: 800;\n color: #182331;\n }\n\n .panel-note {\n color: var(--muted);\n font-size: 12px;\n margin-top: 3px;\n }\n\n .panel-body {\n padding: 14px 16px 16px;\n }\n\n .tabs {\n display: flex;\n gap: 6px;\n flex-wrap: wrap;\n }\n\n .tab {\n height: 30px;\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 0 10px;\n color: var(--muted);\n }\n\n .tab.active {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #bcd0ff;\n font-weight: 700;\n }\n\n .filter-bar {\n display: grid;\n grid-template-columns: 1.3fr repeat(2, minmax(128px, 0.7fr)) repeat(4, minmax(126px, 0.8fr)) auto;\n gap: 10px;\n margin-bottom: 12px;\n }\n\n .filter-bar input,\n .filter-bar select {\n height: 34px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 8px;\n padding: 0 10px;\n min-width: 0;\n }\n\n .time-toolbar {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 12px 14px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 14px;\n flex-wrap: wrap;\n }\n\n .time-controls,\n .period-toggle {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-wrap: wrap;\n }\n\n .time-toolbar input,\n .time-toolbar select,\n .period-toggle button {\n height: 32px;\n border: 1px solid var(--line);\n background: #fff;\n border-radius: 8px;\n padding: 0 10px;\n color: var(--text);\n }\n\n .period-toggle button.active {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #bcd0ff;\n font-weight: 800;\n }\n\n .trend-line {\n font-size: 12px;\n color: var(--muted);\n display: grid;\n grid-template-columns: repeat(3, max-content);\n gap: 8px;\n align-items: center;\n }\n\n .spark {\n display: flex;\n align-items: end;\n gap: 3px;\n height: 24px;\n min-width: 58px;\n }\n\n .spark i {\n display: block;\n width: 7px;\n border-radius: 3px 3px 0 0;\n background: #9db5d0;\n }\n\n .insight-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 10px;\n margin-bottom: 14px;\n }\n\n .insight-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n min-height: 112px;\n }\n\n .insight-title {\n font-weight: 800;\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n }\n\n .insight-value {\n font-size: 24px;\n font-weight: 800;\n line-height: 1;\n }\n\n .insight-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.5;\n }\n\n .module-charts {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 12px;\n margin-bottom: 14px;\n }\n\n .chart-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n min-width: 0;\n }\n\n .legacy-workspace {\n display: grid;\n gap: 14px;\n }\n\n .legacy-split {\n display: grid;\n grid-template-columns: minmax(0, 1.35fr) minmax(360px, 0.65fr);\n gap: 14px;\n align-items: start;\n }\n\n .relation-grid {\n display: grid;\n gap: 10px;\n }\n\n .relation-card {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 11px 12px;\n background: #fbfcfe;\n display: grid;\n gap: 6px;\n }\n\n .relation-title {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n font-size: 13px;\n font-weight: 800;\n }\n\n .relation-meta {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .query-matrix table {\n min-width: 980px;\n }\n\n .field-matrix table {\n min-width: 1260px;\n }\n\n .chart-title {\n font-size: 13px;\n font-weight: 800;\n margin-bottom: 8px;\n }\n\n .mini-stat-row {\n display: grid;\n grid-template-columns: 78px minmax(0, 1fr) 44px;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--muted);\n margin-top: 8px;\n }\n\n .pending-strip {\n background: #fff7ed;\n border: 1px solid #f3cf9b;\n border-radius: 8px;\n padding: 10px 12px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 12px;\n color: #7d4a0b;\n font-size: 13px;\n }\n\n .executive-hero {\n display: grid;\n grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1.55fr);\n gap: 14px;\n margin-bottom: 14px;\n }\n\n .focus-card {\n background: #111827;\n color: #eef5ff;\n border-radius: 8px;\n padding: 18px;\n display: grid;\n gap: 16px;\n min-height: 260px;\n }\n\n .focus-eyebrow {\n color: #a8b3c2;\n font-size: 12px;\n font-weight: 800;\n }\n\n .focus-title {\n font-size: 21px;\n line-height: 1.32;\n font-weight: 800;\n margin: 0;\n }\n\n .health-score {\n display: grid;\n grid-template-columns: auto 1fr;\n align-items: end;\n gap: 14px;\n }\n\n .health-number {\n font-size: 54px;\n font-weight: 900;\n line-height: 0.95;\n }\n\n .health-copy {\n color: #cbd5e1;\n font-size: 13px;\n line-height: 1.55;\n }\n\n .focus-metrics {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 8px;\n }\n\n .focus-metric {\n background: rgba(255, 255, 255, 0.08);\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-radius: 8px;\n padding: 10px;\n }\n\n .focus-metric strong {\n display: block;\n font-size: 20px;\n margin-bottom: 4px;\n }\n\n .focus-metric span {\n color: #aebbc9;\n font-size: 12px;\n }\n\n .decision-panel {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n min-width: 0;\n }\n\n .decision-list {\n display: grid;\n gap: 10px;\n padding: 14px;\n }\n\n .decision-row {\n display: grid;\n grid-template-columns: 92px minmax(0, 1fr) auto;\n align-items: center;\n gap: 12px;\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n background: #fff;\n }\n\n .decision-row.critical {\n border-color: #f1b5b5;\n background: #fff8f8;\n }\n\n .decision-row.warning {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .decision-title {\n font-size: 14px;\n font-weight: 800;\n margin-bottom: 5px;\n }\n\n .decision-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.5;\n }\n\n .executive-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 12px;\n margin-bottom: 14px;\n }\n\n .executive-card {\n border: 1px solid var(--line);\n background: var(--panel);\n border-radius: 8px;\n padding: 14px;\n min-height: 158px;\n display: grid;\n gap: 10px;\n text-align: left;\n color: var(--text);\n }\n\n .executive-card.primary {\n border-color: #b9cdfb;\n background: #f7faff;\n }\n\n .executive-card.risk {\n border-color: #efb6b6;\n background: #fff8f8;\n }\n\n .executive-card.warn {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .executive-card.good {\n border-color: #b8e4d0;\n background: #f6fffb;\n }\n\n .executive-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-size: 13px;\n color: var(--muted);\n font-weight: 800;\n }\n\n .executive-value {\n font-size: 28px;\n font-weight: 900;\n line-height: 1.05;\n color: #162335;\n }\n\n .period-stats {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 6px;\n }\n\n .period-stat {\n border: 1px solid var(--line);\n border-radius: 7px;\n padding: 7px;\n background: rgba(255, 255, 255, 0.62);\n }\n\n .period-stat strong {\n display: block;\n font-size: 14px;\n }\n\n .period-stat span {\n color: var(--muted);\n font-size: 11px;\n }\n\n .ops-strip {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: 10px;\n margin-bottom: 14px;\n }\n\n .ops-card {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n min-height: 112px;\n text-align: left;\n color: var(--text);\n }\n\n .ops-name {\n font-weight: 800;\n font-size: 13px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n }\n\n .ops-status {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .drilldown-grid {\n display: grid;\n grid-template-columns: repeat(5, minmax(0, 1fr));\n gap: 8px;\n margin-bottom: 14px;\n }\n\n .drilldown-button {\n min-height: 44px;\n border-radius: 8px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--text);\n padding: 0 10px;\n font-weight: 800;\n }\n\n .drilldown-button:hover {\n border-color: #b7c5d3;\n background: #f8fafc;\n }\n\n .command-board {\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n margin-bottom: 8px;\n overflow: hidden;\n display: grid;\n grid-template-columns: 124px minmax(0, 1fr) 104px;\n align-items: stretch;\n }\n\n .command-board-head {\n min-height: 58px;\n padding: 8px 10px;\n display: grid;\n align-content: center;\n gap: 2px;\n border-right: 1px solid var(--line);\n background: #f9fbfd;\n }\n\n .command-board-title {\n display: grid;\n gap: 2px;\n min-width: 0;\n }\n\n .command-board-title h2 {\n margin: 0;\n font-size: 14px;\n line-height: 1.15;\n color: #172234;\n white-space: nowrap;\n }\n\n .command-board-title span {\n color: var(--muted);\n font-size: 11px;\n line-height: 1.25;\n }\n\n .command-board-actions {\n min-height: 58px;\n padding: 7px;\n border-left: 1px solid var(--line);\n display: grid;\n align-content: center;\n gap: 5px;\n background: #fbfcfe;\n }\n\n .command-status-strip {\n display: grid;\n grid-template-columns: minmax(150px, 1.15fr) minmax(150px, 1.1fr) repeat(4, minmax(112px, 0.78fr));\n gap: 1px;\n background: var(--line);\n }\n\n .status-unit {\n min-height: 58px;\n border: 0;\n border-radius: 0;\n background: #fff;\n padding: 8px 10px;\n display: grid;\n gap: 4px;\n text-align: left;\n }\n\n .status-unit.alert {\n background: #fff8f8;\n }\n\n .status-unit.warning {\n background: #fffaf0;\n }\n\n .status-unit.goal {\n background: #f7fbff;\n }\n\n .status-unit.featured {\n min-height: 58px;\n }\n\n .command-status-strip.is-collapsed .status-unit.optional {\n display: none;\n }\n\n .status-name {\n color: var(--muted);\n font-size: 11px;\n font-weight: 800;\n }\n\n .status-value {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n font-size: 20px;\n font-weight: 900;\n line-height: 1;\n color: #162335;\n }\n\n .status-value small {\n color: var(--muted);\n font-size: 10px;\n font-weight: 700;\n text-align: right;\n }\n\n .status-progress {\n height: 5px;\n border-radius: 999px;\n background: #e8eef4;\n overflow: hidden;\n }\n\n .status-progress span {\n display: block;\n height: 100%;\n width: var(--progress, 0%);\n border-radius: inherit;\n background: var(--blue);\n }\n\n .command-grid {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 360px;\n gap: 12px;\n align-items: start;\n margin-bottom: 12px;\n }\n\n .panel-toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n flex-wrap: wrap;\n }\n\n .compact-tabs {\n display: flex;\n align-items: center;\n gap: 5px;\n flex-wrap: wrap;\n }\n\n .compact-tabs button {\n height: 28px;\n border-radius: 7px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--muted);\n padding: 0 9px;\n font-size: 12px;\n font-weight: 800;\n }\n\n .compact-tabs button.active {\n background: var(--blue-soft);\n border-color: #bcd0ff;\n color: var(--blue);\n }\n\n .priority-table table {\n min-width: 920px;\n }\n\n .priority-table th,\n .priority-table td {\n padding: 10px 9px;\n }\n\n .row-title {\n font-weight: 800;\n color: #182331;\n }\n\n .row-sub {\n color: var(--muted);\n font-size: 12px;\n margin-top: 3px;\n }\n\n .side-stack {\n display: grid;\n gap: 10px;\n }\n\n .side-list {\n display: grid;\n gap: 8px;\n padding: 12px;\n }\n\n .side-row {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n display: grid;\n gap: 7px;\n background: #fff;\n }\n\n .side-row.alert {\n border-color: #efb6b6;\n background: #fff8f8;\n }\n\n .side-row.warning {\n border-color: #efd39b;\n background: #fffaf0;\n }\n\n .side-row-title {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n font-weight: 800;\n font-size: 13px;\n }\n\n .side-row-meta {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.45;\n }\n\n .matrix-grid {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 440px;\n gap: 12px;\n align-items: start;\n }\n\n .matrix-table table {\n min-width: 720px;\n }\n\n .channel-table table {\n min-width: 520px;\n }\n\n .table-wrap {\n overflow: auto;\n }\n\n table {\n width: 100%;\n border-collapse: collapse;\n min-width: 1100px;\n }\n\n th,\n td {\n border-bottom: 1px solid var(--line);\n padding: 11px 10px;\n text-align: left;\n font-size: 13px;\n vertical-align: middle;\n white-space: nowrap;\n }\n\n th {\n color: #536170;\n font-weight: 800;\n background: #fbfcfe;\n }\n\n tr:hover td {\n background: #fbfdff;\n }\n\n .tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 22px;\n border-radius: 999px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 700;\n border: 1px solid transparent;\n }\n\n .tag.blue {\n background: var(--blue-soft);\n color: var(--blue);\n border-color: #c7d8ff;\n }\n\n .tag.green {\n background: var(--green-soft);\n color: var(--green);\n border-color: #bde8d5;\n }\n\n .tag.red {\n background: var(--red-soft);\n color: var(--red);\n border-color: #f7bdbd;\n }\n\n .tag.amber {\n background: var(--amber-soft);\n color: var(--amber);\n border-color: #f1d39b;\n }\n\n .tag.purple {\n background: var(--purple-soft);\n color: var(--purple);\n border-color: #d8ccff;\n }\n\n .tag.gray {\n background: #f0f3f6;\n color: #61707f;\n border-color: #dbe2e8;\n }\n\n .mini-btn {\n height: 28px;\n border-radius: 7px;\n border: 1px solid var(--line);\n background: #fff;\n color: var(--text);\n padding: 0 8px;\n margin-right: 4px;\n }\n\n .mini-btn.primary {\n color: var(--blue);\n border-color: #bfd0ff;\n background: var(--blue-soft);\n font-weight: 700;\n }\n\n .mini-btn.danger {\n color: var(--red);\n border-color: #f2b8b8;\n background: var(--red-soft);\n font-weight: 700;\n }\n\n .stack {\n display: grid;\n gap: 14px;\n }\n\n .risk-list,\n .activity-list,\n .suggest-list {\n display: grid;\n gap: 10px;\n }\n\n .risk-item,\n .activity-item,\n .suggest-item {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 12px;\n display: grid;\n gap: 8px;\n background: #fff;\n }\n\n .risk-item.high {\n border-color: #f4b4b4;\n background: #fff8f8;\n }\n\n .risk-item.mid {\n border-color: #efd093;\n background: #fffaf0;\n }\n\n .item-title {\n display: flex;\n justify-content: space-between;\n gap: 10px;\n font-weight: 800;\n font-size: 13px;\n }\n\n .item-desc {\n color: var(--muted);\n font-size: 12px;\n line-height: 1.55;\n }\n\n .chart-row {\n display: grid;\n gap: 8px;\n margin-top: 2px;\n }\n\n .bar-line {\n display: grid;\n grid-template-columns: 72px minmax(0, 1fr) 46px;\n align-items: center;\n gap: 8px;\n font-size: 12px;\n color: var(--muted);\n }\n\n .bar-track {\n height: 10px;\n background: #edf1f5;\n border-radius: 999px;\n overflow: hidden;\n }\n\n .bar-fill {\n height: 100%;\n border-radius: 999px;\n background: var(--blue);\n }\n\n .summary-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 10px;\n }\n\n .summary-cell {\n border: 1px solid var(--line);\n border-radius: 8px;\n background: #fff;\n padding: 12px;\n }\n\n .summary-value {\n font-size: 22px;\n font-weight: 800;\n margin-bottom: 4px;\n }\n\n .summary-label {\n color: var(--muted);\n font-size: 12px;\n }\n\n .empty {\n padding: 28px;\n color: var(--muted);\n text-align: center;\n border: 1px dashed var(--line);\n border-radius: 8px;\n background: #fbfcfe;\n }\n\n .drawer-mask,\n .modal-mask {\n position: fixed;\n inset: 0;\n background: rgba(10, 18, 28, 0.36);\n z-index: 80;\n display: none;\n }\n\n .drawer-mask.open,\n .modal-mask.open {\n display: block;\n }\n\n .drawer {\n position: fixed;\n right: 0;\n top: 0;\n height: 100vh;\n width: min(680px, 92vw);\n background: var(--panel);\n box-shadow: var(--shadow);\n z-index: 90;\n transform: translateX(102%);\n transition: transform 0.18s ease;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n }\n\n .drawer.open {\n transform: translateX(0);\n }\n\n .drawer-head,\n .drawer-foot {\n padding: 16px 18px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n }\n\n .drawer-foot {\n border-bottom: 0;\n border-top: 1px solid var(--line);\n justify-content: flex-end;\n }\n\n .drawer-body {\n overflow: auto;\n padding: 16px 18px;\n display: grid;\n gap: 14px;\n align-content: start;\n }\n\n .detail-grid {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n }\n\n .detail-cell {\n border: 1px solid var(--line);\n border-radius: 8px;\n padding: 10px;\n min-width: 0;\n }\n\n .detail-label {\n font-size: 12px;\n color: var(--muted);\n margin-bottom: 5px;\n }\n\n .detail-value {\n font-size: 13px;\n font-weight: 700;\n overflow-wrap: anywhere;\n }\n\n .timeline {\n display: grid;\n gap: 8px;\n }\n\n .timeline-item {\n border-left: 3px solid var(--blue);\n padding: 4px 0 4px 10px;\n font-size: 13px;\n }\n\n .modal {\n position: fixed;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n width: min(560px, 92vw);\n background: #fff;\n border-radius: 8px;\n box-shadow: var(--shadow);\n z-index: 100;\n display: none;\n }\n\n .modal.open {\n display: block;\n }\n\n .modal-head,\n .modal-foot {\n padding: 15px 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n justify-content: space-between;\n gap: 10px;\n align-items: center;\n }\n\n .modal-foot {\n border-bottom: 0;\n border-top: 1px solid var(--line);\n justify-content: flex-end;\n }\n\n .modal-body {\n padding: 16px;\n display: grid;\n gap: 12px;\n }\n\n .form-row {\n display: grid;\n gap: 6px;\n }\n\n .form-row label {\n font-size: 13px;\n font-weight: 800;\n }\n\n .form-row input,\n .form-row select,\n .form-row textarea {\n border: 1px solid var(--line);\n border-radius: 8px;\n min-height: 36px;\n padding: 8px 10px;\n width: 100%;\n }\n\n .form-row textarea {\n min-height: 88px;\n resize: vertical;\n }\n\n .toast {\n position: fixed;\n right: 18px;\n bottom: 18px;\n z-index: 120;\n display: grid;\n gap: 8px;\n }\n\n .toast-item {\n width: min(360px, calc(100vw - 36px));\n background: #172331;\n color: #fff;\n border-radius: 8px;\n padding: 12px 14px;\n box-shadow: var(--shadow);\n font-size: 13px;\n }\n\n .route-page {\n display: none;\n }\n\n .route-page.active {\n display: block;\n }\n\n .source-note {\n font-size: 12px;\n color: var(--muted);\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n }\n\n @media (max-width: 1180px) {\n .app-shell {\n grid-template-columns: 96px minmax(0, 1fr);\n }\n\n .sidebar {\n grid-template-columns: 96px;\n }\n\n .side-panel {\n display: none;\n }\n\n .rail-button {\n min-height: 64px;\n }\n\n .layout-dashboard {\n grid-template-columns: 1fr;\n }\n\n .kpi-grid {\n grid-template-columns: repeat(2, minmax(170px, 1fr));\n }\n\n .insight-grid,\n .module-charts,\n .executive-grid {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .executive-hero {\n grid-template-columns: 1fr;\n }\n\n .ops-strip,\n .drilldown-grid,\n .command-status-strip {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n .command-board {\n grid-template-columns: 1fr;\n }\n\n .command-board-head,\n .command-board-actions {\n min-height: auto;\n border-right: 0;\n border-left: 0;\n border-bottom: 1px solid var(--line);\n }\n\n .command-grid,\n .matrix-grid {\n grid-template-columns: 1fr;\n }\n }\n\n @media (max-width: 780px) {\n .app-shell {\n display: block;\n }\n\n .sidebar {\n position: static;\n height: auto;\n display: block;\n }\n\n .side-rail {\n position: static;\n min-height: auto;\n grid-template-rows: auto;\n }\n\n .rail-nav {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n .rail-button.active::before {\n display: none;\n }\n\n .main {\n display: block;\n }\n\n .topbar {\n position: static;\n height: auto;\n grid-template-columns: 1fr;\n padding: 12px;\n }\n\n .top-left {\n width: 100%;\n display: grid;\n }\n\n .search {\n width: 100%;\n }\n\n .content {\n padding: 16px 12px 24px;\n }\n\n .page-head,\n .top-actions {\n display: grid;\n width: 100%;\n }\n\n .kpi-grid,\n .summary-grid,\n .detail-grid {\n grid-template-columns: 1fr;\n }\n\n .filter-bar {\n grid-template-columns: 1fr;\n }\n\n .insight-grid,\n .module-charts,\n .executive-grid,\n .ops-strip,\n .drilldown-grid,\n .command-status-strip,\n .command-grid,\n .matrix-grid {\n grid-template-columns: 1fr;\n }\n\n .decision-row {\n grid-template-columns: 1fr;\n }\n }\n </style>\n</head>\n<body>\n <div class=\"app-shell\">\n <aside class=\"sidebar\">\n <section class=\"side-rail\" aria-label=\"一级模块导航\">\n <div class=\"rail-brand\">\n <div class=\"rail-brand-title\">JOYHUB</div>\n <div class=\"rail-brand-subtitle\">Ops</div>\n </div>\n <nav class=\"rail-nav\" id=\"moduleRail\"></nav>\n <div class=\"rail-foot\">\n <strong>模拟数据</strong>\n <span>第一期模拟<br />数据</span>\n </div>\n </section>\n <section class=\"side-panel\" aria-label=\"当前模块菜单\">\n <div class=\"module-head\">\n <div class=\"module-eyebrow\">当前模块</div>\n <div class=\"module-title\" id=\"moduleTitle\">经营总览</div>\n <div class=\"module-note\" id=\"moduleNote\">系统管理员最高权限视图</div>\n </div>\n <nav class=\"nav\" id=\"nav\"></nav>\n <section class=\"sidebar-todo\" aria-label=\"固定待办提醒\">\n <div class=\"sidebar-todo-head\">\n <span>常用跳转</span>\n <strong>21</strong>\n </div>\n <button class=\"sidebar-todo-row primary\" data-route=\"dashboard\" data-tab=\"all\">\n <span>重要事项</span><strong>3</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"plans\" data-tab=\"approval\">\n <span>审核类</span><strong>4</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"legacy\" data-tab=\"fields\">\n <span>字段关系</span><strong>5</strong>\n </button>\n <button class=\"sidebar-todo-row\" data-route=\"reports\" data-tab=\"issue_summary\">\n <span>问题总结</span><strong>9</strong>\n </button>\n </section>\n </section>\n </aside>\n\n <main class=\"main\">\n <header class=\"topbar\">\n <div class=\"top-left\">\n <div class=\"top-title\">\n <strong id=\"topPageTitle\">经营总览</strong>\n <span id=\"topPageSubtitle\">系统管理员 · 最高权限 · 全部部门</span>\n </div>\n <div class=\"search\">\n <span>搜索</span>\n <input id=\"globalSearch\" placeholder=\"ASIN / 需求 / 用户 / 负责人\" />\n </div>\n </div>\n <div class=\"top-actions\">\n <div class=\"top-time\" title=\"时间范围\">\n <input type=\"date\" value=\"2026-05-01\" data-time=\"startDate\" />\n <span>至</span>\n <input type=\"date\" value=\"2026-05-03\" data-time=\"endDate\" />\n </div>\n <div class=\"top-period\" title=\"周期切换\">\n <button class=\"active\" data-period=\"day\">日</button>\n <button data-period=\"week\">周</button>\n <button data-period=\"month\">月</button>\n </div>\n <select class=\"scope-select\" id=\"scopeSelect\">\n <option value=\"all\">全部部门</option>\n <option value=\"amazon\">Amazon 运营</option>\n <option value=\"user_ops\">用户运营</option>\n <option value=\"support\">客服</option>\n </select>\n <select class=\"role-select\" id=\"roleSelect\">\n <option>系统管理员(最高权限)</option>\n <option>Amazon 运营总监</option>\n <option>用户运营负责人</option>\n <option>客服负责人</option>\n </select>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"notice\">通知 12</button>\n </div>\n </header>\n\n <section class=\"content\" id=\"content\"></section>\n </main>\n </div>\n\n <div class=\"drawer-mask\" id=\"drawerMask\"></div>\n <aside class=\"drawer\" id=\"drawer\">\n <div class=\"drawer-head\">\n <div>\n <h2 class=\"panel-title\" id=\"drawerTitle\">详情</h2>\n <div class=\"panel-note\" id=\"drawerSubtitle\">模拟数据,敏感字段默认脱敏</div>\n </div>\n <button class=\"btn\" data-action=\"close-drawer\">关闭</button>\n </div>\n <div class=\"drawer-body\" id=\"drawerBody\"></div>\n <div class=\"drawer-foot\" id=\"drawerFoot\"></div>\n </aside>\n\n <div class=\"modal-mask\" id=\"modalMask\"></div>\n <section class=\"modal\" id=\"modal\">\n <div class=\"modal-head\">\n <h2 class=\"panel-title\" id=\"modalTitle\">操作确认</h2>\n <button class=\"btn\" data-action=\"close-modal\">关闭</button>\n </div>\n <div class=\"modal-body\" id=\"modalBody\"></div>\n <div class=\"modal-foot\" id=\"modalFoot\"></div>\n </section>\n\n <div class=\"toast\" id=\"toast\"></div>\n\n <script>\n const DATA_SOURCE = \"模拟数据:用于本机高保真原型演示,不代表真实业务数据\";\n\n const routes = [\n { id: \"dashboard\", label: \"工作台\", icon: \"DB\", count: 12 },\n { id: \"requests\", label: \"需求中心\", icon: \"RQ\", count: 18 },\n { id: \"listings\", label: \"Listing 管理\", icon: \"LS\", count: 7 },\n { id: \"plans\", label: \"计划中心\", icon: \"PL\", count: 12 },\n { id: \"push\", label: \"推送中心\", icon: \"PS\", count: 24 },\n { id: \"support\", label: \"客服中心\", icon: \"CS\", count: 9 },\n { id: \"risk\", label: \"风险中心\", icon: \"RK\", count: 10 },\n { id: \"data\", label: \"数据中心\", icon: \"DT\", count: 5 },\n { id: \"legacy\", label: \"现有ERP\", icon: \"ER\", count: 5 },\n { id: \"reports\", label: \"报表中心\", icon: \"RP\", count: 6 },\n { id: \"system\", label: \"系统管理\", icon: \"SY\", count: 4 }\n ];\n\n const moduleGroups = [\n {\n id: \"overview\",\n label: \"工作台\",\n icon: \"W\",\n count: 31,\n title: \"经营总览\",\n note: \"目标完成、问题总结、待办卡点\",\n routes: [\"dashboard\"]\n },\n {\n id: \"user_ops\",\n label: \"用户运营\",\n icon: \"U\",\n count: 42,\n title: \"用户运营\",\n note: \"需求、现有ERP字段、用户画像关系\",\n routes: [\"requests\", \"legacy\"]\n },\n {\n id: \"listing_plan\",\n label: \"Listing计划\",\n icon: \"L\",\n count: 19,\n title: \"Listing 与计划\",\n note: \"Listing 健康、测评计划、紧急策略\",\n routes: [\"listings\", \"plans\"]\n },\n {\n id: \"engagement\",\n label: \"触达客服\",\n icon: \"P\",\n count: 33,\n title: \"触达与客服\",\n note: \"IM、EDM、TEL、KOC/KOL 与工单\",\n routes: [\"push\", \"support\"]\n },\n {\n id: \"risk_data\",\n label: \"风险数据\",\n icon: \"R\",\n count: 21,\n title: \"风险与数据\",\n note: \"诈骗同步、黑名单、同步状态、报表\",\n routes: [\"risk\", \"data\", \"reports\"]\n },\n {\n id: \"system_assets\",\n label: \"系统资产\",\n icon: \"S\",\n count: 4,\n title: \"系统资产\",\n note: \"账号、权限、离职、审计日志\",\n routes: [\"system\"]\n }\n ];\n\n const state = {\n route: \"dashboard\",\n activeTab: \"all\",\n keyword: \"\",\n scope: \"all\",\n period: \"day\",\n startDate: \"2026-05-01\",\n endDate: \"2026-05-03\",\n statusExpanded: false,\n statusPriorityFirst: true\n };\n\n const records = {\n kpis: [\n {\n id: \"approved_review_requests\",\n title: \"测评需求审核\",\n value: \"申请 18 / 已批 8\",\n tone: \"blue\",\n desc: \"测评需求由 Amazon 运营提交,已批后用户运营接收\",\n route: \"plans\",\n filter: \"amazon_approved\",\n trend: { day: 8, week: 31, month: 92, risk: \"正常\" },\n spark: [4, 7, 5, 8, 9, 8]\n },\n {\n id: \"push_risk_yesterday\",\n title: \"渠道推送风险\",\n value: \"IM 2 / EDM 1\",\n tone: \"amber\",\n desc: \"IM、EDM、TEL、App Push 日周月风险与反馈\",\n route: \"push\",\n filter: \"risk\",\n trend: { day: 3, week: 9, month: 27, risk: \"偏高\" },\n spark: [2, 3, 4, 5, 3, 6]\n },\n {\n id: \"new_fraud_events\",\n title: \"新增诈骗事件\",\n value: \"昨 5 / 周 18\",\n tone: \"red\",\n desc: \"昨日、近 7 天、近 30 天新增与待同步\",\n route: \"risk\",\n filter: \"fraud\",\n trend: { day: 5, week: 18, month: 64, risk: \"高\" },\n spark: [3, 5, 4, 8, 6, 9]\n },\n {\n id: \"emergency_listings\",\n title: \"紧急 Listing\",\n value: \"新 3 / 未处理 7\",\n tone: \"red\",\n desc: \"按日、周、月展示,并合并之前未处理紧急事件\",\n route: \"listings\",\n filter: \"emergency\",\n trend: { day: 3, week: 11, month: 29, risk: \"高\" },\n spark: [2, 4, 4, 5, 7, 7]\n },\n {\n id: \"pending_approval\",\n title: \"推广计划与紧急策略\",\n value: \"日 12 / 周 38\",\n tone: \"blue\",\n desc: \"确认需求后新建的推广计划、推送计划和紧急策略跟踪\",\n route: \"plans\",\n filter: \"approval\",\n trend: { day: 12, week: 38, month: 116, risk: \"注意审核积压\" },\n spark: [7, 8, 10, 12, 12, 14]\n },\n {\n id: \"review_output_trend\",\n title: \"评价产出趋势\",\n value: \"日 18 / 周 96\",\n tone: \"green\",\n desc: \"真实消费者回评完成、趋势和异常提示\",\n route: \"reports\",\n filter: \"review_done\",\n trend: { day: 18, week: 96, month: 384, risk: \"稳定\" },\n spark: [13, 15, 16, 18, 20, 18]\n },\n {\n id: \"blacklist_sync_failed\",\n title: \"黑名单同步严重度\",\n value: \"失败 2 / 高危 1\",\n tone: \"red\",\n desc: \"系统管理员视角看日周月影响,判断问题是否严重\",\n route: \"risk\",\n filter: \"sync_failed\",\n trend: { day: 2, week: 7, month: 19, risk: \"需复核\" },\n spark: [1, 1, 3, 2, 4, 2]\n },\n {\n id: \"kol_koc_progress\",\n title: \"KOC/KOL 对接\",\n value: \"KOC 21 / KOL 6\",\n tone: \"purple\",\n desc: \"PR 对外联系、价格、CODE、返点和提款进度\",\n route: \"push\",\n filter: \"kol\",\n trend: { day: 6, week: 27, month: 84, risk: \"2 个逾期\" },\n spark: [3, 4, 6, 5, 7, 8]\n },\n {\n id: \"ph_ops\",\n title: \"菲律宾团队管理\",\n value: \"风险 2 / 缺口 1\",\n tone: \"amber\",\n desc: \"日周月工作时长、请假、缺席、人均产出与关键岗位缺口\",\n route: \"support\",\n filter: \"ph\",\n trend: { day: 2, week: 6, month: 15, risk: \"排班风险\" },\n spark: [1, 2, 1, 4, 3, 5]\n },\n {\n id: \"workflow_blocked\",\n title: \"审核积压与风险\",\n value: \"卡点 4\",\n tone: \"amber\",\n desc: \"已发现问题汇总到总页面,避免系统管理员挨个查数据\",\n route: \"plans\",\n filter: \"blocked\",\n trend: { day: 4, week: 13, month: 33, risk: \"影响进度\" },\n spark: [2, 3, 3, 6, 5, 4]\n }\n ],\n workItems: [\n {\n id: \"WK-20260503-001\",\n source: \"Amazon 总监\",\n type: \"测评需求\",\n asin: \"B0TES001\",\n site: \"US\",\n stage: \"Amazon 已批准\",\n owner: \"用户运营负责人\",\n risk: \"中\",\n priority: \"P1\",\n due: \"今日 18:00\",\n action: \"接收\",\n status: \"amazon_approved\",\n submitter: \"Amazon 运营 A\",\n reviewer: \"Amazon 总监\",\n approval: \"通过\",\n sourceForm: \"飞书需求表单 DEMO-001\",\n summary: \"评分 4.46,低于 4.5,需要生成用户互动与真实评价跟踪计划。\"\n },\n {\n id: \"WK-20260503-002\",\n source: \"推送中心\",\n type: \"昨日推送风险\",\n asin: \"B0TES009\",\n site: \"UK\",\n stage: \"风险复核\",\n owner: \"用户运营组长\",\n risk: \"高\",\n priority: \"P0\",\n due: \"今日 12:00\",\n action: \"复核\",\n status: \"risk_review\",\n submitter: \"推送系统\",\n reviewer: \"用户运营组长\",\n approval: \"待复核\",\n sourceForm: \"推送风险自动单 DEMO-006\",\n summary: \"昨日推送退订率高于基线,需复核人群、素材和文案。\"\n },\n {\n id: \"WK-20260503-003\",\n source: \"客服中心\",\n type: \"新增诈骗事件\",\n asin: \"B0TES003\",\n site: \"DE\",\n stage: \"待同步黑名单\",\n owner: \"风险负责人\",\n risk: \"高\",\n priority: \"P0\",\n due: \"今日 14:00\",\n action: \"审核\",\n status: \"fraud\",\n submitter: \"客服 B\",\n reviewer: \"风险负责人\",\n approval: \"待审核\",\n sourceForm: \"客服升级表单 DEMO-003\",\n summary: \"同一 JOYHUB ID 与多个 Profile ID 关联异常样品申请,邮箱和设备号已脱敏。\"\n },\n {\n id: \"WK-20260503-004\",\n source: \"Listing 管理\",\n type: \"紧急 Listing\",\n asin: \"B0TES005\",\n site: \"JP\",\n stage: \"紧急策略审批\",\n owner: \"Amazon 运营总监\",\n risk: \"紧急\",\n priority: \"P0\",\n due: \"今日 11:30\",\n action: \"审批\",\n status: \"emergency\",\n submitter: \"Amazon 运营 C\",\n reviewer: \"Amazon 运营总监\",\n approval: \"待系统管理员确认\",\n sourceForm: \"紧急 Listing 表单 DEMO-004\",\n summary: \"当前评分 4.21,接近 4.2 紧急阈值,需要 Amazon 与用户运营联合策略。\"\n },\n {\n id: \"WK-20260503-005\",\n source: \"客服中心\",\n type: \"差评跟进\",\n asin: \"B0TES007\",\n site: \"US\",\n stage: \"客服升级\",\n owner: \"客服负责人\",\n risk: \"中\",\n priority: \"P1\",\n due: \"明日 10:00\",\n action: \"分配\",\n status: \"support\",\n submitter: \"Amazon 运营 A\",\n reviewer: \"客服负责人\",\n approval: \"通过\",\n sourceForm: \"飞书客服需求 DEMO-005\",\n summary: \"用户反馈产品说明理解偏差,需要客服跟进并回传产品改进建议。\"\n }\n ],\n listings: [\n { id: \"LS-001\", asin: \"B0TES005\", site: \"JP\", marketplaces: \"JP\", rating: 4.21, reviews: 138, negative: 12, health: \"紧急\", grade: \"S\", owner: \"王五\", issue: \"评价下滑且差评集中\", participants: \"Amazon C / 用户运营 B / 客服 A\", progress: \"紧急策略审批\" },\n { id: \"LS-002\", asin: \"B0TES003\", site: \"DE\", marketplaces: \"DE\", rating: 4.18, reviews: 93, negative: 9, health: \"紧急\", grade: \"A\", owner: \"赵六\", issue: \"诈骗疑似叠加差评\", participants: \"Amazon D / 风险负责人\", progress: \"客服与风险介入\" },\n { id: \"LS-003\", asin: \"B0TES001\", site: \"US\", marketplaces: \"US / CA\", rating: 4.46, reviews: 412, negative: 16, health: \"补强\", grade: \"S\", owner: \"张三\", issue: \"美国加拿大同 ASIN 联动\", participants: \"Amazon A / 用户运营负责人\", progress: \"待生成计划\" },\n { id: \"LS-004\", asin: \"B0TES009\", site: \"UK\", marketplaces: \"UK\", rating: 4.51, reviews: 188, negative: 5, health: \"观察\", grade: \"B\", owner: \"李四\", issue: \"推送退订偏高\", participants: \"用户运营组长 / 推送运营\", progress: \"推送风险复核\" }\n ],\n plans: [\n { id: \"PL-0503-001\", type: \"真实评价跟踪\", requestId: \"WK-20260503-001\", asin: \"B0TES001\", site: \"US/CA\", target: 30, coverage: \"已覆盖\", channelMix: \"IM 40% / EDM 35% / TEL 25%\", status: \"Amazon 已批准\", approver: \"Amazon 总监\", owner: \"用户运营负责人\", risk: \"中\", simulated: true },\n { id: \"PL-0503-002\", type: \"紧急 Listing 策略\", requestId: \"WK-20260503-004\", asin: \"B0TES005\", site: \"JP\", target: 18, coverage: \"已覆盖\", channelMix: \"TEL 45% / IM 35% / EDM 20%\", status: \"待系统管理员审批\", approver: \"系统管理员\", owner: \"Amazon 运营总监\", risk: \"紧急\", simulated: true },\n { id: \"PL-0503-003\", type: \"周度推送计划\", requestId: \"WK-20260503-002\", asin: \"多 ASIN\", site: \"US/UK\", target: 2400, coverage: \"部分覆盖\", channelMix: \"IM 50% / EDM 30% / App 20%\", status: \"用户负责人待审\", approver: \"用户运营负责人\", owner: \"用户运营组长\", risk: \"中\", simulated: true }\n ],\n pushes: [\n { id: \"PS-0503-001\", plan: \"PL-0503-001\", channel: \"IM\", strategy: \"购后真实体验回访\", h5: \"H5-Review-01\", assets: \"图片 A / 文案 B\", audience: \"购后 7-21 天用户\", sent: 980, click: 246, reply: 132, optout: \"0.8%\", risk: \"低\", status: \"执行中\", optimization: \"维持当前策略\" },\n { id: \"PS-0502-006\", plan: \"PL-0503-003\", channel: \"EDM\", strategy: \"老用户内容召回\", h5: \"H5-Story-03\", assets: \"图片 C / 文案 D\", audience: \"高互动老用户\", sent: 1600, click: 188, reply: 87, optout: \"2.9%\", risk: \"高\", status: \"风险复核\", optimization: \"暂停同策略并复盘\" },\n { id: \"PS-0502-009\", plan: \"PL-0503-003\", channel: \"TEL\", strategy: \"客服电话回访\", h5: \"无\", assets: \"话术 V2\", audience: \"活动参与用户\", sent: 740, click: 0, reply: 66, optout: \"无\", risk: \"中\", status: \"暂停待审\", optimization: \"调整拨打时段\" },\n { id: \"PS-0503-010\", plan: \"KOC-PR-001\", channel: \"PR/KOC\", strategy: \"对外合作跟进\", h5: \"H5-KOC-02\", assets: \"CODE 图 / 返点说明\", audience: \"KOC 21 / KOL 6\", sent: 27, click: 19, reply: 11, optout: \"无\", risk: \"中\", status: \"价格待确认\", optimization: \"补齐提款信息\" }\n ],\n support: [\n { id: \"CS-0503-001\", type: \"差评跟进\", user: \"JH-****-9021\", asin: \"B0TES007\", owner: \"客服 A\", status: \"处理中\", risk: \"中\", sla: \"6h\", avgResponse: \"12m\", workHours: \"6.5h\", attendance: \"正常\", output: \"处理 18 / 完成 12\" },\n { id: \"CS-0503-002\", type: \"诈骗疑似\", user: \"JH-****-7712\", asin: \"B0TES003\", owner: \"客服组长\", status: \"升级风险\", risk: \"高\", sla: \"2h\", avgResponse: \"8m\", workHours: \"7.2h\", attendance: \"关键岗缺 1\", output: \"处理 9 / 升级 3\" },\n { id: \"CS-0503-003\", type: \"承诺配合用户\", user: \"JH-****-1180\", asin: \"B0TES001\", owner: \"客服 B\", status: \"待回访\", risk: \"低\", sla: \"24h\", avgResponse: \"18m\", workHours: \"5.8h\", attendance: \"请假 0.5 天\", output: \"处理 16 / 完成 10\" }\n ],\n risks: [\n { id: \"RK-0503-001\", type: \"诈骗同步\", subject: \"JH-****-7712\", relation: \"Profile / 邮箱 / 设备号\", status: \"待同步黑名单\", risk: \"高\" },\n { id: \"RK-0503-002\", type: \"黑名单同步失败\", subject: \"JH-****-2098\", relation: \"接口超时\", status: \"失败待重试\", risk: \"高\" },\n { id: \"RK-0503-003\", type: \"规则提醒\", subject: \"PS-0502-006\", relation: \"退订率高于基线\", status: \"待复核\", risk: \"中\" }\n ],\n syncLogs: [\n { id: \"DT-001\", source: \"Amazon 订单\", interval: \"10 分钟\", last: \"2026-05-03 10:20\", status: \"正常\", rows: 1240 },\n { id: \"DT-002\", source: \"Amazon 评价\", interval: \"运营稳定更新\", last: \"2026-05-03 09:50\", status: \"正常\", rows: 216 },\n { id: \"DT-003\", source: \"黑名单系统\", interval: \"待接口确认\", last: \"2026-05-03 09:42\", status: \"部分失败\", rows: 5 },\n { id: \"DT-004\", source: \"用户画像标签\", interval: \"规划中\", last: \"模拟\", status: \"模拟\", rows: 0 }\n ],\n reports: [\n { id: \"RP-000\", name: \"目标完成度与问题总结\", owner: \"系统管理员\", range: \"日/周/月\", schedule: \"实时入口,周月预生成\", upload: \"数据分析 / OKR / 项目负责人提交\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-001\", name: \"Listing 健康日报\", owner: \"系统管理员 / Amazon 总监\", range: \"日/周/月\", schedule: \"每日 08:30\", upload: \"自动生成\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-002\", name: \"推送效果与风险复盘\", owner: \"用户运营负责人\", range: \"日/周/月\", schedule: \"每日 09:00周月预生成\", upload: \"支持上传补充记录\", exportable: \"是\", masked: \"默认脱敏\" },\n { id: \"RP-003\", name: \"诈骗同步审计表\", owner: \"系统管理员 / 风险负责人\", range: \"近 7/30 天\", schedule: \"每日 10:00\", upload: \"人工复核附件\", exportable: \"是\", masked: \"强制脱敏\" }\n ],\n system: [\n { id: \"SY-001\", module: \"系统授权\", status: \"待细化\", owner: \"系统管理员\", note: \"主管、组长、组员、客服、外部商家分层权限\" },\n { id: \"SY-002\", module: \"新建账号\", status: \"MVP 可模拟\", owner: \"系统管理员\", note: \"按部门、角色、站点、数据范围开通账号\" },\n { id: \"SY-003\", module: \"离职管理\", status: \"必需\", owner: \"系统管理员\", note: \"停用账号、交接任务、回收敏感权限\" },\n { id: \"SY-004\", module: \"权限分配\", status: \"必需\", owner: \"系统管理员\", note: \"导出、审批、查看敏感信息、黑名单同步独立授权\" },\n { id: \"SY-005\", module: \"审计日志\", status: \"必需\", owner: \"系统管理员\", note: \"导出、查看敏感信息、黑名单同步、审批动作\" }\n ],\n legacyPages: [\n {\n id: \"ERP-USER-001\",\n page: \"用户管理\",\n module: \"用户中心 / 用户\",\n currentFields: \"ID、用户名、头像、注册时间、最近活跃时间、用户身份、标签、邮箱后缀、主页背景图、自我介绍\",\n queryFields: \"搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份\",\n relations: \"用户 - 标签 - 身份 - 产品 - 活动 - EDM - 渠道\",\n usage: \"用户画像筛选、推送人群、客服定位、风险排查\",\n mvpAction: \"纳入用户主档与运营筛选字段\",\n risk: \"高\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-TAG-001\",\n page: \"公域-用户标签\",\n module: \"标签 / 公域用户\",\n currentFields: \"ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、备注、状态\",\n queryFields: \"搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间\",\n relations: \"公域用户标签 - 用户覆盖人数 - 打标记录 - 标签分类\",\n usage: \"公域人群圈选、覆盖人数评估、推送前过滤\",\n mvpAction: \"作为用户标签维表与人群查询条件\",\n risk: \"中\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-TAG-002\",\n page: \"公域-产品标签\",\n module: \"标签 / 公域产品\",\n currentFields: \"标签ID、标签名称、产品、标签覆盖产品数量、备注、创建时间、创建人\",\n queryFields: \"搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间\",\n relations: \"产品标签 - 产品 - 品牌 - Listing / ASIN\",\n usage: \"产品分层、Listing 健康策略、产品绑定率分析\",\n mvpAction: \"补充产品标签维表并关联 Listing 管理\",\n risk: \"中\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-TAG-003\",\n page: \"私域-用户标签\",\n module: \"标签 / 私域用户\",\n currentFields: \"ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、状态\",\n queryFields: \"搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间\",\n relations: \"私域用户标签 - 用户 - 社群/活动 - 客服/推送\",\n usage: \"私域精细运营、客服分组、活动复盘、风险用户隔离\",\n mvpAction: \"和公域标签分开建模,统一进入用户画像查询\",\n risk: \"高\",\n source: \"截图识别\",\n simulated: true\n },\n {\n id: \"ERP-ID-001\",\n page: \"身份管理\",\n module: \"身份\",\n currentFields: \"账号身份、图标PNG、图标PNG、图标PNG、操作\",\n queryFields: \"截图未展示查询区;建议补充身份名称、图标语言、状态、更新时间\",\n relations: \"身份 - 用户 - 多语言图标 - 权限/可见标识\",\n usage: \"识别官方、品牌、达人、风险、客服等用户身份\",\n mvpAction: \"纳入身份维表,补齐身份状态和多语言图标字段\",\n risk: \"中\",\n source: \"截图识别\",\n simulated: true\n }\n ],\n legacyFields: [\n { id: \"F-USER-001\", key: \"joyhub_user_id\", cn: \"JOYHUB 用户ID\", type: \"string\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"是\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-002\", key: \"username\", cn: \"用户名\", type: \"string\", source: \"用户管理\", permission: \"授权可见\", masked: \"部分脱敏\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-003\", key: \"avatar_url\", cn: \"头像\", type: \"string/url\", source: \"用户管理\", permission: \"授权可见\", masked: \"否\", exportable: \"否\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-004\", key: \"registered_at\", cn: \"注册时间\", type: \"datetime\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-005\", key: \"last_active_at\", cn: \"最近活跃时间\", type: \"datetime\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-006\", key: \"identity_ids\", cn: \"用户身份\", type: \"array<string>\", source: \"身份管理\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"用户管理/身份管理\", simulated: \"否\" },\n { id: \"F-USER-007\", key: \"public_user_tag_ids\", cn: \"公域用户标签\", type: \"array<string>\", source: \"公域-用户标签\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"公域-用户标签\", simulated: \"否\" },\n { id: \"F-USER-008\", key: \"private_user_tag_ids\", cn: \"私域用户标签\", type: \"array<string>\", source: \"私域-用户标签\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"私域-用户标签\", simulated: \"否\" },\n { id: \"F-USER-009\", key: \"email_domain\", cn: \"邮箱后缀\", type: \"string\", source: \"用户管理\", permission: \"全员可见\", masked: \"已脱敏\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-010\", key: \"country\", cn: \"国家\", type: \"string\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-011\", key: \"gender\", cn: \"性别\", type: \"enum\", source: \"用户管理\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-012\", key: \"bound_product_count\", cn: \"绑定过的产品数\", type: \"integer\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-013\", key: \"connected_product_count\", cn: \"连接过的产品数\", type: \"integer\", source: \"用户管理\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"否\" },\n { id: \"F-USER-014\", key: \"activity_participation_count\", cn: \"参与过的活动数\", type: \"integer\", source: \"活动数据\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"待接口\" },\n { id: \"F-USER-015\", key: \"edm_push_count_7d\", cn: \"近7天EDM推送数\", type: \"integer\", source: \"推送数据\", permission: \"授权可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"用户管理\", simulated: \"待接口\" },\n { id: \"F-TAG-001\", key: \"tag_code\", cn: \"标签编号\", type: \"string\", source: \"标签模块\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"公域/私域用户标签\", simulated: \"否\" },\n { id: \"F-TAG-002\", key: \"tag_scope\", cn: \"标签域\", type: \"enum\", source: \"新增字段\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"标签模块\", simulated: \"是\" },\n { id: \"F-TAG-003\", key: \"tag_coverage_user_count\", cn: \"标签覆盖人数\", type: \"integer\", source: \"标签模块\", permission: \"全员可见\", masked: \"否\", exportable: \"是\", blacklistSync: \"否\", page: \"公域/私域用户标签\", simulated: \"否\" },\n { id: \"F-ID-001\", key: \"identity_group\", cn: \"身份分组\", type: \"enum\", source: \"新增字段\", permission: \"系统管理员/负责人\", masked: \"否\", exportable: \"是\", blacklistSync: \"风险辅助\", page: \"身份管理\", simulated: \"是\" },\n { id: \"F-ID-002\", key: \"risk_level\", cn: \"身份风险等级\", type: \"enum\", source: \"新增字段\", permission: \"系统管理员/风险负责人\", masked: \"否\", exportable: \"是\", blacklistSync: \"是\", page: \"身份管理\", simulated: \"是\" }\n ],\n legacyRelations: [\n { id: \"REL-001\", name: \"用户 - 用户标签\", cardinality: \"多对多\", entities: \"users ↔ user_tags\", queryValue: \"人群圈选、用户画像、风险过滤\", priority: \"P0\" },\n { id: \"REL-002\", name: \"用户 - 身份\", cardinality: \"待确认:一对多或多对多\", entities: \"users ↔ identities\", queryValue: \"官方、品牌、达人、客服、风险身份识别\", priority: \"P0\" },\n { id: \"REL-003\", name: \"用户 - 产品\", cardinality: \"多对多\", entities: \"users ↔ products\", queryValue: \"绑定/连接产品、测评用户池、客服定位\", priority: \"P0\" },\n { id: \"REL-004\", name: \"产品 - 产品标签 - Listing\", cardinality: \"多对多\", entities: \"products ↔ product_tags ↔ listings\", queryValue: \"产品分层、Listing 健康策略、ASIN 归因\", priority: \"P1\" },\n { id: \"REL-005\", name: \"用户 - 活动\", cardinality: \"多对多\", entities: \"users ↔ activities\", queryValue: \"活动参与、KOC/KOL、私域运营沉淀\", priority: \"P1\" },\n { id: \"REL-006\", name: \"用户 - 推送\", cardinality: \"一对多\", entities: \"users ↔ push_records\", queryValue: \"IM/EDM/TEL/App Push 频控、点击、回复、退订\", priority: \"P0\" },\n { id: \"REL-007\", name: \"用户 - 风险/黑名单\", cardinality: \"一对多\", entities: \"users ↔ risk_events\", queryValue: \"诈骗同步、客服升级、风险用户隔离\", priority: \"P0\" }\n ],\n legacyQueries: [\n { id: \"QR-001\", scene: \"用户主档查询\", conditions: \"JOYHUB ID、用户名、邮箱后缀、国家、性别、注册/活跃时间\", output: \"用户主档、标签、身份、产品关系、近期活跃\", landing: \"用户中心 / 客服中心 / 风险中心\", priority: \"P0\" },\n { id: \"QR-002\", scene: \"推送前人群圈选\", conditions: \"标签、身份、国家、渠道、产品绑定/连接、活动、EDM近7天次数\", output: \"候选用户数、预计触达、频控风险、可保存人群包\", landing: \"计划中心 / 推送中心\", priority: \"P0\" },\n { id: \"QR-003\", scene: \"测评与真实评价跟踪人群\", conditions: \"ASIN/Listing、产品绑定、连接产品、最近活跃、国家/站点、风险身份排除\", output: \"推荐用户池、排除用户池、进入计划中心\", landing: \"需求中心 / 计划中心 / 客服中心\", priority: \"P0\" },\n { id: \"QR-004\", scene: \"标签覆盖查询\", conditions: \"标签分类、打标方式、覆盖人数、最新打标时间、状态\", output: \"标签列表、覆盖趋势、异常覆盖提示\", landing: \"现有ERP / 数据中心\", priority: \"P1\" },\n { id: \"QR-005\", scene: \"身份风险查询\", conditions: \"身份名称、身份分组、风险等级、状态\", output: \"风险用户池、客服/推送排除名单、黑名单同步候选\", landing: \"风险中心 / 系统管理\", priority: \"P1\" }\n ]\n };\n\n const tableSchemas = {\n requests: [\"需求ID\", \"类型\", \"提交人\", \"审核人\", \"审核结果\", \"来源表单\", \"ASIN/站点\", \"当前环节\", \"负责人\", \"风险\", \"截止\", \"操作\"],\n listings: [\"Listing\", \"站点组合\", \"评分\", \"等级\", \"评价数\", \"差评数\", \"健康状态\", \"责任人\", \"问题所在\", \"参与人员/进度\", \"操作\"],\n plans: [\"计划ID\", \"类型\", \"关联需求\", \"ASIN/站点\", \"覆盖状态\", \"资源分配\", \"目标量\", \"状态\", \"审批人\", \"风险\", \"操作\"],\n push: [\"推送ID\", \"计划\", \"渠道\", \"策略\", \"H5/素材\", \"人群\", \"发送\", \"点击\", \"回复\", \"退订\", \"风险\", \"状态\", \"操作\"],\n support: [\"工单ID\", \"类型\", \"用户摘要\", \"ASIN\", \"负责人\", \"平均响应\", \"工作时长\", \"出勤\", \"人均产出\", \"风险\", \"SLA\", \"操作\"],\n risk: [\"事件ID\", \"类型\", \"主体摘要\", \"关联字段\", \"状态\", \"风险\", \"操作\"],\n data: [\"日志ID\", \"来源\", \"同步频率\", \"最近同步\", \"状态\", \"记录数\", \"操作\"],\n legacy: [\"页面ID\", \"现有页面\", \"模块\", \"现有表格字段\", \"现有查询条件\", \"关系对象\", \"MVP纳入方式\", \"风险\", \"操作\"],\n reports: [\"报表ID\", \"报表名称\", \"可见角色\", \"周期\", \"生成计划\", \"上传/记录\", \"可导出\", \"脱敏\", \"操作\"],\n system: [\"配置ID\", \"模块\", \"状态\", \"负责人\", \"说明\", \"操作\"]\n };\n\n function escapeHtml(value) {\n return String(value)\n .replace(/&/g, \"&amp;\")\n .replace(/</g, \"&lt;\")\n .replace(/>/g, \"&gt;\")\n .replace(/\"/g, \"&quot;\");\n }\n\n function toneClass(value) {\n if ([\"高\", \"紧急\", \"失败\", \"部分失败\"].includes(value)) return \"red\";\n if ([\"中\", \"待细化\", \"暂停待审\", \"风险复核\"].includes(value)) return \"amber\";\n if ([\"低\", \"正常\", \"已完成\", \"执行中\"].includes(value)) return \"green\";\n if ([\"模拟\", \"MVP 可模拟\"].includes(value)) return \"gray\";\n return \"blue\";\n }\n\n function tag(value, tone) {\n return `<span class=\"tag ${tone || toneClass(value)}\">${escapeHtml(value)}</span>`;\n }\n\n function setRoute(route, tab = \"all\") {\n state.route = route;\n state.activeTab = tab;\n window.location.hash = `${route}${tab !== \"all\" ? `:${tab}` : \"\"}`;\n render();\n }\n\n function renderNav() {\n const activeGroup = moduleGroups.find((group) => group.routes.includes(state.route)) || moduleGroups[0];\n const rail = document.getElementById(\"moduleRail\");\n if (rail) {\n rail.innerHTML = moduleGroups.map((group) => {\n const targetRoute = group.routes.includes(state.route) ? state.route : group.routes[0];\n return `\n <button class=\"rail-button ${group.id === activeGroup.id ? \"active\" : \"\"}\" data-route=\"${targetRoute}\">\n <span class=\"rail-icon\">${group.icon}</span>\n <span class=\"rail-label\">${group.label}</span>\n <span class=\"rail-count\">${group.count}</span>\n </button>\n `;\n }).join(\"\");\n }\n const moduleTitle = document.getElementById(\"moduleTitle\");\n const moduleNote = document.getElementById(\"moduleNote\");\n if (moduleTitle) moduleTitle.textContent = activeGroup.title;\n if (moduleNote) moduleNote.textContent = activeGroup.note;\n const nav = document.getElementById(\"nav\");\n const scopedRoutes = routes.filter((route) => activeGroup.routes.includes(route.id));\n nav.innerHTML = scopedRoutes.map((route) => `\n <button class=\"nav-button ${state.route === route.id ? \"active\" : \"\"}\" data-route=\"${route.id}\">\n <span class=\"nav-icon\">${route.icon}</span>\n <span class=\"nav-label\">${route.label}</span>\n <span class=\"nav-count\">${route.count}</span>\n </button>\n `).join(\"\");\n }\n\n function renderHeader(title, note, actions = \"\") {\n return `\n <div class=\"page-head\">\n <div>\n <h1>${title}</h1>\n <div class=\"page-note\">${note}</div>\n </div>\n <div class=\"button-row\">${actions}</div>\n </div>\n `;\n }\n\n function renderSourceNote() {\n return `\n <div class=\"source-note\">\n ${tag(\"模拟数据\", \"gray\")}\n <span>${DATA_SOURCE}</span>\n </div>\n `;\n }\n\n function renderTimeToolbar() {\n return `\n <div class=\"time-toolbar\">\n <div class=\"time-controls\">\n <strong>时间范围</strong>\n <input type=\"date\" value=\"${state.startDate}\" data-time=\"startDate\" />\n <span>至</span>\n <input type=\"date\" value=\"${state.endDate}\" data-time=\"endDate\" />\n <select data-time=\"preset\">\n <option>最近 7 天</option>\n <option>最近 30 天</option>\n <option>本月</option>\n <option>自定义</option>\n </select>\n </div>\n <div class=\"period-toggle\">\n ${[\"day\", \"week\", \"month\"].map((period) => `\n <button class=\"${state.period === period ? \"active\" : \"\"}\" data-period=\"${period}\">\n ${period === \"day\" ? \"日\" : period === \"week\" ? \"周\" : \"月\"}\n </button>\n `).join(\"\")}\n </div>\n <div class=\"source-note\">\n ${tag(\"周/月预生成\", \"gray\")}\n <span>周、月数据可由后台异步预生成,降低页面访问卡顿。</span>\n </div>\n </div>\n `;\n }\n\n function renderSpark(values) {\n const max = Math.max(...values, 1);\n return `\n <span class=\"spark\" aria-hidden=\"true\">\n ${values.map((value) => `<i style=\"height:${Math.max(6, Math.round((value / max) * 24))}px\"></i>`).join(\"\")}\n </span>\n `;\n }\n\n function renderKpis() {\n return `\n <div class=\"grid kpi-grid\">\n ${records.kpis.map((kpi) => `\n <button class=\"kpi-card\" data-route=\"${kpi.route}\" data-tab=\"${kpi.filter}\">\n <div class=\"kpi-top\">\n <div class=\"kpi-title\">${escapeHtml(kpi.title)}</div>\n ${tag(kpi.filter, kpi.tone)}\n </div>\n <div class=\"kpi-value\">${kpi.value}</div>\n <div class=\"kpi-foot\">\n <span>${escapeHtml(kpi.desc)}</span>\n <span>查看</span>\n </div>\n <div class=\"trend-line\">\n <span>日 ${kpi.trend.day}</span>\n <span>周 ${kpi.trend.week}</span>\n <span>月 ${kpi.trend.month}</span>\n </div>\n <div class=\"kpi-foot\">\n ${renderSpark(kpi.spark)}\n ${tag(kpi.trend.risk, kpi.tone)}\n </div>\n </button>\n `).join(\"\")}\n </div>\n `;\n }\n\n function renderDashboard() {\n return `\n ${renderCommandStatusStrip()}\n <div class=\"command-grid\">\n ${renderPriorityQueue()}\n <div class=\"side-stack\">\n ${renderRiskSummaryBoard()}\n ${renderApprovalAgingBoard()}\n </div>\n </div>\n <div class=\"matrix-grid\">\n ${renderThemeMatrix()}\n ${renderChannelMatrix()}\n </div>\n `;\n }\n\n function renderCommandStatusStrip() {\n const units = [\n { name: \"P0 待处理\", value: \"3\", sub: \"最长等待 6h\", tone: \"alert\", route: \"plans\", tab: \"blocked\", priority: 3 },\n { name: \"审核卡点\", value: \"4\", sub: \"影响 2 个计划\", tone: \"warning\", route: \"plans\", tab: \"approval\", priority: 4 },\n { name: \"紧急 Listing\", value: \"7\", sub: \"新 3 / 存量 4\", tone: \"alert\", route: \"listings\", tab: \"emergency\", priority: 5 },\n { name: \"黑名单失败\", value: \"2\", sub: \"高危 1\", tone: \"alert\", route: \"risk\", tab: \"sync_failed\", priority: 6 },\n { name: \"推送复核\", value: \"3\", sub: \"EDM 风险高\", tone: \"warning\", route: \"push\", tab: \"risk\", priority: 7 },\n { name: \"评价产出\", value: \"96\", sub: \"近 7 天稳定\", tone: \"\", route: \"reports\", tab: \"review_done\", priority: 8 },\n { name: \"目标完成度\", value: \"76%\", sub: \"周目标差 6%\", tone: \"goal warning\", route: \"reports\", tab: \"okr\", priority: 1, featured: true, progress: 76 },\n { name: \"问题总结\", value: \"9\", sub: \"数据 4 / OKR 2 / 项目 3\", tone: \"alert\", route: \"reports\", tab: \"issue_summary\", priority: 2, featured: true }\n ];\n const coreUnits = units.filter((unit) => unit.featured);\n const restUnits = units.filter((unit) => !unit.featured);\n const orderedRest = state.statusPriorityFirst\n ? [...restUnits].sort((a, b) => a.priority - b.priority)\n : restUnits;\n const ordered = [...coreUnits, ...orderedRest];\n return `\n <section class=\"command-board\">\n <div class=\"command-board-head\">\n <div class=\"command-board-title\">\n <h2>核心看板</h2>\n <span>目标 / 问题 / 卡点</span>\n </div>\n </div>\n <div class=\"command-status-strip ${state.statusExpanded ? \"is-expanded\" : \"is-collapsed\"}\">\n ${ordered.map((unit, index) => `\n <button class=\"status-unit ${unit.tone} ${unit.featured ? \"featured\" : \"\"} ${!unit.featured && index > 5 ? \"optional\" : \"\"}\" data-route=\"${unit.route}\" data-tab=\"${unit.tab}\">\n <div class=\"status-name\">${unit.name}</div>\n <div class=\"status-value\"><span>${unit.value}</span><small>${unit.sub}</small></div>\n ${unit.progress ? `<div class=\"status-progress\" aria-label=\"目标完成进度\"><span style=\"--progress:${unit.progress}%;\"></span></div>` : \"\"}\n </button>\n `).join(\"\")}\n </div>\n <div class=\"command-board-actions\">\n <button class=\"mini-btn ${state.statusPriorityFirst ? \"primary\" : \"\"}\" data-action=\"priority-status\">\n ${state.statusPriorityFirst ? \"高风险\" : \"原序\"}\n </button>\n <button class=\"mini-btn\" data-action=\"toggle-status\">\n ${state.statusExpanded ? \"收起\" : \"展开\"}\n </button>\n </div>\n </section>\n `;\n }\n\n function renderPriorityQueue() {\n const rows = [\n [\"P0\", \"紧急 Listing 策略等待确认\", \"B0TES005 / JP / 评分 4.21\", \"Amazon 总监\", \"超 4h\", \"审批\", \"critical\", \"plans\", \"blocked\"],\n [\"P0\", \"黑名单同步失败需判断严重度\", \"JH-****-2098 / 接口超时 / 高危 1\", \"风险负责人\", \"2h\", \"处理\", \"critical\", \"risk\", \"sync_failed\"],\n [\"P1\", \"EDM 推送复核后再放量\", \"PS-0502-006 / 退订率 2.9%\", \"用户运营组长\", \"今日 12:00\", \"复核\", \"warning\", \"push\", \"risk\"],\n [\"P1\", \"Amazon 已批需求待接收\", \"8 个测评需求 / 最长等待 6h\", \"用户运营负责人\", \"今日 18:00\", \"接收\", \"warning\", \"plans\", \"amazon_approved\"],\n [\"P2\", \"菲律宾 TEL 排班缺口\", \"关键岗位缺 1 / 影响回访覆盖\", \"客服负责人\", \"明日 10:00\", \"分配\", \"\", \"support\", \"ph\"]\n ];\n return `\n <section class=\"panel\">\n <div class=\"panel-head panel-toolbar\">\n <div>\n <h2 class=\"panel-title\">P0/P1 处理队列</h2>\n <div class=\"panel-note\">首页唯一主任务区:风险、对象、负责人、时限和操作放在同一行。</div>\n </div>\n <div class=\"compact-tabs\">\n <button class=\"active\" data-tab=\"all\">全部</button>\n <button data-route=\"plans\" data-tab=\"blocked\">审核</button>\n <button data-route=\"listings\" data-tab=\"emergency\">Listing</button>\n <button data-route=\"risk\" data-tab=\"sync_failed\">黑名单</button>\n <button data-route=\"push\" data-tab=\"risk\">推送</button>\n </div>\n </div>\n <div class=\"panel-body priority-table\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr><th>级别</th><th>事项</th><th>对象</th><th>负责人</th><th>时限</th><th>操作</th></tr>\n </thead>\n <tbody>\n ${rows.map(([level, title, object, owner, due, action, cls, route, tab]) => `\n <tr>\n <td>${tag(level, level === \"P0\" ? \"red\" : level === \"P1\" ? \"amber\" : \"blue\")}</td>\n <td><div class=\"row-title\">${title}</div><div class=\"row-sub\">${cls === \"critical\" ? \"需要管理层确认\" : \"责任部门可处理,异常自动升级\"}</div></td>\n <td>${object}</td>\n <td>${owner}</td>\n <td>${due}</td>\n <td>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">${action}</button>\n <button class=\"mini-btn\" data-detail=\"workItems\" data-id=\"WK-20260503-001\">详情</button>\n </td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderRiskSummaryBoard() {\n const rows = [\n [\"数据分析\", \"Listing 4.2 附近 3 个,目标完成度拖累 6%\", \"高\", \"alert\", \"reports\", \"issue_summary\"],\n [\"OKR 总结\", \"周目标完成 76%,测评接收与推送复核是主要缺口\", \"中\", \"warning\", \"reports\", \"okr\"],\n [\"负责人提交\", \"EDM 退订超过基线,项目负责人建议暂停放量\", \"中\", \"warning\", \"push\", \"risk\"]\n ];\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">问题总结入口</h2>\n <div class=\"panel-note\">数据分析、OKR 总结、项目负责人提交统一进入这里。</div>\n </div>\n </div>\n <div class=\"side-list\">\n ${rows.map(([name, meta, risk, cls, route, tab]) => `\n <button class=\"side-row ${cls}\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"side-row-title\"><span>${name}</span>${tag(risk)}</div>\n <div class=\"side-row-meta\">${meta}</div>\n </button>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderApprovalAgingBoard() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">审核时效</h2>\n <div class=\"panel-note\">看是否卡住业务流。</div>\n </div>\n <button class=\"btn\" data-route=\"plans\" data-tab=\"approval\">全部审批</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"chart-row\">\n ${[\n [\"0-2h\", 42, \"green\"],\n [\"2-6h\", 28, \"blue\"],\n [\"6-12h\", 18, \"amber\"],\n [\"12h+\", 12, \"red\"]\n ].map(([name, value, color]) => `\n <div class=\"bar-line\">\n <span>${name}</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${value}%; background:var(--${color});\"></div></div>\n <span>${value}%</span>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function renderThemeMatrix() {\n const rows = [\n [\"目标完成度\", \"76%\", \"80%\", \"88%\", \"低于周目标 6%\", \"查看问题总结\", \"reports\", \"okr\"],\n [\"测评需求\", \"18\", \"74\", \"236\", \"已批 8 / 待接收 8\", \"用户运营接收\", \"plans\", \"amazon_approved\"],\n [\"Listing 健康\", \"新 3\", \"11\", \"29\", \"4.2 附近\", \"紧急策略审批\", \"listings\", \"emergency\"],\n [\"诈骗黑名单\", \"5\", \"18\", \"64\", \"失败 2 / 高危 1\", \"复核并同步\", \"risk\", \"sync_failed\"],\n [\"评价产出\", \"18\", \"96\", \"384\", \"稳定\", \"查看周报\", \"reports\", \"review_done\"],\n [\"客服质量\", \"12m\", \"14m\", \"16m\", \"关键岗缺 1\", \"调整排班\", \"support\", \"quality\"]\n ];\n return `\n <section class=\"panel matrix-table\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">经营主题矩阵</h2>\n <div class=\"panel-note\">每组数据有趋势、阈值和下一步动作。</div>\n </div>\n </div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>主题</th><th>日</th><th>周</th><th>月</th><th>状态</th><th>下一步</th><th>操作</th></tr></thead>\n <tbody>\n ${rows.map(([name, day, week, month, status, next, route, tab]) => `\n <tr>\n <td><strong>${name}</strong></td>\n <td>${day}</td>\n <td>${week}</td>\n <td>${month}</td>\n <td>${tag(status, status.includes(\"失败\") || status.includes(\"4.2\") || status.includes(\"缺\") || status.includes(\"低于\") ? \"red\" : status.includes(\"待\") ? \"amber\" : \"green\")}</td>\n <td>${next}</td>\n <td><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">查看</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderChannelMatrix() {\n const rows = [\n [\"IM\", \"正常\", \"980\", \"132\", \"继续\"],\n [\"EDM\", \"高风险\", \"1600\", \"87\", \"复核\"],\n [\"TEL\", \"资源紧\", \"740\", \"66\", \"排班\"],\n [\"PR/KOC\", \"逾期 2\", \"27\", \"11\", \"补资料\"],\n [\"PH 团队\", \"缺口 1\", \"-\", \"-\", \"调班\"]\n ];\n return `\n <section class=\"panel channel-table\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">渠道与团队</h2>\n <div class=\"panel-note\">只看状态和动作,不展开全量过程。</div>\n </div>\n </div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>对象</th><th>状态</th><th>触达</th><th>回复</th><th>动作</th></tr></thead>\n <tbody>\n ${rows.map(([name, status, sent, reply, action]) => `\n <tr>\n <td><strong>${name}</strong></td>\n <td>${tag(status, status === \"正常\" ? \"green\" : status.includes(\"高\") || status.includes(\"缺\") ? \"red\" : \"amber\")}</td>\n <td>${sent}</td>\n <td>${reply}</td>\n <td><button class=\"mini-btn primary\" data-route=\"${name === \"PH 团队\" ? \"support\" : \"push\"}\" data-tab=\"${name === \"EDM\" ? \"risk\" : \"all\"}\">${action}</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderExecutiveHero() {\n return `\n <section class=\"executive-hero\">\n <div class=\"focus-card\">\n <div class=\"focus-eyebrow\">今日管理判断</div>\n <h2 class=\"focus-title\">当前不是数据量问题,主要风险集中在审核卡点、紧急 Listing 和推送复核。</h2>\n <div class=\"health-score\">\n <div class=\"health-number\">78</div>\n <div class=\"health-copy\">\n 经营健康指数 / 100<br />\n 较昨日下降 4 分。需要优先处理 P0 审批和 4.2 附近 Listing。\n </div>\n </div>\n <div class=\"focus-metrics\">\n <div class=\"focus-metric\"><strong>4</strong><span>审核卡点</span></div>\n <div class=\"focus-metric\"><strong>7</strong><span>未处理紧急</span></div>\n <div class=\"focus-metric\"><strong>6h</strong><span>最长等待</span></div>\n </div>\n </div>\n <div class=\"decision-panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">需要处理的 3 件事</h2>\n <div class=\"panel-note\">按影响程度排序,只保留系统管理员需要介入的判断。</div>\n </div>\n <div class=\"button-row\">\n <button class=\"btn primary\" data-route=\"plans\" data-tab=\"blocked\">处理卡点</button>\n <button class=\"btn warning\" data-route=\"risk\" data-tab=\"risk_summary\">风险汇总</button>\n <button class=\"btn\" data-route=\"reports\" data-tab=\"weekly\">周报</button>\n </div>\n </div>\n <div class=\"decision-list\">\n ${[\n [\"P0\", \"紧急 Listing 策略等待确认\", \"B0TES005 评分 4.21,策略审批等待超过 4 小时。\", \"critical\", \"plans\", \"blocked\"],\n [\"P0\", \"黑名单同步失败需判断严重度\", \"2 条失败记录中 1 条高危,可能影响诈骗拦截。\", \"critical\", \"risk\", \"sync_failed\"],\n [\"P1\", \"EDM 推送复核后再放量\", \"退订率高于基线,周计划需要暂停同策略任务。\", \"warning\", \"push\", \"risk\"]\n ].map(([level, title, desc, cls, route, tab]) => `\n <div class=\"decision-row ${cls}\">\n <div>${tag(level, level === \"P0\" ? \"red\" : \"amber\")}</div>\n <div>\n <div class=\"decision-title\">${title}</div>\n <div class=\"decision-desc\">${desc}</div>\n </div>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">处理</button>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function renderExecutiveSnapshot() {\n const cards = [\n [\"测评需求与计划\", \"18 申请 / 8 已批\", \"primary\", \"日 18\", \"周 74\", \"月 236\", \"Amazon 提交后,用户运营接收仍有等待。\", \"plans\", \"amazon_approved\"],\n [\"Listing 健康\", \"7 未处理紧急\", \"risk\", \"新 3\", \"周 11\", \"月 29\", \"4.2 附近 Listing 是当前最高风险。\", \"listings\", \"emergency\"],\n [\"诈骗与黑名单\", \"高危 1 / 失败 2\", \"risk\", \"昨 5\", \"周 18\", \"月 64\", \"看严重度和同步失败影响,不展示全量明细。\", \"risk\", \"sync_failed\"],\n [\"评价与推送产出\", \"周 96 / 回复 296\", \"good\", \"日 18\", \"周 96\", \"月 384\", \"评价产出稳定,但 EDM 风险需要复核。\", \"reports\", \"review_done\"]\n ];\n return `\n <section class=\"executive-grid\">\n ${cards.map(([title, value, cls, day, week, month, desc, route, tab]) => `\n <button class=\"executive-card ${cls}\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"executive-title\">\n <span>${title}</span>\n ${tag(cls === \"risk\" ? \"风险\" : cls === \"good\" ? \"稳定\" : \"关注\", cls === \"risk\" ? \"red\" : cls === \"good\" ? \"green\" : \"blue\")}\n </div>\n <div class=\"executive-value\">${value}</div>\n <div class=\"period-stats\">\n <div class=\"period-stat\"><strong>${day}</strong><span>日</span></div>\n <div class=\"period-stat\"><strong>${week}</strong><span>周</span></div>\n <div class=\"period-stat\"><strong>${month}</strong><span>月</span></div>\n </div>\n <div class=\"insight-desc\">${desc}</div>\n </button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderOpsStrip() {\n const cards = [\n [\"IM\", \"正常\", \"触达 980回复 132继续执行。\", \"green\", \"push\", \"im\"],\n [\"EDM\", \"需复核\", \"退订率 2.9%,暂停同策略放量。\", \"amber\", \"push\", \"risk\"],\n [\"TEL\", \"资源紧\", \"客服回访排班接近满负载。\", \"amber\", \"support\", \"tel\"],\n [\"PR/KOC/KOL\", \"2 个逾期\", \"价格、CODE、返点信息需补齐。\", \"purple\", \"push\", \"kol\"],\n [\"菲律宾团队\", \"关键岗缺 1\", \"请假与缺席影响 TEL 覆盖。\", \"red\", \"support\", \"ph\"]\n ];\n return `\n <section class=\"ops-strip\">\n ${cards.map(([name, status, desc, tone, route, tab]) => `\n <button class=\"ops-card\" data-route=\"${route}\" data-tab=\"${tab}\">\n <div class=\"ops-name\"><span>${name}</span>${tag(status, tone)}</div>\n <div class=\"ops-status\">${desc}</div>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${tone === \"green\" ? \"72\" : tone === \"red\" ? \"84\" : \"58\"}%; background:var(--${tone === \"purple\" ? \"purple\" : tone});\"></div></div>\n </button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderDrilldownGrid() {\n const buttons = [\n [\"待审核需求\", \"requests\", \"pending_review\"],\n [\"计划覆盖缺口\", \"plans\", \"coverage\"],\n [\"紧急 Listing\", \"listings\", \"emergency\"],\n [\"客服质量\", \"support\", \"quality\"],\n [\"报表生成\", \"reports\", \"weekly\"]\n ];\n return `\n <section class=\"drilldown-grid\">\n ${buttons.map(([label, route, tab]) => `\n <button class=\"drilldown-button\" data-route=\"${route}\" data-tab=\"${tab}\">${label}</button>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderWorkPanel() {\n const tabs = [\n [\"all\", \"全部\"],\n [\"amazon_approved\", \"Amazon 已批\"],\n [\"risk_review\", \"用户运营接收\"],\n [\"support\", \"客服升级\"],\n [\"fraud\", \"风险复核\"]\n ];\n const filtered = state.activeTab === \"all\"\n ? records.workItems\n : records.workItems.filter((item) => item.status === state.activeTab);\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">跨部门待办流</h2>\n <div class=\"panel-note\">把 Amazon 已通过、用户运营接收、客服升级、风险复核放在同一条管理队列。</div>\n </div>\n <div class=\"tabs\">\n ${tabs.map(([id, label]) => `<button class=\"tab ${state.activeTab === id ? \"active\" : \"\"}\" data-tab=\"${id}\">${label}</button>`).join(\"\")}\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>来源</th><th>类型</th><th>ASIN/站点</th><th>当前环节</th>\n <th>负责人</th><th>风险</th><th>截止</th><th>动作</th>\n </tr>\n </thead>\n <tbody>\n ${filtered.map((item) => `\n <tr>\n <td>${escapeHtml(item.source)}</td>\n <td>${tag(item.type, \"blue\")}</td>\n <td>${escapeHtml(item.asin)} / ${escapeHtml(item.site)}</td>\n <td>${escapeHtml(item.stage)}</td>\n <td>${escapeHtml(item.owner)}</td>\n <td>${tag(item.risk)}</td>\n <td>${escapeHtml(item.due)}</td>\n <td>\n <button class=\"mini-btn primary\" data-detail=\"workItems\" data-id=\"${item.id}\">${escapeHtml(item.action)}</button>\n <button class=\"mini-btn\" data-action=\"open-modal\" data-modal=\"assign\" data-target=\"${item.id}\">分配</button>\n </td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderListingPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">Listing 与评价健康</h2>\n <div class=\"panel-note\">4.5 以下进入补强,接近 4.2 进入紧急协同。</div>\n </div>\n <button class=\"btn\" data-route=\"listings\" data-tab=\"all\">更多</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"chart-row\">\n ${[\n [\"4.7 以上\", 62, \"green\"],\n [\"4.5 - 4.7\", 24, \"blue\"],\n [\"4.2 - 4.5\", 11, \"amber\"],\n [\"接近 4.2\", 3, \"red\"]\n ].map(([name, value, color]) => `\n <div class=\"bar-line\">\n <span>${name}</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${value}%; background:var(--${color});\"></div></div>\n <span>${value}%</span>\n </div>\n `).join(\"\")}\n </div>\n <div class=\"table-wrap\" style=\"margin-top:12px;\">\n <table>\n <thead><tr><th>ASIN</th><th>站点</th><th>评分</th><th>健康</th><th>阶段</th><th>动作</th></tr></thead>\n <tbody>\n ${records.listings.slice(0, 4).map((item) => `\n <tr>\n <td>${item.asin}</td><td>${item.site}</td><td>${item.rating}</td>\n <td>${tag(item.health)}</td><td>${item.stage}</td>\n <td><button class=\"mini-btn primary\" data-detail=\"listings\" data-id=\"${item.id}\">查看</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderRiskPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">风险雷达</h2>\n <div class=\"panel-note\">诈骗同步、推送风险、规则提醒、数据同步异常。</div>\n </div>\n <button class=\"btn\" data-route=\"risk\" data-tab=\"all\">进入风险中心</button>\n </div>\n <div class=\"panel-body risk-list\">\n ${records.risks.map((risk) => `\n <div class=\"risk-item ${risk.risk === \"高\" ? \"high\" : \"mid\"}\">\n <div class=\"item-title\">\n <span>${escapeHtml(risk.type)}</span>\n ${tag(risk.risk)}\n </div>\n <div class=\"item-desc\">${escapeHtml(risk.subject)} · ${escapeHtml(risk.relation)} · ${escapeHtml(risk.status)}</div>\n <div><button class=\"mini-btn primary\" data-detail=\"risks\" data-id=\"${risk.id}\">处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderBlockingPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">审核卡点与已发现问题</h2>\n <div class=\"panel-note\">系统管理员页优先展示已经识别的问题,避免逐表查找。</div>\n </div>\n <button class=\"btn\" data-route=\"plans\" data-tab=\"blocked\">处理卡点</button>\n </div>\n <div class=\"panel-body risk-list\">\n ${[\n [\"紧急策略审批超 4h\", \"PL-0503-002 接近 4.2 Listing等待系统管理员确认。\", \"高\", \"plans\", \"blocked\"],\n [\"需求已批但未接收\", \"8 个 Amazon 已批准测评需求待用户运营接收,最长等待 6h。\", \"中\", \"plans\", \"amazon_approved\"],\n [\"推送风险待复核\", \"EDM 退订高于基线,相关周计划不应继续放量。\", \"高\", \"push\", \"risk\"]\n ].map(([title, desc, risk, route, tab]) => `\n <div class=\"risk-item ${risk === \"高\" ? \"high\" : \"mid\"}\">\n <div class=\"item-title\"><span>${title}</span>${tag(risk)}</div>\n <div class=\"item-desc\">${desc}</div>\n <div><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">去处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n\n function renderSuggestPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">管理动作建议</h2>\n <div class=\"panel-note\">按 P0/P1 优先级生成,后期可由算法模块增强。</div>\n </div>\n </div>\n <div class=\"panel-body suggest-list\">\n ${[\n [\"先处理 3 个紧急 Listing\", \"需要 Amazon 与用户运营共同确认跟进策略,避免评分继续逼近 4.2。\", \"listings\", \"emergency\"],\n [\"复核昨日高风险推送\", \"检查人群、素材、文案与退订反馈,必要时暂停同策略任务。\", \"push\", \"risk\"],\n [\"审核新增诈骗事件\", \"确认后同步黑名单子系统,失败记录进入重试队列和审计。\", \"risk\", \"fraud\"]\n ].map(([title, desc, route, tab]) => `\n <div class=\"suggest-item\">\n <div class=\"item-title\"><span>${title}</span>${tag(\"建议\", \"purple\")}</div>\n <div class=\"item-desc\">${desc}</div>\n <div><button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">去处理</button></div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n `;\n }\n\n function renderSummaryPanel() {\n return `\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">业务复盘与中期趋势</h2>\n <div class=\"panel-note\">日/周/月切换;系统管理员、负责人/总监、组长都能看到趋势与风险提示。</div>\n </div>\n <button class=\"btn\" data-route=\"reports\" data-tab=\"yesterday\">查看报表</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"summary-grid\">\n ${[\n [\"2,840\", \"昨日触达用户\"],\n [\"285\", \"用户回复\"],\n [\"96\", \"近 7 天评价完成\"],\n [\"4\", \"审核卡点\"]\n ].map(([value, label]) => `\n <div class=\"summary-cell\">\n <div class=\"summary-value\">${value}</div>\n <div class=\"summary-label\">${label}</div>\n </div>\n `).join(\"\")}\n </div>\n </div>\n </section>\n `;\n }\n\n function getRows(route) {\n if (route === \"requests\") return records.workItems;\n if (route === \"listings\") return records.listings;\n if (route === \"plans\") return records.plans;\n if (route === \"push\") return records.pushes;\n if (route === \"support\") return records.support;\n if (route === \"risk\") return records.risks;\n if (route === \"data\") return records.syncLogs;\n if (route === \"legacy\") return records.legacyPages;\n if (route === \"reports\") return records.reports;\n if (route === \"system\") return records.system;\n return [];\n }\n\n function rowToCells(route, item) {\n if (route === \"requests\") {\n return [item.id, tag(item.type, \"blue\"), item.submitter, item.reviewer, tag(item.approval), item.sourceForm, `${item.asin}/${item.site}`, item.stage, item.owner, tag(item.risk), item.due];\n }\n if (route === \"listings\") {\n return [item.asin, item.marketplaces, item.rating, tag(item.grade, item.grade === \"S\" ? \"red\" : item.grade === \"A\" ? \"amber\" : \"blue\"), item.reviews, item.negative, tag(item.health), item.owner, item.issue, `${item.participants} / ${item.progress}`];\n }\n if (route === \"plans\") {\n return [item.id, tag(item.type, \"blue\"), item.requestId, `${item.asin}/${item.site}`, tag(item.coverage, item.coverage === \"已覆盖\" ? \"green\" : \"amber\"), item.channelMix, item.target, item.status, item.approver, tag(item.risk)];\n }\n if (route === \"push\") {\n return [item.id, item.plan, item.channel, item.strategy, `${item.h5} / ${item.assets}`, item.audience, item.sent, item.click, item.reply, item.optout, tag(item.risk), item.status];\n }\n if (route === \"support\") {\n return [item.id, tag(item.type, \"blue\"), item.user, item.asin, item.owner, item.avgResponse, item.workHours, item.attendance, item.output, tag(item.risk), item.sla];\n }\n if (route === \"risk\") {\n return [item.id, tag(item.type, \"blue\"), item.subject, item.relation, item.status, tag(item.risk)];\n }\n if (route === \"data\") {\n return [item.id, item.source, item.interval, item.last, tag(item.status), item.rows];\n }\n if (route === \"legacy\") {\n return [item.id, item.page, item.module, item.currentFields, item.queryFields, item.relations, item.mvpAction, tag(item.risk)];\n }\n if (route === \"reports\") {\n return [item.id, item.name, item.owner, item.range, item.schedule, item.upload, tag(item.exportable, \"green\"), tag(item.masked, \"gray\")];\n }\n if (route === \"system\") {\n return [item.id, item.module, tag(item.status), item.owner, item.note];\n }\n return [];\n }\n\n function renderListPage(route) {\n if (route === \"legacy\") return renderLegacyPage();\n const routeMeta = routes.find((item) => item.id === route);\n const rows = getRows(route);\n const schema = tableSchemas[route] || [];\n const actions = listActions(route);\n return `\n ${renderHeader(routeMeta.label, pageNotes(route), actions)}\n ${renderModuleInsights(route)}\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">${routeMeta.label}列表</h2>\n <div class=\"panel-note\">当前筛选:${escapeHtml(state.activeTab)};所有记录为模拟数据。</div>\n </div>\n ${renderSourceNote()}\n </div>\n <div class=\"panel-body\">\n ${route === \"requests\" ? renderPendingStrip(\"待审核需求 6 个,其中测评需求必须由 Amazon 运营提交;飞书表单可作为创建入口并同步到 ERP。\", \"requests\", \"pending_review\") : \"\"}\n ${renderFilterBar(route)}\n <div class=\"table-wrap\">\n <table>\n <thead><tr>${schema.map((col) => `<th>${col}</th>`).join(\"\")}</tr></thead>\n <tbody>\n ${rows.map((item) => `\n <tr>\n ${rowToCells(route, item).map((cell) => `<td>${cell}</td>`).join(\"\")}\n <td>${renderRowActions(route, item)}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n `;\n }\n\n function renderLegacyPage() {\n const routeMeta = routes.find((item) => item.id === \"legacy\");\n return `\n ${renderHeader(routeMeta.label, pageNotes(\"legacy\"), listActions(\"legacy\"))}\n ${renderModuleInsights(\"legacy\")}\n <section class=\"legacy-workspace\">\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">现有页面与当前字段</h2>\n <div class=\"panel-note\">来自截图识别:先做字段盘点,不修改现有数据库结构。</div>\n </div>\n ${renderSourceNote()}\n </div>\n <div class=\"panel-body\">\n ${renderFilterBar(\"legacy\")}\n <div class=\"table-wrap\">\n <table>\n <thead><tr>${tableSchemas.legacy.map((col) => `<th>${col}</th>`).join(\"\")}</tr></thead>\n <tbody>\n ${records.legacyPages.map((item) => `\n <tr>\n ${rowToCells(\"legacy\", item).map((cell) => `<td>${cell}</td>`).join(\"\")}\n <td>${renderRowActions(\"legacy\", item)}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n\n <div class=\"legacy-split\">\n <section class=\"panel field-matrix\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">新增字段明细</h2>\n <div class=\"panel-note\">字段类型、来源、权限、脱敏、导出和黑名单同步先按 MVP 契约标注。</div>\n </div>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"field-table\">生成字段表</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>字段ID</th>\n <th>字段名</th>\n <th>中文名</th>\n <th>类型</th>\n <th>来源</th>\n <th>权限</th>\n <th>脱敏</th>\n <th>可导出</th>\n <th>黑名单同步</th>\n <th>是否模拟</th>\n </tr>\n </thead>\n <tbody>\n ${records.legacyFields.map((field) => `\n <tr>\n <td>${escapeHtml(field.id)}</td>\n <td>${escapeHtml(field.key)}</td>\n <td>${escapeHtml(field.cn)}</td>\n <td>${tag(field.type, \"gray\")}</td>\n <td>${escapeHtml(field.source)}</td>\n <td>${escapeHtml(field.permission)}</td>\n <td>${tag(field.masked, field.masked === \"否\" ? \"green\" : \"amber\")}</td>\n <td>${tag(field.exportable, field.exportable === \"是\" ? \"blue\" : \"gray\")}</td>\n <td>${tag(field.blacklistSync, field.blacklistSync === \"是\" ? \"red\" : field.blacklistSync === \"风险辅助\" ? \"amber\" : \"gray\")}</td>\n <td>${tag(field.simulated, field.simulated === \"是\" ? \"amber\" : field.simulated === \"待接口\" ? \"purple\" : \"green\")}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n\n <section class=\"panel\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">关系图谱</h2>\n <div class=\"panel-note\">先记录查询价值,再决定接口与缓存方式。</div>\n </div>\n </div>\n <div class=\"panel-body relation-grid\">\n ${records.legacyRelations.map((relation) => `\n <div class=\"relation-card\">\n <div class=\"relation-title\">\n <span>${escapeHtml(relation.name)}</span>\n ${tag(relation.priority, relation.priority === \"P0\" ? \"red\" : \"amber\")}\n </div>\n <div class=\"relation-meta\">${escapeHtml(relation.entities)} · ${escapeHtml(relation.cardinality)}</div>\n <div class=\"relation-meta\">${escapeHtml(relation.queryValue)}</div>\n </div>\n `).join(\"\")}\n </div>\n </section>\n </div>\n\n <section class=\"panel query-matrix\">\n <div class=\"panel-head\">\n <div>\n <h2 class=\"panel-title\">查询需求矩阵</h2>\n <div class=\"panel-note\">这些查询会反向决定 USER ERP 的筛选项、索引、异步汇总和导出权限。</div>\n </div>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"relationship-map\">导出现有关系</button>\n </div>\n <div class=\"panel-body\">\n <div class=\"table-wrap\">\n <table>\n <thead>\n <tr>\n <th>查询ID</th>\n <th>查询场景</th>\n <th>必要条件</th>\n <th>输出结果</th>\n <th>落点模块</th>\n <th>优先级</th>\n </tr>\n </thead>\n <tbody>\n ${records.legacyQueries.map((query) => `\n <tr>\n <td>${escapeHtml(query.id)}</td>\n <td>${escapeHtml(query.scene)}</td>\n <td>${escapeHtml(query.conditions)}</td>\n <td>${escapeHtml(query.output)}</td>\n <td>${escapeHtml(query.landing)}</td>\n <td>${tag(query.priority, query.priority === \"P0\" ? \"red\" : \"amber\")}</td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </div>\n </section>\n </section>\n `;\n }\n\n function renderModuleInsights(route) {\n const insightMap = {\n requests: [\n [\"新增需求量\", \"日 18 / 周 74 / 月 236\", \"较上周 +12%,待审核入口需前置。\", \"blue\"],\n [\"需求满足量\", \"日 11 / 周 61\", \"已完成与已覆盖需求比例 82%。\", \"green\"],\n [\"关键产品绑定率\", \"S 级 68%\", \"通过数据库定期更新,低于 60% 标记风险。\", \"amber\"]\n ],\n listings: [\n [\"评分分层\", \"4.8+ 24 / 4.5+ 81\", \"4.2-4.5 有 11 个4.2 以下 2 个。\", \"red\"],\n [\"S/A 级跟进\", \"S 级 6 / A 级 14\", \"重点看责任人、问题和参与人员进度。\", \"blue\"],\n [\"跨站点 ASIN\", \"US/CA 3 个\", \"同一 ASIN 多站点联动,需按站点分别归因。\", \"purple\"]\n ],\n plans: [\n [\"需求覆盖率\", \"已覆盖 82%\", \"未覆盖 7 个,部分覆盖 5 个。\", \"amber\"],\n [\"资源分配\", \"IM 46% / EDM 29% / TEL 25%\", \"按计划策略与团队资源匹配。\", \"blue\"],\n [\"异常计划\", \"卡点 4\", \"审批积压、资源不足、风险复核未完成。\", \"red\"]\n ],\n push: [\n [\"渠道分配\", \"IM 46% / EDM 29% / TEL 18% / PR 7%\", \"与计划中心统一看资源和执行。\", \"blue\"],\n [\"反馈效果\", \"点击 453 / 回复 296\", \"按 H5、图片、文案和用户画像拆解。\", \"green\"],\n [\"优化历史\", \"本周 8 次\", \"记录暂停、放量、换图、换文案等策略变化。\", \"purple\"]\n ],\n support: [\n [\"平均响应\", \"12m\", \"日周月响应时长与 SLA 趋势。\", \"green\"],\n [\"出勤风险\", \"请假 2 / 缺席 1\", \"菲律宾团队关键岗位缺口需提示。\", \"amber\"],\n [\"人均产出\", \"16.4 单/日\", \"统计工单、IM、EDM、TEL 处理与评价产出。\", \"blue\"]\n ],\n risk: [\n [\"新增诈骗\", \"昨 5 / 周 18 / 月 64\", \"同步黑名单前需要审核与脱敏。\", \"red\"],\n [\"同步失败严重度\", \"失败 2 / 高危 1\", \"系统管理员只看影响范围与是否严重。\", \"amber\"],\n [\"规则提醒\", \"待复核 6\", \"自动提醒规则和审核风控风险。\", \"blue\"]\n ],\n data: [\n [\"订单同步\", \"10 分钟\", \"Amazon 与独立站订单同步状态。\", \"green\"],\n [\"周月预生成\", \"已排队 4\", \"复杂统计异步处理,减少页面卡顿。\", \"blue\"],\n [\"数据异常\", \"部分失败 1\", \"黑名单接口待确认,失败进入重试。\", \"amber\"]\n ],\n legacy: [\n [\"已识别页面\", \"5 个\", \"用户管理、公域/私域标签、产品标签、身份管理已进入 MVP 字段盘点。\", \"blue\"],\n [\"核心关系\", \"用户 / 标签 / 身份 / 产品 / 活动 / EDM\", \"用户是主实体,标签和身份是筛选与画像的关键维表。\", \"purple\"],\n [\"查询条件\", \"约 30 项\", \"用户管理筛选最密集,后续应拆成基础筛选、运营筛选和风险筛选。\", \"amber\"]\n ],\n reports: [\n [\"目标完成度\", \"76%\", \"系统管理员入口优先显示目标差距和影响原因。\", \"red\"],\n [\"问题总结\", \"9 条\", \"来源包括数据分析、OKR 总结、项目负责人提交。\", \"amber\"],\n [\"指定报表\", \"12 个\", \"支持日、周、月生成和下载。\", \"blue\"]\n ],\n system: [\n [\"账号管理\", \"新增 3 / 离职 1\", \"新建账号、停用账号、交接任务。\", \"blue\"],\n [\"授权变更\", \"待审 4\", \"导出、审批、敏感信息、黑名单同步独立授权。\", \"amber\"],\n [\"审计风险\", \"高风险 2\", \"查看敏感信息和导出操作需要记录原因。\", \"red\"]\n ]\n };\n const items = insightMap[route];\n if (!items) return \"\";\n return `\n <div class=\"module-charts\">\n ${items.map(([title, value, desc, tone]) => `\n <div class=\"chart-card\">\n <div class=\"chart-title\">${escapeHtml(title)} ${tag(state.period === \"day\" ? \"日\" : state.period === \"week\" ? \"周\" : \"月\", tone)}</div>\n <div class=\"insight-value\">${escapeHtml(value)}</div>\n <div class=\"insight-desc\">${escapeHtml(desc)}</div>\n <div class=\"mini-stat-row\">\n <span>趋势</span>\n <div class=\"bar-track\"><div class=\"bar-fill\" style=\"width:${tone === \"red\" ? \"78\" : tone === \"amber\" ? \"58\" : \"68\"}%; background:var(--${tone});\"></div></div>\n <span>${tone === \"red\" ? \"高\" : tone === \"amber\" ? \"注意\" : \"正常\"}</span>\n </div>\n </div>\n `).join(\"\")}\n </div>\n `;\n }\n\n function renderPendingStrip(text, route, tab) {\n return `\n <div class=\"pending-strip\">\n <strong>待处理入口</strong>\n <span>${escapeHtml(text)}</span>\n <button class=\"mini-btn primary\" data-route=\"${route}\" data-tab=\"${tab}\">进入处理</button>\n </div>\n `;\n }\n\n function pageNotes(route) {\n const notes = {\n requests: \"承接需求提交与审核记录;测评需求由 Amazon 运营提交,飞书表单可同步进入 ERP。\",\n listings: \"按评分层级、S/A/B 等级、站点组合、责任人、问题和参与进度管理。\",\n plans: \"关注计划与需求匹配关系,确认需求后生成推广计划和紧急策略。\",\n push: \"与计划中心联动,管理 IM、EDM、TEL、PR/KOC/KOL、H5、素材、反馈和优化历史。\",\n support: \"处理工单沟通,同时关注日周月响应时长、工作时长、出勤、人均产出和菲律宾团队风险。\",\n risk: \"同步诈骗事件、黑名单状态、规则提醒与审计风险。\",\n data: \"展示订单、评价、用户、黑名单等同步状态,不作为数据仓库入口。\",\n legacy: \"对齐现有 JOYHUB ERP 用户、标签、身份页面,梳理字段、关系和查询需求。\",\n reports: \"指定报表生成、下载、上传补充记录和导出审计,支持日/周/月。\",\n system: \"处理系统授权、新建账号、离职管理、权限分配、审批流和审计日志。\"\n };\n return notes[route] || \"\";\n }\n\n function listActions(route) {\n const common = `<button class=\"btn\" data-action=\"open-modal\" data-modal=\"export\">导出</button>`;\n const map = {\n requests: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"create-request\">Amazon 提交测评需求</button><button class=\"btn\" data-route=\"requests\" data-tab=\"pending_review\">待审核入口</button>${common}`,\n listings: `<button class=\"btn warning\" data-action=\"open-modal\" data-modal=\"emergency\">创建紧急策略</button>${common}`,\n plans: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"generate-plan\">生成计划</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"approve\">批量审批</button>`,\n push: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"push-plan\">计划与推送分配</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"risk-review\">风险复核</button>`,\n support: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"assign\">分配工单</button>${common}`,\n risk: `<button class=\"btn danger\" data-action=\"open-modal\" data-modal=\"blacklist\">同步黑名单</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"risk-review\">规则复核</button>`,\n data: `<button class=\"btn\" data-action=\"open-modal\" data-modal=\"sync\">立即同步</button>`,\n legacy: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"field-table\">生成字段表</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"relationship-map\">导出现有关系</button>`,\n reports: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"export\">生成/下载报表</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"upload-report\">上传记录</button>`,\n system: `<button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"new-account\">新建账号</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"offboarding\">离职管理</button><button class=\"btn\" data-action=\"open-modal\" data-modal=\"permission\">权限分配</button>`\n };\n return map[route] || common;\n }\n\n function renderFilterBar(route) {\n if (route === \"legacy\") {\n return `\n <div class=\"filter-bar\">\n <input placeholder=\"页面 / 字段 / 关系 / 查询条件\" value=\"${escapeHtml(state.keyword)}\" data-filter=\"keyword\" />\n <select><option>全部现有页面</option><option>用户管理</option><option>公域-用户标签</option><option>公域-产品标签</option><option>私域-用户标签</option><option>身份管理</option></select>\n <select><option>全部关系对象</option><option>用户</option><option>标签</option><option>身份</option><option>产品</option><option>活动</option><option>EDM</option><option>渠道</option></select>\n <select><option>全部风险</option><option>高</option><option>中</option><option>低</option></select>\n <select><option>全部来源</option><option>截图识别</option><option>待接口确认</option><option>待数据库确认</option></select>\n <button class=\"btn primary\" data-action=\"toast\" data-message=\"已按现有 ERP 页面、字段和关系执行模拟查询\">查询</button>\n </div>\n `;\n }\n return `\n <div class=\"filter-bar\">\n <input placeholder=\"关键词ID / ASIN / 负责人 / 用户摘要\" value=\"${escapeHtml(state.keyword)}\" data-filter=\"keyword\" />\n <input type=\"date\" value=\"${state.startDate}\" data-time=\"startDate\" />\n <input type=\"date\" value=\"${state.endDate}\" data-time=\"endDate\" />\n <select><option>全部站点</option><option>US</option><option>CA</option><option>US/CA</option><option>UK</option><option>DE</option><option>JP</option></select>\n <select><option>全部状态</option><option>待审批</option><option>执行中</option><option>风险复核</option><option>已完成</option></select>\n <select><option>全部风险</option><option>紧急</option><option>高</option><option>中</option><option>低</option></select>\n <select><option>全部负责人</option><option>张三</option><option>李四</option><option>王五</option></select>\n <button class=\"btn primary\" data-action=\"toast\" data-message=\"已按当前条件执行模拟查询\">查询</button>\n </div>\n `;\n }\n\n function renderRowActions(route, item) {\n const detailGroup = {\n requests: \"workItems\",\n listings: \"listings\",\n plans: \"plans\",\n push: \"pushes\",\n support: \"support\",\n risk: \"risks\",\n data: \"syncLogs\",\n legacy: \"legacyPages\",\n reports: \"reports\",\n system: \"system\"\n }[route];\n const primaryText = route === \"risk\" ? \"处理\" : route === \"plans\" ? \"审批\" : \"查看\";\n return `\n <button class=\"mini-btn primary\" data-detail=\"${detailGroup}\" data-id=\"${item.id}\">${primaryText}</button>\n <button class=\"mini-btn\" data-action=\"open-modal\" data-modal=\"${route === \"reports\" ? \"export\" : \"approve\"}\" data-target=\"${item.id}\">${route === \"reports\" ? \"导出\" : \"流转\"}</button>\n `;\n }\n\n function openDrawer(group, id) {\n const list = records[group] || [];\n const item = list.find((entry) => entry.id === id);\n if (!item) return;\n document.getElementById(\"drawerTitle\").textContent = `${id} 详情`;\n document.getElementById(\"drawerSubtitle\").textContent = `${DATA_SOURCE};敏感字段默认脱敏。`;\n document.getElementById(\"drawerBody\").innerHTML = `\n <div class=\"detail-grid\">\n ${Object.entries(item).map(([key, value]) => `\n <div class=\"detail-cell\">\n <div class=\"detail-label\">${escapeHtml(key)}</div>\n <div class=\"detail-value\">${escapeHtml(value)}</div>\n </div>\n `).join(\"\")}\n </div>\n <section class=\"panel\">\n <div class=\"panel-head\"><h3 class=\"panel-title\">状态流转记录</h3></div>\n <div class=\"panel-body timeline\">\n <div class=\"timeline-item\">2026-05-03 09:10 创建记录</div>\n <div class=\"timeline-item\">2026-05-03 09:40 自动规则提醒完成</div>\n <div class=\"timeline-item\">2026-05-03 10:20 等待当前负责人处理</div>\n </div>\n </section>\n <section class=\"panel\">\n <div class=\"panel-head\"><h3 class=\"panel-title\">脱敏与审计</h3></div>\n <div class=\"panel-body\">\n <div class=\"item-desc\">JOYHUB ID、邮箱、电话、设备号、IP、订单号等字段在 MVP 原型中仅展示脱敏摘要。点击“查看完整信息”会记录审计,本原型仅模拟弹窗。</div>\n </div>\n </section>\n `;\n document.getElementById(\"drawerFoot\").innerHTML = `\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"audit\">查看完整信息</button>\n <button class=\"btn\" data-action=\"open-modal\" data-modal=\"assign\">分配</button>\n <button class=\"btn primary\" data-action=\"open-modal\" data-modal=\"approve\">审批/确认</button>\n `;\n document.getElementById(\"drawerMask\").classList.add(\"open\");\n document.getElementById(\"drawer\").classList.add(\"open\");\n }\n\n function closeDrawer() {\n document.getElementById(\"drawerMask\").classList.remove(\"open\");\n document.getElementById(\"drawer\").classList.remove(\"open\");\n }\n\n function openModal(type, target = \"\") {\n const configs = {\n notice: [\"通知中心\", \"展示待办、审批退回、风险提醒与同步失败通知。\", \"标记已读\"],\n export: [\"导出确认\", \"仅主管和系统管理员可导出。导出字段默认脱敏,并写入审计日志。\", \"确认导出\"],\n assign: [\"任务分配\", \"选择下一个责任部门和负责人,支持设置截止时间。\", \"确认分配\"],\n approve: [\"审批/流转\", \"选择通过、退回、转交、升级或关闭,并填写审批意见。\", \"提交审批\"],\n \"create-request\": [\"Amazon 提交测评需求\", \"测评需求由 Amazon 运营提交客服、KOC/KOL、诈骗等其他需求由对应部门或飞书表单入口同步。\", \"提交审核\"],\n emergency: [\"紧急 Listing 策略\", \"用于接近 4.2 的 Listing需 Amazon 与用户运营共同确认。\", \"提交策略审批\"],\n \"generate-plan\": [\"自动生成计划\", \"根据 Listing 健康度、站点目标和用户画像生成计划草稿。\", \"生成草稿\"],\n \"push-plan\": [\"计划与推送分配\", \"按计划资源分配 IM、EDM、TEL、PR/KOC/KOL绑定 H5 页面、图片、文案实验和发送窗口。\", \"保存分配\"],\n \"risk-review\": [\"规则与风险复核\", \"复核推送风险、规则提醒、退订异常和客服升级。\", \"确认复核\"],\n blacklist: [\"同步黑名单\", \"确认诈骗事件后同步黑名单子系统,失败时进入重试队列。\", \"确认同步\"],\n sync: [\"立即同步\", \"触发订单、评价、黑名单或推送回执同步。本原型只模拟动作。\", \"开始同步\"],\n \"field-table\": [\"生成字段表\", \"根据现有 JOYHUB ERP 页面截图生成字段、类型、来源、权限、脱敏和是否进入 MVP 的字段表。\", \"生成字段表\"],\n \"relationship-map\": [\"导出现有关系\", \"导出用户、标签、身份、产品、活动、EDM、渠道之间的关系清单供接口和查询设计使用。\", \"导出关系\"],\n permission: [\"权限调整\", \"维护总监、负责人、组长、组员、客服、系统管理员等权限。\", \"保存权限\"],\n \"new-account\": [\"新建账号\", \"按部门、角色、站点、数据范围创建账号,并记录授权审批。\", \"创建账号\"],\n offboarding: [\"离职管理\", \"停用账号、交接任务、回收导出与敏感信息权限。\", \"确认离职处理\"],\n \"upload-report\": [\"上传报表记录\", \"上传人工复核附件、外部表单、补充报表或下载记录,进入报表审计。\", \"保存记录\"],\n audit: [\"敏感信息审计\", \"查看完整敏感信息需要填写原因,并记录审计日志。\", \"确认查看\"]\n };\n const [title, desc, submit] = configs[type] || configs.approve;\n document.getElementById(\"modalTitle\").textContent = target ? `${title} · ${target}` : title;\n document.getElementById(\"modalBody\").innerHTML = `\n <div class=\"item-desc\">${desc}</div>\n <div class=\"form-row\">\n <label>动作类型</label>\n <select>\n <option>通过 / 确认</option>\n <option>退回修改</option>\n <option>转交</option>\n <option>升级</option>\n <option>关闭</option>\n </select>\n </div>\n <div class=\"form-row\">\n <label>下一负责人</label>\n <select>\n <option>用户运营负责人</option>\n <option>Amazon 运营总监</option>\n <option>客服负责人</option>\n <option>风险负责人</option>\n <option>系统管理员</option>\n </select>\n </div>\n <div class=\"form-row\">\n <label>处理意见</label>\n <textarea placeholder=\"请输入审批意见、分配说明、风险确认或导出原因。\"></textarea>\n </div>\n ${renderSourceNote()}\n `;\n document.getElementById(\"modalFoot\").innerHTML = `\n <button class=\"btn\" data-action=\"close-modal\">取消</button>\n <button class=\"btn primary\" data-action=\"submit-modal\" data-message=\"${submit}成功,已写入模拟操作记录\">${submit}</button>\n `;\n document.getElementById(\"modalMask\").classList.add(\"open\");\n document.getElementById(\"modal\").classList.add(\"open\");\n }\n\n function closeModal() {\n document.getElementById(\"modalMask\").classList.remove(\"open\");\n document.getElementById(\"modal\").classList.remove(\"open\");\n }\n\n function showToast(message) {\n const toast = document.getElementById(\"toast\");\n const item = document.createElement(\"div\");\n item.className = \"toast-item\";\n item.textContent = message;\n toast.appendChild(item);\n window.setTimeout(() => item.remove(), 2600);\n }\n\n function render() {\n renderNav();\n const content = document.getElementById(\"content\");\n updateTopContext();\n if (state.route === \"dashboard\") {\n content.innerHTML = renderDashboard();\n } else {\n content.innerHTML = renderListPage(state.route);\n }\n }\n\n function updateTopContext() {\n const routeMeta = routes.find((item) => item.id === state.route);\n const title = document.getElementById(\"topPageTitle\");\n const subtitle = document.getElementById(\"topPageSubtitle\");\n if (title && routeMeta) title.textContent = routeMeta.label === \"工作台\" ? \"经营总览\" : routeMeta.label;\n if (subtitle) {\n const scopeText = {\n all: \"全部部门\",\n amazon: \"Amazon 运营\",\n user_ops: \"用户运营\",\n support: \"客服\"\n }[state.scope] || \"全部部门\";\n subtitle.textContent = `系统管理员(最高权限) · ${scopeText}`;\n }\n document.querySelectorAll(\".top-period button\").forEach((button) => {\n button.classList.toggle(\"active\", button.dataset.period === state.period);\n });\n }\n\n function bindEvents() {\n document.body.addEventListener(\"click\", (event) => {\n const target = event.target.closest(\"button\");\n if (!target) return;\n const route = target.dataset.route;\n if (route) {\n setRoute(route, target.dataset.tab || \"all\");\n return;\n }\n if (target.dataset.tab) {\n state.activeTab = target.dataset.tab;\n render();\n return;\n }\n if (target.dataset.detail) {\n openDrawer(target.dataset.detail, target.dataset.id);\n return;\n }\n const action = target.dataset.action;\n if (action === \"toggle-status\") {\n state.statusExpanded = !state.statusExpanded;\n render();\n showToast(state.statusExpanded ? \"核心看板已展开全部事项\" : \"核心看板已收起次要事项\");\n return;\n }\n if (action === \"priority-status\") {\n state.statusPriorityFirst = !state.statusPriorityFirst;\n render();\n showToast(state.statusPriorityFirst ? \"已按重要度优先排序\" : \"已恢复原始顺序\");\n return;\n }\n if (action === \"close-drawer\") closeDrawer();\n if (action === \"close-modal\") closeModal();\n if (action === \"open-modal\") openModal(target.dataset.modal, target.dataset.target);\n if (action === \"submit-modal\") {\n closeModal();\n showToast(target.dataset.message || \"操作成功\");\n }\n if (action === \"toast\") showToast(target.dataset.message || \"已执行\");\n });\n\n document.getElementById(\"drawerMask\").addEventListener(\"click\", closeDrawer);\n document.getElementById(\"modalMask\").addEventListener(\"click\", closeModal);\n document.getElementById(\"globalSearch\").addEventListener(\"input\", (event) => {\n state.keyword = event.target.value;\n });\n document.getElementById(\"scopeSelect\").addEventListener(\"change\", (event) => {\n state.scope = event.target.value;\n updateTopContext();\n showToast(`已切换数据范围:${event.target.options[event.target.selectedIndex].text}`);\n });\n document.body.addEventListener(\"change\", (event) => {\n const input = event.target.closest(\"[data-time]\");\n if (!input) return;\n const key = input.dataset.time;\n if (key === \"startDate\" || key === \"endDate\") {\n state[key] = input.value;\n showToast(`时间范围已更新:${state.startDate} 至 ${state.endDate}`);\n }\n });\n document.body.addEventListener(\"click\", (event) => {\n const target = event.target.closest(\"[data-period]\");\n if (!target) return;\n state.period = target.dataset.period;\n render();\n showToast(`已切换为${state.period === \"day\" ? \"日\" : state.period === \"week\" ? \"周\" : \"月\"}视角`);\n });\n window.addEventListener(\"hashchange\", readHash);\n }\n\n function readHash() {\n const hash = window.location.hash.replace(\"#\", \"\");\n if (!hash) return;\n const [route, tab] = hash.split(\":\");\n if (routes.some((item) => item.id === route)) {\n state.route = route;\n state.activeTab = tab || \"all\";\n render();\n }\n }\n\n bindEvents();\n readHash();\n render();\n </script>\n</body>\n</html>\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/通用EDM业务流程说明",
"type": "document",
"name": "通用 EDM 业务流程说明",
"filePath": "05_需求文档/通用EDM业务流程说明.md",
"summary": "通用 EDM 业务流程说明 更新时间2026 05 26 1. 文档目标 本文用于新的 EDM 子系统设计或重构,目标是在功能保持一致的前提下,将现有 EDM 业务抽象成通用流程,便于后续拆分服务、设计数据模型、规划 Kafka 消费链路、接入邮件发送通道和处理邮件客服工单。 2. 业务范围 通用 EDM 子系统建议分为三条业务线: 业务线 说明 批量营销",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 通用 EDM 业务流程说明\n\n更新时间2026-05-26\n\n## 1. 文档目标\n\n本文用于新的 EDM 子系统设计或重构,目标是在功能保持一致的前提下,将现有 EDM 业务抽象成通用流程,便于后续拆分服务、设计数据模型、规划 Kafka 消费链路、接入邮件发送通道和处理邮件客服工单。\n\n## 2. 业务范围\n\n通用 EDM 子系统建议分为三条业务线:\n\n| 业务线 | 说明 |\n| --- | --- |\n| 批量营销邮件 | 管理后台创建邮件任务,按标签、站点、产品、用户状态筛选目标用户,生成待发送邮件记录,通过队列异步发送 |\n| 自动 / 实时策略邮件 | 根据用户注册、访问、在线、站点、产品、行为、无消息等规则自动筛选用户,并生成策略邮件 |\n| 邮件工单 | 用户来信、表单提交或外部收信服务进入后台后,生成或更新邮件工单,由客服处理、回复、转发、关闭 |\n\n如果新系统还需要普通邮箱功能可以作为独立模块处理。普通邮箱收发不一定进入 EDM 工单链路,是否合并需要单独确认。\n\n## 3. 总体架构\n\n```mermaid\nflowchart TD\n A[\"管理后台\"] --> B[\"EDM 任务服务\"]\n B --> C[\"目标用户筛选服务\"]\n C --> D[\"邮件记录生成服务\"]\n D --> E[\"Kafka / 队列\"]\n E --> F[\"邮件发送消费者\"]\n F --> G[\"外部发送通道\"]\n G --> H[\"AWS SES / SMTP / Gmail / Microsoft\"]\n H --> I[\"事件回调\"]\n I --> J[\"事件处理服务\"]\n J --> K[\"统计与黑名单\"]\n\n L[\"用户来信 / 表单提交\"] --> M[\"入站接收服务\"]\n M --> N[\"Kafka / 入站队列\"]\n N --> O[\"EDM 工单服务\"]\n O --> P[\"客服工作台\"]\n P --> E\n```\n\n核心组件职责\n\n| 组件 | 职责 |\n| --- | --- |\n| 管理后台 | 创建邮件任务、审核任务、查看统计、处理邮件工单 |\n| 任务服务 | 保存任务配置、正文、模板、发送时间、审核状态 |\n| 用户筛选服务 | 根据标签、站点、产品、黑名单、订阅状态、发送频率等规则筛选目标用户 |\n| 邮件记录服务 | 按用户生成单封待发送邮件记录和正文快照 |\n| Kafka / 队列 | 解耦任务生成、邮件发送、入站消息、事件统计 |\n| 发送消费者 | 消费待发送邮件,调用外部发送通道,并保存发送结果 |\n| 入站接收服务 | 接收表单、用户来信或外部邮件服务回调,写入入站队列 |\n| 工单服务 | 根据来信生成或更新邮件工单,维护状态、负责人、未读数和处理记录 |\n| 事件处理服务 | 处理送达、打开、点击、退信、投诉、拒信等邮件事件 |\n| Redis / 缓存 | 保存并发锁、游标、限流计数、近期任务统计、临时筛选集合 |\n\n## 4. 核心数据模型\n\n新子系统建议至少抽象以下对象\n\n| 对象 | 说明 |\n| --- | --- |\n| 邮件任务 EmailTask | 批量营销或策略邮件任务,保存任务名称、类型、发送时间、审核状态、目标条件 |\n| 邮件内容 EmailContent | 任务级正文、标题、模板、发件人、回复地址、附件配置 |\n| 目标用户 TaskRecipient | 任务命中的用户关系,便于统计和去重 |\n| 单封邮件 EmailMessage | 最终发送或接收的一封邮件记录包含方向、收件人、发件人、状态、message_id、工单 ID |\n| 邮件正文 EmailBody | 单封邮件正文快照,避免模板后续变化影响历史邮件 |\n| 工单 EmailTicket | 用户来信或客服主动发起的一次处理过程 |\n| 分配记录 Assignment | 工单分配、移交、释放、代班等操作记录 |\n| 节点日志 NodeLog | 创建、分配、首次回复、关闭、未解决、转化中等关键节点 |\n| 发送事件 EmailEvent | 送达、打开、点击、退信、投诉、拒信、渲染失败等事件 |\n| 黑名单 / 退订名单 Suppression | 退信、投诉、退订、风险用户等不可发送或需谨慎发送的人群 |\n\n## 5. 批量营销邮件流程\n\n```mermaid\nflowchart TD\n A[\"后台创建邮件任务\"] --> B[\"校验任务配置\"]\n B --> C[\"写入任务、内容、标签条件\"]\n C --> D[\"进入待审核\"]\n D --> E{\"审核结果\"}\n E -->|通过| F[\"进入待执行\"]\n E -->|驳回| G[\"记录驳回原因并结束\"]\n F --> H[\"到达发送时间\"]\n H --> I[\"筛选目标用户\"]\n I --> J[\"生成单封待发送邮件记录\"]\n J --> K[\"投递 Kafka\"]\n K --> L[\"发送消费者调用外部邮件通道\"]\n L --> M[\"更新发送状态和 message_id\"]\n```\n\n创建任务时建议校验\n\n1. 任务名称不能重复。\n2. 邮件模板或正文必须存在。\n3. 发件邮箱必须存在并可用。\n4. 发件域名必须在允许范围内。\n5. 必须选择目标人群或策略条件。\n6. 发送时间必须符合业务规则。\n7. 如果绑定活动,发送时间需要满足活动时间约束。\n8. 目标人数需要预估,避免误发全量用户。\n\n目标用户筛选建议包含\n\n1. 标签包含和标签排除。\n2. 站点、产品、品牌、语言、地区。\n3. 订阅状态、退订状态、黑名单、投诉用户、永久退信用户。\n4. 近期发送频率限制,避免短时间重复触达。\n5. 任务级去重,避免同一用户重复生成同一任务邮件。\n\n## 6. 自动 / 实时策略邮件流程\n\n```mermaid\nflowchart TD\n A[\"策略配置\"] --> B[\"定时任务生成当日策略任务\"]\n B --> C[\"实时策略扫描\"]\n C --> D[\"按用户行为和条件筛选\"]\n D --> E[\"应用黑名单、退订、频率控制\"]\n E --> F[\"生成待发送邮件\"]\n F --> G[\"投递发送队列\"]\n G --> H[\"发送消费者调用邮件通道\"]\n H --> I[\"事件回调更新统计\"]\n```\n\n策略邮件与批量邮件的区别\n\n1. 批量邮件通常由运营手动创建,发送时间明确。\n2. 策略邮件通常由系统按规则自动生成,可能按分钟或按天扫描。\n3. 策略邮件更依赖幂等和频率控制,避免同一用户在同一策略下反复触发。\n4. 策略邮件应记录策略 ID、触发原因、触发时间便于归因。\n\n建议策略执行时做并发锁避免多个任务实例重复生成邮件。\n\n## 7. 邮件发送链路\n\n通用发送链路\n\n```mermaid\nflowchart TD\n A[\"待发送邮件记录\"] --> B[\"写入 Kafka\"]\n B --> C[\"发送消费者\"]\n C --> D[\"读取发件通道配置\"]\n D --> E{\"发送通道\"}\n E -->|批量营销| F[\"AWS SES 或批量发送通道\"]\n E -->|客服回复| G[\"SMTP / Gmail / Microsoft\"]\n F --> H[\"保存发送结果\"]\n G --> H\n H --> I[\"通知前端或更新统计\"]\n```\n\n发送消费者需要处理\n\n1. 队列消息反序列化。\n2. 邮件正文、标题、收件人、发件人、回复地址、附件组装。\n3. 发送通道选择。\n4. 调用外部服务。\n5. 成功后保存 `message_id`、发送时间和成功状态。\n6. 失败后保存错误信息、失败状态和重试次数。\n\n发送通道建议按场景区分\n\n| 场景 | 推荐处理 |\n| --- | --- |\n| 批量营销邮件 | 走支持批量和事件回调的邮件服务,例如 AWS SES |\n| 策略邮件 | 可复用批量发送通道,但必须做频率和幂等控制 |\n| 工单客服回复 | 按发件邮箱配置选择 SMTP、Gmail API 或 Microsoft Graph |\n| 普通邮箱回复 | 可独立于工单链路,同步或异步发送均可 |\n\n## 8. 邮件事件回调与统计\n\n邮件发送后外部服务会产生事件。通用事件包括\n\n| 事件 | 处理建议 |\n| --- | --- |\n| Delivery / 送达 | 标记邮件已送达,记录送达时间和发送 IP |\n| Bounce / 退信 | 区分永久退信和临时退信,更新任务统计;永久退信可加入黑名单 |\n| Open / 打开 | 标记打开时间,更新任务打开统计 |\n| Click / 点击 | 记录点击链接和点击时间,更新点击统计 |\n| Complaint / 投诉 | 记录投诉,加入抑制名单或黑名单 |\n| Subscription / 订阅变更 | 更新订阅或退订状态 |\n| Reject / 拒信 | 记录拒信原因,更新失败统计 |\n| Rendering Failure / 渲染失败 | 记录模板或内容渲染失败 |\n| DeliveryDelay / 延迟 | 可记录延迟事件,是否统计需业务确认 |\n\n事件处理要点\n\n1. 事件必须通过 `message_id` 或自定义追踪 ID 关联到本地邮件记录。\n2. 同一事件可能重复回调,需要幂等处理。\n3. 打开和点击事件存在图片加载、隐私保护、客户端屏蔽等不确定性,统计只能作为参考指标。\n4. 投诉、退订、永久退信应优先进入发送抑制规则。\n\n## 9. 入站邮件 / 表单进入工单流程\n\n入站来源可以有多种\n\n1. 网站表单提交。\n2. 用户真实邮件来信。\n3. 外部收信服务回调。\n4. IM 或其他渠道转入邮件客服。\n\n通用流程\n\n```mermaid\nflowchart TD\n A[\"用户来信或表单提交\"] --> B[\"入站接收服务\"]\n B --> C[\"写入 Kafka 入站队列\"]\n C --> D[\"EDM 工单消费者\"]\n D --> E[\"保存入站邮件和正文\"]\n E --> F{\"是否存在未关闭工单\"}\n F -->|否| G[\"创建新工单\"]\n F -->|是| H[\"绑定到原工单并更新未读数\"]\n G --> I[\"写入节点日志\"]\n H --> I\n I --> J[\"通知客服工作台\"]\n```\n\n创建或更新工单时建议\n\n1. 以发件邮箱、收件邮箱、业务用户 ID、会话标识等组合判断是否复用未关闭工单。\n2. 新工单记录来源、用户邮箱、发件邮箱、团队、状态、未读数、最后来信时间。\n3. 已有工单更新最后来信时间、未读数、用户来信数。\n4. 如果当前客服离线,可以释放负责人,让工单重新进入分配池。\n5. 入站正文应保存原始内容和清洗后的展示内容。\n\n## 10. 工单客服处理流程\n\n### 10.1 工单状态\n\n通用状态建议\n\n| 状态 | 说明 |\n| --- | --- |\n| 待处理 | 新入站邮件或表单生成工单,等待客服处理 |\n| 服务中 | 客服已接手并正在处理 |\n| 未解决 | 客服标记暂未解决,需要后续跟进 |\n| 转化中 | 进入销售或转化跟进阶段 |\n| 已关闭 | 本次邮件工单处理结束 |\n\n状态值可以由新系统自行定义但需要保证列表筛选、统计、自动关闭和权限校验口径统一。\n\n### 10.2 自动分配\n\n自动分配建议流程\n\n1. 找到待处理且未分配的工单。\n2. 根据收件邮箱、团队、站点、语言或业务线确定可服务团队。\n3. 获取在线客服。\n4. 按接单上限、当前处理数、最近分配时间选择客服。\n5. 更新工单负责人。\n6. 写入分配记录和节点日志。\n7. 通知客服工作台。\n\n### 10.3 客服回复\n\n```mermaid\nflowchart TD\n A[\"客服点击发送\"] --> B[\"校验客服在线、权限、工单状态\"]\n B --> C[\"写入待发送邮件记录和正文\"]\n C --> D[\"更新工单未读数、首次响应、回复耗时\"]\n D --> E[\"投递客服回复队列\"]\n E --> F[\"发送消费者选择 SMTP / Gmail / Microsoft\"]\n F --> G[\"保存发送成功或失败结果\"]\n G --> H[\"通知客服工作台\"]\n```\n\n发送前建议校验\n\n1. 客服必须在线。\n2. 工单必须存在且未关闭。\n3. 当前客服必须是工单处理人,或具备接手权限。\n4. 工单必须属于当前客服可处理团队。\n5. 主题、正文、收件人、回复地址必须合法。\n6. 附件大小、类型、数量需要符合业务规则和发送通道限制。\n\n### 10.4 转发和主动开工单\n\n转发\n\n1. 需要填写新的收件人。\n2. 转发邮件可以不绑定到原工单作为普通回复。\n3. 原邮件和转发邮件需要建立关联,方便追溯。\n4. 发送链路仍可复用客服回复队列。\n\n主动开工单\n\n1. 客服选择发件邮箱和目标用户邮箱。\n2. 系统校验发件邮箱归属团队。\n3. 如果同一发件邮箱和用户邮箱已有未关闭工单,应拒绝重复创建或要求接手原工单。\n4. 创建服务中工单,负责人为当前客服。\n5. 写入节点日志和分配记录。\n6. 发送第一封邮件。\n\n## 11. 工单辅助任务\n\n新子系统可按需要保留以下后台任务\n\n| 任务 | 说明 |\n| --- | --- |\n| 自动分配 | 将未分配待处理工单分配给在线客服 |\n| 自动移交 | 当前负责人离线且有新来信时,按代班或团队规则重新分配 |\n| DDL 释放 | 工单分配后超过配置时间未处理,释放为未分配 |\n| 未回复提醒 | 用户新来信超过配置时间未回复,提醒负责人 |\n| 自动关闭 | 服务中工单超过配置时间无新用户来信时自动关闭 |\n| 未分配告警 | 未分配工单数量超过阈值时通知团队管理员 |\n| 统计同步 | 定时刷新任务发送数、回复数、打开数、点击数等统计 |\n\n具体调度频率和启用范围需要按新系统 SLA 确认。\n\n## 12. 通用限制与风控点\n\n### 12.1 任务和发送限制\n\n建议配置化管理\n\n1. 单任务最大目标人数。\n2. 单轮投递队列数量。\n3. 单发件邮箱每分钟、每小时、每天发送上限。\n4. 单用户每天或一段时间内最大触达次数。\n5. 单域名发送上限。\n6. 批量邮件和客服回复是否共享额度。\n\n### 12.2 内容限制\n\n建议校验\n\n1. 邮件主题最大长度。\n2. 正文最小和最大长度。\n3. 附件大小、类型、数量。\n4. 发件邮箱和回复邮箱格式。\n5. 链接合法性和追踪参数。\n6. 必要的退订入口和合规声明。\n\n### 12.3 人群抑制\n\n发送前应排除\n\n1. 退订用户。\n2. 投诉用户。\n3. 永久退信用户。\n4. 风险用户。\n5. 明确不允许触达的用户。\n6. 已达到频率上限的用户。\n\n### 12.4 幂等和重试\n\n需要幂等的场景\n\n1. 任务生成邮件记录。\n2. 邮件记录投递 Kafka。\n3. Kafka 消费发送。\n4. 外部事件回调。\n5. 入站邮件生成工单。\n\n失败重试建议区分\n\n1. 可重试:网络超时、临时服务不可用、临时退信、限流。\n2. 不可重试:邮箱格式错误、发件权限错误、账号不存在、永久退信、投诉抑制。\n\n## 13. 可观测性\n\n建议至少记录以下指标\n\n| 指标 | 说明 |\n| --- | --- |\n| 任务创建数 | 按类型、状态统计 |\n| 目标用户数 | 预估人数、实际生成邮件数、过滤人数 |\n| 队列积压 | 批量发送队列、客服回复队列、入站队列 |\n| 发送成功率 | 按通道、发件邮箱、任务统计 |\n| 失败原因分布 | 发送失败、退信、拒信、限流 |\n| 送达率、打开率、点击率 | 以事件回调统计,注意打开和点击有误差 |\n| 投诉率、退订率 | 作为发送风控核心指标 |\n| 工单响应时长 | 首次响应、最近响应、关闭时长 |\n| 未分配工单数 | 用于团队容量和告警 |\n\n\n## 14. 参考代码位置\n\n以下为现有项目中可参考的代码位置重构时可按新架构重新命名和拆分\n\n| 模块 | 现有参考 |\n| --- | --- |\n| 邮件任务后台入口 | `app/admin/controller/MailTaskController.php` |\n| 邮件任务服务 | `app/service/MailTaskService.php` |\n| 批量邮件生成与投递参考 | `app/service/UserService.php` |\n| 批量邮件发送消费者 | `app/command/kafkaConsumer/BatchMailCommand.php` |\n| 工单后台入口 | `app/admin/controller/EdmChatController.php` |\n| 工单服务 | `app/service/EdmChatService.php` |\n| 客服回复消费者 | `app/command/kafkaConsumer/MailSendCommand.php` |\n| 表单数据消费者 | `app/command/kafkaConsumer/QaForm.php` |\n| 表单创建工单 | `app/service/WebFormDataService.php` |\n| 邮件事件回调 | `app/controller/AmazonEmailController.php` |\n| 普通邮箱服务 | `app/admin/controller/MailboxController.php`、`app/service/MailboxService.php` |\n| 邮件发送封装 | `app/service/Mail.php` |\n| Microsoft 邮件服务 | `app/service/MicrosoftService.php` |\n| 策略邮件命令 | `app/command/EdmDoRealTimeStrategy.php`、`app/command/EdmSendRealTimeStrategy.php`、`app/command/EdmDayCurrentTask.php` |\n| 工单辅助命令 | `app/command/EdmAllocate.php`、`app/command/EdmMove.php`、`app/command/EdmDealLine.php`、`app/command/EdmTimeout.php`、`app/command/EdmWorkOrderAutoClose.php` |\n\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/通用IM业务流程与接口频率限制说明",
"type": "document",
"name": "通用 IM 业务流程与接口频率限制说明",
"filePath": "05_需求文档/通用IM业务流程与接口频率限制说明.md",
"summary": "通用 IM 业务流程与接口频率限制说明 更新时间2026 05 26 1. 文档目标 本文用于新的 IM 子系统重构设计,目标是在功能保持一致的前提下,将现有 IM 业务抽象成通用流程,便于后续拆分服务、设计数据模型、规划 Kafka 消费链路、控制腾讯云 IM REST API 调用频率。 2. 总体架构 通用 IM 链路由以下组件组成: 组件 职责 A",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# 通用 IM 业务流程与接口频率限制说明\n\n更新时间2026-05-26\n\n## 1. 文档目标\n\n本文用于新的 IM 子系统重构设计,目标是在功能保持一致的前提下,将现有 IM 业务抽象成通用流程,便于后续拆分服务、设计数据模型、规划 Kafka 消费链路、控制腾讯云 IM REST API 调用频率。\n\n## 2. 总体架构\n\n通用 IM 链路由以下组件组成:\n\n| 组件 | 职责 |\n| --- | --- |\n| App 客户端 | 用户通过 App 使用腾讯云 IM SDK 发送和接收消息 |\n| 腾讯云 IM | 负责即时消息投递、账号体系、消息格式、离线推送、服务端 REST API、回调触发 |\n| App 后台 | 接收腾讯云 IM 回调,识别需要管理后台处理的消息,并写入 Kafka |\n| Kafka | 解耦 App 后台与管理后台 IM 子系统,承接入站消息、推送消息、异步任务 |\n| IM 子系统 / 管理后台 | 消费 Kafka 消息,维护本地会话、消息、工单、分配、状态流转和客服操作 |\n| 本地数据库 | 作为管理后台 IM 业务的长期数据源,保存消息流水、会话状态、工单状态、操作记录 |\n| Redis / 缓存 | 保存在线状态、分配触发标记、限流计数、幂等键、临时游标 |\n| WebSocket / 站内通知 | 将新消息、分配变化、发送结果、状态变化推送给管理后台前端 |\n\n## 3. 总体消息流\n\n```mermaid\nflowchart TD\n A[\"用户在 App 发送 IM 消息\"] --> B[\"腾讯云 IM SDK 投递消息\"]\n B --> C[\"腾讯云 IM 回调 App 后台\"]\n C --> D[\"App 后台校验回调并识别管理后台相关消息\"]\n D --> E[\"App 后台写入 Kafka\"]\n E --> F[\"IM 子系统消费 Kafka\"]\n F --> G[\"幂等校验与消息解析\"]\n G --> H[\"写入本地消息表\"]\n H --> I[\"更新会话、工单、未读数、最后消息时间\"]\n I --> J[\"触发分配、提醒或状态流转\"]\n J --> K[\"管理后台客服前端展示\"]\n```\n\n核心原则\n\n1. App 客户端消息先进入腾讯云 IM。\n2. 腾讯云 IM 将消息回调给 App 后台。\n3. App 后台不直接写管理后台业务库,而是将管理后台关心的消息写入 Kafka。\n4. 管理后台 IM 子系统消费 Kafka 后入库,并维护本地会话、工单和客服状态。\n5. 管理后台后续展示、检索、统计、客服处理,应以本地数据库为主数据源。\n\n## 4. 核心数据模型\n\n新子系统建议至少抽象以下数据对象\n\n| 对象 | 说明 |\n| --- | --- |\n| IM 账号 | 业务用户、品牌账号、客服账号在腾讯云 IM 中的账号映射 |\n| 消息 Message | 本地保存的消息流水,包含方向、发送方、接收方、消息类型、消息体、腾讯消息 ID、业务扩展字段 |\n| 会话 Conversation | 用户与品牌/客服之间的当前会话指针,包含未读数、最后消息时间、当前工单 ID |\n| 工单 Ticket / ChatRecord | 一次客服处理过程,包含状态、负责人、团队、首次响应时间、关闭时间 |\n| 分配记录 Assignment | 自动分配、手动接手、转接、释放、代班等操作记录 |\n| 节点日志 NodeLog | 工单生成、分配、首次回复、转接、未解决、转化中、关闭等关键节点 |\n| 推送任务 PushTask | 运营或策略创建的 IM 推送任务 |\n| 推送记录 PushRecord | 单个用户、单条内容的实际待发送记录和发送结果 |\n\n## 5. 入站消息流程\n\n### 5.1 用户发送消息\n\n1. 用户在 App 中通过腾讯云 IM SDK 发送文本、图片、视频、自定义卡片或其他消息。\n2. 腾讯云 IM 完成消息投递,并根据配置触发服务端回调。\n3. App 后台接收腾讯云 IM 回调,完成签名、来源、事件类型和消息结构校验。\n4. App 后台判断该消息是否需要管理后台处理。\n5. 需要管理后台处理的消息,由 App 后台写入 Kafka。\n6. IM 子系统消费 Kafka执行幂等校验解析消息体。\n7. IM 子系统写入本地消息流水,并更新会话和工单状态。\n8. 若消息产生新的待处理工单,则进入分配流程。\n9. 管理后台前端通过列表查询、WebSocket 或站内通知看到新消息。\n\n### 5.2 幂等与顺序\n\n腾讯云回调、App 后台写 Kafka、Kafka 消费都可能出现重试,因此 IM 子系统必须做幂等处理。\n\n建议幂等键优先级\n\n1. 腾讯云 IM 消息唯一标识。\n2. 发送方、接收方、消息随机数、消息序列号、消息时间组合。\n3. App 后台写入 Kafka 时生成的业务事件 ID。\n\n同一会话内需要尽量按消息时间和腾讯云消息顺序展示。若存在乱序到达应允许入库后按消息时间、序列号或腾讯消息 ID 排序展示。\n\n## 6. 客服处理流程\n\n### 6.1 会话和工单状态\n\n通用状态建议如下\n\n| 状态 | 说明 |\n| --- | --- |\n| 待接入 | 用户有新消息,尚未分配或尚未被客服处理 |\n| 服务中 | 客服已接入并正在处理 |\n| 已转接 | 工单被转给其他客服或团队,等待新处理人接手 |\n| 未解决 | 客服标记暂未解决,需要后续跟进 |\n| 转化中 | 进入转化或商机跟进阶段 |\n| 已关闭 | 本次客服处理结束 |\n\n状态值可以由新子系统自行定义但需要保证列表筛选、统计口径、自动关闭、转接和重新打开逻辑一致。\n\n### 6.2 自动分配\n\n自动分配通常在新消息入库后触发\n\n1. 找到待接入工单。\n2. 根据品牌、站点、团队、语言、业务线等条件确定可服务团队。\n3. 获取在线客服列表。\n4. 按客服接单上限、当前处理数、最近分配时间等规则筛选。\n5. 选择目标客服并更新工单负责人。\n6. 写入分配记录和节点日志。\n7. 通知管理后台前端。\n\n建议将分配能力独立成可重试任务避免 Kafka 入站消费被复杂分配逻辑拖慢。\n\n### 6.3 客服打开会话\n\n客服打开会话时系统通常需要\n\n1. 校验客服是否在线、是否有处理权限。\n2. 查询会话和工单详情。\n3. 拉取本地消息列表。\n4. 清理当前客服视角下的未读数。\n5. 必要时将工单从待接入或已转接推进到服务中。\n6. 记录读取、接手或首次处理节点。\n\n### 6.4 客服发送消息\n\n客服发送消息的通用链路\n\n```mermaid\nflowchart TD\n A[\"客服在管理后台发送消息\"] --> B[\"IM 子系统校验权限、会话、工单状态\"]\n B --> C[\"组装腾讯云 IM 消息体\"]\n C --> D[\"调用腾讯云 REST API\"]\n D --> E{\"腾讯云返回结果\"}\n E -->|成功| F[\"写入本地消息流水并更新会话\"]\n E -->|失败| G[\"记录失败原因并进入重试或人工处理\"]\n F --> H[\"通知管理后台前端发送成功\"]\n G --> I[\"通知管理后台前端发送失败\"]\n```\n\n发送前建议校验\n\n1. 当前客服必须具备客服身份。\n2. 当前客服必须有该会话或工单处理权限。\n3. 工单不能处于已关闭状态,除非业务允许重新打开。\n4. 消息体大小、消息类型、媒体文件大小必须符合业务和腾讯云限制。\n5. 对运营推送和客服消息应区分业务来源,方便统计和风控。\n\n### 6.5 转接、释放和自动关闭\n\n通用处理规则\n\n1. 手动转接给个人:校验当前处理人权限,更新负责人,记录转接节点。\n2. 手动转接给团队:记录目标团队,等待团队内客服接手或自动分配。\n3. 客服离线释放:如果负责人离线且有未读用户消息,可释放为待分配。\n4. 超时未处理释放:待接入或已转接超过配置时间后,重新进入分配池。\n5. 自动关闭:服务中会话在配置时间内无新用户消息或无新客服动作时,自动关闭。\n\n## 7. 运营 IM 推送流程\n\n运营推送与客服消息都可能调用腾讯云 IM REST API但应在业务上区分\n\n```mermaid\nflowchart TD\n A[\"后台创建推送任务\"] --> B[\"审核或直接进入待发送\"]\n B --> C[\"按标签、站点、产品、用户状态筛选目标人群\"]\n C --> D[\"生成 PushRecord\"]\n D --> E[\"写入 Kafka 推送队列\"]\n E --> F[\"推送消费者限速发送\"]\n F --> G[\"调用 sendmsg 或 batchsendmsg\"]\n G --> H[\"保存腾讯云返回结果\"]\n H --> I[\"汇总任务完成状态\"]\n```\n\n建议\n\n1. 大批量运营推送优先评估 `batchsendmsg`,减少单发接口压力。\n2. 推送消费者必须按 SDKAppID 和接口维度做限速。\n3. 推送记录需要保存发送状态、错误码、重试次数、腾讯云返回结果。\n4. 发送失败应区分可重试错误和不可重试错误。\n5. 推送消息应写入业务扩展字段,便于后续归因和统计。\n\n## 8. 本地存储与历史消息\n\n管理后台 IM 子系统建议以本地数据库作为长期主数据源。\n\n腾讯云 IM 漫游消息适合用于消息补偿、短期核对或异常排查,不建议作为客服记录、统计报表和审计的唯一长期来源。原因是历史消息存储时长与套餐、增值服务和控制台配置有关,且可能产生额外费用。\n\n建议本地保存\n\n1. 入站用户消息。\n2. 客服发送消息。\n3. 系统提示消息。\n4. 运营推送消息及发送结果。\n5. 转接、关闭、分配、未解决、转化等节点日志。\n\n## 9. 腾讯云 IM 接口频率限制说明\n\n以下为腾讯云官方文档口径实际限制可能随套餐、数据中心、控制台配置和商务协议变化最终以腾讯云控制台和合同为准。\n\n### 9.1 通用限制\n\n| 项目 | 限制 |\n| --- | --- |\n| 单聊、群聊单条消息长度 | 最大 12KB |\n| UserID | 长度不超过 32 字节,不支持特殊字符,建议使用英文字母或数字 |\n| REST API 通用调用频率 | 多数 REST API 默认最高 200 次/秒 |\n| 导入多个账号、删除账号、查询账号 | 默认最高 100 次/秒 |\n| 查询在线状态 | 单次请求最多查询 500 个用户 |\n| 批量发单聊消息 | 单次最多给 500 个用户发送 |\n| 导入多个账号 | 单次最多导入 100 个用户名 |\n| 单个用户好友数 | 默认支持 3000 个好友 |\n| 单个用户黑名单数 | 最多 1000 人 |\n\n### 9.2 常用 REST API 频率\n\n| 接口 | 默认频率限制 | 叠加包增量 | 说明 |\n| --- | --- | --- | --- |\n| `v4/openim/sendmsg` 单发单聊消息 | 200 次/秒 | 每个叠加包 +100 次/秒 | 体验版和开发版每日累计发送量限制为 1000 条/天 |\n| `v4/openim/batchsendmsg` 批量发单聊消息 | 200 次/秒,同时 12000 条/分钟 | 每个叠加包 +6000 条/分钟 | 条数按接收方数量计算,一次发给 500 人计 500 条 |\n| `v4/profile/portrait_set` 设置资料 | 200 次/秒 | 每个叠加包 +100 次/秒 | 用于更新头像、昵称等资料 |\n| `v4/profile/portrait_get` 拉取资料 | 200 次/秒 | 每个叠加包 +100 次/秒 | 用于查询资料 |\n| `v4/openim/query_online_status` 查询在线状态 | 200 次/秒 | 每个叠加包 +100 次/秒 | 单次最多查询 500 个用户 |\n| `v4/openim/get_c2c_unread_msg_num` 查询单聊未读数 | 200 次/秒 | 每个叠加包 +100 次/秒 | 如新系统需要同步未读数需注意限频 |\n| `v4/group_open_http_svc/send_group_msg` 群内发普通消息 | 200 次/秒 | 每个叠加包 +100 次/秒 | 单个群发送频率上限为 40 条/秒 |\n| `v4/sns/black_list_get` 拉取黑名单 | 200 次/秒 | 每个叠加包 +100 次/秒 | 关系链相关能力需控制调用频率 |\n\n### 9.3 调频收费说明\n\n腾讯云 IM 服务端 API 调频属于增值服务。官方公告口径为:\n\n| 数据中心 | 服务端 API 调用频率叠加包价格 |\n| --- | --- |\n| 国内数据中心 | 10 元/个/日,日结后付费 |\n| 境外数据中心 | 20 元/个/日,日结后付费 |\n\n注意事项\n\n1. 调频对单个 SDKAppID 生效,多个 SDKAppID 需要分别配置。\n2. 每个调频项按当日配置的最高数值计费,次日出账。\n3. 体验版不支持调整服务端 API 调用频率上限。\n4. 如果新子系统存在大规模运营推送,必须提前评估 `sendmsg` 与 `batchsendmsg` 的峰值。\n\n## 10. 新子系统设计建议\n\n### 10.1 按接口维度做限流\n\n建议在 IM 子系统服务端增加统一腾讯云 IM Client并在 Client 内按以下维度做限流:\n\n1. SDKAppID。\n2. API 路径,例如 `openim/sendmsg`、`openim/batchsendmsg`。\n3. 业务来源,例如客服消息、运营推送、系统通知。\n\nKafka 消费者不能只依赖消费并发控制,否则高峰期可能瞬间打满腾讯云 API 限频。\n\n### 10.2 单发和批量发送分流\n\n建议策略\n\n| 场景 | 推荐接口 |\n| --- | --- |\n| 客服一对一即时回复 | `openim/sendmsg` |\n| 系统给单个用户发送提示 | `openim/sendmsg` |\n| 运营批量推送相同或相似内容 | 优先评估 `openim/batchsendmsg` |\n| 需要强个性化卡片、每人内容不同 | 可用 `sendmsg`,但必须限速 |\n\n### 10.3 错误处理和重试\n\n建议将发送结果分为\n\n1. 成功:腾讯云返回 `ErrorCode=0` 且业务认为发送完成。\n2. 部分成功:批量发送时部分账号失败,需要保存失败账号列表。\n3. 可重试失败:网络异常、超时、腾讯云内部错误、限频。\n4. 不可重试失败:账号不存在、消息体非法、权限错误、消息包超长。\n\n重试建议采用延迟重试并设置最大重试次数。超过次数后进入失败表或死信队列供人工排查。\n\n### 10.4 回调链路可观测性\n\n入站链路建议记录以下指标\n\n1. 腾讯云回调接收量。\n2. App 后台写 Kafka 成功量和失败量。\n3. Kafka 积压量。\n4. IM 子系统消费延迟。\n5. 入库成功量和幂等重复量。\n6. 会话创建量、工单创建量、分配成功量。\n\n发送链路建议记录\n\n1. 每个 API 的 QPS。\n2. 限流等待时间。\n3. 腾讯云错误码分布。\n4. 发送成功率。\n5. 可重试失败量和最终失败量。\n\n## 11. 参考来源\n\n- 腾讯云 IM 使用限制https://cloud.tencent.com/document/product/269/32429\n- 腾讯云 IM 单发单聊消息https://cloud.tencent.com/document/product/269/2282\n- 腾讯云 IM 批量发单聊消息https://cloud.tencent.com/document/product/269/1612\n- 腾讯云 IM 服务端 API 调频收费公告https://cloud.tencent.com/document/product/269/93324\n\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:07_技术文档/01-子系统-identity-数据库表关系",
"type": "document",
"name": "identity 子系统 — doris数据库相关表与关联关系供参考",
"filePath": "07_技术文档/01-子系统-identity-数据库表关系.md",
"summary": "identity 子系统 — doris数据库相关表与关联关系供参考 1. 数据库全景 数据库 说明 与 identity 的关系 ods app base data APP基础数据用户、设备、好友、产品 核心 — 用户身份主数据 ods app app community 社区数据(帖子、评论、关注) 行为数据,辅助归并 ods app jh da",
"tags": [
"07_技术文档",
"技术文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# identity 子系统 — doris数据库相关表与关联关系供参考\n\n\n---\n\n## 1. 数据库全景\n\n| 数据库 | 说明 | 与 identity 的关系 |\n|--------|------|-------------------|\n| `ods_app_base_data` | APP基础数据用户、设备、好友、产品 | **核心** — 用户身份主数据 |\n| `ods_app_app_community` | 社区数据(帖子、评论、关注) | 行为数据,辅助归并 |\n| `ods_app_jh_data` | JOYHUB事件数据 | 行为数据,辅助归并 |\n| `ods_oa_oaaftersales` | OA售后系统客户、订单、测评 | **核心** — 非APP用户身份线索 |\n| `app_tag_data` | 标签数据 | **关键** — 已有 OneID 归并表 |\n\n---\n\n## 2. 核心发现:已存在的 OneID 归并表\n\n### `app_tag_data.user_oneid` — 用户唯一标识归并表6 字段,已有数据)\n\n> **这是 identity 子系统 M2归并引擎的核心参考**,已实现 uuid → one_id 的归并逻辑\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `uuid` | VARCHAR(64) | UNI, NOT NULL | 原始客户唯一标识符 |\n| `one_id` | VARCHAR(64) | NOT NULL | 用户唯一标识归并后的ID |\n| `bridge_uuid` | STRING | | 当前 uuid 对应的非当前桥接 uuid |\n| `association_fields` | STRING | | 关联字段 |\n| `detail` | STRING | | uuid 指向 one_id 的证据说明JSON |\n| `update_time` | DATETIME(3) | | 同步更新时间 |\n\n**关键设计点**\n- `uuid` → `one_id` 是多对一关系(多个 uuid 可归并到同一个 one_id\n- `bridge_uuid` 记录桥接关联,用于跨系统身份串联\n- `detail` 字段存储归并证据JSON与设计文档中 `person_profiles.merge_evidence` 概念一致\n- `association_fields` 记录关联字段,对应设计文档中的线索类型\n\n---\n\n## 3. 核心表状态\n\n设计文档定义的 4 张核心表 **尚未在数据库中创建**\n\n| 表名 | 设计文档定义 | 数据库状态 | 与现有表的关系 |\n|------|-------------|-----------|--------------|\n| `person_profiles` | 真实人主表 | **不存在** | 可参考 `app_tag_data.user_oneid`one_id |\n| `person_identity_links` | 身份线索关联表 | **不存在** | 可参考 `ods_oa_oaaftersales.customer_platform_info`type映射线索类型 |\n| `contact_context_snapshots` | 上下文快照 | **不存在** | 需聚合多表新建 |\n| `device_records` | 设备变化记录 | **不存在** | 可参考 `user_device_token_log`已有252万条记录 |\n\n---\n\n## 4. 已存在的数据源表\n\n### 4.1 用户与身份核心表\n\n#### `ods_app_base_data.users` — 用户主表36 字段)\n\n> identity 子系统的核心用户数据源,提供 JOYHUB ID、邮箱、设备号等身份线索\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 用户IDJOYHUB ID |\n| `userName` | STRING | | 用户名 |\n| `email` | STRING | | 邮箱 |\n| `deviceToken` | VARCHAR(300) | | 设备推送令牌 |\n| `IMEI` | STRING | | 设备IMEI |\n| `sysType` | VARCHAR(765) | | 系统类型(安卓/IOS/Windows Phone |\n| `deviceId` | STRING | | 设备ID |\n| `appVersion` | VARCHAR(90) | | APP版本 |\n| `contact_information` | VARCHAR(765) | | 联系方式(电话号码) |\n| `mobile` | STRING | | 手机号 |\n| `area_code` | BIGINT | | 区域代码美国1中国86 |\n| `status` | TINYINT | | 1活跃/2封禁/3注销 |\n| `sysTime` | DATETIME | | 系统时间(注册时间) |\n| `created_at` | DATETIME | | 创建时间 |\n\n#### `ods_app_base_data.user_login_last` — 最近登录信息21 字段)\n\n> 提供设备型号、系统版本、APP版本、国家等信息是设备变化识别M4的重要数据源\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `UserId` | BIGINT | UNI | 用户ID → 关联 `users.id` |\n| `deviceId` | STRING | | 设备ID |\n| `deviceModel` | VARCHAR(150) | | 手机型号 |\n| `device` | VARCHAR(150) | | 手机系统 |\n| `sysType` | VARCHAR(150) | | 系统设备信息与版本 |\n| `appVersion` | VARCHAR(45) | | APP版本号 |\n| `appChannel` | INT | | 渠道 |\n| `countryName` | VARCHAR(600) | | 国家名称 |\n| `countryCode` | VARCHAR(30) | | 国家缩写 |\n| `Time` | DATETIME | | 登录时间 |\n| `Ip` | STRING | | IP地址 |\n\n#### `ods_app_base_data.user_device_token_log` — 设备令牌变更日志7 字段252万行\n\n> 记录设备令牌的添加和更新,可用于追踪设备变化\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | INT | UNI | 主键 |\n| `user_id` | INT | | 用户ID → 关联 `users.id` |\n| `type` | TINYINT | | 0添加/1更新 |\n| `device_id` | STRING | | 设备ID |\n| `new_device_token` | VARCHAR(300) | | 新设备令牌 |\n| `created_at` | DATETIME | | 创建时间 |\n| `client_time` | DATETIME | | 客户端时间 |\n\n#### `ods_app_base_data.user_contact_information_history` — 联系方式变更历史11 字段20万行\n\n> 记录用户手机号等联系方式的变更历史,可用于身份线索追踪\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 主键 |\n| `user_id` | BIGINT | | 用户ID → 关联 `users.id` |\n| `user_type` | VARCHAR(150) | | 用户角色 |\n| `area_code` | BIGINT | | 区域代码 |\n| `mobile` | STRING | | 手机号 |\n| `area_id` | INT | | 区域ID |\n| `marketing_phone` | TINYINT | | 营销电话开关 |\n| `marketing_sms` | TINYINT | | 个性化广告开关 |\n| `status` | SMALLINT | | 1生效中/2已过期 |\n| `verify_status` | SMALLINT | | 短信验证状态1通过/2未通过 |\n| `created_at` | BIGINT | | 创建时间 |\n\n#### `ods_app_base_data.banned_device_id` — 设备封禁表3 字段6831行\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | INT | UNI | 主键 |\n| `device_id` | VARCHAR(765) | | 封禁设备ID |\n| `created_at` | INT | | 创建时间 |\n\n#### `ods_app_base_data.blacklist_users_aggregate` — 用户黑名单汇总8 字段)\n\n> 按 uid、设备、IP 维度的黑名单,用于风险判断\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | INT | UNI | 主键 |\n| `target_id` | INT | | 1=uid, 2=设备, 3=IP |\n| `target_value` | VARCHAR(1500) | | 字段值 |\n| `category_id` | INT | | 黑名单类别ID |\n| `describe` | VARCHAR(1500) | | 加入原因 |\n\n\n### 4.2 OA 售后系统 — 客户身份数据\n\n#### `ods_oa_oaaftersales.customer` — 客户主表22 字段23万行\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 客户ID |\n| `name` | STRING | | 客户名 |\n| `country` | VARCHAR(60) | | 国家 |\n| `is_black` | TINYINT | | 是否黑名单 |\n| `high_risk` | TINYINT | | 是否高风险 |\n| `erp_contact` | STRING | | ERP联系方式 |\n| `erp_pay_account` | VARCHAR(1500) | | ERP付款账号 |\n\n#### `ods_oa_oaaftersales.customer_platform_info` — 客户平台信息8 字段26万行\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 主键 |\n| `type` | TINYINT | | **1电话/2邮箱/3joyhub_id/4邮箱编码/5twitter/6facebook** |\n| `customer_id` | INT | | 客户ID → 关联 `customer.id` |\n| `account` | STRING | | 账号值 |\n| `is_delete` | TINYINT | | 是否删除 |\n\n#### `ods_oa_oaaftersales.customer_address` — 客户地址18 字段5631行\n\n> 提供姓名+地址组合,可用于 ORDER_NAME_ADDRESS 线索归并\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 主键 |\n| `customer_id` | INT | | 客户ID → 关联 `customer.id` |\n| `recipient_name` | STRING | | 收件人姓名 |\n| `phone` | STRING | | 电话 |\n| `zip_code` | STRING | | 邮编 |\n| `country` | VARCHAR(300) | | 国家 |\n| `city` | STRING | | 城市 |\n| `state` | STRING | | 州/省 |\n| `detail` | VARCHAR(1500) | | 详细地址 |\n\n#### `ods_oa_oaaftersales.customer_payment_account` — 客户付款账号12 字段10万行\n\n> 提供收款信息银行卡、PayPal等可作为身份归并线索\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 主键 |\n| `ct_id` | INT | | 客户ID → 关联 `customer.id` |\n| `pay_name` | VARCHAR(150) | | 支付方式 |\n| `account_number` | STRING | | 账号 |\n| `account_name` | STRING | | 账户名 |\n| `card_no` | VARCHAR(300) | | 卡号 |\n\n#### `ods_oa_oaaftersales.customer_bind` — 客户绑定关系6 字段4980行\n\n> 客户间的绑定关系,已有归并概念\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 主键 |\n| `customer_ids` | STRING | | 绑定的客户ID集合 |\n| `unbind_time` | DATETIME | | 解绑时间 |\n| `is_deleted` | TINYINT | | 是否删除 |\n\n#### `ods_oa_oaaftersales.customer_bind_log` — 客户绑定日志6 字段1.2万行)\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 主键 |\n| `user_id` | INT | | 操作人ID |\n| `bind_customer_ids` | STRING | | 绑定的客户ID |\n| `type` | VARCHAR(765) | | 操作类型 |\n\n#### `ods_oa_oaaftersales.evaluation_order` — 测评订单55+ 字段45万行\n\n> 包含丰富的身份线索邮箱、电话、JOYHUB ID、社交媒体账号\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 订单ID |\n| `ct_id` | INT | | 客户ID → 关联 `customer.id` |\n| `amazon_order_id` | STRING | | 亚马逊订单号 |\n| `email` | STRING | | 邮箱 |\n| `phone` | STRING | | 电话 |\n| `joyhub_id` | VARCHAR(150) | | JOYHUB ID |\n| `twitter` | STRING | | Twitter账号 |\n| `facebook` | STRING | | Facebook账号 |\n\n#### `ods_oa_oaaftersales.lingxing_order` — 亚马逊订单30+ 字段2142万行\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 订单ID |\n| `amazon_order_id` | VARCHAR(150) | | 亚马逊订单号 |\n| `buyer_name` | VARCHAR(765) | | 买家姓名 |\n| `buyer_email` | VARCHAR(765) | | 买家邮箱 |\n| `phone` | VARCHAR(90) | | 电话 |\n| `postal_code` | VARCHAR(765) | | 邮编 |\n| `address` | VARCHAR(765) | | 地址 |\n\n#### `ods_oa_oaaftersales.phone_records` — 电话记录30+ 字段8万行\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 主键 |\n| `ct_id` | INT | | 客户ID → 关联 `customer.id` |\n| `phone` | STRING | | 电话 |\n| `email` | STRING | | 邮箱 |\n| `joyhub_id` | VARCHAR(150) | | JOYHUB ID |\n\n### 4.3 社区行为表\n\n#### `ods_app_app_community.posts` — 帖子表35 字段)\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 帖子ID |\n| `user_id` | INT | | 用户ID → 关联 `users.id` |\n| `status` | SMALLINT | | 10待审核/20拒绝/30通过 |\n| `deleted_at` | INT | | 删除时间0=未删除) |\n\n#### `ods_app_app_community.post_likes` — 点赞表5 字段)\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 主键 |\n| `post_id` | BIGINT | | 帖子ID → 关联 `posts.id` |\n| `user_id` | INT | | 用户ID → 关联 `users.id` |\n\n#### `ods_app_app_community.comments` — 评论表14 字段)\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 评论ID |\n| `post_id` | DECIMAL(20,0) | | 帖子ID → 关联 `posts.id` |\n| `user_id` | DECIMAL(20,0) | | 用户ID → 关联 `users.id` |\n\n#### `ods_app_app_community.follows` — 关注关系表7 字段)\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 主键 |\n| `user_id` | INT | | 关注者ID → 关联 `users.id` |\n| `following_user_id` | INT | | 被关注者ID → 关联 `users.id` |\n\n#### `ods_app_base_data.friends` — 好友关系表6 字段)\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | DECIMAL(20,0) | UNI | 主键 |\n| `user_id` | DECIMAL(20,0) | | 用户ID → 关联 `users.id` |\n| `friend_id` | DECIMAL(20,0) | | 好友ID → 关联 `users.id` |\n\n### 4.4 事件行为表\n\n#### `ods_app_jh_data.events` — APP事件表18 字段)\n\n> event_type: 13=home, 8=玩具连接, 5=视频等\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 事件ID |\n| `add_date` | DATE | UNI | 记录日期 |\n| `uid` | BIGINT | | 用户ID → 关联 `users.id` |\n| `event_type` | INT | | 事件类型 |\n| `pid` | BIGINT | | 产品ID → 关联 `def_product_list.id` |\n\n#### `ods_app_jh_data.remote_events` — 远程连接事件表15 字段)\n\n| 字段 | 类型 | 键 | 说明 |\n|------|------|---|------|\n| `id` | BIGINT | UNI | 事件ID |\n| `uid` | BIGINT | | 用户ID → 关联 `users.id` |\n| `call_sn` | VARCHAR(600) | | 远程序列号格式uid1_uid2_uuid |\n| `mode` | INT | | 1文字/2语音/3视频 |\n\n\n---\n\n## 5. 表关联关系图\n\n```\n┌─────────────────────────────────────────────────────────────────────────┐\n│ identity 子系统数据关系 │\n└─────────────────────────────────────────────────────────────────────────┘\n\n ┌───────────────────────┐\n │ app_tag_data │\n │ .user_oneid │\n │ uuid ──► one_id │\n │ (已有归并逻辑) │\n └───────────┬───────────┘\n │ uuid 可能是 email/phone/device\n ▼\n┌──────────────────────────────────────────────────────────────────────┐\n│ ods_app_base_dataAPP用户体系 │\n│ │\n│ users ◄── user_profiles (user_id) │\n│ │ user_login_last (UserId) ── deviceId, deviceModel │\n│ │ user_device_token_log (user_id) ── 252万条设备变更记录 │\n│ │ user_contact_information_history (user_id) ── 20万条变更 │\n│ │ friends (user_id / friend_id) │\n│ │ banned_device_id (device_id) ── 设备封禁 │\n│ │ blacklist_users_aggregate (target_id+target_value) │\n│ │ │\n│ └── id = JOYHUB_ID │\n└──────────────────────────────────────────────────────────────────────┘\n\n┌──────────────────────────────────────────────────────────────────────┐\n│ ods_oa_oaaftersalesOA售后体系 │\n│ │\n│ customer ◄── customer_platform_info (customer_id) │\n│ │ type: 1电话/2邮箱/3joyhub_id/5twitter/6facebook │\n│ │ customer_address (customer_id) ── 姓名+地址+电话 │\n│ │ customer_payment_account (ct_id) ── 收款账号 │\n│ │ customer_bind (customer_ids) ── 客户绑定关系 │\n│ │ customer_bind_log ── 绑定操作日志 │\n│ │ evaluation_order (ct_id) ── 邮箱/电话/joyhub_id/社媒 │\n│ │ phone_records (ct_id) ── 电话/邮箱/joyhub_id │\n│ │ order_refund (ct_id) ── 返款详情 │\n│ │ │\n│ lingxing_order ── buyer_name + buyer_email + phone + address │\n│ └── lingxing_order_item (amazon_order_id) │\n└──────────────────────────────────────────────────────────────────────┘\n\n┌──────────────────────────────────────────────────────────────────────┐\n│ 社区行为ods_app_app_community │\n│ │\n│ posts ◄── post_likes (post_id, user_id) │\n│ │ comments (post_id, user_id) │\n│ └── follows (user_id, following_user_id) │\n└──────────────────────────────────────────────────────────────────────┘\n\n┌──────────────────────────────────────────────────────────────────────┐\n│ 事件行为ods_app_jh_data |\n│ │\n│ events (uid, event_type, pid) │\n│ communities (uid, event_type) │\n│ remote_events (uid, call_sn ── 含对端uid) │\n└──────────────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## 6. identity 设计表与现有表的字段映射\n\n### 6.1 person_identity_links身份线索关联表— 待建\n\n| clue_type | 设计文档定义 | 数据来源表 | 来源字段 | 数据量级 |\n|-----------|-------------|-----------|---------|---------|\n| JOYHUB_ID | JOYHUB用户ID | `users.id` | id | - |\n| EMAIL | 邮箱 | `users.email` / `evaluation_order.email` / `lingxing_order.buyer_email` / `edm_contact_user.email` / `customer_platform_info`(type=2) | email | - |\n| PHONE | 电话 | `users.contact_information` / `users.mobile` / `evaluation_order.phone` / `lingxing_order.phone` / `customer_platform_info`(type=1) | phone | - |\n| DEVICE | 设备号 | `users.deviceId` / `user_login_last.deviceId` / `user_device_token_log.device_id` | deviceId | 252万条日志 |\n| ORDER_NAME_ADDRESS | 订单姓名+地址 | `lingxing_order.buyer_name` + `lingxing_order.address` / `customer_address.recipient_name` + `customer_address.detail` | name+address | 5631条地址 |\n| SOCIAL_ACCOUNT | 社交媒体(扩展) | `evaluation_order.twitter` / `evaluation_order.facebook` / `customer_platform_info`(type=5,6) | twitter/facebook | - |\n| PAYMENT_ACCOUNT | 收款账号(扩展) | `customer_payment_account.account_number` / `customer.erp_pay_account` | account | 10万条 |\n\n### 6.2 device_records设备变化记录— 待建\n\n| 设计字段 | 数据来源表 | 来源字段 |\n|---------|-----------|---------|\n| `joyhub_id` | `users.id` | id |\n| `device_id` | `users.deviceId` / `user_login_last.deviceId` / `user_device_token_log.device_id` | deviceId |\n| `device_model` | `user_login_last.deviceModel` | deviceModel |\n| `os_version` | `user_login_last.device` / `user_login_last.sysType` | device/sysType |\n| `app_version` | `user_login_last.appVersion` / `users.appVersion` | appVersion |\n| `change_type` | `user_device_token_log.type` | 0=NEW, 1=UPDATE |\n\n### 6.3 contact_context_snapshots上下文快照— 待建\n\n| 设计字段 | 数据来源子系统 | 来源表 |\n|---------|--------------|--------|\n| `identity_snapshot` | identity | person_profiles + person_identity_links |\n| `transaction_snapshot` | planning | lingxing_order, lingxing_order_item |\n| `service_snapshot` | support | order_refund, evaluation_order, phone_records |\n| `risk_snapshot` | risk | customer.is_black, customer.high_risk, banned_device_id, blacklist_users_aggregate |\n| `device_snapshot` | identity(M4) | device_records, user_login_last |\n| `outreach_snapshot` | outreach | (待确认) |\n\n\n",
"wikilinks": [],
"category": "layer-technical"
}
},
{
"id": "doc:08_测试相关/USER用户运营系统_原型逐页详细测试用例集",
"type": "document",
"name": "Sheet: 总览",
"filePath": "08_测试相关/USER用户运营系统_原型逐页详细测试用例集.xlsx",
"summary": "Sheet: 总览 项目 内容 生成方式 按4个HTML原型逐页/逐交互拆解,结合全部需求文档与流程图 覆盖HTML 20260504 USER后台ERP MVP管理员首页高保真原型 v7.htmluser erp mvp admin prototype v10 1 .html客服执行.html用户运营系统 单文件.html 用例粒度 页面、按钮、列表",
"tags": [
"08_测试相关",
"测试相关"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "# Sheet: 总览\n项目 | 内容\n生成方式 | 按4个HTML原型逐页/逐交互拆解,结合全部需求文档与流程图\n覆盖HTML | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.htmluser_erp_mvp_admin_prototype_v10(1).html客服执行.html用户运营系统-单文件.html\n用例粒度 | 页面、按钮、列表字段、筛选、详情弹窗、状态流转、异常、权限、数据、端到端验收\n用例总数 | 308\n说明 | 每条用例均单独编写前置条件、操作步骤、预期结果、数据校验、权限校验和验收标准;不使用统一占位模板。\n# Sheet: HTML1-v7管理员首页\n用例编号 | HTML原型 | 功能页面 | 需求模块 | 测试类型 | 用例名称 | 优先级 | 前置条件 | 测试数据 | 操作步骤 | 预期结果 | 数据校验 | 权限校验 | 验收标准 | 需求依据 | 原型依据 | 用例状态\nTC-PROTO-0001 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 需求与计划管理 | 功能测试 | 管理员工作台查看测评需求审核卡片并跳转处理页 | P1 | 系统管理员账号已登录首页默认展示固定待办提醒和核心看板存在Amazon 运营提交的测评需求模拟数据。 | 卡片=测评需求审核;指标=申请 18 / 已批 8状态=正常;目标页面=需求中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“测评需求审核”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入需求中心待审核入口”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“测评需求审核”和“申请 18 / 已批 8”状态为“正常”。\n2. 点击后进入或打开与“需求中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对测评需求审核的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留需求中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:测评需求审核;状态:正常;操作:点击卡片进入需求中心待审核入口 | 待执行\nTC-PROTO-0002 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 多渠道触达引擎 | 功能测试 | 管理员工作台查看渠道推送风险卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在退订率高于基线的推送风险模拟数据。 | 卡片=渠道推送风险;指标=IM、EDM、TEL、App Push 日周月风险与反馈;状态=偏高;目标页面=推送中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“渠道推送风险”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入推送风险复核”。\n5. 返回首页后再次查看该卡片是否 | 1. 卡片展示“渠道推送风险”和“IM、EDM、TEL、App Push 日周月风险与反馈”,状态为“偏高”。\n2. 点击后进入或打开与“推送中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对渠道推送风险的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留推送中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:渠道推送风险;状态:偏高;操作:点击卡片进入推送风险复核 | 待执行\nTC-PROTO-0003 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 风险与反欺诈 | 功能测试 | 管理员工作台查看新增诈骗事件卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在诈骗同步与黑名单待同步事件模拟数据。 | 卡片=新增诈骗事件;指标=昨 5 / 周 18状态=需复核;目标页面=风险中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“新增诈骗事件”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入风险中心”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“新增诈骗事件”和“昨 5 / 周 18”状态为“需复核”。\n2. 点击后进入或打开与“风险中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对新增诈骗事件的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留风险中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:新增诈骗事件;状态:需复核;操作:点击卡片进入风险中心 | 待执行\nTC-PROTO-0004 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 需求与计划管理 | 功能测试 | 管理员工作台查看紧急 Listing卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在评分接近 4.2 的 Listing模拟数据。 | 卡片=紧急 Listing指标=新 3 / 未处理 7状态=紧急;目标页面=Listing 管理 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“紧急 Listing”卡片核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入紧急 Listing 策略”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“紧急 Listing”和“新 3 / 未处理 7”状态为“紧急”。\n2. 点击后进入或打开与“Listing 管理”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对紧急 Listing的日/周/月指标、风险状态与页面内模拟数据一致跳转后筛选上下文应保留Listing 管理语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:紧急 Listing状态紧急操作点击卡片进入紧急 Listing 策略 | 待执行\nTC-PROTO-0005 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 需求与计划管理 | 功能测试 | 管理员工作台查看推广计划与紧急策略卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在已确认需求生成的推广计划模拟数据。 | 卡片=推广计划与紧急策略;指标=日 12 / 周 38状态=注意审核积压;目标页面=计划中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“推广计划与紧急策略”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入计划中心”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“推广计划与紧急策略”和“日 12 / 周 38”状态为“注意审核积压”。\n2. 点击后进入或打开与“计划中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对推广计划与紧急策略的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留计划中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:推广计划与紧急策略;状态:注意审核积压;操作:点击卡片进入计划中心 | 待执行\nTC-PROTO-0006 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 评价结果追踪 | 功能测试 | 管理员工作台查看评价产出趋势卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在真实消费者回评完成趋势模拟数据。 | 卡片=评价产出趋势;指标=日 18 / 周 96状态=稳定;目标页面=数据中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“评价产出趋势”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入评价产出趋势”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“评价产出趋势”和“日 18 / 周 96”状态为“稳定”。\n2. 点击后进入或打开与“数据中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对评价产出趋势的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留数据中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:评价产出趋势;状态:稳定;操作:点击卡片进入评价产出趋势 | 待执行\nTC-PROTO-0007 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 风险与反欺诈 | 功能测试 | 管理员工作台查看黑名单同步严重度卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在黑名单系统接口超时模拟数据。 | 卡片=黑名单同步严重度;指标=失败 2 / 高危 1状态=需复核;目标页面=风险中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“黑名单同步严重度”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入黑名单同步”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“黑名单同步严重度”和“失败 2 / 高危 1”状态为“需复核”。\n2. 点击后进入或打开与“风险中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对黑名单同步严重度的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留风险中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:黑名单同步严重度;状态:需复核;操作:点击卡片进入黑名单同步 | 待执行\nTC-PROTO-0008 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | KOC/KOL协作 | 功能测试 | 管理员工作台查看KOC/KOL 对接卡片并跳转处理页 | P1 | 系统管理员账号已登录首页默认展示固定待办提醒和核心看板存在PR 对外联系、价格、CODE、返点和提款进度模拟数据。 | 卡片=KOC/KOL 对接;指标=2 个逾期;状态=逾期;目标页面=计划中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“KOC/KOL 对接”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入对外合作跟进”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“KOC/KOL 对接”和“2 个逾期”,状态为“逾期”。\n2. 点击后进入或打开与“计划中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对KOC/KOL 对接的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留计划中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板KOC/KOL 对接;状态:逾期;操作:点击卡片进入对外合作跟进 | 待执行\nTC-PROTO-0009 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 客服工单与管理 | 功能测试 | 管理员工作台查看菲律宾团队管理卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在菲律宾团队工作时长、请假、缺席、人均产出模拟数据。 | 卡片=菲律宾团队管理;指标=风险 2 / 缺口 1状态=排班风险;目标页面=客服中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“菲律宾团队管理”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入客服中心”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“菲律宾团队管理”和“风险 2 / 缺口 1”状态为“排班风险”。\n2. 点击后进入或打开与“客服中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对菲律宾团队管理的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留客服中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:菲律宾团队管理;状态:排班风险;操作:点击卡片进入客服中心 | 待执行\nTC-PROTO-0010 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 审计与通知中心 | 功能测试 | 管理员工作台查看审核积压与风险卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在已发现问题汇总到总页面模拟数据。 | 卡片=审核积压与风险;指标=卡点 4状态=影响进度;目标页面=工作台 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“审核积压与风险”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入处理卡点”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“审核积压与风险”和“卡点 4”状态为“影响进度”。\n2. 点击后进入或打开与“工作台”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对审核积压与风险的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留工作台语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:审核积压与风险;状态:影响进度;操作:点击卡片进入处理卡点 | 待执行\nTC-PROTO-0011 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对测评需求执行接收动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“测评需求”当前环节为“Amazon 已批准”,负责人为“用户运营负责人”。 | 事项=测评需求;来源=飞书需求表单 DEMO-001截止=今日 18:00处理动作=接收;描述=评分 4.46,低于 4.5,需要生成用户互动与真实评价跟踪计划 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“测评需求”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“接收”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:测评需求已核对”。\n7. 点击确认提交。 | 1. 队列行展示测评需求、Amazon 已批准、用户运营负责人、今日 18:00。\n2. 详情弹窗打开,展示来源“飞书需求表单 DEMO-001”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列测评需求操作接收 | 待执行\nTC-PROTO-0012 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 测评需求处理意见为空时阻止提交 | P2 | 已打开“测评需求”详情弹窗;当前用户有“接收”权限。 | 动作类型=通过/确认;处理意见=空;事项=测评需求 | 1. 在“测评需求”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0013 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对昨日推送风险执行复核动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“昨日推送风险”;当前环节为“待复核”,负责人为“用户运营组长”。 | 事项=昨日推送风险;来源=推送风险自动单 DEMO-006截止=今日 12:00处理动作=复核;描述=昨日推送退订率高于基线,需复核人群、素材和文案 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“昨日推送风险”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“复核”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:昨日推送风险已核对”。\n7. 点击确认提交。 | 1. 队列行展示昨日推送风险、待复核、用户运营组长、今日 12:00。\n2. 详情弹窗打开,展示来源“推送风险自动单 DEMO-006”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列昨日推送风险操作复核 | 待执行\nTC-PROTO-0014 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 昨日推送风险处理意见为空时阻止提交 | P2 | 已打开“昨日推送风险”详情弹窗;当前用户有“复核”权限。 | 动作类型=通过/确认;处理意见=空;事项=昨日推送风险 | 1. 在“昨日推送风险”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0015 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对待同步黑名单执行审核动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“待同步黑名单”;当前环节为“待审核”,负责人为“风险负责人”。 | 事项=待同步黑名单;来源=客服升级表单 DEMO-003截止=今日 14:00处理动作=审核;描述=同一 JOYHUB ID 与多个 Profile ID 关联异常样品申请,邮箱和设备号已脱敏 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“待同步黑名单”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“审核”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:待同步黑名单已核对”。\n7. 点击确认提交。 | 1. 队列行展示待同步黑名单、待审核、风险负责人、今日 14:00。\n2. 详情弹窗打开,展示来源“客服升级表单 DEMO-003”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列待同步黑名单操作审核 | 待执行\nTC-PROTO-0016 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 待同步黑名单处理意见为空时阻止提交 | P2 | 已打开“待同步黑名单”详情弹窗;当前用户有“审核”权限。 | 动作类型=通过/确认;处理意见=空;事项=待同步黑名单 | 1. 在“待同步黑名单”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0017 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对紧急策略审批执行审批动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“紧急策略审批”当前环节为“待系统管理员确认”负责人为“Amazon 运营总监”。 | 事项=紧急策略审批;来源=紧急 Listing 表单 DEMO-004截止=今日 11:30处理动作=审批;描述=当前评分 4.21,接近 4.2 紧急阈值,需要 Amazon 与用户运营联合策略 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“紧急策略审批”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“审批”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:紧急策略审批已核对”。\n7. 点击确认提交。 | 1. 队列行展示紧急策略审批、待系统管理员确认、Amazon 运营总监、今日 11:30。\n2. 详情弹窗打开,展示来源“紧急 Listing 表单 DEMO-004”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列紧急策略审批操作审批 | 待执行\nTC-PROTO-0018 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 紧急策略审批处理意见为空时阻止提交 | P2 | 已打开“紧急策略审批”详情弹窗;当前用户有“审批”权限。 | 动作类型=通过/确认;处理意见=空;事项=紧急策略审批 | 1. 在“紧急策略审批”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0019 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对差评跟进执行分配动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“差评跟进”;当前环节为“客服升级”,负责人为“客服负责人”。 | 事项=差评跟进;来源=飞书客服需求 DEMO-005截止=明日 10:00处理动作=分配;描述=用户反馈产品说明理解偏差,需要客服跟进并回传产品改进建议 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“差评跟进”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“分配”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:差评跟进已核对”。\n7. 点击确认提交。 | 1. 队列行展示差评跟进、客服升级、客服负责人、明日 10:00。\n2. 详情弹窗打开,展示来源“飞书客服需求 DEMO-005”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列差评跟进操作分配 | 待执行\nTC-PROTO-0020 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 差评跟进处理意见为空时阻止提交 | P2 | 已打开“差评跟进”详情弹窗;当前用户有“分配”权限。 | 动作类型=通过/确认;处理意见=空;事项=差评跟进 | 1. 在“差评跟进”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0021 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入需求中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“需求中心”;模拟数据已加载。 | 页面=需求中心;主按钮=Amazon 提交测评需求;辅助按钮=待审核入口;字段=需求ID、类型、提交人、审核人、审核结果、来源表单、ASIN/站点、当前环节、负责人、风险、截止、操作 | 1. 在管理员首页左侧导航点击“需求中心”。\n2. 观察页面标题是否切换为“需求中心列表”。\n3. 检查列表表头是否包含需求ID、类型、提交人、审核人、审核结果、来源表单、ASIN/站点、当前环节、负责人、风险、截止、操作。\n4. 点击页面主按钮“Amazon 提交测评需求”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“待审核入口”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“需求中心”。\n2. 列表字段与原型定义一致。\n3. “Amazon 提交测评需求”和“待审核入口”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问需求中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合需求中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航需求中心按钮Amazon 提交测评需求/待审核入口字段需求ID、类型、提交人、审核人、审核结果、来源表单、ASIN/站点、当前环节、负责人、风险、截止、操作 | 待执行\nTC-PROTO-0022 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入Listing 管理并校验列表字段 | P1 | 系统管理员已登录左侧导航包含“Listing 管理”;模拟数据已加载。 | 页面=Listing 管理;主按钮=创建紧急策略;辅助按钮=更多;字段=站点组合、评分、等级、评价数、差评数、健康状态、责任人、问题所在、参与人员/进度 | 1. 在管理员首页左侧导航点击“Listing 管理”。\n2. 观察页面标题是否切换为“Listing 管理列表”。\n3. 检查列表表头是否包含:站点组合、评分、等级、评价数、差评数、健康状态、责任人、问题所在、参与人员/进度。\n4. 点击页面主按钮“创建紧急策略”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“更多”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“Listing 管理”。\n2. 列表字段与原型定义一致。\n3. “创建紧急策略”和“更多”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问Listing 管理全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合Listing 管理页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航Listing 管理;按钮:创建紧急策略/更多;字段:站点组合、评分、等级、评价数、差评数、健康状态、责任人、问题所在、参与人员/进度 | 待执行\nTC-PROTO-0023 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入计划中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“计划中心”;模拟数据已加载。 | 页面=计划中心;主按钮=生成计划;辅助按钮=批量审批;字段=计划ID、关联需求、覆盖状态、资源分配、目标量、状态、审批人 | 1. 在管理员首页左侧导航点击“计划中心”。\n2. 观察页面标题是否切换为“计划中心列表”。\n3. 检查列表表头是否包含计划ID、关联需求、覆盖状态、资源分配、目标量、状态、审批人。\n4. 点击页面主按钮“生成计划”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“批量审批”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“计划中心”。\n2. 列表字段与原型定义一致。\n3. “生成计划”和“批量审批”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问计划中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合计划中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:计划中心;按钮:生成计划/批量审批字段计划ID、关联需求、覆盖状态、资源分配、目标量、状态、审批人 | 待执行\nTC-PROTO-0024 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入推送中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“推送中心”;模拟数据已加载。 | 页面=推送中心;主按钮=计划与推送分配;辅助按钮=风险复核;字段=推送ID、计划、渠道、策略、H5/素材、人群、发送、点击、回复、退订 | 1. 在管理员首页左侧导航点击“推送中心”。\n2. 观察页面标题是否切换为“推送中心列表”。\n3. 检查列表表头是否包含推送ID、计划、渠道、策略、H5/素材、人群、发送、点击、回复、退订。\n4. 点击页面主按钮“计划与推送分配”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“风险复核”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“推送中心”。\n2. 列表字段与原型定义一致。\n3. “计划与推送分配”和“风险复核”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问推送中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合推送中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:推送中心;按钮:计划与推送分配/风险复核字段推送ID、计划、渠道、策略、H5/素材、人群、发送、点击、回复、退订 | 待执行\nTC-PROTO-0025 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入客服中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“客服中心”;模拟数据已加载。 | 页面=客服中心;主按钮=分配工单;辅助按钮=流转;字段=工单ID、用户摘要、平均响应、工作时长、出勤、人均产出 | 1. 在管理员首页左侧导航点击“客服中心”。\n2. 观察页面标题是否切换为“客服中心列表”。\n3. 检查列表表头是否包含工单ID、用户摘要、平均响应、工作时长、出勤、人均产出。\n4. 点击页面主按钮“分配工单”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“流转”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“客服中心”。\n2. 列表字段与原型定义一致。\n3. “分配工单”和“流转”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问客服中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合客服中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:客服中心;按钮:分配工单/流转字段工单ID、用户摘要、平均响应、工作时长、出勤、人均产出 | 待执行\nTC-PROTO-0026 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入风险中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“风险中心”;模拟数据已加载。 | 页面=风险中心;主按钮=同步黑名单;辅助按钮=规则复核;字段=事件ID、主体摘要、关联字段、来源、同步频率、最近同步、记录数 | 1. 在管理员首页左侧导航点击“风险中心”。\n2. 观察页面标题是否切换为“风险中心列表”。\n3. 检查列表表头是否包含事件ID、主体摘要、关联字段、来源、同步频率、最近同步、记录数。\n4. 点击页面主按钮“同步黑名单”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“规则复核”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“风险中心”。\n2. 列表字段与原型定义一致。\n3. “同步黑名单”和“规则复核”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问风险中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合风险中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:风险中心;按钮:同步黑名单/规则复核字段事件ID、主体摘要、关联字段、来源、同步频率、最近同步、记录数 | 待执行\nTC-PROTO-0027 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 数据中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入数据中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“数据中心”;模拟数据已加载。 | 页面=数据中心;主按钮=立即同步;辅助按钮=导出;字段=来源、同步频率、最近同步、记录数 | 1. 在管理员首页左侧导航点击“数据中心”。\n2. 观察页面标题是否切换为“数据中心列表”。\n3. 检查列表表头是否包含:来源、同步频率、最近同步、记录数。\n4. 点击页面主按钮“立即同步”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“导出”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“数据中心”。\n2. 列表字段与原型定义一致。\n3. “立即同步”和“导出”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问数据中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合数据中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:数据中心;按钮:立即同步/导出;字段:来源、同步频率、最近同步、记录数 | 待执行\nTC-PROTO-0028 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入报表中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“报表中心”;模拟数据已加载。 | 页面=报表中心;主按钮=生成/下载报表;辅助按钮=上传记录;字段=报表ID、报表名称、可见角色、周期、生成计划、上传/记录、可导出、脱敏 | 1. 在管理员首页左侧导航点击“报表中心”。\n2. 观察页面标题是否切换为“报表中心列表”。\n3. 检查列表表头是否包含报表ID、报表名称、可见角色、周期、生成计划、上传/记录、可导出、脱敏。\n4. 点击页面主按钮“生成/下载报表”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“上传记录”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“报表中心”。\n2. 列表字段与原型定义一致。\n3. “生成/下载报表”和“上传记录”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问报表中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合报表中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:报表中心;按钮:生成/下载报表/上传记录字段报表ID、报表名称、可见角色、周期、生成计划、上传/记录、可导出、脱敏 | 待执行\nTC-PROTO-0029 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入系统管理并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“系统管理”;模拟数据已加载。 | 页面=系统管理;主按钮=新建账号;辅助按钮=离职管理;字段=配置ID、模块、说明、权限分配、审计日志 | 1. 在管理员首页左侧导航点击“系统管理”。\n2. 观察页面标题是否切换为“系统管理列表”。\n3. 检查列表表头是否包含配置ID、模块、说明、权限分配、审计日志。\n4. 点击页面主按钮“新建账号”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“离职管理”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“系统管理”。\n2. 列表字段与原型定义一致。\n3. “新建账号”和“离职管理”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问系统管理全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合系统管理页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:系统管理;按钮:新建账号/离职管理字段配置ID、模块、说明、权限分配、审计日志 | 待执行\nTC-PROTO-0030 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换最近 7 天时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=最近 7 天;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“最近 7 天”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“最近 7 天”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0031 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换最近 30 天时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=最近 30 天;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“最近 30 天”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“最近 30 天”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0032 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换本月时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=本月;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“本月”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“本月”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0033 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换自定义时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=自定义;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“自定义”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“自定义”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0170 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换全部标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“全部”。 | 标签=全部;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“全部”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“全部”。 | 1. 队列只展示与“全部”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签全部 | 待执行\nTC-PROTO-0171 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换审核标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“审核”。 | 标签=审核;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“审核”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“审核”。 | 1. 队列只展示与“审核”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签审核 | 待执行\nTC-PROTO-0172 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换黑名单标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“黑名单”。 | 标签=黑名单;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“黑名单”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“黑名单”。 | 1. 队列只展示与“黑名单”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签黑名单 | 待执行\nTC-PROTO-0173 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换推送标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“推送”。 | 标签=推送;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“推送”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“推送”。 | 1. 队列只展示与“推送”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签推送 | 待执行\nTC-PROTO-0174 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门全部部门状态全部状态风险全部风险负责人全部负责人组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=全部部门;状态=全部状态;风险=全部风险;负责人=全部负责人 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“全部部门”。\n3. 选择状态“全部状态”、风险“全部风险”、负责人“全部负责人”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合全部部门/全部状态/全部风险/全部负责人的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0175 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门Amazon 运营状态待审批风险全部风险负责人Amazon 总监组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=Amazon 运营;状态=待审批;风险=全部风险;负责人=Amazon 总监 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“Amazon 运营”。\n3. 选择状态“待审批”、风险“全部风险”、负责人“Amazon 总监”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合Amazon 运营/待审批/全部风险/Amazon 总监的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0176 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门用户运营状态待复核风险偏高负责人用户运营组长组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=用户运营;状态=待复核;风险=偏高;负责人=用户运营组长 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“用户运营”。\n3. 选择状态“待复核”、风险“偏高”、负责人“用户运营组长”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合用户运营/待复核/偏高/用户运营组长的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0177 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门客服状态客服升级风险高风险负责人客服负责人组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=客服;状态=客服升级;风险=高风险;负责人=客服负责人 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“客服”。\n3. 选择状态“客服升级”、风险“高风险”、负责人“客服负责人”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合客服/客服升级/高风险/客服负责人的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0178 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门系统管理员状态待系统管理员确认风险紧急负责人系统管理员组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=系统管理员;状态=待系统管理员确认;风险=紧急;负责人=系统管理员 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“系统管理员”。\n3. 选择状态“待系统管理员确认”、风险“紧急”、负责人“系统管理员”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合系统管理员/待系统管理员确认/紧急/系统管理员的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0220 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统总览 | 功能测试 | 需求中心按钮级操作:查看完整信息 | P2 | 系统管理员已进入“需求中心”存在业务条件JOYHUB ID、邮箱、电话、设备号、订单号默认脱敏。 | 按钮=查看完整信息;条件=JOYHUB ID、邮箱、电话、设备号、订单号默认脱敏 | 1. 从管理员首页左侧导航进入“需求中心”。\n2. 在列表中找到满足条件的记录JOYHUB ID、邮箱、电话、设备号、订单号默认脱敏。\n3. 点击该行或页面上的“查看完整信息”按钮。\n4. 按页面提示执行:打开详情后点击查看完整信息。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “查看完整信息”入口可用且文案正确。\n2. 操作后结果为:记录敏感访问审计。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 需求中心的查看完整信息动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=需求中心;按钮=查看完整信息 | 待执行\nTC-PROTO-0221 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统总览 | 功能测试 | 需求中心按钮级操作:分配 | P2 | 系统管理员已进入“需求中心”存在业务条件测评需求Amazon已批准待用户运营接收。 | 按钮=分配;条件=测评需求Amazon已批准待用户运营接收 | 1. 从管理员首页左侧导航进入“需求中心”。\n2. 在列表中找到满足条件的记录测评需求Amazon已批准待用户运营接收。\n3. 点击该行或页面上的“分配”按钮。\n4. 按页面提示执行:选择下一负责人为用户运营负责人。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “分配”入口可用且文案正确。\n2. 操作后结果为:负责人变更并通知。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 需求中心的分配动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=需求中心;按钮=分配 | 待执行\nTC-PROTO-0222 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统总览 | 功能测试 | 需求中心按钮级操作:审批/确认 | P2 | 系统管理员已进入“需求中心”存在业务条件需求评分4.46低于4.5。 | 按钮=审批/确认;条件=需求评分4.46低于4.5 | 1. 从管理员首页左侧导航进入“需求中心”。\n2. 在列表中找到满足条件的记录需求评分4.46低于4.5。\n3. 点击该行或页面上的“审批/确认”按钮。\n4. 按页面提示执行:选择通过/确认并填写计划建议。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “审批/确认”入口可用且文案正确。\n2. 操作后结果为:需求进入待生成计划。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 需求中心的审批/确认动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=需求中心;按钮=审批/确认 | 待执行\nTC-PROTO-0223 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统总览 | 功能测试 | Listing 管理按钮级操作:查看完整信息 | P2 | 系统管理员已进入“Listing 管理”存在业务条件评分4.21接近4.2紧急阈值。 | 按钮=查看完整信息;条件=评分4.21接近4.2紧急阈值 | 1. 从管理员首页左侧导航进入“Listing 管理”。\n2. 在列表中找到满足条件的记录评分4.21接近4.2紧急阈值。\n3. 点击该行或页面上的“查看完整信息”按钮。\n4. 按页面提示执行查看ASIN完整站点与评价数据。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “查看完整信息”入口可用且文案正确。\n2. 操作后结果为:敏感数据按权限展示。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | Listing 管理的查看完整信息动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=Listing 管理;按钮=查看完整信息 | 待执行\nTC-PROTO-0224 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统总览 | 功能测试 | Listing 管理按钮级操作:创建紧急策略 | P2 | 系统管理员已进入“Listing 管理”存在业务条件紧急Listing未处理7条。 | 按钮=创建紧急策略;条件=紧急Listing未处理7条 | 1. 从管理员首页左侧导航进入“Listing 管理”。\n2. 在列表中找到满足条件的记录紧急Listing未处理7条。\n3. 点击该行或页面上的“创建紧急策略”按钮。\n4. 按页面提示执行:填写策略参与人员与截止时间。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “创建紧急策略”入口可用且文案正确。\n2. 操作后结果为:生成紧急策略审批事项。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | Listing 管理的创建紧急策略动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=Listing 管理;按钮=创建紧急策略 | 待执行\nTC-PROTO-0225 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统总览 | 功能测试 | Listing 管理按钮级操作:审批/确认 | P2 | 系统管理员已进入“Listing 管理”;存在业务条件:待系统管理员确认。 | 按钮=审批/确认;条件=待系统管理员确认 | 1. 从管理员首页左侧导航进入“Listing 管理”。\n2. 在列表中找到满足条件的记录:待系统管理员确认。\n3. 点击该行或页面上的“审批/确认”按钮。\n4. 按页面提示执行:确认联合策略。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “审批/确认”入口可用且文案正确。\n2. 操作后结果为:状态进入用户运营执行。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | Listing 管理的审批/确认动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=Listing 管理;按钮=审批/确认 | 待执行\nTC-PROTO-0226 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统总览 | 功能测试 | 计划中心按钮级操作:生成计划 | P2 | 系统管理员已进入“计划中心”;存在业务条件:已确认需求存在且目标量明确。 | 按钮=生成计划;条件=已确认需求存在且目标量明确 | 1. 从管理员首页左侧导航进入“计划中心”。\n2. 在列表中找到满足条件的记录:已确认需求存在且目标量明确。\n3. 点击该行或页面上的“生成计划”按钮。\n4. 按页面提示执行:选择推新/回评/免评并拆分计划项。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “生成计划”入口可用且文案正确。\n2. 操作后结果为生成计划ID和计划项。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 计划中心的生成计划动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=计划中心;按钮=生成计划 | 待执行\nTC-PROTO-0227 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统总览 | 功能测试 | 计划中心按钮级操作:批量审批 | P2 | 系统管理员已进入“计划中心”;存在业务条件:多条计划处于待审批。 | 按钮=批量审批;条件=多条计划处于待审批 | 1. 从管理员首页左侧导航进入“计划中心”。\n2. 在列表中找到满足条件的记录:多条计划处于待审批。\n3. 点击该行或页面上的“批量审批”按钮。\n4. 按页面提示执行:勾选多条计划并提交统一审批意见。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “批量审批”入口可用且文案正确。\n2. 操作后结果为:批量生成审批记录。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 计划中心的批量审批动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=计划中心;按钮=批量审批 | 待执行\nTC-PROTO-0228 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统总览 | 功能测试 | 计划中心按钮级操作:流转 | P2 | 系统管理员已进入“计划中心”;存在业务条件:计划覆盖状态部分覆盖。 | 按钮=流转;条件=计划覆盖状态部分覆盖 | 1. 从管理员首页左侧导航进入“计划中心”。\n2. 在列表中找到满足条件的记录:计划覆盖状态部分覆盖。\n3. 点击该行或页面上的“流转”按钮。\n4. 按页面提示执行:查看计划状态流转记录。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “流转”入口可用且文案正确。\n2. 操作后结果为:展示创建、审批、执行节点。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 计划中心的流转动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=计划中心;按钮=流转 | 待执行\nTC-PROTO-0229 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统总览 | 功能测试 | 推送中心按钮级操作:计划与推送分配 | P2 | 系统管理员已进入“推送中心”;存在业务条件:周度推送计划待审。 | 按钮=计划与推送分配;条件=周度推送计划待审 | 1. 从管理员首页左侧导航进入“推送中心”。\n2. 在列表中找到满足条件的记录:周度推送计划待审。\n3. 点击该行或页面上的“计划与推送分配”按钮。\n4. 按页面提示执行分配IM/EDM/TEL/App Push策略。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “计划与推送分配”入口可用且文案正确。\n2. 操作后结果为:生成推送任务。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 推送中心的计划与推送分配动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=推送中心;按钮=计划与推送分配 | 待执行\nTC-PROTO-0230 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统总览 | 功能测试 | 推送中心按钮级操作:风险复核 | P2 | 系统管理员已进入“推送中心”;存在业务条件:退订率高于基线。 | 按钮=风险复核;条件=退订率高于基线 | 1. 从管理员首页左侧导航进入“推送中心”。\n2. 在列表中找到满足条件的记录:退订率高于基线。\n3. 点击该行或页面上的“风险复核”按钮。\n4. 按页面提示执行:查看人群、素材、文案并选择暂停同策略。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “风险复核”入口可用且文案正确。\n2. 操作后结果为:推送状态变暂停待审。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 推送中心的风险复核动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=推送中心;按钮=风险复核 | 待执行\nTC-PROTO-0231 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统总览 | 功能测试 | 推送中心按钮级操作:导出 | P2 | 系统管理员已进入“推送中心”;存在业务条件:当前筛选为推送风险。 | 按钮=导出;条件=当前筛选为推送风险 | 1. 从管理员首页左侧导航进入“推送中心”。\n2. 在列表中找到满足条件的记录:当前筛选为推送风险。\n3. 点击该行或页面上的“导出”按钮。\n4. 按页面提示执行导出推送ID、计划、渠道、发送点击回复退订。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “导出”入口可用且文案正确。\n2. 操作后结果为:导出文件脱敏。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 推送中心的导出动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=推送中心;按钮=导出 | 待执行\nTC-PROTO-0232 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统总览 | 功能测试 | 客服中心按钮级操作:分配工单 | P2 | 系统管理员已进入“客服中心”;存在业务条件:差评跟进客服升级。 | 按钮=分配工单;条件=差评跟进客服升级 | 1. 从管理员首页左侧导航进入“客服中心”。\n2. 在列表中找到满足条件的记录:差评跟进客服升级。\n3. 点击该行或页面上的“分配工单”按钮。\n4. 按页面提示执行选择客服A并填写分配原因。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “分配工单”入口可用且文案正确。\n2. 操作后结果为:工单状态变处理中。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 客服中心的分配工单动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=客服中心;按钮=分配工单 | 待执行\nTC-PROTO-0233 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统总览 | 功能测试 | 客服中心按钮级操作:流转 | P2 | 系统管理员已进入“客服中心”;存在业务条件:承诺配合用户待回访。 | 按钮=流转;条件=承诺配合用户待回访 | 1. 从管理员首页左侧导航进入“客服中心”。\n2. 在列表中找到满足条件的记录:承诺配合用户待回访。\n3. 点击该行或页面上的“流转”按钮。\n4. 按页面提示执行查看待回访和请假0.5天影响。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “流转”入口可用且文案正确。\n2. 操作后结果为:生成回访待办。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 客服中心的流转动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=客服中心;按钮=流转 | 待执行\nTC-PROTO-0234 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统总览 | 功能测试 | 客服中心按钮级操作:导出 | P2 | 系统管理员已进入“客服中心”;存在业务条件:菲律宾团队管理。 | 按钮=导出;条件=菲律宾团队管理 | 1. 从管理员首页左侧导航进入“客服中心”。\n2. 在列表中找到满足条件的记录:菲律宾团队管理。\n3. 点击该行或页面上的“导出”按钮。\n4. 按页面提示执行:导出工作时长、出勤、人均产出。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “导出”入口可用且文案正确。\n2. 操作后结果为:仅主管可导出。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 客服中心的导出动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=客服中心;按钮=导出 | 待执行\nTC-PROTO-0235 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统总览 | 功能测试 | 风险中心按钮级操作:同步黑名单 | P2 | 系统管理员已进入“风险中心”;存在业务条件:接口超时失败待重试。 | 按钮=同步黑名单;条件=接口超时失败待重试 | 1. 从管理员首页左侧导航进入“风险中心”。\n2. 在列表中找到满足条件的记录:接口超时失败待重试。\n3. 点击该行或页面上的“同步黑名单”按钮。\n4. 按页面提示执行:点击同步黑名单。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “同步黑名单”入口可用且文案正确。\n2. 操作后结果为:失败保留并进入重试队列。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 风险中心的同步黑名单动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=风险中心;按钮=同步黑名单 | 待执行\nTC-PROTO-0236 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统总览 | 功能测试 | 风险中心按钮级操作:规则复核 | P2 | 系统管理员已进入“风险中心”;存在业务条件:退订率高于基线规则提醒。 | 按钮=规则复核;条件=退订率高于基线规则提醒 | 1. 从管理员首页左侧导航进入“风险中心”。\n2. 在列表中找到满足条件的记录:退订率高于基线规则提醒。\n3. 点击该行或页面上的“规则复核”按钮。\n4. 按页面提示执行:查看规则依据并确认/误报。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “规则复核”入口可用且文案正确。\n2. 操作后结果为:复核结论写入风险事件。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 风险中心的规则复核动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=风险中心;按钮=规则复核 | 待执行\nTC-PROTO-0237 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统总览 | 功能测试 | 风险中心按钮级操作:查看完整信息 | P2 | 系统管理员已进入“风险中心”存在业务条件Profile/邮箱/设备号脱敏。 | 按钮=查看完整信息;条件=Profile/邮箱/设备号脱敏 | 1. 从管理员首页左侧导航进入“风险中心”。\n2. 在列表中找到满足条件的记录Profile/邮箱/设备号脱敏。\n3. 点击该行或页面上的“查看完整信息”按钮。\n4. 按页面提示执行:授权角色查看完整主体摘要。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “查看完整信息”入口可用且文案正确。\n2. 操作后结果为:记录敏感访问审计。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 风险中心的查看完整信息动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=风险中心;按钮=查看完整信息 | 待执行\nTC-PROTO-0238 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统总览 | 功能测试 | 报表中心按钮级操作:生成/下载报表 | P2 | 系统管理员已进入“报表中心”存在业务条件Listing健康日报每日08:30自动生成。 | 按钮=生成/下载报表;条件=Listing健康日报每日08:30自动生成 | 1. 从管理员首页左侧导航进入“报表中心”。\n2. 在列表中找到满足条件的记录Listing健康日报每日08:30自动生成。\n3. 点击该行或页面上的“生成/下载报表”按钮。\n4. 按页面提示执行:点击生成/下载报表。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “生成/下载报表”入口可用且文案正确。\n2. 操作后结果为:生成记录可下载且脱敏。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 报表中心的生成/下载报表动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=报表中心;按钮=生成/下载报表 | 待执行\nTC-PROTO-0239 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统总览 | 功能测试 | 报表中心按钮级操作:上传记录 | P2 | 系统管理员已进入“报表中心”;存在业务条件:推送效果与风险复盘支持上传补充记录。 | 按钮=上传记录;条件=推送效果与风险复盘支持上传补充记录 | 1. 从管理员首页左侧导航进入“报表中心”。\n2. 在列表中找到满足条件的记录:推送效果与风险复盘支持上传补充记录。\n3. 点击该行或页面上的“上传记录”按钮。\n4. 按页面提示执行:上传人工复核附件。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “上传记录”入口可用且文案正确。\n2. 操作后结果为附件关联报表ID。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 报表中心的上传记录动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=报表中心;按钮=上传记录 | 待执行\nTC-PROTO-0240 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理 | 系统总览 | 功能测试 | 系统管理按钮级操作:新建账号 | P2 | 系统管理员已进入“系统管理”;存在业务条件:按部门角色站点数据范围开通。 | 按钮=新建账号;条件=按部门角色站点数据范围开通 | 1. 从管理员首页左侧导航进入“系统管理”。\n2. 在列表中找到满足条件的记录:按部门角色站点数据范围开通。\n3. 点击该行或页面上的“新建账号”按钮。\n4. 按页面提示执行:录入账号、部门、角色、站点范围。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “新建账号”入口可用且文案正确。\n2. 操作后结果为:账号可登录且权限生效。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 系统管理的新建账号动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=系统管理;按钮=新建账号 | 待执行\nTC-PROTO-0241 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理 | 系统总览 | 功能测试 | 系统管理按钮级操作:离职管理 | P2 | 系统管理员已进入“系统管理”;存在业务条件:停用账号交接任务回收权限。 | 按钮=离职管理;条件=停用账号交接任务回收权限 | 1. 从管理员首页左侧导航进入“系统管理”。\n2. 在列表中找到满足条件的记录:停用账号交接任务回收权限。\n3. 点击该行或页面上的“离职管理”按钮。\n4. 按页面提示执行:选择离职员工并指定交接人。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “离职管理”入口可用且文案正确。\n2. 操作后结果为:账号停用且敏感权限回收。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 系统管理的离职管理动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=系统管理;按钮=离职管理 | 待执行\nTC-PROTO-0285 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台 | 系统稳定性与幂等 | 异常场景 | 工作台稳定性校验:重复点击处理卡点 | P2 | 已进入“工作台”;准备可执行场景:重复点击处理卡点。 | 动作=连续点击处理卡点按钮2次预期=只打开一个详情/处理弹窗,不重复创建处理记录 | 1. 打开原型页面“工作台”。\n2. 准备或选择满足场景的数据。\n3. 执行操作连续点击处理卡点按钮2次。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只打开一个详情/处理弹窗,不重复创建处理记录。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:重复点击处理卡点 | 待执行\nTC-PROTO-0286 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台 | 系统稳定性与幂等 | 异常场景 | 工作台稳定性校验:刷新后保持时间范围 | P2 | 已进入“工作台”;准备可执行场景:刷新后保持时间范围。 | 动作=选择最近30天后刷新页面预期=仍显示最近30天或按产品定义恢复默认并不报错 | 1. 打开原型页面“工作台”。\n2. 准备或选择满足场景的数据。\n3. 执行操作选择最近30天后刷新页面。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为仍显示最近30天或按产品定义恢复默认并不报错。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:刷新后保持时间范围 | 待执行\nTC-PROTO-0287 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统稳定性与幂等 | 异常场景 | 风险中心稳定性校验:黑名单同步重复提交 | P2 | 已进入“风险中心”;准备可执行场景:黑名单同步重复提交。 | 动作=同步黑名单按钮连续点击;预期=只生成一次同步任务,第二次提示处理中 | 1. 打开原型页面“风险中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:同步黑名单按钮连续点击。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只生成一次同步任务,第二次提示处理中。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:黑名单同步重复提交 | 待执行\nTC-PROTO-0288 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统稳定性与幂等 | 异常场景 | 报表中心稳定性校验:报表生成中重复下载 | P2 | 已进入“报表中心”;准备可执行场景:报表生成中重复下载。 | 动作=报表状态自动生成中点击下载;预期=提示生成中,不下载空文件 | 1. 打开原型页面“报表中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:报表状态自动生成中点击下载。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示生成中,不下载空文件。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:报表生成中重复下载 | 待执行\n# Sheet: HTML2-v10管理原型\n用例编号 | HTML原型 | 功能页面 | 需求模块 | 测试类型 | 用例名称 | 优先级 | 前置条件 | 测试数据 | 操作步骤 | 预期结果 | 数据校验 | 权限校验 | 验收标准 | 需求依据 | 原型依据 | 用例状态\nTC-PROTO-0034 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP页面用户管理字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“用户管理”。 | 现有页面=用户中心 / 用户;字段=JOYHUB 用户ID、用户名、头像、注册时间、最近活跃时间、用户身份、标签、邮箱后缀、主页背景图、自我介绍查询条件=搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份MVP用途=用户画像筛选、推送人群、客服定位、风险排查 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“用户管理”。\n3. 核对现有页面名称是否为“用户中心 / 用户”。\n4. 展开字段详情逐项核对字段JOYHUB 用户ID、用户名、头像、注册时间、最近活跃时间、用户身份、标签、邮箱后缀、主页背景图、自我介绍。\n5. 在查询条件区按“搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “用户管理”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系用户管理按钮生成字段表、导出现有关系 | 待执行\nTC-PROTO-0035 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 异常场景 | 用户管理查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“用户管理”关系页面用户有查询权限。 | 查询条件=搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份输入值=不存在的标签/身份/国家组合 | 1. 在“用户管理”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0036 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP页面公域-用户标签字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“公域-用户标签”。 | 现有页面=标签 / 公域用户;字段=ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、备注、状态查询条件=搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间MVP用途=公域人群圈选、覆盖人数评估、推送前过滤 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“公域-用户标签”。\n3. 核对现有页面名称是否为“标签 / 公域用户”。\n4. 展开字段详情逐项核对字段ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、备注、状态。\n5. 在查询条件区按“搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “公域-用户标签”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系公域-用户标签;按钮:生成字段表、导出现有关系 | 待执行\nTC-PROTO-0037 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 异常场景 | 公域-用户标签查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“公域-用户标签”关系页面;用户有查询权限。 | 查询条件=搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间;输入值=不存在的标签/身份/国家组合 | 1. 在“公域-用户标签”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0038 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 需求与计划管理 | 功能测试 | 现有ERP页面公域-产品标签字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“公域-产品标签”。 | 现有页面=标签 / 公域产品;字段=标签ID、标签名称、产品、标签覆盖产品数量、备注、创建时间、创建人查询条件=搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间MVP用途=产品分层、Listing 健康策略、产品绑定率分析 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“公域-产品标签”。\n3. 核对现有页面名称是否为“标签 / 公域产品”。\n4. 展开字段详情逐项核对字段标签ID、标签名称、产品、标签覆盖产品数量、备注、创建时间、创建人。\n5. 在查询条件区按“搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “公域-产品标签”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系公域-产品标签;按钮:生成字段表、导出现有关系 | 待执行\nTC-PROTO-0039 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 需求与计划管理 | 异常场景 | 公域-产品标签查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“公域-产品标签”关系页面;用户有查询权限。 | 查询条件=搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间;输入值=不存在的标签/身份/国家组合 | 1. 在“公域-产品标签”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0040 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP页面私域-用户标签字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“私域-用户标签”。 | 现有页面=标签 / 私域用户;字段=ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、状态查询条件=标签分类、打标方式、覆盖人数、状态、时间范围MVP用途=私域精细运营、客服分组、活动复盘、风险用户隔离 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“私域-用户标签”。\n3. 核对现有页面名称是否为“标签 / 私域用户”。\n4. 展开字段详情逐项核对字段ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、状态。\n5. 在查询条件区按“标签分类、打标方式、覆盖人数、状态、时间范围”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “私域-用户标签”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系私域-用户标签;按钮:生成字段表、导出现有关系 | 待执行\nTC-PROTO-0041 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 异常场景 | 私域-用户标签查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“私域-用户标签”关系页面;用户有查询权限。 | 查询条件=标签分类、打标方式、覆盖人数、状态、时间范围;输入值=不存在的标签/身份/国家组合 | 1. 在“私域-用户标签”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0042 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP页面身份管理字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“身份管理”。 | 现有页面=身份;字段=账号身份、图标PNG、图标PNG、图标PNG、操作查询条件=身份名称、身份分组、状态、更新时间MVP用途=识别官方、品牌、达人、风险、客服等用户身份 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“身份管理”。\n3. 核对现有页面名称是否为“身份”。\n4. 展开字段详情逐项核对字段账号身份、图标PNG、图标PNG、图标PNG、操作。\n5. 在查询条件区按“身份名称、身份分组、状态、更新时间”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “身份管理”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系身份管理按钮生成字段表、导出现有关系 | 待执行\nTC-PROTO-0043 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 异常场景 | 身份管理查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“身份管理”关系页面用户有查询权限。 | 查询条件=身份名称、身份分组、状态、更新时间;输入值=不存在的标签/身份/国家组合 | 1. 在“身份管理”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0044 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 用户标签关系用于人群圈选、用户画像、风险过滤 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 用户标签;关系类型=多对多;用途=人群圈选、用户画像、风险过滤 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 用户标签”。\n4. 查看关系类型是否显示为“多对多”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“人群圈选、用户画像、风险过滤”。 | 1. 关系“用户 - 用户标签”存在。\n2. 类型展示为“多对多”。\n3. 详情能说明该关系服务于“人群圈选、用户画像、风险过滤”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 用户标签 | 待执行\nTC-PROTO-0045 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 身份关系用于官方、品牌、达人、客服、风险身份识别 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 身份;关系类型=待确认:一对多或多对多;用途=官方、品牌、达人、客服、风险身份识别 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 身份”。\n4. 查看关系类型是否显示为“待确认:一对多或多对多”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“官方、品牌、达人、客服、风险身份识别”。 | 1. 关系“用户 - 身份”存在。\n2. 类型展示为“待确认:一对多或多对多”。\n3. 详情能说明该关系服务于“官方、品牌、达人、客服、风险身份识别”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 身份 | 待执行\nTC-PROTO-0046 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 产品关系用于测评用户池、客服定位 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 产品;关系类型=绑定/连接产品;用途=测评用户池、客服定位 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 产品”。\n4. 查看关系类型是否显示为“绑定/连接产品”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“测评用户池、客服定位”。 | 1. 关系“用户 - 产品”存在。\n2. 类型展示为“绑定/连接产品”。\n3. 详情能说明该关系服务于“测评用户池、客服定位”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 产品 | 待执行\nTC-PROTO-0047 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验产品 - 产品标签 - Listing关系用于Listing 健康策略、ASIN 归因 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=产品 - 产品标签 - Listing关系类型=产品分层;用途=Listing 健康策略、ASIN 归因 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“产品 - 产品标签 - Listing”。\n4. 查看关系类型是否显示为“产品分层”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“Listing 健康策略、ASIN 归因”。 | 1. 关系“产品 - 产品标签 - Listing”存在。\n2. 类型展示为“产品分层”。\n3. 详情能说明该关系服务于“Listing 健康策略、ASIN 归因”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:产品 - 产品标签 - Listing | 待执行\nTC-PROTO-0048 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 活动关系用于KOC/KOL、私域运营沉淀 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 活动;关系类型=活动参与;用途=KOC/KOL、私域运营沉淀 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 活动”。\n4. 查看关系类型是否显示为“活动参与”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“KOC/KOL、私域运营沉淀”。 | 1. 关系“用户 - 活动”存在。\n2. 类型展示为“活动参与”。\n3. 详情能说明该关系服务于“KOC/KOL、私域运营沉淀”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 活动 | 待执行\nTC-PROTO-0049 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 推送关系用于IM/EDM/TEL/App Push 频控、点击、回复、退订 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 推送;关系类型=一对多;用途=IM/EDM/TEL/App Push 频控、点击、回复、退订 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 推送”。\n4. 查看关系类型是否显示为“一对多”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“IM/EDM/TEL/App Push 频控、点击、回复、退订”。 | 1. 关系“用户 - 推送”存在。\n2. 类型展示为“一对多”。\n3. 详情能说明该关系服务于“IM/EDM/TEL/App Push 频控、点击、回复、退订”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 推送 | 待执行\nTC-PROTO-0050 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 风险/黑名单关系用于诈骗同步、客服升级、风险用户隔离 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 风险/黑名单;关系类型=风险隔离;用途=诈骗同步、客服升级、风险用户隔离 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 风险/黑名单”。\n4. 查看关系类型是否显示为“风险隔离”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“诈骗同步、客服升级、风险用户隔离”。 | 1. 关系“用户 - 风险/黑名单”存在。\n2. 类型展示为“风险隔离”。\n3. 详情能说明该关系服务于“诈骗同步、客服升级、风险用户隔离”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 风险/黑名单 | 待执行\nTC-PROTO-0051 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行用户主档查询并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=用户主档查询;查询条件=JOYHUB ID、用户名、邮箱后缀、国家、性别、注册/活跃时间;预期输出=用户主档、标签、身份、产品关系、近期活跃;使用页面=用户中心 / 客服中心 / 风险中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“用户主档查询”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入JOYHUB ID、用户名、邮箱后缀、国家、性别、注册/活跃时间。\n5. 点击查询。\n6. 查看结果区是否输出:用户主档、标签、身份、产品关系、近期活跃。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “用户主档查询”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“用户主档、标签、身份、产品关系、近期活跃”。\n4. 跳转到“用户中心 / 客服中心 / 风险中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:用户主档查询 | 待执行\nTC-PROTO-0052 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行推送前人群圈选并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=推送前人群圈选;查询条件=标签、身份、国家、渠道、产品绑定/连接、活动、EDM近7天次数预期输出=候选用户数、预计触达、频控风险、可保存人群包;使用页面=计划中心 / 推送中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“推送前人群圈选”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入:标签、身份、国家、渠道、产品绑定/连接、活动、EDM近7天次数。\n5. 点击查询。\n6. 查看结果区是否输出:候选用户数、预计触达、频控风险、可保存人群包。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “推送前人群圈选”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“候选用户数、预计触达、频控风险、可保存人群包”。\n4. 跳转到“计划中心 / 推送中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:推送前人群圈选 | 待执行\nTC-PROTO-0053 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行测评与真实评价跟踪人群并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=测评与真实评价跟踪人群;查询条件=ASIN/Listing、产品绑定、连接产品、最近活跃、国家/站点、风险身份排除;预期输出=推荐用户池、排除用户池、进入计划中心;使用页面=需求中心 / 计划中心 / 客服中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“测评与真实评价跟踪人群”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入ASIN/Listing、产品绑定、连接产品、最近活跃、国家/站点、风险身份排除。\n5. 点击查询。\n6. 查看结果区是否输出:推荐用户池、排除用户池、进入计划中心。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “测评与真实评价跟踪人群”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“推荐用户池、排除用户池、进入计划中心”。\n4. 跳转到“需求中心 / 计划中心 / 客服中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:测评与真实评价跟踪人群 | 待执行\nTC-PROTO-0054 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行标签覆盖查询并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=标签覆盖查询;查询条件=标签分类、打标方式、覆盖人数、最新打标时间、状态;预期输出=标签列表、覆盖趋势、异常覆盖提示;使用页面=现有ERP / 数据中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“标签覆盖查询”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入:标签分类、打标方式、覆盖人数、最新打标时间、状态。\n5. 点击查询。\n6. 查看结果区是否输出:标签列表、覆盖趋势、异常覆盖提示。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “标签覆盖查询”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“标签列表、覆盖趋势、异常覆盖提示”。\n4. 跳转到“现有ERP / 数据中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:标签覆盖查询 | 待执行\nTC-PROTO-0055 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行身份风险查询并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=身份风险查询;查询条件=身份名称、身份分组、风险等级、状态;预期输出=风险用户池、客服/推送排除名单、黑名单同步候选;使用页面=风险中心 / 系统管理 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“身份风险查询”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入:身份名称、身份分组、风险等级、状态。\n5. 点击查询。\n6. 查看结果区是否输出:风险用户池、客服/推送排除名单、黑名单同步候选。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “身份风险查询”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“风险用户池、客服/推送排除名单、黑名单同步候选”。\n4. 跳转到“风险中心 / 系统管理”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:身份风险查询 | 待执行\nTC-PROTO-0056 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行新建账号并校验权限与审计 | P1 | 用户以系统管理员身份登录;系统资产模块可访问;系统管理列表包含“新建账号”。 | 动作=新建账号;说明=按部门、角色、站点、数据范围开通账号;预期=账号创建后出现在系统管理列表 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“新建账号”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:按部门、角色、站点、数据范围开通账号。\n6. 提交后进入审计日志,按动作类型筛选“新建账号”。 | 1. 有权限角色可完成“新建账号”。\n2. 执行结果符合“账号创建后出现在系统管理列表”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 新建账号仅对系统管理员开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:新建账号;权限分配;审计日志 | 待执行\nTC-PROTO-0057 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行离职管理并校验权限与审计 | P1 | 用户以系统管理员身份登录;系统资产模块可访问;系统管理列表包含“离职管理”。 | 动作=离职管理;说明=停用账号、交接任务、回收敏感权限;预期=离职账号不可登录且任务已交接 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“离职管理”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:停用账号、交接任务、回收敏感权限。\n6. 提交后进入审计日志,按动作类型筛选“离职管理”。 | 1. 有权限角色可完成“离职管理”。\n2. 执行结果符合“离职账号不可登录且任务已交接”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 离职管理仅对系统管理员开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:离职管理;权限分配;审计日志 | 待执行\nTC-PROTO-0058 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行权限分配并校验权限与审计 | P1 | 用户以系统管理员/负责人身份登录;系统资产模块可访问;系统管理列表包含“权限分配”。 | 动作=权限分配;说明=导出、审批、查看敏感信息、黑名单同步独立授权;预期=权限粒度按按钮和数据范围生效 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“权限分配”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:导出、审批、查看敏感信息、黑名单同步独立授权。\n6. 提交后进入审计日志,按动作类型筛选“权限分配”。 | 1. 有权限角色可完成“权限分配”。\n2. 执行结果符合“权限粒度按按钮和数据范围生效”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 权限分配仅对系统管理员/负责人开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:权限分配;权限分配;审计日志 | 待执行\nTC-PROTO-0059 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行审计日志并校验权限与审计 | P1 | 用户以系统管理员/审计角色身份登录;系统资产模块可访问;系统管理列表包含“审计日志”。 | 动作=审计日志;说明=导出、查看敏感信息、黑名单同步、审批动作;预期=每个敏感动作有日志ID和操作者 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“审计日志”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:导出、查看敏感信息、黑名单同步、审批动作。\n6. 提交后进入审计日志,按动作类型筛选“审计日志”。 | 1. 有权限角色可完成“审计日志”。\n2. 执行结果符合“每个敏感动作有日志ID和操作者”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 审计日志仅对系统管理员/审计角色开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:审计日志;权限分配;审计日志 | 待执行\nTC-PROTO-0179 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段JOYHUB 用户ID按全员可见权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“JOYHUB 用户ID”存在。 | 字段=JOYHUB 用户ID可见范围=全员可见;期望=完整ID可见 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“JOYHUB 用户ID”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“JOYHUB 用户ID”按照“全员可见”控制可见性。\n2. 符合预期完整ID可见。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | JOYHUB 用户ID必须按全员可见控制查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单JOYHUB 用户ID/全员可见 | 待执行\nTC-PROTO-0180 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段用户名按授权可见权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“用户名”存在。 | 字段=用户名;可见范围=授权可见;期望=未授权显示脱敏 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“用户名”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“用户名”按照“授权可见”控制可见性。\n2. 符合预期:未授权显示脱敏。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 用户名必须按授权可见控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:用户名/授权可见 | 待执行\nTC-PROTO-0181 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段邮箱后缀按已脱敏权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“邮箱后缀”存在。 | 字段=邮箱后缀;可见范围=已脱敏;期望=只显示邮箱域名/后缀 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“邮箱后缀”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“邮箱后缀”按照“已脱敏”控制可见性。\n2. 符合预期:只显示邮箱域名/后缀。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 邮箱后缀必须按已脱敏控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:邮箱后缀/已脱敏 | 待执行\nTC-PROTO-0182 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段近7天EDM推送数按推送数据权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“近7天EDM推送数”存在。 | 字段=近7天EDM推送数可见范围=推送数据;期望=仅推送/管理员可见 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“近7天EDM推送数”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“近7天EDM推送数”按照“推送数据”控制可见性。\n2. 符合预期:仅推送/管理员可见。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 近7天EDM推送数必须按推送数据控制查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单近7天EDM推送数/推送数据 | 待执行\nTC-PROTO-0183 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段身份风险等级按系统管理员/风险负责人权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“身份风险等级”存在。 | 字段=身份风险等级;可见范围=系统管理员/风险负责人;期望=普通运营不可见 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“身份风险等级”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“身份风险等级”按照“系统管理员/风险负责人”控制可见性。\n2. 符合预期:普通运营不可见。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 身份风险等级必须按系统管理员/风险负责人控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:身份风险等级/系统管理员/风险负责人 | 待执行\nTC-PROTO-0184 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段标签覆盖人数按标签模块权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“标签覆盖人数”存在。 | 字段=标签覆盖人数;可见范围=标签模块;期望=负责人可见汇总,普通客服不可导出 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“标签覆盖人数”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“标签覆盖人数”按照“标签模块”控制可见性。\n2. 符合预期:负责人可见汇总,普通客服不可导出。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 标签覆盖人数必须按标签模块控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:标签覆盖人数/标签模块 | 待执行\nTC-PROTO-0242 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP 用户管理搜索JOYHUB用户ID | P2 | v10原型进入现有ERP模块当前页为“用户管理”用户具备字段查询权限。 | 操作=输入JOYHUB ID并查询预期=返回用户主档、标签、身份、产品关系 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“用户管理”。\n3. 执行业务操作输入JOYHUB ID并查询。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“搜索JOYHUB用户ID”。\n2. 输出结果为:返回用户主档、标签、身份、产品关系。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 用户管理的搜索JOYHUB用户ID可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP用户管理/搜索JOYHUB用户ID | 待执行\nTC-PROTO-0243 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP 用户管理按国家和近7天EDM次数筛选 | P2 | v10原型进入现有ERP模块当前页为“用户管理”用户具备字段查询权限。 | 操作=国家=USEDM近7天>0预期=返回可用于触达的人群 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“用户管理”。\n3. 执行业务操作:国家=USEDM近7天>0。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“按国家和近7天EDM次数筛选”。\n2. 输出结果为:返回可用于触达的人群。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 用户管理的按国家和近7天EDM次数筛选可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP用户管理/按国家和近7天EDM次数筛选 | 待执行\nTC-PROTO-0244 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP 用户管理:打开用户画像详情 | P2 | v10原型进入现有ERP模块当前页为“用户管理”用户具备字段查询权限。 | 操作=点击用户行详情;预期=展示注册/活跃时间、标签、产品、活动 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“用户管理”。\n3. 执行业务操作:点击用户行详情。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“打开用户画像详情”。\n2. 输出结果为:展示注册/活跃时间、标签、产品、活动。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 用户管理的打开用户画像详情可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP用户管理/打开用户画像详情 | 待执行\nTC-PROTO-0245 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-用户标签:新增标签覆盖查询 | P2 | v10原型进入现有ERP模块当前页为“公域-用户标签”;用户具备字段查询权限。 | 操作=标签分类=兴趣;打标方式=系统;预期=展示覆盖人数和最新打标时间 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-用户标签”。\n3. 执行业务操作:标签分类=兴趣;打标方式=系统。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“新增标签覆盖查询”。\n2. 输出结果为:展示覆盖人数和最新打标时间。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-用户标签的新增标签覆盖查询可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-用户标签/新增标签覆盖查询 | 待执行\nTC-PROTO-0246 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-用户标签:覆盖人数异常提示 | P2 | v10原型进入现有ERP模块当前页为“公域-用户标签”;用户具备字段查询权限。 | 操作=标签覆盖人数突增或为0预期=展示异常覆盖提示 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-用户标签”。\n3. 执行业务操作标签覆盖人数突增或为0。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“覆盖人数异常提示”。\n2. 输出结果为:展示异常覆盖提示。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-用户标签的覆盖人数异常提示可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-用户标签/覆盖人数异常提示 | 待执行\nTC-PROTO-0247 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-产品标签产品标签关联Listing | P2 | v10原型进入现有ERP模块当前页为“公域-产品标签”;用户具备字段查询权限。 | 操作=选择产品标签并查看关联产品;预期=展示产品-品牌-Listing/ASIN关系 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-产品标签”。\n3. 执行业务操作:选择产品标签并查看关联产品。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“产品标签关联Listing”。\n2. 输出结果为:展示产品-品牌-Listing/ASIN关系。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-产品标签的产品标签关联Listing可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-产品标签/产品标签关联Listing | 待执行\nTC-PROTO-0248 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-产品标签:按创建时间筛选标签 | P2 | v10原型进入现有ERP模块当前页为“公域-产品标签”;用户具备字段查询权限。 | 操作=开始/截止时间;预期=只返回时间范围内标签 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-产品标签”。\n3. 执行业务操作:开始/截止时间。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“按创建时间筛选标签”。\n2. 输出结果为:只返回时间范围内标签。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-产品标签的按创建时间筛选标签可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-产品标签/按创建时间筛选标签 | 待执行\nTC-PROTO-0249 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 私域-用户标签:客服分组标签查询 | P2 | v10原型进入现有ERP模块当前页为“私域-用户标签”;用户具备字段查询权限。 | 操作=标签分类=客服分组;预期=输出私域用户标签与社群/活动关系 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“私域-用户标签”。\n3. 执行业务操作:标签分类=客服分组。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“客服分组标签查询”。\n2. 输出结果为:输出私域用户标签与社群/活动关系。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 私域-用户标签的客服分组标签查询可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP私域-用户标签/客服分组标签查询 | 待执行\nTC-PROTO-0250 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 私域-用户标签:风险用户隔离标签 | P2 | v10原型进入现有ERP模块当前页为“私域-用户标签”;用户具备字段查询权限。 | 操作=标签状态=启用;风险相关;预期=可作为客服/推送排除条件 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“私域-用户标签”。\n3. 执行业务操作:标签状态=启用;风险相关。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“风险用户隔离标签”。\n2. 输出结果为:可作为客服/推送排除条件。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 私域-用户标签的风险用户隔离标签可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP私域-用户标签/风险用户隔离标签 | 待执行\nTC-PROTO-0251 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP 身份管理:查看多语言图标 | P2 | v10原型进入现有ERP模块当前页为“身份管理”用户具备字段查询权限。 | 操作=打开身份详情;预期=展示英/德/日图标PNG | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“身份管理”。\n3. 执行业务操作:打开身份详情。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“查看多语言图标”。\n2. 输出结果为:展示英/德/日图标PNG。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 身份管理的查看多语言图标可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP身份管理/查看多语言图标 | 待执行\nTC-PROTO-0252 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP 身份管理:身份风险等级筛选 | P2 | v10原型进入现有ERP模块当前页为“身份管理”用户具备字段查询权限。 | 操作=身份风险等级=高;预期=进入风险用户池候选 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“身份管理”。\n3. 执行业务操作:身份风险等级=高。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“身份风险等级筛选”。\n2. 输出结果为:进入风险用户池候选。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 身份管理的身份风险等级筛选可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP身份管理/身份风险等级筛选 | 待执行\nTC-PROTO-0253 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP 身份管理:身份状态停用 | P2 | v10原型进入现有ERP模块当前页为“身份管理”用户具备字段查询权限。 | 操作=将风险身份置为停用;预期=后续筛选不再作为可选身份 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“身份管理”。\n3. 执行业务操作:将风险身份置为停用。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“身份状态停用”。\n2. 输出结果为:后续筛选不再作为可选身份。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 身份管理的身份状态停用可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP身份管理/身份状态停用 | 待执行\nTC-PROTO-0289 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP | 系统稳定性与幂等 | 异常场景 | 现有ERP稳定性校验生成字段表重复点击 | P2 | 已进入“现有ERP”准备可执行场景生成字段表重复点击。 | 动作=连续点击生成字段表;预期=字段表只生成一份或版本号递增可追踪 | 1. 打开原型页面“现有ERP”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:连续点击生成字段表。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:字段表只生成一份或版本号递增可追踪。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:生成字段表重复点击 | 待执行\nTC-PROTO-0290 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP | 系统稳定性与幂等 | 异常场景 | 现有ERP稳定性校验导出现有关系无数据 | P2 | 已进入“现有ERP”准备可执行场景导出现有关系无数据。 | 动作=查询结果为空后导出;预期=提示暂无可导出数据 | 1. 打开原型页面“现有ERP”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:查询结果为空后导出。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示暂无可导出数据。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:导出现有关系无数据 | 待执行\nTC-PROTO-0291 | user_erp_mvp_admin_prototype_v10(1).html | 身份管理 | 系统稳定性与幂等 | 异常场景 | 身份管理稳定性校验:多语言图标缺失 | P2 | 已进入“身份管理”;准备可执行场景:多语言图标缺失。 | 动作=德语图标PNG为空预期=页面显示占位并提示需补充 | 1. 打开原型页面“身份管理”。\n2. 准备或选择满足场景的数据。\n3. 执行操作德语图标PNG为空。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:页面显示占位并提示需补充。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:多语言图标缺失 | 待执行\nTC-PROTO-0292 | user_erp_mvp_admin_prototype_v10(1).html | 用户管理 | 系统稳定性与幂等 | 异常场景 | 用户管理稳定性校验:分页切换保持筛选 | P2 | 已进入“用户管理”;准备可执行场景:分页切换保持筛选。 | 动作=筛选国家US后切换下一页预期=筛选条件不丢失 | 1. 打开原型页面“用户管理”。\n2. 准备或选择满足场景的数据。\n3. 执行操作筛选国家US后切换下一页。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:筛选条件不丢失。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:分页切换保持筛选 | 待执行\n# Sheet: HTML3-客服执行\n用例编号 | HTML原型 | 功能页面 | 需求模块 | 测试类型 | 用例名称 | 优先级 | 前置条件 | 测试数据 | 操作步骤 | 预期结果 | 数据校验 | 权限校验 | 验收标准 | 需求依据 | 原型依据 | 用例状态\nTC-PROTO-0060 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看在线客服数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=在线客服数;原型变量=onlineAgents 人;动作=查看当前可用客服池 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“在线客服数”。\n3. 核对指标值单位是否符合“onlineAgents 人”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“在线客服数”显示在客服执行看板。\n2. 点击后进入与“查看当前可用客服池”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量onlineAgents 人;标题:客服执行看板 | 待执行\nTC-PROTO-0061 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看今日工单指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=今日工单;原型变量=todayTickets 单;动作=查看今日进入客服中心的工单总量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“今日工单”。\n3. 核对指标值单位是否符合“todayTickets 单”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“今日工单”显示在客服执行看板。\n2. 点击后进入与“查看今日进入客服中心的工单总量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量todayTickets 单;标题:客服执行看板 | 待执行\nTC-PROTO-0062 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看待处理工单指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=待处理工单;原型变量=pendingTickets 单;动作=查看未关闭/待处理队列 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“待处理工单”。\n3. 核对指标值单位是否符合“pendingTickets 单”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“待处理工单”显示在客服执行看板。\n2. 点击后进入与“查看未关闭/待处理队列”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量pendingTickets 单;标题:客服执行看板 | 待执行\nTC-PROTO-0063 | 客服执行.html | 客服执行看板 | 多渠道触达引擎 | 功能测试 | 客服执行看板查看今日消息指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=今日消息;原型变量=todayMessages 条;动作=查看客服发送和接收消息量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“今日消息”。\n3. 核对指标值单位是否符合“todayMessages 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“今日消息”显示在客服执行看板。\n2. 点击后进入与“查看客服发送和接收消息量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量todayMessages 条;标题:客服执行看板 | 待执行\nTC-PROTO-0064 | 客服执行.html | 客服执行看板 | 评价结果追踪 | 功能测试 | 客服执行看板查看今日获取评价指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=今日获取评价;原型变量=todayReviews 条;动作=查看今日客服转化评价数 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“今日获取评价”。\n3. 核对指标值单位是否符合“todayReviews 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“今日获取评价”显示在客服执行看板。\n2. 点击后进入与“查看今日客服转化评价数”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量todayReviews 条;标题:客服执行看板 | 待执行\nTC-PROTO-0065 | 客服执行.html | 客服执行看板 | 评价结果追踪 | 功能测试 | 客服执行看板查看本月获取评价指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=本月获取评价;原型变量=monthReviews 条;动作=查看月度评价产出 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“本月获取评价”。\n3. 核对指标值单位是否符合“monthReviews 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“本月获取评价”显示在客服执行看板。\n2. 点击后进入与“查看月度评价产出”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量monthReviews 条;标题:客服执行看板 | 待执行\nTC-PROTO-0066 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看排班到岗指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=排班到岗;原型变量=实际/应到 人;动作=查看排班、在线状态和出勤异常 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“排班到岗”。\n3. 核对指标值单位是否符合“实际/应到 人”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“排班到岗”显示在客服执行看板。\n2. 点击后进入与“查看排班、在线状态和出勤异常”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量:实际/应到 人;标题:客服执行看板 | 待执行\nTC-PROTO-0067 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看迟到次数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=迟到次数;原型变量=lateDays 次;动作=查看迟到/早退/请假/缺勤 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“迟到次数”。\n3. 核对指标值单位是否符合“lateDays 次”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“迟到次数”显示在客服执行看板。\n2. 点击后进入与“查看迟到/早退/请假/缺勤”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量lateDays 次;标题:客服执行看板 | 待执行\nTC-PROTO-0068 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看回复用户数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=回复用户数;原型变量=repliedUsers 人;动作=查看回复覆盖用户数 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“回复用户数”。\n3. 核对指标值单位是否符合“repliedUsers 人”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“回复用户数”显示在客服执行看板。\n2. 点击后进入与“查看回复覆盖用户数”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量repliedUsers 人;标题:客服执行看板 | 待执行\nTC-PROTO-0069 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看处理工单数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=处理工单数;原型变量=ticketCount 单;动作=查看处理工单量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“处理工单数”。\n3. 核对指标值单位是否符合“ticketCount 单”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“处理工单数”显示在客服执行看板。\n2. 点击后进入与“查看处理工单量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量ticketCount 单;标题:客服执行看板 | 待执行\nTC-PROTO-0070 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看发送消息数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=发送消息数;原型变量=messageCount 条;动作=查看消息发送量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“发送消息数”。\n3. 核对指标值单位是否符合“messageCount 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“发送消息数”显示在客服执行看板。\n2. 点击后进入与“查看消息发送量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量messageCount 条;标题:客服执行看板 | 待执行\nTC-PROTO-0071 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看平均首次回复指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=平均首次回复;原型变量=averageFirstReply 分钟;动作=查看平均首次回复时长 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“平均首次回复”。\n3. 核对指标值单位是否符合“averageFirstReply 分钟”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“平均首次回复”显示在客服执行看板。\n2. 点击后进入与“查看平均首次回复时长”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量averageFirstReply 分钟;标题:客服执行看板 | 待执行\nTC-PROTO-0072 | 客服执行.html | 客服执行看板 | 评价结果追踪 | 功能测试 | 客服执行看板查看RSO/RDO评价数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=RSO/RDO评价数原型变量=rsoReviews+rdoReviews 条;动作=查看回评/测评转化 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“RSO/RDO评价数”。\n3. 核对指标值单位是否符合“rsoReviews+rdoReviews 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“RSO/RDO评价数”显示在客服执行看板。\n2. 点击后进入与“查看回评/测评转化”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量rsoReviews+rdoReviews 条;标题:客服执行看板 | 待执行\nTC-PROTO-0073 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看目标完成率指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=目标完成率;原型变量=totalRate动作=查看目标完成进度 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“目标完成率”。\n3. 核对指标值单位是否符合“totalRate”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“目标完成率”显示在客服执行看板。\n2. 点击后进入与“查看目标完成进度”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量totalRate标题客服执行看板 | 待执行\nTC-PROTO-0074 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 用户消息进入工单从待分配执行自动分配流转到已分配 | P1 | 客服系统存在来源为“用户消息进入”的工单;当前状态为“待分配”;用户上下文卡可查询或降级展示。 | 来源=用户消息进入;起始状态=待分配;操作=自动分配;目标状态=已分配 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“用户消息进入”。\n3. 打开状态为“待分配”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“自动分配”:在线客服池按班次+在线状态+当前负载+最大工单数分配。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“用户消息进入”和当前状态“待分配”。\n2. 执行“自动分配”后状态变为“已分配”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0075 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 推送转人工工单从待分配执行手动分配流转到已分配 | P1 | 客服系统存在来源为“推送转人工”的工单;当前状态为“待分配”;用户上下文卡可查询或降级展示。 | 来源=推送转人工;起始状态=待分配;操作=手动分配;目标状态=已分配 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“推送转人工”。\n3. 打开状态为“待分配”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“手动分配”:组长选择在线且未满载客服。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“推送转人工”和当前状态“待分配”。\n2. 执行“手动分配”后状态变为“已分配”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0076 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 售后触发工单从已分配执行首次回复流转到处理中 | P1 | 客服系统存在来源为“售后触发”的工单;当前状态为“已分配”;用户上下文卡可查询或降级展示。 | 来源=售后触发;起始状态=已分配;操作=首次回复;目标状态=处理中 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“售后触发”。\n3. 打开状态为“已分配”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“首次回复”:客服查看用户上下文后发送第一条回复。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“售后触发”和当前状态“已分配”。\n2. 执行“首次回复”后状态变为“处理中”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0077 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 风险触发工单从处理中执行标记疑似诈骗流转到疑似诈骗 | P1 | 客服系统存在来源为“风险触发”的工单;当前状态为“处理中”;用户上下文卡可查询或降级展示。 | 来源=风险触发;起始状态=处理中;操作=标记疑似诈骗;目标状态=疑似诈骗 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“风险触发”。\n3. 打开状态为“处理中”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“标记疑似诈骗”:客服在工单处理结果中选择疑似诈骗。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“风险触发”和当前状态“处理中”。\n2. 执行“标记疑似诈骗”后状态变为“疑似诈骗”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0078 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 电话后续工单从处理中执行等待用户回复流转到等待用户 | P1 | 客服系统存在来源为“电话后续”的工单;当前状态为“处理中”;用户上下文卡可查询或降级展示。 | 来源=电话后续;起始状态=处理中;操作=等待用户回复;目标状态=等待用户 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“电话后续”。\n3. 打开状态为“处理中”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“等待用户回复”:客服记录通话后等待用户补充订单号。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“电话后续”和当前状态“处理中”。\n2. 执行“等待用户回复”后状态变为“等待用户”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0079 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 用户答应配合工单从处理中执行创建跟进任务流转到待提醒 | P1 | 客服系统存在来源为“用户答应配合”的工单;当前状态为“处理中”;用户上下文卡可查询或降级展示。 | 来源=用户答应配合;起始状态=处理中;操作=创建跟进任务;目标状态=待提醒 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“用户答应配合”。\n3. 打开状态为“处理中”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“创建跟进任务”:客服将答应配合状态置为已答应并设置负责人。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“用户答应配合”和当前状态“处理中”。\n2. 执行“创建跟进任务”后状态变为“待提醒”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0080 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 等待提交工单从待提醒执行提醒用户流转到等待提交 | P1 | 客服系统存在来源为“等待提交”的工单;当前状态为“待提醒”;用户上下文卡可查询或降级展示。 | 来源=等待提交;起始状态=待提醒;操作=提醒用户;目标状态=等待提交 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“等待提交”。\n3. 打开状态为“待提醒”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“提醒用户”:到期前客服发送提醒消息。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“等待提交”和当前状态“待提醒”。\n2. 执行“提醒用户”后状态变为“等待提交”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0081 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 用户提交评价工单从等待提交执行登记提交事实流转到已提交 | P1 | 客服系统存在来源为“用户提交评价”的工单;当前状态为“等待提交”;用户上下文卡可查询或降级展示。 | 来源=用户提交评价;起始状态=等待提交;操作=登记提交事实;目标状态=已提交 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“用户提交评价”。\n3. 打开状态为“等待提交”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“登记提交事实”:客服上传截图/链接并关联计划和ASIN。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“用户提交评价”和当前状态“等待提交”。\n2. 执行“登记提交事实”后状态变为“已提交”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0082 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 评价核验完成工单从已提交执行关闭工单流转到已关闭 | P1 | 客服系统存在来源为“评价核验完成”的工单;当前状态为“已提交”;用户上下文卡可查询或降级展示。 | 来源=评价核验完成;起始状态=已提交;操作=关闭工单;目标状态=已关闭 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“评价核验完成”。\n3. 打开状态为“已提交”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“关闭工单”:评价展示确认后客服将工单置为已解决并关闭。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“评价核验完成”和当前状态“已提交”。\n2. 执行“关闭工单”后状态变为“已关闭”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0083 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 超时未提交工单从等待提交执行需再次联系流转到需再次联系 | P1 | 客服系统存在来源为“超时未提交”的工单;当前状态为“等待提交”;用户上下文卡可查询或降级展示。 | 来源=超时未提交;起始状态=等待提交;操作=需再次联系;目标状态=需再次联系 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“超时未提交”。\n3. 打开状态为“等待提交”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“需再次联系”:超过答应配合期限后生成再次联系任务。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“超时未提交”和当前状态“等待提交”。\n2. 执行“需再次联系”后状态变为“需再次联系”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0084 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:自动分配无在线客服 | P2 | 客服执行看板可用;准备异常条件:所有排班客服均离线或满载。 | 异常=自动分配无在线客服;条件=所有排班客服均离线或满载 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:所有排班客服均离线或满载。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“自动分配无在线客服”。\n2. 处理结果为:工单留在公共池并提醒组长。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:自动分配无在线客服 | 待执行\nTC-PROTO-0085 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:分配给离线客服 | P2 | 客服执行看板可用;准备异常条件:客服在线状态在分配前变为离线。 | 异常=分配给离线客服;条件=客服在线状态在分配前变为离线 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:客服在线状态在分配前变为离线。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“分配给离线客服”。\n2. 处理结果为:阻止分配并要求重新选择。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:分配给离线客服 | 待执行\nTC-PROTO-0086 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:当前负载超过最大工单数 | P2 | 客服执行看板可用;准备异常条件:客服未关闭工单数达到上限。 | 异常=当前负载超过最大工单数;条件=客服未关闭工单数达到上限 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:客服未关闭工单数达到上限。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“当前负载超过最大工单数”。\n2. 处理结果为:自动跳过该客服。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:当前负载超过最大工单数 | 待执行\nTC-PROTO-0087 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:用户上下文卡查询失败 | P2 | 客服执行看板可用准备异常条件identity 服务超时。 | 异常=用户上下文卡查询失败;条件=identity 服务超时 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单identity 服务超时。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“用户上下文卡查询失败”。\n2. 处理结果为:工单可继续处理但显示上下文数据可能过期。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:用户上下文卡查询失败 | 待执行\nTC-PROTO-0088 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:首次回复为空 | P2 | 客服执行看板可用;准备异常条件:客服点击发送但消息内容为空。 | 异常=首次回复为空;条件=客服点击发送但消息内容为空 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:客服点击发送但消息内容为空。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“首次回复为空”。\n2. 处理结果为:阻止发送并提示请输入回复内容。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:首次回复为空 | 待执行\nTC-PROTO-0089 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:关闭工单未选择处理结果 | P2 | 客服执行看板可用;准备异常条件:点击关闭但未选择已解决/拒绝/疑似诈骗等结果。 | 异常=关闭工单未选择处理结果;条件=点击关闭但未选择已解决/拒绝/疑似诈骗等结果 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:点击关闭但未选择已解决/拒绝/疑似诈骗等结果。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“关闭工单未选择处理结果”。\n2. 处理结果为:阻止关闭。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:关闭工单未选择处理结果 | 待执行\nTC-PROTO-0090 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:登记评价缺少证据 | P2 | 客服执行看板可用;准备异常条件:用户声称已评价但未上传截图或链接。 | 异常=登记评价缺少证据;条件=用户声称已评价但未上传截图或链接 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:用户声称已评价但未上传截图或链接。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“登记评价缺少证据”。\n2. 处理结果为:不允许进入已提交状态。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:登记评价缺少证据 | 待执行\nTC-PROTO-0091 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:答应配合任务超期 | P2 | 客服执行看板可用准备异常条件deadline_at 已过且无提交记录。 | 异常=答应配合任务超期;条件=deadline_at 已过且无提交记录 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单deadline_at 已过且无提交记录。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“答应配合任务超期”。\n2. 处理结果为:状态变为超时并生成需再次联系。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:答应配合任务超期 | 待执行\nTC-PROTO-0092 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:风险状态确认诈骗 | P2 | 客服执行看板可用准备异常条件risk 返回确认诈骗。 | 异常=风险状态确认诈骗;条件=risk 返回确认诈骗 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单risk 返回确认诈骗。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“风险状态确认诈骗”。\n2. 处理结果为:工单自动或人工确认后关闭并同步黑名单候选。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:风险状态确认诈骗 | 待执行\nTC-PROTO-0093 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:重复创建同用户打开工单 | P2 | 客服执行看板可用;准备异常条件:同 person_id 已存在 open 工单。 | 异常=重复创建同用户打开工单;条件=同 person_id 已存在 open 工单 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:同 person_id 已存在 open 工单。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“重复创建同用户打开工单”。\n2. 处理结果为:新工单关联已有工单或提示合并。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:重复创建同用户打开工单 | 待执行\nTC-PROTO-0185 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 客服本人在客服执行看板的可操作范围校验 | P1 | 准备客服本人账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=客服本人;数据范围=我的工单;允许=回复用户、登记提交事实;限制=不能改派他人工单或查看团队绩效 | 1. 使用“客服本人”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:回复用户、登记提交事实。\n4. 尝试执行限制动作:不能改派他人工单或查看团队绩效。\n5. 打开审计日志查看敏感操作记录。 | 1. 客服本人只能看到“我的工单”。\n2. 允许动作“回复用户、登记提交事实”可正常提交。\n3. 限制动作“不能改派他人工单或查看团队绩效”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 客服本人权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:客服本人 | 待执行\nTC-PROTO-0186 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 客服组长在客服执行看板的可操作范围校验 | P1 | 准备客服组长账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=客服组长;数据范围=组内工单池;允许=手动分配、转移、查看组员负载;限制=不能查看跨团队敏感字段 | 1. 使用“客服组长”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:手动分配、转移、查看组员负载。\n4. 尝试执行限制动作:不能查看跨团队敏感字段。\n5. 打开审计日志查看敏感操作记录。 | 1. 客服组长只能看到“组内工单池”。\n2. 允许动作“手动分配、转移、查看组员负载”可正常提交。\n3. 限制动作“不能查看跨团队敏感字段”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 客服组长权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:客服组长 | 待执行\nTC-PROTO-0187 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 客服主管在客服执行看板的可操作范围校验 | P1 | 准备客服主管账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=客服主管;数据范围=团队看板;允许=查看排班、绩效、目标完成率;限制=不能同步黑名单除非额外授权 | 1. 使用“客服主管”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:查看排班、绩效、目标完成率。\n4. 尝试执行限制动作:不能同步黑名单除非额外授权。\n5. 打开审计日志查看敏感操作记录。 | 1. 客服主管只能看到“团队看板”。\n2. 允许动作“查看排班、绩效、目标完成率”可正常提交。\n3. 限制动作“不能同步黑名单除非额外授权”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 客服主管权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:客服主管 | 待执行\nTC-PROTO-0188 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 风险负责人在客服执行看板的可操作范围校验 | P1 | 准备风险负责人账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=风险负责人;数据范围=疑似诈骗工单;允许=确认诈骗、标记误报、同步黑名单候选;限制=不能修改客服排班 | 1. 使用“风险负责人”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:确认诈骗、标记误报、同步黑名单候选。\n4. 尝试执行限制动作:不能修改客服排班。\n5. 打开审计日志查看敏感操作记录。 | 1. 风险负责人只能看到“疑似诈骗工单”。\n2. 允许动作“确认诈骗、标记误报、同步黑名单候选”可正常提交。\n3. 限制动作“不能修改客服排班”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 风险负责人权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:风险负责人 | 待执行\nTC-PROTO-0189 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 系统管理员在客服执行看板的可操作范围校验 | P1 | 准备系统管理员账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=系统管理员;数据范围=全部客服数据;允许=查看审计、配置权限、导出绩效;限制=敏感查看仍需记录审计 | 1. 使用“系统管理员”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:查看审计、配置权限、导出绩效。\n4. 尝试执行限制动作:敏感查看仍需记录审计。\n5. 打开审计日志查看敏感操作记录。 | 1. 系统管理员只能看到“全部客服数据”。\n2. 允许动作“查看审计、配置权限、导出绩效”可正常提交。\n3. 限制动作“敏感查看仍需记录审计”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 系统管理员权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:系统管理员 | 待执行\nTC-PROTO-0254 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态待分配执行分配给客服A | P2 | 客服执行看板存在状态为“待分配”的工单;当前用户对该工单有处理权限。 | 当前状态=待分配;动作=分配给客服A | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“待分配”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“分配给客服A”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“待分配”的工单可执行“分配给客服A”。\n2. 执行结果assigned_agent=客服A写入assignment_logs。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=待分配;动作=分配给客服A | 待执行\nTC-PROTO-0255 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态已分配执行客服首次回复 | P2 | 客服执行看板存在状态为“已分配”的工单;当前用户对该工单有处理权限。 | 当前状态=已分配;动作=客服首次回复 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“已分配”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“客服首次回复”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“已分配”的工单可执行“客服首次回复”。\n2. 执行结果:记录首次回复时长并进入处理中。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=已分配;动作=客服首次回复 | 待执行\nTC-PROTO-0256 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择等待用户回复 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择等待用户回复 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择等待用户回复”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择等待用户回复”。\n2. 执行结果:状态变等待用户,设置提醒时间。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择等待用户回复 | 待执行\nTC-PROTO-0257 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择等待内部协同 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择等待内部协同 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择等待内部协同”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择等待内部协同”。\n2. 执行结果:状态变等待内部,通知内部负责人。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择等待内部协同 | 待执行\nTC-PROTO-0258 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择答应配合 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择答应配合 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择答应配合”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择答应配合”。\n2. 执行结果创建support_followups状态PROMISED。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择答应配合 | 待执行\nTC-PROTO-0259 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择疑似诈骗 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择疑似诈骗 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择疑似诈骗”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择疑似诈骗”。\n2. 执行结果:生成风险案件并标记工单疑似诈骗。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择疑似诈骗 | 待执行\nTC-PROTO-0260 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态等待用户执行用户回复后继续处理 | P2 | 客服执行看板存在状态为“等待用户”的工单;当前用户对该工单有处理权限。 | 当前状态=等待用户;动作=用户回复后继续处理 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“等待用户”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“用户回复后继续处理”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“等待用户”的工单可执行“用户回复后继续处理”。\n2. 执行结果:状态回到处理中并记录用户消息。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=等待用户;动作=用户回复后继续处理 | 待执行\nTC-PROTO-0261 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态等待内部执行内部反馈完成 | P2 | 客服执行看板存在状态为“等待内部”的工单;当前用户对该工单有处理权限。 | 当前状态=等待内部;动作=内部反馈完成 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“等待内部”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“内部反馈完成”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“等待内部”的工单可执行“内部反馈完成”。\n2. 执行结果:状态回到处理中并追加内部协同记录。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=等待内部;动作=内部反馈完成 | 待执行\nTC-PROTO-0262 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态已解决执行关闭工单 | P2 | 客服执行看板存在状态为“已解决”的工单;当前用户对该工单有处理权限。 | 当前状态=已解决;动作=关闭工单 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“已解决”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“关闭工单”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“已解决”的工单可执行“关闭工单”。\n2. 执行结果resolved_at和closed状态写入。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=已解决;动作=关闭工单 | 待执行\nTC-PROTO-0263 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态疑似诈骗执行风险确认误报 | P2 | 客服执行看板存在状态为“疑似诈骗”的工单;当前用户对该工单有处理权限。 | 当前状态=疑似诈骗;动作=风险确认误报 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“疑似诈骗”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“风险确认误报”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“疑似诈骗”的工单可执行“风险确认误报”。\n2. 执行结果:工单可回到处理中或已解决。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=疑似诈骗;动作=风险确认误报 | 待执行\nTC-PROTO-0264 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态疑似诈骗执行风险确认诈骗 | P2 | 客服执行看板存在状态为“疑似诈骗”的工单;当前用户对该工单有处理权限。 | 当前状态=疑似诈骗;动作=风险确认诈骗 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“疑似诈骗”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“风险确认诈骗”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“疑似诈骗”的工单可执行“风险确认诈骗”。\n2. 执行结果:工单关闭并进入黑名单同步候选。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=疑似诈骗;动作=风险确认诈骗 | 待执行\nTC-PROTO-0265 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态已关闭执行尝试再次回复 | P2 | 客服执行看板存在状态为“已关闭”的工单;当前用户对该工单有处理权限。 | 当前状态=已关闭;动作=尝试再次回复 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“已关闭”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“尝试再次回复”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“已关闭”的工单可执行“尝试再次回复”。\n2. 执行结果:禁止直接回复,需重新打开或新建工单。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=已关闭;动作=尝试再次回复 | 待执行\nTC-PROTO-0293 | 客服执行.html | 客服执行看板 | 系统稳定性与幂等 | 异常场景 | 客服执行看板稳定性校验:新工单到达实时刷新 | P2 | 已进入“客服执行看板”;准备可执行场景:新工单到达实时刷新。 | 动作=后台新增待分配工单;预期=看板待处理数增加并出现新工单 | 1. 打开原型页面“客服执行看板”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:后台新增待分配工单。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:看板待处理数增加并出现新工单。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:新工单到达实时刷新 | 待执行\nTC-PROTO-0294 | 客服执行.html | 客服执行看板 | 系统稳定性与幂等 | 异常场景 | 客服执行看板稳定性校验:多人同时抢单 | P2 | 已进入“客服执行看板”;准备可执行场景:多人同时抢单。 | 动作=两个客服同时领取同一工单;预期=只有一个领取成功,另一个提示已被分配 | 1. 打开原型页面“客服执行看板”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:两个客服同时领取同一工单。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只有一个领取成功,另一个提示已被分配。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:多人同时抢单 | 待执行\nTC-PROTO-0295 | 客服执行.html | 客服工单 | 系统稳定性与幂等 | 异常场景 | 客服工单稳定性校验:首次回复重复发送 | P2 | 已进入“客服工单”;准备可执行场景:首次回复重复发送。 | 动作=客服双击发送回复;预期=只发送一条消息并记录一次首次回复时长 | 1. 打开原型页面“客服工单”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:客服双击发送回复。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只发送一条消息并记录一次首次回复时长。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:首次回复重复发送 | 待执行\nTC-PROTO-0296 | 客服执行.html | 客服工单 | 系统稳定性与幂等 | 异常场景 | 客服工单稳定性校验:关闭工单后刷新 | P2 | 已进入“客服工单”;准备可执行场景:关闭工单后刷新。 | 动作=关闭工单后刷新详情页;预期=状态仍为已关闭且不可继续处理 | 1. 打开原型页面“客服工单”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:关闭工单后刷新详情页。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:状态仍为已关闭且不可继续处理。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:关闭工单后刷新 | 待执行\nTC-PROTO-0297 | 客服执行.html | 客服绩效 | 系统稳定性与幂等 | 异常场景 | 客服绩效稳定性校验:绩效周期切换 | P2 | 已进入“客服绩效”;准备可执行场景:绩效周期切换。 | 动作=日/周/月连续切换;预期=指标随周期变化且无串数据 | 1. 打开原型页面“客服绩效”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:日/周/月连续切换。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:指标随周期变化且无串数据。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:绩效周期切换 | 待执行\n# Sheet: HTML4-单文件系统\n用例编号 | HTML原型 | 功能页面 | 需求模块 | 测试类型 | 用例名称 | 优先级 | 前置条件 | 测试数据 | 操作步骤 | 预期结果 | 数据校验 | 权限校验 | 验收标准 | 需求依据 | 原型依据 | 用例状态\nTC-PROTO-0094 | 用户运营系统-单文件.html | 工作台 | 系统总览 | UI/交互测试 | 单文件系统路由#/dashboard进入Dashboard页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由当前账号拥有Dashboard访问权限。 | 路由=#/dashboard页面=Dashboard用途=查看经营指标、待办、风险、评价进度 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/dashboard”或从侧边菜单点击“Dashboard”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“Dashboard”页面。 | 1. 页面成功进入“Dashboard”。\n2. 当前菜单高亮,页面内容与“查看经营指标、待办、风险、评价进度”一致。\n3. 刷新后 hash 路由不丢失仍展示“Dashboard”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备Dashboard访问权限的角色能进入该页面无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/dashboard | 待执行\nTC-PROTO-0095 | 用户运营系统-单文件.html | 需求管理 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/demand进入需求中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有需求中心访问权限。 | 路由=#/demand页面=需求中心;用途=创建/评估/驳回/转计划 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/demand”或从侧边菜单点击“需求中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“需求中心”页面。 | 1. 页面成功进入“需求中心”。\n2. 当前菜单高亮,页面内容与“创建/评估/驳回/转计划”一致。\n3. 刷新后 hash 路由不丢失,仍展示“需求中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权 | 只有具备需求中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/demand | 待执行\nTC-PROTO-0096 | 用户运营系统-单文件.html | 计划审核 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/plan/review进入计划审核页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有计划审核访问权限。 | 路由=#/plan/review页面=计划审核;用途=提交审批、通过、驳回、待补充 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/plan/review”或从侧边菜单点击“计划审核”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“计划审核”页面。 | 1. 页面成功进入“计划审核”。\n2. 当前菜单高亮,页面内容与“提交审批、通过、驳回、待补充”一致。\n3. 刷新后 hash 路由不丢失,仍展示“计划审核”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备计划审核访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/plan/review | 待执行\nTC-PROTO-0097 | 用户运营系统-单文件.html | 计划管理 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/plan进入计划中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有计划中心访问权限。 | 路由=#/plan页面=计划中心;用途=生成计划、拆分计划项、执行中/暂停/终止 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/plan”或从侧边菜单点击“计划中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“计划中心”页面。 | 1. 页面成功进入“计划中心”。\n2. 当前菜单高亮,页面内容 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备计划中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/plan | 待执行\nTC-PROTO-0098 | 用户运营系统-单文件.html | Listing健康 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/asin进入ASIN/Listing页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由当前账号拥有ASIN/Listing访问权限。 | 路由=#/asin页面=ASIN/Listing用途=查看评分、评价数、健康状态、紧急策略 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/asin”或从侧边菜单点击“ASIN/Listing”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“ASIN/Listing”页面。 | 1. 页面成功进入“ASIN/Listing”。\n2. 当前菜单高亮,页面内容与“查看评分、评价数、健康状态、紧急策略”一致。\n3. 刷新后 hash 路由不丢失仍展示“ASIN/Listing”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备ASIN/Listing访问权限的角色能进入该页面无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/asin | 待执行\nTC-PROTO-0099 | 用户运营系统-单文件.html | 用户上下文 | 用户身份与上下文 | UI/交互测试 | 单文件系统路由#/user进入用户中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有用户中心访问权限。 | 路由=#/user页面=用户中心;用途=用户主档、标签、身份、产品、活动、触达历史 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/user”或从侧边菜单点击“用户中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“用户中心”页面。 | 1. 页面成功进入“用户中心”。\n2. 当前菜单高亮,页面内容与“用户主档、标签、身份、产品、活动、触达历史”一致。\n3. 刷新后 hash 路由不丢失,仍展示“用户中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备用户中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/user | 待执行\nTC-PROTO-0100 | 用户运营系统-单文件.html | 额度管理 | 额度与频控 | UI/交互测试 | 单文件系统路由#/quota进入额度频控页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有额度频控访问权限。 | 路由=#/quota页面=额度频控;用途=额度查询、预占、确认、释放、终校 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/quota”或从侧边 | 1. 页面成功进入“额度频控”。\n2. 当前菜单高亮,页面内容与“额度查询、预占、确认、释放、终校”一致。\n3. 刷新后 hash 路由不丢失,仍展示“额度频控”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备额度频控访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/quota | 待执行\nTC-PROTO-0101 | 用户运营系统-单文件.html | 多渠道触达 | 多渠道触达引擎 | UI/交互测试 | 单文件系统路由#/outreach进入推送/触达页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有推送/触达访问权限。 | 路由=#/outreach页面=推送/触达;用途=IM/EDM/APP/TEL 路由、去重、发送、追踪 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/outreach”或从侧边菜单点击“推送 | 1. 页面成功进入“推送/触达”。\n2. 当前菜单高亮页面内容与“IM/EDM/APP/TEL 路由、去重、发送、追踪”一致。\n3. 刷新后 hash 路由不丢失,仍展示“推送/触达”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备推送/触达访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/outreach | 待执行\nTC-PROTO-0102 | 用户运营系统-单文件.html | 工单管理 | 客服工单与管理 | UI/交互测试 | 单文件系统路由#/support进入客服中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有客服中心访问权限。 | 路由=#/support页面=客服中心;用途=工单创建、分配、处理、跟进 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/support”或从侧边菜单点击“客服中心”。\n3. 等待页面渲染完成。\n4. 检查 | 1. 页面成功进入“客服中心”。\n2. 当前菜单高亮,页面内容与“工单创建、分配、处理、跟进”一致。\n3. 刷新后 hash 路由不丢失,仍展示“客服中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备客服中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/support | 待执行\nTC-PROTO-0103 | 用户运营系统-单文件.html | 风险反欺诈 | 风险与反欺诈 | UI/交互测试 | 单文件系统路由#/risk进入风险中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有风险中心访问权限。 | 路由=#/risk页面=风险中心;用途=风险信号、强弱关联、黑名单、复核 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/risk”或从侧边菜单点击“风险中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“风险中心”页面。 | 1. 页面成功进入“风险中心”。\n2. 当前菜单高亮,页面内容与“风险信号、强弱关联、黑名单、复核”一致。\n3. 刷新后 hash 路由不丢失,仍展示“风险中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备风险中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/risk | 待执行\nTC-PROTO-0104 | 用户运营系统-单文件.html | 评价结果 | 评价结果追踪 | UI/交互测试 | 单文件系统路由#/review进入评价追踪页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有评价追踪访问权限。 | 路由=#/review页面=评价追踪;用途=提交记录、Amazon展示核验、异常观察 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/review”或从侧边菜单点击“评价追踪”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“评价追踪”页面。 | 1. 页面成功进入“评价追踪”。\n2. 当前菜单高亮页面内容与“提交记录、Amazon展示核验、异常观察”一致。\n3. 刷新后 hash 路由不丢失,仍展示“评价追踪”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备评价追踪访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/review | 待执行\nTC-PROTO-0105 | 用户运营系统-单文件.html | 达人协作 | KOC/KOL协作 | UI/交互测试 | 单文件系统路由#/creator进入KOC/KOL页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由当前账号拥有KOC/KOL访问权限。 | 路由=#/creator页面=KOC/KOL用途=免评计划、内容、CODE、JOYCOLLAB同步 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/creator”或从侧边菜单点击“KOC/KOL”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“KOC/KOL”页面。 | 1. 页面成功进入“KOC/KOL”。\n2. 当前菜单高亮页面内容与“免评计划、内容、CODE、JOYCOLLAB同步”一致。\n3. 刷新后 hash 路由不丢失仍展示“KOC/KOL”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备KOC/KOL访问权限的角色能进入该页面无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/creator | 待执行\nTC-PROTO-0106 | 用户运营系统-单文件.html | 审计与通知 | 审计与通知中心 | UI/交互测试 | 单文件系统路由#/audit进入审计通知页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有审计通知访问权限。 | 路由=#/audit页面=审计通知;用途=状态变更、敏感访问、通知告警 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/audit”或从侧边菜单点击“审计通知”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“审计通知”页面。 | 1. 页面成功进入“审计通知”。\n2. 当前菜单高亮,页面内容与“状态变更、敏感访问、通知告警”一致。\n3. 刷新后 hash 路由不丢失,仍展示“审计通知”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备审计通知访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/audit | 待执行\nTC-PROTO-0107 | 用户运营系统-单文件.html | 权限配置 | 审计与通知中心 | UI/交互测试 | 单文件系统路由#/system进入系统管理页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有系统管理访问权限。 | 路由=#/system页面=系统管理;用途=用户角色、权限、数据范围、导出授权 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/system”或从侧边菜单点击“系统管理”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“系统管理”页面。 | 1. 页面成功进入“系统管理”。\n2. 当前菜单高亮,页面内容与“用户角色、权限、数据范围、导出授权”一致。\n3. 刷新后 hash 路由不丢失,仍展示“系统管理”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备系统管理访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/system | 待执行\nTC-PROTO-0108 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心执行创建测评需求并校验业务结果 | P1 | 已进入“需求中心”;当前用户具备执行“创建测评需求”的权限;相关基础数据已准备。 | ASIN=B0TEST001类型=测评;目标数量=20周期=2026-05-01至2026-05-31优先级=P0 | 1. 打开“用户运营系统-单文件.html”的“需求中心”页面。\n2. 点击与“创建测评需求”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据ASIN=B0TEST001类型=测评;目标数量=20周期=2026-05-01至2026-05-31优先级=P0。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “创建测评需求”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“PENDING/EVALUATING”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象demands状态值=PENDING/EVALUATING关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“创建测评需求”;跨站点/跨部门数据需按权限范围过滤。 | 创建测评需求完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:需求中心;动作:创建测评需求 | 待执行\nTC-PROTO-0109 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心执行评估需求为待补充并校验业务结果 | P1 | 已进入“需求中心”;当前用户具备执行“评估需求为待补充”的权限;相关基础数据已准备。 | 需求ID=DEM-001原因=ASIN目标数量缺少依据 | 1. 打开“用户运营系统-单文件.html”的“需求中心”页面。\n2. 点击与“评估需求为待补充”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据需求ID=DEM-001原因=ASIN目标数量缺少依据。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “评估需求为待补充”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“WAITING”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象demands状态值=WAITING关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“评估需求为待补充”;跨站点/跨部门数据需按权限范围过滤。 | 评估需求为待补充完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:需求中心;动作:评估需求为待补充 | 待执行\nTC-PROTO-0110 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心执行驳回不成立需求并校验业务结果 | P1 | 已进入“需求中心”;当前用户具备执行“驳回不成立需求”的权限;相关基础数据已准备。 | 需求ID=DEM-002原因=ASIN评分已达标无需计划 | 1. 打开“用户运营系统-单文件.html”的“需求中心”页面。\n2. 点击与“驳回不成立需求”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据需求ID=DEM-002原因=ASIN评分已达标无需计划。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “驳回不成立需求”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“REJECTED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象demands状态值=REJECTED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“驳回不成立需求”;跨站点/跨部门数据需按权限范围过滤。 | 驳回不成立需求完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:需求中心;动作:驳回不成立需求 | 待执行\nTC-PROTO-0111 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核执行提交测评计划审批并校验业务结果 | P1 | 已进入“计划审核”;当前用户具备执行“提交测评计划审批”的权限;相关基础数据已准备。 | 计划ID=PLAN-001审批链=Amazon运营总监→用户负责人 | 1. 打开“用户运营系统-单文件.html”的“计划审核”页面。\n2. 点击与“提交测评计划审批”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-001审批链=Amazon运营总监→用户负责人。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “提交测评计划审批”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“REVIEW”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象approval_records状态值=REVIEW关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“提交测评计划审批”;跨站点/跨部门数据需按权限范围过滤。 | 提交测评计划审批完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划审核;动作:提交测评计划审批 | 待执行\nTC-PROTO-0112 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核执行审批通过计划并校验业务结果 | P1 | 已进入“计划审核”;当前用户具备执行“审批通过计划”的权限;相关基础数据已准备。 | 计划ID=PLAN-001意见=同意执行;目标评价数=20 | 1. 打开“用户运营系统-单文件.html”的“计划审核”页面。\n2. 点击与“审批通过计划”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-001意见=同意执行;目标评价数=20。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “审批通过计划”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“APPROVED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象approval_records/plans状态值=APPROVED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“审批通过计划”;跨站点/跨部门数据需按权限范围过滤。 | 审批通过计划完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划审核;动作:审批通过计划 | 待执行\nTC-PROTO-0113 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核执行审批驳回计划并校验业务结果 | P1 | 已进入“计划审核”;当前用户具备执行“审批驳回计划”的权限;相关基础数据已准备。 | 计划ID=PLAN-002意见=预算和风险说明不足 | 1. 打开“用户运营系统-单文件.html”的“计划审核”页面。\n2. 点击与“审批驳回计划”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-002意见=预算和风险说明不足。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “审批驳回计划”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“DRAFT/REJECTED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象approval_records/plans状态值=DRAFT/REJECTED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“审批驳回计划”;跨站点/跨部门数据需按权限范围过滤。 | 审批驳回计划完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划审核;动作:审批驳回计划 | 待执行\nTC-PROTO-0114 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 功能测试 | 计划中心执行生成候选用户池并校验业务结果 | P1 | 已进入“计划中心”;当前用户具备执行“生成候选用户池”的权限;相关基础数据已准备。 | 计划ID=PLAN-003ASIN=B0TEST003目标=50人 | 1. 打开“用户运营系统-单文件.html”的“计划中心”页面。\n2. 点击与“生成候选用户池”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-003ASIN=B0TEST003目标=50人。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “生成候选用户池”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“待触达”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象plan_items/quota_reservations状态值=待触达关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“生成候选用户池”;跨站点/跨部门数据需按权限范围过滤。 | 生成候选用户池完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划中心;动作:生成候选用户池 | 待执行\nTC-PROTO-0115 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 功能测试 | 计划中心执行暂停执行中计划并校验业务结果 | P1 | 已进入“计划中心”;当前用户具备执行“暂停执行中计划”的权限;相关基础数据已准备。 | 计划ID=PLAN-004暂停原因=库存异常 | 1. 打开“用户运营系统-单文件.html”的“计划中心”页面。\n2. 点击与“暂停执行中计划”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-004暂停原因=库存异常。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “暂停执行中计划”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已暂停”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象plans状态值=已暂停关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“暂停执行中计划”;跨站点/跨部门数据需按权限范围过滤。 | 暂停执行中计划完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划中心;动作:暂停执行中计划 | 待执行\nTC-PROTO-0116 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 功能测试 | 额度频控执行批量预占额度并校验业务结果 | P1 | 已进入“额度频控”;当前用户具备执行“批量预占额度”的权限;相关基础数据已准备。 | person_ids=10个type=REVIEWplan_id=PLAN-005count=1 | 1. 打开“用户运营系统-单文件.html”的“额度频控”页面。\n2. 点击与“批量预占额度”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_ids=10个type=REVIEWplan_id=PLAN-005count=1。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “批量预占额度”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“RESERVED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象quota_reservations状态值=RESERVED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“批量预占额度”;跨站点/跨部门数据需按权限范围过滤。 | 批量预占额度完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:额度频控;动作:批量预占额度 | 待执行\nTC-PROTO-0117 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 功能测试 | 额度频控执行释放触达失败预占并校验业务结果 | P1 | 已进入“额度频控”;当前用户具备执行“释放触达失败预占”的权限;相关基础数据已准备。 | reservation_id=QR-001释放原因=IM不可达 | 1. 打开“用户运营系统-单文件.html”的“额度频控”页面。\n2. 点击与“释放触达失败预占”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据reservation_id=QR-001释放原因=IM不可达。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “释放触达失败预占”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“RELEASED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象quota_reservations状态值=RELEASED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“释放触达失败预占”;跨站点/跨部门数据需按权限范围过滤。 | 释放触达失败预占完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:额度频控;动作:释放触达失败预占 | 待执行\nTC-PROTO-0118 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达执行执行IM触达并校验业务结果 | P1 | 已进入“推送/触达”当前用户具备执行“执行IM触达”的权限相关基础数据已准备。 | plan_id=PLAN-006channel=IMcontent=回评卡片 | 1. 打开“用户运营系统-单文件.html”的“推送/触达”页面。\n2. 点击与“执行IM触达”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据plan_id=PLAN-006channel=IMcontent=回评卡片。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “执行IM触达”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“OUTBOUND/SENT”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象im_interaction_records状态值=OUTBOUND/SENT关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“执行IM触达”跨站点/跨部门数据需按权限范围过滤。 | 执行IM触达完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:推送/触达动作执行IM触达 | 待执行\nTC-PROTO-0119 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达执行执行EDM触达并校验业务结果 | P1 | 已进入“推送/触达”当前用户具备执行“执行EDM触达”的权限相关基础数据已准备。 | email=user@example.com模板=回评邮件V1 | 1. 打开“用户运营系统-单文件.html”的“推送/触达”页面。\n2. 点击与“执行EDM触达”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据email=user@example.com模板=回评邮件V1。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “执行EDM触达”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“SENT/DELIVERED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象edm_message_events状态值=SENT/DELIVERED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“执行EDM触达”跨站点/跨部门数据需按权限范围过滤。 | 执行EDM触达完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:推送/触达动作执行EDM触达 | 待执行\nTC-PROTO-0120 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达执行用户退订后停止EDM并校验业务结果 | P1 | 已进入“推送/触达”当前用户具备执行“用户退订后停止EDM”的权限相关基础数据已准备。 | person_id=P100event=UNSUBSCRIBED | 1. 打开“用户运营系统-单文件.html”的“推送/触达”页面。\n2. 点击与“用户退订后停止EDM”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P100event=UNSUBSCRIBED。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “用户退订后停止EDM”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“BLOCKED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象edm_message_events/channel_dedup_records状态值=BLOCKED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“用户退订后停止EDM”跨站点/跨部门数据需按权限范围过滤。 | 用户退订后停止EDM完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:推送/触达动作用户退订后停止EDM | 待执行\nTC-PROTO-0121 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 功能测试 | 客服中心执行创建客服工单并校验业务结果 | P1 | 已进入“客服中心”;当前用户具备执行“创建客服工单”的权限;相关基础数据已准备。 | person_id=P200source=IM转人工type=催评 | 1. 打开“用户运营系统-单文件.html”的“客服中心”页面。\n2. 点击与“创建客服工单”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P200source=IM转人工type=催评。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “创建客服工单”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“待分配”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象support_tickets状态值=待分配关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“创建客服工单”;跨站点/跨部门数据需按权限范围过滤。 | 创建客服工单完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:客服中心;动作:创建客服工单 | 待执行\nTC-PROTO-0122 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 功能测试 | 客服中心执行改派工单给组员并校验业务结果 | P1 | 已进入“客服中心”;当前用户具备执行“改派工单给组员”的权限;相关基础数据已准备。 | ticket_id=T001from=组长to=客服Areason=当前负载低 | 1. 打开“用户运营系统-单文件.html”的“客服中心”页面。\n2. 点击与“改派工单给组员”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据ticket_id=T001from=组长to=客服Areason=当前负载低。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “改派工单给组员”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已分配”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象support_assignment_logs状态值=已分配关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“改派工单给组员”;跨站点/跨部门数据需按权限范围过滤。 | 改派工单给组员完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:客服中心;动作:改派工单给组员 | 待执行\nTC-PROTO-0123 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 功能测试 | 风险中心执行强风险拦截并校验业务结果 | P1 | 已进入“风险中心”;当前用户具备执行“强风险拦截”的权限;相关基础数据已准备。 | person_id=P300命中黑名单邮箱和设备 | 1. 打开“用户运营系统-单文件.html”的“风险中心”页面。\n2. 点击与“强风险拦截”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P300命中黑名单邮箱和设备。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “强风险拦截”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“强风险拦截”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象risk_cases/blacklist_entities状态值=强风险拦截关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“强风险拦截”;跨站点/跨部门数据需按权限范围过滤。 | 强风险拦截完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:风险中心;动作:强风险拦截 | 待执行\nTC-PROTO-0124 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 功能测试 | 风险中心执行弱风险人工放行并校验业务结果 | P1 | 已进入“风险中心”;当前用户具备执行“弱风险人工放行”的权限;相关基础数据已准备。 | risk_case=R001原因=家庭共用设备;意见=放行 | 1. 打开“用户运营系统-单文件.html”的“风险中心”页面。\n2. 点击与“弱风险人工放行”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据risk_case=R001原因=家庭共用设备;意见=放行。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “弱风险人工放行”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已放行”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象risk_cases状态值=已放行关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“弱风险人工放行”;跨站点/跨部门数据需按权限范围过滤。 | 弱风险人工放行完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:风险中心;动作:弱风险人工放行 | 待执行\nTC-PROTO-0125 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪执行登记评价提交并校验业务结果 | P1 | 已进入“评价追踪”;当前用户具备执行“登记评价提交”的权限;相关基础数据已准备。 | person_id=P400asin=B0TEST004plan_id=PLAN-007evidence=截图+链接 | 1. 打开“用户运营系统-单文件.html”的“评价追踪”页面。\n2. 点击与“登记评价提交”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P400asin=B0TEST004plan_id=PLAN-007evidence=截图+链接。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “登记评价提交”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已提交”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象review_submission_records状态值=已提交关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“登记评价提交”;跨站点/跨部门数据需按权限范围过滤。 | 登记评价提交完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:评价追踪;动作:登记评价提交 | 待执行\nTC-PROTO-0126 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪执行Amazon展示核验成功并校验业务结果 | P1 | 已进入“评价追踪”当前用户具备执行“Amazon展示核验成功”的权限相关基础数据已准备。 | submission_id=SUB001check_method=人工result=DISPLAYED | 1. 打开“用户运营系统-单文件.html”的“评价追踪”页面。\n2. 点击与“Amazon展示核验成功”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据submission_id=SUB001check_method=人工result=DISPLAYED。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “Amazon展示核验成功”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“CONFIRMED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象review_display_checks/review_results状态值=CONFIRMED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“Amazon展示核验成功”跨站点/跨部门数据需按权限范围过滤。 | Amazon展示核验成功完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面评价追踪动作Amazon展示核验成功 | 待执行\nTC-PROTO-0127 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪执行Amazon暂不可核验进入观察并校验业务结果 | P1 | 已进入“评价追踪”当前用户具备执行“Amazon暂不可核验进入观察”的权限相关基础数据已准备。 | submission_id=SUB002result=UNVERIFIABLE | 1. 打开“用户运营系统-单文件.html”的“评价追踪”页面。\n2. 点击与“Amazon暂不可核验进入观察”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据submission_id=SUB002result=UNVERIFIABLE。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “Amazon暂不可核验进入观察”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“OBSERVING”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象review_display_checks状态值=OBSERVING关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“Amazon暂不可核验进入观察”跨站点/跨部门数据需按权限范围过滤。 | Amazon暂不可核验进入观察完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面评价追踪动作Amazon暂不可核验进入观察 | 待执行\nTC-PROTO-0128 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 功能测试 | KOC/KOL执行创建免评协作任务并校验业务结果 | P1 | 已进入“KOC/KOL”当前用户具备执行“创建免评协作任务”的权限相关基础数据已准备。 | creator_id=C001ASIN=B0TEST005CODE=KOC20Brief=短视频 | 1. 打开“用户运营系统-单文件.html”的“KOC/KOL”页面。\n2. 点击与“创建免评协作任务”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据creator_id=C001ASIN=B0TEST005CODE=KOC20Brief=短视频。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “创建免评协作任务”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“执行中”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象exemption_plan_tasks/code_records状态值=执行中关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“创建免评协作任务”;跨站点/跨部门数据需按权限范围过滤。 | 创建免评协作任务完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面KOC/KOL动作创建免评协作任务 | 待执行\nTC-PROTO-0129 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 功能测试 | 审计通知执行查看敏感信息审计并校验业务结果 | P1 | 已进入“审计通知”;当前用户具备执行“查看敏感信息审计”的权限;相关基础数据已准备。 | 对象=用户邮箱/设备号;动作=查看完整信息 | 1. 打开“用户运营系统-单文件.html”的“审计通知”页面。\n2. 点击与“查看敏感信息审计”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据:对象=用户邮箱/设备号;动作=查看完整信息。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “查看敏感信息审计”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已记录”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象interaction_audit_logs状态值=已记录关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“查看敏感信息审计”;跨站点/跨部门数据需按权限范围过滤。 | 查看敏感信息审计完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:审计通知;动作:查看敏感信息审计 | 待执行\nTC-PROTO-0130 | 用户运营系统-单文件.html | 系统管理 | 系统管理 | 功能测试 | 系统管理执行分配导出权限并校验业务结果 | P1 | 已进入“系统管理”;当前用户具备执行“分配导出权限”的权限;相关基础数据已准备。 | role=用户运营组长permission=导出计划数据scope=US站点 | 1. 打开“用户运营系统-单文件.html”的“系统管理”页面。\n2. 点击与“分配导出权限”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据role=用户运营组长permission=导出计划数据scope=US站点。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “分配导出权限”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已授权”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象:权限配置/审计日志;状态值=已授权关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“分配导出权限”;跨站点/跨部门数据需按权限范围过滤。 | 分配导出权限完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:系统管理;动作:分配导出权限 | 待执行\nTC-PROTO-0131 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 异常场景 | 需求中心异常校验创建需求缺少ASIN | P2 | 已进入“需求中心”准备异常数据或异常状态ASIN为空其他字段完整。 | 异常场景=创建需求缺少ASIN异常数据=ASIN为空其他字段完整 | 1. 打开“需求中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据ASIN为空其他字段完整。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“创建需求缺少ASIN”。\n2. 处理结果为提示ASIN必填需求不创建。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面需求中心异常创建需求缺少ASIN | 待执行\nTC-PROTO-0132 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 异常场景 | 需求中心异常校验目标数量为0或负数 | P2 | 已进入“需求中心”准备异常数据或异常状态target_count=0/-1。 | 异常场景=目标数量为0或负数异常数据=target_count=0/-1 | 1. 打开“需求中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据target_count=0/-1。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“目标数量为0或负数”。\n2. 处理结果为提示目标数量必须大于0。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面需求中心异常目标数量为0或负数 | 待执行\nTC-PROTO-0133 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 异常场景 | 计划审核异常校验:审批意见为空驳回 | P2 | 已进入“计划审核”准备异常数据或异常状态decision=驳回comment为空。 | 异常场景=审批意见为空驳回;异常数据=decision=驳回comment为空 | 1. 打开“计划审核”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据decision=驳回comment为空。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“审批意见为空驳回”。\n2. 处理结果为:阻止提交并提示填写驳回原因。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:计划审核;异常:审批意见为空驳回 | 待执行\nTC-PROTO-0134 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 异常场景 | 计划中心异常校验:已终止计划再次启动 | P2 | 已进入“计划中心”准备异常数据或异常状态plan.status=CANCELLED。 | 异常场景=已终止计划再次启动;异常数据=plan.status=CANCELLED | 1. 打开“计划中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据plan.status=CANCELLED。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“已终止计划再次启动”。\n2. 处理结果为:启动按钮不可用或提示不可恢复。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:计划中心;异常:已终止计划再次启动 | 待执行\nTC-PROTO-0135 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 异常场景 | 额度频控异常校验月度测评额度超过4 | P2 | 已进入“额度频控”准备异常数据或异常状态used=4,reserved=0,count=1。 | 异常场景=月度测评额度超过4异常数据=used=4,reserved=0,count=1 | 1. 打开“额度频控”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据used=4,reserved=0,count=1。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“月度测评额度超过4”。\n2. 处理结果为返回exceeded并阻止预占。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面额度频控异常月度测评额度超过4 | 待执行\nTC-PROTO-0136 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 异常场景 | 额度频控异常校验累计评价超过12 | P2 | 已进入“额度频控”准备异常数据或异常状态lifetime_submission=12。 | 异常场景=累计评价超过12异常数据=lifetime_submission=12 | 1. 打开“额度频控”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据lifetime_submission=12。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“累计评价超过12”。\n2. 处理结果为:候选人进入排除池。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面额度频控异常累计评价超过12 | 待执行\nTC-PROTO-0137 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 异常场景 | 额度频控异常校验:发送前终校发现未关闭工单 | P2 | 已进入“额度频控”准备异常数据或异常状态support open ticket exists。 | 异常场景=发送前终校发现未关闭工单;异常数据=support open ticket exists | 1. 打开“额度频控”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据support open ticket exists。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“发送前终校发现未关闭工单”。\n2. 处理结果为:撤出本批次并记录原因。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:额度频控;异常:发送前终校发现未关闭工单 | 待执行\nTC-PROTO-0138 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 异常场景 | 推送/触达异常校验:同计划同用户重复触达 | P2 | 已进入“推送/触达”准备异常数据或异常状态person_id相同、plan_id相同、channel不同。 | 异常场景=同计划同用户重复触达;异常数据=person_id相同、plan_id相同、channel不同 | 1. 打开“推送/触达”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据person_id相同、plan_id相同、channel不同。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“同计划同用户重复触达”。\n2. 处理结果为去重记录BLOCKED。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:推送/触达;异常:同计划同用户重复触达 | 待执行\nTC-PROTO-0139 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 异常场景 | 推送/触达异常校验EDM硬退信 | P2 | 已进入“推送/触达”准备异常数据或异常状态event=HARD_BOUNCED。 | 异常场景=EDM硬退信异常数据=event=HARD_BOUNCED | 1. 打开“推送/触达”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据event=HARD_BOUNCED。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“EDM硬退信”。\n2. 处理结果为:邮箱状态标记不可触达。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:推送/触达异常EDM硬退信 | 待执行\nTC-PROTO-0140 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 异常场景 | 推送/触达异常校验TEL三次未接通 | P2 | 已进入“推送/触达”准备异常数据或异常状态retry_count=3。 | 异常场景=TEL三次未接通异常数据=retry_count=3 | 1. 打开“推送/触达”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据retry_count=3。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“TEL三次未接通”。\n2. 处理结果为降级EDM或关闭电话任务。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:推送/触达异常TEL三次未接通 | 待执行\nTC-PROTO-0141 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 异常场景 | 客服中心异常校验:关闭工单缺少处理结果 | P2 | 已进入“客服中心”准备异常数据或异常状态result为空。 | 异常场景=关闭工单缺少处理结果;异常数据=result为空 | 1. 打开“客服中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据result为空。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“关闭工单缺少处理结果”。\n2. 处理结果为:阻止关闭。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:客服中心;异常:关闭工单缺少处理结果 | 待执行\nTC-PROTO-0142 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 异常场景 | 客服中心异常校验:答应配合超时 | P2 | 已进入“客服中心”准备异常数据或异常状态deadline_at过期且无submission。 | 异常场景=答应配合超时;异常数据=deadline_at过期且无submission | 1. 打开“客服中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据deadline_at过期且无submission。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“答应配合超时”。\n2. 处理结果为:生成需再次联系任务。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:客服中心;异常:答应配合超时 | 待执行\nTC-PROTO-0143 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 异常场景 | 风险中心异常校验:黑名单同步接口超时 | P2 | 已进入“风险中心”准备异常数据或异常状态blacklist API timeout。 | 异常场景=黑名单同步接口超时;异常数据=blacklist API timeout | 1. 打开“风险中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据blacklist API timeout。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“黑名单同步接口超时”。\n2. 处理结果为:状态为失败待重试。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:风险中心;异常:黑名单同步接口超时 | 待执行\nTC-PROTO-0144 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 异常场景 | 风险中心异常校验:弱风险复核被拒绝 | P2 | 已进入“风险中心”;准备异常数据或异常状态:人工意见=拒绝。 | 异常场景=弱风险复核被拒绝;异常数据=人工意见=拒绝 | 1. 打开“风险中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据:人工意见=拒绝。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“弱风险复核被拒绝”。\n2. 处理结果为:用户不能进入触达。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:风险中心;异常:弱风险复核被拒绝 | 待执行\nTC-PROTO-0145 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 异常场景 | 评价追踪异常校验提交评价ASIN不匹配 | P2 | 已进入“评价追踪”准备异常数据或异常状态登记ASIN=A证据链接ASIN=B。 | 异常场景=提交评价ASIN不匹配异常数据=登记ASIN=A证据链接ASIN=B | 1. 打开“评价追踪”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据登记ASIN=A证据链接ASIN=B。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“提交评价ASIN不匹配”。\n2. 处理结果为:标记异常不计入完成。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面评价追踪异常提交评价ASIN不匹配 | 待执行\nTC-PROTO-0146 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 异常场景 | 评价追踪异常校验Amazon未展示超过观察期 | P2 | 已进入“评价追踪”准备异常数据或异常状态status=OBSERVING且retry超期。 | 异常场景=Amazon未展示超过观察期异常数据=status=OBSERVING且retry超期 | 1. 打开“评价追踪”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据status=OBSERVING且retry超期。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“Amazon未展示超过观察期”。\n2. 处理结果为标记ABNORMAL并通知运营。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面评价追踪异常Amazon未展示超过观察期 | 待执行\nTC-PROTO-0147 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 异常场景 | KOC/KOL异常校验CODE缺失 | P2 | 已进入“KOC/KOL”准备异常数据或异常状态免评任务未填写CODE。 | 异常场景=CODE缺失异常数据=免评任务未填写CODE | 1. 打开“KOC/KOL”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据免评任务未填写CODE。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“CODE缺失”。\n2. 处理结果为:阻止创建或标记价格/CODE待确认。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面KOC/KOL异常CODE缺失 | 待执行\nTC-PROTO-0148 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 异常场景 | 审计通知异常校验:普通客服查看完整邮箱 | P2 | 已进入“审计通知”准备异常数据或异常状态role=客服action=查看完整信息。 | 异常场景=普通客服查看完整邮箱;异常数据=role=客服action=查看完整信息 | 1. 打开“审计通知”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据role=客服action=查看完整信息。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“普通客服查看完整邮箱”。\n2. 处理结果为:拒绝访问并记录越权尝试。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:审计通知;异常:普通客服查看完整邮箱 | 待执行\nTC-PROTO-0149 | 用户运营系统-单文件.html | 系统管理 | 系统管理 | 异常场景 | 系统管理异常校验:离职账号仍有审批任务 | P2 | 已进入“系统管理”准备异常数据或异常状态account=disabled但任务未交接。 | 异常场景=离职账号仍有审批任务;异常数据=account=disabled但任务未交接 | 1. 打开“系统管理”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据account=disabled但任务未交接。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“离职账号仍有审批任务”。\n2. 处理结果为:阻止完成离职并提示先交接。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:系统管理;异常:离职账号仍有审批任务 | 待执行\nTC-PROTO-0150 | 用户运营系统-单文件.html | 用户中心 | 用户身份与上下文 | 数据校验 | 用户中心页面触发按线索查真实人并校验接口数据 | P2 | 前端页面“用户中心”已打开;后端或 mock 服务提供接口“GET /api/identity/person?type=email&value=xxx”测试用户拥有页面访问权限。 | 接口=GET /api/identity/person?type=email&value=xxx预期输出=返回person_id、confidence、matched_clues | 1. 打开“用户中心”页面。\n2. 执行会触发“按线索查真实人”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/identity/person?type=email&value=xxx”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/identity/person?type=email&value=xxx”。\n2. 接口响应包含返回person_id、confidence、matched_clues。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 按线索查真实人在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面用户中心接口GET /api/identity/person?type=email&value=xxx | 待执行\nTC-PROTO-0151 | 用户运营系统-单文件.html | 用户中心 | 用户身份与上下文 | 数据校验 | 用户中心页面触发获取用户上下文卡并校验接口数据 | P2 | 前端页面“用户中心”已打开;后端或 mock 服务提供接口“GET /api/identity/context/{person_id}”;测试用户拥有页面访问权限。 | 接口=GET /api/identity/context/{person_id};预期输出=返回identity、transactions、services、risks、devices、outreach_history | 1. 打开“用户中心”页面。\n2. 执行会触发“获取用户上下文卡”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/identity/context/{person_id}”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/identity/context/{person_id}”。\n2. 接口响应包含返回identity、transactions、services、risks、devices、outreach_history。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 获取用户上下文卡在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面用户中心接口GET /api/identity/context/{person_id} | 待执行\nTC-PROTO-0152 | 用户运营系统-单文件.html | 用户中心 | 用户身份与上下文 | 数据校验 | 用户中心页面触发批量身份查询并校验接口数据 | P2 | 前端页面“用户中心”已打开;后端或 mock 服务提供接口“POST /api/identity/batch-check”测试用户拥有页面访问权限。 | 接口=POST /api/identity/batch-check预期输出=返回每个线索对应person_id和confidence | 1. 打开“用户中心”页面。\n2. 执行会触发“批量身份查询”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/identity/batch-check”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/identity/batch-check”。\n2. 接口响应包含返回每个线索对应person_id和confidence。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 批量身份查询在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面用户中心接口POST /api/identity/batch-check | 待执行\nTC-PROTO-0153 | 用户运营系统-单文件.html | 计划中心 | 需求与计划管理 | 数据校验 | 计划中心页面触发创建需求接口并校验接口数据 | P2 | 前端页面“计划中心”已打开;后端或 mock 服务提供接口“POST /api/demands”测试用户拥有页面访问权限。 | 接口=POST /api/demands预期输出=返回demand_id和status | 1. 打开“计划中心”页面。\n2. 执行会触发“创建需求接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/demands”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/demands”。\n2. 接口响应包含返回demand_id和status。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 创建需求接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面计划中心接口POST /api/demands | 待执行\nTC-PROTO-0154 | 用户运营系统-单文件.html | 计划审核 | 需求与计划管理 | 数据校验 | 计划审核页面触发提交审批接口并校验接口数据 | P2 | 前端页面“计划审核”已打开;后端或 mock 服务提供接口“POST /api/approvals/{plan_id}/submit”测试用户拥有页面访问权限。 | 接口=POST /api/approvals/{plan_id}/submit预期输出=生成approval_records | 1. 打开“计划审核”页面。\n2. 执行会触发“提交审批接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/approvals/{plan_id}/submit”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/approvals/{plan_id}/submit”。\n2. 接口响应包含生成approval_records。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 提交审批接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面计划审核接口POST /api/approvals/{plan_id}/submit | 待执行\nTC-PROTO-0155 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 数据校验 | 额度频控页面触发额度查询接口并校验接口数据 | P2 | 前端页面“额度频控”已打开;后端或 mock 服务提供接口“GET /api/quota/check/{person_id}?type=REVIEW”测试用户拥有页面访问权限。 | 接口=GET /api/quota/check/{person_id}?type=REVIEW预期输出=返回used、in_progress、reserved、remaining、status | 1. 打开“额度频控”页面。\n2. 执行会触发“额度查询接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/quota/check/{person_id}?type=REVIEW”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/quota/check/{person_id}?type=REVIEW”。\n2. 接口响应包含返回used、in_progress、reserved、remaining、status。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 额度查询接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面额度频控接口GET /api/quota/check/{person_id}?type=REVIEW | 待执行\nTC-PROTO-0156 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 数据校验 | 额度频控页面触发批量预占接口并校验接口数据 | P2 | 前端页面“额度频控”已打开;后端或 mock 服务提供接口“POST /api/quota/reserve”测试用户拥有页面访问权限。 | 接口=POST /api/quota/reserve预期输出=返回reservation_id并更新reserved | 1. 打开“额度频控”页面。\n2. 执行会触发“批量预占接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/quota/reserve”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/quota/reserve”。\n2. 接口响应包含返回reservation_id并更新reserved。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 批量预占接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面额度频控接口POST /api/quota/reserve | 待执行\nTC-PROTO-0157 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 数据校验 | 额度频控页面触发发送前终校接口并校验接口数据 | P2 | 前端页面“额度频控”已打开;后端或 mock 服务提供接口“POST /api/quota/final-check”测试用户拥有页面访问权限。 | 接口=POST /api/quota/final-check预期输出=返回APPROVED/WITHDRAWN和reasons | 1. 打开“额度频控”页面。\n2. 执行会触发“发送前终校接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/quota/final-check”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/quota/final-check”。\n2. 接口响应包含返回APPROVED/WITHDRAWN和reasons。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 发送前终校接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面额度频控接口POST /api/quota/final-check | 待执行\nTC-PROTO-0158 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 数据校验 | 推送/触达页面触发渠道路由接口并校验接口数据 | P2 | 前端页面“推送/触达”已打开;后端或 mock 服务提供接口“POST /api/outreach/route”测试用户拥有页面访问权限。 | 接口=POST /api/outreach/route预期输出=返回recommended_channel和alternatives | 1. 打开“推送/触达”页面。\n2. 执行会触发“渠道路由接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/outreach/route”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/outreach/route”。\n2. 接口响应包含返回recommended_channel和alternatives。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 渠道路由接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面:推送/触达接口POST /api/outreach/route | 待执行\nTC-PROTO-0159 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 数据校验 | 推送/触达页面触发触达历史接口并校验接口数据 | P2 | 前端页面“推送/触达”已打开;后端或 mock 服务提供接口“GET /api/outreach/history/{person_id}”;测试用户拥有页面访问权限。 | 接口=GET /api/outreach/history/{person_id};预期输出=返回im、edm、app、tel历史 | 1. 打开“推送/触达”页面。\n2. 执行会触发“触达历史接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/outreach/history/{person_id}”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/outreach/history/{person_id}”。\n2. 接口响应包含返回im、edm、app、tel历史。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 触达历史接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面:推送/触达接口GET /api/outreach/history/{person_id} | 待执行\nTC-PROTO-0160 | 用户运营系统-单文件.html | 客服中心 | 客服工单与管理 | 数据校验 | 客服中心页面触发创建工单接口并校验接口数据 | P2 | 前端页面“客服中心”已打开;后端或 mock 服务提供接口“POST /api/tickets”测试用户拥有页面访问权限。 | 接口=POST /api/tickets预期输出=返回ticket_id | 1. 打开“客服中心”页面。\n2. 执行会触发“创建工单接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/tickets”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/tickets”。\n2. 接口响应包含返回ticket_id。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 创建工单接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面客服中心接口POST /api/tickets | 待执行\nTC-PROTO-0161 | 用户运营系统-单文件.html | 客服中心 | 客服工单与管理 | 数据校验 | 客服中心页面触发查询可用客服接口并校验接口数据 | P2 | 前端页面“客服中心”已打开;后端或 mock 服务提供接口“GET /api/support/available-agents”测试用户拥有页面访问权限。 | 接口=GET /api/support/available-agents预期输出=返回agent_id和current_load | 1. 打开“客服中心”页面。\n2. 执行会触发“查询可用客服接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/support/available-agents”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/support/available-agents”。\n2. 接口响应包含返回agent_id和current_load。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 查询可用客服接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面客服中心接口GET /api/support/available-agents | 待执行\nTC-PROTO-0162 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 数据校验 | 评价追踪页面触发记录评价提交接口并校验接口数据 | P2 | 前端页面“评价追踪”已打开;后端或 mock 服务提供接口“POST /api/reviews/submission”测试用户拥有页面访问权限。 | 接口=POST /api/reviews/submission预期输出=返回submission_id和quota_updated | 1. 打开“评价追踪”页面。\n2. 执行会触发“记录评价提交接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/reviews/submission”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/reviews/submission”。\n2. 接口响应包含返回submission_id和quota_updated。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 记录评价提交接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面评价追踪接口POST /api/reviews/submission | 待执行\nTC-PROTO-0163 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 数据校验 | 评价追踪页面触发查询计划评价进度接口并校验接口数据 | P2 | 前端页面“评价追踪”已打开;后端或 mock 服务提供接口“GET /api/reviews/status/{plan_id}”;测试用户拥有页面访问权限。 | 接口=GET /api/reviews/status/{plan_id};预期输出=返回total_submissions、verified、pending、completion_rate | 1. 打开“评价追踪”页面。\n2. 执行会触发“查询计划评价进度接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/reviews/status/{plan_id}”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/reviews/status/{plan_id}”。\n2. 接口响应包含返回total_submissions、verified、pending、completion_rate。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 查询计划评价进度接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面评价追踪接口GET /api/reviews/status/{plan_id} | 待执行\nTC-PROTO-0164 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:评价主闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | ASIN评分4.46触发需求→生成计划→审批→候选筛选→额度预占→风险放行→IM触达→客服跟进→用户提交→Amazon展示→计划完成度回流 | 1. 从 Dashboard 或对应入口启动“评价主闭环”。\n2. 按流程依次完成ASIN评分4.46触发需求→生成计划→审批→候选筛选→额度预占→风险放行→IM触达→客服跟进→用户提交→Amazon展示→计划完成度回流。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “评价主闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 评价主闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:评价主闭环 | 待执行\nTC-PROTO-0165 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收紧急Listing闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 评分4.21接近4.2→创建紧急策略→系统管理员审批→用户运营执行→风险雷达监控→评价健康回升 | 1. 从 Dashboard 或对应入口启动“紧急Listing闭环”。\n2. 按流程依次完成评分4.21接近4.2→创建紧急策略→系统管理员审批→用户运营执行→风险雷达监控→评价健康回升。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “紧急Listing闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 紧急Listing闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由流程紧急Listing闭环 | 待执行\nTC-PROTO-0166 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:推送风险复核闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 退订率高于基线→进入推送风险→复核人群和素材→暂停同策略→输出复盘记录 | 1. 从 Dashboard 或对应入口启动“推送风险复核闭环”。\n2. 按流程依次完成:退订率高于基线→进入推送风险→复核人群和素材→暂停同策略→输出复盘记录。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “推送风险复核闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 推送风险复核闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:推送风险复核闭环 | 待执行\nTC-PROTO-0167 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:黑名单同步闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 客服升级疑似诈骗→风险复核→确认诈骗→同步黑名单→失败待重试→审计可查 | 1. 从 Dashboard 或对应入口启动“黑名单同步闭环”。\n2. 按流程依次完成:客服升级疑似诈骗→风险复核→确认诈骗→同步黑名单→失败待重试→审计可查。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “黑名单同步闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 黑名单同步闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:黑名单同步闭环 | 待执行\nTC-PROTO-0168 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:客服转化闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 用户消息进入→自动分配→客服回复→用户答应配合→提醒→提交评价→工单关闭→绩效更新 | 1. 从 Dashboard 或对应入口启动“客服转化闭环”。\n2. 按流程依次完成:用户消息进入→自动分配→客服回复→用户答应配合→提醒→提交评价→工单关闭→绩效更新。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “客服转化闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 客服转化闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:客服转化闭环 | 待执行\nTC-PROTO-0169 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:免评协作闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 免评需求→免评计划审批→KOC/KOL匹配→CODE配置→内容发布→结果回流→ASIN健康更新 | 1. 从 Dashboard 或对应入口启动“免评协作闭环”。\n2. 按流程依次完成免评需求→免评计划审批→KOC/KOL匹配→CODE配置→内容发布→结果回流→ASIN健康更新。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “免评协作闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 免评协作闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:免评协作闭环 | 待执行\nTC-PROTO-0190 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“需求中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2详情字段=需求ID、ASIN、目标数量、周期、提交人、评估结果 | 1. 打开“需求中心”页面。\n2. 在筛选区按业务条件选择或输入:类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段需求ID、ASIN、目标数量、周期、提交人、评估结果。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2”。\n2. 详情抽屉展示“需求ID、ASIN、目标数量、周期、提交人、评估结果”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 需求中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:需求中心;筛选:类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2 | 待执行\nTC-PROTO-0191 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“计划审核”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回;详情字段=审批链、审批人、意见、step_order、decided_at | 1. 打开“计划审核”页面。\n2. 在筛选区按业务条件选择或输入:计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段审批链、审批人、意见、step_order、decided_at。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回”。\n2. 详情抽屉展示“审批链、审批人、意见、step_order、decided_at”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 计划审核查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:计划审核;筛选:计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回 | 待执行\nTC-PROTO-0192 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 功能测试 | 计划中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“计划中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL详情字段=计划项、目标量、候选人、资源分配、完成率 | 1. 打开“计划中心”页面。\n2. 在筛选区按业务条件选择或输入:状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:计划项、目标量、候选人、资源分配、完成率。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL”。\n2. 详情抽屉展示“计划项、目标量、候选人、资源分配、完成率”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 计划中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:计划中心;筛选:状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL | 待执行\nTC-PROTO-0193 | 用户运营系统-单文件.html | ASIN/Listing | ASIN/Listing | 功能测试 | ASIN/Listing按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“ASIN/Listing”页面存在筛选区、查询按钮、列表和详情入口当前用户有该页面查询权限。 | 筛选条件=站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间;详情字段=评分、评价数、差评数、健康状态、责任人 | 1. 打开“ASIN/Listing”页面。\n2. 在筛选区按业务条件选择或输入:站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:评分、评价数、差评数、健康状态、责任人。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间”。\n2. 详情抽屉展示“评分、评价数、差评数、健康状态、责任人”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | ASIN/Listing查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面ASIN/Listing筛选站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间 | 待执行\nTC-PROTO-0194 | 用户运营系统-单文件.html | 用户中心 | 用户中心 | 功能测试 | 用户中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“用户中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=国家、性别、标签、身份、产品数、活动数、近7天EDM次数详情字段=用户主档、标签、身份、产品关系、近期活跃 | 1. 打开“用户中心”页面。\n2. 在筛选区按业务条件选择或输入国家、性别、标签、身份、产品数、活动数、近7天EDM次数。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:用户主档、标签、身份、产品关系、近期活跃。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“国家、性别、标签、身份、产品数、活动数、近7天EDM次数”。\n2. 详情抽屉展示“用户主档、标签、身份、产品关系、近期活跃”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 用户中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面用户中心筛选国家、性别、标签、身份、产品数、活动数、近7天EDM次数 | 待执行\nTC-PROTO-0195 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 功能测试 | 额度频控按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“额度频控”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=额度类型=测评/免评/累计;状态=sufficient/warning/exceeded详情字段=used、in_progress、reserved、remaining、limit_value | 1. 打开“额度频控”页面。\n2. 在筛选区按业务条件选择或输入:额度类型=测评/免评/累计;状态=sufficient/warning/exceeded。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段used、in_progress、reserved、remaining、limit_value。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“额度类型=测评/免评/累计;状态=sufficient/warning/exceeded”。\n2. 详情抽屉展示“used、in_progress、reserved、remaining、limit_value”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 额度频控查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:额度频控;筛选:额度类型=测评/免评/累计;状态=sufficient/warning/exceeded | 待执行\nTC-PROTO-0196 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“推送/触达”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订;详情字段=发送、点击、回复、退订、route decision、dedup reason | 1. 打开“推送/触达”页面。\n2. 在筛选区按业务条件选择或输入:渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段发送、点击、回复、退订、route decision、dedup reason。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订”。\n2. 详情抽屉展示“发送、点击、回复、退订、route decision、dedup reason”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 推送/触达查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:推送/触达;筛选:渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订 | 待执行\nTC-PROTO-0197 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 功能测试 | 客服中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“客服中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭;详情字段=工单ID、assigned_agent、followup状态、首次回复时长 | 1. 打开“客服中心”页面。\n2. 在筛选区按业务条件选择或输入:来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段工单ID、assigned_agent、followup状态、首次回复时长。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭”。\n2. 详情抽屉展示“工单ID、assigned_agent、followup状态、首次回复时长”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 客服中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:客服中心;筛选:来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭 | 待执行\nTC-PROTO-0198 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 功能测试 | 风险中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“风险中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝;详情字段=risk_signal、risk_case、blacklist_entity | 1. 打开“风险中心”页面。\n2. 在筛选区按业务条件选择或输入:风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段risk_signal、risk_case、blacklist_entity。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝”。\n2. 详情抽屉展示“risk_signal、risk_case、blacklist_entity”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 风险中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:风险中心;筛选:风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝 | 待执行\nTC-PROTO-0199 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“评价追踪”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=核验状态=已提交/展示成功/暂不可核验/异常观察;详情字段=submission_id、display_check、retry_count、completion_rate | 1. 打开“评价追踪”页面。\n2. 在筛选区按业务条件选择或输入:核验状态=已提交/展示成功/暂不可核验/异常观察。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段submission_id、display_check、retry_count、completion_rate。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“核验状态=已提交/展示成功/暂不可核验/异常观察”。\n2. 详情抽屉展示“submission_id、display_check、retry_count、completion_rate”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 评价追踪查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:评价追踪;筛选:核验状态=已提交/展示成功/暂不可核验/异常观察 | 待执行\nTC-PROTO-0200 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 功能测试 | KOC/KOL按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“KOC/KOL”页面存在筛选区、查询按钮、列表和详情入口当前用户有该页面查询权限。 | 筛选条件=任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置;详情字段=creator、Brief、CODE、返点、内容链接 | 1. 打开“KOC/KOL”页面。\n2. 在筛选区按业务条件选择或输入:任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段creator、Brief、CODE、返点、内容链接。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置”。\n2. 详情抽屉展示“creator、Brief、CODE、返点、内容链接”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | KOC/KOL查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面KOC/KOL筛选任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置 | 待执行\nTC-PROTO-0201 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 功能测试 | 审计通知按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“审计通知”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围;详情字段=日志ID、操作者、对象、动作、结果 | 1. 打开“审计通知”页面。\n2. 在筛选区按业务条件选择或输入:动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段日志ID、操作者、对象、动作、结果。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围”。\n2. 详情抽屉展示“日志ID、操作者、对象、动作、结果”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 审计通知查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:审计通知;筛选:动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围 | 待执行\nTC-PROTO-0202 | 用户运营系统-单文件.html | 系统管理 | 系统管理 | 功能测试 | 系统管理按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“系统管理”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=角色、部门、站点、权限点、账号状态;详情字段=账号、角色、数据范围、权限点、离职交接 | 1. 打开“系统管理”页面。\n2. 在筛选区按业务条件选择或输入:角色、部门、站点、权限点、账号状态。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:账号、角色、数据范围、权限点、离职交接。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“角色、部门、站点、权限点、账号状态”。\n2. 详情抽屉展示“账号、角色、数据范围、权限点、离职交接”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 系统管理查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:系统管理;筛选:角色、部门、站点、权限点、账号状态 | 待执行\nTC-PROTO-0203 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界测评额度剩余1次预警 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=used=3,in_progress=0,reserved=0,count=1,limit=4 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录used=3,in_progress=0,reserved=0,count=1,limit=4。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理:允许预占但进入预警池。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界测评额度剩余1次预警 | 待执行\nTC-PROTO-0204 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界测评额度已用3且预占1再预占1 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=used=3,reserved=1,count=1,limit=4 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录used=3,reserved=1,count=1,limit=4。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理阻止预占状态exceeded。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界测评额度已用3且预占1再预占1 | 待执行\nTC-PROTO-0205 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界:免评额度独立预占 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=review used=4, exemption used=0,count=1 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录review used=4, exemption used=0,count=1。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理:免评可预占,测评不可预占。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界:免评额度独立预占 | 待执行\nTC-PROTO-0206 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界累计12提交后不因未展示回退 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=lifetime=11,提交评价后Amazon未展示 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录lifetime=11,提交评价后Amazon未展示。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理lifetime变12且不回退。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界累计12提交后不因未展示回退 | 待执行\nTC-PROTO-0207 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界:预占超时自动释放 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=reservation.status=RESERVED且expires_at已过 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录reservation.status=RESERVED且expires_at已过。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理状态EXPIRED/RELEASEDremaining恢复。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界:预占超时自动释放 | 待执行\nTC-PROTO-0208 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界:跨计划重复入选 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=同person同时进入PLAN-A和PLAN-B | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录同person同时进入PLAN-A和PLAN-B。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理:只保留高优先级或先预占计划,另一计划排除/预警。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界:跨计划重复入选 | 待执行\nTC-PROTO-0209 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道IM按用户状态执行并产生后续流转 | P1 | 计划已审批候选用户满足条件APP活跃+已绑定用户;额度、风险、去重均通过。 | 渠道=IM用户条件=APP活跃+已绑定用户;动作=推送回评卡片 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“APP活跃+已绑定用户”的候选用户。\n3. 点击渠道路由确认推荐渠道为“IM”。\n4. 执行“推送回评卡片”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“IM”作为推荐渠道或可选渠道。\n2. 执行动作后写入“im_interaction_records”。\n3. 后续处理符合:用户回复后重新校验身份/额度/风险。\n4. Dashboard和用户上下文卡可查看触达历史。 | im_interaction_records记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | IM渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道IM | 待执行\nTC-PROTO-0210 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道EDM按用户状态执行并产生后续流转 | P1 | 计划已审批候选用户满足条件未注册APP但邮箱可用用户额度、风险、去重均通过。 | 渠道=EDM用户条件=未注册APP但邮箱可用用户动作=发送邮件并追踪送达/打开/点击/回复/退订 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“未注册APP但邮箱可用用户”的候选用户。\n3. 点击渠道路由确认推荐渠道为“EDM”。\n4. 执行“发送邮件并追踪送达/打开/点击/回复/退订”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“EDM”作为推荐渠道或可选渠道。\n2. 执行动作后写入“edm_message_events”。\n3. 后续处理符合:回复邮件生成客服工单。\n4. Dashboard和用户上下文卡可查看触达历史。 | edm_message_events记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | EDM渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道EDM | 待执行\nTC-PROTO-0211 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道APP Push按用户状态执行并产生后续流转 | P1 | 计划已审批;候选用户满足条件:绑定新玩具/不活跃/计划到期/Listing紧急/活动触发;额度、风险、去重均通过。 | 渠道=APP Push用户条件=绑定新玩具/不活跃/计划到期/Listing紧急/活动触发;动作=发送Push并追踪点击打开/忽略/卸载 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“绑定新玩具/不活跃/计划到期/Listing紧急/活动触发”的候选用户。\n3. 点击渠道路由确认推荐渠道为“APP Push”。\n4. 执行“发送Push并追踪点击打开/忽略/卸载”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“APP Push”作为推荐渠道或可选渠道。\n2. 执行动作后写入“app_touch_events”。\n3. 后续处理符合:点击后分流到提交回评/联系客服/浏览。\n4. Dashboard和用户上下文卡可查看触达历史。 | app_touch_events记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | APP Push渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道APP Push | 待执行\nTC-PROTO-0212 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道TEL按用户状态执行并产生后续流转 | P1 | 计划已审批;候选用户满足条件:高价值多次无响应或答应配合超时用户;额度、风险、去重均通过。 | 渠道=TEL用户条件=高价值多次无响应或答应配合超时用户;动作=生成电话任务并记录通话结果 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“高价值多次无响应或答应配合超时用户”的候选用户。\n3. 点击渠道路由确认推荐渠道为“TEL”。\n4. 执行“生成电话任务并记录通话结果”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“TEL”作为推荐渠道或可选渠道。\n2. 执行动作后写入“tel_call_records”。\n3. 后续处理符合未接通小于3次重拨大于等于3次降级EDM或关闭。\n4. Dashboard和用户上下文卡可查看触达历史。 | tel_call_records记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | TEL渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道TEL | 待执行\nTC-PROTO-0213 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理截图证据登记 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=evidence_type=截图包含ASIN和评论内容 | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据evidence_type=截图包含ASIN和评论内容。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果记录提交事实并触发quota commit。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:截图证据登记 | 待执行\nTC-PROTO-0214 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理链接证据登记 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=evidence_type=Review Link链接可打开 | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据evidence_type=Review Link链接可打开。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果:记录提交事实并进入展示核验。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:链接证据登记 | 待执行\nTC-PROTO-0215 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理人工核验展示成功 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=check_method=人工check_result=DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据check_method=人工check_result=DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果计入计划完成数并更新ASIN健康。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:人工核验展示成功 | 待执行\nTC-PROTO-0216 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理自动核验未展示 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=check_method=自动check_result=NOT_DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据check_method=自动check_result=NOT_DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果:进入异常观察队列。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:自动核验未展示 | 待执行\nTC-PROTO-0217 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理暂不可核验 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=check_result=UNVERIFIABLE原因=Amazon审核中 | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据check_result=UNVERIFIABLE原因=Amazon审核中。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果:保留已提交事实并定期复查。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:暂不可核验 | 待执行\nTC-PROTO-0218 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理异常观察复查成功 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=OBSERVING重试后DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据OBSERVING重试后DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果转CONFIRMED并回流计划。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:异常观察复查成功 | 待执行\nTC-PROTO-0219 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理异常观察期满失败 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=retry_count超过阈值仍NOT_DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据retry_count超过阈值仍NOT_DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果标记ABNORMAL并通知运营。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:异常观察期满失败 | 待执行\nTC-PROTO-0266 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色Amazon运营模块访问与按钮权限 | P1 | 准备角色为“Amazon运营”的账号系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=Amazon运营可见范围=需求中心/ASIN/计划审核查看;允许=创建需求、查看ASIN健康限制=不能审批用户运营计划或查看完整用户敏感信息 | 1. 使用“Amazon运营”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作创建需求、查看ASIN健康。\n4. 尝试通过URL hash或按钮执行限制动作不能审批用户运营计划或查看完整用户敏感信息。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. Amazon运营只能访问“需求中心/ASIN/计划审核查看”。\n2. 允许动作“创建需求、查看ASIN健康”可正常执行。\n3. 限制动作“不能审批用户运营计划或查看完整用户敏感信息”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | Amazon运营权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=Amazon运营 | 待执行\nTC-PROTO-0267 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色用户运营模块访问与按钮权限 | P1 | 准备角色为“用户运营”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=用户运营;可见范围=需求中心/计划中心/推送中心/用户中心;允许=评估需求、生成计划、圈选人群、触达;限制=不能同步黑名单或配置系统权限 | 1. 使用“用户运营”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:评估需求、生成计划、圈选人群、触达。\n4. 尝试通过URL hash或按钮执行限制动作不能同步黑名单或配置系统权限。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 用户运营只能访问“需求中心/计划中心/推送中心/用户中心”。\n2. 允许动作“评估需求、生成计划、圈选人群、触达”可正常执行。\n3. 限制动作“不能同步黑名单或配置系统权限”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 用户运营权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=用户运营 | 待执行\nTC-PROTO-0268 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色客服模块访问与按钮权限 | P1 | 准备角色为“客服”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=客服;可见范围=客服中心/用户上下文摘要/评价登记;允许=处理工单、登记评价提交;限制=不能查看跨团队绩效和完整设备号 | 1. 使用“客服”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:处理工单、登记评价提交。\n4. 尝试通过URL hash或按钮执行限制动作不能查看跨团队绩效和完整设备号。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 客服只能访问“客服中心/用户上下文摘要/评价登记”。\n2. 允许动作“处理工单、登记评价提交”可正常执行。\n3. 限制动作“不能查看跨团队绩效和完整设备号”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 客服权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=客服 | 待执行\nTC-PROTO-0269 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色客服主管模块访问与按钮权限 | P1 | 准备角色为“客服主管”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=客服主管;可见范围=客服中心/客服执行看板/绩效;允许=分配工单、查看组内绩效、排班;限制=不能审批免评计划除非授权 | 1. 使用“客服主管”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:分配工单、查看组内绩效、排班。\n4. 尝试通过URL hash或按钮执行限制动作不能审批免评计划除非授权。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 客服主管只能访问“客服中心/客服执行看板/绩效”。\n2. 允许动作“分配工单、查看组内绩效、排班”可正常执行。\n3. 限制动作“不能审批免评计划除非授权”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 客服主管权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=客服主管 | 待执行\nTC-PROTO-0270 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色风险负责人模块访问与按钮权限 | P1 | 准备角色为“风险负责人”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=风险负责人;可见范围=风险中心/黑名单/审计;允许=复核风险、同步黑名单、标记误报;限制=不能修改计划目标量 | 1. 使用“风险负责人”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:复核风险、同步黑名单、标记误报。\n4. 尝试通过URL hash或按钮执行限制动作不能修改计划目标量。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 风险负责人只能访问“风险中心/黑名单/审计”。\n2. 允许动作“复核风险、同步黑名单、标记误报”可正常执行。\n3. 限制动作“不能修改计划目标量”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 风险负责人权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=风险负责人 | 待执行\nTC-PROTO-0271 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色KOC运营模块访问与按钮权限 | P1 | 准备角色为“KOC运营”的账号系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=KOC运营可见范围=KOC/KOL协作允许=维护Brief、CODE、内容记录限制=不能查看普通用户完整身份线索 | 1. 使用“KOC运营”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作维护Brief、CODE、内容记录。\n4. 尝试通过URL hash或按钮执行限制动作不能查看普通用户完整身份线索。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. KOC运营只能访问“KOC/KOL协作”。\n2. 允许动作“维护Brief、CODE、内容记录”可正常执行。\n3. 限制动作“不能查看普通用户完整身份线索”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | KOC运营权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=KOC运营 | 待执行\nTC-PROTO-0272 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色系统管理员模块访问与按钮权限 | P1 | 准备角色为“系统管理员”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=系统管理员;可见范围=全部模块;允许=账号权限、审计、配置、跨部门看板;限制=敏感访问仍需审计 | 1. 使用“系统管理员”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:账号权限、审计、配置、跨部门看板。\n4. 尝试通过URL hash或按钮执行限制动作敏感访问仍需审计。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 系统管理员只能访问“全部模块”。\n2. 允许动作“账号权限、审计、配置、跨部门看板”可正常执行。\n3. 限制动作“敏感访问仍需审计”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 系统管理员权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=系统管理员 | 待执行\nTC-PROTO-0273 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 数据校验 | 需求中心执行导出待评估需求并校验导出脱敏与范围 | P2 | 已进入“需求中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=待评估;导出内容=导出demands当前筛选字段 | 1. 打开“需求中心”。\n2. 设置筛选条件:筛选状态=待评估。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出demands当前筛选字段。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=需求中心;导出=导出待评估需求 | 待执行\nTC-PROTO-0274 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 数据校验 | 计划审核执行导出审批记录并校验导出脱敏与范围 | P2 | 已进入“计划审核”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选审批状态=待审批;导出内容=导出approval_records | 1. 打开“计划审核”。\n2. 设置筛选条件:筛选审批状态=待审批。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出approval_records。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=计划审核;导出=导出审批记录 | 待执行\nTC-PROTO-0275 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 数据校验 | 计划中心执行导出计划执行进度并校验导出脱敏与范围 | P2 | 已进入“计划中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=执行中;导出内容=导出计划、计划项、完成率 | 1. 打开“计划中心”。\n2. 设置筛选条件:筛选状态=执行中。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出计划、计划项、完成率。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=计划中心;导出=导出计划执行进度 | 待执行\nTC-PROTO-0276 | 用户运营系统-单文件.html | ASIN/Listing | ASIN/Listing | 数据校验 | ASIN/Listing执行导出健康风险ASIN并校验导出脱敏与范围 | P2 | 已进入“ASIN/Listing”当前角色具备导出权限列表支持筛选和导出。 | 筛选=筛选健康状态=风险/严重风险;导出内容=导出评分、评价数、差评数 | 1. 打开“ASIN/Listing”。\n2. 设置筛选条件:筛选健康状态=风险/严重风险。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出评分、评价数、差评数。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=ASIN/Listing导出=导出健康风险ASIN | 待执行\nTC-PROTO-0277 | 用户运营系统-单文件.html | 用户中心 | 用户中心 | 数据校验 | 用户中心执行导出人群包并校验导出脱敏与范围 | P2 | 已进入“用户中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选标签/国家/产品绑定;导出内容=导出脱敏用户ID和标签 | 1. 打开“用户中心”。\n2. 设置筛选条件:筛选标签/国家/产品绑定。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出脱敏用户ID和标签。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=用户中心;导出=导出人群包 | 待执行\nTC-PROTO-0278 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 数据校验 | 额度频控执行导出额度预警用户并校验导出脱敏与范围 | P2 | 已进入“额度频控”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选status=warning/exceeded导出内容=导出额度台账摘要 | 1. 打开“额度频控”。\n2. 设置筛选条件筛选status=warning/exceeded。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出额度台账摘要。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=额度频控;导出=导出额度预警用户 | 待执行\nTC-PROTO-0279 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 数据校验 | 推送/触达执行导出退订用户并校验导出脱敏与范围 | P2 | 已进入“推送/触达”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选event=UNSUBSCRIBED导出内容=导出退订事件和渠道 | 1. 打开“推送/触达”。\n2. 设置筛选条件筛选event=UNSUBSCRIBED。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出退订事件和渠道。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=推送/触达;导出=导出退订用户 | 待执行\nTC-PROTO-0280 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 数据校验 | 客服中心执行导出超时工单并校验导出脱敏与范围 | P2 | 已进入“客服中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=等待用户且超时;导出内容=导出工单与负责人 | 1. 打开“客服中心”。\n2. 设置筛选条件:筛选状态=等待用户且超时。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出工单与负责人。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=客服中心;导出=导出超时工单 | 待执行\nTC-PROTO-0281 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 数据校验 | 风险中心执行导出风险案件并校验导出脱敏与范围 | P2 | 已进入“风险中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=人工复核中;导出内容=导出风险摘要脱敏 | 1. 打开“风险中心”。\n2. 设置筛选条件:筛选状态=人工复核中。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出风险摘要脱敏。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=风险中心;导出=导出风险案件 | 待执行\nTC-PROTO-0282 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 数据校验 | 评价追踪执行导出异常观察队列并校验导出脱敏与范围 | P2 | 已进入“评价追踪”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选status=OBSERVING/ABNORMAL导出内容=导出提交和核验摘要 | 1. 打开“评价追踪”。\n2. 设置筛选条件筛选status=OBSERVING/ABNORMAL。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出提交和核验摘要。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=评价追踪;导出=导出异常观察队列 | 待执行\nTC-PROTO-0283 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 数据校验 | KOC/KOL执行导出逾期协作任务并校验导出脱敏与范围 | P2 | 已进入“KOC/KOL”当前角色具备导出权限列表支持筛选和导出。 | 筛选=筛选状态=逾期;导出内容=导出CODE/Brief/负责人 | 1. 打开“KOC/KOL”。\n2. 设置筛选条件:筛选状态=逾期。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出CODE/Brief/负责人。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=KOC/KOL导出=导出逾期协作任务 | 待执行\nTC-PROTO-0284 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 数据校验 | 审计通知执行导出敏感动作日志并校验导出脱敏与范围 | P2 | 已进入“审计通知”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选动作=查看完整信息/导出;导出内容=导出审计日志 | 1. 打开“审计通知”。\n2. 设置筛选条件:筛选动作=查看完整信息/导出。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出审计日志。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=审计通知;导出=导出敏感动作日志 | 待执行\nTC-PROTO-0298 | 用户运营系统-单文件.html | 需求中心 | 系统稳定性与幂等 | 异常场景 | 需求中心稳定性校验:创建需求重复提交 | P2 | 已进入“需求中心”;准备可执行场景:创建需求重复提交。 | 动作=提交按钮连续点击两次;预期=只创建一个demand_id | 1. 打开原型页面“需求中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:提交按钮连续点击两次。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为只创建一个demand_id。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:创建需求重复提交 | 待执行\nTC-PROTO-0299 | 用户运营系统-单文件.html | 计划审核 | 系统稳定性与幂等 | 异常场景 | 计划审核稳定性校验:两名审批人同时审批 | P2 | 已进入“计划审核”;准备可执行场景:两名审批人同时审批。 | 动作=一个通过一个驳回并发提交;预期=按后端锁定规则只接受一个有效决策 | 1. 打开原型页面“计划审核”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:一个通过一个驳回并发提交。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:按后端锁定规则只接受一个有效决策。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:两名审批人同时审批 | 待执行\nTC-PROTO-0300 | 用户运营系统-单文件.html | 计划中心 | 系统稳定性与幂等 | 异常场景 | 计划中心稳定性校验:计划暂停后重复暂停 | P2 | 已进入“计划中心”;准备可执行场景:计划暂停后重复暂停。 | 动作=执行中计划点击暂停两次;预期=第二次提示计划已暂停 | 1. 打开原型页面“计划中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:执行中计划点击暂停两次。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:第二次提示计划已暂停。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:计划暂停后重复暂停 | 待执行\nTC-PROTO-0301 | 用户运营系统-单文件.html | 额度频控 | 系统稳定性与幂等 | 异常场景 | 额度频控稳定性校验:并发预占同一真实人最后额度 | P2 | 已进入“额度频控”;准备可执行场景:并发预占同一真实人最后额度。 | 动作=两个计划同时预占remaining=1预期=只允许一个预占成功 | 1. 打开原型页面“额度频控”。\n2. 准备或选择满足场景的数据。\n3. 执行操作两个计划同时预占remaining=1。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只允许一个预占成功。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:并发预占同一真实人最后额度 | 待执行\nTC-PROTO-0302 | 用户运营系统-单文件.html | 推送/触达 | 系统稳定性与幂等 | 异常场景 | 推送/触达稳定性校验:发送任务队列中刷新 | P2 | 已进入“推送/触达”;准备可执行场景:发送任务队列中刷新。 | 动作=点击发送后立即刷新页面;预期=任务状态可从队列恢复查询 | 1. 打开原型页面“推送/触达”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:点击发送后立即刷新页面。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:任务状态可从队列恢复查询。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:发送任务队列中刷新 | 待执行\nTC-PROTO-0303 | 用户运营系统-单文件.html | 客服中心 | 系统稳定性与幂等 | 异常场景 | 客服中心稳定性校验:同用户重复创建工单 | P2 | 已进入“客服中心”;准备可执行场景:同用户重复创建工单。 | 动作=同person_id已有open工单再次创建预期=提示关联已有工单或合并 | 1. 打开原型页面“客服中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作同person_id已有open工单再次创建。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示关联已有工单或合并。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:同用户重复创建工单 | 待执行\nTC-PROTO-0304 | 用户运营系统-单文件.html | 风险中心 | 系统稳定性与幂等 | 异常场景 | 风险中心稳定性校验:确认诈骗重复点击 | P2 | 已进入“风险中心”;准备可执行场景:确认诈骗重复点击。 | 动作=风险案件连续点击确认诈骗;预期=只同步一次黑名单候选 | 1. 打开原型页面“风险中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:风险案件连续点击确认诈骗。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只同步一次黑名单候选。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:确认诈骗重复点击 | 待执行\nTC-PROTO-0305 | 用户运营系统-单文件.html | 评价追踪 | 系统稳定性与幂等 | 异常场景 | 评价追踪稳定性校验:评价提交重复登记 | P2 | 已进入“评价追踪”;准备可执行场景:评价提交重复登记。 | 动作=同person+asin+plan重复提交相同证据预期=提示重复记录或合并,不重复扣额度 | 1. 打开原型页面“评价追踪”。\n2. 准备或选择满足场景的数据。\n3. 执行操作同person+asin+plan重复提交相同证据。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示重复记录或合并,不重复扣额度。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:评价提交重复登记 | 待执行\nTC-PROTO-0306 | 用户运营系统-单文件.html | 评价追踪 | 系统稳定性与幂等 | 异常场景 | 评价追踪稳定性校验:展示核验重复确认 | P2 | 已进入“评价追踪”;准备可执行场景:展示核验重复确认。 | 动作=已CONFIRMED记录再次确认展示预期=计划完成数不重复增加 | 1. 打开原型页面“评价追踪”。\n2. 准备或选择满足场景的数据。\n3. 执行操作已CONFIRMED记录再次确认展示。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:计划完成数不重复增加。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:展示核验重复确认 | 待执行\nTC-PROTO-0307 | 用户运营系统-单文件.html | 系统管理 | 系统稳定性与幂等 | 异常场景 | 系统管理稳定性校验:权限变更后立即生效 | P2 | 已进入“系统管理”;准备可执行场景:权限变更后立即生效。 | 动作=撤销用户导出权限后刷新;预期=导出按钮不可用且接口拒绝 | 1. 打开原型页面“系统管理”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:撤销用户导出权限后刷新。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:导出按钮不可用且接口拒绝。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:权限变更后立即生效 | 待执行\nTC-PROTO-0308 | 用户运营系统-单文件.html | 审计通知 | 系统稳定性与幂等 | 异常场景 | 审计通知稳定性校验:审计列表空状态 | P2 | 已进入“审计通知”;准备可执行场景:审计列表空状态。 | 动作=筛选未来日期无日志;预期=显示暂无数据且可重置 | 1. 打开原型页面“审计通知”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:筛选未来日期无日志。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:显示暂无数据且可重置。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:审计列表空状态 | 待执行\n# Sheet: 全量用例\n用例编号 | HTML原型 | 功能页面 | 需求模块 | 测试类型 | 用例名称 | 优先级 | 前置条件 | 测试数据 | 操作步骤 | 预期结果 | 数据校验 | 权限校验 | 验收标准 | 需求依据 | 原型依据 | 用例状态\nTC-PROTO-0001 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 需求与计划管理 | 功能测试 | 管理员工作台查看测评需求审核卡片并跳转处理页 | P1 | 系统管理员账号已登录首页默认展示固定待办提醒和核心看板存在Amazon 运营提交的测评需求模拟数据。 | 卡片=测评需求审核;指标=申请 18 / 已批 8状态=正常;目标页面=需求中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“测评需求审核”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入需求中心待审核入口”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“测评需求审核”和“申请 18 / 已批 8”状态为“正常”。\n2. 点击后进入或打开与“需求中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对测评需求审核的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留需求中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:测评需求审核;状态:正常;操作:点击卡片进入需求中心待审核入口 | 待执行\nTC-PROTO-0002 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 多渠道触达引擎 | 功能测试 | 管理员工作台查看渠道推送风险卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在退订率高于基线的推送风险模拟数据。 | 卡片=渠道推送风险;指标=IM、EDM、TEL、App Push 日周月风险与反馈;状态=偏高;目标页面=推送中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“渠道推送风险”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入推送风险复核”。\n5. 返回首页后再次查看该卡片是否 | 1. 卡片展示“渠道推送风险”和“IM、EDM、TEL、App Push 日周月风险与反馈”,状态为“偏高”。\n2. 点击后进入或打开与“推送中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对渠道推送风险的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留推送中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:渠道推送风险;状态:偏高;操作:点击卡片进入推送风险复核 | 待执行\nTC-PROTO-0003 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 风险与反欺诈 | 功能测试 | 管理员工作台查看新增诈骗事件卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在诈骗同步与黑名单待同步事件模拟数据。 | 卡片=新增诈骗事件;指标=昨 5 / 周 18状态=需复核;目标页面=风险中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“新增诈骗事件”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入风险中心”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“新增诈骗事件”和“昨 5 / 周 18”状态为“需复核”。\n2. 点击后进入或打开与“风险中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对新增诈骗事件的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留风险中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:新增诈骗事件;状态:需复核;操作:点击卡片进入风险中心 | 待执行\nTC-PROTO-0004 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 需求与计划管理 | 功能测试 | 管理员工作台查看紧急 Listing卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在评分接近 4.2 的 Listing模拟数据。 | 卡片=紧急 Listing指标=新 3 / 未处理 7状态=紧急;目标页面=Listing 管理 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“紧急 Listing”卡片核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入紧急 Listing 策略”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“紧急 Listing”和“新 3 / 未处理 7”状态为“紧急”。\n2. 点击后进入或打开与“Listing 管理”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对紧急 Listing的日/周/月指标、风险状态与页面内模拟数据一致跳转后筛选上下文应保留Listing 管理语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:紧急 Listing状态紧急操作点击卡片进入紧急 Listing 策略 | 待执行\nTC-PROTO-0005 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 需求与计划管理 | 功能测试 | 管理员工作台查看推广计划与紧急策略卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在已确认需求生成的推广计划模拟数据。 | 卡片=推广计划与紧急策略;指标=日 12 / 周 38状态=注意审核积压;目标页面=计划中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“推广计划与紧急策略”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入计划中心”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“推广计划与紧急策略”和“日 12 / 周 38”状态为“注意审核积压”。\n2. 点击后进入或打开与“计划中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对推广计划与紧急策略的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留计划中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:推广计划与紧急策略;状态:注意审核积压;操作:点击卡片进入计划中心 | 待执行\nTC-PROTO-0006 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 评价结果追踪 | 功能测试 | 管理员工作台查看评价产出趋势卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在真实消费者回评完成趋势模拟数据。 | 卡片=评价产出趋势;指标=日 18 / 周 96状态=稳定;目标页面=数据中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“评价产出趋势”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入评价产出趋势”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“评价产出趋势”和“日 18 / 周 96”状态为“稳定”。\n2. 点击后进入或打开与“数据中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对评价产出趋势的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留数据中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:评价产出趋势;状态:稳定;操作:点击卡片进入评价产出趋势 | 待执行\nTC-PROTO-0007 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 风险与反欺诈 | 功能测试 | 管理员工作台查看黑名单同步严重度卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在黑名单系统接口超时模拟数据。 | 卡片=黑名单同步严重度;指标=失败 2 / 高危 1状态=需复核;目标页面=风险中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“黑名单同步严重度”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入黑名单同步”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“黑名单同步严重度”和“失败 2 / 高危 1”状态为“需复核”。\n2. 点击后进入或打开与“风险中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对黑名单同步严重度的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留风险中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:黑名单同步严重度;状态:需复核;操作:点击卡片进入黑名单同步 | 待执行\nTC-PROTO-0008 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | KOC/KOL协作 | 功能测试 | 管理员工作台查看KOC/KOL 对接卡片并跳转处理页 | P1 | 系统管理员账号已登录首页默认展示固定待办提醒和核心看板存在PR 对外联系、价格、CODE、返点和提款进度模拟数据。 | 卡片=KOC/KOL 对接;指标=2 个逾期;状态=逾期;目标页面=计划中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“KOC/KOL 对接”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入对外合作跟进”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“KOC/KOL 对接”和“2 个逾期”,状态为“逾期”。\n2. 点击后进入或打开与“计划中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对KOC/KOL 对接的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留计划中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板KOC/KOL 对接;状态:逾期;操作:点击卡片进入对外合作跟进 | 待执行\nTC-PROTO-0009 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 客服工单与管理 | 功能测试 | 管理员工作台查看菲律宾团队管理卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在菲律宾团队工作时长、请假、缺席、人均产出模拟数据。 | 卡片=菲律宾团队管理;指标=风险 2 / 缺口 1状态=排班风险;目标页面=客服中心 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“菲律宾团队管理”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入客服中心”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“菲律宾团队管理”和“风险 2 / 缺口 1”状态为“排班风险”。\n2. 点击后进入或打开与“客服中心”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对菲律宾团队管理的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留客服中心语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:菲律宾团队管理;状态:排班风险;操作:点击卡片进入客服中心 | 待执行\nTC-PROTO-0010 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-核心KPI卡片 | 审计与通知中心 | 功能测试 | 管理员工作台查看审核积压与风险卡片并跳转处理页 | P1 | 系统管理员账号已登录;首页默认展示固定待办提醒和核心看板;存在已发现问题汇总到总页面模拟数据。 | 卡片=审核积压与风险;指标=卡点 4状态=影响进度;目标页面=工作台 | 1. 打开管理员首页原型。\n2. 在核心看板区定位“审核积压与风险”卡片,核对卡片标题、指标和状态标签。\n3. 将鼠标移入卡片,观察是否有可点击反馈。\n4. 执行“点击卡片进入处理卡点”。\n5. 返回首页后再次查看该卡片是否保持原指标展示。 | 1. 卡片展示“审核积压与风险”和“卡点 4”状态为“影响进度”。\n2. 点击后进入或打开与“工作台”相关的列表/处理区域。\n3. 返回首页后核心指标未丢失,仍可继续查看固定待办。 | 核对审核积压与风险的日/周/月指标、风险状态与页面内模拟数据一致;跳转后筛选上下文应保留工作台语义。 | 仅系统管理员、负责人/总监可查看全部部门指标;普通客服不得看到跨部门风险汇总和黑名单严重度。 | 卡片内容准确、可点击、跳转目标正确;敏感指标对无权限角色不可见。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 核心看板:审核积压与风险;状态:影响进度;操作:点击卡片进入处理卡点 | 待执行\nTC-PROTO-0011 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对测评需求执行接收动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“测评需求”当前环节为“Amazon 已批准”,负责人为“用户运营负责人”。 | 事项=测评需求;来源=飞书需求表单 DEMO-001截止=今日 18:00处理动作=接收;描述=评分 4.46,低于 4.5,需要生成用户互动与真实评价跟踪计划 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“测评需求”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“接收”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:测评需求已核对”。\n7. 点击确认提交。 | 1. 队列行展示测评需求、Amazon 已批准、用户运营负责人、今日 18:00。\n2. 详情弹窗打开,展示来源“飞书需求表单 DEMO-001”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列测评需求操作接收 | 待执行\nTC-PROTO-0012 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 测评需求处理意见为空时阻止提交 | P2 | 已打开“测评需求”详情弹窗;当前用户有“接收”权限。 | 动作类型=通过/确认;处理意见=空;事项=测评需求 | 1. 在“测评需求”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0013 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对昨日推送风险执行复核动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“昨日推送风险”;当前环节为“待复核”,负责人为“用户运营组长”。 | 事项=昨日推送风险;来源=推送风险自动单 DEMO-006截止=今日 12:00处理动作=复核;描述=昨日推送退订率高于基线,需复核人群、素材和文案 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“昨日推送风险”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“复核”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:昨日推送风险已核对”。\n7. 点击确认提交。 | 1. 队列行展示昨日推送风险、待复核、用户运营组长、今日 12:00。\n2. 详情弹窗打开,展示来源“推送风险自动单 DEMO-006”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列昨日推送风险操作复核 | 待执行\nTC-PROTO-0014 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 昨日推送风险处理意见为空时阻止提交 | P2 | 已打开“昨日推送风险”详情弹窗;当前用户有“复核”权限。 | 动作类型=通过/确认;处理意见=空;事项=昨日推送风险 | 1. 在“昨日推送风险”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0015 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对待同步黑名单执行审核动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“待同步黑名单”;当前环节为“待审核”,负责人为“风险负责人”。 | 事项=待同步黑名单;来源=客服升级表单 DEMO-003截止=今日 14:00处理动作=审核;描述=同一 JOYHUB ID 与多个 Profile ID 关联异常样品申请,邮箱和设备号已脱敏 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“待同步黑名单”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“审核”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:待同步黑名单已核对”。\n7. 点击确认提交。 | 1. 队列行展示待同步黑名单、待审核、风险负责人、今日 14:00。\n2. 详情弹窗打开,展示来源“客服升级表单 DEMO-003”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列待同步黑名单操作审核 | 待执行\nTC-PROTO-0016 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 待同步黑名单处理意见为空时阻止提交 | P2 | 已打开“待同步黑名单”详情弹窗;当前用户有“审核”权限。 | 动作类型=通过/确认;处理意见=空;事项=待同步黑名单 | 1. 在“待同步黑名单”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0017 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对紧急策略审批执行审批动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“紧急策略审批”当前环节为“待系统管理员确认”负责人为“Amazon 运营总监”。 | 事项=紧急策略审批;来源=紧急 Listing 表单 DEMO-004截止=今日 11:30处理动作=审批;描述=当前评分 4.21,接近 4.2 紧急阈值,需要 Amazon 与用户运营联合策略 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“紧急策略审批”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“审批”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:紧急策略审批已核对”。\n7. 点击确认提交。 | 1. 队列行展示紧急策略审批、待系统管理员确认、Amazon 运营总监、今日 11:30。\n2. 详情弹窗打开,展示来源“紧急 Listing 表单 DEMO-004”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列紧急策略审批操作审批 | 待执行\nTC-PROTO-0018 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 紧急策略审批处理意见为空时阻止提交 | P2 | 已打开“紧急策略审批”详情弹窗;当前用户有“审批”权限。 | 动作类型=通过/确认;处理意见=空;事项=紧急策略审批 | 1. 在“紧急策略审批”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0019 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 流程测试 | 处理队列中对差评跟进执行分配动作 | P1 | 系统管理员登录P0/P1 处理队列存在事项“差评跟进”;当前环节为“客服升级”,负责人为“客服负责人”。 | 事项=差评跟进;来源=飞书客服需求 DEMO-005截止=明日 10:00处理动作=分配;描述=用户反馈产品说明理解偏差,需要客服跟进并回传产品改进建议 | 1. 进入工作台的“P0/P1 处理队列”。\n2. 在队列中按事项名称查找“差评跟进”。\n3. 核对对象说明、当前环节、负责人、截止时间和风险描述。\n4. 点击该行右侧“分配”。\n5. 在详情弹窗查看状态流转记录和脱敏与审计说明。\n6. 在操作确认区选择“通过 / 确认”,填写处理意见“测试通过:差评跟进已核对”。\n7. 点击确认提交。 | 1. 队列行展示差评跟进、客服升级、客服负责人、明日 10:00。\n2. 详情弹窗打开,展示来源“飞书客服需求 DEMO-005”及状态流转记录。\n3. 提交后该事项从待处理状态更新为已确认或流转到下一负责人。\n4. 页面出现成功反馈,通知/审计记录新增一条处理日志。 | 校验事项ID、来源表单、负责人、截止时间、处理意见、动作类型均写入状态流转记录处理前后队列统计同步变化。 | 只有系统管理员或当前负责人可提交确认;非负责人只能查看,不能操作审批/分配。 | 队列事项可定位、详情可追溯、操作后状态变化清晰,且动作留痕。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列差评跟进操作分配 | 待执行\nTC-PROTO-0020 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 异常场景 | 差评跟进处理意见为空时阻止提交 | P2 | 已打开“差评跟进”详情弹窗;当前用户有“分配”权限。 | 动作类型=通过/确认;处理意见=空;事项=差评跟进 | 1. 在“差评跟进”详情弹窗点击“审批/确认”。\n2. 选择动作类型“通过 / 确认”。\n3. 清空处理意见文本框。\n4. 点击确认按钮提交。 | 1. 系统阻止提交。\n2. 处理意见输入框出现必填提示。\n3. 事项状态不改变,状态流转记录不新增确认日志。\n4. 弹窗保持打开,用户可补充意见后重新提交。 | 确认数据库或前端状态中该事项仍保持原当前环节;无空意见审计记录。 | 有权限用户也必须填写处理意见;无权限用户不显示确认按钮。 | 必填校验生效,不产生错误状态流转。 | 09-审计与通知中心README 权限要求 | 操作确认弹窗:处理意见 textarea动作类型通过/确认 | 待执行\nTC-PROTO-0021 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入需求中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“需求中心”;模拟数据已加载。 | 页面=需求中心;主按钮=Amazon 提交测评需求;辅助按钮=待审核入口;字段=需求ID、类型、提交人、审核人、审核结果、来源表单、ASIN/站点、当前环节、负责人、风险、截止、操作 | 1. 在管理员首页左侧导航点击“需求中心”。\n2. 观察页面标题是否切换为“需求中心列表”。\n3. 检查列表表头是否包含需求ID、类型、提交人、审核人、审核结果、来源表单、ASIN/站点、当前环节、负责人、风险、截止、操作。\n4. 点击页面主按钮“Amazon 提交测评需求”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“待审核入口”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“需求中心”。\n2. 列表字段与原型定义一致。\n3. “Amazon 提交测评需求”和“待审核入口”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问需求中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合需求中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航需求中心按钮Amazon 提交测评需求/待审核入口字段需求ID、类型、提交人、审核人、审核结果、来源表单、ASIN/站点、当前环节、负责人、风险、截止、操作 | 待执行\nTC-PROTO-0022 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入Listing 管理并校验列表字段 | P1 | 系统管理员已登录左侧导航包含“Listing 管理”;模拟数据已加载。 | 页面=Listing 管理;主按钮=创建紧急策略;辅助按钮=更多;字段=站点组合、评分、等级、评价数、差评数、健康状态、责任人、问题所在、参与人员/进度 | 1. 在管理员首页左侧导航点击“Listing 管理”。\n2. 观察页面标题是否切换为“Listing 管理列表”。\n3. 检查列表表头是否包含:站点组合、评分、等级、评价数、差评数、健康状态、责任人、问题所在、参与人员/进度。\n4. 点击页面主按钮“创建紧急策略”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“更多”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“Listing 管理”。\n2. 列表字段与原型定义一致。\n3. “创建紧急策略”和“更多”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问Listing 管理全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合Listing 管理页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航Listing 管理;按钮:创建紧急策略/更多;字段:站点组合、评分、等级、评价数、差评数、健康状态、责任人、问题所在、参与人员/进度 | 待执行\nTC-PROTO-0023 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入计划中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“计划中心”;模拟数据已加载。 | 页面=计划中心;主按钮=生成计划;辅助按钮=批量审批;字段=计划ID、关联需求、覆盖状态、资源分配、目标量、状态、审批人 | 1. 在管理员首页左侧导航点击“计划中心”。\n2. 观察页面标题是否切换为“计划中心列表”。\n3. 检查列表表头是否包含计划ID、关联需求、覆盖状态、资源分配、目标量、状态、审批人。\n4. 点击页面主按钮“生成计划”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“批量审批”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“计划中心”。\n2. 列表字段与原型定义一致。\n3. “生成计划”和“批量审批”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问计划中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合计划中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:计划中心;按钮:生成计划/批量审批字段计划ID、关联需求、覆盖状态、资源分配、目标量、状态、审批人 | 待执行\nTC-PROTO-0024 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入推送中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“推送中心”;模拟数据已加载。 | 页面=推送中心;主按钮=计划与推送分配;辅助按钮=风险复核;字段=推送ID、计划、渠道、策略、H5/素材、人群、发送、点击、回复、退订 | 1. 在管理员首页左侧导航点击“推送中心”。\n2. 观察页面标题是否切换为“推送中心列表”。\n3. 检查列表表头是否包含推送ID、计划、渠道、策略、H5/素材、人群、发送、点击、回复、退订。\n4. 点击页面主按钮“计划与推送分配”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“风险复核”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“推送中心”。\n2. 列表字段与原型定义一致。\n3. “计划与推送分配”和“风险复核”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问推送中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合推送中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:推送中心;按钮:计划与推送分配/风险复核字段推送ID、计划、渠道、策略、H5/素材、人群、发送、点击、回复、退订 | 待执行\nTC-PROTO-0025 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入客服中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“客服中心”;模拟数据已加载。 | 页面=客服中心;主按钮=分配工单;辅助按钮=流转;字段=工单ID、用户摘要、平均响应、工作时长、出勤、人均产出 | 1. 在管理员首页左侧导航点击“客服中心”。\n2. 观察页面标题是否切换为“客服中心列表”。\n3. 检查列表表头是否包含工单ID、用户摘要、平均响应、工作时长、出勤、人均产出。\n4. 点击页面主按钮“分配工单”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“流转”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“客服中心”。\n2. 列表字段与原型定义一致。\n3. “分配工单”和“流转”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问客服中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合客服中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:客服中心;按钮:分配工单/流转字段工单ID、用户摘要、平均响应、工作时长、出勤、人均产出 | 待执行\nTC-PROTO-0026 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入风险中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“风险中心”;模拟数据已加载。 | 页面=风险中心;主按钮=同步黑名单;辅助按钮=规则复核;字段=事件ID、主体摘要、关联字段、来源、同步频率、最近同步、记录数 | 1. 在管理员首页左侧导航点击“风险中心”。\n2. 观察页面标题是否切换为“风险中心列表”。\n3. 检查列表表头是否包含事件ID、主体摘要、关联字段、来源、同步频率、最近同步、记录数。\n4. 点击页面主按钮“同步黑名单”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“规则复核”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“风险中心”。\n2. 列表字段与原型定义一致。\n3. “同步黑名单”和“规则复核”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问风险中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合风险中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:风险中心;按钮:同步黑名单/规则复核字段事件ID、主体摘要、关联字段、来源、同步频率、最近同步、记录数 | 待执行\nTC-PROTO-0027 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 数据中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入数据中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“数据中心”;模拟数据已加载。 | 页面=数据中心;主按钮=立即同步;辅助按钮=导出;字段=来源、同步频率、最近同步、记录数 | 1. 在管理员首页左侧导航点击“数据中心”。\n2. 观察页面标题是否切换为“数据中心列表”。\n3. 检查列表表头是否包含:来源、同步频率、最近同步、记录数。\n4. 点击页面主按钮“立即同步”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“导出”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“数据中心”。\n2. 列表字段与原型定义一致。\n3. “立即同步”和“导出”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问数据中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合数据中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:数据中心;按钮:立即同步/导出;字段:来源、同步频率、最近同步、记录数 | 待执行\nTC-PROTO-0028 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入报表中心并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“报表中心”;模拟数据已加载。 | 页面=报表中心;主按钮=生成/下载报表;辅助按钮=上传记录;字段=报表ID、报表名称、可见角色、周期、生成计划、上传/记录、可导出、脱敏 | 1. 在管理员首页左侧导航点击“报表中心”。\n2. 观察页面标题是否切换为“报表中心列表”。\n3. 检查列表表头是否包含报表ID、报表名称、可见角色、周期、生成计划、上传/记录、可导出、脱敏。\n4. 点击页面主按钮“生成/下载报表”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“上传记录”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“报表中心”。\n2. 列表字段与原型定义一致。\n3. “生成/下载报表”和“上传记录”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问报表中心全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合报表中心页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:报表中心;按钮:生成/下载报表/上传记录字段报表ID、报表名称、可见角色、周期、生成计划、上传/记录、可导出、脱敏 | 待执行\nTC-PROTO-0029 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理 | 系统管理/页面导航 | 功能测试 | 从左侧导航进入系统管理并校验列表字段 | P1 | 系统管理员已登录;左侧导航包含“系统管理”;模拟数据已加载。 | 页面=系统管理;主按钮=新建账号;辅助按钮=离职管理;字段=配置ID、模块、说明、权限分配、审计日志 | 1. 在管理员首页左侧导航点击“系统管理”。\n2. 观察页面标题是否切换为“系统管理列表”。\n3. 检查列表表头是否包含配置ID、模块、说明、权限分配、审计日志。\n4. 点击页面主按钮“新建账号”,观察是否打开对应创建/处理入口。\n5. 关闭入口后点击“离职管理”,观察是否进入辅助操作。\n6. 点击“导出”或“流转”按钮,确认对应操作入口可用。 | 1. 当前模块高亮切换到“系统管理”。\n2. 列表字段与原型定义一致。\n3. “新建账号”和“离职管理”按钮可点击,打开的弹窗/区域与页面业务一致。\n4. 返回列表后筛选条件不丢失。 | 列表数据字段顺序、状态标签、负责人、风险和操作列与模拟数据一致;导出时仅导出当前筛选结果。 | 系统管理员可访问系统管理全部数据;部门负责人仅可访问本部门/站点范围;普通角色无权限进入系统级配置。 | 导航、字段、按钮、筛选和导出符合系统管理页面定位。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | 左侧导航:系统管理;按钮:新建账号/离职管理字段配置ID、模块、说明、权限分配、审计日志 | 待执行\nTC-PROTO-0030 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换最近 7 天时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=最近 7 天;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“最近 7 天”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“最近 7 天”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0031 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换最近 30 天时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=最近 30 天;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“最近 30 天”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“最近 30 天”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0032 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换本月时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=本月;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“本月”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“本月”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0033 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-时间范围与周期切换 | 数据中心 | 数据校验 | 管理员首页切换自定义时间范围后刷新趋势指标 | P2 | 系统管理员停留在工作台;核心看板、经营主题矩阵、业务复盘趋势均已展示。 | 时间范围=自定义;涉及指标=审核卡点、未处理紧急、评价产出趋势、黑名单同步严重度 | 1. 在首页顶部时间范围控件选择“自定义”。\n2. 如果选择自定义,则输入开始日期 2026-05-01、结束日期 2026-05-07。\n3. 点击查询或等待页面自动刷新。\n4. 对比核心看板、经营主题矩阵、业务复盘趋势中的日/周/月数值。\n5. 切换到其他模块再返回首页。 | 1. 页面按“自定义”刷新相关趋势指标。\n2. 周/月预生成提示仍显示,不影响实时入口。\n3. 切换模块再返回后,时间范围保持用户最后一次选择。 | 日/周/月聚合口径一致;自定义范围不能出现结束日期早于开始日期的数据。 | 普通客服仅能查看与本人相关指标;系统管理员可查看全部部门趋势。 | 时间筛选可用,趋势数据与范围一致,筛选状态可保持。 | 00-系统总览evaluation-business-architecture 数据看板 | 时间范围;周期切换;周/月预生成 | 待执行\nTC-PROTO-0034 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP页面用户管理字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“用户管理”。 | 现有页面=用户中心 / 用户;字段=JOYHUB 用户ID、用户名、头像、注册时间、最近活跃时间、用户身份、标签、邮箱后缀、主页背景图、自我介绍查询条件=搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份MVP用途=用户画像筛选、推送人群、客服定位、风险排查 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“用户管理”。\n3. 核对现有页面名称是否为“用户中心 / 用户”。\n4. 展开字段详情逐项核对字段JOYHUB 用户ID、用户名、头像、注册时间、最近活跃时间、用户身份、标签、邮箱后缀、主页背景图、自我介绍。\n5. 在查询条件区按“搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “用户管理”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系用户管理按钮生成字段表、导出现有关系 | 待执行\nTC-PROTO-0035 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 异常场景 | 用户管理查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“用户管理”关系页面用户有查询权限。 | 查询条件=搜索字段、时间类型、标签、性别、国家、产品数、活动数、EDM近7天、渠道、身份输入值=不存在的标签/身份/国家组合 | 1. 在“用户管理”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0036 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP页面公域-用户标签字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“公域-用户标签”。 | 现有页面=标签 / 公域用户;字段=ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、备注、状态查询条件=搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间MVP用途=公域人群圈选、覆盖人数评估、推送前过滤 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“公域-用户标签”。\n3. 核对现有页面名称是否为“标签 / 公域用户”。\n4. 展开字段详情逐项核对字段ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、备注、状态。\n5. 在查询条件区按“搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “公域-用户标签”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系公域-用户标签;按钮:生成字段表、导出现有关系 | 待执行\nTC-PROTO-0037 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 异常场景 | 公域-用户标签查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“公域-用户标签”关系页面;用户有查询权限。 | 查询条件=搜索字段、标签分类、覆盖用户数量、打标方式、时间类型、开始/截止时间;输入值=不存在的标签/身份/国家组合 | 1. 在“公域-用户标签”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0038 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 需求与计划管理 | 功能测试 | 现有ERP页面公域-产品标签字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“公域-产品标签”。 | 现有页面=标签 / 公域产品;字段=标签ID、标签名称、产品、标签覆盖产品数量、备注、创建时间、创建人查询条件=搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间MVP用途=产品分层、Listing 健康策略、产品绑定率分析 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“公域-产品标签”。\n3. 核对现有页面名称是否为“标签 / 公域产品”。\n4. 展开字段详情逐项核对字段标签ID、标签名称、产品、标签覆盖产品数量、备注、创建时间、创建人。\n5. 在查询条件区按“搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “公域-产品标签”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系公域-产品标签;按钮:生成字段表、导出现有关系 | 待执行\nTC-PROTO-0039 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 需求与计划管理 | 异常场景 | 公域-产品标签查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“公域-产品标签”关系页面;用户有查询权限。 | 查询条件=搜索字段、搜索关键词、覆盖产品数量、创建标签时间、开始/截止时间;输入值=不存在的标签/身份/国家组合 | 1. 在“公域-产品标签”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0040 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP页面私域-用户标签字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“私域-用户标签”。 | 现有页面=标签 / 私域用户;字段=ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、状态查询条件=标签分类、打标方式、覆盖人数、状态、时间范围MVP用途=私域精细运营、客服分组、活动复盘、风险用户隔离 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“私域-用户标签”。\n3. 核对现有页面名称是否为“标签 / 私域用户”。\n4. 展开字段详情逐项核对字段ID、标签编号、标签名称、标签分类、打标方式、标签覆盖人数、最新打标时间、状态。\n5. 在查询条件区按“标签分类、打标方式、覆盖人数、状态、时间范围”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “私域-用户标签”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系私域-用户标签;按钮:生成字段表、导出现有关系 | 待执行\nTC-PROTO-0041 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 异常场景 | 私域-用户标签查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“私域-用户标签”关系页面;用户有查询权限。 | 查询条件=标签分类、打标方式、覆盖人数、状态、时间范围;输入值=不存在的标签/身份/国家组合 | 1. 在“私域-用户标签”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0042 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP页面身份管理字段展示与MVP纳入方式校验 | P1 | 系统管理员打开 v10 原型当前模块切换到“现有ERP”存在现有页面“身份管理”。 | 现有页面=身份;字段=账号身份、图标PNG、图标PNG、图标PNG、操作查询条件=身份名称、身份分组、状态、更新时间MVP用途=识别官方、品牌、达人、风险、客服等用户身份 | 1. 点击一级模块“现有ERP”。\n2. 在现有页面与当前字段区域定位“身份管理”。\n3. 核对现有页面名称是否为“身份”。\n4. 展开字段详情逐项核对字段账号身份、图标PNG、图标PNG、图标PNG、操作。\n5. 在查询条件区按“身份名称、身份分组、状态、更新时间”组合输入筛选值。\n6. 点击“生成字段表”。\n7. 点击“导出现有关系”。 | 1. “身份管理”显示在现有ERP字段关系区域。\n2. 字段、查询条件、关系对象、MVP纳入方式均能展示。\n3. 生成字段表后可看到新增字段明细。\n4. 导出关系时文件只包含当前模块关系,不混入无关模块。 | 字段表包含页面ID、现有页面、模块、现有表格字段、现有查询条件、关系对象、MVP纳入方式导出记录写入审计。 | 只有系统管理员/负责人可生成字段表和导出现有关系普通客服不可导出现有ERP字段。 | 现有ERP字段能作为MVP建模依据字段关系可查看、可导出、可审计。 | 01-用户身份与上下文00-系统总览 数据所有权 | 现有ERP字段关系身份管理按钮生成字段表、导出现有关系 | 待执行\nTC-PROTO-0043 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 异常场景 | 身份管理查询条件组合无结果时显示空状态 | P3 | 已进入现有ERP“身份管理”关系页面用户有查询权限。 | 查询条件=身份名称、身份分组、状态、更新时间;输入值=不存在的标签/身份/国家组合 | 1. 在“身份管理”查询区域输入一个不存在的关键词,例如 ZZZ-NOT-FOUND。\n2. 选择一个与页面不匹配的状态或标签分类。\n3. 点击查询。\n4. 查看字段表、关系对象和MVP纳入方式区域。\n5. 点击重置。 | 1. 查询结果为空时页面显示暂无数据或空状态提示。\n2. 不应出现脚本错误、字段错位或沿用上一次结果。\n3. 点击重置后恢复默认数据。 | 空结果不生成脏数据;重置后查询条件和结果恢复默认。 | 用户只能查询有权限的数据范围;无权限字段应脱敏或不可见。 | 无结果场景可理解、可恢复,不污染已有字段关系。 | README 权限要求00-系统总览 单一数据源 | 查询需求矩阵;筛选;重置 | 待执行\nTC-PROTO-0044 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 用户标签关系用于人群圈选、用户画像、风险过滤 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 用户标签;关系类型=多对多;用途=人群圈选、用户画像、风险过滤 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 用户标签”。\n4. 查看关系类型是否显示为“多对多”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“人群圈选、用户画像、风险过滤”。 | 1. 关系“用户 - 用户标签”存在。\n2. 类型展示为“多对多”。\n3. 详情能说明该关系服务于“人群圈选、用户画像、风险过滤”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 用户标签 | 待执行\nTC-PROTO-0045 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 身份关系用于官方、品牌、达人、客服、风险身份识别 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 身份;关系类型=待确认:一对多或多对多;用途=官方、品牌、达人、客服、风险身份识别 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 身份”。\n4. 查看关系类型是否显示为“待确认:一对多或多对多”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“官方、品牌、达人、客服、风险身份识别”。 | 1. 关系“用户 - 身份”存在。\n2. 类型展示为“待确认:一对多或多对多”。\n3. 详情能说明该关系服务于“官方、品牌、达人、客服、风险身份识别”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 身份 | 待执行\nTC-PROTO-0046 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 产品关系用于测评用户池、客服定位 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 产品;关系类型=绑定/连接产品;用途=测评用户池、客服定位 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 产品”。\n4. 查看关系类型是否显示为“绑定/连接产品”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“测评用户池、客服定位”。 | 1. 关系“用户 - 产品”存在。\n2. 类型展示为“绑定/连接产品”。\n3. 详情能说明该关系服务于“测评用户池、客服定位”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 产品 | 待执行\nTC-PROTO-0047 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验产品 - 产品标签 - Listing关系用于Listing 健康策略、ASIN 归因 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=产品 - 产品标签 - Listing关系类型=产品分层;用途=Listing 健康策略、ASIN 归因 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“产品 - 产品标签 - Listing”。\n4. 查看关系类型是否显示为“产品分层”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“Listing 健康策略、ASIN 归因”。 | 1. 关系“产品 - 产品标签 - Listing”存在。\n2. 类型展示为“产品分层”。\n3. 详情能说明该关系服务于“Listing 健康策略、ASIN 归因”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:产品 - 产品标签 - Listing | 待执行\nTC-PROTO-0048 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 活动关系用于KOC/KOL、私域运营沉淀 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 活动;关系类型=活动参与;用途=KOC/KOL、私域运营沉淀 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 活动”。\n4. 查看关系类型是否显示为“活动参与”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“KOC/KOL、私域运营沉淀”。 | 1. 关系“用户 - 活动”存在。\n2. 类型展示为“活动参与”。\n3. 详情能说明该关系服务于“KOC/KOL、私域运营沉淀”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 活动 | 待执行\nTC-PROTO-0049 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 推送关系用于IM/EDM/TEL/App Push 频控、点击、回复、退订 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 推送;关系类型=一对多;用途=IM/EDM/TEL/App Push 频控、点击、回复、退订 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 推送”。\n4. 查看关系类型是否显示为“一对多”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“IM/EDM/TEL/App Push 频控、点击、回复、退订”。 | 1. 关系“用户 - 推送”存在。\n2. 类型展示为“一对多”。\n3. 详情能说明该关系服务于“IM/EDM/TEL/App Push 频控、点击、回复、退订”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 推送 | 待执行\nTC-PROTO-0050 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-关系图谱 | 用户身份与上下文 | 数据校验 | 关系图谱校验用户 - 风险/黑名单关系用于诈骗同步、客服升级、风险用户隔离 | P2 | 系统管理员进入 v10 原型的现有ERP模块关系图谱区域已展示。 | 关系=用户 - 风险/黑名单;关系类型=风险隔离;用途=诈骗同步、客服升级、风险用户隔离 | 1. 进入“现有ERP”。\n2. 滚动到“关系图谱”区域。\n3. 定位关系“用户 - 风险/黑名单”。\n4. 查看关系类型是否显示为“风险隔离”。\n5. 点击该关系行的查看/展开操作。\n6. 检查弹出的关系详情中是否说明“诈骗同步、客服升级、风险用户隔离”。 | 1. 关系“用户 - 风险/黑名单”存在。\n2. 类型展示为“风险隔离”。\n3. 详情能说明该关系服务于“诈骗同步、客服升级、风险用户隔离”。\n4. 关闭详情后返回关系图谱不丢失当前位置。 | 关系对象、类型、用途和来源页面字段一致;待确认关系必须标注待确认,不能当作已定规则。 | 只有系统管理员/负责人能查看完整关系;普通运营只看业务可用摘要。 | 关系图谱可支撑用户画像、人群圈选、风险过滤和触达频控建模。 | 00-系统总览 子系统数据所有权01-用户身份与上下文 | 关系图谱:用户 - 风险/黑名单 | 待执行\nTC-PROTO-0051 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行用户主档查询并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=用户主档查询;查询条件=JOYHUB ID、用户名、邮箱后缀、国家、性别、注册/活跃时间;预期输出=用户主档、标签、身份、产品关系、近期活跃;使用页面=用户中心 / 客服中心 / 风险中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“用户主档查询”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入JOYHUB ID、用户名、邮箱后缀、国家、性别、注册/活跃时间。\n5. 点击查询。\n6. 查看结果区是否输出:用户主档、标签、身份、产品关系、近期活跃。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “用户主档查询”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“用户主档、标签、身份、产品关系、近期活跃”。\n4. 跳转到“用户中心 / 客服中心 / 风险中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:用户主档查询 | 待执行\nTC-PROTO-0052 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行推送前人群圈选并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=推送前人群圈选;查询条件=标签、身份、国家、渠道、产品绑定/连接、活动、EDM近7天次数预期输出=候选用户数、预计触达、频控风险、可保存人群包;使用页面=计划中心 / 推送中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“推送前人群圈选”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入:标签、身份、国家、渠道、产品绑定/连接、活动、EDM近7天次数。\n5. 点击查询。\n6. 查看结果区是否输出:候选用户数、预计触达、频控风险、可保存人群包。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “推送前人群圈选”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“候选用户数、预计触达、频控风险、可保存人群包”。\n4. 跳转到“计划中心 / 推送中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:推送前人群圈选 | 待执行\nTC-PROTO-0053 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行测评与真实评价跟踪人群并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=测评与真实评价跟踪人群;查询条件=ASIN/Listing、产品绑定、连接产品、最近活跃、国家/站点、风险身份排除;预期输出=推荐用户池、排除用户池、进入计划中心;使用页面=需求中心 / 计划中心 / 客服中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“测评与真实评价跟踪人群”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入ASIN/Listing、产品绑定、连接产品、最近活跃、国家/站点、风险身份排除。\n5. 点击查询。\n6. 查看结果区是否输出:推荐用户池、排除用户池、进入计划中心。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “测评与真实评价跟踪人群”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“推荐用户池、排除用户池、进入计划中心”。\n4. 跳转到“需求中心 / 计划中心 / 客服中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:测评与真实评价跟踪人群 | 待执行\nTC-PROTO-0054 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行标签覆盖查询并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=标签覆盖查询;查询条件=标签分类、打标方式、覆盖人数、最新打标时间、状态;预期输出=标签列表、覆盖趋势、异常覆盖提示;使用页面=现有ERP / 数据中心 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“标签覆盖查询”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入:标签分类、打标方式、覆盖人数、最新打标时间、状态。\n5. 点击查询。\n6. 查看结果区是否输出:标签列表、覆盖趋势、异常覆盖提示。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “标签覆盖查询”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“标签列表、覆盖趋势、异常覆盖提示”。\n4. 跳转到“现有ERP / 数据中心”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:标签覆盖查询 | 待执行\nTC-PROTO-0055 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-查询需求矩阵 | 用户身份与上下文 | 流程测试 | 查询需求矩阵执行身份风险查询并校验输出用途 | P1 | 系统管理员或用户运营负责人打开 v10 原型现有ERP模块的查询需求矩阵已展示。 | 查询场景=身份风险查询;查询条件=身份名称、身份分组、风险等级、状态;预期输出=风险用户池、客服/推送排除名单、黑名单同步候选;使用页面=风险中心 / 系统管理 | 1. 进入“现有ERP”模块。\n2. 在“查询需求矩阵”中定位“身份风险查询”。\n3. 点击该查询场景的查看/进入处理按钮。\n4. 按原型列出的查询条件输入:身份名称、身份分组、风险等级、状态。\n5. 点击查询。\n6. 查看结果区是否输出:风险用户池、客服/推送排除名单、黑名单同步候选。\n7. 点击“保存人群包”或“进入计划中心/风险中心”相关入口。 | 1. “身份风险查询”可从矩阵进入。\n2. 查询条件与原型字段一致。\n3. 结果输出符合“风险用户池、客服/推送排除名单、黑名单同步候选”。\n4. 跳转到“风险中心 / 系统管理”时携带当前查询上下文。 | 候选用户数、排除用户池、风险身份、EDM近7天次数等统计与筛选条件一致保存人群包生成唯一ID。 | 客服只能查看客服定位所需字段;风险负责人可查看风险身份;系统管理员可查看完整字段,邮箱/设备仍默认脱敏。 | 查询矩阵能从现有ERP字段转化为MVP业务查询能力。 | 01-用户身份与上下文03-额度与频控04-多渠道触达 | 查询需求矩阵:身份风险查询 | 待执行\nTC-PROTO-0056 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行新建账号并校验权限与审计 | P1 | 用户以系统管理员身份登录;系统资产模块可访问;系统管理列表包含“新建账号”。 | 动作=新建账号;说明=按部门、角色、站点、数据范围开通账号;预期=账号创建后出现在系统管理列表 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“新建账号”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:按部门、角色、站点、数据范围开通账号。\n6. 提交后进入审计日志,按动作类型筛选“新建账号”。 | 1. 有权限角色可完成“新建账号”。\n2. 执行结果符合“账号创建后出现在系统管理列表”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 新建账号仅对系统管理员开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:新建账号;权限分配;审计日志 | 待执行\nTC-PROTO-0057 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行离职管理并校验权限与审计 | P1 | 用户以系统管理员身份登录;系统资产模块可访问;系统管理列表包含“离职管理”。 | 动作=离职管理;说明=停用账号、交接任务、回收敏感权限;预期=离职账号不可登录且任务已交接 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“离职管理”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:停用账号、交接任务、回收敏感权限。\n6. 提交后进入审计日志,按动作类型筛选“离职管理”。 | 1. 有权限角色可完成“离职管理”。\n2. 执行结果符合“离职账号不可登录且任务已交接”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 离职管理仅对系统管理员开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:离职管理;权限分配;审计日志 | 待执行\nTC-PROTO-0058 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行权限分配并校验权限与审计 | P1 | 用户以系统管理员/负责人身份登录;系统资产模块可访问;系统管理列表包含“权限分配”。 | 动作=权限分配;说明=导出、审批、查看敏感信息、黑名单同步独立授权;预期=权限粒度按按钮和数据范围生效 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“权限分配”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:导出、审批、查看敏感信息、黑名单同步独立授权。\n6. 提交后进入审计日志,按动作类型筛选“权限分配”。 | 1. 有权限角色可完成“权限分配”。\n2. 执行结果符合“权限粒度按按钮和数据范围生效”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 权限分配仅对系统管理员/负责人开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:权限分配;权限分配;审计日志 | 待执行\nTC-PROTO-0059 | user_erp_mvp_admin_prototype_v10(1).html | 系统资产-系统管理 | 审计与通知中心 | 权限校验 | 系统管理执行审计日志并校验权限与审计 | P1 | 用户以系统管理员/审计角色身份登录;系统资产模块可访问;系统管理列表包含“审计日志”。 | 动作=审计日志;说明=导出、查看敏感信息、黑名单同步、审批动作;预期=每个敏感动作有日志ID和操作者 | 1. 点击一级模块“系统资产”。\n2. 进入“系统管理”。\n3. 定位配置项“审计日志”。\n4. 点击对应操作按钮。\n5. 按页面说明执行:导出、查看敏感信息、黑名单同步、审批动作。\n6. 提交后进入审计日志,按动作类型筛选“审计日志”。 | 1. 有权限角色可完成“审计日志”。\n2. 执行结果符合“每个敏感动作有日志ID和操作者”。\n3. 审计日志新增记录,包含动作类型、操作者、时间、影响对象和处理意见。\n4. 无权限角色访问时按钮隐藏或提交被拒绝。 | 账号状态、权限点、任务交接关系和审计日志一致;敏感权限回收后立即生效。 | 审计日志仅对系统管理员/审计角色开放;查看敏感信息、导出、黑名单同步、审批动作需独立授权。 | 权限配置可执行、可追溯、可撤销;离职管理无遗留敏感权限。 | 09-审计与通知中心00-系统总览 角色前端映射 | 系统资产:审计日志;权限分配;审计日志 | 待执行\nTC-PROTO-0060 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看在线客服数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=在线客服数;原型变量=onlineAgents 人;动作=查看当前可用客服池 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“在线客服数”。\n3. 核对指标值单位是否符合“onlineAgents 人”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“在线客服数”显示在客服执行看板。\n2. 点击后进入与“查看当前可用客服池”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量onlineAgents 人;标题:客服执行看板 | 待执行\nTC-PROTO-0061 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看今日工单指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=今日工单;原型变量=todayTickets 单;动作=查看今日进入客服中心的工单总量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“今日工单”。\n3. 核对指标值单位是否符合“todayTickets 单”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“今日工单”显示在客服执行看板。\n2. 点击后进入与“查看今日进入客服中心的工单总量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量todayTickets 单;标题:客服执行看板 | 待执行\nTC-PROTO-0062 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看待处理工单指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=待处理工单;原型变量=pendingTickets 单;动作=查看未关闭/待处理队列 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“待处理工单”。\n3. 核对指标值单位是否符合“pendingTickets 单”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“待处理工单”显示在客服执行看板。\n2. 点击后进入与“查看未关闭/待处理队列”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量pendingTickets 单;标题:客服执行看板 | 待执行\nTC-PROTO-0063 | 客服执行.html | 客服执行看板 | 多渠道触达引擎 | 功能测试 | 客服执行看板查看今日消息指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=今日消息;原型变量=todayMessages 条;动作=查看客服发送和接收消息量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“今日消息”。\n3. 核对指标值单位是否符合“todayMessages 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“今日消息”显示在客服执行看板。\n2. 点击后进入与“查看客服发送和接收消息量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量todayMessages 条;标题:客服执行看板 | 待执行\nTC-PROTO-0064 | 客服执行.html | 客服执行看板 | 评价结果追踪 | 功能测试 | 客服执行看板查看今日获取评价指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=今日获取评价;原型变量=todayReviews 条;动作=查看今日客服转化评价数 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“今日获取评价”。\n3. 核对指标值单位是否符合“todayReviews 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“今日获取评价”显示在客服执行看板。\n2. 点击后进入与“查看今日客服转化评价数”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量todayReviews 条;标题:客服执行看板 | 待执行\nTC-PROTO-0065 | 客服执行.html | 客服执行看板 | 评价结果追踪 | 功能测试 | 客服执行看板查看本月获取评价指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=本月获取评价;原型变量=monthReviews 条;动作=查看月度评价产出 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“本月获取评价”。\n3. 核对指标值单位是否符合“monthReviews 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“本月获取评价”显示在客服执行看板。\n2. 点击后进入与“查看月度评价产出”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量monthReviews 条;标题:客服执行看板 | 待执行\nTC-PROTO-0066 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看排班到岗指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=排班到岗;原型变量=实际/应到 人;动作=查看排班、在线状态和出勤异常 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“排班到岗”。\n3. 核对指标值单位是否符合“实际/应到 人”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“排班到岗”显示在客服执行看板。\n2. 点击后进入与“查看排班、在线状态和出勤异常”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量:实际/应到 人;标题:客服执行看板 | 待执行\nTC-PROTO-0067 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看迟到次数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=迟到次数;原型变量=lateDays 次;动作=查看迟到/早退/请假/缺勤 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“迟到次数”。\n3. 核对指标值单位是否符合“lateDays 次”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“迟到次数”显示在客服执行看板。\n2. 点击后进入与“查看迟到/早退/请假/缺勤”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量lateDays 次;标题:客服执行看板 | 待执行\nTC-PROTO-0068 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看回复用户数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=回复用户数;原型变量=repliedUsers 人;动作=查看回复覆盖用户数 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“回复用户数”。\n3. 核对指标值单位是否符合“repliedUsers 人”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“回复用户数”显示在客服执行看板。\n2. 点击后进入与“查看回复覆盖用户数”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量repliedUsers 人;标题:客服执行看板 | 待执行\nTC-PROTO-0069 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看处理工单数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=处理工单数;原型变量=ticketCount 单;动作=查看处理工单量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“处理工单数”。\n3. 核对指标值单位是否符合“ticketCount 单”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“处理工单数”显示在客服执行看板。\n2. 点击后进入与“查看处理工单量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量ticketCount 单;标题:客服执行看板 | 待执行\nTC-PROTO-0070 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看发送消息数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=发送消息数;原型变量=messageCount 条;动作=查看消息发送量 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“发送消息数”。\n3. 核对指标值单位是否符合“messageCount 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“发送消息数”显示在客服执行看板。\n2. 点击后进入与“查看消息发送量”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量messageCount 条;标题:客服执行看板 | 待执行\nTC-PROTO-0071 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看平均首次回复指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=平均首次回复;原型变量=averageFirstReply 分钟;动作=查看平均首次回复时长 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“平均首次回复”。\n3. 核对指标值单位是否符合“averageFirstReply 分钟”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“平均首次回复”显示在客服执行看板。\n2. 点击后进入与“查看平均首次回复时长”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量averageFirstReply 分钟;标题:客服执行看板 | 待执行\nTC-PROTO-0072 | 客服执行.html | 客服执行看板 | 评价结果追踪 | 功能测试 | 客服执行看板查看RSO/RDO评价数指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=RSO/RDO评价数原型变量=rsoReviews+rdoReviews 条;动作=查看回评/测评转化 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“RSO/RDO评价数”。\n3. 核对指标值单位是否符合“rsoReviews+rdoReviews 条”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“RSO/RDO评价数”显示在客服执行看板。\n2. 点击后进入与“查看回评/测评转化”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量rsoReviews+rdoReviews 条;标题:客服执行看板 | 待执行\nTC-PROTO-0073 | 客服执行.html | 客服执行看板 | 客服工单与管理 | 功能测试 | 客服执行看板查看目标完成率指标并钻取明细 | P1 | 客服主管账号已登录客服执行看板;存在当天排班、工单、消息、评价和绩效数据。 | 指标=目标完成率;原型变量=totalRate动作=查看目标完成进度 | 1. 打开“客服执行看板”。\n2. 在顶部指标区定位“目标完成率”。\n3. 核对指标值单位是否符合“totalRate”。\n4. 点击该指标卡片。\n5. 查看弹出的明细列表或右侧详情。\n6. 将时间范围切换到本月,再回到今日。 | 1. 指标“目标完成率”显示在客服执行看板。\n2. 点击后进入与“查看目标完成进度”一致的明细。\n3. 今日/本月切换后指标重新计算。\n4. 返回看板后指标卡片仍展示最新状态。 | 指标明细总数与卡片汇总一致;首次回复时长单位为分钟,评价数区分 RSO/RDO。 | 客服本人只能看本人指标;组长可看组内;主管/管理员可看团队汇总。 | 客服执行指标可见、可钻取、按周期统计准确。 | 05-客服工单与管理 绩效统计07-评价结果追踪 | React 原型变量totalRate标题客服执行看板 | 待执行\nTC-PROTO-0074 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 用户消息进入工单从待分配执行自动分配流转到已分配 | P1 | 客服系统存在来源为“用户消息进入”的工单;当前状态为“待分配”;用户上下文卡可查询或降级展示。 | 来源=用户消息进入;起始状态=待分配;操作=自动分配;目标状态=已分配 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“用户消息进入”。\n3. 打开状态为“待分配”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“自动分配”:在线客服池按班次+在线状态+当前负载+最大工单数分配。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“用户消息进入”和当前状态“待分配”。\n2. 执行“自动分配”后状态变为“已分配”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0075 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 推送转人工工单从待分配执行手动分配流转到已分配 | P1 | 客服系统存在来源为“推送转人工”的工单;当前状态为“待分配”;用户上下文卡可查询或降级展示。 | 来源=推送转人工;起始状态=待分配;操作=手动分配;目标状态=已分配 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“推送转人工”。\n3. 打开状态为“待分配”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“手动分配”:组长选择在线且未满载客服。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“推送转人工”和当前状态“待分配”。\n2. 执行“手动分配”后状态变为“已分配”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0076 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 售后触发工单从已分配执行首次回复流转到处理中 | P1 | 客服系统存在来源为“售后触发”的工单;当前状态为“已分配”;用户上下文卡可查询或降级展示。 | 来源=售后触发;起始状态=已分配;操作=首次回复;目标状态=处理中 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“售后触发”。\n3. 打开状态为“已分配”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“首次回复”:客服查看用户上下文后发送第一条回复。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“售后触发”和当前状态“已分配”。\n2. 执行“首次回复”后状态变为“处理中”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0077 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 风险触发工单从处理中执行标记疑似诈骗流转到疑似诈骗 | P1 | 客服系统存在来源为“风险触发”的工单;当前状态为“处理中”;用户上下文卡可查询或降级展示。 | 来源=风险触发;起始状态=处理中;操作=标记疑似诈骗;目标状态=疑似诈骗 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“风险触发”。\n3. 打开状态为“处理中”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“标记疑似诈骗”:客服在工单处理结果中选择疑似诈骗。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“风险触发”和当前状态“处理中”。\n2. 执行“标记疑似诈骗”后状态变为“疑似诈骗”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0078 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 电话后续工单从处理中执行等待用户回复流转到等待用户 | P1 | 客服系统存在来源为“电话后续”的工单;当前状态为“处理中”;用户上下文卡可查询或降级展示。 | 来源=电话后续;起始状态=处理中;操作=等待用户回复;目标状态=等待用户 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“电话后续”。\n3. 打开状态为“处理中”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“等待用户回复”:客服记录通话后等待用户补充订单号。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“电话后续”和当前状态“处理中”。\n2. 执行“等待用户回复”后状态变为“等待用户”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0079 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 用户答应配合工单从处理中执行创建跟进任务流转到待提醒 | P1 | 客服系统存在来源为“用户答应配合”的工单;当前状态为“处理中”;用户上下文卡可查询或降级展示。 | 来源=用户答应配合;起始状态=处理中;操作=创建跟进任务;目标状态=待提醒 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“用户答应配合”。\n3. 打开状态为“处理中”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“创建跟进任务”:客服将答应配合状态置为已答应并设置负责人。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“用户答应配合”和当前状态“处理中”。\n2. 执行“创建跟进任务”后状态变为“待提醒”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0080 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 等待提交工单从待提醒执行提醒用户流转到等待提交 | P1 | 客服系统存在来源为“等待提交”的工单;当前状态为“待提醒”;用户上下文卡可查询或降级展示。 | 来源=等待提交;起始状态=待提醒;操作=提醒用户;目标状态=等待提交 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“等待提交”。\n3. 打开状态为“待提醒”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“提醒用户”:到期前客服发送提醒消息。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“等待提交”和当前状态“待提醒”。\n2. 执行“提醒用户”后状态变为“等待提交”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0081 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 用户提交评价工单从等待提交执行登记提交事实流转到已提交 | P1 | 客服系统存在来源为“用户提交评价”的工单;当前状态为“等待提交”;用户上下文卡可查询或降级展示。 | 来源=用户提交评价;起始状态=等待提交;操作=登记提交事实;目标状态=已提交 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“用户提交评价”。\n3. 打开状态为“等待提交”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“登记提交事实”:客服上传截图/链接并关联计划和ASIN。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“用户提交评价”和当前状态“等待提交”。\n2. 执行“登记提交事实”后状态变为“已提交”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0082 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 评价核验完成工单从已提交执行关闭工单流转到已关闭 | P1 | 客服系统存在来源为“评价核验完成”的工单;当前状态为“已提交”;用户上下文卡可查询或降级展示。 | 来源=评价核验完成;起始状态=已提交;操作=关闭工单;目标状态=已关闭 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“评价核验完成”。\n3. 打开状态为“已提交”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“关闭工单”:评价展示确认后客服将工单置为已解决并关闭。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“评价核验完成”和当前状态“已提交”。\n2. 执行“关闭工单”后状态变为“已关闭”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0083 | 客服执行.html | 客服工单生命周期 | 客服工单与管理 | 流程测试 | 超时未提交工单从等待提交执行需再次联系流转到需再次联系 | P1 | 客服系统存在来源为“超时未提交”的工单;当前状态为“等待提交”;用户上下文卡可查询或降级展示。 | 来源=超时未提交;起始状态=等待提交;操作=需再次联系;目标状态=需再次联系 | 1. 打开客服执行看板。\n2. 在工单列表按来源筛选“超时未提交”。\n3. 打开状态为“等待提交”的工单详情。\n4. 查看用户上下文卡、历史聊天、历史评价和风险提示。\n5. 执行业务动作“需再次联系”:超过答应配合期限后生成再次联系任务。\n6. 保存处理结果并返回工单列表。\n7. 再次筛选该工单,查看当前状态。 | 1. 工单详情展示来源“超时未提交”和当前状态“等待提交”。\n2. 执行“需再次联系”后状态变为“需再次联系”。\n3. 处理记录写入 support_followups 或 support_tickets。\n4. 工单列表、看板待处理数和绩效统计同步更新。 | support_tickets.status、support_followups.status、support_assignment_logs 或绩效快照按动作更新;状态不得跳过必要节点。 | 客服只能处理分配给自己的工单;组长可改派;风险相关动作需组长或风险负责人确认。 | 工单状态流转符合待分配→已分配→处理中→等待用户/等待内部→已解决/疑似诈骗→已关闭规则。 | 05-客服工单与管理 M1/M2/M3 | 客服执行.html客服执行看板工单/回复/评价/目标指标 | 待执行\nTC-PROTO-0084 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:自动分配无在线客服 | P2 | 客服执行看板可用;准备异常条件:所有排班客服均离线或满载。 | 异常=自动分配无在线客服;条件=所有排班客服均离线或满载 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:所有排班客服均离线或满载。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“自动分配无在线客服”。\n2. 处理结果为:工单留在公共池并提醒组长。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:自动分配无在线客服 | 待执行\nTC-PROTO-0085 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:分配给离线客服 | P2 | 客服执行看板可用;准备异常条件:客服在线状态在分配前变为离线。 | 异常=分配给离线客服;条件=客服在线状态在分配前变为离线 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:客服在线状态在分配前变为离线。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“分配给离线客服”。\n2. 处理结果为:阻止分配并要求重新选择。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:分配给离线客服 | 待执行\nTC-PROTO-0086 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:当前负载超过最大工单数 | P2 | 客服执行看板可用;准备异常条件:客服未关闭工单数达到上限。 | 异常=当前负载超过最大工单数;条件=客服未关闭工单数达到上限 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:客服未关闭工单数达到上限。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“当前负载超过最大工单数”。\n2. 处理结果为:自动跳过该客服。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:当前负载超过最大工单数 | 待执行\nTC-PROTO-0087 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:用户上下文卡查询失败 | P2 | 客服执行看板可用准备异常条件identity 服务超时。 | 异常=用户上下文卡查询失败;条件=identity 服务超时 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单identity 服务超时。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“用户上下文卡查询失败”。\n2. 处理结果为:工单可继续处理但显示上下文数据可能过期。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:用户上下文卡查询失败 | 待执行\nTC-PROTO-0088 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:首次回复为空 | P2 | 客服执行看板可用;准备异常条件:客服点击发送但消息内容为空。 | 异常=首次回复为空;条件=客服点击发送但消息内容为空 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:客服点击发送但消息内容为空。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“首次回复为空”。\n2. 处理结果为:阻止发送并提示请输入回复内容。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:首次回复为空 | 待执行\nTC-PROTO-0089 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:关闭工单未选择处理结果 | P2 | 客服执行看板可用;准备异常条件:点击关闭但未选择已解决/拒绝/疑似诈骗等结果。 | 异常=关闭工单未选择处理结果;条件=点击关闭但未选择已解决/拒绝/疑似诈骗等结果 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:点击关闭但未选择已解决/拒绝/疑似诈骗等结果。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“关闭工单未选择处理结果”。\n2. 处理结果为:阻止关闭。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:关闭工单未选择处理结果 | 待执行\nTC-PROTO-0090 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:登记评价缺少证据 | P2 | 客服执行看板可用;准备异常条件:用户声称已评价但未上传截图或链接。 | 异常=登记评价缺少证据;条件=用户声称已评价但未上传截图或链接 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:用户声称已评价但未上传截图或链接。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“登记评价缺少证据”。\n2. 处理结果为:不允许进入已提交状态。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:登记评价缺少证据 | 待执行\nTC-PROTO-0091 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:答应配合任务超期 | P2 | 客服执行看板可用准备异常条件deadline_at 已过且无提交记录。 | 异常=答应配合任务超期;条件=deadline_at 已过且无提交记录 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单deadline_at 已过且无提交记录。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“答应配合任务超期”。\n2. 处理结果为:状态变为超时并生成需再次联系。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:答应配合任务超期 | 待执行\nTC-PROTO-0092 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:风险状态确认诈骗 | P2 | 客服执行看板可用准备异常条件risk 返回确认诈骗。 | 异常=风险状态确认诈骗;条件=risk 返回确认诈骗 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单risk 返回确认诈骗。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“风险状态确认诈骗”。\n2. 处理结果为:工单自动或人工确认后关闭并同步黑名单候选。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:风险状态确认诈骗 | 待执行\nTC-PROTO-0093 | 客服执行.html | 客服异常处理 | 客服工单与管理 | 异常场景 | 客服执行异常场景:重复创建同用户打开工单 | P2 | 客服执行看板可用;准备异常条件:同 person_id 已存在 open 工单。 | 异常=重复创建同用户打开工单;条件=同 person_id 已存在 open 工单 | 1. 进入客服执行看板。\n2. 构造或选择满足条件的工单:同 person_id 已存在 open 工单。\n3. 按正常处理路径执行对应动作。\n4. 观察页面提示、工单状态和待办数量。\n5. 打开工单详情的处理记录。 | 1. 系统识别异常“重复创建同用户打开工单”。\n2. 处理结果为:新工单关联已有工单或提示合并。\n3. 不产生错误状态或重复工单。\n4. 异常处理记录可在工单详情中查看。 | 异常前后 support_tickets、support_followups、assignment_logs 数据一致;不应出现状态倒退或重复计数。 | 无权限客服不得绕过异常限制;组长/主管可进行改派、关闭、风险升级等授权动作。 | 异常被明确提示并进入可追踪处理路径,不影响其他工单。 | 05-客服工单与管理 业务澄清与状态规则 | 客服执行看板异常:重复创建同用户打开工单 | 待执行\nTC-PROTO-0094 | 用户运营系统-单文件.html | 工作台 | 系统总览 | UI/交互测试 | 单文件系统路由#/dashboard进入Dashboard页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由当前账号拥有Dashboard访问权限。 | 路由=#/dashboard页面=Dashboard用途=查看经营指标、待办、风险、评价进度 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/dashboard”或从侧边菜单点击“Dashboard”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“Dashboard”页面。 | 1. 页面成功进入“Dashboard”。\n2. 当前菜单高亮,页面内容与“查看经营指标、待办、风险、评价进度”一致。\n3. 刷新后 hash 路由不丢失仍展示“Dashboard”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备Dashboard访问权限的角色能进入该页面无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/dashboard | 待执行\nTC-PROTO-0095 | 用户运营系统-单文件.html | 需求管理 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/demand进入需求中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有需求中心访问权限。 | 路由=#/demand页面=需求中心;用途=创建/评估/驳回/转计划 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/demand”或从侧边菜单点击“需求中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“需求中心”页面。 | 1. 页面成功进入“需求中心”。\n2. 当前菜单高亮,页面内容与“创建/评估/驳回/转计划”一致。\n3. 刷新后 hash 路由不丢失,仍展示“需求中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备需求中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/demand | 待执行\nTC-PROTO-0096 | 用户运营系统-单文件.html | 计划审核 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/plan/review进入计划审核页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有计划审核访问权限。 | 路由=#/plan/review页面=计划审核;用途=提交审批、通过、驳回、待补充 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/plan/review”或从侧边菜单点击“计划审核”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“计划审核”页面。 | 1. 页面成功进入“计划审核”。\n2. 当前菜单高亮,页面内容与“提交审批、通过、驳回、待补充”一致。\n3. 刷新后 hash 路由不丢失,仍展示“计划审核”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备计划审核访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/plan/review | 待执行\nTC-PROTO-0097 | 用户运营系统-单文件.html | 计划管理 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/plan进入计划中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有计划中心访问权限。 | 路由=#/plan页面=计划中心;用途=生成计划、拆分计划项、执行中/暂停/终止 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/plan”或从侧边菜单点击“计划中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“计划中心”页面。 | 1. 页面成功进入“计划中心”。\n2. 当前菜单高亮,页面内容与“生成计划、拆分计划项、执行中/暂停/终止”一致。\n3. 刷新后 hash 路由不丢失,仍展示“计划中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备计划中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/plan | 待执行\nTC-PROTO-0098 | 用户运营系统-单文件.html | Listing健康 | 需求与计划管理 | UI/交互测试 | 单文件系统路由#/asin进入ASIN/Listing页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由当前账号拥有ASIN/Listing访问权限。 | 路由=#/asin页面=ASIN/Listing用途=查看评分、评价数、健康状态、紧急策略 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/asin”或从侧边菜单点击“ASIN/Listing”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“ASIN/Listing”页面。 | 1. 页面成功进入“ASIN/Listing”。\n2. 当前菜单高亮,页面内容与“查看评分、评价数、健康状态、紧急策略”一致。\n3. 刷新后 hash 路由不丢失仍展示“ASIN/Listing”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备ASIN/Listing访问权限的角色能进入该页面无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/asin | 待执行\nTC-PROTO-0099 | 用户运营系统-单文件.html | 用户上下文 | 用户身份与上下文 | UI/交互测试 | 单文件系统路由#/user进入用户中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有用户中心访问权限。 | 路由=#/user页面=用户中心;用途=用户主档、标签、身份、产品、活动、触达历史 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/user”或从侧边菜单点击“用户中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“用户中心”页面。 | 1. 页面成功进入“用户中心”。\n2. 当前菜单高亮,页面内容与“用户主档、标签、身份、产品、活动、触达历史”一致。\n3. 刷新后 hash 路由不丢失,仍展示“用户中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备用户中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/user | 待执行\nTC-PROTO-0100 | 用户运营系统-单文件.html | 额度管理 | 额度与频控 | UI/交互测试 | 单文件系统路由#/quota进入额度频控页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有额度频控访问权限。 | 路由=#/quota页面=额度频控;用途=额度查询、预占、确认、释放、终校 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/quota”或从侧边菜单点击“额度频控”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“额度频控”页面。 | 1. 页面成功进入“额度频控”。\n2. 当前菜单高亮,页面内容与“额度查询、预占、确认、释放、终校”一致。\n3. 刷新后 hash 路由不丢失,仍展示“额度频控”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备额度频控访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/quota | 待执行\nTC-PROTO-0101 | 用户运营系统-单文件.html | 多渠道触达 | 多渠道触达引擎 | UI/交互测试 | 单文件系统路由#/outreach进入推送/触达页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有推送/触达访问权限。 | 路由=#/outreach页面=推送/触达;用途=IM/EDM/APP/TEL 路由、去重、发送、追踪 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/outreach”或从侧边菜单点击“推送/触达”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“推送/触达”页面。 | 1. 页面成功进入“推送/触达”。\n2. 当前菜单高亮页面内容与“IM/EDM/APP/TEL 路由、去重、发送、追踪”一致。\n3. 刷新后 hash 路由不丢失,仍展示“推送/触达”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备推送/触达访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/outreach | 待执行\nTC-PROTO-0102 | 用户运营系统-单文件.html | 工单管理 | 客服工单与管理 | UI/交互测试 | 单文件系统路由#/support进入客服中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有客服中心访问权限。 | 路由=#/support页面=客服中心;用途=工单创建、分配、处理、跟进 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/support”或从侧边菜单点击“客服中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“客服中心”页面。 | 1. 页面成功进入“客服中心”。\n2. 当前菜单高亮,页面内容与“工单创建、分配、处理、跟进”一致。\n3. 刷新后 hash 路由不丢失,仍展示“客服中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备客服中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/support | 待执行\nTC-PROTO-0103 | 用户运营系统-单文件.html | 风险反欺诈 | 风险与反欺诈 | UI/交互测试 | 单文件系统路由#/risk进入风险中心页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有风险中心访问权限。 | 路由=#/risk页面=风险中心;用途=风险信号、强弱关联、黑名单、复核 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/risk”或从侧边菜单点击“风险中心”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“风险中心”页面。 | 1. 页面成功进入“风险中心”。\n2. 当前菜单高亮,页面内容与“风险信号、强弱关联、黑名单、复核”一致。\n3. 刷新后 hash 路由不丢失,仍展示“风险中心”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备风险中心访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/risk | 待执行\nTC-PROTO-0104 | 用户运营系统-单文件.html | 评价结果 | 评价结果追踪 | UI/交互测试 | 单文件系统路由#/review进入评价追踪页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有评价追踪访问权限。 | 路由=#/review页面=评价追踪;用途=提交记录、Amazon展示核验、异常观察 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/review”或从侧边菜单点击“评价追踪”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“评价追踪”页面。 | 1. 页面成功进入“评价追踪”。\n2. 当前菜单高亮页面内容与“提交记录、Amazon展示核验、异常观察”一致。\n3. 刷新后 hash 路由不丢失,仍展示“评价追踪”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备评价追踪访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/review | 待执行\nTC-PROTO-0105 | 用户运营系统-单文件.html | 达人协作 | KOC/KOL协作 | UI/交互测试 | 单文件系统路由#/creator进入KOC/KOL页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由当前账号拥有KOC/KOL访问权限。 | 路由=#/creator页面=KOC/KOL用途=免评计划、内容、CODE、JOYCOLLAB同步 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/creator”或从侧边菜单点击“KOC/KOL”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“KOC/KOL”页面。 | 1. 页面成功进入“KOC/KOL”。\n2. 当前菜单高亮页面内容与“免评计划、内容、CODE、JOYCOLLAB同步”一致。\n3. 刷新后 hash 路由不丢失仍展示“KOC/KOL”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备KOC/KOL访问权限的角色能进入该页面无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/creator | 待执行\nTC-PROTO-0106 | 用户运营系统-单文件.html | 审计与通知 | 审计与通知中心 | UI/交互测试 | 单文件系统路由#/audit进入审计通知页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有审计通知访问权限。 | 路由=#/audit页面=审计通知;用途=状态变更、敏感访问、通知告警 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/audit”或从侧边菜单点击“审计通知”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“审计通知”页面。 | 1. 页面成功进入“审计通知”。\n2. 当前菜单高亮,页面内容与“状态变更、敏感访问、通知告警”一致。\n3. 刷新后 hash 路由不丢失,仍展示“审计通知”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备审计通知访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/audit | 待执行\nTC-PROTO-0107 | 用户运营系统-单文件.html | 权限配置 | 审计与通知中心 | UI/交互测试 | 单文件系统路由#/system进入系统管理页面 | P1 | 用户已登录 USER评价业务闭环系统浏览器地址支持 hash 路由;当前账号拥有系统管理访问权限。 | 路由=#/system页面=系统管理;用途=用户角色、权限、数据范围、导出授权 | 1. 在浏览器打开用户运营系统单文件原型。\n2. 将地址 hash 修改为“#/system”或从侧边菜单点击“系统管理”。\n3. 等待页面渲染完成。\n4. 检查页面标题、面包屑、主按钮、筛选区和列表区域。\n5. 刷新浏览器页面。\n6. 再次确认仍停留在“系统管理”页面。 | 1. 页面成功进入“系统管理”。\n2. 当前菜单高亮,页面内容与“用户角色、权限、数据范围、导出授权”一致。\n3. 刷新后 hash 路由不丢失,仍展示“系统管理”。\n4. 无权限时应显示无权限或返回默认工作台。 | 路由、菜单高亮、页面状态和当前用户权限一致;刷新后筛选默认值正确。 | 只有具备系统管理访问权限的角色能进入该页面;无权限角色不能通过直接输入 hash 绕过。 | Hash 路由可访问、可刷新、权限拦截有效。 | 00-系统总览 角色独立前端;对应子系统文档 | 用户运营系统-单文件.html 路由:#/system | 待执行\nTC-PROTO-0108 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心执行创建测评需求并校验业务结果 | P1 | 已进入“需求中心”;当前用户具备执行“创建测评需求”的权限;相关基础数据已准备。 | ASIN=B0TEST001类型=测评;目标数量=20周期=2026-05-01至2026-05-31优先级=P0 | 1. 打开“用户运营系统-单文件.html”的“需求中心”页面。\n2. 点击与“创建测评需求”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据ASIN=B0TEST001类型=测评;目标数量=20周期=2026-05-01至2026-05-31优先级=P0。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “创建测评需求”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“PENDING/EVALUATING”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象demands状态值=PENDING/EVALUATING关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“创建测评需求”;跨站点/跨部门数据需按权限范围过滤。 | 创建测评需求完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:需求中心;动作:创建测评需求 | 待执行\nTC-PROTO-0109 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心执行评估需求为待补充并校验业务结果 | P1 | 已进入“需求中心”;当前用户具备执行“评估需求为待补充”的权限;相关基础数据已准备。 | 需求ID=DEM-001原因=ASIN目标数量缺少依据 | 1. 打开“用户运营系统-单文件.html”的“需求中心”页面。\n2. 点击与“评估需求为待补充”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据需求ID=DEM-001原因=ASIN目标数量缺少依据。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “评估需求为待补充”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“WAITING”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象demands状态值=WAITING关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“评估需求为待补充”;跨站点/跨部门数据需按权限范围过滤。 | 评估需求为待补充完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:需求中心;动作:评估需求为待补充 | 待执行\nTC-PROTO-0110 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心执行驳回不成立需求并校验业务结果 | P1 | 已进入“需求中心”;当前用户具备执行“驳回不成立需求”的权限;相关基础数据已准备。 | 需求ID=DEM-002原因=ASIN评分已达标无需计划 | 1. 打开“用户运营系统-单文件.html”的“需求中心”页面。\n2. 点击与“驳回不成立需求”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据需求ID=DEM-002原因=ASIN评分已达标无需计划。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “驳回不成立需求”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“REJECTED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象demands状态值=REJECTED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“驳回不成立需求”;跨站点/跨部门数据需按权限范围过滤。 | 驳回不成立需求完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:需求中心;动作:驳回不成立需求 | 待执行\nTC-PROTO-0111 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核执行提交测评计划审批并校验业务结果 | P1 | 已进入“计划审核”;当前用户具备执行“提交测评计划审批”的权限;相关基础数据已准备。 | 计划ID=PLAN-001审批链=Amazon运营总监→用户负责人 | 1. 打开“用户运营系统-单文件.html”的“计划审核”页面。\n2. 点击与“提交测评计划审批”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-001审批链=Amazon运营总监→用户负责人。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “提交测评计划审批”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“REVIEW”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象approval_records状态值=REVIEW关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“提交测评计划审批”;跨站点/跨部门数据需按权限范围过滤。 | 提交测评计划审批完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划审核;动作:提交测评计划审批 | 待执行\nTC-PROTO-0112 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核执行审批通过计划并校验业务结果 | P1 | 已进入“计划审核”;当前用户具备执行“审批通过计划”的权限;相关基础数据已准备。 | 计划ID=PLAN-001意见=同意执行;目标评价数=20 | 1. 打开“用户运营系统-单文件.html”的“计划审核”页面。\n2. 点击与“审批通过计划”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-001意见=同意执行;目标评价数=20。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “审批通过计划”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“APPROVED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象approval_records/plans状态值=APPROVED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“审批通过计划”;跨站点/跨部门数据需按权限范围过滤。 | 审批通过计划完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划审核;动作:审批通过计划 | 待执行\nTC-PROTO-0113 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核执行审批驳回计划并校验业务结果 | P1 | 已进入“计划审核”;当前用户具备执行“审批驳回计划”的权限;相关基础数据已准备。 | 计划ID=PLAN-002意见=预算和风险说明不足 | 1. 打开“用户运营系统-单文件.html”的“计划审核”页面。\n2. 点击与“审批驳回计划”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-002意见=预算和风险说明不足。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “审批驳回计划”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“DRAFT/REJECTED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象approval_records/plans状态值=DRAFT/REJECTED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“审批驳回计划”;跨站点/跨部门数据需按权限范围过滤。 | 审批驳回计划完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划审核;动作:审批驳回计划 | 待执行\nTC-PROTO-0114 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 功能测试 | 计划中心执行生成候选用户池并校验业务结果 | P1 | 已进入“计划中心”;当前用户具备执行“生成候选用户池”的权限;相关基础数据已准备。 | 计划ID=PLAN-003ASIN=B0TEST003目标=50人 | 1. 打开“用户运营系统-单文件.html”的“计划中心”页面。\n2. 点击与“生成候选用户池”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-003ASIN=B0TEST003目标=50人。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “生成候选用户池”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“待触达”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象plan_items/quota_reservations状态值=待触达关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“生成候选用户池”;跨站点/跨部门数据需按权限范围过滤。 | 生成候选用户池完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划中心;动作:生成候选用户池 | 待执行\nTC-PROTO-0115 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 功能测试 | 计划中心执行暂停执行中计划并校验业务结果 | P1 | 已进入“计划中心”;当前用户具备执行“暂停执行中计划”的权限;相关基础数据已准备。 | 计划ID=PLAN-004暂停原因=库存异常 | 1. 打开“用户运营系统-单文件.html”的“计划中心”页面。\n2. 点击与“暂停执行中计划”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据计划ID=PLAN-004暂停原因=库存异常。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “暂停执行中计划”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已暂停”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象plans状态值=已暂停关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“暂停执行中计划”;跨站点/跨部门数据需按权限范围过滤。 | 暂停执行中计划完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:计划中心;动作:暂停执行中计划 | 待执行\nTC-PROTO-0116 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 功能测试 | 额度频控执行批量预占额度并校验业务结果 | P1 | 已进入“额度频控”;当前用户具备执行“批量预占额度”的权限;相关基础数据已准备。 | person_ids=10个type=REVIEWplan_id=PLAN-005count=1 | 1. 打开“用户运营系统-单文件.html”的“额度频控”页面。\n2. 点击与“批量预占额度”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_ids=10个type=REVIEWplan_id=PLAN-005count=1。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “批量预占额度”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“RESERVED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象quota_reservations状态值=RESERVED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“批量预占额度”;跨站点/跨部门数据需按权限范围过滤。 | 批量预占额度完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:额度频控;动作:批量预占额度 | 待执行\nTC-PROTO-0117 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 功能测试 | 额度频控执行释放触达失败预占并校验业务结果 | P1 | 已进入“额度频控”;当前用户具备执行“释放触达失败预占”的权限;相关基础数据已准备。 | reservation_id=QR-001释放原因=IM不可达 | 1. 打开“用户运营系统-单文件.html”的“额度频控”页面。\n2. 点击与“释放触达失败预占”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据reservation_id=QR-001释放原因=IM不可达。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “释放触达失败预占”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“RELEASED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象quota_reservations状态值=RELEASED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“释放触达失败预占”;跨站点/跨部门数据需按权限范围过滤。 | 释放触达失败预占完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:额度频控;动作:释放触达失败预占 | 待执行\nTC-PROTO-0118 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达执行执行IM触达并校验业务结果 | P1 | 已进入“推送/触达”当前用户具备执行“执行IM触达”的权限相关基础数据已准备。 | plan_id=PLAN-006channel=IMcontent=回评卡片 | 1. 打开“用户运营系统-单文件.html”的“推送/触达”页面。\n2. 点击与“执行IM触达”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据plan_id=PLAN-006channel=IMcontent=回评卡片。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “执行IM触达”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“OUTBOUND/SENT”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象im_interaction_records状态值=OUTBOUND/SENT关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“执行IM触达”跨站点/跨部门数据需按权限范围过滤。 | 执行IM触达完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:推送/触达动作执行IM触达 | 待执行\nTC-PROTO-0119 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达执行执行EDM触达并校验业务结果 | P1 | 已进入“推送/触达”当前用户具备执行“执行EDM触达”的权限相关基础数据已准备。 | email=user@example.com模板=回评邮件V1 | 1. 打开“用户运营系统-单文件.html”的“推送/触达”页面。\n2. 点击与“执行EDM触达”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据email=user@example.com模板=回评邮件V1。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “执行EDM触达”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“SENT/DELIVERED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象edm_message_events状态值=SENT/DELIVERED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“执行EDM触达”跨站点/跨部门数据需按权限范围过滤。 | 执行EDM触达完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:推送/触达动作执行EDM触达 | 待执行\nTC-PROTO-0120 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达执行用户退订后停止EDM并校验业务结果 | P1 | 已进入“推送/触达”当前用户具备执行“用户退订后停止EDM”的权限相关基础数据已准备。 | person_id=P100event=UNSUBSCRIBED | 1. 打开“用户运营系统-单文件.html”的“推送/触达”页面。\n2. 点击与“用户退订后停止EDM”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P100event=UNSUBSCRIBED。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “用户退订后停止EDM”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“BLOCKED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象edm_message_events/channel_dedup_records状态值=BLOCKED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“用户退订后停止EDM”跨站点/跨部门数据需按权限范围过滤。 | 用户退订后停止EDM完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:推送/触达动作用户退订后停止EDM | 待执行\nTC-PROTO-0121 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 功能测试 | 客服中心执行创建客服工单并校验业务结果 | P1 | 已进入“客服中心”;当前用户具备执行“创建客服工单”的权限;相关基础数据已准备。 | person_id=P200source=IM转人工type=催评 | 1. 打开“用户运营系统-单文件.html”的“客服中心”页面。\n2. 点击与“创建客服工单”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P200source=IM转人工type=催评。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “创建客服工单”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“待分配”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象support_tickets状态值=待分配关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“创建客服工单”;跨站点/跨部门数据需按权限范围过滤。 | 创建客服工单完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:客服中心;动作:创建客服工单 | 待执行\nTC-PROTO-0122 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 功能测试 | 客服中心执行改派工单给组员并校验业务结果 | P1 | 已进入“客服中心”;当前用户具备执行“改派工单给组员”的权限;相关基础数据已准备。 | ticket_id=T001from=组长to=客服Areason=当前负载低 | 1. 打开“用户运营系统-单文件.html”的“客服中心”页面。\n2. 点击与“改派工单给组员”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据ticket_id=T001from=组长to=客服Areason=当前负载低。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “改派工单给组员”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已分配”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象support_assignment_logs状态值=已分配关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“改派工单给组员”;跨站点/跨部门数据需按权限范围过滤。 | 改派工单给组员完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:客服中心;动作:改派工单给组员 | 待执行\nTC-PROTO-0123 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 功能测试 | 风险中心执行强风险拦截并校验业务结果 | P1 | 已进入“风险中心”;当前用户具备执行“强风险拦截”的权限;相关基础数据已准备。 | person_id=P300命中黑名单邮箱和设备 | 1. 打开“用户运营系统-单文件.html”的“风险中心”页面。\n2. 点击与“强风险拦截”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P300命中黑名单邮箱和设备。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “强风险拦截”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“强风险拦截”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象risk_cases/blacklist_entities状态值=强风险拦截关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“强风险拦截”;跨站点/跨部门数据需按权限范围过滤。 | 强风险拦截完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:风险中心;动作:强风险拦截 | 待执行\nTC-PROTO-0124 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 功能测试 | 风险中心执行弱风险人工放行并校验业务结果 | P1 | 已进入“风险中心”;当前用户具备执行“弱风险人工放行”的权限;相关基础数据已准备。 | risk_case=R001原因=家庭共用设备;意见=放行 | 1. 打开“用户运营系统-单文件.html”的“风险中心”页面。\n2. 点击与“弱风险人工放行”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据risk_case=R001原因=家庭共用设备;意见=放行。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “弱风险人工放行”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已放行”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象risk_cases状态值=已放行关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“弱风险人工放行”;跨站点/跨部门数据需按权限范围过滤。 | 弱风险人工放行完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:风险中心;动作:弱风险人工放行 | 待执行\nTC-PROTO-0125 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪执行登记评价提交并校验业务结果 | P1 | 已进入“评价追踪”;当前用户具备执行“登记评价提交”的权限;相关基础数据已准备。 | person_id=P400asin=B0TEST004plan_id=PLAN-007evidence=截图+链接 | 1. 打开“用户运营系统-单文件.html”的“评价追踪”页面。\n2. 点击与“登记评价提交”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据person_id=P400asin=B0TEST004plan_id=PLAN-007evidence=截图+链接。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “登记评价提交”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已提交”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象review_submission_records状态值=已提交关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“登记评价提交”;跨站点/跨部门数据需按权限范围过滤。 | 登记评价提交完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:评价追踪;动作:登记评价提交 | 待执行\nTC-PROTO-0126 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪执行Amazon展示核验成功并校验业务结果 | P1 | 已进入“评价追踪”当前用户具备执行“Amazon展示核验成功”的权限相关基础数据已准备。 | submission_id=SUB001check_method=人工result=DISPLAYED | 1. 打开“用户运营系统-单文件.html”的“评价追踪”页面。\n2. 点击与“Amazon展示核验成功”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据submission_id=SUB001check_method=人工result=DISPLAYED。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “Amazon展示核验成功”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“CONFIRMED”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象review_display_checks/review_results状态值=CONFIRMED关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“Amazon展示核验成功”跨站点/跨部门数据需按权限范围过滤。 | Amazon展示核验成功完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面评价追踪动作Amazon展示核验成功 | 待执行\nTC-PROTO-0127 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪执行Amazon暂不可核验进入观察并校验业务结果 | P1 | 已进入“评价追踪”当前用户具备执行“Amazon暂不可核验进入观察”的权限相关基础数据已准备。 | submission_id=SUB002result=UNVERIFIABLE | 1. 打开“用户运营系统-单文件.html”的“评价追踪”页面。\n2. 点击与“Amazon暂不可核验进入观察”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据submission_id=SUB002result=UNVERIFIABLE。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “Amazon暂不可核验进入观察”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“OBSERVING”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象review_display_checks状态值=OBSERVING关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“Amazon暂不可核验进入观察”跨站点/跨部门数据需按权限范围过滤。 | Amazon暂不可核验进入观察完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面评价追踪动作Amazon暂不可核验进入观察 | 待执行\nTC-PROTO-0128 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 功能测试 | KOC/KOL执行创建免评协作任务并校验业务结果 | P1 | 已进入“KOC/KOL”当前用户具备执行“创建免评协作任务”的权限相关基础数据已准备。 | creator_id=C001ASIN=B0TEST005CODE=KOC20Brief=短视频 | 1. 打开“用户运营系统-单文件.html”的“KOC/KOL”页面。\n2. 点击与“创建免评协作任务”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据creator_id=C001ASIN=B0TEST005CODE=KOC20Brief=短视频。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “创建免评协作任务”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“执行中”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象exemption_plan_tasks/code_records状态值=执行中关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“创建免评协作任务”;跨站点/跨部门数据需按权限范围过滤。 | 创建免评协作任务完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面KOC/KOL动作创建免评协作任务 | 待执行\nTC-PROTO-0129 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 功能测试 | 审计通知执行查看敏感信息审计并校验业务结果 | P1 | 已进入“审计通知”;当前用户具备执行“查看敏感信息审计”的权限;相关基础数据已准备。 | 对象=用户邮箱/设备号;动作=查看完整信息 | 1. 打开“用户运营系统-单文件.html”的“审计通知”页面。\n2. 点击与“查看敏感信息审计”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据:对象=用户邮箱/设备号;动作=查看完整信息。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “查看敏感信息审计”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已记录”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象interaction_audit_logs状态值=已记录关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“查看敏感信息审计”;跨站点/跨部门数据需按权限范围过滤。 | 查看敏感信息审计完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:审计通知;动作:查看敏感信息审计 | 待执行\nTC-PROTO-0130 | 用户运营系统-单文件.html | 系统管理 | 系统管理 | 功能测试 | 系统管理执行分配导出权限并校验业务结果 | P1 | 已进入“系统管理”;当前用户具备执行“分配导出权限”的权限;相关基础数据已准备。 | role=用户运营组长permission=导出计划数据scope=US站点 | 1. 打开“用户运营系统-单文件.html”的“系统管理”页面。\n2. 点击与“分配导出权限”对应的主按钮或列表行操作。\n3. 在表单/弹窗中录入测试数据role=用户运营组长permission=导出计划数据scope=US站点。\n4. 根据页面业务选择确认、提交、保存或审批动作。\n5. 返回列表使用关键词或ID搜索刚才处理的数据。\n6. 打开详情页查看状态流转、关联对象和审计记录。 | 1. “分配导出权限”提交成功。\n2. 列表中可搜索到对应记录。\n3. 记录状态变为“已授权”。\n4. 详情页展示关联计划/用户/ASIN/风险/工单等上下文。\n5. 关键动作写入审计或通知。 | 校验数据写入/更新对象:权限配置/审计日志;状态值=已授权关联ID、创建人、更新时间、处理意见完整。 | 无对应权限时不能看到或不能提交“分配导出权限”;跨站点/跨部门数据需按权限范围过滤。 | 分配导出权限完整落库、状态正确、可追溯、可在相关模块回查。 | 对应子系统需求文档与数据对象章节 | 单文件系统页面:系统管理;动作:分配导出权限 | 待执行\nTC-PROTO-0131 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 异常场景 | 需求中心异常校验创建需求缺少ASIN | P2 | 已进入“需求中心”准备异常数据或异常状态ASIN为空其他字段完整。 | 异常场景=创建需求缺少ASIN异常数据=ASIN为空其他字段完整 | 1. 打开“需求中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据ASIN为空其他字段完整。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“创建需求缺少ASIN”。\n2. 处理结果为提示ASIN必填需求不创建。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面需求中心异常创建需求缺少ASIN | 待执行\nTC-PROTO-0132 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 异常场景 | 需求中心异常校验目标数量为0或负数 | P2 | 已进入“需求中心”准备异常数据或异常状态target_count=0/-1。 | 异常场景=目标数量为0或负数异常数据=target_count=0/-1 | 1. 打开“需求中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据target_count=0/-1。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“目标数量为0或负数”。\n2. 处理结果为提示目标数量必须大于0。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面需求中心异常目标数量为0或负数 | 待执行\nTC-PROTO-0133 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 异常场景 | 计划审核异常校验:审批意见为空驳回 | P2 | 已进入“计划审核”准备异常数据或异常状态decision=驳回comment为空。 | 异常场景=审批意见为空驳回;异常数据=decision=驳回comment为空 | 1. 打开“计划审核”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据decision=驳回comment为空。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“审批意见为空驳回”。\n2. 处理结果为:阻止提交并提示填写驳回原因。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:计划审核;异常:审批意见为空驳回 | 待执行\nTC-PROTO-0134 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 异常场景 | 计划中心异常校验:已终止计划再次启动 | P2 | 已进入“计划中心”准备异常数据或异常状态plan.status=CANCELLED。 | 异常场景=已终止计划再次启动;异常数据=plan.status=CANCELLED | 1. 打开“计划中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据plan.status=CANCELLED。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“已终止计划再次启动”。\n2. 处理结果为:启动按钮不可用或提示不可恢复。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:计划中心;异常:已终止计划再次启动 | 待执行\nTC-PROTO-0135 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 异常场景 | 额度频控异常校验月度测评额度超过4 | P2 | 已进入“额度频控”准备异常数据或异常状态used=4,reserved=0,count=1。 | 异常场景=月度测评额度超过4异常数据=used=4,reserved=0,count=1 | 1. 打开“额度频控”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据used=4,reserved=0,count=1。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“月度测评额度超过4”。\n2. 处理结果为返回exceeded并阻止预占。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面额度频控异常月度测评额度超过4 | 待执行\nTC-PROTO-0136 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 异常场景 | 额度频控异常校验累计评价超过12 | P2 | 已进入“额度频控”准备异常数据或异常状态lifetime_submission=12。 | 异常场景=累计评价超过12异常数据=lifetime_submission=12 | 1. 打开“额度频控”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据lifetime_submission=12。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“累计评价超过12”。\n2. 处理结果为:候选人进入排除池。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面额度频控异常累计评价超过12 | 待执行\nTC-PROTO-0137 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 异常场景 | 额度频控异常校验:发送前终校发现未关闭工单 | P2 | 已进入“额度频控”准备异常数据或异常状态support open ticket exists。 | 异常场景=发送前终校发现未关闭工单;异常数据=support open ticket exists | 1. 打开“额度频控”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据support open ticket exists。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“发送前终校发现未关闭工单”。\n2. 处理结果为:撤出本批次并记录原因。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:额度频控;异常:发送前终校发现未关闭工单 | 待执行\nTC-PROTO-0138 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 异常场景 | 推送/触达异常校验:同计划同用户重复触达 | P2 | 已进入“推送/触达”准备异常数据或异常状态person_id相同、plan_id相同、channel不同。 | 异常场景=同计划同用户重复触达;异常数据=person_id相同、plan_id相同、channel不同 | 1. 打开“推送/触达”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据person_id相同、plan_id相同、channel不同。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“同计划同用户重复触达”。\n2. 处理结果为去重记录BLOCKED。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:推送/触达;异常:同计划同用户重复触达 | 待执行\nTC-PROTO-0139 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 异常场景 | 推送/触达异常校验EDM硬退信 | P2 | 已进入“推送/触达”准备异常数据或异常状态event=HARD_BOUNCED。 | 异常场景=EDM硬退信异常数据=event=HARD_BOUNCED | 1. 打开“推送/触达”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据event=HARD_BOUNCED。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“EDM硬退信”。\n2. 处理结果为:邮箱状态标记不可触达。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:推送/触达异常EDM硬退信 | 待执行\nTC-PROTO-0140 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 异常场景 | 推送/触达异常校验TEL三次未接通 | P2 | 已进入“推送/触达”准备异常数据或异常状态retry_count=3。 | 异常场景=TEL三次未接通异常数据=retry_count=3 | 1. 打开“推送/触达”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据retry_count=3。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“TEL三次未接通”。\n2. 处理结果为降级EDM或关闭电话任务。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:推送/触达异常TEL三次未接通 | 待执行\nTC-PROTO-0141 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 异常场景 | 客服中心异常校验:关闭工单缺少处理结果 | P2 | 已进入“客服中心”准备异常数据或异常状态result为空。 | 异常场景=关闭工单缺少处理结果;异常数据=result为空 | 1. 打开“客服中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据result为空。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“关闭工单缺少处理结果”。\n2. 处理结果为:阻止关闭。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:客服中心;异常:关闭工单缺少处理结果 | 待执行\nTC-PROTO-0142 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 异常场景 | 客服中心异常校验:答应配合超时 | P2 | 已进入“客服中心”准备异常数据或异常状态deadline_at过期且无submission。 | 异常场景=答应配合超时;异常数据=deadline_at过期且无submission | 1. 打开“客服中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据deadline_at过期且无submission。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“答应配合超时”。\n2. 处理结果为:生成需再次联系任务。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:客服中心;异常:答应配合超时 | 待执行\nTC-PROTO-0143 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 异常场景 | 风险中心异常校验:黑名单同步接口超时 | P2 | 已进入“风险中心”准备异常数据或异常状态blacklist API timeout。 | 异常场景=黑名单同步接口超时;异常数据=blacklist API timeout | 1. 打开“风险中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据blacklist API timeout。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“黑名单同步接口超时”。\n2. 处理结果为:状态为失败待重试。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:风险中心;异常:黑名单同步接口超时 | 待执行\nTC-PROTO-0144 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 异常场景 | 风险中心异常校验:弱风险复核被拒绝 | P2 | 已进入“风险中心”;准备异常数据或异常状态:人工意见=拒绝。 | 异常场景=弱风险复核被拒绝;异常数据=人工意见=拒绝 | 1. 打开“风险中心”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据:人工意见=拒绝。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“弱风险复核被拒绝”。\n2. 处理结果为:用户不能进入触达。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:风险中心;异常:弱风险复核被拒绝 | 待执行\nTC-PROTO-0145 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 异常场景 | 评价追踪异常校验提交评价ASIN不匹配 | P2 | 已进入“评价追踪”准备异常数据或异常状态登记ASIN=A证据链接ASIN=B。 | 异常场景=提交评价ASIN不匹配异常数据=登记ASIN=A证据链接ASIN=B | 1. 打开“评价追踪”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据登记ASIN=A证据链接ASIN=B。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“提交评价ASIN不匹配”。\n2. 处理结果为:标记异常不计入完成。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面评价追踪异常提交评价ASIN不匹配 | 待执行\nTC-PROTO-0146 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 异常场景 | 评价追踪异常校验Amazon未展示超过观察期 | P2 | 已进入“评价追踪”准备异常数据或异常状态status=OBSERVING且retry超期。 | 异常场景=Amazon未展示超过观察期异常数据=status=OBSERVING且retry超期 | 1. 打开“评价追踪”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据status=OBSERVING且retry超期。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“Amazon未展示超过观察期”。\n2. 处理结果为标记ABNORMAL并通知运营。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面评价追踪异常Amazon未展示超过观察期 | 待执行\nTC-PROTO-0147 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 异常场景 | KOC/KOL异常校验CODE缺失 | P2 | 已进入“KOC/KOL”准备异常数据或异常状态免评任务未填写CODE。 | 异常场景=CODE缺失异常数据=免评任务未填写CODE | 1. 打开“KOC/KOL”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据免评任务未填写CODE。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“CODE缺失”。\n2. 处理结果为:阻止创建或标记价格/CODE待确认。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面KOC/KOL异常CODE缺失 | 待执行\nTC-PROTO-0148 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 异常场景 | 审计通知异常校验:普通客服查看完整邮箱 | P2 | 已进入“审计通知”准备异常数据或异常状态role=客服action=查看完整信息。 | 异常场景=普通客服查看完整邮箱;异常数据=role=客服action=查看完整信息 | 1. 打开“审计通知”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据role=客服action=查看完整信息。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“普通客服查看完整邮箱”。\n2. 处理结果为:拒绝访问并记录越权尝试。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:审计通知;异常:普通客服查看完整邮箱 | 待执行\nTC-PROTO-0149 | 用户运营系统-单文件.html | 系统管理 | 系统管理 | 异常场景 | 系统管理异常校验:离职账号仍有审批任务 | P2 | 已进入“系统管理”准备异常数据或异常状态account=disabled但任务未交接。 | 异常场景=离职账号仍有审批任务;异常数据=account=disabled但任务未交接 | 1. 打开“系统管理”。\n2. 按正常业务入口开始操作。\n3. 输入或选择异常数据account=disabled但任务未交接。\n4. 点击提交/保存/审批/发送。\n5. 查看页面校验提示、状态变化和日志记录。\n6. 刷新页面后再次查询该对象。 | 1. 系统识别异常“离职账号仍有审批任务”。\n2. 处理结果为:阻止完成离职并提示先交接。\n3. 不应产生错误落库、重复扣减额度或错误计划完成数。\n4. 刷新后异常状态仍可追溯。 | 异常场景下相关业务表不产生不一致数据;需要记录失败原因、操作者和时间。 | 无权限角色不能通过异常路径绕过审批、额度、风险或敏感字段控制。 | 异常被明确拦截或进入规定处理队列,业务数据保持一致。 | 对应子系统异常/待确认规则09-审计与通知中心 | 单文件系统页面:系统管理;异常:离职账号仍有审批任务 | 待执行\nTC-PROTO-0150 | 用户运营系统-单文件.html | 用户中心 | 用户身份与上下文 | 数据校验 | 用户中心页面触发按线索查真实人并校验接口数据 | P2 | 前端页面“用户中心”已打开;后端或 mock 服务提供接口“GET /api/identity/person?type=email&value=xxx”测试用户拥有页面访问权限。 | 接口=GET /api/identity/person?type=email&value=xxx预期输出=返回person_id、confidence、matched_clues | 1. 打开“用户中心”页面。\n2. 执行会触发“按线索查真实人”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/identity/person?type=email&value=xxx”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/identity/person?type=email&value=xxx”。\n2. 接口响应包含返回person_id、confidence、matched_clues。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 按线索查真实人在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面用户中心接口GET /api/identity/person?type=email&value=xxx | 待执行\nTC-PROTO-0151 | 用户运营系统-单文件.html | 用户中心 | 用户身份与上下文 | 数据校验 | 用户中心页面触发获取用户上下文卡并校验接口数据 | P2 | 前端页面“用户中心”已打开;后端或 mock 服务提供接口“GET /api/identity/context/{person_id}”;测试用户拥有页面访问权限。 | 接口=GET /api/identity/context/{person_id};预期输出=返回identity、transactions、services、risks、devices、outreach_history | 1. 打开“用户中心”页面。\n2. 执行会触发“获取用户上下文卡”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/identity/context/{person_id}”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/identity/context/{person_id}”。\n2. 接口响应包含返回identity、transactions、services、risks、devices、outreach_history。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 获取用户上下文卡在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面用户中心接口GET /api/identity/context/{person_id} | 待执行\nTC-PROTO-0152 | 用户运营系统-单文件.html | 用户中心 | 用户身份与上下文 | 数据校验 | 用户中心页面触发批量身份查询并校验接口数据 | P2 | 前端页面“用户中心”已打开;后端或 mock 服务提供接口“POST /api/identity/batch-check”测试用户拥有页面访问权限。 | 接口=POST /api/identity/batch-check预期输出=返回每个线索对应person_id和confidence | 1. 打开“用户中心”页面。\n2. 执行会触发“批量身份查询”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/identity/batch-check”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/identity/batch-check”。\n2. 接口响应包含返回每个线索对应person_id和confidence。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 批量身份查询在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面用户中心接口POST /api/identity/batch-check | 待执行\nTC-PROTO-0153 | 用户运营系统-单文件.html | 计划中心 | 需求与计划管理 | 数据校验 | 计划中心页面触发创建需求接口并校验接口数据 | P2 | 前端页面“计划中心”已打开;后端或 mock 服务提供接口“POST /api/demands”测试用户拥有页面访问权限。 | 接口=POST /api/demands预期输出=返回demand_id和status | 1. 打开“计划中心”页面。\n2. 执行会触发“创建需求接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/demands”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/demands”。\n2. 接口响应包含返回demand_id和status。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 创建需求接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面计划中心接口POST /api/demands | 待执行\nTC-PROTO-0154 | 用户运营系统-单文件.html | 计划审核 | 需求与计划管理 | 数据校验 | 计划审核页面触发提交审批接口并校验接口数据 | P2 | 前端页面“计划审核”已打开;后端或 mock 服务提供接口“POST /api/approvals/{plan_id}/submit”测试用户拥有页面访问权限。 | 接口=POST /api/approvals/{plan_id}/submit预期输出=生成approval_records | 1. 打开“计划审核”页面。\n2. 执行会触发“提交审批接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/approvals/{plan_id}/submit”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/approvals/{plan_id}/submit”。\n2. 接口响应包含生成approval_records。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 提交审批接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面计划审核接口POST /api/approvals/{plan_id}/submit | 待执行\nTC-PROTO-0155 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 数据校验 | 额度频控页面触发额度查询接口并校验接口数据 | P2 | 前端页面“额度频控”已打开;后端或 mock 服务提供接口“GET /api/quota/check/{person_id}?type=REVIEW”测试用户拥有页面访问权限。 | 接口=GET /api/quota/check/{person_id}?type=REVIEW预期输出=返回used、in_progress、reserved、remaining、status | 1. 打开“额度频控”页面。\n2. 执行会触发“额度查询接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/quota/check/{person_id}?type=REVIEW”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/quota/check/{person_id}?type=REVIEW”。\n2. 接口响应包含返回used、in_progress、reserved、remaining、status。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 额度查询接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面额度频控接口GET /api/quota/check/{person_id}?type=REVIEW | 待执行\nTC-PROTO-0156 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 数据校验 | 额度频控页面触发批量预占接口并校验接口数据 | P2 | 前端页面“额度频控”已打开;后端或 mock 服务提供接口“POST /api/quota/reserve”测试用户拥有页面访问权限。 | 接口=POST /api/quota/reserve预期输出=返回reservation_id并更新reserved | 1. 打开“额度频控”页面。\n2. 执行会触发“批量预占接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/quota/reserve”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/quota/reserve”。\n2. 接口响应包含返回reservation_id并更新reserved。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 批量预占接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面额度频控接口POST /api/quota/reserve | 待执行\nTC-PROTO-0157 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 数据校验 | 额度频控页面触发发送前终校接口并校验接口数据 | P2 | 前端页面“额度频控”已打开;后端或 mock 服务提供接口“POST /api/quota/final-check”测试用户拥有页面访问权限。 | 接口=POST /api/quota/final-check预期输出=返回APPROVED/WITHDRAWN和reasons | 1. 打开“额度频控”页面。\n2. 执行会触发“发送前终校接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/quota/final-check”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/quota/final-check”。\n2. 接口响应包含返回APPROVED/WITHDRAWN和reasons。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 发送前终校接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面额度频控接口POST /api/quota/final-check | 待执行\nTC-PROTO-0158 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 数据校验 | 推送/触达页面触发渠道路由接口并校验接口数据 | P2 | 前端页面“推送/触达”已打开;后端或 mock 服务提供接口“POST /api/outreach/route”测试用户拥有页面访问权限。 | 接口=POST /api/outreach/route预期输出=返回recommended_channel和alternatives | 1. 打开“推送/触达”页面。\n2. 执行会触发“渠道路由接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/outreach/route”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/outreach/route”。\n2. 接口响应包含返回recommended_channel和alternatives。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 渠道路由接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面:推送/触达接口POST /api/outreach/route | 待执行\nTC-PROTO-0159 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 数据校验 | 推送/触达页面触发触达历史接口并校验接口数据 | P2 | 前端页面“推送/触达”已打开;后端或 mock 服务提供接口“GET /api/outreach/history/{person_id}”;测试用户拥有页面访问权限。 | 接口=GET /api/outreach/history/{person_id};预期输出=返回im、edm、app、tel历史 | 1. 打开“推送/触达”页面。\n2. 执行会触发“触达历史接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/outreach/history/{person_id}”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/outreach/history/{person_id}”。\n2. 接口响应包含返回im、edm、app、tel历史。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 触达历史接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面:推送/触达接口GET /api/outreach/history/{person_id} | 待执行\nTC-PROTO-0160 | 用户运营系统-单文件.html | 客服中心 | 客服工单与管理 | 数据校验 | 客服中心页面触发创建工单接口并校验接口数据 | P2 | 前端页面“客服中心”已打开;后端或 mock 服务提供接口“POST /api/tickets”测试用户拥有页面访问权限。 | 接口=POST /api/tickets预期输出=返回ticket_id | 1. 打开“客服中心”页面。\n2. 执行会触发“创建工单接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/tickets”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/tickets”。\n2. 接口响应包含返回ticket_id。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 创建工单接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面客服中心接口POST /api/tickets | 待执行\nTC-PROTO-0161 | 用户运营系统-单文件.html | 客服中心 | 客服工单与管理 | 数据校验 | 客服中心页面触发查询可用客服接口并校验接口数据 | P2 | 前端页面“客服中心”已打开;后端或 mock 服务提供接口“GET /api/support/available-agents”测试用户拥有页面访问权限。 | 接口=GET /api/support/available-agents预期输出=返回agent_id和current_load | 1. 打开“客服中心”页面。\n2. 执行会触发“查询可用客服接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/support/available-agents”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/support/available-agents”。\n2. 接口响应包含返回agent_id和current_load。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 查询可用客服接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面客服中心接口GET /api/support/available-agents | 待执行\nTC-PROTO-0162 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 数据校验 | 评价追踪页面触发记录评价提交接口并校验接口数据 | P2 | 前端页面“评价追踪”已打开;后端或 mock 服务提供接口“POST /api/reviews/submission”测试用户拥有页面访问权限。 | 接口=POST /api/reviews/submission预期输出=返回submission_id和quota_updated | 1. 打开“评价追踪”页面。\n2. 执行会触发“记录评价提交接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“POST /api/reviews/submission”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“POST /api/reviews/submission”。\n2. 接口响应包含返回submission_id和quota_updated。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 记录评价提交接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面评价追踪接口POST /api/reviews/submission | 待执行\nTC-PROTO-0163 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 数据校验 | 评价追踪页面触发查询计划评价进度接口并校验接口数据 | P2 | 前端页面“评价追踪”已打开;后端或 mock 服务提供接口“GET /api/reviews/status/{plan_id}”;测试用户拥有页面访问权限。 | 接口=GET /api/reviews/status/{plan_id};预期输出=返回total_submissions、verified、pending、completion_rate | 1. 打开“评价追踪”页面。\n2. 执行会触发“查询计划评价进度接口”的页面操作。\n3. 在浏览器网络面板或接口日志中定位请求“GET /api/reviews/status/{plan_id}”。\n4. 校验请求参数来自页面当前选择的数据。\n5. 查看接口响应并回到页面查看展示结果。 | 1. 页面操作正确触发“GET /api/reviews/status/{plan_id}”。\n2. 接口响应包含返回total_submissions、verified、pending、completion_rate。\n3. 页面展示与接口响应一致。\n4. 接口失败时页面给出可理解的错误提示,不出现空白页。 | 请求参数、响应字段、页面展示、数据库对象四者一致;失败响应不写入成功状态。 | 接口必须校验登录态和角色权限;前端隐藏按钮不能替代后端鉴权。 | 查询计划评价进度接口在页面、接口、数据层三端一致。 | 对应子系统 API 契约章节 | 单文件页面评价追踪接口GET /api/reviews/status/{plan_id} | 待执行\nTC-PROTO-0164 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:评价主闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | ASIN评分4.46触发需求→生成计划→审批→候选筛选→额度预占→风险放行→IM触达→客服跟进→用户提交→Amazon展示→计划完成度回流 | 1. 从 Dashboard 或对应入口启动“评价主闭环”。\n2. 按流程依次完成ASIN评分4.46触发需求→生成计划→审批→候选筛选→额度预占→风险放行→IM触达→客服跟进→用户提交→Amazon展示→计划完成度回流。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “评价主闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 评价主闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:评价主闭环 | 待执行\nTC-PROTO-0165 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收紧急Listing闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 评分4.21接近4.2→创建紧急策略→系统管理员审批→用户运营执行→风险雷达监控→评价健康回升 | 1. 从 Dashboard 或对应入口启动“紧急Listing闭环”。\n2. 按流程依次完成评分4.21接近4.2→创建紧急策略→系统管理员审批→用户运营执行→风险雷达监控→评价健康回升。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “紧急Listing闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 紧急Listing闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由流程紧急Listing闭环 | 待执行\nTC-PROTO-0166 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:推送风险复核闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 退订率高于基线→进入推送风险→复核人群和素材→暂停同策略→输出复盘记录 | 1. 从 Dashboard 或对应入口启动“推送风险复核闭环”。\n2. 按流程依次完成:退订率高于基线→进入推送风险→复核人群和素材→暂停同策略→输出复盘记录。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “推送风险复核闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 推送风险复核闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:推送风险复核闭环 | 待执行\nTC-PROTO-0167 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:黑名单同步闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 客服升级疑似诈骗→风险复核→确认诈骗→同步黑名单→失败待重试→审计可查 | 1. 从 Dashboard 或对应入口启动“黑名单同步闭环”。\n2. 按流程依次完成:客服升级疑似诈骗→风险复核→确认诈骗→同步黑名单→失败待重试→审计可查。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “黑名单同步闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 黑名单同步闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:黑名单同步闭环 | 待执行\nTC-PROTO-0168 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:客服转化闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 用户消息进入→自动分配→客服回复→用户答应配合→提醒→提交评价→工单关闭→绩效更新 | 1. 从 Dashboard 或对应入口启动“客服转化闭环”。\n2. 按流程依次完成:用户消息进入→自动分配→客服回复→用户答应配合→提醒→提交评价→工单关闭→绩效更新。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “客服转化闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 客服转化闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:客服转化闭环 | 待执行\nTC-PROTO-0169 | 用户运营系统-单文件.html | 端到端流程 | 系统总览 | 验收测试 | 端到端验收:免评协作闭环 | P1 | 准备完整链路数据管理员、Amazon运营、用户运营、客服、风险负责人、KOC/KOL运营账号均可登录相关外部系统可使用mock。 | 免评需求→免评计划审批→KOC/KOL匹配→CODE配置→内容发布→结果回流→ASIN健康更新 | 1. 从 Dashboard 或对应入口启动“免评协作闭环”。\n2. 按流程依次完成免评需求→免评计划审批→KOC/KOL匹配→CODE配置→内容发布→结果回流→ASIN健康更新。\n3. 每到一个状态节点记录页面状态、负责人、时间和关联ID。\n4. 在 Dashboard、计划中心、客服中心、风险中心、评价追踪中分别回查结果。\n5. 查看审计日志和通知记录。 | 1. “免评协作闭环”可完整跑通。\n2. 每个模块状态与上游动作一致。\n3. Dashboard 指标、计划完成度、工单绩效、风险记录和评价结果均同步回流。\n4. 审计日志可按关联ID串起全链路。 | 需求、计划、候选人、额度、风险、触达、工单、评价、审计对象均有一致关联ID提交评价与展示核验分开计数。 | 不同角色只能执行自己职责内动作;审批、黑名单、敏感信息、导出需独立权限。 | 免评协作闭环闭环无断点、状态无冲突、数据可追溯、异常可恢复。 | 全部需求文档;业务闭环流程图 | 单文件系统 Dashboard 与各业务路由;流程:免评协作闭环 | 待执行\nTC-PROTO-0170 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换全部标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“全部”。 | 标签=全部;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“全部”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“全部”。 | 1. 队列只展示与“全部”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签全部 | 待执行\nTC-PROTO-0171 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换审核标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“审核”。 | 标签=审核;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“审核”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“审核”。 | 1. 队列只展示与“审核”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签审核 | 待执行\nTC-PROTO-0172 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换黑名单标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“黑名单”。 | 标签=黑名单;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“黑名单”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“黑名单”。 | 1. 队列只展示与“黑名单”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签黑名单 | 待执行\nTC-PROTO-0173 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台-P0/P1处理队列 | 审计与通知中心 | 功能测试 | P0/P1处理队列切换推送标签后只展示对应事项 | P2 | 系统管理员在工作台P0/P1处理队列包含审核、黑名单、推送三类事项当前标签可切换到“推送”。 | 标签=推送;队列事项=测评需求、推送风险、待同步黑名单、紧急策略审批、差评跟进 | 1. 打开管理员首页。\n2. 在P0/P1处理队列点击“推送”标签。\n3. 逐行检查事项类型、负责人、时限和操作按钮。\n4. 点击任意一条事项的“处理/审核/复核/分配”按钮进入详情。\n5. 关闭详情后再次查看当前标签是否仍为“推送”。 | 1. 队列只展示与“推送”匹配的事项;如果为全部则展示所有事项。\n2. 当前标签高亮。\n3. 打开并关闭详情后筛选标签不丢失。 | 筛选后的事项数量与队列分类统计一致;关闭详情不重置筛选条件。 | 普通角色只能看到本人相关事项;系统管理员可以切换全部标签。 | 队列标签筛选准确、状态保持、权限范围正确。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | P0/P1处理队列标签推送 | 待执行\nTC-PROTO-0174 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门全部部门状态全部状态风险全部风险负责人全部负责人组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=全部部门;状态=全部状态;风险=全部风险;负责人=全部负责人 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“全部部门”。\n3. 选择状态“全部状态”、风险“全部风险”、负责人“全部负责人”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合全部部门/全部状态/全部风险/全部负责人的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0175 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门Amazon 运营状态待审批风险全部风险负责人Amazon 总监组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=Amazon 运营;状态=待审批;风险=全部风险;负责人=Amazon 总监 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“Amazon 运营”。\n3. 选择状态“待审批”、风险“全部风险”、负责人“Amazon 总监”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合Amazon 运营/待审批/全部风险/Amazon 总监的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0176 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门用户运营状态待复核风险偏高负责人用户运营组长组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=用户运营;状态=待复核;风险=偏高;负责人=用户运营组长 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“用户运营”。\n3. 选择状态“待复核”、风险“偏高”、负责人“用户运营组长”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合用户运营/待复核/偏高/用户运营组长的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0177 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门客服状态客服升级风险高风险负责人客服负责人组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=客服;状态=客服升级;风险=高风险;负责人=客服负责人 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“客服”。\n3. 选择状态“客服升级”、风险“高风险”、负责人“客服负责人”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合客服/客服升级/高风险/客服负责人的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0178 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 各模块列表-组合筛选 | 系统总览 | 功能测试 | 列表按部门系统管理员状态待系统管理员确认风险紧急负责人系统管理员组合查询 | P2 | 系统管理员进入任一业务列表页;列表顶部存在部门、状态、风险、负责人筛选项和查询按钮。 | 部门=系统管理员;状态=待系统管理员确认;风险=紧急;负责人=系统管理员 | 1. 从左侧导航进入需求中心或风险中心。\n2. 在筛选区选择部门“系统管理员”。\n3. 选择状态“待系统管理员确认”、风险“紧急”、负责人“系统管理员”。\n4. 点击“查询”。\n5. 检查列表每一行的部门、当前环节、风险和负责人。\n6. 点击“导出”。 | 1. 列表只返回符合系统管理员/待系统管理员确认/紧急/系统管理员的记录。\n2. 统计数量与当前筛选条件一致。\n3. 导出文件只包含当前筛选结果。\n4. 导出动作写入审计日志。 | 筛选条件、列表结果、导出结果、审计日志中的查询条件一致。 | 无导出权限时导出按钮隐藏或提示无权限;不能导出其他部门数据。 | 组合筛选准确、导出范围正确、审计完整。 | 00-系统总览09-审计与通知中心 | 筛选项:全部部门/全部状态/全部风险/全部负责人;按钮:查询/导出 | 待执行\nTC-PROTO-0179 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段JOYHUB 用户ID按全员可见权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“JOYHUB 用户ID”存在。 | 字段=JOYHUB 用户ID可见范围=全员可见;期望=完整ID可见 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“JOYHUB 用户ID”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“JOYHUB 用户ID”按照“全员可见”控制可见性。\n2. 符合预期完整ID可见。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | JOYHUB 用户ID必须按全员可见控制查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单JOYHUB 用户ID/全员可见 | 待执行\nTC-PROTO-0180 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段用户名按授权可见权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“用户名”存在。 | 字段=用户名;可见范围=授权可见;期望=未授权显示脱敏 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“用户名”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“用户名”按照“授权可见”控制可见性。\n2. 符合预期:未授权显示脱敏。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 用户名必须按授权可见控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:用户名/授权可见 | 待执行\nTC-PROTO-0181 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段邮箱后缀按已脱敏权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“邮箱后缀”存在。 | 字段=邮箱后缀;可见范围=已脱敏;期望=只显示邮箱域名/后缀 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“邮箱后缀”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“邮箱后缀”按照“已脱敏”控制可见性。\n2. 符合预期:只显示邮箱域名/后缀。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 邮箱后缀必须按已脱敏控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:邮箱后缀/已脱敏 | 待执行\nTC-PROTO-0182 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段近7天EDM推送数按推送数据权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“近7天EDM推送数”存在。 | 字段=近7天EDM推送数可见范围=推送数据;期望=仅推送/管理员可见 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“近7天EDM推送数”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“近7天EDM推送数”按照“推送数据”控制可见性。\n2. 符合预期:仅推送/管理员可见。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 近7天EDM推送数必须按推送数据控制查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单近7天EDM推送数/推送数据 | 待执行\nTC-PROTO-0183 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段身份风险等级按系统管理员/风险负责人权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“身份风险等级”存在。 | 字段=身份风险等级;可见范围=系统管理员/风险负责人;期望=普通运营不可见 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“身份风险等级”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“身份风险等级”按照“系统管理员/风险负责人”控制可见性。\n2. 符合预期:普通运营不可见。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 身份风险等级必须按系统管理员/风险负责人控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:身份风险等级/系统管理员/风险负责人 | 待执行\nTC-PROTO-0184 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-字段权限与脱敏 | 用户身份与上下文 | 权限校验 | 现有ERP字段标签覆盖人数按标签模块权限展示 | P2 | v10原型进入现有ERP测试账号分别准备系统管理员、用户运营、客服、风险负责人字段“标签覆盖人数”存在。 | 字段=标签覆盖人数;可见范围=标签模块;期望=负责人可见汇总,普通客服不可导出 | 1. 使用系统管理员账号进入现有ERP用户管理字段表查看“标签覆盖人数”。\n2. 退出后使用普通客服账号进入同一页面。\n3. 再使用风险负责人或用户运营账号进入同一页面。\n4. 分别点击“查看完整信息”和“导出现有关系”。\n5. 对比三个角色看到的字段内容。 | 1. 字段“标签覆盖人数”按照“标签模块”控制可见性。\n2. 符合预期:负责人可见汇总,普通客服不可导出。\n3. 未授权角色点击查看完整信息被拒绝并记录审计。\n4. 导出文件不包含未授权字段明文。 | 字段展示、导出内容、审计记录中的角色和权限点一致;脱敏字段不得在前端源码/导出中泄露明文。 | 标签覆盖人数必须按标签模块控制;查看完整信息和导出是独立权限。 | 字段级权限和脱敏在页面展示、详情、导出三个场景均生效。 | 00-系统总览09-审计与通知中心01-用户身份与上下文 | 字段权限清单:标签覆盖人数/标签模块 | 待执行\nTC-PROTO-0185 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 客服本人在客服执行看板的可操作范围校验 | P1 | 准备客服本人账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=客服本人;数据范围=我的工单;允许=回复用户、登记提交事实;限制=不能改派他人工单或查看团队绩效 | 1. 使用“客服本人”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:回复用户、登记提交事实。\n4. 尝试执行限制动作:不能改派他人工单或查看团队绩效。\n5. 打开审计日志查看敏感操作记录。 | 1. 客服本人只能看到“我的工单”。\n2. 允许动作“回复用户、登记提交事实”可正常提交。\n3. 限制动作“不能改派他人工单或查看团队绩效”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 客服本人权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:客服本人 | 待执行\nTC-PROTO-0186 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 客服组长在客服执行看板的可操作范围校验 | P1 | 准备客服组长账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=客服组长;数据范围=组内工单池;允许=手动分配、转移、查看组员负载;限制=不能查看跨团队敏感字段 | 1. 使用“客服组长”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:手动分配、转移、查看组员负载。\n4. 尝试执行限制动作:不能查看跨团队敏感字段。\n5. 打开审计日志查看敏感操作记录。 | 1. 客服组长只能看到“组内工单池”。\n2. 允许动作“手动分配、转移、查看组员负载”可正常提交。\n3. 限制动作“不能查看跨团队敏感字段”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 客服组长权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:客服组长 | 待执行\nTC-PROTO-0187 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 客服主管在客服执行看板的可操作范围校验 | P1 | 准备客服主管账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=客服主管;数据范围=团队看板;允许=查看排班、绩效、目标完成率;限制=不能同步黑名单除非额外授权 | 1. 使用“客服主管”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:查看排班、绩效、目标完成率。\n4. 尝试执行限制动作:不能同步黑名单除非额外授权。\n5. 打开审计日志查看敏感操作记录。 | 1. 客服主管只能看到“团队看板”。\n2. 允许动作“查看排班、绩效、目标完成率”可正常提交。\n3. 限制动作“不能同步黑名单除非额外授权”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 客服主管权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:客服主管 | 待执行\nTC-PROTO-0188 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 风险负责人在客服执行看板的可操作范围校验 | P1 | 准备风险负责人账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=风险负责人;数据范围=疑似诈骗工单;允许=确认诈骗、标记误报、同步黑名单候选;限制=不能修改客服排班 | 1. 使用“风险负责人”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:确认诈骗、标记误报、同步黑名单候选。\n4. 尝试执行限制动作:不能修改客服排班。\n5. 打开审计日志查看敏感操作记录。 | 1. 风险负责人只能看到“疑似诈骗工单”。\n2. 允许动作“确认诈骗、标记误报、同步黑名单候选”可正常提交。\n3. 限制动作“不能修改客服排班”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 风险负责人权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:风险负责人 | 待执行\nTC-PROTO-0189 | 客服执行.html | 客服执行看板-角色权限 | 客服工单与管理 | 权限校验 | 系统管理员在客服执行看板的可操作范围校验 | P1 | 准备系统管理员账号;客服执行看板存在待分配、处理中、等待提交、疑似诈骗等工单。 | 角色=系统管理员;数据范围=全部客服数据;允许=查看审计、配置权限、导出绩效;限制=敏感查看仍需记录审计 | 1. 使用“系统管理员”账号登录客服执行看板。\n2. 查看顶部指标、工单列表、绩效区域和排班区域。\n3. 尝试执行允许动作:查看审计、配置权限、导出绩效。\n4. 尝试执行限制动作:敏感查看仍需记录审计。\n5. 打开审计日志查看敏感操作记录。 | 1. 系统管理员只能看到“全部客服数据”。\n2. 允许动作“查看审计、配置权限、导出绩效”可正常提交。\n3. 限制动作“敏感查看仍需记录审计”按钮隐藏或提交失败。\n4. 敏感查看、导出、风险处置均记录审计。 | support_tickets、assignment_logs、performance_snapshots按角色范围返回越权请求后端拒绝。 | 系统管理员权限模型正确,前后端均不可越权。 | 角色数据范围、按钮权限、审计记录一致。 | 05-客服工单与管理09-审计与通知中心 | 客服执行角色:系统管理员 | 待执行\nTC-PROTO-0190 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 需求中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“需求中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2详情字段=需求ID、ASIN、目标数量、周期、提交人、评估结果 | 1. 打开“需求中心”页面。\n2. 在筛选区按业务条件选择或输入:类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段需求ID、ASIN、目标数量、周期、提交人、评估结果。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2”。\n2. 详情抽屉展示“需求ID、ASIN、目标数量、周期、提交人、评估结果”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 需求中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:需求中心;筛选:类型=测评/回评/免评;状态=待评估/待补充/已通过/已拒绝;优先级=P0/P1/P2 | 待执行\nTC-PROTO-0191 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 计划审核按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“计划审核”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回;详情字段=审批链、审批人、意见、step_order、decided_at | 1. 打开“计划审核”页面。\n2. 在筛选区按业务条件选择或输入:计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段审批链、审批人、意见、step_order、decided_at。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回”。\n2. 详情抽屉展示“审批链、审批人、意见、step_order、decided_at”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 计划审核查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:计划审核;筛选:计划类型=推新/回评/免评/紧急;审批状态=待审批/已通过/已驳回 | 待执行\nTC-PROTO-0192 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 功能测试 | 计划中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“计划中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL详情字段=计划项、目标量、候选人、资源分配、完成率 | 1. 打开“计划中心”页面。\n2. 在筛选区按业务条件选择或输入:状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:计划项、目标量、候选人、资源分配、完成率。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL”。\n2. 详情抽屉展示“计划项、目标量、候选人、资源分配、完成率”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 计划中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:计划中心;筛选:状态=草稿/执行中/待核验/已完成/已终止;渠道=IM/EDM/APP/TEL | 待执行\nTC-PROTO-0193 | 用户运营系统-单文件.html | ASIN/Listing | ASIN/Listing | 功能测试 | ASIN/Listing按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“ASIN/Listing”页面存在筛选区、查询按钮、列表和详情入口当前用户有该页面查询权限。 | 筛选条件=站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间;详情字段=评分、评价数、差评数、健康状态、责任人 | 1. 打开“ASIN/Listing”页面。\n2. 在筛选区按业务条件选择或输入:站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:评分、评价数、差评数、健康状态、责任人。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间”。\n2. 详情抽屉展示“评分、评价数、差评数、健康状态、责任人”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | ASIN/Listing查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面ASIN/Listing筛选站点=US/CA/UK健康状态=健康/关注/风险/严重风险;评分区间 | 待执行\nTC-PROTO-0194 | 用户运营系统-单文件.html | 用户中心 | 用户中心 | 功能测试 | 用户中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“用户中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=国家、性别、标签、身份、产品数、活动数、近7天EDM次数详情字段=用户主档、标签、身份、产品关系、近期活跃 | 1. 打开“用户中心”页面。\n2. 在筛选区按业务条件选择或输入国家、性别、标签、身份、产品数、活动数、近7天EDM次数。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:用户主档、标签、身份、产品关系、近期活跃。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“国家、性别、标签、身份、产品数、活动数、近7天EDM次数”。\n2. 详情抽屉展示“用户主档、标签、身份、产品关系、近期活跃”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 用户中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面用户中心筛选国家、性别、标签、身份、产品数、活动数、近7天EDM次数 | 待执行\nTC-PROTO-0195 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 功能测试 | 额度频控按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“额度频控”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=额度类型=测评/免评/累计;状态=sufficient/warning/exceeded详情字段=used、in_progress、reserved、remaining、limit_value | 1. 打开“额度频控”页面。\n2. 在筛选区按业务条件选择或输入:额度类型=测评/免评/累计;状态=sufficient/warning/exceeded。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段used、in_progress、reserved、remaining、limit_value。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“额度类型=测评/免评/累计;状态=sufficient/warning/exceeded”。\n2. 详情抽屉展示“used、in_progress、reserved、remaining、limit_value”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 额度频控查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:额度频控;筛选:额度类型=测评/免评/累计;状态=sufficient/warning/exceeded | 待执行\nTC-PROTO-0196 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 推送/触达按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“推送/触达”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订;详情字段=发送、点击、回复、退订、route decision、dedup reason | 1. 打开“推送/触达”页面。\n2. 在筛选区按业务条件选择或输入:渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段发送、点击、回复、退订、route decision、dedup reason。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订”。\n2. 详情抽屉展示“发送、点击、回复、退订、route decision、dedup reason”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 推送/触达查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:推送/触达;筛选:渠道=IM/EDM/APP/TEL状态=待发送/已发送/失败/退订 | 待执行\nTC-PROTO-0197 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 功能测试 | 客服中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“客服中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭;详情字段=工单ID、assigned_agent、followup状态、首次回复时长 | 1. 打开“客服中心”页面。\n2. 在筛选区按业务条件选择或输入:来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段工单ID、assigned_agent、followup状态、首次回复时长。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭”。\n2. 详情抽屉展示“工单ID、assigned_agent、followup状态、首次回复时长”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 客服中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:客服中心;筛选:来源=IM转人工/售后/风险/电话;状态=待分配/处理中/等待用户/已关闭 | 待执行\nTC-PROTO-0198 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 功能测试 | 风险中心按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“风险中心”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝;详情字段=risk_signal、risk_case、blacklist_entity | 1. 打开“风险中心”页面。\n2. 在筛选区按业务条件选择或输入:风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段risk_signal、risk_case、blacklist_entity。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝”。\n2. 详情抽屉展示“risk_signal、risk_case、blacklist_entity”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 风险中心查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:风险中心;筛选:风险类型=强关联/弱关联/黑名单/双重退款;状态=复核中/已放行/已拒绝 | 待执行\nTC-PROTO-0199 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 评价追踪按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“评价追踪”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=核验状态=已提交/展示成功/暂不可核验/异常观察;详情字段=submission_id、display_check、retry_count、completion_rate | 1. 打开“评价追踪”页面。\n2. 在筛选区按业务条件选择或输入:核验状态=已提交/展示成功/暂不可核验/异常观察。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段submission_id、display_check、retry_count、completion_rate。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“核验状态=已提交/展示成功/暂不可核验/异常观察”。\n2. 详情抽屉展示“submission_id、display_check、retry_count、completion_rate”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 评价追踪查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:评价追踪;筛选:核验状态=已提交/展示成功/暂不可核验/异常观察 | 待执行\nTC-PROTO-0200 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 功能测试 | KOC/KOL按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“KOC/KOL”页面存在筛选区、查询按钮、列表和详情入口当前用户有该页面查询权限。 | 筛选条件=任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置;详情字段=creator、Brief、CODE、返点、内容链接 | 1. 打开“KOC/KOL”页面。\n2. 在筛选区按业务条件选择或输入:任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段creator、Brief、CODE、返点、内容链接。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置”。\n2. 详情抽屉展示“creator、Brief、CODE、返点、内容链接”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | KOC/KOL查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面KOC/KOL筛选任务状态=待确认/执行中/逾期/已完成CODE状态=待确认/已配置 | 待执行\nTC-PROTO-0201 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 功能测试 | 审计通知按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“审计通知”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围;详情字段=日志ID、操作者、对象、动作、结果 | 1. 打开“审计通知”页面。\n2. 在筛选区按业务条件选择或输入:动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段日志ID、操作者、对象、动作、结果。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围”。\n2. 详情抽屉展示“日志ID、操作者、对象、动作、结果”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 审计通知查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:审计通知;筛选:动作类型=导出/查看敏感信息/审批/黑名单同步;时间范围 | 待执行\nTC-PROTO-0202 | 用户运营系统-单文件.html | 系统管理 | 系统管理 | 功能测试 | 系统管理按业务筛选条件查询并打开详情抽屉 | P2 | 用户已进入“系统管理”;页面存在筛选区、查询按钮、列表和详情入口;当前用户有该页面查询权限。 | 筛选条件=角色、部门、站点、权限点、账号状态;详情字段=账号、角色、数据范围、权限点、离职交接 | 1. 打开“系统管理”页面。\n2. 在筛选区按业务条件选择或输入:角色、部门、站点、权限点、账号状态。\n3. 点击“筛选/查询”。\n4. 在结果列表选择第一条记录,点击“详情/查看”。\n5. 在详情抽屉中核对字段:账号、角色、数据范围、权限点、离职交接。\n6. 关闭详情抽屉并点击“重置”。 | 1. 查询结果均符合“角色、部门、站点、权限点、账号状态”。\n2. 详情抽屉展示“账号、角色、数据范围、权限点、离职交接”。\n3. 关闭详情不清空列表;点击重置后恢复默认查询。\n4. 无数据时显示暂无数据,不沿用旧详情。 | 列表字段、详情字段、筛选条件和后端查询参数一致;重置后不残留旧条件。 | 用户只能查询授权站点、部门、角色范围内数据;详情敏感字段脱敏。 | 系统管理查询、详情、重置、空状态均可用。 | 对应子系统页面与数据对象章节 | 单文件页面:系统管理;筛选:角色、部门、站点、权限点、账号状态 | 待执行\nTC-PROTO-0203 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界测评额度剩余1次预警 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=used=3,in_progress=0,reserved=0,count=1,limit=4 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录used=3,in_progress=0,reserved=0,count=1,limit=4。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理:允许预占但进入预警池。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界测评额度剩余1次预警 | 待执行\nTC-PROTO-0204 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界测评额度已用3且预占1再预占1 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=used=3,reserved=1,count=1,limit=4 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录used=3,reserved=1,count=1,limit=4。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理阻止预占状态exceeded。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界测评额度已用3且预占1再预占1 | 待执行\nTC-PROTO-0205 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界:免评额度独立预占 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=review used=4, exemption used=0,count=1 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录review used=4, exemption used=0,count=1。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理:免评可预占,测评不可预占。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界:免评额度独立预占 | 待执行\nTC-PROTO-0206 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界累计12提交后不因未展示回退 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=lifetime=11,提交评价后Amazon未展示 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录lifetime=11,提交评价后Amazon未展示。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理lifetime变12且不回退。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界累计12提交后不因未展示回退 | 待执行\nTC-PROTO-0207 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界:预占超时自动释放 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=reservation.status=RESERVED且expires_at已过 | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录reservation.status=RESERVED且expires_at已过。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理状态EXPIRED/RELEASEDremaining恢复。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界:预占超时自动释放 | 待执行\nTC-PROTO-0208 | 用户运营系统-单文件.html | 额度频控 | 额度与频控 | 异常场景 | 额度边界:跨计划重复入选 | P1 | 已进入额度频控页面;准备真实人额度台账、预占记录和关联计划。 | 边界数据=同person同时进入PLAN-A和PLAN-B | 1. 打开额度频控页面。\n2. 查询目标真实人的额度台账。\n3. 按边界条件设置或选择记录同person同时进入PLAN-A和PLAN-B。\n4. 点击额度检查或批量预占。\n5. 打开发送前终校结果和额度审计记录。 | 1. 系统按边界规则处理:只保留高优先级或先预占计划,另一计划排除/预警。\n2. 台账 used/in_progress/reserved/remaining 计算正确。\n3. 额度审计记录包含计划ID、真实人ID、操作类型和原因。 | person_quota_ledgers与quota_reservations合计一致提交评价立即影响累计12Amazon未展示不回退。 | 额度手动调整、重置、放宽必须要求管理员或授权负责人。 | 额度边界不超发、不重复占用、不漏释放。 | 03-额度与频控 M1/M2/M4 | 额度页面边界:跨计划重复入选 | 待执行\nTC-PROTO-0209 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道IM按用户状态执行并产生后续流转 | P1 | 计划已审批候选用户满足条件APP活跃+已绑定用户;额度、风险、去重均通过。 | 渠道=IM用户条件=APP活跃+已绑定用户;动作=推送回评卡片 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“APP活跃+已绑定用户”的候选用户。\n3. 点击渠道路由确认推荐渠道为“IM”。\n4. 执行“推送回评卡片”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“IM”作为推荐渠道或可选渠道。\n2. 执行动作后写入“im_interaction_records”。\n3. 后续处理符合:用户回复后重新校验身份/额度/风险。\n4. Dashboard和用户上下文卡可查看触达历史。 | im_interaction_records记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | IM渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道IM | 待执行\nTC-PROTO-0210 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道EDM按用户状态执行并产生后续流转 | P1 | 计划已审批候选用户满足条件未注册APP但邮箱可用用户额度、风险、去重均通过。 | 渠道=EDM用户条件=未注册APP但邮箱可用用户动作=发送邮件并追踪送达/打开/点击/回复/退订 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“未注册APP但邮箱可用用户”的候选用户。\n3. 点击渠道路由确认推荐渠道为“EDM”。\n4. 执行“发送邮件并追踪送达/打开/点击/回复/退订”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“EDM”作为推荐渠道或可选渠道。\n2. 执行动作后写入“edm_message_events”。\n3. 后续处理符合:回复邮件生成客服工单。\n4. Dashboard和用户上下文卡可查看触达历史。 | edm_message_events记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | EDM渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道EDM | 待执行\nTC-PROTO-0211 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道APP Push按用户状态执行并产生后续流转 | P1 | 计划已审批;候选用户满足条件:绑定新玩具/不活跃/计划到期/Listing紧急/活动触发;额度、风险、去重均通过。 | 渠道=APP Push用户条件=绑定新玩具/不活跃/计划到期/Listing紧急/活动触发;动作=发送Push并追踪点击打开/忽略/卸载 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“绑定新玩具/不活跃/计划到期/Listing紧急/活动触发”的候选用户。\n3. 点击渠道路由确认推荐渠道为“APP Push”。\n4. 执行“发送Push并追踪点击打开/忽略/卸载”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“APP Push”作为推荐渠道或可选渠道。\n2. 执行动作后写入“app_touch_events”。\n3. 后续处理符合:点击后分流到提交回评/联系客服/浏览。\n4. Dashboard和用户上下文卡可查看触达历史。 | app_touch_events记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | APP Push渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道APP Push | 待执行\nTC-PROTO-0212 | 用户运营系统-单文件.html | 推送/触达 | 多渠道触达引擎 | 流程测试 | 触达渠道TEL按用户状态执行并产生后续流转 | P1 | 计划已审批;候选用户满足条件:高价值多次无响应或答应配合超时用户;额度、风险、去重均通过。 | 渠道=TEL用户条件=高价值多次无响应或答应配合超时用户;动作=生成电话任务并记录通话结果 | 1. 进入推送/触达页面。\n2. 选择已审批计划和满足“高价值多次无响应或答应配合超时用户”的候选用户。\n3. 点击渠道路由确认推荐渠道为“TEL”。\n4. 执行“生成电话任务并记录通话结果”。\n5. 查看触达历史和后续流转。\n6. 模拟用户响应或失败事件。 | 1. 系统选择“TEL”作为推荐渠道或可选渠道。\n2. 执行动作后写入“tel_call_records”。\n3. 后续处理符合未接通小于3次重拨大于等于3次降级EDM或关闭。\n4. Dashboard和用户上下文卡可查看触达历史。 | tel_call_records记录person_id、plan_id、channel/status、发生时间channel_dedup_records记录允许或阻断原因。 | 触达发送需通过终校;退订、强风险、未关闭工单用户不得发送。 | TEL渠道触达、事件追踪、后续流转完整。 | 04-多渠道触达引擎 M1-M7 | 推送/触达页面渠道TEL | 待执行\nTC-PROTO-0213 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理截图证据登记 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=evidence_type=截图包含ASIN和评论内容 | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据evidence_type=截图包含ASIN和评论内容。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果记录提交事实并触发quota commit。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:截图证据登记 | 待执行\nTC-PROTO-0214 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理链接证据登记 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=evidence_type=Review Link链接可打开 | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据evidence_type=Review Link链接可打开。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果:记录提交事实并进入展示核验。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:链接证据登记 | 待执行\nTC-PROTO-0215 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理人工核验展示成功 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=check_method=人工check_result=DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据check_method=人工check_result=DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果计入计划完成数并更新ASIN健康。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:人工核验展示成功 | 待执行\nTC-PROTO-0216 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理自动核验未展示 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=check_method=自动check_result=NOT_DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据check_method=自动check_result=NOT_DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果:进入异常观察队列。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:自动核验未展示 | 待执行\nTC-PROTO-0217 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理暂不可核验 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=check_result=UNVERIFIABLE原因=Amazon审核中 | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据check_result=UNVERIFIABLE原因=Amazon审核中。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果:保留已提交事实并定期复查。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:暂不可核验 | 待执行\nTC-PROTO-0218 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理异常观察复查成功 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=OBSERVING重试后DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据OBSERVING重试后DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果转CONFIRMED并回流计划。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:异常观察复查成功 | 待执行\nTC-PROTO-0219 | 用户运营系统-单文件.html | 评价追踪 | 评价结果追踪 | 流程测试 | 评价追踪处理异常观察期满失败 | P1 | 已存在执行中计划、真实人、客服工单或IM互动记录用户声称已提交评价。 | 评价数据=retry_count超过阈值仍NOT_DISPLAYED | 1. 进入评价追踪页面。\n2. 点击“登记评价提交”或打开待核验记录。\n3. 录入/选择数据retry_count超过阈值仍NOT_DISPLAYED。\n4. 提交后查看提交记录。\n5. 执行展示核验或等待复查。\n6. 回到计划详情查看完成度。 | 1. 系统处理结果标记ABNORMAL并通知运营。\n2. 用户真实提交评价和Amazon展示核验被拆分记录。\n3. 额度按提交事实计数,计划完成按展示确认计数。\n4. 异常观察有复查记录和通知。 | review_submission_records、review_display_checks、review_results三类数据一致quota_updated状态正确。 | 只有客服/运营可登记提交;展示核验人工确认需运营负责人或授权角色。 | 提交事实、展示事实、额度、计划完成度四者口径清晰且可追溯。 | 07-评价结果追踪 M1-M4 | 评价追踪场景:异常观察期满失败 | 待执行\nTC-PROTO-0220 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统总览 | 功能测试 | 需求中心按钮级操作:查看完整信息 | P2 | 系统管理员已进入“需求中心”存在业务条件JOYHUB ID、邮箱、电话、设备号、订单号默认脱敏。 | 按钮=查看完整信息;条件=JOYHUB ID、邮箱、电话、设备号、订单号默认脱敏 | 1. 从管理员首页左侧导航进入“需求中心”。\n2. 在列表中找到满足条件的记录JOYHUB ID、邮箱、电话、设备号、订单号默认脱敏。\n3. 点击该行或页面上的“查看完整信息”按钮。\n4. 按页面提示执行:打开详情后点击查看完整信息。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “查看完整信息”入口可用且文案正确。\n2. 操作后结果为:记录敏感访问审计。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 需求中心的查看完整信息动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=需求中心;按钮=查看完整信息 | 待执行\nTC-PROTO-0221 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统总览 | 功能测试 | 需求中心按钮级操作:分配 | P2 | 系统管理员已进入“需求中心”存在业务条件测评需求Amazon已批准待用户运营接收。 | 按钮=分配;条件=测评需求Amazon已批准待用户运营接收 | 1. 从管理员首页左侧导航进入“需求中心”。\n2. 在列表中找到满足条件的记录测评需求Amazon已批准待用户运营接收。\n3. 点击该行或页面上的“分配”按钮。\n4. 按页面提示执行:选择下一负责人为用户运营负责人。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “分配”入口可用且文案正确。\n2. 操作后结果为:负责人变更并通知。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 需求中心的分配动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=需求中心;按钮=分配 | 待执行\nTC-PROTO-0222 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求中心 | 系统总览 | 功能测试 | 需求中心按钮级操作:审批/确认 | P2 | 系统管理员已进入“需求中心”存在业务条件需求评分4.46低于4.5。 | 按钮=审批/确认;条件=需求评分4.46低于4.5 | 1. 从管理员首页左侧导航进入“需求中心”。\n2. 在列表中找到满足条件的记录需求评分4.46低于4.5。\n3. 点击该行或页面上的“审批/确认”按钮。\n4. 按页面提示执行:选择通过/确认并填写计划建议。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “审批/确认”入口可用且文案正确。\n2. 操作后结果为:需求进入待生成计划。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 需求中心的审批/确认动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=需求中心;按钮=审批/确认 | 待执行\nTC-PROTO-0223 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统总览 | 功能测试 | Listing 管理按钮级操作:查看完整信息 | P2 | 系统管理员已进入“Listing 管理”存在业务条件评分4.21接近4.2紧急阈值。 | 按钮=查看完整信息;条件=评分4.21接近4.2紧急阈值 | 1. 从管理员首页左侧导航进入“Listing 管理”。\n2. 在列表中找到满足条件的记录评分4.21接近4.2紧急阈值。\n3. 点击该行或页面上的“查看完整信息”按钮。\n4. 按页面提示执行查看ASIN完整站点与评价数据。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “查看完整信息”入口可用且文案正确。\n2. 操作后结果为:敏感数据按权限展示。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | Listing 管理的查看完整信息动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=Listing 管理;按钮=查看完整信息 | 待执行\nTC-PROTO-0224 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统总览 | 功能测试 | Listing 管理按钮级操作:创建紧急策略 | P2 | 系统管理员已进入“Listing 管理”存在业务条件紧急Listing未处理7条。 | 按钮=创建紧急策略;条件=紧急Listing未处理7条 | 1. 从管理员首页左侧导航进入“Listing 管理”。\n2. 在列表中找到满足条件的记录紧急Listing未处理7条。\n3. 点击该行或页面上的“创建紧急策略”按钮。\n4. 按页面提示执行:填写策略参与人员与截止时间。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “创建紧急策略”入口可用且文案正确。\n2. 操作后结果为:生成紧急策略审批事项。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | Listing 管理的创建紧急策略动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=Listing 管理;按钮=创建紧急策略 | 待执行\nTC-PROTO-0225 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | Listing 管理 | 系统总览 | 功能测试 | Listing 管理按钮级操作:审批/确认 | P2 | 系统管理员已进入“Listing 管理”;存在业务条件:待系统管理员确认。 | 按钮=审批/确认;条件=待系统管理员确认 | 1. 从管理员首页左侧导航进入“Listing 管理”。\n2. 在列表中找到满足条件的记录:待系统管理员确认。\n3. 点击该行或页面上的“审批/确认”按钮。\n4. 按页面提示执行:确认联合策略。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “审批/确认”入口可用且文案正确。\n2. 操作后结果为:状态进入用户运营执行。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | Listing 管理的审批/确认动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=Listing 管理;按钮=审批/确认 | 待执行\nTC-PROTO-0226 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统总览 | 功能测试 | 计划中心按钮级操作:生成计划 | P2 | 系统管理员已进入“计划中心”;存在业务条件:已确认需求存在且目标量明确。 | 按钮=生成计划;条件=已确认需求存在且目标量明确 | 1. 从管理员首页左侧导航进入“计划中心”。\n2. 在列表中找到满足条件的记录:已确认需求存在且目标量明确。\n3. 点击该行或页面上的“生成计划”按钮。\n4. 按页面提示执行:选择推新/回评/免评并拆分计划项。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “生成计划”入口可用且文案正确。\n2. 操作后结果为生成计划ID和计划项。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 计划中心的生成计划动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=计划中心;按钮=生成计划 | 待执行\nTC-PROTO-0227 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统总览 | 功能测试 | 计划中心按钮级操作:批量审批 | P2 | 系统管理员已进入“计划中心”;存在业务条件:多条计划处于待审批。 | 按钮=批量审批;条件=多条计划处于待审批 | 1. 从管理员首页左侧导航进入“计划中心”。\n2. 在列表中找到满足条件的记录:多条计划处于待审批。\n3. 点击该行或页面上的“批量审批”按钮。\n4. 按页面提示执行:勾选多条计划并提交统一审批意见。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “批量审批”入口可用且文案正确。\n2. 操作后结果为:批量生成审批记录。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 计划中心的批量审批动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=计划中心;按钮=批量审批 | 待执行\nTC-PROTO-0228 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 计划中心 | 系统总览 | 功能测试 | 计划中心按钮级操作:流转 | P2 | 系统管理员已进入“计划中心”;存在业务条件:计划覆盖状态部分覆盖。 | 按钮=流转;条件=计划覆盖状态部分覆盖 | 1. 从管理员首页左侧导航进入“计划中心”。\n2. 在列表中找到满足条件的记录:计划覆盖状态部分覆盖。\n3. 点击该行或页面上的“流转”按钮。\n4. 按页面提示执行:查看计划状态流转记录。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “流转”入口可用且文案正确。\n2. 操作后结果为:展示创建、审批、执行节点。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 计划中心的流转动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=计划中心;按钮=流转 | 待执行\nTC-PROTO-0229 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统总览 | 功能测试 | 推送中心按钮级操作:计划与推送分配 | P2 | 系统管理员已进入“推送中心”;存在业务条件:周度推送计划待审。 | 按钮=计划与推送分配;条件=周度推送计划待审 | 1. 从管理员首页左侧导航进入“推送中心”。\n2. 在列表中找到满足条件的记录:周度推送计划待审。\n3. 点击该行或页面上的“计划与推送分配”按钮。\n4. 按页面提示执行分配IM/EDM/TEL/App Push策略。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “计划与推送分配”入口可用且文案正确。\n2. 操作后结果为:生成推送任务。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 推送中心的计划与推送分配动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=推送中心;按钮=计划与推送分配 | 待执行\nTC-PROTO-0230 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统总览 | 功能测试 | 推送中心按钮级操作:风险复核 | P2 | 系统管理员已进入“推送中心”;存在业务条件:退订率高于基线。 | 按钮=风险复核;条件=退订率高于基线 | 1. 从管理员首页左侧导航进入“推送中心”。\n2. 在列表中找到满足条件的记录:退订率高于基线。\n3. 点击该行或页面上的“风险复核”按钮。\n4. 按页面提示执行:查看人群、素材、文案并选择暂停同策略。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “风险复核”入口可用且文案正确。\n2. 操作后结果为:推送状态变暂停待审。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 推送中心的风险复核动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=推送中心;按钮=风险复核 | 待执行\nTC-PROTO-0231 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 推送中心 | 系统总览 | 功能测试 | 推送中心按钮级操作:导出 | P2 | 系统管理员已进入“推送中心”;存在业务条件:当前筛选为推送风险。 | 按钮=导出;条件=当前筛选为推送风险 | 1. 从管理员首页左侧导航进入“推送中心”。\n2. 在列表中找到满足条件的记录:当前筛选为推送风险。\n3. 点击该行或页面上的“导出”按钮。\n4. 按页面提示执行导出推送ID、计划、渠道、发送点击回复退订。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “导出”入口可用且文案正确。\n2. 操作后结果为:导出文件脱敏。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 推送中心的导出动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=推送中心;按钮=导出 | 待执行\nTC-PROTO-0232 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统总览 | 功能测试 | 客服中心按钮级操作:分配工单 | P2 | 系统管理员已进入“客服中心”;存在业务条件:差评跟进客服升级。 | 按钮=分配工单;条件=差评跟进客服升级 | 1. 从管理员首页左侧导航进入“客服中心”。\n2. 在列表中找到满足条件的记录:差评跟进客服升级。\n3. 点击该行或页面上的“分配工单”按钮。\n4. 按页面提示执行选择客服A并填写分配原因。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “分配工单”入口可用且文案正确。\n2. 操作后结果为:工单状态变处理中。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 客服中心的分配工单动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=客服中心;按钮=分配工单 | 待执行\nTC-PROTO-0233 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统总览 | 功能测试 | 客服中心按钮级操作:流转 | P2 | 系统管理员已进入“客服中心”;存在业务条件:承诺配合用户待回访。 | 按钮=流转;条件=承诺配合用户待回访 | 1. 从管理员首页左侧导航进入“客服中心”。\n2. 在列表中找到满足条件的记录:承诺配合用户待回访。\n3. 点击该行或页面上的“流转”按钮。\n4. 按页面提示执行查看待回访和请假0.5天影响。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “流转”入口可用且文案正确。\n2. 操作后结果为:生成回访待办。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 客服中心的流转动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=客服中心;按钮=流转 | 待执行\nTC-PROTO-0234 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服中心 | 系统总览 | 功能测试 | 客服中心按钮级操作:导出 | P2 | 系统管理员已进入“客服中心”;存在业务条件:菲律宾团队管理。 | 按钮=导出;条件=菲律宾团队管理 | 1. 从管理员首页左侧导航进入“客服中心”。\n2. 在列表中找到满足条件的记录:菲律宾团队管理。\n3. 点击该行或页面上的“导出”按钮。\n4. 按页面提示执行:导出工作时长、出勤、人均产出。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “导出”入口可用且文案正确。\n2. 操作后结果为:仅主管可导出。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 客服中心的导出动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=客服中心;按钮=导出 | 待执行\nTC-PROTO-0235 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统总览 | 功能测试 | 风险中心按钮级操作:同步黑名单 | P2 | 系统管理员已进入“风险中心”;存在业务条件:接口超时失败待重试。 | 按钮=同步黑名单;条件=接口超时失败待重试 | 1. 从管理员首页左侧导航进入“风险中心”。\n2. 在列表中找到满足条件的记录:接口超时失败待重试。\n3. 点击该行或页面上的“同步黑名单”按钮。\n4. 按页面提示执行:点击同步黑名单。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “同步黑名单”入口可用且文案正确。\n2. 操作后结果为:失败保留并进入重试队列。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 风险中心的同步黑名单动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=风险中心;按钮=同步黑名单 | 待执行\nTC-PROTO-0236 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统总览 | 功能测试 | 风险中心按钮级操作:规则复核 | P2 | 系统管理员已进入“风险中心”;存在业务条件:退订率高于基线规则提醒。 | 按钮=规则复核;条件=退订率高于基线规则提醒 | 1. 从管理员首页左侧导航进入“风险中心”。\n2. 在列表中找到满足条件的记录:退订率高于基线规则提醒。\n3. 点击该行或页面上的“规则复核”按钮。\n4. 按页面提示执行:查看规则依据并确认/误报。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “规则复核”入口可用且文案正确。\n2. 操作后结果为:复核结论写入风险事件。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 风险中心的规则复核动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=风险中心;按钮=规则复核 | 待执行\nTC-PROTO-0237 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统总览 | 功能测试 | 风险中心按钮级操作:查看完整信息 | P2 | 系统管理员已进入“风险中心”存在业务条件Profile/邮箱/设备号脱敏。 | 按钮=查看完整信息;条件=Profile/邮箱/设备号脱敏 | 1. 从管理员首页左侧导航进入“风险中心”。\n2. 在列表中找到满足条件的记录Profile/邮箱/设备号脱敏。\n3. 点击该行或页面上的“查看完整信息”按钮。\n4. 按页面提示执行:授权角色查看完整主体摘要。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “查看完整信息”入口可用且文案正确。\n2. 操作后结果为:记录敏感访问审计。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 风险中心的查看完整信息动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=风险中心;按钮=查看完整信息 | 待执行\nTC-PROTO-0238 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统总览 | 功能测试 | 报表中心按钮级操作:生成/下载报表 | P2 | 系统管理员已进入“报表中心”存在业务条件Listing健康日报每日08:30自动生成。 | 按钮=生成/下载报表;条件=Listing健康日报每日08:30自动生成 | 1. 从管理员首页左侧导航进入“报表中心”。\n2. 在列表中找到满足条件的记录Listing健康日报每日08:30自动生成。\n3. 点击该行或页面上的“生成/下载报表”按钮。\n4. 按页面提示执行:点击生成/下载报表。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “生成/下载报表”入口可用且文案正确。\n2. 操作后结果为:生成记录可下载且脱敏。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 报表中心的生成/下载报表动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=报表中心;按钮=生成/下载报表 | 待执行\nTC-PROTO-0239 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统总览 | 功能测试 | 报表中心按钮级操作:上传记录 | P2 | 系统管理员已进入“报表中心”;存在业务条件:推送效果与风险复盘支持上传补充记录。 | 按钮=上传记录;条件=推送效果与风险复盘支持上传补充记录 | 1. 从管理员首页左侧导航进入“报表中心”。\n2. 在列表中找到满足条件的记录:推送效果与风险复盘支持上传补充记录。\n3. 点击该行或页面上的“上传记录”按钮。\n4. 按页面提示执行:上传人工复核附件。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “上传记录”入口可用且文案正确。\n2. 操作后结果为附件关联报表ID。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 报表中心的上传记录动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=报表中心;按钮=上传记录 | 待执行\nTC-PROTO-0240 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理 | 系统总览 | 功能测试 | 系统管理按钮级操作:新建账号 | P2 | 系统管理员已进入“系统管理”;存在业务条件:按部门角色站点数据范围开通。 | 按钮=新建账号;条件=按部门角色站点数据范围开通 | 1. 从管理员首页左侧导航进入“系统管理”。\n2. 在列表中找到满足条件的记录:按部门角色站点数据范围开通。\n3. 点击该行或页面上的“新建账号”按钮。\n4. 按页面提示执行:录入账号、部门、角色、站点范围。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “新建账号”入口可用且文案正确。\n2. 操作后结果为:账号可登录且权限生效。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 系统管理的新建账号动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=系统管理;按钮=新建账号 | 待执行\nTC-PROTO-0241 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理 | 系统总览 | 功能测试 | 系统管理按钮级操作:离职管理 | P2 | 系统管理员已进入“系统管理”;存在业务条件:停用账号交接任务回收权限。 | 按钮=离职管理;条件=停用账号交接任务回收权限 | 1. 从管理员首页左侧导航进入“系统管理”。\n2. 在列表中找到满足条件的记录:停用账号交接任务回收权限。\n3. 点击该行或页面上的“离职管理”按钮。\n4. 按页面提示执行:选择离职员工并指定交接人。\n5. 提交后回到列表并重新打开该记录详情。 | 1. “离职管理”入口可用且文案正确。\n2. 操作后结果为:账号停用且敏感权限回收。\n3. 列表状态、详情状态流转记录和通知/审计同步更新。 | 操作前后记录ID不变状态、负责人、处理意见、附件或导出记录按动作写入。 | 仅授权角色可执行该按钮动作;敏感查看、导出、审批、黑名单同步需独立授权。 | 系统管理的离职管理动作可执行、可追踪、无越权。 | 00-系统总览02-需求与计划管理04-多渠道触达05-客服工单06-风险与反欺诈07-评价结果追踪09-审计与通知 | v7页面=系统管理;按钮=离职管理 | 待执行\nTC-PROTO-0242 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP 用户管理搜索JOYHUB用户ID | P2 | v10原型进入现有ERP模块当前页为“用户管理”用户具备字段查询权限。 | 操作=输入JOYHUB ID并查询预期=返回用户主档、标签、身份、产品关系 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“用户管理”。\n3. 执行业务操作输入JOYHUB ID并查询。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“搜索JOYHUB用户ID”。\n2. 输出结果为:返回用户主档、标签、身份、产品关系。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 用户管理的搜索JOYHUB用户ID可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP用户管理/搜索JOYHUB用户ID | 待执行\nTC-PROTO-0243 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP 用户管理按国家和近7天EDM次数筛选 | P2 | v10原型进入现有ERP模块当前页为“用户管理”用户具备字段查询权限。 | 操作=国家=USEDM近7天>0预期=返回可用于触达的人群 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“用户管理”。\n3. 执行业务操作:国家=USEDM近7天>0。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“按国家和近7天EDM次数筛选”。\n2. 输出结果为:返回可用于触达的人群。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 用户管理的按国家和近7天EDM次数筛选可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP用户管理/按国家和近7天EDM次数筛选 | 待执行\nTC-PROTO-0244 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-用户管理 | 用户身份与上下文 | 功能测试 | 现有ERP 用户管理:打开用户画像详情 | P2 | v10原型进入现有ERP模块当前页为“用户管理”用户具备字段查询权限。 | 操作=点击用户行详情;预期=展示注册/活跃时间、标签、产品、活动 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“用户管理”。\n3. 执行业务操作:点击用户行详情。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“打开用户画像详情”。\n2. 输出结果为:展示注册/活跃时间、标签、产品、活动。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 用户管理的打开用户画像详情可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP用户管理/打开用户画像详情 | 待执行\nTC-PROTO-0245 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-用户标签:新增标签覆盖查询 | P2 | v10原型进入现有ERP模块当前页为“公域-用户标签”;用户具备字段查询权限。 | 操作=标签分类=兴趣;打标方式=系统;预期=展示覆盖人数和最新打标时间 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-用户标签”。\n3. 执行业务操作:标签分类=兴趣;打标方式=系统。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“新增标签覆盖查询”。\n2. 输出结果为:展示覆盖人数和最新打标时间。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-用户标签的新增标签覆盖查询可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-用户标签/新增标签覆盖查询 | 待执行\nTC-PROTO-0246 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-用户标签:覆盖人数异常提示 | P2 | v10原型进入现有ERP模块当前页为“公域-用户标签”;用户具备字段查询权限。 | 操作=标签覆盖人数突增或为0预期=展示异常覆盖提示 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-用户标签”。\n3. 执行业务操作标签覆盖人数突增或为0。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“覆盖人数异常提示”。\n2. 输出结果为:展示异常覆盖提示。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-用户标签的覆盖人数异常提示可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-用户标签/覆盖人数异常提示 | 待执行\nTC-PROTO-0247 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-产品标签产品标签关联Listing | P2 | v10原型进入现有ERP模块当前页为“公域-产品标签”;用户具备字段查询权限。 | 操作=选择产品标签并查看关联产品;预期=展示产品-品牌-Listing/ASIN关系 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-产品标签”。\n3. 执行业务操作:选择产品标签并查看关联产品。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“产品标签关联Listing”。\n2. 输出结果为:展示产品-品牌-Listing/ASIN关系。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-产品标签的产品标签关联Listing可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-产品标签/产品标签关联Listing | 待执行\nTC-PROTO-0248 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-公域-产品标签 | 用户身份与上下文 | 功能测试 | 现有ERP 公域-产品标签:按创建时间筛选标签 | P2 | v10原型进入现有ERP模块当前页为“公域-产品标签”;用户具备字段查询权限。 | 操作=开始/截止时间;预期=只返回时间范围内标签 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“公域-产品标签”。\n3. 执行业务操作:开始/截止时间。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“按创建时间筛选标签”。\n2. 输出结果为:只返回时间范围内标签。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 公域-产品标签的按创建时间筛选标签可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP公域-产品标签/按创建时间筛选标签 | 待执行\nTC-PROTO-0249 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 私域-用户标签:客服分组标签查询 | P2 | v10原型进入现有ERP模块当前页为“私域-用户标签”;用户具备字段查询权限。 | 操作=标签分类=客服分组;预期=输出私域用户标签与社群/活动关系 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“私域-用户标签”。\n3. 执行业务操作:标签分类=客服分组。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“客服分组标签查询”。\n2. 输出结果为:输出私域用户标签与社群/活动关系。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 私域-用户标签的客服分组标签查询可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP私域-用户标签/客服分组标签查询 | 待执行\nTC-PROTO-0250 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-私域-用户标签 | 用户身份与上下文 | 功能测试 | 现有ERP 私域-用户标签:风险用户隔离标签 | P2 | v10原型进入现有ERP模块当前页为“私域-用户标签”;用户具备字段查询权限。 | 操作=标签状态=启用;风险相关;预期=可作为客服/推送排除条件 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“私域-用户标签”。\n3. 执行业务操作:标签状态=启用;风险相关。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“风险用户隔离标签”。\n2. 输出结果为:可作为客服/推送排除条件。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 私域-用户标签的风险用户隔离标签可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP私域-用户标签/风险用户隔离标签 | 待执行\nTC-PROTO-0251 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP 身份管理:查看多语言图标 | P2 | v10原型进入现有ERP模块当前页为“身份管理”用户具备字段查询权限。 | 操作=打开身份详情;预期=展示英/德/日图标PNG | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“身份管理”。\n3. 执行业务操作:打开身份详情。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“查看多语言图标”。\n2. 输出结果为:展示英/德/日图标PNG。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 身份管理的查看多语言图标可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP身份管理/查看多语言图标 | 待执行\nTC-PROTO-0252 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP 身份管理:身份风险等级筛选 | P2 | v10原型进入现有ERP模块当前页为“身份管理”用户具备字段查询权限。 | 操作=身份风险等级=高;预期=进入风险用户池候选 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“身份管理”。\n3. 执行业务操作:身份风险等级=高。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“身份风险等级筛选”。\n2. 输出结果为:进入风险用户池候选。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 身份管理的身份风险等级筛选可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP身份管理/身份风险等级筛选 | 待执行\nTC-PROTO-0253 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP-身份管理 | 用户身份与上下文 | 功能测试 | 现有ERP 身份管理:身份状态停用 | P2 | v10原型进入现有ERP模块当前页为“身份管理”用户具备字段查询权限。 | 操作=将风险身份置为停用;预期=后续筛选不再作为可选身份 | 1. 打开v10管理员原型。\n2. 点击“现有ERP”并进入“身份管理”。\n3. 执行业务操作:将风险身份置为停用。\n4. 查看列表、字段表、关系对象和MVP纳入方式。\n5. 点击导出现有关系或查看详情。 | 1. 页面完成操作“身份状态停用”。\n2. 输出结果为:后续筛选不再作为可选身份。\n3. 字段来源和关系对象展示清晰。\n4. 导出/详情遵循字段脱敏。 | 现有字段、查询条件、关系对象、MVP纳入方式保持一致导出数据不超范围。 | 无字段权限角色不能查看完整身份、邮箱、风险等级等敏感字段。 | 身份管理的身份状态停用可用于MVP建模和测试追踪。 | 01-用户身份与上下文v10现有ERP字段说明 | v10现有ERP身份管理/身份状态停用 | 待执行\nTC-PROTO-0254 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态待分配执行分配给客服A | P2 | 客服执行看板存在状态为“待分配”的工单;当前用户对该工单有处理权限。 | 当前状态=待分配;动作=分配给客服A | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“待分配”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“分配给客服A”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“待分配”的工单可执行“分配给客服A”。\n2. 执行结果assigned_agent=客服A写入assignment_logs。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=待分配;动作=分配给客服A | 待执行\nTC-PROTO-0255 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态已分配执行客服首次回复 | P2 | 客服执行看板存在状态为“已分配”的工单;当前用户对该工单有处理权限。 | 当前状态=已分配;动作=客服首次回复 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“已分配”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“客服首次回复”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“已分配”的工单可执行“客服首次回复”。\n2. 执行结果:记录首次回复时长并进入处理中。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=已分配;动作=客服首次回复 | 待执行\nTC-PROTO-0256 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择等待用户回复 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择等待用户回复 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择等待用户回复”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择等待用户回复”。\n2. 执行结果:状态变等待用户,设置提醒时间。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择等待用户回复 | 待执行\nTC-PROTO-0257 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择等待内部协同 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择等待内部协同 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择等待内部协同”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择等待内部协同”。\n2. 执行结果:状态变等待内部,通知内部负责人。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择等待内部协同 | 待执行\nTC-PROTO-0258 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择答应配合 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择答应配合 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择答应配合”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择答应配合”。\n2. 执行结果创建support_followups状态PROMISED。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择答应配合 | 待执行\nTC-PROTO-0259 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态处理中执行选择疑似诈骗 | P2 | 客服执行看板存在状态为“处理中”的工单;当前用户对该工单有处理权限。 | 当前状态=处理中;动作=选择疑似诈骗 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“处理中”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“选择疑似诈骗”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“处理中”的工单可执行“选择疑似诈骗”。\n2. 执行结果:生成风险案件并标记工单疑似诈骗。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=处理中;动作=选择疑似诈骗 | 待执行\nTC-PROTO-0260 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态等待用户执行用户回复后继续处理 | P2 | 客服执行看板存在状态为“等待用户”的工单;当前用户对该工单有处理权限。 | 当前状态=等待用户;动作=用户回复后继续处理 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“等待用户”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“用户回复后继续处理”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“等待用户”的工单可执行“用户回复后继续处理”。\n2. 执行结果:状态回到处理中并记录用户消息。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=等待用户;动作=用户回复后继续处理 | 待执行\nTC-PROTO-0261 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态等待内部执行内部反馈完成 | P2 | 客服执行看板存在状态为“等待内部”的工单;当前用户对该工单有处理权限。 | 当前状态=等待内部;动作=内部反馈完成 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“等待内部”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“内部反馈完成”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“等待内部”的工单可执行“内部反馈完成”。\n2. 执行结果:状态回到处理中并追加内部协同记录。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=等待内部;动作=内部反馈完成 | 待执行\nTC-PROTO-0262 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态已解决执行关闭工单 | P2 | 客服执行看板存在状态为“已解决”的工单;当前用户对该工单有处理权限。 | 当前状态=已解决;动作=关闭工单 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“已解决”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“关闭工单”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“已解决”的工单可执行“关闭工单”。\n2. 执行结果resolved_at和closed状态写入。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=已解决;动作=关闭工单 | 待执行\nTC-PROTO-0263 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态疑似诈骗执行风险确认误报 | P2 | 客服执行看板存在状态为“疑似诈骗”的工单;当前用户对该工单有处理权限。 | 当前状态=疑似诈骗;动作=风险确认误报 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“疑似诈骗”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“风险确认误报”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“疑似诈骗”的工单可执行“风险确认误报”。\n2. 执行结果:工单可回到处理中或已解决。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=疑似诈骗;动作=风险确认误报 | 待执行\nTC-PROTO-0264 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态疑似诈骗执行风险确认诈骗 | P2 | 客服执行看板存在状态为“疑似诈骗”的工单;当前用户对该工单有处理权限。 | 当前状态=疑似诈骗;动作=风险确认诈骗 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“疑似诈骗”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“风险确认诈骗”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“疑似诈骗”的工单可执行“风险确认诈骗”。\n2. 执行结果:工单关闭并进入黑名单同步候选。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=疑似诈骗;动作=风险确认诈骗 | 待执行\nTC-PROTO-0265 | 客服执行.html | 客服工单状态机 | 客服工单与管理 | 流程测试 | 客服工单状态已关闭执行尝试再次回复 | P2 | 客服执行看板存在状态为“已关闭”的工单;当前用户对该工单有处理权限。 | 当前状态=已关闭;动作=尝试再次回复 | 1. 登录客服执行看板。\n2. 在工单列表筛选状态“已关闭”。\n3. 打开一条工单详情,查看用户上下文、聊天记录和处理历史。\n4. 点击处理动作“尝试再次回复”。\n5. 按要求填写处理说明并提交。\n6. 返回列表确认状态与数量变化。 | 1. 状态为“已关闭”的工单可执行“尝试再次回复”。\n2. 执行结果:禁止直接回复,需重新打开或新建工单。\n3. 工单处理历史追加记录,绩效指标按规则更新。 | support_tickets.status、resolved_at、assigned_agent、followup状态与操作结果一致。 | 客服仅处理本人分配工单;组长/主管可处理组内改派和复核。 | 客服状态机动作合法,不能出现非法跳转。 | 05-客服工单与管理 状态流转 | 客服状态=已关闭;动作=尝试再次回复 | 待执行\nTC-PROTO-0266 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色Amazon运营模块访问与按钮权限 | P1 | 准备角色为“Amazon运营”的账号系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=Amazon运营可见范围=需求中心/ASIN/计划审核查看;允许=创建需求、查看ASIN健康限制=不能审批用户运营计划或查看完整用户敏感信息 | 1. 使用“Amazon运营”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作创建需求、查看ASIN健康。\n4. 尝试通过URL hash或按钮执行限制动作不能审批用户运营计划或查看完整用户敏感信息。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. Amazon运营只能访问“需求中心/ASIN/计划审核查看”。\n2. 允许动作“创建需求、查看ASIN健康”可正常执行。\n3. 限制动作“不能审批用户运营计划或查看完整用户敏感信息”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | Amazon运营权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=Amazon运营 | 待执行\nTC-PROTO-0267 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色用户运营模块访问与按钮权限 | P1 | 准备角色为“用户运营”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=用户运营;可见范围=需求中心/计划中心/推送中心/用户中心;允许=评估需求、生成计划、圈选人群、触达;限制=不能同步黑名单或配置系统权限 | 1. 使用“用户运营”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:评估需求、生成计划、圈选人群、触达。\n4. 尝试通过URL hash或按钮执行限制动作不能同步黑名单或配置系统权限。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 用户运营只能访问“需求中心/计划中心/推送中心/用户中心”。\n2. 允许动作“评估需求、生成计划、圈选人群、触达”可正常执行。\n3. 限制动作“不能同步黑名单或配置系统权限”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 用户运营权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=用户运营 | 待执行\nTC-PROTO-0268 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色客服模块访问与按钮权限 | P1 | 准备角色为“客服”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=客服;可见范围=客服中心/用户上下文摘要/评价登记;允许=处理工单、登记评价提交;限制=不能查看跨团队绩效和完整设备号 | 1. 使用“客服”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:处理工单、登记评价提交。\n4. 尝试通过URL hash或按钮执行限制动作不能查看跨团队绩效和完整设备号。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 客服只能访问“客服中心/用户上下文摘要/评价登记”。\n2. 允许动作“处理工单、登记评价提交”可正常执行。\n3. 限制动作“不能查看跨团队绩效和完整设备号”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 客服权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=客服 | 待执行\nTC-PROTO-0269 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色客服主管模块访问与按钮权限 | P1 | 准备角色为“客服主管”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=客服主管;可见范围=客服中心/客服执行看板/绩效;允许=分配工单、查看组内绩效、排班;限制=不能审批免评计划除非授权 | 1. 使用“客服主管”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:分配工单、查看组内绩效、排班。\n4. 尝试通过URL hash或按钮执行限制动作不能审批免评计划除非授权。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 客服主管只能访问“客服中心/客服执行看板/绩效”。\n2. 允许动作“分配工单、查看组内绩效、排班”可正常执行。\n3. 限制动作“不能审批免评计划除非授权”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 客服主管权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=客服主管 | 待执行\nTC-PROTO-0270 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色风险负责人模块访问与按钮权限 | P1 | 准备角色为“风险负责人”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=风险负责人;可见范围=风险中心/黑名单/审计;允许=复核风险、同步黑名单、标记误报;限制=不能修改计划目标量 | 1. 使用“风险负责人”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:复核风险、同步黑名单、标记误报。\n4. 尝试通过URL hash或按钮执行限制动作不能修改计划目标量。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 风险负责人只能访问“风险中心/黑名单/审计”。\n2. 允许动作“复核风险、同步黑名单、标记误报”可正常执行。\n3. 限制动作“不能修改计划目标量”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 风险负责人权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=风险负责人 | 待执行\nTC-PROTO-0271 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色KOC运营模块访问与按钮权限 | P1 | 准备角色为“KOC运营”的账号系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=KOC运营可见范围=KOC/KOL协作允许=维护Brief、CODE、内容记录限制=不能查看普通用户完整身份线索 | 1. 使用“KOC运营”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作维护Brief、CODE、内容记录。\n4. 尝试通过URL hash或按钮执行限制动作不能查看普通用户完整身份线索。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. KOC运营只能访问“KOC/KOL协作”。\n2. 允许动作“维护Brief、CODE、内容记录”可正常执行。\n3. 限制动作“不能查看普通用户完整身份线索”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | KOC运营权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=KOC运营 | 待执行\nTC-PROTO-0272 | 用户运营系统-单文件.html | 全局权限 | 系统总览 | 权限校验 | 单文件系统角色系统管理员模块访问与按钮权限 | P1 | 准备角色为“系统管理员”的账号;系统存在需求、计划、用户、工单、风险、评价等数据。 | 角色=系统管理员;可见范围=全部模块;允许=账号权限、审计、配置、跨部门看板;限制=敏感访问仍需审计 | 1. 使用“系统管理员”账号登录单文件系统。\n2. 逐个访问导航模块,记录可见页面。\n3. 在可见页面尝试执行允许动作:账号权限、审计、配置、跨部门看板。\n4. 尝试通过URL hash或按钮执行限制动作敏感访问仍需审计。\n5. 查看审计日志中是否记录越权或敏感访问。 | 1. 系统管理员只能访问“全部模块”。\n2. 允许动作“账号权限、审计、配置、跨部门看板”可正常执行。\n3. 限制动作“敏感访问仍需审计”不可执行直接URL也无法绕过。\n4. 敏感访问和越权尝试有审计记录。 | 前端菜单、按钮、后端接口权限一致;角色切换后缓存权限刷新。 | 系统管理员权限边界符合角色职责。 | 模块访问、按钮权限、数据范围、审计均正确。 | 00-系统总览 角色前端映射09-审计与通知中心 | 单文件系统角色=系统管理员 | 待执行\nTC-PROTO-0273 | 用户运营系统-单文件.html | 需求中心 | 需求中心 | 数据校验 | 需求中心执行导出待评估需求并校验导出脱敏与范围 | P2 | 已进入“需求中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=待评估;导出内容=导出demands当前筛选字段 | 1. 打开“需求中心”。\n2. 设置筛选条件:筛选状态=待评估。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出demands当前筛选字段。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=需求中心;导出=导出待评估需求 | 待执行\nTC-PROTO-0274 | 用户运营系统-单文件.html | 计划审核 | 计划审核 | 数据校验 | 计划审核执行导出审批记录并校验导出脱敏与范围 | P2 | 已进入“计划审核”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选审批状态=待审批;导出内容=导出approval_records | 1. 打开“计划审核”。\n2. 设置筛选条件:筛选审批状态=待审批。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出approval_records。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=计划审核;导出=导出审批记录 | 待执行\nTC-PROTO-0275 | 用户运营系统-单文件.html | 计划中心 | 计划中心 | 数据校验 | 计划中心执行导出计划执行进度并校验导出脱敏与范围 | P2 | 已进入“计划中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=执行中;导出内容=导出计划、计划项、完成率 | 1. 打开“计划中心”。\n2. 设置筛选条件:筛选状态=执行中。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出计划、计划项、完成率。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=计划中心;导出=导出计划执行进度 | 待执行\nTC-PROTO-0276 | 用户运营系统-单文件.html | ASIN/Listing | ASIN/Listing | 数据校验 | ASIN/Listing执行导出健康风险ASIN并校验导出脱敏与范围 | P2 | 已进入“ASIN/Listing”当前角色具备导出权限列表支持筛选和导出。 | 筛选=筛选健康状态=风险/严重风险;导出内容=导出评分、评价数、差评数 | 1. 打开“ASIN/Listing”。\n2. 设置筛选条件:筛选健康状态=风险/严重风险。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出评分、评价数、差评数。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=ASIN/Listing导出=导出健康风险ASIN | 待执行\nTC-PROTO-0277 | 用户运营系统-单文件.html | 用户中心 | 用户中心 | 数据校验 | 用户中心执行导出人群包并校验导出脱敏与范围 | P2 | 已进入“用户中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选标签/国家/产品绑定;导出内容=导出脱敏用户ID和标签 | 1. 打开“用户中心”。\n2. 设置筛选条件:筛选标签/国家/产品绑定。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出脱敏用户ID和标签。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=用户中心;导出=导出人群包 | 待执行\nTC-PROTO-0278 | 用户运营系统-单文件.html | 额度频控 | 额度频控 | 数据校验 | 额度频控执行导出额度预警用户并校验导出脱敏与范围 | P2 | 已进入“额度频控”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选status=warning/exceeded导出内容=导出额度台账摘要 | 1. 打开“额度频控”。\n2. 设置筛选条件筛选status=warning/exceeded。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出额度台账摘要。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=额度频控;导出=导出额度预警用户 | 待执行\nTC-PROTO-0279 | 用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 数据校验 | 推送/触达执行导出退订用户并校验导出脱敏与范围 | P2 | 已进入“推送/触达”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选event=UNSUBSCRIBED导出内容=导出退订事件和渠道 | 1. 打开“推送/触达”。\n2. 设置筛选条件筛选event=UNSUBSCRIBED。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出退订事件和渠道。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=推送/触达;导出=导出退订用户 | 待执行\nTC-PROTO-0280 | 用户运营系统-单文件.html | 客服中心 | 客服中心 | 数据校验 | 客服中心执行导出超时工单并校验导出脱敏与范围 | P2 | 已进入“客服中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=等待用户且超时;导出内容=导出工单与负责人 | 1. 打开“客服中心”。\n2. 设置筛选条件:筛选状态=等待用户且超时。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出工单与负责人。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=客服中心;导出=导出超时工单 | 待执行\nTC-PROTO-0281 | 用户运营系统-单文件.html | 风险中心 | 风险中心 | 数据校验 | 风险中心执行导出风险案件并校验导出脱敏与范围 | P2 | 已进入“风险中心”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选状态=人工复核中;导出内容=导出风险摘要脱敏 | 1. 打开“风险中心”。\n2. 设置筛选条件:筛选状态=人工复核中。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出风险摘要脱敏。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=风险中心;导出=导出风险案件 | 待执行\nTC-PROTO-0282 | 用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 数据校验 | 评价追踪执行导出异常观察队列并校验导出脱敏与范围 | P2 | 已进入“评价追踪”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选status=OBSERVING/ABNORMAL导出内容=导出提交和核验摘要 | 1. 打开“评价追踪”。\n2. 设置筛选条件筛选status=OBSERVING/ABNORMAL。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出提交和核验摘要。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=评价追踪;导出=导出异常观察队列 | 待执行\nTC-PROTO-0283 | 用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 数据校验 | KOC/KOL执行导出逾期协作任务并校验导出脱敏与范围 | P2 | 已进入“KOC/KOL”当前角色具备导出权限列表支持筛选和导出。 | 筛选=筛选状态=逾期;导出内容=导出CODE/Brief/负责人 | 1. 打开“KOC/KOL”。\n2. 设置筛选条件:筛选状态=逾期。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为导出CODE/Brief/负责人。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=KOC/KOL导出=导出逾期协作任务 | 待执行\nTC-PROTO-0284 | 用户运营系统-单文件.html | 审计通知 | 审计通知 | 数据校验 | 审计通知执行导出敏感动作日志并校验导出脱敏与范围 | P2 | 已进入“审计通知”;当前角色具备导出权限;列表支持筛选和导出。 | 筛选=筛选动作=查看完整信息/导出;导出内容=导出审计日志 | 1. 打开“审计通知”。\n2. 设置筛选条件:筛选动作=查看完整信息/导出。\n3. 点击查询并确认列表有数据。\n4. 点击导出。\n5. 打开导出文件,检查字段、数据范围和脱敏内容。\n6. 回到审计通知页面查询导出日志。 | 1. 导出内容为:导出审计日志。\n2. 导出文件仅包含当前筛选范围。\n3. 敏感字段脱敏。\n4. 审计日志记录导出人、时间、筛选条件和导出对象。 | 导出总数与列表筛选总数一致;脱敏规则与页面展示一致。 | 无导出权限时按钮隐藏或后端拒绝;导出权限与查看完整信息权限分离。 | 导出范围准确、脱敏有效、审计可查。 | 09-审计与通知中心;各子系统数据对象 | 单文件页面=审计通知;导出=导出敏感动作日志 | 待执行\nTC-PROTO-0285 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台 | 系统稳定性与幂等 | 异常场景 | 工作台稳定性校验:重复点击处理卡点 | P2 | 已进入“工作台”;准备可执行场景:重复点击处理卡点。 | 动作=连续点击处理卡点按钮2次预期=只打开一个详情/处理弹窗,不重复创建处理记录 | 1. 打开原型页面“工作台”。\n2. 准备或选择满足场景的数据。\n3. 执行操作连续点击处理卡点按钮2次。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只打开一个详情/处理弹窗,不重复创建处理记录。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:重复点击处理卡点 | 待执行\nTC-PROTO-0286 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 工作台 | 系统稳定性与幂等 | 异常场景 | 工作台稳定性校验:刷新后保持时间范围 | P2 | 已进入“工作台”;准备可执行场景:刷新后保持时间范围。 | 动作=选择最近30天后刷新页面预期=仍显示最近30天或按产品定义恢复默认并不报错 | 1. 打开原型页面“工作台”。\n2. 准备或选择满足场景的数据。\n3. 执行操作选择最近30天后刷新页面。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为仍显示最近30天或按产品定义恢复默认并不报错。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:刷新后保持时间范围 | 待执行\nTC-PROTO-0287 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险中心 | 系统稳定性与幂等 | 异常场景 | 风险中心稳定性校验:黑名单同步重复提交 | P2 | 已进入“风险中心”;准备可执行场景:黑名单同步重复提交。 | 动作=同步黑名单按钮连续点击;预期=只生成一次同步任务,第二次提示处理中 | 1. 打开原型页面“风险中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:同步黑名单按钮连续点击。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只生成一次同步任务,第二次提示处理中。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:黑名单同步重复提交 | 待执行\nTC-PROTO-0288 | 20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 报表中心 | 系统稳定性与幂等 | 异常场景 | 报表中心稳定性校验:报表生成中重复下载 | P2 | 已进入“报表中心”;准备可执行场景:报表生成中重复下载。 | 动作=报表状态自动生成中点击下载;预期=提示生成中,不下载空文件 | 1. 打开原型页面“报表中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:报表状态自动生成中点击下载。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示生成中,不下载空文件。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:报表生成中重复下载 | 待执行\nTC-PROTO-0289 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP | 系统稳定性与幂等 | 异常场景 | 现有ERP稳定性校验生成字段表重复点击 | P2 | 已进入“现有ERP”准备可执行场景生成字段表重复点击。 | 动作=连续点击生成字段表;预期=字段表只生成一份或版本号递增可追踪 | 1. 打开原型页面“现有ERP”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:连续点击生成字段表。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:字段表只生成一份或版本号递增可追踪。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:生成字段表重复点击 | 待执行\nTC-PROTO-0290 | user_erp_mvp_admin_prototype_v10(1).html | 现有ERP | 系统稳定性与幂等 | 异常场景 | 现有ERP稳定性校验导出现有关系无数据 | P2 | 已进入“现有ERP”准备可执行场景导出现有关系无数据。 | 动作=查询结果为空后导出;预期=提示暂无可导出数据 | 1. 打开原型页面“现有ERP”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:查询结果为空后导出。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示暂无可导出数据。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:导出现有关系无数据 | 待执行\nTC-PROTO-0291 | user_erp_mvp_admin_prototype_v10(1).html | 身份管理 | 系统稳定性与幂等 | 异常场景 | 身份管理稳定性校验:多语言图标缺失 | P2 | 已进入“身份管理”;准备可执行场景:多语言图标缺失。 | 动作=德语图标PNG为空预期=页面显示占位并提示需补充 | 1. 打开原型页面“身份管理”。\n2. 准备或选择满足场景的数据。\n3. 执行操作德语图标PNG为空。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:页面显示占位并提示需补充。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:多语言图标缺失 | 待执行\nTC-PROTO-0292 | user_erp_mvp_admin_prototype_v10(1).html | 用户管理 | 系统稳定性与幂等 | 异常场景 | 用户管理稳定性校验:分页切换保持筛选 | P2 | 已进入“用户管理”;准备可执行场景:分页切换保持筛选。 | 动作=筛选国家US后切换下一页预期=筛选条件不丢失 | 1. 打开原型页面“用户管理”。\n2. 准备或选择满足场景的数据。\n3. 执行操作筛选国家US后切换下一页。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:筛选条件不丢失。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:分页切换保持筛选 | 待执行\nTC-PROTO-0293 | 客服执行.html | 客服执行看板 | 系统稳定性与幂等 | 异常场景 | 客服执行看板稳定性校验:新工单到达实时刷新 | P2 | 已进入“客服执行看板”;准备可执行场景:新工单到达实时刷新。 | 动作=后台新增待分配工单;预期=看板待处理数增加并出现新工单 | 1. 打开原型页面“客服执行看板”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:后台新增待分配工单。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:看板待处理数增加并出现新工单。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:新工单到达实时刷新 | 待执行\nTC-PROTO-0294 | 客服执行.html | 客服执行看板 | 系统稳定性与幂等 | 异常场景 | 客服执行看板稳定性校验:多人同时抢单 | P2 | 已进入“客服执行看板”;准备可执行场景:多人同时抢单。 | 动作=两个客服同时领取同一工单;预期=只有一个领取成功,另一个提示已被分配 | 1. 打开原型页面“客服执行看板”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:两个客服同时领取同一工单。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只有一个领取成功,另一个提示已被分配。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:多人同时抢单 | 待执行\nTC-PROTO-0295 | 客服执行.html | 客服工单 | 系统稳定性与幂等 | 异常场景 | 客服工单稳定性校验:首次回复重复发送 | P2 | 已进入“客服工单”;准备可执行场景:首次回复重复发送。 | 动作=客服双击发送回复;预期=只发送一条消息并记录一次首次回复时长 | 1. 打开原型页面“客服工单”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:客服双击发送回复。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只发送一条消息并记录一次首次回复时长。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:首次回复重复发送 | 待执行\nTC-PROTO-0296 | 客服执行.html | 客服工单 | 系统稳定性与幂等 | 异常场景 | 客服工单稳定性校验:关闭工单后刷新 | P2 | 已进入“客服工单”;准备可执行场景:关闭工单后刷新。 | 动作=关闭工单后刷新详情页;预期=状态仍为已关闭且不可继续处理 | 1. 打开原型页面“客服工单”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:关闭工单后刷新详情页。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:状态仍为已关闭且不可继续处理。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:关闭工单后刷新 | 待执行\nTC-PROTO-0297 | 客服执行.html | 客服绩效 | 系统稳定性与幂等 | 异常场景 | 客服绩效稳定性校验:绩效周期切换 | P2 | 已进入“客服绩效”;准备可执行场景:绩效周期切换。 | 动作=日/周/月连续切换;预期=指标随周期变化且无串数据 | 1. 打开原型页面“客服绩效”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:日/周/月连续切换。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:指标随周期变化且无串数据。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:绩效周期切换 | 待执行\nTC-PROTO-0298 | 用户运营系统-单文件.html | 需求中心 | 系统稳定性与幂等 | 异常场景 | 需求中心稳定性校验:创建需求重复提交 | P2 | 已进入“需求中心”;准备可执行场景:创建需求重复提交。 | 动作=提交按钮连续点击两次;预期=只创建一个demand_id | 1. 打开原型页面“需求中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:提交按钮连续点击两次。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为只创建一个demand_id。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:创建需求重复提交 | 待执行\nTC-PROTO-0299 | 用户运营系统-单文件.html | 计划审核 | 系统稳定性与幂等 | 异常场景 | 计划审核稳定性校验:两名审批人同时审批 | P2 | 已进入“计划审核”;准备可执行场景:两名审批人同时审批。 | 动作=一个通过一个驳回并发提交;预期=按后端锁定规则只接受一个有效决策 | 1. 打开原型页面“计划审核”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:一个通过一个驳回并发提交。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:按后端锁定规则只接受一个有效决策。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:两名审批人同时审批 | 待执行\nTC-PROTO-0300 | 用户运营系统-单文件.html | 计划中心 | 系统稳定性与幂等 | 异常场景 | 计划中心稳定性校验:计划暂停后重复暂停 | P2 | 已进入“计划中心”;准备可执行场景:计划暂停后重复暂停。 | 动作=执行中计划点击暂停两次;预期=第二次提示计划已暂停 | 1. 打开原型页面“计划中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:执行中计划点击暂停两次。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:第二次提示计划已暂停。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:计划暂停后重复暂停 | 待执行\nTC-PROTO-0301 | 用户运营系统-单文件.html | 额度频控 | 系统稳定性与幂等 | 异常场景 | 额度频控稳定性校验:并发预占同一真实人最后额度 | P2 | 已进入“额度频控”;准备可执行场景:并发预占同一真实人最后额度。 | 动作=两个计划同时预占remaining=1预期=只允许一个预占成功 | 1. 打开原型页面“额度频控”。\n2. 准备或选择满足场景的数据。\n3. 执行操作两个计划同时预占remaining=1。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只允许一个预占成功。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:并发预占同一真实人最后额度 | 待执行\nTC-PROTO-0302 | 用户运营系统-单文件.html | 推送/触达 | 系统稳定性与幂等 | 异常场景 | 推送/触达稳定性校验:发送任务队列中刷新 | P2 | 已进入“推送/触达”;准备可执行场景:发送任务队列中刷新。 | 动作=点击发送后立即刷新页面;预期=任务状态可从队列恢复查询 | 1. 打开原型页面“推送/触达”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:点击发送后立即刷新页面。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:任务状态可从队列恢复查询。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:发送任务队列中刷新 | 待执行\nTC-PROTO-0303 | 用户运营系统-单文件.html | 客服中心 | 系统稳定性与幂等 | 异常场景 | 客服中心稳定性校验:同用户重复创建工单 | P2 | 已进入“客服中心”;准备可执行场景:同用户重复创建工单。 | 动作=同person_id已有open工单再次创建预期=提示关联已有工单或合并 | 1. 打开原型页面“客服中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作同person_id已有open工单再次创建。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示关联已有工单或合并。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:同用户重复创建工单 | 待执行\nTC-PROTO-0304 | 用户运营系统-单文件.html | 风险中心 | 系统稳定性与幂等 | 异常场景 | 风险中心稳定性校验:确认诈骗重复点击 | P2 | 已进入“风险中心”;准备可执行场景:确认诈骗重复点击。 | 动作=风险案件连续点击确认诈骗;预期=只同步一次黑名单候选 | 1. 打开原型页面“风险中心”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:风险案件连续点击确认诈骗。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:只同步一次黑名单候选。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:确认诈骗重复点击 | 待执行\nTC-PROTO-0305 | 用户运营系统-单文件.html | 评价追踪 | 系统稳定性与幂等 | 异常场景 | 评价追踪稳定性校验:评价提交重复登记 | P2 | 已进入“评价追踪”;准备可执行场景:评价提交重复登记。 | 动作=同person+asin+plan重复提交相同证据预期=提示重复记录或合并,不重复扣额度 | 1. 打开原型页面“评价追踪”。\n2. 准备或选择满足场景的数据。\n3. 执行操作同person+asin+plan重复提交相同证据。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:提示重复记录或合并,不重复扣额度。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:评价提交重复登记 | 待执行\nTC-PROTO-0306 | 用户运营系统-单文件.html | 评价追踪 | 系统稳定性与幂等 | 异常场景 | 评价追踪稳定性校验:展示核验重复确认 | P2 | 已进入“评价追踪”;准备可执行场景:展示核验重复确认。 | 动作=已CONFIRMED记录再次确认展示预期=计划完成数不重复增加 | 1. 打开原型页面“评价追踪”。\n2. 准备或选择满足场景的数据。\n3. 执行操作已CONFIRMED记录再次确认展示。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:计划完成数不重复增加。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:展示核验重复确认 | 待执行\nTC-PROTO-0307 | 用户运营系统-单文件.html | 系统管理 | 系统稳定性与幂等 | 异常场景 | 系统管理稳定性校验:权限变更后立即生效 | P2 | 已进入“系统管理”;准备可执行场景:权限变更后立即生效。 | 动作=撤销用户导出权限后刷新;预期=导出按钮不可用且接口拒绝 | 1. 打开原型页面“系统管理”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:撤销用户导出权限后刷新。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:导出按钮不可用且接口拒绝。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:权限变更后立即生效 | 待执行\nTC-PROTO-0308 | 用户运营系统-单文件.html | 审计通知 | 系统稳定性与幂等 | 异常场景 | 审计通知稳定性校验:审计列表空状态 | P2 | 已进入“审计通知”;准备可执行场景:审计列表空状态。 | 动作=筛选未来日期无日志;预期=显示暂无数据且可重置 | 1. 打开原型页面“审计通知”。\n2. 准备或选择满足场景的数据。\n3. 执行操作:筛选未来日期无日志。\n4. 观察页面提示、按钮状态、列表变化和详情状态。\n5. 刷新页面或重新查询该记录。\n6. 如涉及日志进入审计通知页面按对象ID查询。 | 1. 系统按幂等/空状态/刷新规则处理。\n2. 结果为:显示暂无数据且可重置。\n3. 不产生重复记录、重复扣减、重复完成数或错误状态。\n4. 刷新后状态可恢复查询。 | 校验唯一ID、状态、计数、日志数量重复操作不得造成多条业务成功记录。 | 重复/并发操作仍必须校验后端权限,不能因前端状态异常绕过权限。 | 页面在重复点击、刷新、并发、空状态下保持数据一致且用户可理解。 | 全局幂等与审计要求;各子系统状态规则 | 稳定性场景:审计列表空状态 | 待执行\n# Sheet: 覆盖矩阵\nHTML原型 | 需求模块 | 功能页面 | 测试类型 | 用例数量\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | KOC/KOL协作 | 工作台-核心KPI卡片 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 多渠道触达引擎 | 工作台-核心KPI卡片 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 审计与通知中心 | 工作台-P0/P1处理队列 | 功能测试 | 4\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 审计与通知中心 | 工作台-P0/P1处理队列 | 异常场景 | 5\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 审计与通知中心 | 工作台-P0/P1处理队列 | 流程测试 | 5\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 审计与通知中心 | 工作台-核心KPI卡片 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 客服工单与管理 | 工作台-核心KPI卡片 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 数据中心 | 工作台-时间范围与周期切换 | 数据校验 | 4\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | Listing 管理 | 功能测试 | 3\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 各模块列表-组合筛选 | 功能测试 | 5\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 客服中心 | 功能测试 | 3\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 报表中心 | 功能测试 | 2\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 推送中心 | 功能测试 | 3\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 系统管理 | 功能测试 | 2\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 计划中心 | 功能测试 | 3\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 需求中心 | 功能测试 | 3\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统总览 | 风险中心 | 功能测试 | 3\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统稳定性与幂等 | 工作台 | 异常场景 | 2\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统稳定性与幂等 | 报表中心 | 异常场景 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统稳定性与幂等 | 风险中心 | 异常场景 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | Listing 管理 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 客服中心 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 报表中心 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 推送中心 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 数据中心 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 系统管理 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 计划中心 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 需求中心 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 系统管理/页面导航 | 风险中心 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 评价结果追踪 | 工作台-核心KPI卡片 | 功能测试 | 1\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 需求与计划管理 | 工作台-核心KPI卡片 | 功能测试 | 3\n20260504_USER后台ERP_MVP管理员首页高保真原型_v7.html | 风险与反欺诈 | 工作台-核心KPI卡片 | 功能测试 | 2\nuser_erp_mvp_admin_prototype_v10(1).html | 审计与通知中心 | 系统资产-系统管理 | 权限校验 | 4\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-公域-产品标签 | 功能测试 | 2\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-公域-用户标签 | 功能测试 | 3\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-公域-用户标签 | 异常场景 | 1\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-关系图谱 | 数据校验 | 7\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-字段权限与脱敏 | 权限校验 | 6\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-查询需求矩阵 | 流程测试 | 5\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-用户管理 | 功能测试 | 4\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-用户管理 | 异常场景 | 1\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-私域-用户标签 | 功能测试 | 3\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-私域-用户标签 | 异常场景 | 1\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-身份管理 | 功能测试 | 4\nuser_erp_mvp_admin_prototype_v10(1).html | 用户身份与上下文 | 现有ERP-身份管理 | 异常场景 | 1\nuser_erp_mvp_admin_prototype_v10(1).html | 系统稳定性与幂等 | 现有ERP | 异常场景 | 2\nuser_erp_mvp_admin_prototype_v10(1).html | 系统稳定性与幂等 | 用户管理 | 异常场景 | 1\nuser_erp_mvp_admin_prototype_v10(1).html | 系统稳定性与幂等 | 身份管理 | 异常场景 | 1\nuser_erp_mvp_admin_prototype_v10(1).html | 需求与计划管理 | 现有ERP-公域-产品标签 | 功能测试 | 1\nuser_erp_mvp_admin_prototype_v10(1).html | 需求与计划管理 | 现有ERP-公域-产品标签 | 异常场景 | 1\n客服执行.html | 多渠道触达引擎 | 客服执行看板 | 功能测试 | 1\n客服执行.html | 客服工单与管理 | 客服工单状态机 | 流程测试 | 12\n客服执行.html | 客服工单与管理 | 客服工单生命周期 | 流程测试 | 10\n客服执行.html | 客服工单与管理 | 客服异常处理 | 异常场景 | 10\n客服执行.html | 客服工单与管理 | 客服执行看板 | 功能测试 | 10\n客服执行.html | 客服工单与管理 | 客服执行看板-角色权限 | 权限校验 | 5\n客服执行.html | 系统稳定性与幂等 | 客服工单 | 异常场景 | 2\n客服执行.html | 系统稳定性与幂等 | 客服执行看板 | 异常场景 | 2\n客服执行.html | 系统稳定性与幂等 | 客服绩效 | 异常场景 | 1\n客服执行.html | 评价结果追踪 | 客服执行看板 | 功能测试 | 3\n用户运营系统-单文件.html | ASIN/Listing | ASIN/Listing | 功能测试 | 1\n用户运营系统-单文件.html | ASIN/Listing | ASIN/Listing | 数据校验 | 1\n用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 功能测试 | 2\n用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 异常场景 | 1\n用户运营系统-单文件.html | KOC/KOL | KOC/KOL | 数据校验 | 1\n用户运营系统-单文件.html | KOC/KOL协作 | 达人协作 | UI/交互测试 | 1\n用户运营系统-单文件.html | 多渠道触达引擎 | 多渠道触达 | UI/交互测试 | 1\n用户运营系统-单文件.html | 多渠道触达引擎 | 推送/触达 | 数据校验 | 2\n用户运营系统-单文件.html | 多渠道触达引擎 | 推送/触达 | 流程测试 | 4\n用户运营系统-单文件.html | 审计与通知中心 | 审计与通知 | UI/交互测试 | 1\n用户运营系统-单文件.html | 审计与通知中心 | 权限配置 | UI/交互测试 | 1\n用户运营系统-单文件.html | 审计通知 | 审计通知 | 功能测试 | 2\n用户运营系统-单文件.html | 审计通知 | 审计通知 | 异常场景 | 1\n用户运营系统-单文件.html | 审计通知 | 审计通知 | 数据校验 | 1\n用户运营系统-单文件.html | 客服中心 | 客服中心 | 功能测试 | 3\n用户运营系统-单文件.html | 客服中心 | 客服中心 | 异常场景 | 2\n用户运营系统-单文件.html | 客服中心 | 客服中心 | 数据校验 | 1\n用户运营系统-单文件.html | 客服工单与管理 | 客服中心 | 数据校验 | 2\n用户运营系统-单文件.html | 客服工单与管理 | 工单管理 | UI/交互测试 | 1\n用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 功能测试 | 4\n用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 异常场景 | 3\n用户运营系统-单文件.html | 推送/触达 | 推送/触达 | 数据校验 | 1\n用户运营系统-单文件.html | 用户中心 | 用户中心 | 功能测试 | 1\n用户运营系统-单文件.html | 用户中心 | 用户中心 | 数据校验 | 1\n用户运营系统-单文件.html | 用户身份与上下文 | 用户上下文 | UI/交互测试 | 1\n用户运营系统-单文件.html | 用户身份与上下文 | 用户中心 | 数据校验 | 3\n用户运营系统-单文件.html | 系统总览 | 全局权限 | 权限校验 | 7\n用户运营系统-单文件.html | 系统总览 | 工作台 | UI/交互测试 | 1\n用户运营系统-单文件.html | 系统总览 | 端到端流程 | 验收测试 | 6\n用户运营系统-单文件.html | 系统稳定性与幂等 | 审计通知 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 客服中心 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 推送/触达 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 系统管理 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 计划中心 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 计划审核 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 评价追踪 | 异常场景 | 2\n用户运营系统-单文件.html | 系统稳定性与幂等 | 需求中心 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 额度频控 | 异常场景 | 1\n用户运营系统-单文件.html | 系统稳定性与幂等 | 风险中心 | 异常场景 | 1\n用户运营系统-单文件.html | 系统管理 | 系统管理 | 功能测试 | 2\n用户运营系统-单文件.html | 系统管理 | 系统管理 | 异常场景 | 1\n用户运营系统-单文件.html | 计划中心 | 计划中心 | 功能测试 | 3\n用户运营系统-单文件.html | 计划中心 | 计划中心 | 异常场景 | 1\n用户运营系统-单文件.html | 计划中心 | 计划中心 | 数据校验 | 1\n用户运营系统-单文件.html | 计划审核 | 计划审核 | 功能测试 | 4\n用户运营系统-单文件.html | 计划审核 | 计划审核 | 异常场景 | 1\n用户运营系统-单文件.html | 计划审核 | 计划审核 | 数据校验 | 1\n用户运营系统-单文件.html | 评价结果追踪 | 评价结果 | UI/交互测试 | 1\n用户运营系统-单文件.html | 评价结果追踪 | 评价追踪 | 数据校验 | 2\n用户运营系统-单文件.html | 评价结果追踪 | 评价追踪 | 流程测试 | 7\n用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 功能测试 | 4\n用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 异常场景 | 2\n用户运营系统-单文件.html | 评价追踪 | 评价追踪 | 数据校验 | 1\n用户运营系统-单文件.html | 需求与计划管理 | Listing健康 | UI/交互测试 | 1\n用户运营系统-单文件.html | 需求与计划管理 | 计划中心 | 数据校验 | 1\n用户运营系统-单文件.html | 需求与计划管理 | 计划审核 | UI/交互测试 | 1\n用户运营系统-单文件.html | 需求与计划管理 | 计划审核 | 数据校验 | 1\n用户运营系统-单文件.html | 需求与计划管理 | 计划管理 | UI/交互测试 | 1\n用户运营系统-单文件.html | 需求与计划管理 | 需求管理 | UI/交互测试 | 1\n用户运营系统-单文件.html | 需求中心 | 需求中心 | 功能测试 | 4\n用户运营系统-单文件.html | 需求中心 | 需求中心 | 异常场景 | 2\n用户运营系统-单文件.html | 需求中心 | 需求中心 | 数据校验 | 1\n用户运营系统-单文件.html | 额度与频控 | 额度管理 | UI/交互测试 | 1\n用户运营系统-单文件.html | 额度与频控 | 额度频控 | 异常场景 | 6\n用户运营系统-单文件.html | 额度与频控 | 额度频控 | 数据校验 | 3\n用户运营系统-单文件.html | 额度频控 | 额度频控 | 功能测试 | 3\n用户运营系统-单文件.html | 额度频控 | 额度频控 | 异常场景 | 3\n用户运营系统-单文件.html | 额度频控 | 额度频控 | 数据校验 | 1\n用户运营系统-单文件.html | 风险与反欺诈 | 风险反欺诈 | UI/交互测试 | 1\n用户运营系统-单文件.html | 风险中心 | 风险中心 | 功能测试 | 3\n用户运营系统-单文件.html | 风险中心 | 风险中心 | 异常场景 | 2\n用户运营系统-单文件.html | 风险中心 | 风险中心 | 数据校验 | 1\n# Sheet: 待确认问题\n编号 | 问题 | 影响模块 | 建议验收前确认\nQ-01 | 月度额度按自然月还是30天滚动跨月预占如何处理 | 额度与频控 | 确定周期规则后补充边界用例\nQ-02 | 审批驳回后修改再提交是否重走完整审批链 | 需求与计划管理 | 确定审批状态机\nQ-03 | Amazon展示核验方式、频率、观察期 | 评价结果追踪 | 确定自动/人工核验策略\nQ-04 | 工单等待用户/等待内部的超时时长与提醒方式 | 客服工单与管理 | 确定SLA与提醒频率\nQ-05 | IM/EDM/APP/TEL具体频控阈值 | 多渠道触达 | 确定频控配置后补边界值\nQ-06 | 黑名单同步失败重试次数和升级负责人 | 风险与反欺诈 | 确定失败重试策略\nQ-07 | KOC/KOL免评CODE缺失时是阻断还是待补充 | KOC/KOL协作 | 确定免评计划必填字段\nQ-08 | 现有ERP用户-身份是一对多还是多对多 | 用户身份与上下文 | 确定关系模型后补充数据一致性用例",
"wikilinks": [],
"category": "layer-testing"
}
},
{
"id": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_01_主流程说明_v1",
"type": "document",
"name": "USER ERP 0-1需求重构 - 01 主流程说明 v1",
"filePath": "05_需求文档/20260527_USER_ERP_0-1需求重构_01_主流程说明_v1.md",
"summary": "USER ERP 0 1需求重构 01 主流程说明 v1 文件信息 文件名称: 20260527 USER ERP 0 1需求重构 01 主流程说明 v1.md 项目路径: C:\\XCODE\\USER 输出位置: C:\\XCODE\\USER\\output\\docs 当前版本: v1 最近更新: 2026 05 27 所属阶段Stage 1 完整业务需求 负",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# USER ERP 0-1需求重构 - 01 主流程说明 v1\n\n## 文件信息\n\n- 文件名称:`20260527_USER_ERP_0-1需求重构_01_主流程说明_v1.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 输出位置:`C:\\XCODE\\USER\\output\\docs`\n- 当前版本:`v1`\n- 最近更新:`2026-05-27`\n- 所属阶段Stage 1 完整业务需求\n- 负责人:业务负责人\n- 核心参与USER运营、客服、渠道运营、KOC/KOL运营、财务、风险、产品、前端观察员\n- 文件目的:把 USER ERP 的完整业务主流程从需求进入写到结果复盘,避免后续只围绕单页或单模块开发。\n\n## 主流程总览\n\nUSER ERP 的主流程不是从推送开始,也不是从测评单开始,而是从“需求能否变成可执行计划”开始。\n\n```mermaid\nflowchart TB\n A[\"需求进入\"] --> B[\"需求评估\"]\n B --> C[\"产品/ASIN/库存/评分校验\"]\n C --> D[\"生成或调整计划\"]\n D --> E[\"执行资源匹配\"]\n E --> F[\"渠道任务/客服任务/KOC-KOL任务生成\"]\n F --> G[\"用户或达人响应\"]\n G --> H[\"客服承接与信息补全\"]\n H --> I[\"订单/评价/内容/返款/佣金履约\"]\n I --> J[\"风险复检与异常处理\"]\n J --> K[\"结果回流到计划与需求\"]\n K --> L[\"复盘、关闭或二次计划\"]\n```\n\n## 主流程核心原则\n\n1. 需求完整性优先于 V1 实现边界。\n2. 每个需求必须能追到执行计划、执行对象、执行结果和复盘结论。\n3. 测评、回评、免评、KOC/KOL任务共用真实人、风险、额度、订单、客服上下文。\n4. 客服既是承接用户问题的执行团队,也是评价转化、订单登记、催评和异常闭环的核心执行资源。\n5. KOC/KOL不是纯外部接口而是完整需求域线索、分层、任务、内容、带货、佣金、风险都要在阶段1被定义。\n6. 每次有效互动都要复检身份、额度、风险、订单和未关闭承诺。\n7. 用户提交评价与 Amazon 展示确认必须拆开;计划完成口径不能混用。\n\n## 业务对象\n\n| 对象 | 含义 | 阶段 |\n| --- | --- | --- |\n| 需求 | OA/销售/运营/异常触发/KOC-KOL合作请求 | V1必做 |\n| 计划 | 测评、回评、免评、KOC/KOL任务、客服跟进计划 | V1必做 |\n| 执行资源 | 渠道、人群、客服、测评人、KOC/KOL、H5/卡片、返款能力 | V1必做 |\n| 真实人 | 跨账号、邮箱、电话、Profile、设备归并后的核心身份 | V1必做 |\n| 测评人 | 可参与测评/回评/免评的运营对象,是真实人的业务视图 | V1必做 |\n| KOC/KOL | 创作者/带货/内容合作对象,可与测评人身份重叠 | V1预留 |\n| 订单 | Amazon订单、测评订单、回评订单、免评订单、样品/带货订单 | V1必做 |\n| 评价 | 用户提交、评论链接/截图、Amazon展示确认、掉评/差评 | V1必做 |\n| 返款/佣金 | 用户返款、礼品卡、财务返款、KOC/KOL佣金 | 用户返款V1必做佣金V1预留 |\n| 工单 | 客服消息、售后问题、催评、答应配合、异常跟进 | V1必做 |\n| 风险事件 | 黑名单、重复退款、额度超限、异常账号、内容/佣金风险 | V1必做 |\n| 复盘记录 | 需求关闭、计划表现、渠道表现、客服表现、KOC/KOL表现 | V1预留 |\n\n## 主流程分解\n\n### 1. 需求进入\n\n| 内容 | 说明 |\n| --- | --- |\n| 触发来源 | OA测评计划、销售/运营手动需求、ASIN评分异常、掉评/差评、库存/Listing状态变化、KOC/KOL合作需求、客服反馈 |\n| 必填信息 | 需求编号、需求类型、产品/ASIN、站点、店铺、目标、优先级、截止时间、需求人、负责人 |\n| 可选信息 | 关键词、关键词链接、目标受众、目标Review数、预算/追加金额、指定渠道、指定KOC/KOL |\n| 输出 | 进入需求池,状态为待评估 |\n| 阶段 | V1必做 |\n\n### 2. 需求评估\n\n运营需要判断\n\n- 需求是测评、回评、免评、KOC/KOL任务、客服跟进还是混合需求。\n- ASIN当前评分、Review数、差评、掉评、库存、Listing状态是否支持执行。\n- 需求目标是否超过可用人群、额度、渠道和客服容量。\n- 是否存在产品禁用、店铺异常、关键词失效、H5/卡片缺失。\n- 是否需要审批、拆分计划、延迟、驳回或转其他计划类型。\n\n输出状态\n\n- 评估通过,进入计划生成。\n- 需补充信息,退回需求人。\n- 暂缓,等待产品/库存/Listing恢复。\n- 驳回,记录原因。\n\n阶段V1必做。\n\n### 3. 产品/ASIN/库存/评分校验\n\n| 校验项 | 处理 |\n| --- | --- |\n| 产品是否启用 | 禁用则禁止生成渠道任务,允许进入待恢复池 |\n| ASIN是否正确 | 错误则退回补充或人工修正 |\n| 站点/店铺是否匹配 | 不匹配则阻断计划下发 |\n| 库存是否充足 | 库存紧张时限制测评/免评节奏 |\n| 评分/掉评/差评 | 触发回评或紧急催评策略 |\n| 关键词/H5/卡片 | 缺失则生成维护任务 |\n\n阶段V1必做。\n\n### 4. 计划生成或调整\n\n计划类型必须保留\n\n| 计划类型 | 说明 | 阶段 |\n| --- | --- | --- |\n| 测评计划 | 为产品增加评价、冲销量、拉排名、新品启动等 | V1必做 |\n| 回评计划 | 对已购/已测/待评价人群催评或稳定评分 | V1必做 |\n| 免评计划 | 面向长期测评人、KOC/KOL或补单需求不计普通测评额度 | V1必做 |\n| KOC/KOL合作任务 | 样品、内容、带货、佣金、复盘 | V1预留/V2实现 |\n| 客服跟进计划 | 售后、催评、答应配合、异常用户跟进 | V1必做 |\n\n计划生成时必须写入\n\n- 关联需求编号。\n- 产品/ASIN/站点/店铺。\n- 计划目标、周期、每日节奏、优先级。\n- 渠道策略。\n- 目标人群条件。\n- 额度预占策略。\n- 风险排除策略。\n- 客服承接要求。\n- H5/卡片/素材要求。\n- 关闭条件。\n\n### 5. 执行资源匹配\n\n计划不是创建后直接发出去必须先匹配资源。\n\n| 资源 | 匹配规则 |\n| --- | --- |\n| 人群 | 用户层级、国家、品类偏好、活跃、历史订单、Review额度、风险 |\n| 测评人 | 可测评次数、可免评次数、可上评次数、合作状态、掉评率、退款取消记录 |\n| KOC/KOL | 分层、品类、内容能力、带货能力、合作状态、风险状态 |\n| 渠道 | IM/EDM/Phone/APP/KOC-KOL可用性、频控、退订、投诉、转化 |\n| 客服 | 在线状态、排班、工单量、国家/语言、转化目标、当前压力 |\n| 产品素材 | H5、卡片、关键词链接、首图、编码图、跳转链接 |\n| 财务 | 可返款方式、返款账号、礼品卡卡密、审核队列 |\n| 风险 | 黑名单、强弱关联、退款取消、重复订单/评论/返款 |\n\n阶段V1必做半自动匹配V2增强自动推荐。\n\n### 6. 渠道任务 / 客服任务 / KOC-KOL任务生成\n\n| 任务 | 生成条件 | 输出 |\n| --- | --- | --- |\n| IM推送任务 | 有可推人群、卡片/H5可用、频控通过 | 推送任务、渠道事件、标签 |\n| EDM任务 | 域名/邮箱/IP健康、UID人群正常、邮件素材/H5可用 | 邮件计划、AB Test、发送结果 |\n| Phone任务 | 用户有电话、适合电话沟通、客服容量可承接 | 电话名单、回拨任务、通话记录 |\n| 客服工单 | 用户回复、订单异常、信息缺失、售后问题、投诉 | 工单、处理人、状态 |\n| KOC/KOL任务 | 有合适达人、样品/免评/内容目标明确 | 合作任务、内容/带货跟踪 |\n| 财务返款任务 | 用户信息完整、订单/评价状态满足返款条件 | 请款/返款任务 |\n\n### 7. 用户或达人响应\n\n响应包括\n\n- 用户点击、回复、提交订单号、提交返款账号、上传评论截图/链接。\n- 用户只提交部分信息。\n- 用户投诉、退订、不感兴趣。\n- KOC/KOL接受任务、拒绝任务、提交内容链接、提交带货链接。\n\n每次响应都要写入渠道事件并触发有效互动复检。\n\n### 8. 客服承接与信息补全\n\n客服核心动作\n\n- 查看用户上下文卡。\n- 回复用户。\n- 查询/核验订单号。\n- 补充返款账号、截图、评论链接。\n- 登记订单。\n- 催评。\n- 记录售后问题和解决方案。\n- 标记答应配合。\n- 升级风险、财务、运营或主管。\n- 关闭或重开工单。\n\n客服管理动作\n\n- 分配/转移工单。\n- 调整排班。\n- 设置目标。\n- 统计回复、工单、转化、满意度。\n\n阶段V1必做。\n\n### 9. 履约:订单 / 评价 / 返款 / 佣金\n\n| 履约对象 | 核心状态 |\n| --- | --- |\n| 订单 | 待登记、已登记、已发货、已取消、已退款、异常 |\n| 评价 | 待提交、已提交、待展示核验、已展示、未展示、掉评、差评 |\n| 返款 | 待请款、待审核、审核失败、待返款、返款成功、返款锁定 |\n| KOC/KOL内容 | 待接受、待寄样、待提交、待审核、已发布、链接异常 |\n| KOC/KOL佣金 | 待归因、待计算、待审核、待结算、已结算、争议 |\n\n### 10. 风险复检与异常处理\n\n复检时机\n\n- 需求评估。\n- 计划生成。\n- 人群生成。\n- 渠道发送前。\n- 用户提交订单/评价/返款账号。\n- 客服登记订单。\n- 请款/返款。\n- KOC/KOL接受任务、提交内容、结算佣金。\n\n风险结果\n\n- 正常,继续执行。\n- 弱风险,提醒人工确认。\n- 强风险,阻断并生成风险事件。\n- 确认风险,同步黑名单。\n\n### 11. 结果回流与复盘\n\n结果必须回流到\n\n- 原需求:是否达成、是否关闭、是否需补量。\n- 计划:完成数、节奏、渠道表现、成本。\n- ASIN评分、Review、差评、掉评。\n- 用户/测评人:额度、合作状态、标签、风险。\n- 客服:转化、回复、目标、绩效。\n- KOC/KOL内容、带货、佣金、合作等级。\n- 渠道素材、频控、人群、AB Test。\n\n阶段V1预留复盘记录核心指标 V1必做。\n\n## 状态总表\n\n| 状态域 | 必须拆开 |\n| --- | --- |\n| 需求状态 | 草稿、待评估、需补充、已通过、已驳回、已转计划、已关闭 |\n| 计划状态 | 草稿、待审批、进行中、暂停、已完成、已取消、需补量 |\n| 资源匹配状态 | 待匹配、匹配中、匹配不足、匹配完成、需人工确认 |\n| 渠道任务状态 | 待发送、发送中、已发送、失败、已下架、暂停 |\n| 用户响应状态 | 未响应、已点击、已回复、已提交部分信息、已提交完整信息、投诉/退订 |\n| 工单状态 | 待分配、待处理、处理中、等待用户、已解决、已关闭、已重开 |\n| 订单状态 | 待登记、已登记、已发货、已取消、已退款、异常 |\n| 评价状态 | 待提交、已提交、待核验、已展示、未展示、掉评、差评 |\n| 返款状态 | 待请款、待审核、审核失败、待返款、返款成功、锁定 |\n| KOC/KOL任务状态 | 待分配、待接受、进行中、待内容、待审核、已发布、已结算、异常 |\n| 风险状态 | 正常、弱风险、强风险、已拦截、复核中、已解除、已拉黑 |\n\n## Gate 1 - 主流程完成条件\n\n- 主流程从需求进入到结果复盘完整。\n- 需求与执行计划匹配被明确为核心流程。\n- 客服被写入主流程核心位置。\n- KOC/KOL被作为完整需求域纳入而不是仅做接口预留。\n- 测评、回评、免评、客服、渠道、财务、风险、看板之间的流转关系清楚。\n- V1必做、V1预留、V2实现、待确认有明确标注。\n\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_02_日常操作页面结构_v1",
"type": "document",
"name": "USER ERP 0-1需求重构 - 02 日常操作页面结构 v1",
"filePath": "05_需求文档/20260527_USER_ERP_0-1需求重构_02_日常操作页面结构_v1.md",
"summary": "USER ERP 0 1需求重构 02 日常操作页面结构 v1 文件信息 文件名称: 20260527 USER ERP 0 1需求重构 02 日常操作页面结构 v1.md 项目路径: C:\\XCODE\\USER 输出位置: C:\\XCODE\\USER\\output\\docs 当前版本: v1 最近更新: 2026 05 27 所属阶段Stage 1 完整",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# USER ERP 0-1需求重构 - 02 日常操作页面结构 v1\n\n## 文件信息\n\n- 文件名称:`20260527_USER_ERP_0-1需求重构_02_日常操作页面结构_v1.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 输出位置:`C:\\XCODE\\USER\\output\\docs`\n- 当前版本:`v1`\n- 最近更新:`2026-05-27`\n- 所属阶段Stage 1 完整业务需求\n- 负责人:业务负责人 / 产品负责人\n- 核心参与USER运营、客服主管、渠道负责人、KOC/KOL负责人、风险、财务、前端观察员\n- 文件目的:定义每个岗位每天打开系统后先看什么、判断什么、处理什么,并据此组织页面结构。\n\n## 页面设计原则\n\n1. 第一屏必须是日常作战台,不是普通任务列表。\n2. 页面围绕“发现异常 -> 判断优先级 -> 分配动作 -> 执行 -> 跟进结果 -> 复盘沉淀”设计。\n3. 每个页面必须说明贡献哪个OKR用户增长、评价转化、销售转化、活动转化、满意度、风险控制。\n4. 页面结构要服务需求与执行计划匹配,不能只展示静态数据。\n5. 客服执行和客服管理是一级核心入口。\n6. KOC/KOL在阶段1必须有页面结构即使V1只预留部分入口。\n\n## 一级导航建议\n\n| 一级入口 | 定位 | 阶段 |\n| --- | --- | --- |\n| 今日作战台 | 所有角色的每日首页,显示异常、目标、今日必处理 | V1必做 |\n| 需求与计划调度中心 | 需求池、计划生成、执行资源匹配、计划调整 | V1必做 |\n| 评价计划与订单中心 | 测评、回评、免评计划和订单履约 | V1必做 |\n| 客服执行中心 | 工单、聊天、答应配合、催评、订单登记 | V1必做 |\n| 客服管理中心 | 出勤、排班、目标、绩效、服务质量 | V1必做 |\n| 渠道运营中心 | IM、EDM、Phone、APP/H5/卡片、推送任务 | V1必做 |\n| KOC/KOL协作中心 | 线索、达人、任务、内容、带货、佣金、风险 | V1预留/V2实现 |\n| 测评人/真实人中心 | 测评人档案、身份归并、额度、风险、历史 | V1必做 |\n| 风险与黑名单中心 | 风险事件、黑名单、退款比对、异常复检 | V1必做 |\n| 数据复盘看板 | 计划、ASIN、渠道、客服、KOC/KOL、财务复盘 | V1必做核心V2增强 |\n| 系统配置 | 权限、渠道配置、字段、标签、通知、导入导出 | V1预留 |\n\n## 01 今日作战台\n\n### 目标\n\n让主管和各岗位每天开屏后立刻知道昨天有什么异常、本周目标是否危险、今天必须推进什么、哪些任务没人处理、哪些结果需要复盘。\n\n### 页面区块\n\n| 区块 | 展示内容 | 操作 |\n| --- | --- | --- |\n| 昨日核心指标 | 需求新增、计划新增、完成、缺口、客服工单、风险、返款 | 查看详情 |\n| P0/P1异常 | Review低于计划、渠道下滑、客服超时、产品禁用、风险事件 | 指派处理、升级 |\n| 今日必跟进 | 待评估需求、待补量计划、待催评用户、待返款、待审核内容 | 进入处理 |\n| 目标进度 | 月度测评、回评、免评、客服转化、KOC/KOL内容/带货 | 调整计划 |\n| 资源压力 | 可用人群、额度、客服容量、KOC/KOL资源、返款队列 | 资源调度 |\n| 昨日复盘 | TOP/BOTTOM任务、异常原因、沉淀动作 | 创建复盘 |\n\n### 角色视图\n\n| 角色 | 首页重点 |\n| --- | --- |\n| 高级主管 | OKR、资源、P0异常、跨部门阻塞 |\n| USER运营 | 需求、计划、执行缺口、渠道/客服压力 |\n| 渠道运营 | 触达漏斗、素材、可推人群、退订/投诉 |\n| 客服主管 | 在线、排班、待处理工单、首次回复、转化目标 |\n| KOC/KOL运营 | 线索、任务、内容、带货、风险 |\n| 风险/财务 | 待审核、待返款、双重退款、敏感操作 |\n\n## 02 需求与计划调度中心\n\n### 子页面\n\n| 页面 | 说明 | 阶段 |\n| --- | --- | --- |\n| 需求池 | OA/销售/运营/异常/KOC-KOL需求统一入口 | V1必做 |\n| 需求评估页 | 校验ASIN、产品、库存、评分、目标、优先级 | V1必做 |\n| 计划编排页 | 生成测评、回评、免评、客服、KOC/KOL计划 | V1必做 |\n| 执行匹配看板 | 人群、渠道、客服、KOC/KOL、风险、H5/卡片匹配 | V1必做基础 |\n| 计划调整页 | 补量、暂停、恢复、转免评、关闭、拆分/合并 | V1必做 |\n\n### 需求池字段\n\n| 字段 | 说明 |\n| --- | --- |\n| 需求编号 | OA/系统生成 |\n| 需求来源 | OA、销售、运营、ASIN异常、客服反馈、KOC/KOL |\n| 需求类型 | 测评、回评、免评、客服跟进、KOC/KOL内容/带货 |\n| 产品/ASIN/站点/店铺 | 执行基础 |\n| 目标 | 目标订单数、Review数、评分、内容数、带货数 |\n| 优先级 | S/A/B/C 或 P0/P1/P2 |\n| 截止时间 | 计划完成约束 |\n| 当前状态 | 待评估、需补充、已转计划、暂停、关闭 |\n| 负责人 | 运营负责人 |\n\n## 03 评价计划与订单中心\n\n### 页面结构\n\n| 页面 | 说明 | 阶段 |\n| --- | --- | --- |\n| 测评计划 | 产品测评需求、计划周期、渠道、目标、进度、评分、库存 | V1必做 |\n| 回评计划 | 掉评/差评/维稳/冲刺等回评需求与每日目标 | V1必做 |\n| 免评计划 | 长期测评人/KOC-KOL/补单免评计划 | V1必做 |\n| 测评订单 | 订单登记、上传回评、请款、返款、状态跟踪 | V1必做 |\n| 回评订单 | 回评上传、确认、返款、售后来源、处理记录 | V1必做 |\n| 产品/ASIN详情 | 评分、Review、库存、关键词、渠道、H5/卡片 | V1预留 |\n\n## 04 客服执行中心\n\n客服执行中心是 V1 核心入口。\n\n| 页面 | 每天要解决的问题 | 核心操作 |\n| --- | --- | --- |\n| 工单池 | 哪些用户消息没人处理,哪些工单快超时 | 分配、领取、转移、标记解决、关闭 |\n| 我的工单 | 当前客服今天处理什么 | 回复、登记订单、催评、上传结果、升级 |\n| 聊天/消息 | 用户具体说了什么 | 快捷回复、补充信息、创建跟进 |\n| 服务聊天记录 | 复查历史沟通 | 查询、查看上下文 |\n| 答应配合 | 用户答应评价/反馈后是否完成 | 确认、拒绝、提醒、过期 |\n| 催评池 | 哪些测评/回评待催 | 发送提醒、转人工、关闭 |\n| 售后详情 | 用户问题、解决方案、订单、返款 | 记录方案、回访、升级 |\n\n## 05 客服管理中心\n\n| 页面 | 展示 | 操作 |\n| --- | --- | --- |\n| 客服Dashboard | 在线客服、今日工单、待处理、今日转化、本月目标 | 查看详情 |\n| 出勤管理 | 应出勤、实际出勤、出勤率、迟到/请假/缺勤 | 导入/调整 |\n| 排班管理 | 早班、午班、晚班、渠道、最大工单数 | 设置、批量排班、调整 |\n| 工单分配管理 | 分配规则、当前工单量、超时工单 | 自动分配、手动调整 |\n| 回复统计 | 回复用户数、处理工单、消息数、首次回复 | 导出 |\n| 转化绩效 | RSO/RDO登记订单、获取评价、完成率 | 查看排行 |\n| 目标管理 | 月目标、历史完成、客服个人趋势 | 设置目标、调整 |\n\n## 06 渠道运营中心\n\n| 页面 | 说明 | 阶段 |\n| --- | --- | --- |\n| IM推送 | 用户分层、卡片、推送任务、回复、转化 | V1必做 |\n| IM卡片/H5管理 | 卡片、图片、链接、跳转、产品禁用联动 | V1必做 |\n| EDM每日检查 | 域名/邮箱/IP信誉、UID、H5、AB Test、转化 | V1必做基础 |\n| Phone工作台 | 未接/待回拨、国家/时段、问题类型、客服容量 | V1预留 |\n| 推送配置 | 渠道账号、日限额、状态、负责人 | V1预留 |\n| 渠道漏斗看板 | 推送、曝光、点击、回复、订单、评价 | V1必做 |\n\n## 07 KOC/KOL协作中心\n\n阶段1必须完整定义V1可部分预留。\n\n| 页面 | 说明 | 阶段 |\n| --- | --- | --- |\n| KOC/KOL线索池 | 新增线索、来源、标签、风险、分层 | V1预留 |\n| 达人档案 | 国家、品类、内容能力、带货能力、合作状态 | V1预留 |\n| 合作任务 | 样品、免评、内容、带货、佣金任务 | V1预留/V2 |\n| 内容记录 | 内容链接、审核、发布时间、表现 | V2实现 |\n| 带货归因 | Code、链接、订单、销售额 | V2实现 |\n| 佣金结算 | 佣金规则、结算、争议 | V2实现 |\n| KOC/KOL风险 | 标签混乱、重复触达、违规内容、佣金争议 | V1预留 |\n\n## 08 测评人/真实人中心\n\n| 页面 | 说明 | 阶段 |\n| --- | --- | --- |\n| 测评人列表 | 编号、Joyhub、邮箱、电话、Profile、国家、标签、合作状态 | V1必做 |\n| 测评人详情 | 额度、订单、评价、返款、风险、沟通记录 | V1必做 |\n| 真实人归并 | 标准化姓名+地址、设备、邮箱、电话、Profile、收款信息等自动归并人工确认/拆分作为修正入口 | 自动归并 V1必做人工确认/拆分 V1预留 |\n| 额度台账 | 月度测评、月度免评、累计Review、预占/释放 | V1必做 |\n| 风险记录 | 黑名单、退款取消、掉评、弱/强关联 | V1必做 |\n\n说明`4/4/12`额度控制依赖真实人维度V1必须先具备自动归并能力否则 `person_quota_ledgers` 无法跨 JOYHUB ID、Amazon 账号和 Profile 合并计算。\n\n## 09 风险与黑名单中心\n\n| 页面 | 说明 |\n| --- | --- |\n| 风险事件 | 所有风险信号与人工复核案件 |\n| 黑名单 | 生效中/已移除、风险等级、来源、原因 |\n| 退款比对 | Amazon退款与OA返款双重比对 |\n| 关联风险 | 邮箱、电话、设备、IP、Profile、地址、返款账号 |\n| 内容/佣金风险 | KOC/KOL内容不合规、归因失败、佣金争议 |\n\n## 10 数据复盘看板\n\n| 看板 | 指标 |\n| --- | --- |\n| 计划看板 | 总计划、进行中、完成率、缺口、补量 |\n| ASIN看板 | 评分、Review、差评、掉评、库存、风险ASIN |\n| 渠道看板 | 推送、曝光、点击、回复、转化、退订/投诉 |\n| 客服看板 | 工单、响应、解决、满意度、RSO/RDO转化 |\n| 测评人看板 | 额度、完成率、掉评率、风险、合作状态 |\n| KOC/KOL看板 | 线索、任务、内容、带货、佣金、风险 |\n| 财务看板 | 待请款、待审核、返款成功、异常返款 |\n\n## Gate 1 - 页面结构完成条件\n\n- 今日作战台和岗位每日工作方式已定义。\n- 需求与计划调度中心作为一级核心入口。\n- 客服执行中心和客服管理中心作为一级核心入口。\n- KOC/KOL协作中心已有完整需求结构即使V1不全量实现。\n- 各页面能对应主流程中的对象、状态、动作和复盘指标。\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_03_功能页面按钮盘点表_v1",
"type": "document",
"name": "USER ERP 0-1需求重构 - 03 功能页面按钮盘点表 v1",
"filePath": "05_需求文档/20260527_USER_ERP_0-1需求重构_03_功能页面按钮盘点表_v1.md",
"summary": "USER ERP 0 1需求重构 03 功能页面按钮盘点表 v1 文件信息 文件名称: 20260527 USER ERP 0 1需求重构 03 功能页面按钮盘点表 v1.md 项目路径: C:\\XCODE\\USER 输出位置: C:\\XCODE\\USER\\output\\docs 当前版本: v1 最近更新: 2026 05 27 所属阶段Stage 1 ",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "moderate",
"knowledgeMeta": {
"content": "# USER ERP 0-1需求重构 - 03 功能页面按钮盘点表 v1\n\n## 文件信息\n\n- 文件名称:`20260527_USER_ERP_0-1需求重构_03_功能页面按钮盘点表_v1.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 输出位置:`C:\\XCODE\\USER\\output\\docs`\n- 当前版本:`v1`\n- 最近更新:`2026-05-27`\n- 所属阶段Stage 1 完整业务需求\n- 负责人:产品负责人 / 前端观察员\n- 核心参与业务用户、客服主管、渠道运营、KOC/KOL运营、财务、风险、后端、测试\n- 文件目的盘点阶段1涉及的页面按钮、业务含义、读写对象、状态变化、权限和审计要求作为 Stage 2 按钮行为矩阵的输入。\n\n## 盘点规则\n\n| 字段 | 说明 |\n| --- | --- |\n| 页面 | 按一级/二级页面归类 |\n| 按钮/动作 | 用户可点击或系统触发的动作 |\n| 业务含义 | 为什么需要这个按钮 |\n| 读取对象 | 点击前必须读的数据 |\n| 写入对象 | 点击后必须落盘的数据 |\n| 状态变化 | 影响哪些状态 |\n| 权限 | 哪些角色可操作 |\n| 审计 | 是否必须记录操作日志 |\n| 阶段 | V1必做、V1预留、V2实现、待确认 |\n\n## 对象命名对照\n\n按钮盘点表中的“读取对象/写入对象”保留页面语境简称;进入 Stage 2 接口和数据设计时,应优先映射到数据对象 v3 的正式对象名。\n\n| 按钮盘点简称 | v3正式对象或聚合口径 |\n| --- | --- |\n| person | `person_profiles` |\n| identity | `person_identity_links` |\n| reviewer | `person_identity_links` + `person_quota_ledgers` 聚合视图 |\n| quota / quota_ledger | `person_quota_ledgers` |\n| quota_reservation | `quota_reservations` |\n| audience / audience_snapshot | `audience_snapshots` |\n| exclusion | `audience_exclusions` |\n| risk_event | `risk_signals` / `risk_cases` |\n| risk | `risk_signals` / `risk_cases` / `blacklist_entities` 聚合摘要 |\n| order / review_order | `amazon_orders`、`review_submission_records`、`review_display_checks` |\n| push_task / channel_event | `channel_route_decisions`、`channel_dedup_records`、各渠道事件表 |\n| interaction_recheck | `interaction_recheck_records` |\n| koc_kol / creator | JOYCOLLAB 的 `creator_id`,以及 `exemption_plan_tasks`、`creator_content_records`、`exemption_result_snapshots` |\n\n## 01 今日作战台\n\n| 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- |\n| 查看异常 | 进入昨日/今日异常详情 | alert、plan、channel_event、ticket、risk_event | - | - | 主管、运营 | 否 | V1必做 |\n| 指派处理人 | 把异常转成可执行任务 | alert、staff、shift | task、notification | 异常:待处理 -> 已指派 | 主管、运营 | 是 | V1必做 |\n| 升级异常 | P0/P1问题升级主管或跨部门 | alert、risk_event、ticket | escalation、notification | 异常:待处理 -> 已升级 | 主管、风险 | 是 | V1必做 |\n| 调整计划 | 从作战台直接进入计划调整 | demand、plan、progress | plan_change_log | 计划:进行中 -> 调整中/暂停/补量 | 主管、运营 | 是 | V1必做 |\n| 创建复盘 | 对异常或任务形成复盘记录 | plan、channel_event、ticket、order | retrospective | 异常:已处理 -> 待复盘 | 主管、运营 | 是 | V1预留 |\n\n## 02 需求与计划调度中心\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 需求池 | 新增需求 | 手动录入销售/运营/KOC-KOL需求 | product、asin、staff | demand | 需求:草稿 | 运营、主管 | 是 | V1必做 |\n| 需求池 | 导入OA需求 | 从OA或表格批量导入需求 | import_file | demand、import_log | 需求:待评估 | 运营、管理员 | 是 | V1必做 |\n| 需求池 | 需求评估 | 判断需求是否可执行 | demand、product、asin、inventory、risk | demand_review | 待评估 -> 已通过/需补充/驳回 | 运营、主管 | 是 | V1必做 |\n| 需求池 | 退回补充 | 信息不足时退回需求人 | demand | demand、notification | 待评估 -> 需补充 | 运营 | 是 | V1必做 |\n| 需求池 | 生成计划 | 将需求转成测评/回评/免评/KOC-KOL/客服计划 | demand、product、audience、quota、risk | plan、plan_log | 已通过 -> 已转计划 | 运营、主管 | 是 | V1必做 |\n| 计划编排 | 拆分计划 | 一个需求拆成多个站点/渠道/周期计划 | demand、plan | plan、plan_relation | 计划:草稿/进行中 | 运营、主管 | 是 | V1预留 |\n| 计划编排 | 合并计划 | 合并同产品/同周期/同目标计划 | plan | plan_relation、plan_log | 计划:合并/关闭旧计划 | 主管 | 是 | V1预留 |\n| 执行匹配 | 匹配人群 | 生成候选用户/测评人/KOC-KOL名单 | person、reviewer、koc_kol、quota、risk | audience_snapshot、exclusion | 匹配:待匹配 -> 完成/不足 | 运营 | 是 | V1必做 |\n| 执行匹配 | 预占额度 | 锁定测评/免评/Review额度 | audience_snapshot、quota_ledger | quota_reservation | 额度:可用 -> 预占 | 运营 | 是 | V1必做 |\n| 执行匹配 | 手动释放预占 | 预占超时、计划取消或人群撤出后释放额度 | quota_reservation、quota_ledger、plan | quota_reservation_log、quota_ledger | 额度:已预占 -> 已释放 | 主管、管理员 | 是 | V1必做 |\n| 执行匹配 | 分配客服 | 按容量、语言、工单量分配承接客服 | plan、ticket、shift、agent_capacity | task、ticket_assignment | 待分配 -> 已分配 | 主管、客服主管 | 是 | V1必做 |\n| 执行匹配 | 生成推送任务 | 从计划生成人群和渠道任务 | plan、audience、card、h5、channel_config | push_task、channel_event | 待发送 | 渠道运营 | 是 | V1必做 |\n| 执行匹配 | 匹配KOC/KOL | 将需求匹配给合适创作者 | koc_kol_profile、task、risk | koc_kol_task | 待分配 -> 待接受 | KOC/KOL运营 | 是 | V1预留 |\n| 计划调整 | 调整名额 | 增减计划数量 | plan、progress、resource | plan_change_log | 计划目标变化 | 运营、主管 | 是 | V1必做 |\n| 计划调整 | 暂停计划 | 禁止继续执行但保留历史 | plan、risk、product | plan_log、notification | 进行中 -> 暂停 | 主管 | 是 | V1必做 |\n| 计划调整 | 恢复计划 | 恢复已暂停计划 | plan、product、risk | plan_log | 暂停 -> 进行中 | 主管 | 是 | V1必做 |\n| 计划调整 | 转免评 | 普通测评/回评因店铺/订单/用户问题转免评 | plan、order、reviewer | plan、order_log | 测评/回评 -> 免评 | 运营、主管 | 是 | V1必做 |\n| 计划调整 | 关闭需求 | 需求完成或取消 | demand、plan、progress | demand_close_log | 需求:已关闭 | 主管 | 是 | V1必做 |\n\n## 03 评价计划与订单中心\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 测评计划 | 新建测评计划 | 从需求或人工创建计划 | demand、product、asin | review_plan | 草稿/未开始 | 运营 | 是 | V1必做 |\n| 测评计划 | 编辑计划 | 修改目标、渠道、周期、负责人 | review_plan | plan_log | 计划字段变化 | 运营、主管 | 是 | V1必做 |\n| 测评计划 | 复制关键词链接 | 运营执行用 | review_plan | copy_event | - | 运营 | 否 | V1必做 |\n| 测评计划 | 查看关联推送 | 查看计划下发的渠道任务 | plan、push_task | - | - | 运营、渠道 | 否 | V1必做 |\n| 测评计划 | 查看关联订单 | 查看计划履约订单 | plan、order | - | - | 运营 | 否 | V1必做 |\n| 回评计划 | 新建回评计划 | 因掉评/差评/维稳生成回评计划 | asin、review_stats | reply_plan | 待开始 | 运营 | 是 | V1必做 |\n| 回评计划 | 调整今日目标 | 根据评分/掉评变化调整当天目标 | reply_plan、asin_stats | plan_log | 今日目标变化 | 运营、主管 | 是 | V1必做 |\n| 免评计划 | 新建免评计划 | 给长期测评人/KOC-KOL/补单池创建免评计划 | demand、reviewer、koc_kol | free_plan | 待审批/进行中 | 运营 | 是 | V1必做 |\n| 测评订单 | 新增订单 | 记录测评执行单 | plan、person、product | review_order | 待上传回评/待登记 | 运营、客服 | 是 | V1必做 |\n| 测评订单 | 上传订单 | 绑定Amazon订单号 | review_order、amazon_order | review_order、audit_log | 订单:待登记 -> 已登记 | 运营、客服 | 是 | V1必做 |\n| 测评订单 | 上传回评 | 绑定评论ID/链接/截图 | review_order、comment | review_submission | 待回评 -> 待确认/已提交 | 运营、客服 | 是 | V1必做 |\n| 测评订单 | 提交排队 | 评论暂不能绑定,进入排队 | review_order、comment_query | review_queue | 待确认 | 运营、客服 | 是 | V1必做 |\n| 测评订单 | 请款 | 发起用户返款 | review_order、refund_account | refund_request | 待请款 -> 待审核 | 运营、客服 | 是 | V1必做 |\n| 测评订单 | 更换订单 | 用新订单替代原订单 | review_order、amazon_order | order_change_log | 订单号变化 | 运营、主管 | 是 | V1必做 |\n| 测评订单 | 更改订单 | 修正订单字段 | review_order | order_change_log | 订单字段变化 | 运营、主管 | 是 | V1必做 |\n| 测评订单 | 撤销 | 撤销错误/风险订单 | review_order、risk | order_log、quota_release | 进行中 -> 撤销 | 风险、主管 | 是 | V1必做 |\n| 测评订单 | 批量导出 | 导出当前筛选结果 | order、permission | export_task | - | 有导出权限 | 是 | V1必做 |\n| 回评订单 | 回评确认 | 核验回评是否有效 | review_submission、comment | review_display_check | 待确认 -> 已回评/未通过 | 运营、审核 | 是 | V1必做 |\n\n## 04 客服执行中心\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 工单池 | 自动分配 | 按在线、工单量、排班分配客服 | ticket、agent、shift | ticket_assignment | 待分配 -> 待处理 | 客服主管 | 是 | V1必做 |\n| 工单池 | 手动分配 | 指定处理人 | ticket、agent | ticket_assignment | 待分配 -> 待处理 | 客服主管 | 是 | V1必做 |\n| 工单池 | 转移工单 | 换客服处理 | ticket、agent | ticket_transfer_log | 处理人变化 | 客服、主管 | 是 | V1必做 |\n| 我的工单 | 回复用户 | 处理用户消息 | ticket、chat、context_snapshot | chat_message、ticket_log | 待处理 -> 处理中/等待用户 | 客服 | 是 | V1必做 |\n| 我的工单 | 登记订单 | 客服拿到订单号后登记 | ticket、amazon_order、person | review_order、ticket_log | 工单推进 | 客服 | 是 | V1必做 |\n| 我的工单 | 催评 | 提醒用户提交评价 | ticket、order、followup | reminder_event、followup | 催评次数+1 | 客服、运营 | 是 | V1必做 |\n| 我的工单 | 标记解决 | 用户问题解决 | ticket | ticket_log | 处理中 -> 已解决 | 客服 | 是 | V1必做 |\n| 我的工单 | 关闭工单 | 完成或无需继续 | ticket | ticket_log | 已解决/等待用户 -> 已关闭 | 客服、主管 | 是 | V1必做 |\n| 我的工单 | 重开工单 | 用户再次反馈 | ticket | ticket_log | 已关闭 -> 已重开/处理中 | 客服、主管 | 是 | V1必做 |\n| 答应配合 | 确认答应 | 用户答应评价/反馈 | ticket、person | support_followup | 待确认 -> 已确认 | 客服 | 是 | V1必做 |\n| 答应配合 | 拒绝 | 用户拒绝配合 | ticket | support_followup | 待确认 -> 已拒绝 | 客服 | 是 | V1必做 |\n| 答应配合 | 标记过期 | 超时未提交 | followup | support_followup | 已确认 -> 已过期 | 客服、系统 | 是 | V1必做 |\n\n## 05 客服管理中心\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 出勤管理 | 导入出勤 | 导入当天/本月出勤 | attendance_file | attendance_record | 出勤记录更新 | 客服主管、人事 | 是 | V1预留 |\n| 出勤管理 | 调整出勤状态 | 修正迟到/请假/缺勤 | attendance_record | attendance_log | 状态变化 | 客服主管 | 是 | V1必做 |\n| 排班管理 | 设置班次 | 给客服设置早/午/晚班 | agent、date | shift_schedule | 排班变化 | 客服主管 | 是 | V1必做 |\n| 排班管理 | 批量排班 | 一次生成多天排班 | agent、date_range | shift_schedule | 排班批量变化 | 客服主管 | 是 | V1必做 |\n| 目标管理 | 设置月目标 | 设置RSO/RDO登记和上评目标 | agent、period | support_target | 目标变化 | 客服主管 | 是 | V1必做 |\n| 绩效看板 | 导出绩效 | 导出回复/转化/目标完成 | performance_snapshot | export_task | - | 客服主管 | 是 | V1必做 |\n\n## 06 渠道运营中心\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| IM推送 | 新增推送 | 创建IM触达任务 | plan、audience、card | im_push_task | 草稿/待发送 | 渠道运营 | 是 | V1必做 |\n| IM推送 | 上架/下架 | 控制任务是否可执行 | im_push_task | channel_log | 已上架/已下架 | 渠道运营 | 是 | V1必做 |\n| IM推送 | 批量分配 | 将任务分配到账号/渠道 | push_task、im_account | assignment | 待分配 -> 已分配 | 渠道运营 | 是 | V1预留 |\n| IM卡片 | 新增卡片 | 创建卡片素材 | product、h5 | im_card | 已上架/草稿 | 渠道运营 | 是 | V1必做 |\n| IM卡片 | 下架卡片 | 产品禁用/素材失效时下架 | im_card、product | card_log | 已上架 -> 已下架 | 渠道运营 | 是 | V1必做 |\n| EDM | 检查基础设施 | 确认域名/邮箱/IP信誉 | edm_config、deliverability | daily_check | 健康/异常 | EDM运营 | 否 | V1必做 |\n| EDM | 创建AB Test | 测试标题/素材/按钮 | edm_campaign | ab_test | 运行中 | EDM运营 | 是 | V1预留 |\n| Phone | 创建回拨任务 | 对未接/待跟进用户安排电话 | tel_pool、agent_shift | tel_task | 待拨打 | Phone/客服 | 是 | V1预留 |\n| 渠道配置 | 配置去重规则 | 定义跨IM/EDM/APP/Phone/KOC触达的去重、例外和频控条件 | channel_config、person、risk、quota | channel_dedup_rule、channel_log | 规则生效/停用 | 渠道主管、管理员 | 是 | V1预留 |\n\n## 07 KOC/KOL协作中心\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 线索池 | 新增线索 | 新增KOC/KOL候选人 | source、contact | creator_profile | 待审核 | KOC/KOL运营 | 是 | V1预留 |\n| 线索池 | 打标分层 | 区分新手KOC、稳定测评者、垂直专家、带货型KOL | creator_profile、metrics | creator_tag、tier_log | 分层变化 | KOC/KOL运营 | 是 | V1预留 |\n| 任务管理 | 创建合作任务 | 样品、免评、内容、带货任务 | demand、product、creator | creator_task | 待接受 | KOC/KOL运营 | 是 | V1预留 |\n| 任务管理 | 分配样品/免评名额 | 执行合作资源分配 | creator_task、inventory、quota | sample_order/free_order | 待寄样/待执行 | KOC/KOL运营 | 是 | V1预留 |\n| 内容记录 | 上传内容链接 | 记录发布内容 | creator_task | content_record | 待审核/已发布 | KOC/KOL运营 | 是 | V2实现 |\n| 内容记录 | 审核内容 | 判断内容合规和是否可分发 | content_record、content_policy | content_audit | 通过/驳回 | 审核、运营 | 是 | V2实现 |\n| 带货归因 | 同步订单 | 记录Code/链接带来的订单 | attribution、order | creator_order | 待结算 | KOC/KOL运营 | 是 | V2实现 |\n| 佣金结算 | 计算佣金 | 根据规则生成佣金 | creator_order、commission_rule | commission_record | 待审核 | 财务、运营 | 是 | V2实现 |\n| 风险处理 | 暂停合作 | 风险/投诉/作弊时暂停 | creator_profile、risk | creator_status_log | 可合作 -> 暂停 | 风险、主管 | 是 | V1预留 |\n\n## 08 测评人/真实人中心\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 真实人归并 | 手动合并 | 修正自动归并不足,把多个账号/身份线索合并到同一真实人 | person、identity、quota_ledger、risk | person_identity_link、merge_log、quota_ledger | 多个身份 -> 同一真实人 | 主管、风险、管理员 | 是 | V1预留 |\n| 真实人归并 | 手动拆分 | 纠正误合并,拆开不同真实人 | person、identity、quota_ledger、risk | person_identity_link、split_log、quota_ledger | 同一真实人 -> 多个真实人 | 主管、风险、管理员 | 是 | V1预留 |\n| 额度台账 | 查看额度明细 | 查看4/4/12额度、预占、释放、提交计数来源 | person、quota_ledger、quota_reservation、review_submission | - | - | 运营、客服主管、风险 | 否 | V1必做 |\n| 互动复检 | 查看审计记录 | 追溯每次有效互动为什么继续、拦截或转人工 | interaction_recheck、person、quota_ledger、risk | - | - | 运营、风险、客服主管 | 否 | V1必做 |\n\n## 09 风险与财务\n\n| 页面 | 按钮/动作 | 业务含义 | 读取对象 | 写入对象 | 状态变化 | 权限 | 审计 | 阶段 |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 风险事件 | 创建风险事件 | 人工或系统发现风险 | person、order、refund、creator | risk_case | 待复核 | 风险、系统 | 是 | V1必做 |\n| 风险事件 | 复核通过 | 确认风险 | risk_case | risk_case、blacklist | 复核中 -> 确认风险 | 风险 | 是 | V1必做 |\n| 风险事件 | 排除风险 | 解除误报 | risk_case | risk_case | 复核中 -> 排除 | 风险 | 是 | V1必做 |\n| 黑名单 | 新增黑名单 | 阻断后续触达/返款/合作 | person、creator、identity | blacklist_item | 生效中 | 风险 | 是 | V1必做 |\n| 退款比对 | 标记双重退款 | Amazon退款+OA返款命中 | refund_records | risk_signal | 疑似/确认双重退款 | 风险、财务 | 是 | V1必做 |\n| 返款 | 审核请款 | 付款前审核 | refund_request、order、risk | refund_record | 待审核 -> 待返款/失败 | 财务 | 是 | V1必做 |\n| 返款 | 确认返款 | 完成付款/卡密发送 | refund_record | refund_record、notification | 待返款 -> 成功 | 财务 | 是 | V1必做 |\n\n## Gate 1 - 按钮盘点完成条件\n\n- 核心页面按钮均有业务含义不只是UI动作。\n- 每个关键按钮都有读写对象、状态变化、权限和审计要求。\n- 客服执行与客服管理按钮覆盖完整。\n- KOC/KOL按钮覆盖需求完整性并标注实现阶段。\n- 需求与计划匹配相关按钮覆盖生成、匹配、分配、调整、暂停、补量、关闭。\n- 额度预占释放、真实人合并/拆分、互动复检审计、渠道去重规则已有按钮入口。\n- Stage 2 可按对象命名对照表把页面简称映射到数据对象 v3 的正式对象。\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_04_分支流程_完整需求域_v1",
"type": "document",
"name": "USER ERP 0-1需求重构 - 04 分支流程_完整需求域 v1",
"filePath": "05_需求文档/20260527_USER_ERP_0-1需求重构_04_分支流程_完整需求域_v1.md",
"summary": "USER ERP 0 1需求重构 04 分支流程 完整需求域 v1 文件信息 文件名称: 20260527 USER ERP 0 1需求重构 04 分支流程 完整需求域 v1.md 项目路径: C:\\XCODE\\USER 输出位置: C:\\XCODE\\USER\\output\\docs 当前版本: v1 最近更新: 2026 05 27 所属阶段Stage ",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# USER ERP 0-1需求重构 - 04 分支流程_完整需求域 v1\n\n## 文件信息\n\n- 文件名称:`20260527_USER_ERP_0-1需求重构_04_分支流程_完整需求域_v1.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 输出位置:`C:\\XCODE\\USER\\output\\docs`\n- 当前版本:`v1`\n- 最近更新:`2026-05-27`\n- 所属阶段Stage 1 完整业务需求\n- 负责人:业务负责人\n- 核心参与USER运营、渠道运营、客服、KOC/KOL运营、财务、风险、产品\n- 文件目的整理主流程下所有核心分支确保阶段1需求完整不因V1实现边界遗漏KOC/KOL、客服或计划匹配。\n\n## 分支一:需求与计划匹配\n\n### 触发条件\n\n- OA测评计划新增或变化。\n- 销售/运营提交产品推广需求。\n- ASIN评分、差评、掉评触发回评/紧急催评。\n- 新品、库存、Listing、关键词状态变化。\n- KOC/KOL合作或带货需求进入。\n- 客服反馈某类用户或产品问题集中出现。\n\n### 流程\n\n```text\n需求进入\n-> 校验产品/ASIN/站点/店铺/库存/评分/关键词\n-> 判断需求类型\n-> 匹配计划类型\n-> 匹配执行资源\n-> 生成计划、渠道任务、客服任务或KOC/KOL任务\n-> 执行结果回流需求\n```\n\n### 读取\n\n- demand、product、asin、inventory、rating、review_stats、keyword、h5/card。\n- person_feature、reviewer、creator、quota、risk。\n- channel_config、agent_shift、agent_capacity、refund_capacity。\n\n### 写入\n\n- plan、plan_change_log、audience_snapshot、quota_reservation。\n- push_task、ticket、creator_task、risk_exclusion。\n\n### 关闭条件\n\n- 需求已转计划并完成。\n- 需求被驳回并有原因。\n- 需求被拆分或合并,并保留引用关系。\n- 需求进入待补充或待恢复,不再误触发执行。\n\n### 阶段\n\nV1必做。\n\n## 分支二IM推送\n\n### 用户分层\n\n| 层级 | 定义 | 策略 |\n| --- | --- | --- |\n| 未参与过用户 | 注册App并绑定玩具未参与回评/测评 | 优先推绑定产品回评卡片 |\n| 参与过用户 | 已参与回评/测评,真实人累计提交评价 < 12 | 优先催评,再推新测评 |\n| 长期测评人 | 真实人累计提交评价 >= 12 | 不优先普通测评,优先免评补单 |\n| 回评待完成 | 订单已登记但未上传评价/截图 | 催评 |\n| 测评待返款 | 已登记但缺返款信息或待返款 | 补信息/财务提醒 |\n\n### 流程\n\n```text\n人群生成\n-> 频控与风险复检\n-> 选择卡片/H5/文字/图片\n-> 推送\n-> 用户点击/回复/提交信息\n-> 系统核验订单号/返款账号/评论截图\n-> 完整则进入订单/返款/评价流程\n-> 不完整则生成客服工单或待补信息标签\n```\n\n### 必查\n\n- 用户是否黑名单。\n- 读取 `person_quota_ledgers`,按真实人判断累计提交评价、月度测评和月度免评额度。\n- 是否有未完成测评/回评。\n- 是否退款/取消订单。\n- 产品是否禁用。\n- H5/卡片是否有效。\n- 同一用户今日是否已触达。\n\n### 阶段\n\nV1必做。\n\n## 分支三EDM每日运营\n\n### 每日先看\n\n- 域名、邮箱、IP信誉是否健康。\n- OA测评计划是否变化。\n- KV/UID人群是否正常。\n- 产品选择、H5制作和H5数据维护是否受产品禁用影响。\n- 邮件发送、打开、点击、回复、退订、投诉。\n- 当天推送计划、AB Test、审核状态。\n- 菲律宾问题、订单、客服跟进清单。\n- 邮件转化数据。\n\n### 流程\n\n```text\n基础设施检查\n-> 同步OA计划\n-> 检查UID人群\n-> 检查产品/H5/链接\n-> 生成或调整EDM任务\n-> 发送与AB Test\n-> 回收打开/点击/回复/退订/投诉\n-> 转化到订单/客服/风险/复盘\n```\n\n### 阶段\n\nV1必做基础深度AB自动优化 V2实现。\n\n## 分支四Phone工作流\n\n### 每日先看\n\n- 未接电话和待回拨。\n- 问题类型分布。\n- 国家/语言/时段。\n- 哪个国家电话量最高。\n- 哪个国家未接率最高。\n- 高峰时段客服是否不足。\n- 是否需要调整排班或回拨时间。\n- 客服效率和转化。\n\n### 流程\n\n```text\n生成电话名单\n-> 匹配国家/语言/时段/客服排班\n-> 拨打或回拨\n-> 记录通话结果\n-> 如有订单/评价意向则进入客服转化\n-> 如有投诉/售后则进入工单\n-> 如有KOC/KOL意向则转线索池\n```\n\n### 阶段\n\nV1预留客服和Phone结合较强时进入V1必做。\n\n## 分支五:客服承接\n\n### 入口\n\n- 用户通过App/Email/IM/Phone发送消息。\n- 用户提交信息不完整。\n- 渠道推送带来咨询、投诉或售后问题。\n- 测评/回评/返款异常。\n- 用户答应配合后需要跟进。\n\n### 流程\n\n```text\n用户消息进入\n-> 系统生成待处理工单\n-> 自动或手动分配客服\n-> 客服查看上下文卡\n-> 客服回复和补全信息\n-> 登记订单/催评/上传结果/升级异常\n-> 工单解决或关闭\n-> 回复、转化、满意度、目标数据回流\n```\n\n### 客服转化流程\n\n```text\n客服沟通用户\n-> 用户下单或提供订单号\n-> 客服登记订单\n-> 后续拿到用户评价\n-> 上传评价结果\n-> 返款/核验\n-> 完成转化\n```\n\n### 管理流程\n\n```text\n排班\n-> 出勤\n-> 工单分配\n-> 回复统计\n-> RSO/RDO转化统计\n-> 月目标管理\n-> 绩效复盘\n```\n\n### 阶段\n\nV1必做。\n\n## 分支六:评价型订单与免评执行\n\n### 6A 评价型订单:测评/回评\n\n```text\n计划分配人群\n-> 生成订单或等待用户提交订单\n-> 核验订单号\n-> 绑定产品/ASIN/店铺/站点\n-> 上传回评/评论链接/截图\n-> 展示核验\n-> 返款/请款\n-> 完成或异常关闭\n```\n\n#### 关键规则\n\n- 非公司产品阻断。\n- 订单撤销或退款阻断。\n- 用户提交评价不等于Amazon展示确认。\n- 提交评价立即计入真实人累计提交额度;展示确认才计入评价型计划完成。\n- 更换订单、更改订单、转免评、撤销必须有日志。\n\n### 6B 免评执行KOC/KOL为主IM/EDM/APP协同\n\n```text\n免评计划批准\n-> 拆解KOC/KOL任务、免评Code、内容协同任务\n-> 匹配KOC/KOL、长期测评人或站外流量资源\n-> 发布内容、分发Code、同步IM/EDM/APP协同触达\n-> 回收点击、Code使用、订单、内容互动、权重结果\n-> 形成免评结果快照\n-> 达标关闭或调整KOC/素材/Code/渠道策略\n```\n\n#### 关键规则\n\n- 免评执行不以“用户提交评价”为终点,也不以 Amazon 展示评价作为完成口径。\n- 免评结果应写入 `exemption_plan_tasks`、`creator_content_records`、`exemption_result_snapshots` 等对象。\n- KOC/KOL任务、长期测评人免评补单、IM/EDM/APP协同触达可以服务同一个免评计划但必须分别记录任务来源和结果口径。\n- 免评Code、点击、订单、内容链接、带货归因和权重结果需要单独复盘不混入测评/回评订单完成数。\n\n### 阶段\n\n6A V1必做6B 的免评补单与协同入口 V1必做完整内容/归因/佣金闭环 V2实现。\n\n## 分支七:财务返款\n\n### 用户返款\n\n```text\n返款条件满足\n-> 发起请款\n-> 财务/审核确认\n-> 付款或礼品卡\n-> 凭证/卡密通知用户\n-> 返款状态回写订单和工单\n```\n\n### KOC/KOL佣金\n\n```text\n带货订单归因\n-> 计算佣金\n-> 审核\n-> 结算\n-> 争议处理\n-> 复盘表现\n```\n\n### 阶段\n\n用户返款 V1必做KOC/KOL佣金 V1预留V2实现。\n\n## 分支八KOC/KOL协作\n\n### 入口\n\n- 新增KOC/KOL线索。\n- KOC每日工作流发现可合作用户。\n- 免评计划需要长期测评人或达人补单。\n- 商家/产品需要内容或带货合作。\n\n### 流程\n\n```text\n线索进入\n-> 账号/标签/风险状态检查\n-> 自动打标与人工修正\n-> 分层新手KOC/稳定测评者/垂直专家/带货型KOL/品牌合作型\n-> 匹配产品/样品/免评/内容/带货任务\n-> 达人接受或拒绝\n-> 样品/订单/内容执行\n-> 上传内容链接或带货链接\n-> 审核、发布、归因\n-> 佣金/返款\n-> 风险与复盘\n```\n\n### 必须区分\n\n- KOC/KOL身份和普通测评人身份可能重叠但业务对象不同。\n- KOC/KOL标签、带货、测评、免评标签不能混。\n- KOC/KOL内容任务和普通回评/测评订单不能混用完成口径。\n\n### 阶段\n\n需求完整性必须覆盖V1预留核心入口与字段免评补单相关 V1必做完整内容/佣金 V2实现。\n\n## 分支九:风险与黑名单\n\n### 流程\n\n```text\n风险信号产生\n-> 判断弱风险/强风险\n-> 弱风险提醒人工确认\n-> 强风险阻断执行\n-> 人工复核\n-> 解除/确认风险\n-> 同步黑名单或恢复执行\n```\n\n### 风险来源\n\n- 黑名单命中。\n- 邮箱/电话/设备/IP/Profile/地址强弱关联。\n- 退款/取消订单。\n- 双重退款。\n- 多账号/多Profile异常。\n- 重复订单、重复评论、重复返款。\n- 差评/掉评异常。\n- KOC/KOL内容违规、佣金争议、带货归因异常。\n\n### 阶段\n\nV1必做。\n\n## Gate 1 - 分支流程完成条件\n\n- 所有核心分支都有触发、执行、写入、关闭条件。\n- 客服与KOC/KOL均作为完整需求域出现。\n- 分支结果能回流主流程和复盘。\n- 各分支有 V1必做、V1预留、V2实现边界。\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_05_异常流程_完整需求域_v1",
"type": "document",
"name": "USER ERP 0-1需求重构 - 05 异常流程_完整需求域 v1",
"filePath": "05_需求文档/20260527_USER_ERP_0-1需求重构_05_异常流程_完整需求域_v1.md",
"summary": "USER ERP 0 1需求重构 05 异常流程 完整需求域 v1 文件信息 文件名称: 20260527 USER ERP 0 1需求重构 05 异常流程 完整需求域 v1.md 项目路径: C:\\XCODE\\USER 输出位置: C:\\XCODE\\USER\\output\\docs 当前版本: v1 最近更新: 2026 05 27 所属阶段Stage ",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# USER ERP 0-1需求重构 - 05 异常流程_完整需求域 v1\n\n## 文件信息\n\n- 文件名称:`20260527_USER_ERP_0-1需求重构_05_异常流程_完整需求域_v1.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 输出位置:`C:\\XCODE\\USER\\output\\docs`\n- 当前版本:`v1`\n- 最近更新:`2026-05-27`\n- 所属阶段Stage 1 完整业务需求\n- 负责人:业务负责人 / 风险负责人 / 客服主管\n- 核心参与USER运营、渠道运营、客服、KOC/KOL运营、财务、风险、测试\n- 文件目的:定义完整需求域中的异常、拦截、提醒、升级、人工复核和恢复机制,为 Stage 2 测试用例和状态机做输入。\n\n## 异常分级\n\n| 等级 | 含义 | 处理要求 |\n| --- | --- | --- |\n| P0 | 直接影响今日核心目标、资金、合规或账号安全 | 当天处理,主管可见 |\n| P1 | 影响本周目标或大量用户体验 | 24小时内处理 |\n| P2 | 局部异常,可进入跟进列表 | 按责任人处理 |\n| P3 | 观察项,暂不阻断 | 持续监控 |\n\n## 01 需求与执行计划不匹配\n\n| 异常 | 自动发现 | 处理 | 关闭条件 | 阶段 |\n| --- | --- | --- | --- | --- |\n| 需求目标高于可用人群/额度 | 计划生成时匹配不足 | 提醒运营降低目标、拆分周期、转免评或补充渠道 | 目标调整或资源补足 | V1必做 |\n| 产品禁用但计划仍在执行 | 产品状态变化 | 自动暂停计划和下架H5/卡片,通知负责人 | 产品恢复或计划关闭 | V1必做 |\n| 库存不足但继续推测评/免评 | 库存低于安全线 | 限制节奏或暂停,通知运营 | 库存恢复或调整计划 | V1必做 |\n| ASIN/店铺/关键词变化未同步 | ASIN信息与计划不一致 | 阻断新推送生成H5/卡片维护任务 | 链接和卡片确认有效 | V1必做 |\n| 计划有名额但渠道无可推人群 | 人群生成结果为空或不足 | 提醒补充人群、换渠道、延长周期 | 匹配成功或关闭计划 | V1必做 |\n| 渠道有响应但客服容量不足 | 工单/回复超时、在线人数不足 | 暂停或降频推送,调整排班 | 客服容量恢复 | V1必做 |\n| 需求变更后旧计划未暂停 | 同需求存在多个冲突计划 | 提醒主管确认,自动标记冲突 | 旧计划暂停/合并/关闭 | V1预留 |\n| 完成数口径不一致 | 计划完成、订单完成、评价展示不一致 | 进入口径复核 | 口径修正并记录 | V1必做 |\n\n## 02 评价/订单异常\n\n| 异常 | 自动发现 | 处理 | 关闭条件 | 阶段 |\n| --- | --- | --- | --- | --- |\n| 订单号格式错误 | 用户提交时校验 | 提示用户重填,必要时转客服 | 正确订单号提交 | V1必做 |\n| 非公司产品 | 订单核验 | 阻断登记,转客服说明 | 工单关闭或人工改判 | V1必做 |\n| 店铺下错 | 订单店铺与计划不一致 | 转人工处理,可转免评 | 订单状态修正 | V1必做 |\n| 订单已取消 | Amazon状态 | 阻断回评和返款 | 用户换单或关闭 | V1必做 |\n| 订单已退款 | Amazon退款命中 | 进入退款比对和风险 | 风险结论完成 | V1必做 |\n| 评论重复绑定 | 评论ID/链接已绑定 | 阻断或申请例外审核 | 绑定唯一或审核通过 | V1必做 |\n| 订单重复绑定 | 订单号已绑定其他单 | 阻断,进入人工复核 | 确认归属 | V1必做 |\n| 用户只提交部分信息 | 缺返款账号/截图/链接 | 自动打标,生成客服跟进 | 信息补齐或关闭 | V1必做 |\n| 评论未展示 | Amazon展示核验失败 | 标记未展示,计划不计完成 | 后续展示或关闭 | V1必做 |\n| 掉评/差评 | Review状态变化 | 触发回评/紧急催评/风险 | 计划调整或风险关闭 | V1必做 |\n\n## 03 返款/佣金异常\n\n| 异常 | 自动发现 | 处理 | 关闭条件 | 阶段 |\n| --- | --- | --- | --- | --- |\n| 缺返款账号 | 用户提交不完整 | 自动打标待返款,客服跟进 | 账号补齐 | V1必做 |\n| 返款账号格式异常 | 表单校验/人工审核 | 退回补充 | 格式正确 | V1必做 |\n| 重复请款 | 同订单/同返款ID重复 | 阻断并提醒财务 | 去重完成 | V1必做 |\n| 双重退款 | Amazon退款+OA返款命中 | 生成风险事件 | 风险确认或解除 | V1必做 |\n| 非APP用户邮件退款 | 邮件退款链路缺设备/注册邮箱维度 | 标记风险盲区,补充邮箱、订单、地址、收款信息等识别线索 | 识别维度补齐或人工复核完成 | V1必做 |\n| 返款超额 | 金额超过规则 | 进入超额审核 | 审核通过/拒绝 | V1必做 |\n| 卡密/凭证缺失 | 返款成功但无凭证 | 生成财务待补任务 | 凭证补齐 | V1预留 |\n| KOC/KOL佣金争议 | 达人反馈或金额不一致 | 进入佣金复核 | 结算修正或驳回 | V2实现 |\n\n## 04 客服异常\n\n| 异常 | 自动发现 | 处理 | 关闭条件 | 阶段 |\n| --- | --- | --- | --- | --- |\n| 无客服在线 | 在线人数为0但有待处理工单 | 提醒主管,暂停部分推送 | 有客服承接 | V1必做 |\n| 工单未分配 | 待分配超时 | 自动分配或主管手动分配 | 工单有处理人 | V1必做 |\n| 首次回复超时 | 首次回复时长超过阈值 | 提醒客服/主管 | 已回复或转移 | V1必做 |\n| 等待用户超时 | 用户长时间未回复 | 自动提醒或关闭 | 用户回复/关闭 | V1必做 |\n| 客服转移失败 | 目标客服离线或超负荷 | 重新选择处理人 | 转移成功 | V1必做 |\n| 排班不足 | 高峰工单大于客服容量 | 主管调整排班或降频推送 | 容量恢复 | V1必做 |\n| 目标异常 | 月目标明显低于进度 | 提醒主管调度 | 目标追平或调整 | V1必做 |\n| 客服误登记订单 | 人工发现或订单核验失败 | 更改订单并留痕 | 订单修正 | V1必做 |\n| 用户投诉客服 | 投诉/负反馈 | 升级主管复核 | 处理结论 | V1预留 |\n\n## 05 渠道异常\n\n| 异常 | 自动发现 | 处理 | 关闭条件 | 阶段 |\n| --- | --- | --- | --- | --- |\n| IM点击低 | 漏斗低于阈值 | 换素材/卡片/人群 | 指标恢复或复盘 | V1必做 |\n| IM回复低于3% | 日常监控 | 更换图片/话术 | 回复率恢复 | V1必做 |\n| 退订或不感兴趣升高 | 退订/投诉异常 | 降频、暂停素材、调整人群 | 指标恢复 | V1必做 |\n| EDM域名/IP信誉异常 | 每日检查 | 暂停发送、切换账号、通知负责人 | 信誉恢复 | V1必做 |\n| KV/UID人群导出失败 | 人群数量异常 | 暂停推送,重跑导出 | 人群正常 | V1必做 |\n| H5链接失效 | 链接检测或用户反馈 | 下架任务,修复链接 | 链接有效 | V1必做 |\n| 卡片产品禁用未同步 | 产品状态变更 | 自动下架卡片 | 卡片状态正确 | V1必做 |\n| Phone未接率过高 | 电话数据 | 调整时段/排班/回拨 | 未接率下降 | V1预留 |\n\n## 06 KOC/KOL异常\n\n| 异常 | 自动发现 | 处理 | 关闭条件 | 阶段 |\n| --- | --- | --- | --- | --- |\n| KOC标签混乱 | 同人存在KOC/测评/带货冲突 | 人工复核标签 | 标签修正 | V1预留 |\n| KOC/KOL与C类测评人身份重叠 | 同一真实人同时命中免评推送和KOC任务 | 阻断重复触达,进入身份/任务冲突复核 | 明确走免评协同或KOC任务不重复计完成 | V1必做 |\n| 达人重复触达 | 同一KOC/KOL多任务冲突 | 合并或暂停任务 | 冲突解除 | V1预留 |\n| 样品发出未产出内容 | 任务超时 | 催办、暂停合作、风险记录 | 内容提交或任务关闭 | V2实现 |\n| 内容链接无效 | 链接检测失败 | 要求重提 | 链接有效 | V2实现 |\n| 内容不合规 | 内容审核 | 驳回、下架、降权 | 内容修正或关闭 | V2实现 |\n| 带货订单归因失败 | Code/链接无法匹配 | 进入人工归因 | 归因完成或驳回 | V2实现 |\n| 佣金争议 | 金额或订单争议 | 财务/运营复核 | 结算修正或驳回 | V2实现 |\n| 高风险KOC继续推送 | 风险状态命中 | 阻断任务 | 风险解除或拉黑 | V1预留 |\n\n## 07 风险异常\n\n| 异常 | 自动发现 | 处理 | 关闭条件 | 阶段 |\n| --- | --- | --- | --- | --- |\n| 黑名单命中 | 身份线索命中 | 阻断触达/返款/合作 | 人工解除或保持黑名单 | V1必做 |\n| 强关联命中 | 邮箱/电话/设备/Profile/地址 | 阻断并复核 | 风险结论 | V1必做 |\n| 弱关联命中 | IP/相似地址等 | 提醒人工确认 | 确认/排除 | V1必做 |\n| 额度超限 | 月度/累计额度命中 | 阻断普通测评,转免评池 | 额度恢复或转免评 | V1必做 |\n| 多账号归并冲突 | 同一真实人下多个 JOYHUB/Profile 额度不一致 | 按 `person_quota_ledgers` 重新汇总,进入人工复核 | 额度统一并记录合并/拆分结论 | V1必做 |\n| 频控超限 | 当日/周期触达超限 | 暂停触达 | 到期恢复 | V1必做 |\n| 敏感字段导出风险 | 导出包含敏感字段 | 强制脱敏/审批 | 导出完成或拒绝 | V1必做 |\n\n## 异常处理通用状态\n\n```text\n待发现 -> 已发现 -> 待处理 -> 处理中 -> 待复核 -> 已关闭\n```\n\n可选状态\n\n- 已升级。\n- 已驳回。\n- 已阻断。\n- 已恢复。\n- 需补充信息。\n- 需跨部门协同。\n\n## Gate 1 - 异常流程完成条件\n\n- 需求计划、评价订单、客服、渠道、KOC/KOL、返款、风险异常均覆盖。\n- 每类异常有发现方式、处理动作、关闭条件。\n- P0/P1/P2/P3等级可用于今日作战台。\n- 异常能回流计划调整、客服任务、风险事件和复盘记录。\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1",
"type": "document",
"name": "USER ERP 0-1需求重构 - 06 VibeCoding页面验证记录 v1",
"filePath": "05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1.md",
"summary": "USER ERP 0 1需求重构 06 VibeCoding页面验证记录 v1 文件信息 文件名称: 20260527 USER ERP 0 1需求重构 06 VibeCoding页面验证记录 v1.md 项目路径: C:\\XCODE\\USER 输出位置: C:\\XCODE\\USER\\output\\docs 当前版本: v1 最近更新: 2026 05 27",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# USER ERP 0-1需求重构 - 06 VibeCoding页面验证记录 v1\n\n## 文件信息\n\n- 文件名称:`20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 输出位置:`C:\\XCODE\\USER\\output\\docs`\n- 当前版本:`v1`\n- 最近更新:`2026-05-27`\n- 所属阶段Stage 1 完整业务需求\n- 负责人:产品负责人 / 前端观察员\n- 核心参与业务负责人、USER运营、客服主管、渠道负责人、KOC/KOL负责人、技术负责人\n- 文件目的:把现有 Vibe Coding / AI 原型作为需求验证材料,记录已覆盖能力、暴露缺口和 Stage 2 高保真模型输入。\n\n## 验证原则\n\n1. 原型不是生产代码,不作为正式系统底座。\n2. 原型用于发现页面、字段、按钮、状态和流程缺口。\n3. 验证重点不是“页面能不能打开”,而是“需求是否完整、业务对象是否统一、每日操作是否可执行”。\n4. 阶段1必须记录原型未覆盖的需求域特别是 KOC/KOL、客服管理、需求计划匹配和复盘口径。\n\n## 验证材料\n\n| 材料 | 用途 | 结论 |\n| --- | --- | --- |\n| `C:\\XCODE\\USER\\input\\user-review-system` | React/Vite原型含计划、测评人、订单、客服、渠道、风险、看板入口参考 `src\\App.tsx`、`src\\config\\routes.tsx`、`src\\config\\menu.tsx` | 覆盖面较广,可作为页面/字段参考 |\n| `C:\\XCODE\\USER\\input\\user-review-system\\docs\\review-order-PRD.md` | 回评/测评订单详细PRD | 订单页面细但只是局部不足以代表ERP主流程 |\n| `C:\\XCODE\\USER\\input\\user-review-system\\docs\\review-order-architecture.md` | 订单页面技术架构 | 可参考组件拆分和待确认问题 |\n| `C:\\XCODE\\USER\\src\\user_erp_mvp_admin_prototype_v10.html` | 既有 v10 HTML 原型 | 可参考早期管理端页面,但不直接复用为新系统底座 |\n| `C:\\XCODE\\USER\\input\\用户运营系统-单文件.html` | 大型单文件运营系统原型 | 可参考全局菜单和字段,但不直接复用 |\n| `C:\\XCODE\\USER\\input\\amazon_operator_test_entry.html` | 亚马逊提评入口原型 | 可参考需求提报、IM账号、推送策略 |\n| `C:\\XCODE\\USER\\input\\客服执行.html` | 客服执行/管理原型 | 客服核心需求的重要参考 |\n| `C:\\XCODE\\USER\\input\\IM 推送业务流.mm` | IM业务流脑图 | IM分层和流转最完整 |\n\n## user-review-system 验证\n\n### 已覆盖能力\n\n| 模块 | 已覆盖 |\n| --- | --- |\n| 菜单/路由 | 工作台、评价计划、评价人管理、测评订单、回评订单、客服中心、渠道推送、风险中心、数据看板 |\n| 计划 | 测评计划、回评计划、免评计划,含列表、表单、详情、关联推送/订单 |\n| 测评人 | 测评人列表、详情、表单、额度、订单、风险、联系记录 |\n| 订单 | 测评订单、回评订单、上传订单、上传回评、请款、返款、详情抽屉 |\n| 客服 | 工单池、聊天、聊天记录、答应配合、客服绩效看板 |\n| 渠道 | 推送任务、IM推送、IM卡片、IM/EDM配置 |\n| 风险 | 风险事件、黑名单、退款比对 |\n| 看板 | 计划、ASIN、客服绩效 |\n\n### 暴露的缺口\n\n| 缺口 | 影响 | 后续处理 |\n| --- | --- | --- |\n| 需求池与计划生成链路弱 | 无法解释需求如何变成计划 | Stage 2 需新增需求与计划调度中心 |\n| 计划匹配资源视图不足 | 人群、客服、渠道、H5/卡片、风险没有统一调度 | 需新增执行匹配看板 |\n| 客服管理不完整 | 排班、出勤、目标、首次回复、转化绩效不足 | 结合客服执行原型补齐 |\n| KOC/KOL需求域不足 | 线索、任务、内容、带货、佣金缺失 | 阶段1必须补出完整需求 |\n| 订单PRD局部过细 | 容易用订单页面替代ERP主流程 | 保留为订单模块参考 |\n| 状态枚举不统一 | 测评、回评、返款、计划、客服状态口径混乱 | Stage 2需统一状态机 |\n| Mock 数据含临时品类 | 部分示例与真实业务不一致 | 只取字段结构,不取业务事实 |\n\n## 用户运营系统单文件验证\n\n### 已覆盖\n\n- USER评价业务闭环系统的全局菜单雏形。\n- 产品、计划、订单、客服、风险、真实人、用户信息等多类字段。\n- 较多运营筛选、状态、详情、操作入口。\n\n### 缺口\n\n- 文件过大,页面和数据逻辑混杂,不适合做正式底座。\n- 未清晰区分需求完整范围和V1实现范围。\n- KOC/KOL相关需求不完整。\n- 客服核心执行与管理需要与 `客服执行.html` 合并分析。\n- 需求到计划再到执行匹配的调度视图不足。\n\n## amazon_operator_test_entry 验证\n\n### 已覆盖\n\n- 亚马逊提评入口。\n- 提评单列表。\n- IM推送。\n- IM账号管理。\n- 新建提评单。\n- 推送策略。\n- 卡片内容管理。\n- 业务类型:测评、免评、回评。\n\n### 可纳入需求\n\n- 提评需求提报字段站点、ASIN、商品、关键词、关键词链接、品牌、新品状态、要求数量、店铺、原因、备注。\n- IM账号和身份管理官方客服、品牌客服、达人、内部/外部品牌。\n- 推送策略:用户标签、去除标签、优先级、间隔时间、内容形式、跳转链接。\n\n### 缺口\n\n- 未打通完整需求池和计划对象。\n- 提评入口与USER运营调度中心的关系需重构。\n- IM账号管理需与渠道配置、权限和风险联动。\n\n## 客服执行原型验证\n\n### 已覆盖\n\n- 客服执行看板。\n- 首页Dashboard。\n- 出勤管理。\n- 排班管理。\n- 工单管理。\n- 回复统计。\n- 转化绩效。\n- 目标管理。\n- 角色权限:客服与主管/管理员视角。\n\n### 可纳入需求\n\n| 能力 | 说明 |\n| --- | --- |\n| 工单自动分配 | 在线优先、按工单量平均、最大工单数 |\n| 客服视角 | 只看自己工单、绩效和目标 |\n| 主管视角 | 查看团队数据、调整工单、排班和目标 |\n| 绩效统计 | RSO/RDO登记订单、上评、完成率 |\n| 出勤/排班 | 早班、午班、晚班、迟到、早退、请假、缺勤 |\n\n### 缺口\n\n- 与评价计划、渠道推送和订单履约的联动需要补强。\n- 客服容量尚未进入需求与计划匹配。\n- 客服误登记、投诉、转移失败、排班不足等异常需要补全。\n\n## IM推送业务流验证\n\n### 已覆盖\n\n- 用户分层:未参与、参与过、长期测评人。\n- 推送前风控校验。\n- 回评卡片、测评卡片、免评产品、催评消息。\n- 用户提交订单号、返款账号、评论截图/链接。\n- 订单号核实和客服补全。\n- 财务返款提醒。\n- 自动打标体系。\n- 店铺紧急催评。\n\n### 可直接作为Stage 2输入\n\n- IM用户分层。\n- 核心标签体系。\n- 每次互动复检。\n- 未完成流程的标签与自动通知。\n- 长期测评人转免评策略。\n\n### 缺口\n\n- IM流程需要与统一计划、额度台账、客服工单和风险事件对象对齐。\n- 文档中提到的“当天测评计划需要刷的名额”需要接入计划匹配。\n\n## KOC/KOL需求验证\n\n### 已有线索\n\n- `KOC 每日工作流.md` 提到账号、标签、风险、新增线索、用户分层、自动打标、任务去重、回复、订单、返款、Review、带货、风险。\n- `商家KOL商业服务系统-USER项目知识迁移清单.md` 提供服务包、KOC/KOL分层、佣金原则、内容分级和推荐分发接口意识。\n- 现有原型仅零散覆盖KOC/KOL未形成完整中心。\n\n### 阶段1必须补出的需求\n\n- KOC/KOL线索池。\n- KOC/KOL档案和分层。\n- KOC/KOL与测评人/真实人的身份关系。\n- 内容任务、样品/免评、带货任务。\n- 内容审核、链接、Code、订单归因。\n- 佣金计算与结算接口。\n- KOC/KOL风险和异常。\n\n### 阶段建议\n\n- V1必做免评补单相关的KOC/KOL入口、标签、风险和任务关联。\n- V1预留KOC/KOL档案、线索池、合作状态。\n- V2实现内容审核、带货归因、佣金结算、商家服务包完整后台。\n\n## 进入Stage 2的输入清单\n\n| 输入 | 说明 |\n| --- | --- |\n| 需求与计划调度中心 | 需要新设计,不应从现有订单页面改 |\n| 今日作战台 | 需要按OKR和岗位每日工作方式设计 |\n| 客服执行/管理 | 可综合 `客服相关模块.md` 和 `客服执行.html` |\n| IM推送 | 可基于 `IM 推送业务流.mm` 和 user-review-system IM页面 |\n| 订单页面 | 可参考 review-order PRD但需合并测评/回评/免评口径 |\n| 测评人/真实人 | 可参考 `测评信息字段管理.xlsx` 和数据对象v3 |\n| KOC/KOL中心 | 现有原型不足,需要新建需求模型 |\n| 风险中心 | 可参考现有风险页面但需扩展KOC/KOL与计划匹配异常 |\n\n## 不能直接继承的内容\n\n- 不能直接继承 Vibe Coding 的文件结构作为正式工程结构。\n- 不能把 mock 数据当业务事实。\n- 不能把回评/测评订单PRD当成整个 ERP PRD。\n- 不能因为 V1不实现完整KOC/KOL平台就在阶段1删除KOC/KOL需求。\n- 不能把客服降级为“工单页面”,客服是核心执行和转化资源。\n\n## Gate 1 - Vibe Coding验证完成条件\n\n- 已记录所有原型的可用需求点。\n- 已记录原型不能支撑的业务缺口。\n- 已确认正式系统需要重新做 Stage 2 高保真模型。\n- 已确认KOC/KOL、客服、需求计划匹配是现有原型的主要补强方向。\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1(1)",
"type": "document",
"name": "USER ERP 0-1需求重构 - 06 VibeCoding页面验证记录 v1",
"filePath": "05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1(1).md",
"summary": "USER ERP 0 1需求重构 06 VibeCoding页面验证记录 v1 文件信息 文件名称: 20260527 USER ERP 0 1需求重构 06 VibeCoding页面验证记录 v1.md 项目路径: C:\\XCODE\\USER 输出位置: C:\\XCODE\\USER\\output\\docs 当前版本: v1 最近更新: 2026 05 27",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "simple",
"knowledgeMeta": {
"content": "# USER ERP 0-1需求重构 - 06 VibeCoding页面验证记录 v1\n\n## 文件信息\n\n- 文件名称:`20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1.md`\n- 项目路径:`C:\\XCODE\\USER`\n- 输出位置:`C:\\XCODE\\USER\\output\\docs`\n- 当前版本:`v1`\n- 最近更新:`2026-05-27`\n- 所属阶段Stage 1 完整业务需求\n- 负责人:产品负责人 / 前端观察员\n- 核心参与业务负责人、USER运营、客服主管、渠道负责人、KOC/KOL负责人、技术负责人\n- 文件目的:把现有 Vibe Coding / AI 原型作为需求验证材料,记录已覆盖能力、暴露缺口和 Stage 2 高保真模型输入。\n\n## 验证原则\n\n1. 原型不是生产代码,不作为正式系统底座。\n2. 原型用于发现页面、字段、按钮、状态和流程缺口。\n3. 验证重点不是“页面能不能打开”,而是“需求是否完整、业务对象是否统一、每日操作是否可执行”。\n4. 阶段1必须记录原型未覆盖的需求域特别是 KOC/KOL、客服管理、需求计划匹配和复盘口径。\n\n## 验证材料\n\n| 材料 | 用途 | 结论 |\n| --- | --- | --- |\n| `C:\\XCODE\\USER\\input\\user-review-system` | React/Vite原型含计划、测评人、订单、客服、渠道、风险、看板入口参考 `src\\App.tsx`、`src\\config\\routes.tsx`、`src\\config\\menu.tsx` | 覆盖面较广,可作为页面/字段参考 |\n| `C:\\XCODE\\USER\\input\\user-review-system\\docs\\review-order-PRD.md` | 回评/测评订单详细PRD | 订单页面细但只是局部不足以代表ERP主流程 |\n| `C:\\XCODE\\USER\\input\\user-review-system\\docs\\review-order-architecture.md` | 订单页面技术架构 | 可参考组件拆分和待确认问题 |\n| `C:\\XCODE\\USER\\src\\user_erp_mvp_admin_prototype_v10.html` | 既有 v10 HTML 原型 | 可参考早期管理端页面,但不直接复用为新系统底座 |\n| `C:\\XCODE\\USER\\input\\用户运营系统-单文件.html` | 大型单文件运营系统原型 | 可参考全局菜单和字段,但不直接复用 |\n| `C:\\XCODE\\USER\\input\\amazon_operator_test_entry.html` | 亚马逊提评入口原型 | 可参考需求提报、IM账号、推送策略 |\n| `C:\\XCODE\\USER\\input\\客服执行.html` | 客服执行/管理原型 | 客服核心需求的重要参考 |\n| `C:\\XCODE\\USER\\input\\IM 推送业务流.mm` | IM业务流脑图 | IM分层和流转最完整 |\n\n## user-review-system 验证\n\n### 已覆盖能力\n\n| 模块 | 已覆盖 |\n| --- | --- |\n| 菜单/路由 | 工作台、评价计划、评价人管理、测评订单、回评订单、客服中心、渠道推送、风险中心、数据看板 |\n| 计划 | 测评计划、回评计划、免评计划,含列表、表单、详情、关联推送/订单 |\n| 测评人 | 测评人列表、详情、表单、额度、订单、风险、联系记录 |\n| 订单 | 测评订单、回评订单、上传订单、上传回评、请款、返款、详情抽屉 |\n| 客服 | 工单池、聊天、聊天记录、答应配合、客服绩效看板 |\n| 渠道 | 推送任务、IM推送、IM卡片、IM/EDM配置 |\n| 风险 | 风险事件、黑名单、退款比对 |\n| 看板 | 计划、ASIN、客服绩效 |\n\n### 暴露的缺口\n\n| 缺口 | 影响 | 后续处理 |\n| --- | --- | --- |\n| 需求池与计划生成链路弱 | 无法解释需求如何变成计划 | Stage 2 需新增需求与计划调度中心 |\n| 计划匹配资源视图不足 | 人群、客服、渠道、H5/卡片、风险没有统一调度 | 需新增执行匹配看板 |\n| 客服管理不完整 | 排班、出勤、目标、首次回复、转化绩效不足 | 结合客服执行原型补齐 |\n| KOC/KOL需求域不足 | 线索、任务、内容、带货、佣金缺失 | 阶段1必须补出完整需求 |\n| 订单PRD局部过细 | 容易用订单页面替代ERP主流程 | 保留为订单模块参考 |\n| 状态枚举不统一 | 测评、回评、返款、计划、客服状态口径混乱 | Stage 2需统一状态机 |\n| Mock 数据含临时品类 | 部分示例与真实业务不一致 | 只取字段结构,不取业务事实 |\n\n## 用户运营系统单文件验证\n\n### 已覆盖\n\n- USER评价业务闭环系统的全局菜单雏形。\n- 产品、计划、订单、客服、风险、真实人、用户信息等多类字段。\n- 较多运营筛选、状态、详情、操作入口。\n\n### 缺口\n\n- 文件过大,页面和数据逻辑混杂,不适合做正式底座。\n- 未清晰区分需求完整范围和V1实现范围。\n- KOC/KOL相关需求不完整。\n- 客服核心执行与管理需要与 `客服执行.html` 合并分析。\n- 需求到计划再到执行匹配的调度视图不足。\n\n## amazon_operator_test_entry 验证\n\n### 已覆盖\n\n- 亚马逊提评入口。\n- 提评单列表。\n- IM推送。\n- IM账号管理。\n- 新建提评单。\n- 推送策略。\n- 卡片内容管理。\n- 业务类型:测评、免评、回评。\n\n### 可纳入需求\n\n- 提评需求提报字段站点、ASIN、商品、关键词、关键词链接、品牌、新品状态、要求数量、店铺、原因、备注。\n- IM账号和身份管理官方客服、品牌客服、达人、内部/外部品牌。\n- 推送策略:用户标签、去除标签、优先级、间隔时间、内容形式、跳转链接。\n\n### 缺口\n\n- 未打通完整需求池和计划对象。\n- 提评入口与USER运营调度中心的关系需重构。\n- IM账号管理需与渠道配置、权限和风险联动。\n\n## 客服执行原型验证\n\n### 已覆盖\n\n- 客服执行看板。\n- 首页Dashboard。\n- 出勤管理。\n- 排班管理。\n- 工单管理。\n- 回复统计。\n- 转化绩效。\n- 目标管理。\n- 角色权限:客服与主管/管理员视角。\n\n### 可纳入需求\n\n| 能力 | 说明 |\n| --- | --- |\n| 工单自动分配 | 在线优先、按工单量平均、最大工单数 |\n| 客服视角 | 只看自己工单、绩效和目标 |\n| 主管视角 | 查看团队数据、调整工单、排班和目标 |\n| 绩效统计 | RSO/RDO登记订单、上评、完成率 |\n| 出勤/排班 | 早班、午班、晚班、迟到、早退、请假、缺勤 |\n\n### 缺口\n\n- 与评价计划、渠道推送和订单履约的联动需要补强。\n- 客服容量尚未进入需求与计划匹配。\n- 客服误登记、投诉、转移失败、排班不足等异常需要补全。\n\n## IM推送业务流验证\n\n### 已覆盖\n\n- 用户分层:未参与、参与过、长期测评人。\n- 推送前风控校验。\n- 回评卡片、测评卡片、免评产品、催评消息。\n- 用户提交订单号、返款账号、评论截图/链接。\n- 订单号核实和客服补全。\n- 财务返款提醒。\n- 自动打标体系。\n- 店铺紧急催评。\n\n### 可直接作为Stage 2输入\n\n- IM用户分层。\n- 核心标签体系。\n- 每次互动复检。\n- 未完成流程的标签与自动通知。\n- 长期测评人转免评策略。\n\n### 缺口\n\n- IM流程需要与统一计划、额度台账、客服工单和风险事件对象对齐。\n- 文档中提到的“当天测评计划需要刷的名额”需要接入计划匹配。\n\n## KOC/KOL需求验证\n\n### 已有线索\n\n- `KOC 每日工作流.md` 提到账号、标签、风险、新增线索、用户分层、自动打标、任务去重、回复、订单、返款、Review、带货、风险。\n- `商家KOL商业服务系统-USER项目知识迁移清单.md` 提供服务包、KOC/KOL分层、佣金原则、内容分级和推荐分发接口意识。\n- 现有原型仅零散覆盖KOC/KOL未形成完整中心。\n\n### 阶段1必须补出的需求\n\n- KOC/KOL线索池。\n- KOC/KOL档案和分层。\n- KOC/KOL与测评人/真实人的身份关系。\n- 内容任务、样品/免评、带货任务。\n- 内容审核、链接、Code、订单归因。\n- 佣金计算与结算接口。\n- KOC/KOL风险和异常。\n\n### 阶段建议\n\n- V1必做免评补单相关的KOC/KOL入口、标签、风险和任务关联。\n- V1预留KOC/KOL档案、线索池、合作状态。\n- V2实现内容审核、带货归因、佣金结算、商家服务包完整后台。\n\n## 进入Stage 2的输入清单\n\n| 输入 | 说明 |\n| --- | --- |\n| 需求与计划调度中心 | 需要新设计,不应从现有订单页面改 |\n| 今日作战台 | 需要按OKR和岗位每日工作方式设计 |\n| 客服执行/管理 | 可综合 `客服相关模块.md` 和 `客服执行.html` |\n| IM推送 | 可基于 `IM 推送业务流.mm` 和 user-review-system IM页面 |\n| 订单页面 | 可参考 review-order PRD但需合并测评/回评/免评口径 |\n| 测评人/真实人 | 可参考 `测评信息字段管理.xlsx` 和数据对象v3 |\n| KOC/KOL中心 | 现有原型不足,需要新建需求模型 |\n| 风险中心 | 可参考现有风险页面但需扩展KOC/KOL与计划匹配异常 |\n\n## 不能直接继承的内容\n\n- 不能直接继承 Vibe Coding 的文件结构作为正式工程结构。\n- 不能把 mock 数据当业务事实。\n- 不能把回评/测评订单PRD当成整个 ERP PRD。\n- 不能因为 V1不实现完整KOC/KOL平台就在阶段1删除KOC/KOL需求。\n- 不能把客服降级为“工单页面”,客服是核心执行和转化资源。\n\n## Gate 1 - Vibe Coding验证完成条件\n\n- 已记录所有原型的可用需求点。\n- 已记录原型不能支撑的业务缺口。\n- 已确认正式系统需要重新做 Stage 2 高保真模型。\n- 已确认KOC/KOL、客服、需求计划匹配是现有原型的主要补强方向。\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260528_USER_ERP_0-1需求重构_可点击参考原型_v1",
"type": "document",
"name": "USER ERP 0-1需求重构 · 可点击参考原型 v1",
"filePath": "05_需求文档/20260528_USER_ERP_0-1需求重构_可点击参考原型_v1.html",
"summary": "USER ERP 0-1需求重构 · 可点击参考原型 v1 USER ERP Stage 1 Prototype 模拟数据 仅用于流程验证 当前模块 今日作战 从异常、资源和今日动作进入业务闭环。 高频跳转 6 P0/P1异常 37 需求待评估 12 客服超时 9 免评缺口 4 额度预警 18 复盘待写 7 今日作战台 高级主管 / USER运营 / 客服 ",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "<!doctype html>\n<html lang=\"zh-CN\">\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>USER ERP 0-1需求重构 · 可点击参考原型 v1</title>\n <style>\n :root {\n --bg: #f5f7fb;\n --panel: #ffffff;\n --panel-2: #f8fafc;\n --text: #142033;\n --muted: #66758a;\n --line: #dfe5ee;\n --line-strong: #cbd5e1;\n --blue: #2563eb;\n --blue-soft: #e8f0ff;\n --green: #15803d;\n --green-soft: #e8f7ee;\n --amber: #b45309;\n --amber-soft: #fff4df;\n --red: #b91c1c;\n --red-soft: #fdecec;\n --purple: #6d28d9;\n --purple-soft: #f2ecff;\n --nav: #111827;\n --nav-soft: #1f2937;\n --radius: 8px;\n --shadow: 0 16px 36px rgba(15, 23, 42, 0.10);\n }\n\n * { box-sizing: border-box; }\n\n body {\n margin: 0;\n min-height: 100vh;\n background: var(--bg);\n color: var(--text);\n font-family: \"Microsoft YaHei\", \"Segoe UI\", Arial, sans-serif;\n letter-spacing: 0;\n }\n\n button, input, select { font: inherit; }\n button { cursor: pointer; }\n\n .app {\n min-height: 100vh;\n display: grid;\n grid-template-columns: 330px minmax(0, 1fr);\n }\n\n .sidebar {\n height: 100vh;\n position: sticky;\n top: 0;\n display: grid;\n grid-template-columns: 92px 238px;\n border-right: 1px solid var(--line);\n background: var(--panel);\n z-index: 10;\n }\n\n .rail {\n background: var(--nav);\n color: #e5edf7;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n gap: 12px;\n padding: 16px 12px;\n min-height: 0;\n }\n\n .brand {\n display: grid;\n gap: 4px;\n justify-items: center;\n padding-bottom: 14px;\n border-bottom: 1px solid rgba(255,255,255,.12);\n text-align: center;\n }\n\n .brand strong { font-size: 14px; color: #fff; }\n .brand span { color: #aebbc9; font-size: 12px; }\n\n .rail-nav {\n display: grid;\n gap: 8px;\n align-content: start;\n overflow: auto;\n min-height: 0;\n }\n\n .rail-btn {\n min-height: 66px;\n border: 0;\n border-radius: var(--radius);\n background: transparent;\n color: #dbe7f5;\n display: grid;\n justify-items: center;\n align-content: center;\n gap: 5px;\n padding: 8px 4px;\n position: relative;\n }\n\n .rail-btn:hover, .rail-btn.active { background: var(--nav-soft); color: #fff; }\n .rail-btn.active::before {\n content: \"\";\n position: absolute;\n left: -12px;\n top: 12px;\n bottom: 12px;\n width: 4px;\n background: var(--blue);\n border-radius: 999px;\n }\n\n .rail-icon {\n width: 28px;\n height: 28px;\n border: 1px solid rgba(255,255,255,.25);\n border-radius: 7px;\n display: grid;\n place-items: center;\n font-size: 12px;\n font-weight: 800;\n }\n\n .rail-label { font-size: 12px; line-height: 1.2; text-align: center; }\n\n .rail-foot {\n border: 1px solid rgba(255,255,255,.14);\n border-radius: var(--radius);\n padding: 10px 6px;\n display: grid;\n gap: 4px;\n text-align: center;\n color: #cbd5e1;\n font-size: 12px;\n }\n\n .panel-nav {\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n min-height: 0;\n padding: 18px 14px;\n gap: 14px;\n }\n\n .module-head {\n padding-bottom: 14px;\n border-bottom: 1px solid var(--line);\n display: grid;\n gap: 4px;\n }\n\n .eyebrow {\n margin: 0;\n color: var(--muted);\n font-size: 12px;\n font-weight: 700;\n }\n\n .module-head h1 {\n margin: 0;\n font-size: 22px;\n line-height: 1.2;\n }\n\n .module-head span { color: var(--muted); font-size: 12px; line-height: 1.5; }\n\n .page-nav {\n overflow: auto;\n min-height: 0;\n display: grid;\n gap: 7px;\n align-content: start;\n }\n\n .page-btn, .todo-btn {\n border: 1px solid transparent;\n background: transparent;\n color: var(--text);\n border-radius: var(--radius);\n min-height: 42px;\n padding: 9px 10px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n text-align: left;\n }\n\n .page-btn:hover, .todo-btn:hover, .page-btn.active {\n background: var(--blue-soft);\n border-color: #bcd0ff;\n color: #123f9f;\n }\n\n .page-btn small {\n color: var(--muted);\n font-size: 11px;\n flex: none;\n }\n\n .quick {\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 12px;\n background: var(--panel-2);\n display: grid;\n gap: 8px;\n }\n\n .quick-head {\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: var(--muted);\n font-size: 12px;\n font-weight: 700;\n }\n\n .main {\n min-width: 0;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr);\n }\n\n .topbar {\n min-height: 76px;\n position: sticky;\n top: 0;\n z-index: 8;\n background: rgba(245, 247, 251, 0.92);\n backdrop-filter: blur(12px);\n border-bottom: 1px solid var(--line);\n padding: 14px 24px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n }\n\n .top-title { display: grid; gap: 4px; }\n .top-title strong { font-size: 18px; }\n .top-title span { color: var(--muted); font-size: 12px; }\n\n .top-actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .search {\n height: 38px;\n width: 260px;\n display: flex;\n align-items: center;\n gap: 8px;\n border: 1px solid var(--line);\n border-radius: var(--radius);\n padding: 0 10px;\n background: #fff;\n color: var(--muted);\n font-size: 12px;\n }\n\n .search input {\n border: 0;\n outline: none;\n width: 100%;\n min-width: 0;\n color: var(--text);\n background: transparent;\n font-size: 13px;\n }\n\n select, input[type=\"date\"] {\n height: 38px;\n border: 1px solid var(--line);\n border-radius: var(--radius);\n background: #fff;\n color: var(--text);\n padding: 0 10px;\n font-size: 13px;\n }\n\n .period {\n height: 38px;\n border: 1px solid var(--line);\n border-radius: var(--radius);\n background: #fff;\n display: flex;\n overflow: hidden;\n }\n\n .period button {\n border: 0;\n background: transparent;\n padding: 0 12px;\n color: var(--muted);\n }\n\n .period button.active { background: var(--blue); color: #fff; }\n\n .content {\n padding: 24px;\n min-width: 0;\n }\n\n .page-head {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n gap: 16px;\n align-items: start;\n margin-bottom: 18px;\n }\n\n .page-title {\n margin: 0;\n font-size: 26px;\n line-height: 1.2;\n }\n\n .page-desc {\n margin: 8px 0 0;\n max-width: 900px;\n color: var(--muted);\n line-height: 1.7;\n font-size: 14px;\n }\n\n .head-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }\n\n .grid {\n display: grid;\n gap: 14px;\n }\n\n .cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n .cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n .cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }\n\n .panel {\n background: var(--panel);\n border: 1px solid var(--line);\n border-radius: var(--radius);\n box-shadow: 0 8px 20px rgba(15,23,42,.04);\n min-width: 0;\n }\n\n .panel-head {\n min-height: 58px;\n border-bottom: 1px solid var(--line);\n padding: 14px 16px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n\n .panel-head h2 {\n margin: 0;\n font-size: 16px;\n line-height: 1.3;\n }\n\n .panel-head p, .panel-note {\n margin: 4px 0 0;\n color: var(--muted);\n font-size: 12px;\n line-height: 1.5;\n }\n\n .panel-body { padding: 16px; }\n\n .metric {\n padding: 16px;\n display: grid;\n gap: 8px;\n min-height: 116px;\n }\n\n .metric span { color: var(--muted); font-size: 12px; }\n .metric strong { font-size: 28px; line-height: 1; }\n .metric p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }\n\n .pill, .stage {\n display: inline-flex;\n align-items: center;\n min-height: 24px;\n padding: 3px 8px;\n border-radius: 999px;\n font-size: 12px;\n font-weight: 700;\n white-space: nowrap;\n }\n\n .pill.blue, .stage.v1 { color: #1d4ed8; background: var(--blue-soft); }\n .pill.green { color: var(--green); background: var(--green-soft); }\n .pill.amber, .stage.reserve { color: var(--amber); background: var(--amber-soft); }\n .pill.red { color: var(--red); background: var(--red-soft); }\n .pill.purple, .stage.v2 { color: var(--purple); background: var(--purple-soft); }\n .pill.gray { color: var(--muted); background: #eef2f7; }\n\n .list {\n display: grid;\n gap: 10px;\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n .list li, .task-row, .issue-row {\n border: 1px solid var(--line);\n border-radius: var(--radius);\n background: #fff;\n padding: 11px 12px;\n display: grid;\n gap: 5px;\n min-width: 0;\n }\n\n .task-row {\n grid-template-columns: minmax(0, 1fr) auto;\n align-items: center;\n }\n\n .task-row strong, .issue-row strong { font-size: 14px; }\n .task-row span, .issue-row span, .list li span { color: var(--muted); font-size: 12px; line-height: 1.55; }\n\n .flow {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n align-items: center;\n }\n\n .flow-step {\n border: 1px solid var(--line);\n background: #fff;\n border-radius: var(--radius);\n min-height: 38px;\n padding: 8px 10px;\n display: flex;\n align-items: center;\n gap: 8px;\n color: var(--text);\n font-size: 13px;\n }\n\n .flow-step::after {\n content: \"\";\n width: 18px;\n height: 1px;\n background: var(--line-strong);\n display: inline-block;\n }\n\n .flow-step:last-child::after { display: none; }\n\n .btn {\n min-height: 36px;\n border: 1px solid var(--line-strong);\n border-radius: var(--radius);\n background: #fff;\n color: var(--text);\n padding: 0 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n font-size: 13px;\n font-weight: 700;\n text-decoration: none;\n }\n\n .btn:hover { border-color: #9db7ec; color: #1d4ed8; background: #f8fbff; }\n .btn.primary { border-color: var(--blue); background: var(--blue); color: #fff; }\n .btn.danger { border-color: #f0b3b3; color: var(--red); background: var(--red-soft); }\n .btn.ghost { border-color: transparent; background: transparent; color: var(--muted); }\n .btn.small { min-height: 30px; padding: 0 9px; font-size: 12px; }\n\n table {\n width: 100%;\n border-collapse: collapse;\n font-size: 13px;\n }\n\n th, td {\n padding: 11px 10px;\n border-bottom: 1px solid var(--line);\n vertical-align: top;\n text-align: left;\n }\n\n th {\n color: var(--muted);\n font-size: 12px;\n font-weight: 800;\n background: #f8fafc;\n }\n\n td.actions-cell {\n min-width: 150px;\n display: flex;\n gap: 7px;\n flex-wrap: wrap;\n }\n\n .table-wrap { overflow: auto; }\n\n .role-grid {\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: 10px;\n }\n\n .role-card {\n border: 1px solid var(--line);\n border-radius: var(--radius);\n background: #fff;\n padding: 12px;\n display: grid;\n gap: 8px;\n min-height: 128px;\n }\n\n .role-card.active {\n border-color: #94b5ff;\n box-shadow: inset 0 0 0 1px #94b5ff;\n background: #fbfdff;\n }\n\n .role-card strong { font-size: 14px; }\n .role-card span { color: var(--muted); font-size: 12px; line-height: 1.55; }\n\n .source-bar {\n border: 1px solid #bfd2ff;\n background: #f4f8ff;\n color: #21406d;\n border-radius: var(--radius);\n padding: 10px 12px;\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: wrap;\n font-size: 12px;\n line-height: 1.5;\n }\n\n .drawer-mask, .modal-mask {\n position: fixed;\n inset: 0;\n background: rgba(15,23,42,.32);\n z-index: 30;\n display: none;\n }\n\n .drawer-mask.open, .modal-mask.open { display: block; }\n\n .drawer {\n position: fixed;\n top: 0;\n right: 0;\n width: min(640px, 100vw);\n height: 100vh;\n background: #fff;\n z-index: 31;\n transform: translateX(100%);\n transition: transform .18s ease;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n border-left: 1px solid var(--line);\n }\n\n .drawer.open { transform: translateX(0); }\n\n .drawer-head, .drawer-foot {\n padding: 16px;\n border-bottom: 1px solid var(--line);\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n }\n\n .drawer-foot { border-top: 1px solid var(--line); border-bottom: 0; justify-content: flex-end; }\n .drawer-body { padding: 16px; overflow: auto; display: grid; gap: 12px; }\n .drawer h2 { margin: 0; font-size: 18px; }\n\n .toast {\n position: fixed;\n left: 50%;\n bottom: 24px;\n transform: translateX(-50%) translateY(18px);\n background: #111827;\n color: #fff;\n border-radius: var(--radius);\n padding: 10px 14px;\n font-size: 13px;\n opacity: 0;\n pointer-events: none;\n transition: .18s ease;\n z-index: 50;\n }\n\n .toast.open { opacity: 1; transform: translateX(-50%) translateY(0); }\n\n .spacer { height: 14px; }\n\n @media (max-width: 1120px) {\n .app { grid-template-columns: 1fr; }\n .sidebar { position: static; height: auto; grid-template-columns: 1fr; }\n .rail { grid-template-rows: auto auto auto; }\n .rail-nav { grid-auto-flow: column; grid-auto-columns: 86px; overflow-x: auto; }\n .panel-nav { display: block; }\n .page-nav { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: 12px; max-height: 280px; }\n .quick { display: none; }\n .topbar { position: static; align-items: flex-start; flex-direction: column; }\n .top-actions { justify-content: flex-start; }\n .search { width: min(100%, 420px); }\n .cols-4, .cols-3, .cols-2, .role-grid { grid-template-columns: 1fr; }\n .page-head { grid-template-columns: 1fr; }\n .head-actions { justify-content: flex-start; }\n }\n </style>\n</head>\n<body>\n <div class=\"app\">\n <aside class=\"sidebar\">\n <section class=\"rail\" aria-label=\"一级模块导航\">\n <div class=\"brand\">\n <strong>USER ERP</strong>\n <span>Stage 1 Prototype</span>\n </div>\n <nav class=\"rail-nav\" id=\"moduleRail\"></nav>\n <div class=\"rail-foot\">\n <strong>模拟数据</strong>\n <span>仅用于流程验证</span>\n </div>\n </section>\n <section class=\"panel-nav\">\n <div class=\"module-head\">\n <p class=\"eyebrow\">当前模块</p>\n <h1 id=\"moduleTitle\">今日作战</h1>\n <span id=\"moduleNote\">从异常、资源和今日动作进入业务闭环。</span>\n </div>\n <nav class=\"page-nav\" id=\"pageNav\"></nav>\n <section class=\"quick\">\n <div class=\"quick-head\"><span>高频跳转</span><strong>6</strong></div>\n <button class=\"todo-btn\" data-route=\"exceptions\"><span>P0/P1异常</span><strong>37</strong></button>\n <button class=\"todo-btn\" data-route=\"demand\"><span>需求待评估</span><strong>12</strong></button>\n <button class=\"todo-btn\" data-route=\"branch-cs\"><span>客服超时</span><strong>9</strong></button>\n <button class=\"todo-btn\" data-route=\"branch-free\"><span>免评缺口</span><strong>4</strong></button>\n <button class=\"todo-btn\" data-route=\"people\"><span>额度预警</span><strong>18</strong></button>\n <button class=\"todo-btn\" data-route=\"retro\"><span>复盘待写</span><strong>7</strong></button>\n </section>\n </section>\n </aside>\n\n <main class=\"main\">\n <header class=\"topbar\">\n <div class=\"top-title\">\n <strong id=\"topPageTitle\">今日作战台</strong>\n <span id=\"topPageSubtitle\">高级主管 / USER运营 / 客服 / 渠道 / KOC-KOL / 财务 / 风险</span>\n </div>\n <div class=\"top-actions\">\n <label class=\"search\">\n <span>搜索</span>\n <input id=\"globalSearch\" placeholder=\"需求 / ASIN / 真实人 / 工单 / 风险\" />\n </label>\n <div class=\"period\" id=\"period\">\n <button class=\"active\" data-period=\"day\">日</button>\n <button data-period=\"week\">周</button>\n <button data-period=\"month\">月</button>\n </div>\n <input type=\"date\" value=\"2026-05-28\" />\n <select id=\"roleSelect\">\n <option value=\"owner\">高级主管</option>\n <option value=\"ops\">USER运营</option>\n <option value=\"channel\">渠道运营</option>\n <option value=\"csLead\">客服主管</option>\n <option value=\"cs\">一线客服</option>\n <option value=\"koc\">KOC/KOL运营</option>\n <option value=\"finance\">财务/返款</option>\n <option value=\"risk\">风险/审核</option>\n </select>\n <button class=\"btn\" data-action=\"drawer\" data-kind=\"source\">来源 7</button>\n </div>\n </header>\n <section class=\"content\" id=\"content\"></section>\n </main>\n </div>\n\n <div class=\"drawer-mask\" id=\"drawerMask\"></div>\n <aside class=\"drawer\" id=\"drawer\">\n <div class=\"drawer-head\">\n <div>\n <h2 id=\"drawerTitle\">详情</h2>\n <p class=\"panel-note\" id=\"drawerNote\">模拟数据,敏感字段默认脱敏。</p>\n </div>\n <button class=\"btn\" data-action=\"closeDrawer\">关闭</button>\n </div>\n <div class=\"drawer-body\" id=\"drawerBody\"></div>\n <div class=\"drawer-foot\" id=\"drawerFoot\"></div>\n </aside>\n <div class=\"toast\" id=\"toast\"></div>\n\n <script>\n const sourceDocs = [\n \"00_项目入口分级\",\n \"01_主流程说明\",\n \"02_日常操作页面结构\",\n \"03_功能页面按钮盘点表\",\n \"04_分支流程_完整需求域\",\n \"05_异常流程_完整需求域\",\n \"06_VibeCoding页面验证记录\",\n \"参考20260528_USER_ERP_完整参考原型_v1.html\"\n ];\n\n const modules = [\n { id: \"overview\", label: \"作战\", icon: \"DB\", title: \"今日作战\", note: \"异常、目标、资源和复盘入口。\", pages: [\"dashboard\", \"role-workflow\"] },\n { id: \"dispatch\", label: \"调度\", icon: \"PL\", title: \"需求调度\", note: \"需求进入、计划生成、资源匹配。\", pages: [\"demand\", \"action-matrix\"] },\n { id: \"branches\", label: \"分支\", icon: \"WF\", title: \"分支流程\", note: \"IM、EDM、Phone、客服、订单、免评、财务、KOC/KOL、风险。\", pages: [\"branch-im\", \"branch-edm\", \"branch-phone\", \"branch-cs\", \"branch-order\", \"branch-free\", \"branch-finance\", \"branch-koc\", \"branch-risk\"] },\n { id: \"ops\", label: \"运营\", icon: \"OP\", title: \"运营中心\", note: \"客服、渠道、真实人、KOC/KOL和风险日常页面。\", pages: [\"orders\", \"cs-exec\", \"cs-mgmt\", \"channel\", \"people\", \"koc-center\", \"risk-center\"] },\n { id: \"data\", label: \"复盘\", icon: \"BI\", title: \"复盘验证\", note: \"异常总表、数据复盘、Vibe Coding验证。\", pages: [\"exceptions\", \"retro\", \"validation\"] }\n ];\n\n const pages = {\n \"dashboard\": { module: \"overview\", title: \"今日作战台\", short: \"作战台\", subtitle: \"所有角色每天打开后的第一屏:先看异常、目标缺口、资源压力和今日必须推进的动作。\", owner: \"高级主管 / USER运营负责人\", source: \"00/01/02\" },\n \"role-workflow\": { module: \"overview\", title: \"角色每日工作流\", short: \"角色工作流\", subtitle: \"明确每个岗位每天该看什么、不该先看什么、必须判断什么、复盘什么。\", owner: \"各岗位负责人\", source: \"00/02/04\" },\n \"demand\": { module: \"dispatch\", title: \"需求与计划调度中心\", short: \"需求调度\", subtitle: \"把OA、销售、运营、ASIN异常、客服反馈、KOC/KOL合作请求转成可执行计划。\", owner: \"USER运营\", source: \"01/02/03/04\", kind: \"workflow\" },\n \"action-matrix\": { module: \"dispatch\", title: \"按钮行为矩阵\", short: \"按钮矩阵\", subtitle: \"覆盖03按钮盘点表中的全部核心按钮。每个按钮均可执行演示或跳转到对应页面。\", owner: \"产品 / 前端观察员\", source: \"03\" },\n \"branch-im\": { module: \"branches\", title: \"分支二IM推送看板\", short: \"IM推送\", subtitle: \"按真实人累计提交评价、额度、风险、未完成单和卡片有效性决定推送策略。\", owner: \"渠道运营\", source: \"04/05\", kind: \"workflow\" },\n \"branch-edm\": { module: \"branches\", title: \"分支三EDM每日运营\", short: \"EDM\", subtitle: \"先看域名、邮箱、IP信誉、UID/KV人群、H5、AB Test与转化异常。\", owner: \"EDM运营\", source: \"04/05\", kind: \"workflow\" },\n \"branch-phone\": { module: \"branches\", title: \"分支四Phone工作流\", short: \"Phone\", subtitle: \"处理未接、待回拨、国家/时段/语言匹配和客服承接容量。\", owner: \"Phone / 客服主管\", source: \"04/05\", kind: \"workflow\" },\n \"branch-cs\": { module: \"branches\", title: \"分支五:客服承接\", short: \"客服承接\", subtitle: \"用户回复、信息缺失、订单登记、催评、售后、投诉和风险升级的执行闭环。\", owner: \"客服主管\", source: \"02/04/05\", kind: \"workflow\" },\n \"branch-order\": { module: \"branches\", title: \"分支六A评价型订单\", short: \"评价订单\", subtitle: \"测评/回评从订单核验、评价提交、展示确认到返款提交即计12展示才计完成。\", owner: \"USER运营 / 客服\", source: \"01/04/05\", kind: \"workflow\" },\n \"branch-free\": { module: \"branches\", title: \"分支六B免评执行\", short: \"免评执行\", subtitle: \"KOC/KOL为主IM/EDM/APP协同终点是内容、Code、点击、订单和权重结果。\", owner: \"KOC/KOL运营 / 渠道运营\", source: \"04\", kind: \"workflow\" },\n \"branch-finance\": { module: \"branches\", title: \"分支七:财务返款与佣金\", short: \"返款佣金\", subtitle: \"用户返款V1必做KOC/KOL佣金V1预留/V2实现双重退款必须进风险。\", owner: \"财务 / 风险\", source: \"03/04/05\", kind: \"workflow\" },\n \"branch-koc\": { module: \"branches\", title: \"分支八KOC/KOL协作\", short: \"KOC/KOL\", subtitle: \"线索、分层、任务、内容、带货、佣金、风险完整进入需求域。\", owner: \"KOC/KOL运营\", source: \"00/01/04/06\", kind: \"workflow\" },\n \"branch-risk\": { module: \"branches\", title: \"分支九:风险与黑名单\", short: \"风险分支\", subtitle: \"每次有效互动都复检身份、额度、风险、订单和未关闭承诺。\", owner: \"风险/审核\", source: \"01/04/05\", kind: \"workflow\" },\n \"orders\": { module: \"ops\", title: \"评价计划与订单中心\", short: \"计划订单\", subtitle: \"测评、回评、免评计划和订单履约的综合页面。\", owner: \"USER运营\", source: \"02/03\", kind: \"workflow\" },\n \"cs-exec\": { module: \"ops\", title: \"客服执行中心\", short: \"客服执行\", subtitle: \"工单池、聊天、答应配合、催评、订单登记和售后详情。\", owner: \"一线客服 / 客服主管\", source: \"02/03/04\", kind: \"workflow\" },\n \"cs-mgmt\": { module: \"ops\", title: \"客服管理中心\", short: \"客服管理\", subtitle: \"在线、排班、出勤、目标、绩效、服务质量和工单分配管理。\", owner: \"客服主管\", source: \"02/03/04\", kind: \"workflow\" },\n \"channel\": { module: \"ops\", title: \"渠道运营中心\", short: \"渠道中心\", subtitle: \"IM、EDM、Phone、APP/H5/卡片、推送配置和渠道漏斗。\", owner: \"渠道负责人\", source: \"02/03/04\", kind: \"workflow\" },\n \"people\": { module: \"ops\", title: \"测评人/真实人中心\", short: \"真实人\", subtitle: \"自动归并真实人、额度台账、4/4/12、风险历史和人工合并/拆分入口。\", owner: \"USER运营 / 风险\", source: \"02/03\", kind: \"workflow\" },\n \"koc-center\": { module: \"ops\", title: \"KOC/KOL协作中心\", short: \"KOC中心\", subtitle: \"线索池、达人档案、合作任务、内容记录、带货归因、佣金结算和风险。\", owner: \"KOC/KOL运营\", source: \"02/03/04/06\", kind: \"workflow\" },\n \"risk-center\": { module: \"ops\", title: \"风险与黑名单中心\", short: \"风险中心\", subtitle: \"风险事件、黑名单、退款比对、关联风险、内容/佣金风险。\", owner: \"风险/审核\", source: \"02/03/05\", kind: \"workflow\" },\n \"exceptions\": { module: \"data\", title: \"异常流程总表\", short: \"异常总表\", subtitle: \"覆盖需求计划、评价订单、客服、渠道、KOC/KOL、返款、风险异常。\", owner: \"风险 / 测试\", source: \"05\" },\n \"retro\": { module: \"data\", title: \"数据复盘看板\", short: \"复盘看板\", subtitle: \"计划、ASIN、渠道、客服、测评人、KOC/KOL、财务复盘指标。\", owner: \"业务负责人\", source: \"01/02/06\", kind: \"workflow\" },\n \"validation\": { module: \"data\", title: \"Vibe Coding页面验证记录\", short: \"验证记录\", subtitle: \"现有原型只作为需求验证材料,不作为正式开发底座。\", owner: \"产品 / 前端观察员\", source: \"06\" }\n };\n\n const referencePages = [\n { id: \"ref-demand-pool\", short: \"需求池\", title: \"需求池 · 完整参考细化\", owner: \"USER运营\", ref: \"完整参考原型demand-pool\", intent: \"承接 OA、销售、运营、ASIN异常、客服反馈和KOC/KOL合作请求统一进入需求评估。\", metrics: [[\"待评估\", \"12\", \"含测评/回评/免评/客服\"], [\"可转计划\", \"8\", \"信息已补齐\"], [\"被退回\", \"3\", \"缺ASIN或素材\"], [\"P0需求\", \"2\", \"当天处理\"]], steps: [\"新增/导入需求\", \"补齐ASIN/站点/目标\", \"设置优先级\", \"进入需求评估\", \"转计划或退回\"], buttons: [\"新增需求\", \"导入OA需求\", \"评估\", \"转计划\", \"补充信息\"], retro: [\"需求来源转化率\", \"退回原因\", \"需求评估耗时\", \"P0处理时效\"] },\n { id: \"ref-demand-review\", short: \"需求评估\", title: \"需求评估 · ASIN与资源校验\", owner: \"USER运营\", ref: \"完整参考原型demand-review\", intent: \"在生成计划前校验产品状态、库存、评分、近7天掉评、H5/卡片、资源和客服容量。\", metrics: [[\"库存紧张\", \"1\", \"需限制节奏\"], [\"H5缺失\", \"2\", \"不可直接推送\"], [\"掉评触发\", \"2\", \"可转回评\"], [\"资源不足\", \"5\", \"需补量\"]], steps: [\"读取需求\", \"校验产品/ASIN\", \"预估人群/客服/渠道\", \"评估通过或退回\", \"生成执行计划\"], buttons: [\"评估通过\", \"退回补充\", \"暂缓\", \"驳回\", \"生成计划\"], retro: [\"评估通过率\", \"产品阻断项\", \"资源缺口\", \"退回次数\"] },\n { id: \"ref-plan-builder\", short: \"计划生成\", title: \"从需求生成计划\", owner: \"USER运营\", ref: \"完整参考原型plan-builder\", intent: \"把需求转成测评、回评、免评或客服跟进计划,并设置周期、每日节奏、渠道策略和目标人群。\", metrics: [[\"今日新计划\", \"9\", \"含免评2个\"], [\"待生成\", \"8\", \"已评估\"], [\"冲突计划\", \"2\", \"同ASIN/同人群\"], [\"客服跟进\", \"4\", \"独立计划\"]], steps: [\"选择关联需求\", \"选择计划类型\", \"设置目标与周期\", \"设置渠道策略\", \"设置真实人额度规则\", \"生成计划\"], buttons: [\"生成计划\", \"进入执行匹配\", \"保存草稿\", \"查看现有计划\"], retro: [\"计划生成耗时\", \"计划类型占比\", \"计划取消原因\", \"目标调整次数\"], note: \"目标人群必须按真实人判断:同一真实人累计提交评价 < 12 才可进入普通测评/回评;累计提交评价 >= 12 应进入免评或KOC/KOL路径。\" },\n { id: \"ref-exec-match\", short: \"执行匹配\", title: \"执行匹配 · 人群/额度/客服\", owner: \"USER运营\", ref: \"完整参考原型exec-match\", intent: \"生成 audience_snapshot预占 quota_reservations并按容量、语言和工单量分配客服。\", metrics: [[\"候选人群\", \"1,280\", \"已排除风险23人\"], [\"预占额度\", \"30\", \"7天有效\"], [\"可用客服\", \"5\", \"按班次分配\"], [\"KOC入口\", \"1\", \"免评补单\"]], steps: [\"匹配人群\", \"复检真实人额度\", \"预占额度\", \"分配客服\", \"生成IM/EDM/Phone任务\", \"记录匹配日志\"], buttons: [\"匹配人群\", \"预占额度\", \"释放预占\", \"分配客服\", \"匹配KOC/KOL\"], retro: [\"预占释放率\", \"匹配失败原因\", \"客服容量缺口\", \"候选人排除原因\"] },\n { id: \"ref-plan-adjust\", short: \"计划调整\", title: \"计划调整 · 补量/暂停/转免评\", owner: \"USER运营主管\", ref: \"完整参考原型plan-adjust\", intent: \"处理完成率不足、库存紧张、产品禁用、渠道失败等计划级异常。\", metrics: [[\"缺口计划\", \"5\", \"需补量\"], [\"暂停计划\", \"2\", \"产品/风险\"], [\"转免评\", \"1\", \"测评不可继续\"], [\"待关闭\", \"3\", \"完成或失败\"]], steps: [\"发现执行偏差\", \"判断原因\", \"调整名额或补量\", \"暂停/恢复/转免评\", \"写回需求状态\"], buttons: [\"调整名额\", \"补量\", \"暂停\", \"恢复\", \"转免评\", \"关闭计划\"], retro: [\"补量成功率\", \"暂停原因\", \"转免评次数\", \"目标变更记录\"] },\n { id: \"ref-review-plan\", short: \"测评计划\", title: \"测评计划管理\", owner: \"USER运营\", ref: \"完整参考原型review-plan\", intent: \"查看测评计划目标、周期、完成进度、优先级、风险状态,并进入订单或推送。\", metrics: [[\"进行中\", \"18\", \"测评/回评\"], [\"完成率低\", \"4\", \"低于50%\"], [\"风险计划\", \"3\", \"需审核\"], [\"待复盘\", \"7\", \"昨日关闭\"]], steps: [\"查看计划列表\", \"筛选站点/状态\", \"进入订单\", \"进入推送\", \"调整计划\"], buttons: [\"新建测评计划\", \"订单\", \"推送\", \"调整\", \"复盘\"], retro: [\"计划完成率\", \"评价展示率\", \"掉评率\", \"计划ROI\"] },\n { id: \"ref-review-order\", short: \"评价订单\", title: \"评价型订单 · 测评/回评\", owner: \"USER运营 / 客服\", ref: \"完整参考原型review-order\", intent: \"跟踪订单校验、评价提交、Amazon展示确认和返款请款不把提交等同于展示完成。\", metrics: [[\"待登记\", \"31\", \"客服/用户提交\"], [\"待展示确认\", \"22\", \"未计完成\"], [\"掉评/差评\", \"9\", \"触发回评\"], [\"待请款\", \"48\", \"需财务审核\"]], steps: [\"订单登记\", \"订单校验\", \"提交评价\", \"计入真实人累计12\", \"展示确认\", \"请款返款\", \"完成或异常关闭\"], buttons: [\"登记订单\", \"校验订单\", \"上传评价\", \"确认展示\", \"发起请款\", \"异常关闭\"], retro: [\"提交到展示耗时\", \"展示失败原因\", \"返款耗时\", \"评价质量\"] },\n { id: \"ref-free-review\", short: \"免评计划\", title: \"免评执行 · KOC/KOL与站外流量\", owner: \"KOC/KOL运营\", ref: \"完整参考原型free-review\", intent: \"免评不以用户提交评价为终点而以内容发布、Code/点击/订单和权重结果为终点。\", metrics: [[\"免评计划\", \"6\", \"进行中\"], [\"KOC任务\", \"15\", \"内容交付\"], [\"Code订单\", \"56\", \"模拟\"], [\"权重结果\", \"70%\", \"目标进度\"]], steps: [\"创建免评计划\", \"匹配KOC/KOL或渠道\", \"发布内容/投放Code\", \"跟踪点击和订单\", \"回收权重结果\", \"复盘\"], buttons: [\"关联KOC任务\", \"管理KOC任务\", \"记录Code\", \"查看订单\", \"关闭计划\"], retro: [\"内容发布率\", \"Code使用率\", \"点击转化\", \"权重变化\"] },\n { id: \"ref-reply-plan\", short: \"回评计划\", title: \"回评计划 · 掉评/差评补救\", owner: \"USER运营 / 客服\", ref: \"完整参考原型reply-plan\", intent: \"针对掉评、差评、未展示或客服反馈触发回评计划,独立跟踪补救口径。\", metrics: [[\"待回评\", \"22\", \"掉评/差评\"], [\"已触达\", \"15\", \"IM/客服\"], [\"待展示\", \"7\", \"Amazon确认\"], [\"关闭异常\", \"3\", \"不可继续\"]], steps: [\"识别掉评/差评\", \"生成回评计划\", \"匹配人群\", \"触达/客服跟进\", \"展示确认\", \"关闭\"], buttons: [\"生成回评\", \"催评\", \"转人工\", \"确认展示\", \"关闭异常\"], retro: [\"回评成功率\", \"掉评补回率\", \"差评处理耗时\", \"客服介入效果\"] },\n { id: \"ref-ticket-pool\", short: \"工单池\", title: \"客服执行中心 · 工单池\", owner: \"客服主管\", ref: \"完整参考原型ticket-pool\", intent: \"主管每天优先看未分配、超时、投诉和可转化工单,按班次和能力分配。\", metrics: [[\"待处理\", \"89\", \"今日\"], [\"超时未分配\", \"3\", \"P1\"], [\"在线客服\", \"12\", \"可承接\"], [\"首次回复\", \"4.2min\", \"平均\"]], steps: [\"工单进入\", \"识别优先级\", \"自动/手动分配\", \"转移或升级\", \"跟踪关闭\"], buttons: [\"自动分配\", \"手动分配\", \"转移\", \"升级\", \"关闭\"], retro: [\"首次回复\", \"分配耗时\", \"工单解决率\", \"投诉率\"] },\n { id: \"ref-my-tickets\", short: \"我的工单\", title: \"一线客服 · 我的工单\", owner: \"一线客服\", ref: \"完整参考原型my-tickets\", intent: \"客服每天只先看自己的待回复、待登记、待催评、待升级工单。\", metrics: [[\"我的待回\", \"14\", \"含P1 2个\"], [\"待登记订单\", \"6\", \"RSO/RDO\"], [\"待催评\", \"9\", \"用户答应\"], [\"待升级\", \"2\", \"财务/风险\"]], steps: [\"打开我的工单\", \"查看用户上下文\", \"回复/补信息\", \"登记订单或催评\", \"升级/关闭\"], buttons: [\"回复用户\", \"登记订单\", \"催评\", \"升级\", \"标记解决\"], retro: [\"客服处理数\", \"RSO/RDO\", \"催评成功\", \"升级原因\"] },\n { id: \"ref-user-conversation\", short: \"用户会话\", title: \"用户会话与上下文卡\", owner: \"一线客服\", ref: \"完整参考原型user-conversation\", intent: \"在聊天前展示真实人额度、历史订单、风险和承诺,避免客服误导或重复触达。\", metrics: [[\"真实人额度\", \"5/12\", \"累计提交评价\"], [\"月测评\", \"2/4\", \"可继续\"], [\"未关闭承诺\", \"1\", \"需跟进\"], [\"风险提示\", \"0\", \"当前正常\"]], steps: [\"打开会话\", \"读取上下文卡\", \"确认额度/风险\", \"回复用户\", \"登记结果\"], buttons: [\"回复\", \"补信息\", \"登记订单\", \"创建承诺\", \"升级\"], retro: [\"会话到订单转化\", \"补信息次数\", \"承诺完成率\", \"风险触发次数\"] },\n { id: \"ref-promise-track\", short: \"承诺跟踪\", title: \"用户答应配合跟踪\", owner: \"客服 / USER运营\", ref: \"完整参考原型promise-track\", intent: \"跟踪用户答应下单、答应评价、答应补截图等承诺,超过时限自动提醒。\", metrics: [[\"未完成承诺\", \"26\", \"需催办\"], [\"今日到期\", \"9\", \"优先处理\"], [\"已过期\", \"4\", \"需升级\"], [\"完成率\", \"68%\", \"本周\"]], steps: [\"创建承诺\", \"设置截止时间\", \"自动提醒\", \"客服跟进\", \"完成/过期/升级\"], buttons: [\"确认答应\", \"催办\", \"标记完成\", \"标记过期\", \"升级\"], retro: [\"承诺完成率\", \"过期原因\", \"催办次数\", \"转化结果\"] },\n { id: \"ref-review-reminder\", short: \"催评\", title: \"待催评列表\", owner: \"一线客服\", ref: \"完整参考原型review-reminder\", intent: \"管理答应评价但未提交/未展示的用户,区分催评、转人工和关闭。\", metrics: [[\"待催评\", \"33\", \"今日\"], [\"已催办\", \"12\", \"待反馈\"], [\"转人工\", \"5\", \"复杂问题\"], [\"关闭\", \"7\", \"不可继续\"]], steps: [\"筛选待催评\", \"确认订单和承诺\", \"发送提醒\", \"用户反馈\", \"提交/转人工/关闭\"], buttons: [\"催评\", \"转人工\", \"确认提交\", \"关闭\", \"查看订单\"], retro: [\"催评成功率\", \"催办次数\", \"转人工原因\", \"展示确认率\"] },\n { id: \"ref-cs-dashboard\", short: \"客服看板\", title: \"客服管理中心 · Dashboard\", owner: \"客服主管\", ref: \"完整参考原型cs-dashboard\", intent: \"主管实时查看在线、排班、工单趋势、服务质量和转化目标。\", metrics: [[\"在线客服\", \"12\", \"当前\"], [\"今日工单\", \"89\", \"模拟\"], [\"待处理\", \"23\", \"需分配\"], [\"转化率\", \"67%\", \"今日\"]], steps: [\"查看在线状态\", \"查看趋势\", \"识别排班缺口\", \"调整工单分配\", \"查看绩效\"], buttons: [\"刷新状态\", \"调整分配\", \"查看排班\", \"查看绩效\"], retro: [\"客服目标完成\", \"首次回复\", \"解决率\", \"满意度\"] },\n { id: \"ref-attendance\", short: \"出勤\", title: \"客服出勤管理\", owner: \"客服主管\", ref: \"完整参考原型attendance\", intent: \"导入出勤数据,识别迟到、缺勤、早退与班次缺口。\", metrics: [[\"应出勤\", \"14\", \"今日\"], [\"实际出勤\", \"12\", \"当前\"], [\"缺口\", \"2\", \"需补班\"], [\"异常\", \"3\", \"迟到/早退\"]], steps: [\"导入出勤\", \"匹配排班\", \"识别异常\", \"补班或调班\", \"沉淀绩效\"], buttons: [\"导入出勤\", \"标记异常\", \"补班\", \"导出\"], retro: [\"出勤率\", \"缺口影响\", \"工单积压\", \"绩效扣分\"] },\n { id: \"ref-schedule\", short: \"排班\", title: \"客服排班\", owner: \"客服主管\", ref: \"完整参考原型schedule\", intent: \"按国家、语言、时段和工单峰值安排班次与最大工单数。\", metrics: [[\"本周班次\", \"42\", \"模拟\"], [\"晚班缺口\", \"2\", \"Phone/客服\"], [\"峰值时段\", \"16-20\", \"需覆盖\"], [\"最大工单\", \"15/人\", \"建议\"]], steps: [\"查看峰值\", \"设置班次\", \"批量排班\", \"限制最大工单\", \"发布排班\"], buttons: [\"设置班次\", \"批量排班\", \"调整容量\", \"发布\"], retro: [\"班次覆盖率\", \"峰值积压\", \"超时回复\", \"人效\"] },\n { id: \"ref-cs-performance\", short: \"客服绩效\", title: \"客服绩效与月目标\", owner: \"客服主管\", ref: \"完整参考原型cs-performance\", intent: \"管理客服 RSO/RDO、处理工单、满意度、首次回复和月度目标。\", metrics: [[\"RSO目标\", \"1,200\", \"月度\"], [\"RDO目标\", \"900\", \"月度\"], [\"满意度\", \"96%\", \"模拟\"], [\"首次回复\", \"4.2min\", \"平均\"]], steps: [\"设置月目标\", \"跟踪日完成\", \"识别低绩效\", \"复盘原因\", \"调整排班/训练\"], buttons: [\"设置月目标\", \"查看明细\", \"导出绩效\", \"复盘\"], retro: [\"目标达成\", \"RSO/RDO转化\", \"客服排名\", \"培训需求\"] },\n { id: \"ref-im-push\", short: \"IM推送\", title: \"IM推送任务\", owner: \"渠道运营\", ref: \"完整参考原型im-push\", intent: \"基于真实人去重、额度复检、卡片/H5有效性和渠道频控生成IM推送任务。\", metrics: [[\"今日任务\", \"16\", \"IM\"], [\"可推人群\", \"18,420\", \"去重后\"], [\"回复率\", \"4.8%\", \"模拟\"], [\"频控命中\", \"37\", \"需排除\"]], steps: [\"选择计划\", \"选择 audience_snapshot\", \"选择卡片/H5\", \"额度/风险复检\", \"发送/暂停\", \"回流结果\"], buttons: [\"新增推送\", \"上架\", \"下架\", \"批量分配\", \"配置去重\"], retro: [\"发送\", \"点击\", \"回复\", \"订单\", \"退订投诉\"] },\n { id: \"ref-edm-check\", short: \"EDM检查\", title: \"EDM每日检查\", owner: \"EDM运营\", ref: \"完整参考原型edm-check\", intent: \"发信前先检查域名、邮箱、IP信誉、UID/KV人群、H5链接和退订投诉。\", metrics: [[\"域名健康\", \"2/3\", \"1个预警\"], [\"UID人群\", \"9,880\", \"今日可发\"], [\"打开率\", \"19.4%\", \"模拟\"], [\"投诉率\", \"0.42%\", \"接近阈值\"]], steps: [\"基础设施检查\", \"同步OA计划\", \"检查UID/KV人群\", \"检查H5\", \"生成EDM任务\", \"AB Test\"], buttons: [\"检查基础设施\", \"创建AB Test\", \"生成任务\", \"暂停发送\"], retro: [\"送达\", \"打开\", \"点击\", \"退订\", \"投诉\"] },\n { id: \"ref-channel-funnel\", short: \"渠道漏斗\", title: \"渠道漏斗对比\", owner: \"渠道运营\", ref: \"完整参考原型channel-funnel\", intent: \"对比IM、EDM、Phone、APP/H5各渠道从触达到订单/评价的漏斗。\", metrics: [[\"IM回复\", \"4.8%\", \"模拟\"], [\"EDM打开\", \"19.4%\", \"模拟\"], [\"Phone接通\", \"62%\", \"模拟\"], [\"APP点击\", \"8.1%\", \"模拟\"]], steps: [\"查看渠道漏斗\", \"识别低效环节\", \"调整人群/素材/频控\", \"复盘转化\"], buttons: [\"查看IM\", \"查看EDM\", \"查看Phone\", \"配置去重\"], retro: [\"渠道ROI\", \"跨渠道重复触达\", \"转化贡献\", \"投诉率\"] },\n { id: \"ref-koc-leads\", short: \"KOC线索\", title: \"KOC/KOL线索池\", owner: \"KOC/KOL运营\", ref: \"完整参考原型koc-leads\", intent: \"沉淀KOC/KOL线索来源、站点、垂类、标签、风险和合作状态。\", metrics: [[\"新线索\", \"18\", \"本周\"], [\"待审核\", \"7\", \"需建档\"], [\"合作中\", \"12\", \"任务执行\"], [\"风险线索\", \"2\", \"需阻断\"]], steps: [\"导入/新增线索\", \"标签分层\", \"风险审核\", \"建档\", \"创建任务\"], buttons: [\"新增线索\", \"建档\", \"创建任务\", \"标记风险\"], retro: [\"线索转任务率\", \"达人质量\", \"风险命中\", \"垂类覆盖\"] },\n { id: \"ref-koc-profile\", short: \"达人档案\", title: \"KOC/KOL达人档案\", owner: \"KOC/KOL运营\", ref: \"完整参考原型koc-profile\", intent: \"记录达人平台、账号、垂类、合作历史、佣金规则,并识别是否与测评人身份重叠。\", metrics: [[\"关联测评人\", \"1\", \"同一真实人\"], [\"历史任务\", \"8\", \"模拟\"], [\"内容合格\", \"92%\", \"模拟\"], [\"佣金争议\", \"1\", \"待处理\"]], steps: [\"查看达人档案\", \"核验平台账号\", \"识别身份重叠\", \"查看任务历史\", \"设置合作规则\"], buttons: [\"编辑档案\", \"关联真实人\", \"创建任务\", \"暂停合作\"], retro: [\"内容质量\", \"带货效果\", \"身份冲突\", \"佣金争议\"] },\n { id: \"ref-koc-task\", short: \"合作任务\", title: \"KOC/KOL合作任务\", owner: \"KOC/KOL运营\", ref: \"完整参考原型koc-task\", intent: \"跟踪任务创建、样品/Code、内容发布、链接回收、订单归因和佣金状态。\", metrics: [[\"进行中\", \"15\", \"内容任务\"], [\"待发布\", \"6\", \"需催办\"], [\"待验收\", \"4\", \"内容链接\"], [\"佣金待算\", \"5\", \"订单归因\"]], steps: [\"创建任务\", \"分配达人\", \"发放Code/素材\", \"发布内容\", \"回收链接/订单\", \"验收结算\"], buttons: [\"创建任务\", \"催发布\", \"验收内容\", \"记录Code\", \"发起佣金\"], retro: [\"内容发布率\", \"订单归因\", \"佣金成本\", \"达人复用率\"] },\n { id: \"ref-reviewer-pool\", short: \"测评人池\", title: \"测评人/真实人池\", owner: \"USER运营 / 风险\", ref: \"完整参考原型reviewer-pool\", intent: \"查看JOYHUB账号、Amazon账号、Profile、站点、标签和风险状态但额度按真实人聚合。\", metrics: [[\"真实人\", \"18,420\", \"模拟\"], [\"可参与\", \"12,880\", \"额度可用\"], [\"风险排除\", \"423\", \"黑名单/弱风险\"], [\"信息缺失\", \"306\", \"需补齐\"]], steps: [\"筛选测评人\", \"查看身份链路\", \"读取额度台账\", \"复检风险\", \"加入人群快照\"], buttons: [\"筛选\", \"加入快照\", \"查看额度\", \"标记风险\"], retro: [\"可用人群变化\", \"风险命中\", \"信息缺失\", \"转化率\"] },\n { id: \"ref-reviewer-quota\", short: \"额度台账\", title: \"测评人额度明细\", owner: \"USER运营 / 风险\", ref: \"完整参考原型reviewer-quota\", intent: \"按 person_quota_ledgers 查看月度测评≤4、免评≤4、累计提交评价≤12和预占记录。\", metrics: [[\"接近4次\", \"37\", \"月测评\"], [\"累计>=12\", \"1,204\", \"转免评\"], [\"预占超时\", \"9\", \"需释放\"], [\"冲突\", \"3\", \"待审核\"]], steps: [\"读取真实人额度\", \"查看预占\", \"提交评价计入累计12\", \"展示确认计计划完成\", \"释放/调整\"], buttons: [\"查看明细\", \"手动释放预占\", \"锁定额度\", \"导出\"], retro: [\"额度利用率\", \"预占超时\", \"归并冲突\", \"超限拦截\"] },\n { id: \"ref-identity-merge\", short: \"真实人归并\", title: \"真实人归并\", owner: \"风险 / USER运营\", ref: \"完整参考原型identity-merge\", intent: \"V1必须自动归并真实人人工确认/拆分可预留否则4/4/12额度不可落地。\", metrics: [[\"自动归并\", \"1,280\", \"今日\"], [\"高置信\", \"96%\", \"姓名/地址/设备\"], [\"冲突\", \"11\", \"需人工\"], [\"待拆分\", \"3\", \"预留\"]], steps: [\"收集身份线索\", \"标准化姓名/地址/设备\", \"自动归并\", \"写入identity_links\", \"更新额度台账\"], buttons: [\"查看归并\", \"人工确认\", \"手动合并\", \"手动拆分\"], retro: [\"归并准确率\", \"额度冲突\", \"人工处理量\", \"误合并率\"] },\n { id: \"ref-risk-event\", short: \"风险事件\", title: \"风险事件中心\", owner: \"风险/审核\", ref: \"完整参考原型risk-event\", intent: \"统一管理订单、用户、测评人、返款、KOC/KOL相关风险信号和案件。\", metrics: [[\"P0\", \"6\", \"强阻断\"], [\"P1\", \"31\", \"当天处理\"], [\"待复核\", \"18\", \"人工\"], [\"已关闭\", \"42\", \"本周\"]], steps: [\"创建/接收风险信号\", \"分级\", \"阻断或提示\", \"人工审核\", \"关闭并记录\"], buttons: [\"创建风险事件\", \"标记P0\", \"转案件\", \"关闭\"], retro: [\"风险命中率\", \"误杀率\", \"处理时效\", \"关闭原因\"] },\n { id: \"ref-blacklist\", short: \"黑名单\", title: \"黑名单管理\", owner: \"风险/审核\", ref: \"完整参考原型blacklist\", intent: \"支持用户/测评人/KOC/KOL/设备/支付标识等强弱黑名单,并参与每次互动复检。\", metrics: [[\"强风险\", \"84\", \"阻断\"], [\"弱风险\", \"212\", \"提示\"], [\"KOC风险\", \"7\", \"内容违规\"], [\"解除申请\", \"5\", \"待审\"]], steps: [\"新增黑名单\", \"选择对象类型\", \"设置强/弱风险\", \"写入原因\", \"参与复检\"], buttons: [\"新增黑名单\", \"解除\", \"升级强风险\", \"查看日志\"], retro: [\"黑名单命中\", \"解除率\", \"重复风险\", \"申诉结果\"] },\n { id: \"ref-refund-risk\", short: \"退款风险\", title: \"Amazon退款 vs OA返款比对\", owner: \"财务 / 风险\", ref: \"完整参考原型refund-risk\", intent: \"识别Amazon退款、OA返款、非APP用户邮件退款和卡密返款之间的双重退款风险。\", metrics: [[\"双重风险\", \"9\", \"需阻断\"], [\"非APP邮件\", \"6\", \"缺设备维度\"], [\"待补凭证\", \"12\", \"财务\"], [\"已阻断\", \"4\", \"今日\"]], steps: [\"导入退款/返款记录\", \"按真实人/订单/邮箱匹配\", \"识别双重退款\", \"阻断请款\", \"风险关闭\"], buttons: [\"比对退款\", \"阻断返款\", \"补凭证\", \"关闭风险\"], retro: [\"双重退款拦截\", \"非APP盲区\", \"凭证缺失\", \"返款争议\"] },\n { id: \"ref-refund-audit\", short: \"返款审核\", title: \"返款审核\", owner: \"财务\", ref: \"完整参考原型refund-audit\", intent: \"审核用户返款请款、凭证、卡密、订单状态和风险信号。\", metrics: [[\"待审核\", \"48\", \"今日\"], [\"缺凭证\", \"12\", \"需补\"], [\"风险阻断\", \"9\", \"退款比对\"], [\"已返款\", \"156,200\", \"月度\"]], steps: [\"接收请款\", \"核验订单/评价/展示\", \"风险比对\", \"审核通过或退回\", \"执行返款\"], buttons: [\"审核通过\", \"退回补充\", \"阻断\", \"执行返款\"], retro: [\"审核耗时\", \"返款成功率\", \"退回原因\", \"风险金额\"] },\n { id: \"ref-commission\", short: \"佣金\", title: \"KOC/KOL佣金\", owner: \"财务 / KOC运营\", ref: \"完整参考原型commission\", intent: \"V1可预留完整佣金结算入口免评补单相关的订单归因和佣金争议需记录。\", metrics: [[\"待结算\", \"5\", \"任务\"], [\"归因争议\", \"1\", \"待审\"], [\"已结算\", \"23\", \"本月\"], [\"预留项\", \"V2\", \"完整实现\"]], steps: [\"读取KOC任务\", \"核验订单归因\", \"计算佣金\", \"审核争议\", \"结算\"], buttons: [\"计算佣金\", \"发起审核\", \"标记争议\", \"结算\"], retro: [\"佣金成本\", \"达人ROI\", \"争议率\", \"归因准确率\"] },\n { id: \"ref-report-plan\", short: \"计划复盘\", title: \"数据复盘 · 计划看板\", owner: \"业务负责人\", ref: \"完整参考原型report-plan\", intent: \"按计划查看目标、完成、缺口、暂停、转免评、异常和负责人。\", metrics: [[\"计划完成\", \"83%\", \"月度\"], [\"缺口\", \"253\", \"目标数\"], [\"异常关闭\", \"7\", \"本周\"], [\"转免评\", \"3\", \"本月\"]], steps: [\"选择时间\", \"查看计划趋势\", \"下钻异常\", \"生成复盘动作\"], buttons: [\"筛选\", \"下钻\", \"导出\", \"创建复盘\"], retro: [\"完成率\", \"异常率\", \"资源缺口\", \"动作闭环\"] },\n { id: \"ref-report-asin\", short: \"ASIN复盘\", title: \"数据复盘 · ASIN看板\", owner: \"业务负责人\", ref: \"完整参考原型report-asin\", intent: \"按ASIN看评价、回评、免评、掉评、权重变化和渠道贡献。\", metrics: [[\"ASIN数\", \"126\", \"本月\"], [\"掉评\", \"2.1%\", \"模拟\"], [\"权重提升\", \"70%\", \"免评\"], [\"库存阻断\", \"5\", \"影响计划\"]], steps: [\"选择ASIN\", \"查看评价/免评指标\", \"查看渠道贡献\", \"生成下一轮计划\"], buttons: [\"筛选ASIN\", \"查看趋势\", \"创建需求\"], retro: [\"评价质量\", \"掉评原因\", \"免评权重\", \"库存影响\"] },\n { id: \"ref-report-channel\", short: \"渠道复盘\", title: \"数据复盘 · 渠道看板\", owner: \"渠道负责人\", ref: \"完整参考原型report-channel\", intent: \"对比IM、EDM、Phone、APP/H5触达、点击、回复、订单、投诉和ROI。\", metrics: [[\"IM订单\", \"386\", \"模拟\"], [\"EDM订单\", \"142\", \"模拟\"], [\"Phone意向\", \"86\", \"模拟\"], [\"投诉\", \"0.42%\", \"EDM\"]], steps: [\"选择渠道\", \"查看漏斗\", \"对比计划\", \"识别低效原因\", \"调整策略\"], buttons: [\"对比渠道\", \"查看人群\", \"配置去重\", \"导出\"], retro: [\"渠道ROI\", \"触达疲劳\", \"重复触达\", \"投诉退订\"] },\n { id: \"ref-report-cs\", short: \"客服复盘\", title: \"数据复盘 · 客服看板\", owner: \"客服主管\", ref: \"完整参考原型report-cs\", intent: \"复盘客服工单、解决率、满意度、RSO/RDO和目标完成。\", metrics: [[\"工单解决率\", \"92%\", \"模拟\"], [\"满意度\", \"96%\", \"模拟\"], [\"RSO\", \"892\", \"月度\"], [\"RDO\", \"617\", \"月度\"]], steps: [\"查看客服表现\", \"识别目标缺口\", \"下钻工单类型\", \"调整排班和培训\"], buttons: [\"筛选客服\", \"查看明细\", \"设置目标\", \"导出\"], retro: [\"人效\", \"服务质量\", \"转化目标\", \"培训动作\"] }\n ];\n\n modules.push({\n id: \"reference\",\n label: \"细化\",\n icon: \"UX\",\n title: \"完整参考原型细化页\",\n note: \"参考 20260528_USER_ERP_完整参考原型_v1.html把操作台页面拆成可跳转的执行入口。\",\n pages: referencePages.map(p => p.id)\n });\n\n referencePages.forEach(item => {\n pages[item.id] = {\n module: \"reference\",\n title: item.title,\n short: item.short,\n subtitle: item.intent,\n owner: item.owner,\n source: \"参考原型/02/03/04/05\",\n kind: \"reference\"\n };\n });\n\n const roles = {\n owner: { name: \"高级主管\", see: \"OKR、资源压力、P0异常、跨部门阻塞、计划缺口\", avoid: \"不先看单条聊天、单条订单字段和普通P3观察项\", judge: \"是否暂停计划、是否补资源、是否升级跨部门\", review: \"目标缺口、TOP/BOTTOM任务、异常原因沉淀\" },\n ops: { name: \"USER运营\", see: \"需求池、计划生成、执行匹配、今日缺口、待补量\", avoid: \"不把V1边界当需求边界不只看订单页\", judge: \"需求是否可执行、资源是否匹配、是否转免评/客服/KOC\", review: \"计划完成、渠道表现、订单与评价口径\" },\n channel: { name: \"渠道运营\", see: \"IM/EDM/Phone漏斗、人群、频控、卡片/H5、退订投诉\", avoid: \"不绕过真实人额度,不只按单渠道点击率决策\", judge: \"是否降频、换素材、换人群、暂停推送\", review: \"发送、点击、回复、订单、评价、投诉\" },\n csLead: { name: \"客服主管\", see: \"在线、排班、待处理、首次回复、转化目标、投诉\", avoid: \"不先看已关闭低风险工单\", judge: \"是否自动分配、转移、调班、升级投诉\", review: \"RSO/RDO、首次回复、解决率、目标完成率\" },\n cs: { name: \"一线客服\", see: \"我的工单、待回复、待催评、待登记订单、答应配合\", avoid: \"不看全局财务明细和他人敏感资料\", judge: \"回复、补信息、登记订单、催评、升级\", review: \"今日处理数、催评结果、用户承诺完成情况\" },\n koc: { name: \"KOC/KOL运营\", see: \"新线索、标签、合作任务、内容/带货进度、身份冲突\", avoid: \"不把普通测评完成口径当内容任务完成口径\", judge: \"是否匹配达人、是否暂停合作、是否要求重提内容\", review: \"内容链接、Code、订单、佣金争议、风险\" },\n finance: { name: \"财务/返款\", see: \"待请款、待审核、待返款、双重退款、凭证/卡密\", avoid: \"不看未到返款条件的普通工单\", judge: \"是否审核通过、是否阻断重复返款、是否补凭证\", review: \"返款成功率、异常返款、卡密缺失、争议\" },\n risk: { name: \"风险/审核\", see: \"黑名单、强弱关联、退款取消、额度超限、敏感导出\", avoid: \"不只按账号判断不用Profile累计Review替代真实人\", judge: \"弱风险提示、强风险阻断、拉黑/解除\", review: \"风险案件、复检记录、归并冲突、异常关闭\" }\n };\n\n const workflowData = {\n demand: {\n metrics: [[\"待评估需求\", \"12\", \"OA/销售/客服/KOC入口\"], [\"资源匹配不足\", \"5\", \"人群或客服容量缺口\"], [\"今日待转计划\", \"8\", \"测评/回评/免评/客服\"], [\"冲突计划\", \"2\", \"需主管合并或暂停\"]],\n do: [\"先看P0/P1需求和截止时间\", \"校验ASIN、库存、评分、产品状态\", \"确认需求类型:测评/回评/免评/客服/KOC\", \"检查人群、额度、渠道、客服容量是否能支撑\"],\n dont: [\"不直接从需求跳到推送\", \"不在未核验产品/库存时生成计划\", \"不把KOC/KOL合作请求当普通测评单处理\"],\n steps: [\"需求进入\", \"需求评估\", \"产品/ASIN校验\", \"计划生成\", \"执行匹配\", \"渠道/客服/KOC任务\", \"结果回流\"],\n issues: [\"目标高于可用人群/额度\", \"产品禁用但计划仍执行\", \"计划有名额但渠道无人群\", \"渠道有响应但客服容量不足\", \"完成数口径不一致\"],\n actions: [\"新增需求\", \"导入OA需求\", \"需求评估\", \"生成计划\", \"匹配人群\", \"预占额度\", \"分配客服\", \"生成推送任务\", \"调整名额\", \"暂停计划\", \"恢复计划\", \"转免评\", \"关闭需求\"],\n review: [\"需求转计划耗时\", \"计划完成率\", \"资源匹配缺口\", \"客服容量压力\", \"被驳回/需补充原因\"]\n },\n \"branch-im\": {\n metrics: [[\"可推人群\", \"18,420\", \"按真实人去重\"], [\"长期测评人\", \"1,204\", \"累计提交评价>=12\"], [\"回复率\", \"4.8%\", \"低于目标需换素材\"], [\"额度预警\", \"37\", \"接近4/4/12\"]],\n do: [\"先按真实人读取person_quota_ledgers\", \"检查黑名单、退款取消、未完成单\", \"确认卡片/H5和产品状态有效\", \"查看今日频控和渠道去重\"],\n dont: [\"不按Profile累计Review分层\", \"不对累计>=12的真实人推普通测评/回评\", \"不绕过客服容量继续放量\"],\n steps: [\"人群生成\", \"额度/风险复检\", \"选择卡片/H5\", \"推送\", \"用户响应\", \"核验信息\", \"订单/返款/客服\"],\n issues: [\"IM点击低\", \"IM回复低于3%\", \"退订或不感兴趣升高\", \"卡片产品禁用未同步\", \"H5链接失效\"],\n actions: [\"新增推送\", \"上架/下架\", \"批量分配\", \"新增卡片\", \"下架卡片\", \"配置去重规则\"],\n review: [\"发送\", \"曝光\", \"点击\", \"回复\", \"订单\", \"评价\", \"退订/投诉\"]\n },\n \"branch-edm\": {\n metrics: [[\"域名健康\", \"2/3\", \"1个预警\"], [\"UID人群\", \"9,880\", \"今日可发\"], [\"打开率\", \"19.4%\", \"模拟数据\"], [\"投诉率\", \"0.42%\", \"接近阈值\"]],\n do: [\"先看域名、邮箱、IP信誉\", \"核对OA计划变化\", \"检查KV/UID人群数量\", \"确认H5与产品禁用联动\", \"回收打开/点击/回复/退订/投诉\"],\n dont: [\"不在信誉异常时继续发送\", \"不把EDM点击当评价完成\", \"不忽略菲律宾/国家问题清单\"],\n steps: [\"基础设施检查\", \"同步OA计划\", \"检查UID人群\", \"检查产品/H5\", \"生成EDM任务\", \"发送与AB Test\", \"转化到订单/客服/风险\"],\n issues: [\"EDM域名/IP信誉异常\", \"KV/UID人群导出失败\", \"H5链接失效\", \"退订或不感兴趣升高\"],\n actions: [\"检查基础设施\", \"创建AB Test\", \"生成推送任务\", \"配置去重规则\"],\n review: [\"送达\", \"打开\", \"点击\", \"回复\", \"退订\", \"投诉\", \"订单转化\"]\n },\n \"branch-phone\": {\n metrics: [[\"待回拨\", \"86\", \"含未接\"], [\"未接率\", \"38%\", \"需调整时段\"], [\"可用客服\", \"7\", \"晚班缺1\"], [\"转KOC线索\", \"4\", \"今日新增\"]],\n do: [\"先看未接和待回拨\", \"按国家/语言/时段匹配客服\", \"查看问题类型分布\", \"确认高峰时段客服是否不足\"],\n dont: [\"不在客服容量不足时批量外呼\", \"不把Phone售后问题直接记为评价转化\"],\n steps: [\"生成电话名单\", \"匹配国家/语言/时段/排班\", \"拨打/记录\", \"转客服/订单/售后/KOC线索\", \"复盘未接率\"],\n issues: [\"Phone未接率过高\", \"排班不足\", \"客服转移失败\", \"等待用户超时\"],\n actions: [\"创建回拨任务\", \"设置班次\", \"批量排班\", \"转移工单\"],\n review: [\"拨打数\", \"接通数\", \"未接率\", \"订单意向\", \"KOC意向\", \"售后问题\"]\n },\n \"branch-cs\": {\n metrics: [[\"待分配工单\", \"19\", \"含P1 6个\"], [\"首次回复超时\", \"7\", \"需主管处理\"], [\"今日登记订单\", \"43\", \"RSO/RDO\"], [\"答应配合待完成\", \"26\", \"需催评\"]],\n do: [\"先看未分配和超时工单\", \"客服查看上下文卡后再回复\", \"缺订单/截图/返款信息时创建待补标签\", \"投诉、诈骗、退款异常立即升级\"],\n dont: [\"不把客服降级成聊天窗口\", \"不绕过订单核验直接请款\", \"不查看无关敏感字段\"],\n steps: [\"消息进入\", \"生成工单\", \"分配客服\", \"查看上下文卡\", \"回复/补信息\", \"登记订单/催评/上传结果\", \"关闭或升级\"],\n issues: [\"无客服在线\", \"工单未分配\", \"首次回复超时\", \"客服误登记订单\", \"用户投诉客服\"],\n actions: [\"自动分配\", \"手动分配\", \"转移工单\", \"回复用户\", \"登记订单\", \"催评\", \"标记解决\", \"关闭工单\", \"重开工单\", \"确认答应\", \"拒绝\", \"标记过期\"],\n review: [\"处理工单\", \"首次回复\", \"解决率\", \"RSO/RDO转化\", \"投诉\", \"客服目标完成率\"]\n },\n \"branch-order\": {\n metrics: [[\"待登记订单\", \"31\", \"客服/用户提交\"], [\"待确认评价\", \"22\", \"展示未确认\"], [\"掉评/差评\", \"9\", \"触发回评\"], [\"待请款\", \"48\", \"需财务审核\"]],\n do: [\"先核验订单号、店铺、ASIN、订单状态\", \"用户提交评价立即计入真实人累计12\", \"Amazon展示确认才计计划完成\", \"更换/更改/撤销必须留日志\"],\n dont: [\"不把用户提交等同于展示完成\", \"不对已退款/已取消订单继续返款\", \"不把免评结果混进评价型完成数\"],\n steps: [\"计划分配人群\", \"生成/提交订单\", \"核验订单号\", \"绑定ASIN/店铺/站点\", \"上传评价\", \"展示核验\", \"返款/请款\", \"完成/异常关闭\"],\n issues: [\"订单号格式错误\", \"非公司产品\", \"店铺下错\", \"订单已取消/退款\", \"评论重复绑定\", \"评论未展示\", \"掉评/差评\"],\n actions: [\"新建测评计划\", \"编辑计划\", \"查看关联订单\", \"新增订单\", \"上传订单\", \"上传回评\", \"提交排队\", \"请款\", \"更换订单\", \"更改订单\", \"撤销\", \"批量导出\", \"回评确认\"],\n review: [\"订单完成\", \"评价提交\", \"展示确认\", \"返款成功\", \"掉评率\", \"异常关闭原因\"]\n },\n \"branch-free\": {\n metrics: [[\"免评计划\", \"6\", \"今日执行\"], [\"KOC内容待提交\", \"14\", \"含超时3\"], [\"Code订单\", \"126\", \"模拟归因\"], [\"权重结果\", \"3 ASIN\", \"待复盘\"]],\n do: [\"先看免评计划目标和协同资源\", \"拆解KOC/KOL任务、Code、内容协同\", \"回收点击、Code使用、订单和权重结果\", \"免评结果单独形成快照\"],\n dont: [\"不以用户提交评价为终点\", \"不以Amazon展示评价作为完成口径\", \"不混入测评/回评订单完成数\"],\n steps: [\"免评计划批准\", \"拆解KOC/KOL/Code/内容任务\", \"匹配资源\", \"发布内容/分发Code\", \"同步IM/EDM/APP\", \"回收结果\", \"形成免评结果快照\"],\n issues: [\"KOC/KOL与C类测评人身份重叠\", \"样品发出未产出内容\", \"内容链接无效\", \"带货订单归因失败\", \"佣金争议\"],\n actions: [\"新建免评计划\", \"匹配KOC/KOL\", \"创建合作任务\", \"分配样品/免评名额\", \"上传内容链接\", \"审核内容\", \"同步订单\"],\n review: [\"内容链接\", \"Code使用\", \"点击\", \"订单\", \"权重结果\", \"达人表现\", \"佣金争议\"]\n },\n \"branch-finance\": {\n metrics: [[\"待审核请款\", \"48\", \"含P0 3\"], [\"双重退款\", \"5\", \"需风险确认\"], [\"卡密缺失\", \"6\", \"V1预留\"], [\"佣金争议\", \"3\", \"V2实现\"]],\n do: [\"先看待审核和P0资金风险\", \"比对Amazon退款和OA返款\", \"非APP邮件退款补齐识别线索\", \"返款成功后回写订单和工单\"],\n dont: [\"不审核未满足条件的请款\", \"不跳过双重退款比对\", \"不暴露完整返款账号和卡密\"],\n steps: [\"返款条件满足\", \"发起请款\", \"财务审核\", \"付款/礼品卡\", \"凭证/卡密通知\", \"状态回写\", \"风险复盘\"],\n issues: [\"缺返款账号\", \"返款账号格式异常\", \"重复请款\", \"双重退款\", \"非APP用户邮件退款\", \"返款超额\", \"卡密/凭证缺失\"],\n actions: [\"请款\", \"审核请款\", \"确认返款\", \"标记双重退款\", \"创建风险事件\"],\n review: [\"待请款\", \"待审核\", \"返款成功\", \"异常返款\", \"双重退款\", \"凭证缺失\"]\n },\n \"branch-koc\": {\n metrics: [[\"新线索\", \"21\", \"今日新增\"], [\"合作任务\", \"38\", \"免评/内容/带货\"], [\"内容待审核\", \"12\", \"V2\"], [\"身份冲突\", \"4\", \"需复核\"]],\n do: [\"先看新线索、任务超时、身份冲突\", \"区分KOC/KOL身份和普通测评人身份\", \"标签、带货、测评、免评不能混\", \"内容任务与订单任务分开完成口径\"],\n dont: [\"不因为V1不做完整商家平台就删除KOC/KOL需求\", \"不把KOC内容任务混成普通测评订单\"],\n steps: [\"新增线索\", \"身份/标签/风险检查\", \"自动打标与人工修正\", \"分层\", \"匹配任务\", \"接受/拒绝\", \"样品/内容/带货执行\", \"复盘\"],\n issues: [\"KOC标签混乱\", \"达人重复触达\", \"内容不合规\", \"带货订单归因失败\", \"高风险KOC继续推送\"],\n actions: [\"新增线索\", \"打标分层\", \"创建合作任务\", \"分配样品/免评名额\", \"上传内容链接\", \"审核内容\", \"同步订单\", \"计算佣金\", \"暂停合作\"],\n review: [\"线索\", \"任务\", \"内容\", \"带货\", \"佣金\", \"风险\", \"合作等级\"]\n },\n \"branch-risk\": {\n metrics: [[\"风险事件\", \"37\", \"待处理\"], [\"强关联命中\", \"8\", \"阻断\"], [\"额度超限\", \"18\", \"真实人维度\"], [\"敏感导出\", \"2\", \"需审批\"]],\n do: [\"先看P0资金/合规/账号安全\", \"每次有效互动复检身份、额度、风险\", \"强风险阻断,弱风险提示人工\", \"确认风险后同步黑名单\"],\n dont: [\"不只按账号判断风险\", \"不让黑名单用户继续触达/返款/合作\", \"不导出未脱敏敏感字段\"],\n steps: [\"风险信号产生\", \"判断弱/强风险\", \"弱风险提醒\", \"强风险阻断\", \"人工复核\", \"解除/确认\", \"黑名单同步/恢复执行\"],\n issues: [\"黑名单命中\", \"强关联命中\", \"弱关联命中\", \"额度超限\", \"多账号归并冲突\", \"频控超限\", \"敏感字段导出风险\"],\n actions: [\"创建风险事件\", \"复核通过\", \"排除风险\", \"新增黑名单\", \"标记双重退款\", \"查看审计记录\", \"手动合并\", \"手动拆分\"],\n review: [\"风险案件\", \"黑名单\", \"退款比对\", \"额度超限\", \"强弱关联\", \"复检记录\"]\n },\n \"orders\": null,\n \"cs-exec\": null,\n \"cs-mgmt\": null,\n \"channel\": null,\n \"people\": null,\n \"koc-center\": null,\n \"risk-center\": null,\n \"retro\": null\n };\n\n workflowData.orders = workflowData[\"branch-order\"];\n workflowData[\"cs-exec\"] = workflowData[\"branch-cs\"];\n workflowData[\"cs-mgmt\"] = {\n metrics: [[\"在线客服\", \"17\", \"晚班缺1\"], [\"今日工单\", \"163\", \"待处理19\"], [\"首次回复\", \"8.6分\", \"目标<10分\"], [\"目标完成\", \"76%\", \"本月\"]],\n do: [\"先看在线、排班、待处理和超时\", \"检查RSO/RDO目标完成\", \"处理工单分配压力\", \"导出回复/转化/目标完成\"],\n dont: [\"不先看已关闭低风险工单\", \"不调整未确认班次规则\", \"不忽略投诉工单\"],\n steps: [\"看客服Dashboard\", \"检查出勤\", \"调整排班\", \"分配工单\", \"跟踪回复统计\", \"看转化绩效\", \"设置目标\"],\n issues: [\"无客服在线\", \"排班不足\", \"目标异常\", \"用户投诉客服\"],\n actions: [\"导入出勤\", \"调整出勤状态\", \"设置班次\", \"批量排班\", \"设置月目标\", \"导出绩效\"],\n review: [\"出勤\", \"排班\", \"处理工单\", \"首次回复\", \"转化率\", \"目标完成率\"]\n };\n workflowData.channel = workflowData[\"branch-im\"];\n workflowData.people = {\n metrics: [[\"真实人档案\", \"42,180\", \"模拟聚合\"], [\"额度预警\", \"18\", \"接近12\"], [\"自动归并\", \"96.3%\", \"姓名+地址/设备\"], [\"人工复核\", \"11\", \"合并/拆分\"]],\n do: [\"先看额度预警和归并冲突\", \"确认自动归并是否覆盖姓名+地址、设备、邮箱、电话、Profile、收款信息\", \"查看真实人下多账号额度一致性\", \"风险记录与黑名单联动\"],\n dont: [\"不以单JOYHUB ID或Profile替代真实人\", \"不在归并冲突未解决时继续推普通测评\"],\n steps: [\"识别身份线索\", \"自动归并真实人\", \"读取额度台账\", \"生成候选人群\", \"预占/释放额度\", \"互动复检\", \"人工合并/拆分\"],\n issues: [\"多账号归并冲突\", \"额度超限\", \"强关联命中\", \"弱关联命中\"],\n actions: [\"手动合并\", \"手动拆分\", \"查看额度明细\", \"查看审计记录\", \"手动释放预占\"],\n review: [\"4/4/12\", \"预占\", \"释放\", \"提交计数\", \"风险历史\", \"归并准确率\"]\n };\n workflowData[\"koc-center\"] = workflowData[\"branch-koc\"];\n workflowData[\"risk-center\"] = workflowData[\"branch-risk\"];\n workflowData.retro = {\n metrics: [[\"计划完成率\", \"84%\", \"核心指标\"], [\"ASIN风险\", \"9\", \"低评分/掉评\"], [\"客服转化\", \"76%\", \"RSO/RDO\"], [\"KOC内容\", \"31\", \"已发布/待审\"]],\n do: [\"先看昨日TOP/BOTTOM任务\", \"看异常原因是否有沉淀动作\", \"核对计划/订单/评价/免评不同完成口径\", \"输出本周资源缺口\"],\n dont: [\"不把提交评价和展示确认混成一个指标\", \"不把免评结果混入评价型计划完成\", \"不展示未脱敏敏感字段\"],\n steps: [\"结果回流\", \"指标聚合\", \"异常归因\", \"复盘记录\", \"沉淀动作\", \"下一轮计划调整\"],\n issues: [\"完成数口径不一致\", \"渠道响应但客服容量不足\", \"内容/佣金风险\", \"双重退款\"],\n actions: [\"创建复盘\", \"批量导出\", \"导出绩效\", \"查看关联推送\", \"查看关联订单\"],\n review: [\"计划\", \"ASIN\", \"渠道\", \"客服\", \"测评人\", \"KOC/KOL\", \"财务\"]\n };\n\n const exceptionGroups = [\n [\"需求与执行计划不匹配\", [[\"需求目标高于可用人群/额度\", \"提醒运营降低目标、拆分周期、转免评或补充渠道\", \"V1必做\"], [\"产品禁用但计划仍在执行\", \"自动暂停计划和下架H5/卡片\", \"V1必做\"], [\"库存不足但继续推测评/免评\", \"限制节奏或暂停\", \"V1必做\"], [\"ASIN/店铺/关键词变化未同步\", \"阻断新推送,生成维护任务\", \"V1必做\"], [\"计划有名额但渠道无可推人群\", \"补充人群、换渠道、延长周期\", \"V1必做\"], [\"渠道有响应但客服容量不足\", \"暂停或降频推送,调整排班\", \"V1必做\"], [\"完成数口径不一致\", \"进入口径复核\", \"V1必做\"]]],\n [\"评价/订单异常\", [[\"订单号格式错误\", \"提示重填或转客服\", \"V1必做\"], [\"非公司产品\", \"阻断登记,转客服说明\", \"V1必做\"], [\"店铺下错\", \"人工处理,可转免评\", \"V1必做\"], [\"订单已取消/退款\", \"阻断回评和返款,进入风险\", \"V1必做\"], [\"评论重复绑定\", \"阻断或例外审核\", \"V1必做\"], [\"评论未展示\", \"计划不计完成\", \"V1必做\"], [\"掉评/差评\", \"触发回评/紧急催评/风险\", \"V1必做\"]]],\n [\"返款/佣金异常\", [[\"缺返款账号\", \"客服跟进补齐\", \"V1必做\"], [\"重复请款\", \"阻断并提醒财务\", \"V1必做\"], [\"双重退款\", \"生成风险事件\", \"V1必做\"], [\"非APP用户邮件退款\", \"补充邮箱、订单、地址、收款信息等识别线索\", \"V1必做\"], [\"KOC/KOL佣金争议\", \"进入佣金复核\", \"V2实现\"]]],\n [\"客服异常\", [[\"无客服在线\", \"提醒主管,暂停部分推送\", \"V1必做\"], [\"工单未分配\", \"自动分配或主管手动分配\", \"V1必做\"], [\"首次回复超时\", \"提醒客服/主管\", \"V1必做\"], [\"排班不足\", \"调整排班或降频推送\", \"V1必做\"], [\"客服误登记订单\", \"更改订单并留痕\", \"V1必做\"]]],\n [\"渠道异常\", [[\"IM点击低\", \"换素材/卡片/人群\", \"V1必做\"], [\"IM回复低于3%\", \"更换图片/话术\", \"V1必做\"], [\"EDM域名/IP信誉异常\", \"暂停发送、切换账号\", \"V1必做\"], [\"KV/UID人群导出失败\", \"重跑导出\", \"V1必做\"], [\"Phone未接率过高\", \"调整时段/排班/回拨\", \"V1预留\"]]],\n [\"KOC/KOL异常\", [[\"KOC标签混乱\", \"人工复核标签\", \"V1预留\"], [\"KOC/KOL与C类测评人身份重叠\", \"阻断重复触达,进入冲突复核\", \"V1必做\"], [\"达人重复触达\", \"合并或暂停任务\", \"V1预留\"], [\"内容不合规\", \"驳回、下架、降权\", \"V2实现\"], [\"带货订单归因失败\", \"进入人工归因\", \"V2实现\"]]],\n [\"风险异常\", [[\"黑名单命中\", \"阻断触达/返款/合作\", \"V1必做\"], [\"强关联命中\", \"阻断并复核\", \"V1必做\"], [\"额度超限\", \"阻断普通测评,转免评池\", \"V1必做\"], [\"多账号归并冲突\", \"按person_quota_ledgers重新汇总\", \"V1必做\"], [\"敏感字段导出风险\", \"强制脱敏/审批\", \"V1必做\"]]]\n ];\n\n const actionRows = [\n [\"今日作战台\",\"查看异常\",\"进入昨日/今日异常详情\",\"alert、plan、channel_event、ticket、risk_event\",\"-\",\"-\",\"主管、运营\",\"否\",\"V1必做\",\"exceptions\"],\n [\"今日作战台\",\"指派处理人\",\"把异常转成可执行任务\",\"alert、staff、shift\",\"task、notification\",\"异常:待处理 -> 已指派\",\"主管、运营\",\"是\",\"V1必做\",\"exceptions\"],\n [\"今日作战台\",\"升级异常\",\"P0/P1问题升级主管或跨部门\",\"alert、risk_event、ticket\",\"escalation、notification\",\"异常:待处理 -> 已升级\",\"主管、风险\",\"是\",\"V1必做\",\"exceptions\"],\n [\"今日作战台\",\"调整计划\",\"从作战台直接进入计划调整\",\"demand、plan、progress\",\"plan_change_log\",\"计划:进行中 -> 调整中/暂停/补量\",\"主管、运营\",\"是\",\"V1必做\",\"demand\"],\n [\"今日作战台\",\"创建复盘\",\"对异常或任务形成复盘记录\",\"plan、channel_event、ticket、order\",\"retrospective\",\"异常:已处理 -> 待复盘\",\"主管、运营\",\"是\",\"V1预留\",\"retro\"],\n [\"需求池\",\"新增需求\",\"手动录入销售/运营/KOC-KOL需求\",\"product、asin、staff\",\"demand\",\"需求:草稿\",\"运营、主管\",\"是\",\"V1必做\",\"demand\"],\n [\"需求池\",\"导入OA需求\",\"从OA或表格批量导入需求\",\"import_file\",\"demand、import_log\",\"需求:待评估\",\"运营、管理员\",\"是\",\"V1必做\",\"demand\"],\n [\"需求池\",\"需求评估\",\"判断需求是否可执行\",\"demand、product、asin、inventory、risk\",\"demand_review\",\"待评估 -> 已通过/需补充/驳回\",\"运营、主管\",\"是\",\"V1必做\",\"demand\"],\n [\"需求池\",\"退回补充\",\"信息不足时退回需求人\",\"demand\",\"demand、notification\",\"待评估 -> 需补充\",\"运营\",\"是\",\"V1必做\",\"demand\"],\n [\"需求池\",\"生成计划\",\"将需求转成测评/回评/免评/KOC-KOL/客服计划\",\"demand、product、audience、quota、risk\",\"plan、plan_log\",\"已通过 -> 已转计划\",\"运营、主管\",\"是\",\"V1必做\",\"demand\"],\n [\"计划编排\",\"拆分计划\",\"一个需求拆成多个站点/渠道/周期计划\",\"demand、plan\",\"plan、plan_relation\",\"计划:草稿/进行中\",\"运营、主管\",\"是\",\"V1预留\",\"demand\"],\n [\"计划编排\",\"合并计划\",\"合并同产品/同周期/同目标计划\",\"plan\",\"plan_relation、plan_log\",\"计划:合并/关闭旧计划\",\"主管\",\"是\",\"V1预留\",\"demand\"],\n [\"执行匹配\",\"匹配人群\",\"生成候选用户/测评人/KOC-KOL名单\",\"person、reviewer、koc_kol、quota、risk\",\"audience_snapshot、exclusion\",\"匹配:待匹配 -> 完成/不足\",\"运营\",\"是\",\"V1必做\",\"demand\"],\n [\"执行匹配\",\"预占额度\",\"锁定测评/免评/Review额度\",\"audience_snapshot、quota_ledger\",\"quota_reservation\",\"额度:可用 -> 预占\",\"运营\",\"是\",\"V1必做\",\"people\"],\n [\"执行匹配\",\"手动释放预占\",\"预占超时、计划取消或人群撤出后释放额度\",\"quota_reservation、quota_ledger、plan\",\"quota_reservation_log、quota_ledger\",\"额度:已预占 -> 已释放\",\"主管、管理员\",\"是\",\"V1必做\",\"people\"],\n [\"执行匹配\",\"分配客服\",\"按容量、语言、工单量分配承接客服\",\"plan、ticket、shift、agent_capacity\",\"task、ticket_assignment\",\"待分配 -> 已分配\",\"主管、客服主管\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"执行匹配\",\"生成推送任务\",\"从计划生成人群和渠道任务\",\"plan、audience、card、h5、channel_config\",\"push_task、channel_event\",\"待发送\",\"渠道运营\",\"是\",\"V1必做\",\"branch-im\"],\n [\"执行匹配\",\"匹配KOC/KOL\",\"将需求匹配给合适创作者\",\"koc_kol_profile、task、risk\",\"koc_kol_task\",\"待分配 -> 待接受\",\"KOC/KOL运营\",\"是\",\"V1预留\",\"branch-koc\"],\n [\"计划调整\",\"调整名额\",\"增减计划数量\",\"plan、progress、resource\",\"plan_change_log\",\"计划目标变化\",\"运营、主管\",\"是\",\"V1必做\",\"demand\"],\n [\"计划调整\",\"暂停计划\",\"禁止继续执行但保留历史\",\"plan、risk、product\",\"plan_log、notification\",\"进行中 -> 暂停\",\"主管\",\"是\",\"V1必做\",\"demand\"],\n [\"计划调整\",\"恢复计划\",\"恢复已暂停计划\",\"plan、product、risk\",\"plan_log\",\"暂停 -> 进行中\",\"主管\",\"是\",\"V1必做\",\"demand\"],\n [\"计划调整\",\"转免评\",\"普通测评/回评因店铺/订单/用户问题转免评\",\"plan、order、reviewer\",\"plan、order_log\",\"测评/回评 -> 免评\",\"运营、主管\",\"是\",\"V1必做\",\"branch-free\"],\n [\"计划调整\",\"关闭需求\",\"需求完成或取消\",\"demand、plan、progress\",\"demand_close_log\",\"需求:已关闭\",\"主管\",\"是\",\"V1必做\",\"demand\"],\n [\"测评计划\",\"新建测评计划\",\"从需求或人工创建计划\",\"demand、product、asin\",\"review_plan\",\"草稿/未开始\",\"运营\",\"是\",\"V1必做\",\"orders\"],\n [\"测评计划\",\"编辑计划\",\"修改目标、渠道、周期、负责人\",\"review_plan\",\"plan_log\",\"计划字段变化\",\"运营、主管\",\"是\",\"V1必做\",\"orders\"],\n [\"测评计划\",\"复制关键词链接\",\"运营执行用\",\"review_plan\",\"copy_event\",\"-\",\"运营\",\"否\",\"V1必做\",\"orders\"],\n [\"测评计划\",\"查看关联推送\",\"查看计划下发的渠道任务\",\"plan、push_task\",\"-\",\"-\",\"运营、渠道\",\"否\",\"V1必做\",\"branch-im\"],\n [\"测评计划\",\"查看关联订单\",\"查看计划履约订单\",\"plan、order\",\"-\",\"-\",\"运营\",\"否\",\"V1必做\",\"branch-order\"],\n [\"回评计划\",\"新建回评计划\",\"因掉评/差评/维稳生成回评计划\",\"asin、review_stats\",\"reply_plan\",\"待开始\",\"运营\",\"是\",\"V1必做\",\"orders\"],\n [\"回评计划\",\"调整今日目标\",\"根据评分/掉评变化调整当天目标\",\"reply_plan、asin_stats\",\"plan_log\",\"今日目标变化\",\"运营、主管\",\"是\",\"V1必做\",\"orders\"],\n [\"免评计划\",\"新建免评计划\",\"给长期测评人/KOC-KOL/补单池创建免评计划\",\"demand、reviewer、koc_kol\",\"free_plan\",\"待审批/进行中\",\"运营\",\"是\",\"V1必做\",\"branch-free\"],\n [\"测评订单\",\"新增订单\",\"记录测评执行单\",\"plan、person、product\",\"review_order\",\"待上传回评/待登记\",\"运营、客服\",\"是\",\"V1必做\",\"branch-order\"],\n [\"测评订单\",\"上传订单\",\"绑定Amazon订单号\",\"review_order、amazon_order\",\"review_order、audit_log\",\"订单:待登记 -> 已登记\",\"运营、客服\",\"是\",\"V1必做\",\"branch-order\"],\n [\"测评订单\",\"上传回评\",\"绑定评论ID/链接/截图\",\"review_order、comment\",\"review_submission\",\"待回评 -> 待确认/已提交\",\"运营、客服\",\"是\",\"V1必做\",\"branch-order\"],\n [\"测评订单\",\"提交排队\",\"评论暂不能绑定,进入排队\",\"review_order、comment_query\",\"review_queue\",\"待确认\",\"运营、客服\",\"是\",\"V1必做\",\"branch-order\"],\n [\"测评订单\",\"请款\",\"发起用户返款\",\"review_order、refund_account\",\"refund_request\",\"待请款 -> 待审核\",\"运营、客服\",\"是\",\"V1必做\",\"branch-finance\"],\n [\"测评订单\",\"更换订单\",\"用新订单替代原订单\",\"review_order、amazon_order\",\"order_change_log\",\"订单号变化\",\"运营、主管\",\"是\",\"V1必做\",\"branch-order\"],\n [\"测评订单\",\"更改订单\",\"修正订单字段\",\"review_order\",\"order_change_log\",\"订单字段变化\",\"运营、主管\",\"是\",\"V1必做\",\"branch-order\"],\n [\"测评订单\",\"撤销\",\"撤销错误/风险订单\",\"review_order、risk\",\"order_log、quota_release\",\"进行中 -> 撤销\",\"风险、主管\",\"是\",\"V1必做\",\"branch-order\"],\n [\"测评订单\",\"批量导出\",\"导出当前筛选结果\",\"order、permission\",\"export_task\",\"-\",\"有导出权限\",\"是\",\"V1必做\",\"retro\"],\n [\"回评订单\",\"回评确认\",\"核验回评是否有效\",\"review_submission、comment\",\"review_display_check\",\"待确认 -> 已回评/未通过\",\"运营、审核\",\"是\",\"V1必做\",\"branch-order\"],\n [\"工单池\",\"自动分配\",\"按在线、工单量、排班分配客服\",\"ticket、agent、shift\",\"ticket_assignment\",\"待分配 -> 待处理\",\"客服主管\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"工单池\",\"手动分配\",\"指定处理人\",\"ticket、agent\",\"ticket_assignment\",\"待分配 -> 待处理\",\"客服主管\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"工单池\",\"转移工单\",\"换客服处理\",\"ticket、agent\",\"ticket_transfer_log\",\"处理人变化\",\"客服、主管\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"我的工单\",\"回复用户\",\"处理用户消息\",\"ticket、chat、context_snapshot\",\"chat_message、ticket_log\",\"待处理 -> 处理中/等待用户\",\"客服\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"我的工单\",\"登记订单\",\"客服拿到订单号后登记\",\"ticket、amazon_order、person\",\"review_order、ticket_log\",\"工单推进\",\"客服\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"我的工单\",\"催评\",\"提醒用户提交评价\",\"ticket、order、followup\",\"reminder_event、followup\",\"催评次数+1\",\"客服、运营\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"我的工单\",\"标记解决\",\"用户问题解决\",\"ticket\",\"ticket_log\",\"处理中 -> 已解决\",\"客服\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"我的工单\",\"关闭工单\",\"完成或无需继续\",\"ticket\",\"ticket_log\",\"已解决/等待用户 -> 已关闭\",\"客服、主管\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"我的工单\",\"重开工单\",\"用户再次反馈\",\"ticket\",\"ticket_log\",\"已关闭 -> 已重开/处理中\",\"客服、主管\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"答应配合\",\"确认答应\",\"用户答应评价/反馈\",\"ticket、person\",\"support_followup\",\"待确认 -> 已确认\",\"客服\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"答应配合\",\"拒绝\",\"用户拒绝配合\",\"ticket\",\"support_followup\",\"待确认 -> 已拒绝\",\"客服\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"答应配合\",\"标记过期\",\"超时未提交\",\"followup\",\"support_followup\",\"已确认 -> 已过期\",\"客服、系统\",\"是\",\"V1必做\",\"branch-cs\"],\n [\"出勤管理\",\"导入出勤\",\"导入当天/本月出勤\",\"attendance_file\",\"attendance_record\",\"出勤记录更新\",\"客服主管、人事\",\"是\",\"V1预留\",\"cs-mgmt\"],\n [\"出勤管理\",\"调整出勤状态\",\"修正迟到/请假/缺勤\",\"attendance_record\",\"attendance_log\",\"状态变化\",\"客服主管\",\"是\",\"V1必做\",\"cs-mgmt\"],\n [\"排班管理\",\"设置班次\",\"给客服设置早/午/晚班\",\"agent、date\",\"shift_schedule\",\"排班变化\",\"客服主管\",\"是\",\"V1必做\",\"cs-mgmt\"],\n [\"排班管理\",\"批量排班\",\"一次生成多天排班\",\"agent、date_range\",\"shift_schedule\",\"排班批量变化\",\"客服主管\",\"是\",\"V1必做\",\"cs-mgmt\"],\n [\"目标管理\",\"设置月目标\",\"设置RSO/RDO登记和上评目标\",\"agent、period\",\"support_target\",\"目标变化\",\"客服主管\",\"是\",\"V1必做\",\"cs-mgmt\"],\n [\"绩效看板\",\"导出绩效\",\"导出回复/转化/目标完成\",\"performance_snapshot\",\"export_task\",\"-\",\"客服主管\",\"是\",\"V1必做\",\"cs-mgmt\"],\n [\"IM推送\",\"新增推送\",\"创建IM触达任务\",\"plan、audience、card\",\"im_push_task\",\"草稿/待发送\",\"渠道运营\",\"是\",\"V1必做\",\"branch-im\"],\n [\"IM推送\",\"上架/下架\",\"控制任务是否可执行\",\"im_push_task\",\"channel_log\",\"已上架/已下架\",\"渠道运营\",\"是\",\"V1必做\",\"branch-im\"],\n [\"IM推送\",\"批量分配\",\"将任务分配到账号/渠道\",\"push_task、im_account\",\"assignment\",\"待分配 -> 已分配\",\"渠道运营\",\"是\",\"V1预留\",\"branch-im\"],\n [\"IM卡片\",\"新增卡片\",\"创建卡片素材\",\"product、h5\",\"im_card\",\"已上架/草稿\",\"渠道运营\",\"是\",\"V1必做\",\"branch-im\"],\n [\"IM卡片\",\"下架卡片\",\"产品禁用/素材失效时下架\",\"im_card、product\",\"card_log\",\"已上架 -> 已下架\",\"渠道运营\",\"是\",\"V1必做\",\"branch-im\"],\n [\"EDM\",\"检查基础设施\",\"确认域名/邮箱/IP信誉\",\"edm_config、deliverability\",\"daily_check\",\"健康/异常\",\"EDM运营\",\"否\",\"V1必做\",\"branch-edm\"],\n [\"EDM\",\"创建AB Test\",\"测试标题/素材/按钮\",\"edm_campaign\",\"ab_test\",\"运行中\",\"EDM运营\",\"是\",\"V1预留\",\"branch-edm\"],\n [\"Phone\",\"创建回拨任务\",\"对未接/待跟进用户安排电话\",\"tel_pool、agent_shift\",\"tel_task\",\"待拨打\",\"Phone/客服\",\"是\",\"V1预留\",\"branch-phone\"],\n [\"渠道配置\",\"配置去重规则\",\"定义跨IM/EDM/APP/Phone/KOC触达的去重、例外和频控条件\",\"channel_config、person、risk、quota\",\"channel_dedup_rule、channel_log\",\"规则生效/停用\",\"渠道主管、管理员\",\"是\",\"V1预留\",\"channel\"],\n [\"线索池\",\"新增线索\",\"新增KOC/KOL候选人\",\"source、contact\",\"creator_profile\",\"待审核\",\"KOC/KOL运营\",\"是\",\"V1预留\",\"branch-koc\"],\n [\"线索池\",\"打标分层\",\"区分新手KOC、稳定测评者、垂直专家、带货型KOL\",\"creator_profile、metrics\",\"creator_tag、tier_log\",\"分层变化\",\"KOC/KOL运营\",\"是\",\"V1预留\",\"branch-koc\"],\n [\"任务管理\",\"创建合作任务\",\"样品、免评、内容、带货任务\",\"demand、product、creator\",\"creator_task\",\"待接受\",\"KOC/KOL运营\",\"是\",\"V1预留\",\"branch-koc\"],\n [\"任务管理\",\"分配样品/免评名额\",\"执行合作资源分配\",\"creator_task、inventory、quota\",\"sample_order/free_order\",\"待寄样/待执行\",\"KOC/KOL运营\",\"是\",\"V1预留\",\"branch-free\"],\n [\"内容记录\",\"上传内容链接\",\"记录发布内容\",\"creator_task\",\"content_record\",\"待审核/已发布\",\"KOC/KOL运营\",\"是\",\"V2实现\",\"branch-free\"],\n [\"内容记录\",\"审核内容\",\"判断内容合规和是否可分发\",\"content_record、content_policy\",\"content_audit\",\"通过/驳回\",\"审核、运营\",\"是\",\"V2实现\",\"branch-free\"],\n [\"带货归因\",\"同步订单\",\"记录Code/链接带来的订单\",\"attribution、order\",\"creator_order\",\"待结算\",\"KOC/KOL运营\",\"是\",\"V2实现\",\"branch-free\"],\n [\"佣金结算\",\"计算佣金\",\"根据规则生成佣金\",\"creator_order、commission_rule\",\"commission_record\",\"待审核\",\"财务、运营\",\"是\",\"V2实现\",\"branch-finance\"],\n [\"风险处理\",\"暂停合作\",\"风险/投诉/作弊时暂停\",\"creator_profile、risk\",\"creator_status_log\",\"可合作 -> 暂停\",\"风险、主管\",\"是\",\"V1预留\",\"branch-koc\"],\n [\"真实人归并\",\"手动合并\",\"修正自动归并不足,把多个账号/身份线索合并到同一真实人\",\"person、identity、quota_ledger、risk\",\"person_identity_link、merge_log、quota_ledger\",\"多个身份 -> 同一真实人\",\"主管、风险、管理员\",\"是\",\"V1预留\",\"people\"],\n [\"真实人归并\",\"手动拆分\",\"纠正误合并,拆开不同真实人\",\"person、identity、quota_ledger、risk\",\"person_identity_link、split_log、quota_ledger\",\"同一真实人 -> 多个真实人\",\"主管、风险、管理员\",\"是\",\"V1预留\",\"people\"],\n [\"额度台账\",\"查看额度明细\",\"查看4/4/12额度、预占、释放、提交计数来源\",\"person、quota_ledger、quota_reservation、review_submission\",\"-\",\"-\",\"运营、客服主管、风险\",\"否\",\"V1必做\",\"people\"],\n [\"互动复检\",\"查看审计记录\",\"追溯每次有效互动为什么继续、拦截或转人工\",\"interaction_recheck、person、quota_ledger、risk\",\"-\",\"-\",\"运营、风险、客服主管\",\"否\",\"V1必做\",\"people\"],\n [\"风险事件\",\"创建风险事件\",\"人工或系统发现风险\",\"person、order、refund、creator\",\"risk_case\",\"待复核\",\"风险、系统\",\"是\",\"V1必做\",\"risk-center\"],\n [\"风险事件\",\"复核通过\",\"确认风险\",\"risk_case\",\"risk_case、blacklist\",\"复核中 -> 确认风险\",\"风险\",\"是\",\"V1必做\",\"risk-center\"],\n [\"风险事件\",\"排除风险\",\"解除误报\",\"risk_case\",\"risk_case\",\"复核中 -> 排除\",\"风险\",\"是\",\"V1必做\",\"risk-center\"],\n [\"黑名单\",\"新增黑名单\",\"阻断后续触达/返款/合作\",\"person、creator、identity\",\"blacklist_item\",\"生效中\",\"风险\",\"是\",\"V1必做\",\"risk-center\"],\n [\"退款比对\",\"标记双重退款\",\"Amazon退款+OA返款命中\",\"refund_records\",\"risk_signal\",\"疑似/确认双重退款\",\"风险、财务\",\"是\",\"V1必做\",\"branch-finance\"],\n [\"返款\",\"审核请款\",\"付款前审核\",\"refund_request、order、risk\",\"refund_record\",\"待审核 -> 待返款/失败\",\"财务\",\"是\",\"V1必做\",\"branch-finance\"],\n [\"返款\",\"确认返款\",\"完成付款/卡密发送\",\"refund_record\",\"refund_record、notification\",\"待返款 -> 成功\",\"财务\",\"是\",\"V1必做\",\"branch-finance\"]\n ].map((r, i) => ({ id: `ACT-${String(i + 1).padStart(3, \"0\")}`, page: r[0], name: r[1], meaning: r[2], read: r[3], write: r[4], change: r[5], role: r[6], audit: r[7], stage: r[8], route: r[9] }));\n\n const sampleRows = [\n { id: \"REQ-0528-001\", type: \"回评\", asin: \"B0USER001 / US\", status: \"待评估\", owner: \"USER运营A\", risk: \"P1\", note: \"评分低于4.5,客服容量不足\" },\n { id: \"PLAN-0528-006\", type: \"免评\", asin: \"B0USER019 / DE\", status: \"执行中\", owner: \"KOC运营B\", risk: \"P0\", note: \"长期测评人和KOC任务身份冲突\" },\n { id: \"CS-0528-033\", type: \"客服\", asin: \"B0USER011 / JP\", status: \"首次回复超时\", owner: \"客服主管\", risk: \"P1\", note: \"待转移工单,用户缺返款信息\" },\n { id: \"RISK-0528-009\", type: \"风险\", asin: \"真实人 P-8842\", status: \"强关联命中\", owner: \"风险审核\", risk: \"P0\", note: \"多账号归并后累计提交评价达到12\" }\n ];\n\n const state = { route: \"dashboard\", module: \"overview\", role: \"owner\", period: \"day\" };\n\n const byId = id => document.getElementById(id);\n const esc = value => String(value ?? \"\").replace(/[&<>\"']/g, ch => ({ \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", \"\\\"\": \"&quot;\", \"'\": \"&#039;\" }[ch]));\n const stageClass = stage => stage.includes(\"V2\") ? \"v2\" : stage.includes(\"预留\") ? \"reserve\" : \"v1\";\n\n function init() {\n renderShell();\n const hashRoute = location.hash.replace(\"#\", \"\");\n setRoute(pages[hashRoute] ? hashRoute : \"dashboard\", false);\n bindGlobalEvents();\n }\n\n function renderShell() {\n byId(\"moduleRail\").innerHTML = modules.map(m => `\n <button class=\"rail-btn\" data-module=\"${m.id}\" title=\"${esc(m.title)}\">\n <span class=\"rail-icon\">${esc(m.icon)}</span>\n <span class=\"rail-label\">${esc(m.label)}</span>\n </button>\n `).join(\"\");\n }\n\n function renderPageNav(moduleId) {\n const module = modules.find(m => m.id === moduleId);\n byId(\"moduleTitle\").textContent = module.title;\n byId(\"moduleNote\").textContent = module.note;\n byId(\"pageNav\").innerHTML = module.pages.map(id => {\n const p = pages[id];\n return `<button class=\"page-btn\" data-route=\"${id}\"><span>${esc(p.short)}</span><small>${esc(p.source)}</small></button>`;\n }).join(\"\");\n document.querySelectorAll(\".rail-btn\").forEach(btn => btn.classList.toggle(\"active\", btn.dataset.module === moduleId));\n }\n\n function setRoute(route, push = true) {\n if (!pages[route]) route = \"dashboard\";\n state.route = route;\n state.module = pages[route].module;\n renderPageNav(state.module);\n renderContent();\n document.querySelectorAll(\".page-btn\").forEach(btn => btn.classList.toggle(\"active\", btn.dataset.route === route));\n byId(\"topPageTitle\").textContent = pages[route].title;\n byId(\"topPageSubtitle\").textContent = `${pages[route].owner} · 来源 ${pages[route].source} · ${state.period === \"day\" ? \"日视图\" : state.period === \"week\" ? \"周视图\" : \"月视图\"}`;\n if (push) location.hash = route;\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n }\n\n function pageHeader(p, actions = \"\") {\n return `\n <div class=\"page-head\">\n <div>\n <div class=\"source-bar\"><strong>需求来源</strong>${sourceDocs.map(d => `<span class=\"pill gray\">${esc(d)}</span>`).join(\"\")}<span class=\"pill amber\">页面数据均为模拟</span></div>\n <div class=\"spacer\"></div>\n <h1 class=\"page-title\">${esc(p.title)}</h1>\n <p class=\"page-desc\">${esc(p.subtitle)}</p>\n </div>\n <div class=\"head-actions\">\n ${actions}\n <button class=\"btn\" data-action=\"drawer\" data-kind=\"source\">查看来源</button>\n <button class=\"btn primary\" data-route=\"action-matrix\">按钮矩阵</button>\n </div>\n </div>\n `;\n }\n\n function renderContent() {\n const p = pages[state.route];\n if (state.route === \"dashboard\") return renderDashboard();\n if (state.route === \"role-workflow\") return renderRoleWorkflow();\n if (state.route === \"action-matrix\") return renderActionMatrix();\n if (state.route === \"exceptions\") return renderExceptions();\n if (state.route === \"validation\") return renderValidation();\n if (pages[state.route]?.kind === \"reference\") return renderReferencePage(state.route);\n return renderWorkflowPage(state.route);\n }\n\n function renderDashboard() {\n const role = roles[state.role];\n const html = `\n ${pageHeader(pages.dashboard, `<button class=\"btn\" data-route=\"ref-demand-pool\">完整操作台细化</button><button class=\"btn primary\" data-route=\"demand\">进入需求调度</button>`)}\n <section class=\"grid cols-4\">\n ${metric(\"P0/P1异常\", \"37\", \"直接影响今日目标、资金、合规或账号安全\")}\n ${metric(\"今日必跟进\", \"84\", \"需求、计划、催评、返款、内容审核\")}\n ${metric(\"资源压力\", \"5类\", \"人群、额度、客服、KOC/KOL、返款队列\")}\n ${metric(\"待复盘\", \"7\", \"昨日TOP/BOTTOM和异常原因\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>当前角色:${esc(role.name)}</h2><p>切换右上角角色后,本卡片会更新每日工作重点。</p></div><span class=\"pill blue\">角色视图</span></div>\n <div class=\"panel-body grid cols-2\">\n ${infoBox(\"每天先看\", role.see, \"green\")}\n ${infoBox(\"今天不该先看\", role.avoid, \"amber\")}\n ${infoBox(\"必须判断\", role.judge, \"blue\")}\n ${infoBox(\"复盘数据\", role.review, \"purple\")}\n </div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>主业务闭环</h2><p>需求不是从推送开始,必须从需求进入到复盘闭环。</p></div><button class=\"btn small\" data-route=\"demand\">去调度</button></div>\n <div class=\"panel-body\">${flow([\"需求进入\",\"需求评估\",\"产品校验\",\"计划生成\",\"执行匹配\",\"渠道/客服/KOC任务\",\"用户/达人响应\",\"履约\",\"风险复检\",\"结果回流\",\"复盘\"] )}</div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>今日必须处理</h2><p>点击操作可打开详情或跳转对应页面。</p></div><span class=\"pill red\">模拟</span></div>\n <div class=\"panel-body grid\">\n ${sampleRows.map(row => taskRow(row)).join(\"\")}\n </div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>主看板确认项</h2><p>交付前用于确认页面是否照顾每日工作流。</p></div><span class=\"pill green\">已覆盖</span></div>\n <div class=\"panel-body\">\n <ul class=\"list\">\n <li><strong>主看板</strong><span>P0/P1异常、今日任务、目标进度、资源压力、复盘入口都在首屏。</span></li>\n <li><strong>分支看板</strong><span>IM、EDM、Phone、客服、评价订单、免评、财务、KOC/KOL、风险均有独立页面。</span></li>\n <li><strong>按钮跳转</strong><span>03按钮盘点表已进入按钮行为矩阵每个动作均可点击。</span></li>\n <li><strong>口径提醒</strong><span>真实人、4/4/12、提交即计12、展示才计完成、免评独立结果口径均显式展示。</span></li>\n <li><strong>模拟数据</strong><span>所有数据均标注为模拟,只用于本地点击和需求验证。</span></li>\n </ul>\n </div>\n </article>\n </section>\n `;\n byId(\"content\").innerHTML = html;\n }\n\n function renderRoleWorkflow() {\n byId(\"content\").innerHTML = `\n ${pageHeader(pages[\"role-workflow\"])}\n <section class=\"role-grid\">\n ${Object.entries(roles).map(([id, r]) => `\n <button class=\"role-card ${state.role === id ? \"active\" : \"\"}\" data-role-card=\"${id}\">\n <strong>${esc(r.name)}</strong>\n <span>先看:${esc(r.see)}</span>\n <span>不先看:${esc(r.avoid)}</span>\n </button>\n `).join(\"\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>角色工作流要求</h2><p>用于确认工作人员每天进入系统时的优先级。</p></div><span class=\"pill blue\">Stage 1</span></div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>角色</th><th>每天先看</th><th>今天不该先看</th><th>必须判断</th><th>复盘数据</th><th>入口</th></tr></thead>\n <tbody>\n ${Object.entries(roles).map(([id, r]) => `<tr><td><strong>${esc(r.name)}</strong></td><td>${esc(r.see)}</td><td>${esc(r.avoid)}</td><td>${esc(r.judge)}</td><td>${esc(r.review)}</td><td><button class=\"btn small\" data-route=\"${id === \"cs\" ? \"branch-cs\" : id === \"koc\" ? \"branch-koc\" : id === \"finance\" ? \"branch-finance\" : id === \"risk\" ? \"branch-risk\" : id === \"channel\" ? \"branch-im\" : \"dashboard\"}\">进入</button></td></tr>`).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderWorkflowPage(route) {\n const p = pages[route];\n const data = workflowData[route] || workflowData.demand;\n byId(\"content\").innerHTML = `\n ${pageHeader(p, `<button class=\"btn primary\" data-route=\"exceptions\">看异常</button>`)}\n <section class=\"grid cols-4\">${data.metrics.map(m => metric(m[0], m[1], m[2])).join(\"\")}</section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>工作人员每天该看什么</h2><p>先看会影响今日目标或阻断流程的项。</p></div><span class=\"pill green\">先看</span></div>\n <div class=\"panel-body\"><ul class=\"list\">${data.do.map(x => `<li><strong>${esc(x)}</strong><span>模拟检查项,可点击右侧动作继续。</span></li>`).join(\"\")}</ul></div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>今天不该先看什么</h2><p>避免低价值页面占用操作时间或制造错误口径。</p></div><span class=\"pill amber\">不要先看</span></div>\n <div class=\"panel-body\"><ul class=\"list\">${data.dont.map(x => `<li><strong>${esc(x)}</strong><span>必要时由异常、工单或复盘入口进入。</span></li>`).join(\"\")}</ul></div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>流程点击路径</h2><p>按业务顺序模拟从入口到关闭或复盘。</p></div><button class=\"btn small\" data-action=\"drawer\" data-kind=\"flow\" data-route-key=\"${route}\">查看写入对象</button></div>\n <div class=\"panel-body\">${flow(data.steps)}</div>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>流程问题点</h2><p>来自05异常流程点击处理会打开演示抽屉。</p></div><span class=\"pill red\">异常</span></div>\n <div class=\"panel-body grid\">${data.issues.map((x, idx) => `<div class=\"issue-row\"><strong>${esc(x)}</strong><span>处理状态:待处理 -> 处理中 -> 待复核 -> 已关闭</span><button class=\"btn small\" data-action=\"drawer\" data-kind=\"issue\" data-title=\"${esc(x)}\" data-route-target=\"exceptions\">处理演示</button></div>`).join(\"\")}</div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>可执行按钮</h2><p>按钮来自03盘点表可跳转或执行演示。</p></div><span class=\"pill blue\">${data.actions.length} 项</span></div>\n <div class=\"panel-body\" style=\"display:flex;flex-wrap:wrap;gap:8px\">${data.actions.map(name => {\n const action = actionRows.find(a => a.name === name);\n return action ? `<button class=\"btn small\" data-action-id=\"${action.id}\">${esc(name)}</button>` : `<button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"${esc(name)}\">${esc(name)}</button>`;\n }).join(\"\")}</div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>将来复盘数据</h2><p>用于下一轮计划、资源、渠道和人员调度。</p></div><button class=\"btn small\" data-route=\"retro\">进入复盘</button></div>\n <div class=\"panel-body\">${data.review.map(x => `<span class=\"pill gray\" style=\"margin:0 6px 8px 0\">${esc(x)}</span>`).join(\"\")}</div>\n </section>\n `;\n }\n\n function renderReferencePage(route) {\n const item = referencePages.find(p => p.id === route) || referencePages[0];\n const idx = referencePages.findIndex(p => p.id === item.id);\n const next = referencePages[idx + 1]?.id || \"dashboard\";\n const prev = referencePages[idx - 1]?.id || \"dashboard\";\n byId(\"content\").innerHTML = `\n ${pageHeader(pages[route], `<button class=\"btn\" data-route=\"${prev}\">上一页</button><button class=\"btn primary\" data-route=\"${next}\">下一操作页</button>`)}\n <section class=\"grid cols-4\">${item.metrics.map(m => metric(m[0], m[1], m[2])).join(\"\")}</section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>参考页面与业务定位</h2><p>来自完整参考原型的页面级操作细化保留0-1需求重构的角色、流程、异常和复盘口径。</p></div><span class=\"pill blue\">${esc(item.ref)}</span></div>\n <div class=\"panel-body\">\n ${infoBox(\"页面目标\", item.intent, \"blue\")}\n ${item.note ? infoBox(\"关键口径\", item.note, \"amber\") : infoBox(\"适用边界\", \"本页数据均为模拟,主要用于需求验证、按钮盘点和后续开发拆分。\", \"amber\")}\n </div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>工作人员每天该看什么</h2><p>该页作为具体操作台时,先看阻断当日执行的状态和任务。</p></div><span class=\"pill green\">日常入口</span></div>\n <div class=\"panel-body\">\n <ul class=\"list\">\n <li><strong>先看</strong><span>${esc(item.metrics.map(m => m[0]).join(\"、\"))}</span></li>\n <li><strong>不先看</strong><span>不先下钻低优先级历史明细,不绕过真实人额度、风险复检、客服容量和计划状态。</span></li>\n <li><strong>必须判断</strong><span>是否继续执行、暂停、补量、转免评、升级客服/财务/风险或进入复盘。</span></li>\n </ul>\n </div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>流程点击路径</h2><p>用于从完整参考原型的页面拆出可开发的点击路径。</p></div><button class=\"btn small\" data-action=\"drawer\" data-kind=\"flow\" data-route-key=\"${route}\">查看写入对象</button></div>\n <div class=\"panel-body\">${flow(item.steps)}</div>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>可执行按钮</h2><p>按钮先做点击演示,后续 Stage 2 再拆 API、权限和日志。</p></div><span class=\"pill blue\">${item.buttons.length} 项</span></div>\n <div class=\"panel-body\" style=\"display:flex;flex-wrap:wrap;gap:8px\">\n ${item.buttons.map(name => `<button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"${esc(name)}\">${esc(name)}</button>`).join(\"\")}\n <button class=\"btn small\" data-route=\"action-matrix\">查看按钮矩阵</button>\n </div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>流程问题点</h2><p>本页要重点避免的执行偏差。</p></div><span class=\"pill red\">异常入口</span></div>\n <div class=\"panel-body\">\n <ul class=\"list\">\n <li><strong>口径错位</strong><span>测评/回评、免评、客服跟进、KOC任务不能混用完成口径。</span></li>\n <li><strong>状态未闭环</strong><span>按钮写入后必须能回到计划、订单、风险或复盘对象。</span></li>\n <li><strong>权限越界</strong><span>客服、财务、风险、KOC/KOL角色只能看到完成工作所需字段。</span></li>\n <li><strong>模拟数据</strong><span>当前数值只用于验证页面结构,不能作为真实经营数据。</span></li>\n </ul>\n </div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>将来复盘数据</h2><p>这些指标会进入计划、ASIN、渠道、客服、真实人、KOC/KOL和财务复盘。</p></div><button class=\"btn small\" data-route=\"retro\">进入复盘看板</button></div>\n <div class=\"panel-body\">${item.retro.map(x => `<span class=\"pill gray\" style=\"margin:0 6px 8px 0\">${esc(x)}</span>`).join(\"\")}</div>\n </section>\n `;\n }\n\n function renderActionMatrix() {\n byId(\"content\").innerHTML = `\n ${pageHeader(pages[\"action-matrix\"], `<button class=\"btn primary\" data-route=\"dashboard\">返回主看板</button>`)}\n <section class=\"grid cols-4\">\n ${metric(\"按钮动作\", actionRows.length, \"全部可点击\")}\n ${metric(\"V1必做\", actionRows.filter(a => a.stage.includes(\"V1必做\")).length, \"第一版关键动作\")}\n ${metric(\"V1预留\", actionRows.filter(a => a.stage.includes(\"预留\")).length, \"保留入口/字段/状态\")}\n ${metric(\"V2实现\", actionRows.filter(a => a.stage.includes(\"V2\")).length, \"后续完整能力\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>03 功能页面按钮盘点表</h2><p>每行提供执行演示和页面跳转。点击后会打开抽屉或跳转,不存在死按钮。</p></div><span class=\"pill amber\">模拟写入</span></div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>ID</th><th>页面</th><th>按钮/动作</th><th>业务含义</th><th>读/写对象</th><th>状态变化</th><th>权限</th><th>阶段</th><th>操作</th></tr></thead>\n <tbody>\n ${actionRows.map(a => `\n <tr>\n <td>${a.id}</td>\n <td>${esc(a.page)}</td>\n <td><strong>${esc(a.name)}</strong></td>\n <td>${esc(a.meaning)}</td>\n <td><span class=\"pill gray\">读</span> ${esc(a.read)}<br><span class=\"pill gray\">写</span> ${esc(a.write)}</td>\n <td>${esc(a.change)}</td>\n <td>${esc(a.role)}<br>审计:${esc(a.audit)}</td>\n <td><span class=\"stage ${stageClass(a.stage)}\">${esc(a.stage)}</span></td>\n <td class=\"actions-cell\"><button class=\"btn small\" data-action-id=\"${a.id}\">执行演示</button><button class=\"btn small\" data-route=\"${a.route}\">跳转页面</button></td>\n </tr>\n `).join(\"\")}\n </tbody>\n </table>\n </div>\n </section>\n `;\n }\n\n function renderExceptions() {\n byId(\"content\").innerHTML = `\n ${pageHeader(pages.exceptions, `<button class=\"btn primary\" data-route=\"dashboard\">返回作战台</button>`)}\n <section class=\"grid cols-4\">\n ${metric(\"P0\", \"9\", \"当天处理,主管可见\")}\n ${metric(\"P1\", \"18\", \"24小时内处理\")}\n ${metric(\"P2\", \"31\", \"责任人跟进\")}\n ${metric(\"P3\", \"12\", \"观察项\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid\">\n ${exceptionGroups.map(group => `\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>${esc(group[0])}</h2><p>发现方式、处理动作、关闭条件后续进入测试用例。</p></div><span class=\"pill red\">${group[1].length}</span></div>\n <div class=\"panel-body table-wrap\">\n <table>\n <thead><tr><th>异常</th><th>处理</th><th>阶段</th><th>操作</th></tr></thead>\n <tbody>${group[1].map(row => `<tr><td><strong>${esc(row[0])}</strong></td><td>${esc(row[1])}</td><td><span class=\"stage ${stageClass(row[2])}\">${esc(row[2])}</span></td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"issue\" data-title=\"${esc(row[0])}\" data-route-target=\"exceptions\">处理演示</button></td></tr>`).join(\"\")}</tbody>\n </table>\n </div>\n </article>\n `).join(\"\")}\n </section>\n `;\n }\n\n function renderValidation() {\n byId(\"content\").innerHTML = `\n ${pageHeader(pages.validation)}\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>已参考原型</h2><p>原型是需求验证材料,不是生产底座。</p></div><span class=\"pill blue\">06</span></div>\n <div class=\"panel-body\">\n <ul class=\"list\">\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\user-review-system</strong><span>React/Vite原型参考菜单、路由、订单、客服、渠道、风险页面。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\src\\\\user_erp_mvp_admin_prototype_v10.html</strong><span>参考左侧模块栏、顶部角色/周期、抽屉/弹窗后台布局。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\客服执行.html</strong><span>参考客服执行、分配、排班、绩效、目标管理。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\amazon_operator_test_entry.html</strong><span>参考提评入口、IM账号、推送策略。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\IM 推送业务流.mm</strong><span>参考IM分层和流程已修正为真实人口径。</span></li>\n </ul>\n </div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>本原型补强方向</h2><p>覆盖现有原型缺口。</p></div><span class=\"pill green\">已补</span></div>\n <div class=\"panel-body\">\n <ul class=\"list\">\n <li><strong>需求与计划调度</strong><span>从需求池到计划、资源、人群、客服、渠道、KOC/KOL任务。</span></li>\n <li><strong>客服核心需求</strong><span>客服执行和客服管理均有页面、动作、异常与复盘指标。</span></li>\n <li><strong>KOC/KOL完整需求域</strong><span>线索、分层、任务、内容、带货、佣金、风险均进入页面。</span></li>\n <li><strong>免评独立闭环</strong><span>免评不再和评价提交混为同一终点。</span></li>\n <li><strong>按钮矩阵</strong><span>03中动作全部以可点击入口呈现。</span></li>\n </ul>\n </div>\n </article>\n </section>\n `;\n }\n\n function metric(label, value, note) {\n return `<article class=\"panel metric\"><span>${esc(label)}</span><strong>${esc(value)}</strong><p>${esc(note)}</p></article>`;\n }\n\n function infoBox(title, text, tone) {\n return `<div class=\"issue-row\"><span class=\"pill ${tone}\">${esc(title)}</span><strong>${esc(text)}</strong></div>`;\n }\n\n function flow(items) {\n return `<div class=\"flow\">${items.map(x => `<span class=\"flow-step\">${esc(x)}</span>`).join(\"\")}</div>`;\n }\n\n function taskRow(row) {\n const target = row.type === \"客服\" ? \"branch-cs\" : row.type === \"风险\" ? \"branch-risk\" : row.type === \"免评\" ? \"branch-free\" : \"demand\";\n return `<div class=\"task-row\"><div><strong>${esc(row.id)} · ${esc(row.type)} · ${esc(row.status)}</strong><span>${esc(row.asin)} · ${esc(row.owner)} · ${esc(row.note)}</span></div><div><span class=\"pill ${row.risk === \"P0\" ? \"red\" : \"amber\"}\">${esc(row.risk)}</span> <button class=\"btn small\" data-route=\"${target}\">进入</button></div></div>`;\n }\n\n function openDrawer(kind, payload = {}) {\n const drawer = byId(\"drawer\");\n const mask = byId(\"drawerMask\");\n const title = byId(\"drawerTitle\");\n const note = byId(\"drawerNote\");\n const body = byId(\"drawerBody\");\n const foot = byId(\"drawerFoot\");\n let route = payload.route || payload.routeTarget || state.route;\n if (kind === \"source\") {\n title.textContent = \"来源与模拟说明\";\n note.textContent = \"本HTML为本地点击参考原型所有业务数据均为模拟。\";\n body.innerHTML = `<ul class=\"list\">${sourceDocs.map(d => `<li><strong>${esc(d)}</strong><span>已作为页面结构、按钮、分支、异常、复盘或验证依据。</span></li>`).join(\"\")}</ul>`;\n foot.innerHTML = `<button class=\"btn primary\" data-route=\"validation\">查看验证记录</button>`;\n } else if (kind === \"action\") {\n const a = actionRows.find(x => x.id === payload.id);\n route = a.route;\n title.textContent = `${a.id} · ${a.name}`;\n note.textContent = `${a.page} · ${a.stage} · 审计:${a.audit}`;\n body.innerHTML = `\n ${infoBox(\"业务含义\", a.meaning, \"blue\")}\n ${infoBox(\"读取对象\", a.read, \"gray\")}\n ${infoBox(\"写入对象\", a.write, \"gray\")}\n ${infoBox(\"状态变化\", a.change, \"green\")}\n ${infoBox(\"权限\", a.role, \"amber\")}\n <div class=\"source-bar\"><strong>演示结果</strong><span>已模拟生成操作日志、通知、状态变化和复盘引用。</span><span class=\"pill amber\">未写入真实系统</span></div>\n `;\n foot.innerHTML = `<button class=\"btn\" data-route=\"action-matrix\">返回矩阵</button><button class=\"btn primary\" data-route=\"${a.route}\">跳转到相关页面</button>`;\n } else if (kind === \"flow\") {\n const data = workflowData[payload.routeKey] || workflowData.demand;\n title.textContent = \"流程写入对象\";\n note.textContent = \"模拟展示流程节点与后续Stage 2对象设计的关系。\";\n body.innerHTML = `${flow(data.steps)}<ul class=\"list\">${data.steps.map((s, i) => `<li><strong>${esc(s)}</strong><span>模拟写入:状态日志、负责人、时间戳、复检结果、复盘引用 #${i + 1}</span></li>`).join(\"\")}</ul>`;\n foot.innerHTML = `<button class=\"btn primary\" data-route=\"${payload.routeKey}\">返回当前页</button>`;\n } else {\n title.textContent = payload.title || \"处理演示\";\n note.textContent = \"模拟从发现到关闭的异常状态流。\";\n body.innerHTML = `\n ${flow([\"待发现\",\"已发现\",\"待处理\",\"处理中\",\"待复核\",\"已关闭\"])}\n ${infoBox(\"处理要求\", \"当天能影响目标、资金、合规或账号安全的异常按P0/P1进入主管视图。\", \"red\")}\n ${infoBox(\"关闭条件\", \"必须有处理结论、责任人、操作日志、是否回流计划/客服/风险/复盘。\", \"green\")}\n `;\n foot.innerHTML = `<button class=\"btn\" data-route=\"exceptions\">查看异常总表</button><button class=\"btn primary\" data-route=\"${route}\">跳转相关页面</button>`;\n }\n drawer.classList.add(\"open\");\n mask.classList.add(\"open\");\n }\n\n function closeDrawer() {\n byId(\"drawer\").classList.remove(\"open\");\n byId(\"drawerMask\").classList.remove(\"open\");\n }\n\n function toast(text) {\n const el = byId(\"toast\");\n el.textContent = text;\n el.classList.add(\"open\");\n clearTimeout(window.__toastTimer);\n window.__toastTimer = setTimeout(() => el.classList.remove(\"open\"), 1800);\n }\n\n function bindGlobalEvents() {\n document.body.addEventListener(\"click\", event => {\n const moduleBtn = event.target.closest(\"[data-module]\");\n if (moduleBtn) {\n const mod = modules.find(m => m.id === moduleBtn.dataset.module);\n if (mod) setRoute(mod.pages[0]);\n return;\n }\n const routeBtn = event.target.closest(\"[data-route]\");\n if (routeBtn) {\n closeDrawer();\n setRoute(routeBtn.dataset.route);\n return;\n }\n const actionBtn = event.target.closest(\"[data-action-id]\");\n if (actionBtn) {\n openDrawer(\"action\", { id: actionBtn.dataset.actionId });\n return;\n }\n const action = event.target.closest(\"[data-action]\");\n if (action) {\n if (action.dataset.action === \"closeDrawer\") closeDrawer();\n if (action.dataset.action === \"drawer\") openDrawer(action.dataset.kind, action.dataset);\n return;\n }\n const roleCard = event.target.closest(\"[data-role-card]\");\n if (roleCard) {\n state.role = roleCard.dataset.roleCard;\n byId(\"roleSelect\").value = state.role;\n renderContent();\n toast(`已切换到:${roles[state.role].name}`);\n }\n });\n\n byId(\"drawerMask\").addEventListener(\"click\", closeDrawer);\n byId(\"roleSelect\").addEventListener(\"change\", event => {\n state.role = event.target.value;\n if (state.route === \"dashboard\" || state.route === \"role-workflow\") renderContent();\n byId(\"topPageSubtitle\").textContent = `${pages[state.route].owner} · 当前角色 ${roles[state.role].name}`;\n toast(`角色视图:${roles[state.role].name}`);\n });\n\n byId(\"period\").addEventListener(\"click\", event => {\n const btn = event.target.closest(\"button[data-period]\");\n if (!btn) return;\n state.period = btn.dataset.period;\n byId(\"period\").querySelectorAll(\"button\").forEach(b => b.classList.toggle(\"active\", b === btn));\n setRoute(state.route, false);\n toast(`已切换为${btn.textContent}视图`);\n });\n\n byId(\"globalSearch\").addEventListener(\"keydown\", event => {\n if (event.key !== \"Enter\") return;\n openDrawer(\"generic\", { title: `搜索:${event.target.value || \"空关键词\"}`, routeTarget: \"demand\" });\n });\n\n window.addEventListener(\"hashchange\", () => {\n const route = location.hash.replace(\"#\", \"\");\n if (route && route !== state.route && pages[route]) setRoute(route, false);\n });\n }\n\n init();\n </script>\n</body>\n</html>\n",
"wikilinks": [],
"category": "layer-requirements"
}
},
{
"id": "doc:05_需求文档/20260528_USER_ERP_完整参考原型_v2",
"type": "document",
"name": "USER ERP 完整参考原型 v2 · 2026-05-28",
"filePath": "05_需求文档/20260528_USER_ERP_完整参考原型_v2.html",
"summary": "USER ERP 完整参考原型 v2 · 2026-05-28 USER ERP Stage 1 · v2 模拟数据 仅用于流程验证 当前模块 今日作战 从异常、资源和今日动作进入业务闭环。 高频跳转 6 P0/P1异常 37 需求待评估 8 客服超时工单 3 免评缺口 4 额度预警 18 复盘待写 7 今日作战台 高级主管 / USER运营 / 客服 / ",
"tags": [
"05_需求文档",
"需求文档"
],
"complexity": "complex",
"knowledgeMeta": {
"content": "<!DOCTYPE html>\n<html lang=\"zh-CN\">\n<head>\n<meta charset=\"UTF-8\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<title>USER ERP 完整参考原型 v2 · 2026-05-28</title>\n<style>\n:root {\n --bg:#f5f7fb; --panel:#fff; --panel2:#f8fafc; --text:#142033; --muted:#66758a;\n --line:#dfe5ee; --line-s:#cbd5e1; --blue:#2563eb; --blue-s:#e8f0ff;\n --green:#15803d; --green-s:#e8f7ee; --amber:#b45309; --amber-s:#fff4df;\n --red:#b91c1c; --red-s:#fdecec; --purple:#6d28d9; --purple-s:#f2ecff;\n --nav:#111827; --nav-s:#1f2937; --radius:8px; --shadow:0 8px 20px rgba(15,23,42,.04);\n}\n*{box-sizing:border-box}\nbody{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:\"Microsoft YaHei\",\"Segoe UI\",Arial,sans-serif}\nbutton,input,select{font:inherit}button{cursor:pointer}\n\n/* App layout */\n.app{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:100vh}\n@media(max-width:1120px){.app{grid-template-columns:1fr}}\n\n/* SIDEBAR - dual rail */\n.sidebar{height:100vh;position:sticky;top:0;display:grid;grid-template-columns:92px 238px;border-right:1px solid var(--line);background:var(--panel);z-index:10}\n.rail{background:var(--nav);color:#e5edf7;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:16px 12px;min-height:0}\n.rail-brand{display:grid;gap:4px;justify-items:center;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12);text-align:center}\n.rail-brand strong{font-size:14px;color:#fff}\n.rail-brand span{color:#aebbc9;font-size:11px}\n.rail-nav{display:grid;gap:8px;align-content:start;overflow:auto;min-height:0}\n.rail-btn{min-height:66px;border:0;border-radius:var(--radius);background:transparent;color:#dbe7f5;display:grid;justify-items:center;align-content:center;gap:5px;padding:8px 4px;position:relative;font-size:12px}\n.rail-btn:hover,.rail-btn.active{background:var(--nav-s);color:#fff}\n.rail-btn.active::before{content:\"\";position:absolute;left:-12px;top:12px;bottom:12px;width:4px;background:var(--blue);border-radius:999px}\n.rail-icon{width:28px;height:28px;border:1px solid rgba(255,255,255,.25);border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:800}\n.rail-foot{border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:10px 6px;display:grid;gap:4px;text-align:center;color:#cbd5e1;font-size:11px}\n\n.panel-nav{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0;padding:18px 14px;gap:14px}\n.module-head{padding-bottom:14px;border-bottom:1px solid var(--line);display:grid;gap:4px}\n.module-head h1{margin:0;font-size:22px;line-height:1.2}\n.module-head span{color:var(--muted);font-size:12px;line-height:1.5}\n.eyebrow{margin:0;color:var(--muted);font-size:12px;font-weight:700}\n.page-nav{overflow:auto;min-height:0;display:grid;gap:7px;align-content:start}\n.page-btn,.quick-btn{border:1px solid transparent;background:transparent;color:var(--text);border-radius:var(--radius);min-height:42px;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-size:13px}\n.page-btn:hover,.quick-btn:hover,.page-btn.active{background:var(--blue-s);border-color:#bcd0ff;color:#123f9f}\n.page-btn small{color:var(--muted);font-size:11px;flex:none}\n.quick{border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--panel2);display:grid;gap:8px}\n.quick-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;font-weight:700}\n\n/* MAIN */\n.main{min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr)}\n.topbar{min-height:76px;position:sticky;top:0;z-index:8;background:rgba(245,247,251,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}\n.top-title{display:grid;gap:4px}\n.top-title strong{font-size:18px}\n.top-title span{color:var(--muted);font-size:12px}\n.top-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}\n.search{height:38px;width:260px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--radius);padding:0 10px;background:#fff;color:var(--muted);font-size:12px}\n.search input{border:0;outline:none;width:100%;min-width:0;color:var(--text);background:transparent;font-size:13px}\nselect,input[type=date]{height:38px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;color:var(--text);padding:0 10px;font-size:13px}\n.period{height:38px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;display:flex;overflow:hidden}\n.period button{border:0;background:transparent;padding:0 12px;color:var(--muted);font-size:13px}\n.period button.active{background:var(--blue);color:#fff}\n.content{padding:24px;min-width:0}\n\n/* Page header */\n.page-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;margin-bottom:18px}\n.page-title{margin:0;font-size:26px;line-height:1.2}\n.page-desc{margin:8px 0 0;max-width:900px;color:var(--muted);line-height:1.7;font-size:14px}\n.head-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}\n.source-bar{border:1px solid #bfd2ff;background:#f4f8ff;color:#21406d;border-radius:var(--radius);padding:10px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;line-height:1.5;margin-bottom:12px}\n\n/* Cards & panels */\n.grid{display:grid;gap:14px}\n.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}\n.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}\n.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}\n@media(max-width:1120px){.cols-4,.cols-3,.cols-2{grid-template-columns:1fr}.page-head{grid-template-columns:1fr}.head-actions{justify-content:flex-start}}\n.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}\n.panel-head{min-height:58px;border-bottom:1px solid var(--line);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}\n.panel-head h2{margin:0;font-size:16px;line-height:1.3}\n.panel-head p,.panel-note{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}\n.panel-body{padding:16px}\n\n/* Metric cards */\n.metric{padding:16px;display:grid;gap:8px;min-height:116px}\n.metric span{color:var(--muted);font-size:12px}\n.metric strong{font-size:28px;line-height:1}\n.metric p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}\n\n/* Tags */\n.pill,.stage{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}\n.pill.blue,.stage.v1{color:#1d4ed8;background:var(--blue-s)}\n.pill.green{color:var(--green);background:var(--green-s)}\n.pill.amber,.stage.reserve{color:var(--amber);background:var(--amber-s)}\n.pill.red{color:var(--red);background:var(--red-s)}\n.pill.purple,.stage.v2{color:var(--purple);background:var(--purple-s)}\n.pill.gray{color:var(--muted);background:#eef2f7}\n.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}\n.tag-red{background:var(--red-s);color:var(--red)}\n.tag-amber{background:var(--amber-s);color:var(--amber)}\n.tag-green{background:var(--green-s);color:var(--green)}\n.tag-blue{background:var(--blue-s);color:var(--blue)}\n.tag-gray{background:#e5e7eb;color:#6b7280}\n.tag-purple{background:var(--purple-s);color:var(--purple)}\n.sim-watermark{display:inline-block;font-size:10px;color:#92400e;background:#fef3c7;padding:1px 6px;border-radius:3px;margin-left:4px;vertical-align:1px}\n\n/* Flow visualization */\n.flow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}\n.flow-step{border:1px solid var(--line);background:#fff;border-radius:var(--radius);min-height:38px;padding:8px 10px;display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px}\n.flow-step::after{content:\"\";width:18px;height:1px;background:var(--line-s);display:inline-block}\n.flow-step:last-child::after{display:none}\n\n/* List items */\n.list{display:grid;gap:10px;margin:0;padding:0;list-style:none}\n.list li,.issue-row{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:11px 12px;display:grid;gap:5px;min-width:0}\n.list li strong,.issue-row strong{font-size:14px}\n.list li span,.issue-row span{color:var(--muted);font-size:12px;line-height:1.55}\n.task-row{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:11px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px}\n.task-row strong{font-size:14px}\n.task-row span{color:var(--muted);font-size:12px;line-height:1.55}\n\n/* Alert rows */\n.alert-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:6px;margin-bottom:8px;font-size:13px;border:1px solid var(--line);background:#fff}\n.alert-row.p0{border-left:3px solid var(--red);background:var(--red-s)}\n.alert-row.p1{border-left:3px solid var(--amber);background:var(--amber-s)}\n.alert-row.p2{border-left:3px solid var(--blue);background:var(--blue-s)}\n\n/* Cards */\n.card{background:var(--panel);border-radius:var(--radius);border:1px solid var(--line);padding:18px 20px;margin-bottom:16px;box-shadow:0 2px 8px rgba(0,0,0,.03)}\n.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}\n.card-title{font-size:14px;font-weight:700}\n.card-badge{font-size:11px;padding:2px 8px;border-radius:10px}\n.card-badge.sim{background:#fef3c7;color:#92400e}\n.card-badge.p0{background:var(--red-s);color:var(--red)}\n.card-badge.p1{background:var(--amber-s);color:var(--amber)}\n.card-badge.v1{background:var(--green-s);color:var(--green)}\n.card-badge.v2{background:var(--purple-s);color:var(--purple)}\n\n/* Stats */\n.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}\n.stat-card{background:var(--panel);border-radius:var(--radius);border:1px solid var(--line);padding:14px 16px}\n.stat-card .stat-num{font-size:28px;font-weight:900;line-height:1.2}\n.stat-card .stat-label{font-size:12px;color:var(--muted);margin-top:4px}\n.stat-card.warn{border-left:3px solid var(--amber)}\n.stat-card.danger{border-left:3px solid var(--red)}\n.stat-card.good{border-left:3px solid var(--green)}\n.stat-card.info{border-left:3px solid var(--blue)}\n\n/* Tables */\ntable{width:100%;border-collapse:collapse;font-size:13px}\nth,td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}\nth{color:var(--muted);font-size:12px;font-weight:800;background:#f8fafc}\ntd.actions-cell{min-width:150px;display:flex;gap:7px;flex-wrap:wrap}\n.table-wrap{overflow:auto}\n\n/* Buttons */\n.btn{min-height:36px;border:1px solid var(--line-s);border-radius:var(--radius);background:#fff;color:var(--text);padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:700;text-decoration:none}\n.btn:hover{border-color:#9db7ec;color:#1d4ed8;background:#f8fbff}\n.btn.primary{border-color:var(--blue);background:var(--blue);color:#fff}\n.btn.primary:hover{background:#1d4ed8}\n.btn.danger{border-color:#f0b3b3;color:var(--red);background:var(--red-s)}\n.btn.danger:hover{background:#f5c6c6}\n.btn.small{min-height:30px;padding:0 9px;font-size:12px}\n.btn.xs{padding:2px 8px;font-size:10px;min-height:24px}\n\n/* Form */\n.form-group{margin-bottom:12px}\n.form-group label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}\n.form-group input,.form-group select,.form-group textarea{width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:5px;font-size:13px}\n.form-row{display:flex;gap:12px}\n.form-row .form-group{flex:1}\n\n/* Progress bar */\n.progress-bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden}\n.progress-fill{height:100%;border-radius:3px}\n.progress-fill.green{background:var(--green)}\n.progress-fill.amber{background:var(--amber)}\n.progress-fill.red{background:var(--red)}\n.progress-fill.blue{background:var(--blue)}\n.progress-fill.purple{background:var(--purple)}\n\n/* Chat */\n.chat-bubble{padding:8px 14px;border-radius:12px;margin:6px 0;max-width:70%;font-size:13px}\n.chat-bubble.user{background:var(--blue-s);margin-right:auto}\n.chat-bubble.agent{background:var(--panel2);margin-left:auto;border:1px solid var(--line)}\n\n/* Drawer */\n.drawer-mask{position:fixed;inset:0;background:rgba(15,23,42,.32);z-index:30;display:none}\n.drawer-mask.open{display:block}\n.drawer{position:fixed;top:0;right:0;width:min(640px,100vw);height:100vh;background:#fff;z-index:31;transform:translateX(100%);transition:transform .18s ease;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-left:1px solid var(--line)}\n.drawer.open{transform:translateX(0)}\n.drawer-head,.drawer-foot{padding:16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}\n.drawer-foot{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}\n.drawer-body{padding:16px;overflow:auto;display:grid;gap:12px}\n.drawer h2{margin:0;font-size:18px}\n.drawer p.panel-note{margin:4px 0 0;color:var(--muted);font-size:12px}\n\n/* Toast */\n.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(18px);background:#111827;color:#fff;border-radius:var(--radius);padding:10px 14px;font-size:13px;opacity:0;pointer-events:none;transition:.18s ease;z-index:50}\n.toast.open{opacity:1;transform:translateX(-50%) translateY(0)}\n\n/* Spacer */\n.spacer{height:14px}\n\n/* Section title */\n.section-title{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:20px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line)}\n\n/* Role grid */\n.role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}\n@media(max-width:1120px){.role-grid{grid-template-columns:1fr}}\n.role-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:12px;display:grid;gap:8px;min-height:128px;cursor:pointer}\n.role-card:hover,.role-card.active{border-color:#94b5ff;box-shadow:inset 0 0 0 1px #94b5ff;background:#fbfdff}\n.role-card strong{font-size:14px}\n.role-card span{color:var(--muted);font-size:12px;line-height:1.55}\n\n/* Filter bar */\n.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}\n.filter-bar input,.filter-bar select{padding:6px 10px;border:1px solid var(--line);border-radius:5px;font-size:12px;height:34px}\n\n/* Tabs */\n.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:16px}\n.tab{padding:8px 18px;font-size:13px;border:none;background:none;cursor:pointer;border-bottom:2px solid transparent}\n.tab.active{border-bottom-color:var(--blue);color:var(--blue);font-weight:600}\n</style>\n</head>\n<body>\n<div class=\"app\">\n<!-- ====== SIDEBAR ====== -->\n<aside class=\"sidebar\">\n<section class=\"rail\" aria-label=\"一级模块\">\n<div class=\"rail-brand\"><strong>USER ERP</strong><span>Stage 1 · v2</span></div>\n<nav class=\"rail-nav\" id=\"moduleRail\"></nav>\n<div class=\"rail-foot\"><strong>模拟数据</strong><span>仅用于流程验证</span></div>\n</section>\n<section class=\"panel-nav\">\n<div class=\"module-head\"><p class=\"eyebrow\">当前模块</p><h1 id=\"moduleTitle\">今日作战</h1><span id=\"moduleNote\">从异常、资源和今日动作进入业务闭环。</span></div>\n<nav class=\"page-nav\" id=\"pageNav\"></nav>\n<div class=\"quick\"><div class=\"quick-head\"><span>高频跳转</span><strong>6</strong></div>\n<button class=\"quick-btn\" data-route=\"exceptions\"><span>P0/P1异常</span><strong>37</strong></button>\n<button class=\"quick-btn\" data-route=\"demand-pool\"><span>需求待评估</span><strong>8</strong></button>\n<button class=\"quick-btn\" data-route=\"ticket-pool\"><span>客服超时工单</span><strong>3</strong></button>\n<button class=\"quick-btn\" data-route=\"free-plan\"><span>免评缺口</span><strong>4</strong></button>\n<button class=\"quick-btn\" data-route=\"reviewer-list\"><span>额度预警</span><strong>18</strong></button>\n<button class=\"quick-btn\" data-route=\"report-plan\"><span>复盘待写</span><strong>7</strong></button>\n</div>\n</section>\n</aside>\n\n<!-- ====== MAIN ====== -->\n<main class=\"main\">\n<header class=\"topbar\">\n<div class=\"top-title\"><strong id=\"topPageTitle\">今日作战台</strong><span id=\"topPageSubtitle\">高级主管 / USER运营 / 客服 / 渠道 / KOC-KOL / 财务 / 风险</span></div>\n<div class=\"top-actions\">\n<label class=\"search\"><span>🔍</span><input id=\"globalSearch\" placeholder=\"需求 / ASIN / 真实人 / 工单 / 风险\" /></label>\n<div class=\"period\" id=\"period\"><button class=\"active\" data-period=\"day\">日</button><button data-period=\"week\">周</button><button data-period=\"month\">月</button></div>\n<input type=\"date\" value=\"2026-05-28\" />\n<select id=\"roleSelect\"><option value=\"director\">高级主管</option><option value=\"ops\">USER运营</option><option value=\"channel\">渠道运营</option><option value=\"csLead\">客服主管</option><option value=\"cs\">一线客服</option><option value=\"koc\">KOC/KOL运营</option><option value=\"finance\">财务/返款</option><option value=\"risk\">风险/审核</option></select>\n<button class=\"btn\" data-action=\"drawer\" data-kind=\"source\">来源 7</button>\n</div>\n</header>\n<div class=\"content\" id=\"content\"></div>\n</main>\n</div>\n\n<!-- ====== DRAWER ====== -->\n<div class=\"drawer-mask\" id=\"drawerMask\"></div>\n<aside class=\"drawer\" id=\"drawer\">\n<div class=\"drawer-head\"><div><h2 id=\"drawerTitle\">详情</h2><p class=\"panel-note\" id=\"drawerNote\">模拟数据,敏感字段默认脱敏。</p></div><button class=\"btn\" data-action=\"closeDrawer\">关闭</button></div>\n<div class=\"drawer-body\" id=\"drawerBody\"></div>\n<div class=\"drawer-foot\" id=\"drawerFoot\"></div>\n</aside>\n<div class=\"toast\" id=\"toast\"></div>\n\n<script>\n// ===== DATA =====\nconst sourceDocs = [\"00_项目入口分级\",\"01_主流程说明\",\"02_日常操作页面结构\",\"03_功能页面按钮盘点表\",\"04_分支流程_完整需求域\",\"05_异常流程_完整需求域\",\"06_VibeCoding页面验证记录\"];\n\nconst modules = [\n {id:\"overview\",label:\"作战\",icon:\"DB\",title:\"今日作战\",note:\"异常、目标、资源、角色工作流和复盘入口。\",pages:[\"dashboard\",\"role-workflow\"]},\n {id:\"dispatch\",label:\"调度\",icon:\"PL\",title:\"需求与计划调度\",note:\"需求进入、计划生成、资源匹配、计划调整。\",pages:[\"demand-pool\",\"demand-review\",\"plan-builder\",\"exec-match\",\"plan-adjust\"]},\n {id:\"review\",label:\"评价\",icon:\"RV\",title:\"评价计划与订单\",note:\"测评/回评/免评计划、订单履约、评价核验。\",pages:[\"review-plan\",\"reply-plan\",\"free-plan\",\"review-order\",\"reply-order\"]},\n {id:\"csx\",label:\"客服\",icon:\"CS\",title:\"客服执行与管理\",note:\"工单池、聊天、答应配合、出勤、排班、绩效、目标。\",pages:[\"ticket-pool\",\"my-tickets\",\"chat-view\",\"promise-follow\",\"reminder-pool\",\"cs-dashboard\",\"attendance\",\"scheduling\",\"cs-performance\",\"cs-target\"]},\n {id:\"channel\",label:\"渠道\",icon:\"CH\",title:\"渠道运营中心\",note:\"IM推送、卡片/H5、EDM、渠道漏斗。\",pages:[\"im-push\",\"im-card\",\"edm-check\",\"channel-funnel\"]},\n {id:\"koc\",label:\"KOC\",icon:\"KC\",title:\"KOC/KOL协作中心\",note:\"线索池、达人档案、合作任务V1预留。\",pages:[\"koc-leads\",\"koc-profile\",\"koc-task\"]},\n {id:\"people\",label:\"测评人\",icon:\"PP\",title:\"测评人/真实人中心\",note:\"测评人列表、额度台账4/4/12、真实人归并。\",pages:[\"reviewer-list\",\"quota-ledger\",\"identity-merge\"]},\n {id:\"risk\",label:\"风险\",icon:\"RK\",title:\"风险与黑名单\",note:\"风险事件、黑名单、退款比对。\",pages:[\"risk-events\",\"blacklist\",\"refund-compare\"]},\n {id:\"finance\",label:\"财务\",icon:\"FN\",title:\"财务返款中心\",note:\"返款审核、返款记录。\",pages:[\"refund-audit\",\"refund-records\"]},\n {id:\"report\",label:\"复盘\",icon:\"RP\",title:\"数据复盘与验证\",note:\"计划/ASIN/渠道/客服看板、异常总表、按钮矩阵、Vibe验证。\",pages:[\"report-plan\",\"report-asin\",\"report-channel\",\"report-cs\",\"exceptions\",\"action-matrix\",\"validation\"]}\n];\n\n// Page definitions\nconst PD = {};\nfunction def(id, module, title, short, subtitle, owner, source, kind) {\n PD[id] = {module,title,short:short||title,subtitle:subtitle||\"\",owner:owner||\"\",source:source||\"\",kind:kind||\"\"};\n}\ndef(\"dashboard\",\"overview\",\"今日作战台\",\"作战台\",\"所有角色每天打开后的第一屏:先看异常、目标缺口、资源压力和今日必须推进的动作。\",\"高级主管 / USER运营负责人\",\"00/01/02\");\ndef(\"role-workflow\",\"overview\",\"角色每日工作流\",\"角色工作流\",\"明确每个岗位每天该看什么、不该先看什么、必须判断什么、复盘什么。\",\"各岗位负责人\",\"00/02/04\");\ndef(\"demand-pool\",\"dispatch\",\"需求池\",\"需求池\",\"OA/销售/运营/ASIN异常/客服反馈/KOC-KOL需求统一入口。\",\"USER运营\",\"01/02/03/04\",\"workflow\");\ndef(\"demand-review\",\"dispatch\",\"需求评估\",\"需求评估\",\"校验ASIN、产品、库存、评分、目标、优先级。\",\"USER运营\",\"01/02/03\",\"workflow\");\ndef(\"plan-builder\",\"dispatch\",\"计划编排\",\"计划编排\",\"生成测评、回评、免评、客服、KOC/KOL计划。\",\"USER运营\",\"01/02/03\",\"workflow\");\ndef(\"exec-match\",\"dispatch\",\"执行匹配看板\",\"执行匹配\",\"人群、渠道、客服、KOC/KOL、风险、H5/卡片匹配。\",\"USER运营\",\"02/03\",\"workflow\");\ndef(\"plan-adjust\",\"dispatch\",\"计划调整\",\"计划调整\",\"补量、暂停、恢复、转免评、关闭、拆分/合并。\",\"USER运营 / 主管\",\"02/03\",\"workflow\");\ndef(\"review-plan\",\"review\",\"测评计划\",\"测评计划\",\"产品测评需求、计划周期、渠道、目标、进度。\",\"USER运营\",\"02/03\");\ndef(\"reply-plan\",\"review\",\"回评计划\",\"回评计划\",\"掉评/差评/维稳/冲刺等回评需求与每日目标。\",\"USER运营\",\"02/03\");\ndef(\"free-plan\",\"review\",\"免评计划\",\"免评计划\",\"长期测评人/KOC-KOL/补单免评计划。\",\"USER运营 / KOC运营\",\"02/03/04\");\ndef(\"review-order\",\"review\",\"测评订单\",\"测评订单\",\"订单登记、上传回评、请款、返款、状态跟踪。\",\"运营 / 客服\",\"01/03/04\",\"workflow\");\ndef(\"reply-order\",\"review\",\"回评订单\",\"回评订单\",\"回评上传、确认、返款、售后来源、处理记录。\",\"运营 / 审核\",\"01/03/04\",\"workflow\");\ndef(\"ticket-pool\",\"csx\",\"工单池 · 客服执行中心\",\"工单池\",\"用户消息进入系统、工单生成、自动/手动分配。\",\"一线客服 / 客服主管\",\"02/03/04\",\"workflow\");\ndef(\"my-tickets\",\"csx\",\"我的工单\",\"我的工单\",\"当前客服今天处理什么:回复、登记订单、催评、上传结果。\",\"一线客服\",\"02/03/04\",\"workflow\");\ndef(\"chat-view\",\"csx\",\"聊天/消息\",\"聊天消息\",\"用户具体说了什么:快捷回复、补充信息、上下文查看。\",\"一线客服\",\"02/03\");\ndef(\"promise-follow\",\"csx\",\"答应配合\",\"答应配合\",\"用户答应评价/反馈后是否完成:确认、拒绝、提醒、过期。\",\"客服\",\"02/03\");\ndef(\"reminder-pool\",\"csx\",\"催评池\",\"催评池\",\"哪些测评/回评待催:发送提醒、转人工、关闭。\",\"客服 / 运营\",\"02/03\");\ndef(\"cs-dashboard\",\"csx\",\"客服管理中心 · Dashboard\",\"客服Dashboard\",\"在线客服、今日工单、待处理、今日转化、本月目标。\",\"客服主管\",\"02/03\");\ndef(\"attendance\",\"csx\",\"出勤管理\",\"出勤管理\",\"应出勤、实际出勤、出勤率、迟到/请假/缺勤。\",\"客服主管\",\"02/03\");\ndef(\"scheduling\",\"csx\",\"排班管理\",\"排班管理\",\"早班、午班、晚班、渠道、最大工单数设置。\",\"客服主管\",\"02/03\");\ndef(\"cs-performance\",\"csx\",\"转化绩效\",\"转化绩效\",\"RSO/RDO登记订单、获取评价、完成率、满意度。\",\"客服主管\",\"02/03\");\ndef(\"cs-target\",\"csx\",\"目标管理\",\"目标管理\",\"月目标、历史完成、客服个人趋势设置与调整。\",\"客服主管\",\"02/03\");\ndef(\"im-push\",\"channel\",\"IM推送\",\"IM推送\",\"用户分层、卡片、推送任务、回复、转化。\",\"渠道运营\",\"02/03/04\",\"workflow\");\ndef(\"im-card\",\"channel\",\"IM卡片/H5管理\",\"IM卡片/H5\",\"卡片、图片、链接、跳转、产品禁用联动。\",\"渠道运营\",\"02/03\");\ndef(\"edm-check\",\"channel\",\"EDM每日检查\",\"EDM检查\",\"域名/邮箱/IP信誉、UID、H5、AB Test、转化。\",\"EDM运营\",\"02/03/04\",\"workflow\");\ndef(\"channel-funnel\",\"channel\",\"渠道漏斗看板\",\"渠道漏斗\",\"推送、曝光、点击、回复、订单、评价转化漏斗。\",\"渠道负责人\",\"02/03\");\ndef(\"koc-leads\",\"koc\",\"KOC/KOL线索池\",\"KOC线索池\",\"新增线索、来源、标签、风险、分层V1预留/V2实现。\",\"KOC/KOL运营\",\"00/01/04/06\",\"workflow\");\ndef(\"koc-profile\",\"koc\",\"KOC/KOL达人档案\",\"达人档案\",\"国家、品类、内容能力、带货能力、合作状态V1预留。\",\"KOC/KOL运营\",\"00/01/04/06\");\ndef(\"koc-task\",\"koc\",\"KOC/KOL合作任务\",\"合作任务\",\"样品、免评、内容、带货、佣金任务V1预留/V2。\",\"KOC/KOL运营\",\"00/01/04/06\",\"workflow\");\ndef(\"reviewer-list\",\"people\",\"测评人列表\",\"测评人列表\",\"编号、Joyhub、邮箱、电话、Profile、国家、标签V1必做。\",\"USER运营\",\"02/03\");\ndef(\"quota-ledger\",\"people\",\"额度台账\",\"额度台账\",\"月度测评/免评/累计Review、预占/释放V1必做。\",\"运营 / 客服主管 / 风险\",\"02/03\");\ndef(\"identity-merge\",\"people\",\"真实人归并\",\"真实人归并\",\"标准化姓名+地址、设备、邮箱等自动归并V1必做/人工V1预留。\",\"主管 / 风险 / 管理员\",\"02/03\");\ndef(\"risk-events\",\"risk\",\"风险事件\",\"风险事件\",\"所有风险信号与人工复核案件V1必做。\",\"风险/审核\",\"02/03/05\");\ndef(\"blacklist\",\"risk\",\"黑名单\",\"黑名单\",\"生效中/已移除、风险等级、来源、原因。\",\"风险/审核\",\"02/03/05\");\ndef(\"refund-compare\",\"risk\",\"退款比对\",\"退款比对\",\"Amazon退款与OA返款双重比对V1必做。\",\"风险 / 财务\",\"03/05\");\ndef(\"refund-audit\",\"finance\",\"返款审核\",\"返款审核\",\"付款前审核、确认返款、超额审核V1必做。\",\"财务\",\"03/04/05\",\"workflow\");\ndef(\"refund-records\",\"finance\",\"返款记录\",\"返款记录\",\"待请款、待审核、待返款、返款成功、锁定记录。\",\"财务\",\"03/04\");\ndef(\"report-plan\",\"report\",\"计划看板\",\"计划看板\",\"总计划、进行中、完成率、缺口、补量复盘。\",\"业务负责人\",\"01/02\");\ndef(\"report-asin\",\"report\",\"ASIN看板\",\"ASIN看板\",\"评分、Review、差评、掉评、库存、风险ASIN。\",\"业务负责人\",\"02\");\ndef(\"report-channel\",\"report\",\"渠道看板\",\"渠道看板\",\"推送、曝光、点击、回复、转化、退订/投诉。\",\"渠道负责人\",\"02\");\ndef(\"report-cs\",\"report\",\"客服看板\",\"客服看板\",\"工单、响应、解决、满意度、RSO/RDO转化。\",\"客服主管\",\"02\");\ndef(\"exceptions\",\"report\",\"异常流程总表\",\"异常总表\",\"覆盖需求计划、评价订单、客服、渠道、KOC/KOL、返款、风险异常P0-P3。\",\"风险 / 测试\",\"05\");\ndef(\"action-matrix\",\"report\",\"按钮行为矩阵\",\"按钮矩阵\",\"03按钮盘点表全部按钮业务含义、读写对象、状态变化、权限审计。\",\"产品 / 前端观察员\",\"03\");\ndef(\"validation\",\"report\",\"Vibe Coding页面验证记录\",\"验证记录\",\"现有原型只作为需求验证材料,不作为正式开发底座。\",\"产品 / 前端观察员\",\"06\");\n\n// Role definitions\nconst roles = {\n director:{name:\"高级主管\",see:\"OKR、资源压力、P0异常、跨部门阻塞、计划缺口\",avoid:\"不先看单条聊天、单条订单字段和普通P3观察项\",judge:\"是否暂停计划、是否补资源、是否升级跨部门\",review:\"目标缺口、TOP/BOTTOM任务、异常原因沉淀\"},\n ops:{name:\"USER运营\",see:\"需求池、计划生成、执行匹配、今日缺口、待补量\",avoid:\"不把V1边界当需求边界不只看订单页\",judge:\"需求是否可执行、资源是否匹配、是否转免评/客服/KOC\",review:\"计划完成、渠道表现、订单与评价口径\"},\n channel:{name:\"渠道运营\",see:\"IM/EDM/Phone漏斗、人群、频控、卡片/H5、退订投诉\",avoid:\"不绕过真实人额度,不只按单渠道点击率决策\",judge:\"是否降频、换素材、换人群、暂停推送\",review:\"发送、点击、回复、订单、评价、投诉\"},\n csLead:{name:\"客服主管\",see:\"在线、排班、待处理、首次回复、转化目标、投诉\",avoid:\"不先看已关闭低风险工单\",judge:\"是否自动分配、转移、调班、升级投诉\",review:\"RSO/RDO、首次回复、解决率、目标完成率\"},\n cs:{name:\"一线客服\",see:\"我的工单、待回复、待催评、待登记订单、答应配合\",avoid:\"不看全局财务明细和他人敏感资料\",judge:\"回复、补信息、登记订单、催评、升级\",review:\"今日处理数、催评结果、用户承诺完成情况\"},\n koc:{name:\"KOC/KOL运营\",see:\"新线索、标签、合作任务、内容/带货进度、身份冲突\",avoid:\"不把普通测评完成口径当内容任务完成口径\",judge:\"是否匹配达人、是否暂停合作、是否要求重提内容\",review:\"内容链接、Code、订单、佣金争议、风险\"},\n finance:{name:\"财务/返款\",see:\"待请款、待审核、待返款、双重退款、凭证/卡密\",avoid:\"不看未到返款条件的普通工单\",judge:\"是否审核通过、是否阻断重复返款、是否补凭证\",review:\"返款成功率、异常返款、卡密缺失、争议\"},\n risk:{name:\"风险/审核\",see:\"黑名单、强弱关联、退款取消、额度超限、敏感导出\",avoid:\"不只按账号判断不用Profile累计Review替代真实人\",judge:\"弱风险提示、强风险阻断、拉黑/解除\",review:\"风险案件、复检记录、归并冲突、异常关闭\"}\n};\n\n// Workflow data for per-branch pages\nconst WF = {\n \"demand-pool\":{metrics:[[\"待评估需求\",\"8\",\"OA/销售/客服/KOC入口\"],[\"资源匹配不足\",\"5\",\"人群或客服容量缺口\"],[\"今日待转计划\",\"6\",\"测评/回评/免评/客服\"],[\"冲突计划\",\"2\",\"需主管合并或暂停\"]],do:[\"先看P0/P1需求和截止时间\",\"校验ASIN、库存、评分、产品状态\",\"确认需求类型:测评/回评/免评/客服/KOC\",\"检查人群、额度、渠道、客服容量是否能支撑\"],dont:[\"不直接从需求跳到推送\",\"不在未核验产品/库存时生成计划\",\"不把KOC/KOL合作请求当普通测评单处理\"],steps:[\"需求进入\",\"需求评估\",\"产品/ASIN校验\",\"计划生成\",\"执行匹配\",\"渠道/客服/KOC任务\",\"结果回流\"],issues:[\"目标高于可用人群/额度\",\"产品禁用但计划仍执行\",\"计划有名额但渠道无人群\",\"渠道有响应但客服容量不足\",\"完成数口径不一致\"],actions:[\"新增需求\",\"导入OA需求\",\"需求评估\",\"生成计划\",\"匹配人群\",\"预占额度\",\"分配客服\",\"生成推送任务\",\"调整名额\",\"暂停计划\",\"恢复计划\",\"转免评\",\"关闭需求\"],review:[\"需求转计划耗时\",\"计划完成率\",\"资源匹配缺口\",\"客服容量压力\",\"被驳回/需补充原因\"]},\n \"review-order\":{metrics:[[\"待登记订单\",\"45\",\"客服/用户提交\"],[\"待确认评价\",\"67\",\"展示未确认\"],[\"掉评/差评\",\"9\",\"触发回评\"],[\"待请款\",\"89\",\"需财务审核\"]],do:[\"先核验订单号、店铺、ASIN、订单状态\",\"用户提交评价立即计入真实人累计12\",\"Amazon展示确认才计计划完成\",\"更换/更改/撤销必须留日志\"],dont:[\"不把用户提交等同于展示完成\",\"不对已退款/已取消订单继续返款\",\"不把免评结果混进评价型完成数\"],steps:[\"计划分配人群\",\"生成/提交订单\",\"核验订单号\",\"绑定ASIN/店铺/站点\",\"上传评价\",\"展示核验\",\"返款/请款\",\"完成/异常关闭\"],issues:[\"订单号格式错误\",\"非公司产品\",\"店铺下错\",\"订单已取消/退款\",\"评论重复绑定\",\"评论未展示\",\"掉评/差评\"],actions:[\"新建测评计划\",\"编辑计划\",\"查看关联订单\",\"新增订单\",\"上传订单\",\"上传回评\",\"提交排队\",\"请款\",\"更换订单\",\"更改订单\",\"撤销\",\"批量导出\",\"回评确认\"],review:[\"订单完成\",\"评价提交\",\"展示确认\",\"返款成功\",\"掉评率\",\"异常关闭原因\"]},\n \"ticket-pool\":{metrics:[[\"待分配工单\",\"19\",\"含P1 6个\"],[\"首次回复超时\",\"7\",\"需主管处理\"],[\"今日登记订单\",\"43\",\"RSO/RDO\"],[\"答应配合待完成\",\"26\",\"需催评\"]],do:[\"先看未分配和超时工单\",\"客服查看上下文卡后再回复\",\"缺订单/截图/返款信息时创建待补标签\",\"投诉、诈骗、退款异常立即升级\"],dont:[\"不把客服降级成聊天窗口\",\"不绕过订单核验直接请款\",\"不查看无关敏感字段\"],steps:[\"消息进入\",\"生成工单\",\"分配客服\",\"查看上下文卡\",\"回复/补信息\",\"登记订单/催评/上传结果\",\"关闭或升级\"],issues:[\"无客服在线\",\"工单未分配\",\"首次回复超时\",\"客服误登记订单\",\"用户投诉客服\"],actions:[\"自动分配\",\"手动分配\",\"转移工单\",\"回复用户\",\"登记订单\",\"催评\",\"标记解决\",\"关闭工单\",\"重开工单\",\"确认答应\",\"拒绝\",\"标记过期\"],review:[\"处理工单\",\"首次回复\",\"解决率\",\"RSO/RDO转化\",\"投诉\",\"客服目标完成率\"]},\n \"im-push\":{metrics:[[\"可推人群\",\"18,420\",\"按真实人去重\"],[\"长期测评人\",\"1,204\",\"累计提交评价>=12\"],[\"回复率\",\"4.8%\",\"低于目标需换素材\"],[\"额度预警\",\"37\",\"接近4/4/12\"]],do:[\"先按真实人读取person_quota_ledgers\",\"检查黑名单、退款取消、未完成单\",\"确认卡片/H5和产品状态有效\",\"查看今日频控和渠道去重\"],dont:[\"不按Profile累计Review分层\",\"不对累计>=12的真实人推普通测评/回评\",\"不绕过客服容量继续放量\"],steps:[\"人群生成\",\"额度/风险复检\",\"选择卡片/H5\",\"推送\",\"用户响应\",\"核验信息\",\"订单/返款/客服\"],issues:[\"IM点击低\",\"IM回复低于3%\",\"退订或不感兴趣升高\",\"卡片产品禁用未同步\",\"H5链接失效\"],actions:[\"新增推送\",\"上架/下架\",\"批量分配\",\"新增卡片\",\"下架卡片\",\"配置去重规则\"],review:[\"发送\",\"曝光\",\"点击\",\"回复\",\"订单\",\"评价\",\"退订/投诉\"]},\n \"edm-check\":{metrics:[[\"域名健康\",\"2/3\",\"1个预警\"],[\"UID人群\",\"9,880\",\"今日可发\"],[\"打开率\",\"19.4%\",\"模拟数据\"],[\"投诉率\",\"0.42%\",\"接近阈值\"]],do:[\"先看域名、邮箱、IP信誉\",\"核对OA计划变化\",\"检查KV/UID人群数量\",\"确认H5与产品禁用联动\"],dont:[\"不在信誉异常时继续发送\",\"不把EDM点击当评价完成\",\"不忽略菲律宾/国家问题清单\"],steps:[\"基础设施检查\",\"同步OA计划\",\"检查UID人群\",\"检查产品/H5\",\"生成EDM任务\",\"发送与AB Test\",\"转化到订单/客服/风险\"],issues:[\"EDM域名/IP信誉异常\",\"KV/UID人群导出失败\",\"H5链接失效\",\"退订或不感兴趣升高\"],actions:[\"检查基础设施\",\"创建AB Test\",\"生成推送任务\",\"配置去重规则\"],review:[\"送达\",\"打开\",\"点击\",\"回复\",\"退订\",\"投诉\",\"订单转化\"]},\n \"koc-leads\":{metrics:[[\"新线索\",\"21\",\"今日新增\"],[\"合作任务\",\"38\",\"免评/内容/带货\"],[\"内容待审核\",\"12\",\"V2\"],[\"身份冲突\",\"4\",\"需复核\"]],do:[\"先看新线索、任务超时、身份冲突\",\"区分KOC/KOL身份和普通测评人身份\",\"标签、带货、测评、免评不能混\",\"内容任务与订单任务分开完成口径\"],dont:[\"不因为V1不做完整商家平台就删除KOC/KOL需求\",\"不把KOC内容任务混成普通测评订单\"],steps:[\"新增线索\",\"身份/标签/风险检查\",\"自动打标与人工修正\",\"分层\",\"匹配任务\",\"接受/拒绝\",\"样品/内容/带货执行\",\"复盘\"],issues:[\"KOC标签混乱\",\"达人重复触达\",\"内容不合规\",\"带货订单归因失败\",\"高风险KOC继续推送\"],actions:[\"新增线索\",\"打标分层\",\"创建合作任务\",\"分配样品/免评名额\",\"上传内容链接\",\"审核内容\",\"同步订单\",\"计算佣金\",\"暂停合作\"],review:[\"线索\",\"任务\",\"内容\",\"带货\",\"佣金\",\"风险\",\"合作等级\"]},\n \"risk-events\":{metrics:[[\"风险事件\",\"37\",\"待处理\"],[\"强关联命中\",\"8\",\"阻断\"],[\"额度超限\",\"18\",\"真实人维度\"],[\"敏感导出\",\"2\",\"需审批\"]],do:[\"先看P0资金/合规/账号安全\",\"每次有效互动复检身份、额度、风险\",\"强风险阻断,弱风险提示人工\",\"确认风险后同步黑名单\"],dont:[\"不只按账号判断风险\",\"不让黑名单用户继续触达/返款/合作\",\"不导出未脱敏敏感字段\"],steps:[\"风险信号产生\",\"判断弱/强风险\",\"弱风险提醒\",\"强风险阻断\",\"人工复核\",\"解除/确认\",\"黑名单同步/恢复执行\"],issues:[\"黑名单命中\",\"强关联命中\",\"弱关联命中\",\"额度超限\",\"多账号归并冲突\",\"频控超限\",\"敏感字段导出风险\"],actions:[\"创建风险事件\",\"复核通过\",\"排除风险\",\"新增黑名单\",\"标记双重退款\",\"查看审计记录\",\"手动合并\",\"手动拆分\"],review:[\"风险案件\",\"黑名单\",\"退款比对\",\"额度超限\",\"强弱关联\",\"复检记录\"]},\n \"refund-audit\":{metrics:[[\"待审核请款\",\"48\",\"含P0 3\"],[\"双重退款\",\"5\",\"需风险确认\"],[\"卡密缺失\",\"6\",\"V1预留\"],[\"佣金争议\",\"3\",\"V2实现\"]],do:[\"先看待审核和P0资金风险\",\"比对Amazon退款和OA返款\",\"非APP邮件退款补齐识别线索\",\"返款成功后回写订单和工单\"],dont:[\"不审核未满足条件的请款\",\"不跳过双重退款比对\",\"不暴露完整返款账号和卡密\"],steps:[\"返款条件满足\",\"发起请款\",\"财务审核\",\"付款/礼品卡\",\"凭证/卡密通知\",\"状态回写\",\"风险复盘\"],issues:[\"缺返款账号\",\"返款账号格式异常\",\"重复请款\",\"双重退款\",\"非APP用户邮件退款\",\"返款超额\",\"卡密/凭证缺失\"],actions:[\"请款\",\"审核请款\",\"确认返款\",\"标记双重退款\",\"创建风险事件\"],review:[\"待请款\",\"待审核\",\"返款成功\",\"异常返款\",\"双重退款\",\"凭证缺失\"]}\n};\n\n// Exception groups (from 05)\nconst exceptionGroups = [\n [\"需求与执行计划不匹配\",[[\"需求目标高于可用人群/额度\",\"提醒运营降低目标、拆分周期、转免评或补充渠道\",\"V1必做\"],[\"产品禁用但计划仍在执行\",\"自动暂停计划和下架H5/卡片\",\"V1必做\"],[\"库存不足但继续推测评/免评\",\"限制节奏或暂停\",\"V1必做\"],[\"ASIN/店铺/关键词变化未同步\",\"阻断新推送,生成维护任务\",\"V1必做\"],[\"计划有名额但渠道无可推人群\",\"补充人群、换渠道、延长周期\",\"V1必做\"],[\"渠道有响应但客服容量不足\",\"暂停或降频推送,调整排班\",\"V1必做\"],[\"完成数口径不一致\",\"进入口径复核\",\"V1必做\"]]],\n [\"评价/订单异常\",[[\"订单号格式错误\",\"提示重填或转客服\",\"V1必做\"],[\"非公司产品\",\"阻断登记,转客服说明\",\"V1必做\"],[\"店铺下错\",\"人工处理,可转免评\",\"V1必做\"],[\"订单已取消/退款\",\"阻断回评和返款,进入风险\",\"V1必做\"],[\"评论重复绑定\",\"阻断或例外审核\",\"V1必做\"],[\"评论未展示\",\"计划不计完成\",\"V1必做\"],[\"掉评/差评\",\"触发回评/紧急催评/风险\",\"V1必做\"]]],\n [\"返款/佣金异常\",[[\"缺返款账号\",\"客服跟进补齐\",\"V1必做\"],[\"重复请款\",\"阻断并提醒财务\",\"V1必做\"],[\"双重退款\",\"生成风险事件\",\"V1必做\"],[\"非APP用户邮件退款\",\"补充识别线索\",\"V1必做\"],[\"KOC/KOL佣金争议\",\"进入佣金复核\",\"V2实现\"]]],\n [\"客服异常\",[[\"无客服在线\",\"提醒主管,暂停部分推送\",\"V1必做\"],[\"工单未分配\",\"自动分配或主管手动分配\",\"V1必做\"],[\"首次回复超时\",\"提醒客服/主管\",\"V1必做\"],[\"排班不足\",\"调整排班或降频推送\",\"V1必做\"],[\"客服误登记订单\",\"更改订单并留痕\",\"V1必做\"]]],\n [\"渠道异常\",[[\"IM点击低\",\"换素材/卡片/人群\",\"V1必做\"],[\"IM回复低于3%\",\"更换图片/话术\",\"V1必做\"],[\"EDM域名/IP信誉异常\",\"暂停发送、切换账号\",\"V1必做\"],[\"KV/UID人群导出失败\",\"重跑导出\",\"V1必做\"],[\"Phone未接率过高\",\"调整时段/排班/回拨\",\"V1预留\"]]],\n [\"KOC/KOL异常\",[[\"KOC标签混乱\",\"人工复核标签\",\"V1预留\"],[\"KOC/KOL与C类测评人身份重叠\",\"阻断重复触达,进入冲突复核\",\"V1必做\"],[\"达人重复触达\",\"合并或暂停任务\",\"V1预留\"],[\"内容不合规\",\"驳回、下架、降权\",\"V2实现\"],[\"带货订单归因失败\",\"进入人工归因\",\"V2实现\"]]],\n [\"风险异常\",[[\"黑名单命中\",\"阻断触达/返款/合作\",\"V1必做\"],[\"强关联命中\",\"阻断并复核\",\"V1必做\"],[\"额度超限\",\"阻断普通测评,转免评池\",\"V1必做\"],[\"多账号归并冲突\",\"按person_quota_ledgers重新汇总\",\"V1必做\"],[\"敏感字段导出风险\",\"强制脱敏/审批\",\"V1必做\"]]]\n];\n\n// Action matrix rows (from 03)\nconst actionRows = [\n [\"今日作战台\",\"查看异常\",\"进入昨日/今日异常详情\",\"alert、plan、channel_event、ticket、risk_event\",\"-\",\"-\",\"主管、运营\",\"否\",\"V1必做\",\"exceptions\"],\n [\"今日作战台\",\"指派处理人\",\"把异常转成可执行任务\",\"alert、staff、shift\",\"task、notification\",\"异常:待处理 -> 已指派\",\"主管、运营\",\"是\",\"V1必做\",\"exceptions\"],\n [\"今日作战台\",\"升级异常\",\"P0/P1问题升级主管或跨部门\",\"alert、risk_event、ticket\",\"escalation、notification\",\"异常:待处理 -> 已升级\",\"主管、风险\",\"是\",\"V1必做\",\"exceptions\"],\n [\"今日作战台\",\"调整计划\",\"从作战台直接进入计划调整\",\"demand、plan、progress\",\"plan_change_log\",\"计划:进行中 -> 调整中/暂停/补量\",\"主管、运营\",\"是\",\"V1必做\",\"plan-adjust\"],\n [\"今日作战台\",\"创建复盘\",\"对异常或任务形成复盘记录\",\"plan、channel_event、ticket、order\",\"retrospective\",\"异常:已处理 -> 待复盘\",\"主管、运营\",\"是\",\"V1预留\",\"report-plan\"],\n [\"需求池\",\"新增需求\",\"手动录入销售/运营/KOC-KOL需求\",\"product、asin、staff\",\"demand\",\"需求:草稿\",\"运营、主管\",\"是\",\"V1必做\",\"demand-pool\"],\n [\"需求池\",\"导入OA需求\",\"从OA或表格批量导入需求\",\"import_file\",\"demand、import_log\",\"需求:待评估\",\"运营、管理员\",\"是\",\"V1必做\",\"demand-pool\"],\n [\"需求池\",\"需求评估\",\"判断需求是否可执行\",\"demand、product、asin、inventory、risk\",\"demand_review\",\"待评估 -> 已通过/需补充/驳回\",\"运营、主管\",\"是\",\"V1必做\",\"demand-review\"],\n [\"需求池\",\"生成计划\",\"将需求转成测评/回评/免评/KOC-KOL/客服计划\",\"demand、product、audience、quota、risk\",\"plan、plan_log\",\"已通过 -> 已转计划\",\"运营、主管\",\"是\",\"V1必做\",\"plan-builder\"],\n [\"执行匹配\",\"匹配人群\",\"生成候选用户/测评人/KOC-KOL名单\",\"person、reviewer、koc_kol、quota、risk\",\"audience_snapshot、exclusion\",\"匹配:待匹配 -> 完成/不足\",\"运营\",\"是\",\"V1必做\",\"exec-match\"],\n [\"执行匹配\",\"预占额度\",\"锁定测评/免评/Review额度\",\"audience_snapshot、quota_ledger\",\"quota_reservation\",\"额度:可用 -> 预占\",\"运营\",\"是\",\"V1必做\",\"quota-ledger\"],\n [\"执行匹配\",\"分配客服\",\"按容量、语言、工单量分配承接客服\",\"plan、ticket、shift、agent_capacity\",\"task、ticket_assignment\",\"待分配 -> 已分配\",\"主管、客服主管\",\"是\",\"V1必做\",\"ticket-pool\"],\n [\"执行匹配\",\"生成推送任务\",\"从计划生成人群和渠道任务\",\"plan、audience、card、h5、channel_config\",\"push_task、channel_event\",\"待发送\",\"渠道运营\",\"是\",\"V1必做\",\"im-push\"],\n [\"计划调整\",\"调整名额\",\"增减计划数量\",\"plan、progress、resource\",\"plan_change_log\",\"计划目标变化\",\"运营、主管\",\"是\",\"V1必做\",\"plan-adjust\"],\n [\"计划调整\",\"暂停计划\",\"禁止继续执行但保留历史\",\"plan、risk、product\",\"plan_log、notification\",\"进行中 -> 暂停\",\"主管\",\"是\",\"V1必做\",\"plan-adjust\"],\n [\"计划调整\",\"恢复计划\",\"恢复已暂停计划\",\"plan、product、risk\",\"plan_log\",\"暂停 -> 进行中\",\"主管\",\"是\",\"V1必做\",\"plan-adjust\"],\n [\"计划调整\",\"转免评\",\"普通测评/回评因店铺/订单/用户问题转免评\",\"plan、order、reviewer\",\"plan、order_log\",\"测评/回评 -> 免评\",\"运营、主管\",\"是\",\"V1必做\",\"free-plan\"],\n [\"测评订单\",\"新增订单\",\"记录测评执行单\",\"plan、person、product\",\"review_order\",\"待上传回评/待登记\",\"运营、客服\",\"是\",\"V1必做\",\"review-order\"],\n [\"测评订单\",\"上传订单\",\"绑定Amazon订单号\",\"review_order、amazon_order\",\"review_order、audit_log\",\"订单:待登记 -> 已登记\",\"运营、客服\",\"是\",\"V1必做\",\"review-order\"],\n [\"测评订单\",\"上传回评\",\"绑定评论ID/链接/截图\",\"review_order、comment\",\"review_submission\",\"待回评 -> 待确认/已提交\",\"运营、客服\",\"是\",\"V1必做\",\"review-order\"],\n [\"测评订单\",\"请款\",\"发起用户返款\",\"review_order、refund_account\",\"refund_request\",\"待请款 -> 待审核\",\"运营、客服\",\"是\",\"V1必做\",\"refund-audit\"],\n [\"测评订单\",\"撤销\",\"撤销错误/风险订单\",\"review_order、risk\",\"order_log、quota_release\",\"进行中 -> 撤销\",\"风险、主管\",\"是\",\"V1必做\",\"review-order\"],\n [\"工单池\",\"自动分配\",\"按在线、工单量、排班分配客服\",\"ticket、agent、shift\",\"ticket_assignment\",\"待分配 -> 待处理\",\"客服主管\",\"是\",\"V1必做\",\"ticket-pool\"],\n [\"工单池\",\"手动分配\",\"指定处理人\",\"ticket、agent\",\"ticket_assignment\",\"待分配 -> 待处理\",\"客服主管\",\"是\",\"V1必做\",\"ticket-pool\"],\n [\"工单池\",\"转移工单\",\"换客服处理\",\"ticket、agent\",\"ticket_transfer_log\",\"处理人变化\",\"客服、主管\",\"是\",\"V1必做\",\"ticket-pool\"],\n [\"我的工单\",\"回复用户\",\"处理用户消息\",\"ticket、chat、context_snapshot\",\"chat_message、ticket_log\",\"待处理 -> 处理中/等待用户\",\"客服\",\"是\",\"V1必做\",\"my-tickets\"],\n [\"我的工单\",\"登记订单\",\"客服拿到订单号后登记\",\"ticket、amazon_order、person\",\"review_order、ticket_log\",\"工单推进\",\"客服\",\"是\",\"V1必做\",\"my-tickets\"],\n [\"我的工单\",\"催评\",\"提醒用户提交评价\",\"ticket、order、followup\",\"reminder_event、followup\",\"催评次数+1\",\"客服、运营\",\"是\",\"V1必做\",\"reminder-pool\"],\n [\"我的工单\",\"标记解决\",\"用户问题解决\",\"ticket\",\"ticket_log\",\"处理中 -> 已解决\",\"客服\",\"是\",\"V1必做\",\"my-tickets\"],\n [\"我的工单\",\"关闭工单\",\"完成或无需继续\",\"ticket\",\"ticket_log\",\"已解决/等待用户 -> 已关闭\",\"客服、主管\",\"是\",\"V1必做\",\"my-tickets\"],\n [\"答应配合\",\"确认答应\",\"用户答应评价/反馈\",\"ticket、person\",\"support_followup\",\"待确认 -> 已确认\",\"客服\",\"是\",\"V1必做\",\"promise-follow\"],\n [\"排班管理\",\"设置班次\",\"给客服设置早/午/晚班\",\"agent、date\",\"shift_schedule\",\"排班变化\",\"客服主管\",\"是\",\"V1必做\",\"scheduling\"],\n [\"目标管理\",\"设置月目标\",\"设置RSO/RDO登记和上评目标\",\"agent、period\",\"support_target\",\"目标变化\",\"客服主管\",\"是\",\"V1必做\",\"cs-target\"],\n [\"IM推送\",\"新增推送\",\"创建IM触达任务\",\"plan、audience、card\",\"im_push_task\",\"草稿/待发送\",\"渠道运营\",\"是\",\"V1必做\",\"im-push\"],\n [\"IM推送\",\"上架/下架\",\"控制任务是否可执行\",\"im_push_task\",\"channel_log\",\"已上架/已下架\",\"渠道运营\",\"是\",\"V1必做\",\"im-push\"],\n [\"IM卡片\",\"新增卡片\",\"创建卡片素材\",\"product、h5\",\"im_card\",\"已上架/草稿\",\"渠道运营\",\"是\",\"V1必做\",\"im-card\"],\n [\"EDM\",\"检查基础设施\",\"确认域名/邮箱/IP信誉\",\"edm_config、deliverability\",\"daily_check\",\"健康/异常\",\"EDM运营\",\"否\",\"V1必做\",\"edm-check\"],\n [\"风险事件\",\"创建风险事件\",\"人工或系统发现风险\",\"person、order、refund、creator\",\"risk_case\",\"待复核\",\"风险、系统\",\"是\",\"V1必做\",\"risk-events\"],\n [\"风险事件\",\"复核通过\",\"确认风险\",\"risk_case\",\"risk_case、blacklist\",\"复核中 -> 确认风险\",\"风险\",\"是\",\"V1必做\",\"risk-events\"],\n [\"黑名单\",\"新增黑名单\",\"阻断后续触达/返款/合作\",\"person、creator、identity\",\"blacklist_item\",\"生效中\",\"风险\",\"是\",\"V1必做\",\"blacklist\"],\n [\"退款比对\",\"标记双重退款\",\"Amazon退款+OA返款命中\",\"refund_records\",\"risk_signal\",\"疑似/确认双重退款\",\"风险、财务\",\"是\",\"V1必做\",\"refund-compare\"],\n [\"返款\",\"审核请款\",\"付款前审核\",\"refund_request、order、risk\",\"refund_record\",\"待审核 -> 待返款/失败\",\"财务\",\"是\",\"V1必做\",\"refund-audit\"],\n [\"返款\",\"确认返款\",\"完成付款/卡密发送\",\"refund_record\",\"refund_record、notification\",\"待返款 -> 成功\",\"财务\",\"是\",\"V1必做\",\"refund-audit\"]\n].map((r,i)=>({id:`ACT-${String(i+1).padStart(3,\"0\")}`,page:r[0],name:r[1],meaning:r[2],read:r[3],write:r[4],change:r[5],role:r[6],audit:r[7],stage:r[8],route:r[9]}));\n\n// ===== STATE =====\nlet state = {route:\"dashboard\",module:\"overview\",role:\"director\",period:\"day\"};\n\n// ===== HELPERS =====\nconst $ = id => document.getElementById(id);\nconst esc = v => String(v??\"\").replace(/[&<>\"']/g,ch=>({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",\"\\\"\":\"&quot;\",\"'\":\"&#039;\"}[ch]));\nconst S = () => '<span class=\"sim-watermark\">模拟</span>';\nconst stageClass = s => s.includes(\"V2\")?\"v2\":s.includes(\"预留\")?\"reserve\":\"v1\";\nfunction t(tag,c){return `<span class=\"tag tag-${c}\">${tag}</span>`;}\nfunction b(tag,c){return `<span class=\"pill ${c}\">${tag}</span>`;}\nfunction metric(label,value,note){return `<article class=\"panel metric\"><span>${esc(label)}</span><strong>${esc(value)}</strong><p>${esc(note)} ${S()}</p></article>`;}\nfunction infoBox(title,text,tone){return `<div class=\"issue-row\"><span class=\"pill ${tone}\">${esc(title)}</span><strong>${esc(text)}</strong></div>`;}\nfunction flow(items){return `<div class=\"flow\">${items.map(x=>`<span class=\"flow-step\">${esc(x)}</span>`).join(\"\")}</div>`;}\nfunction sourceBar(){return `<div class=\"source-bar\"><strong>需求来源</strong>${sourceDocs.map(d=>`<span class=\"pill gray\">${esc(d)}</span>`).join(\"\")}<span class=\"pill amber\">页面数据均为模拟</span></div>`;}\nfunction pageHeader(p,actions=\"\"){return `<div class=\"page-head\"><div>${sourceBar()}<div class=\"spacer\"></div><h1 class=\"page-title\">${esc(p.title)}</h1><p class=\"page-desc\">${esc(p.subtitle)}</p></div><div class=\"head-actions\">${actions}<button class=\"btn\" data-action=\"drawer\" data-kind=\"source\">查看来源</button><button class=\"btn primary\" data-route=\"action-matrix\">按钮矩阵</button></div></div>`;}\n\nfunction statCards(stats){return `<div class=\"stats-row\">${stats.map(s=>`<div class=\"stat-card ${s.s||'info'}\"><div class=\"stat-num\">${s.n}</div><div class=\"stat-label\">${s.l} ${S()}</div></div>`).join(\"\")}</div>`;}\n\n// ===== INIT =====\nfunction init(){\n renderShell();\n const hash = location.hash.replace(\"#\",\"\");\n setRoute(PD[hash]?hash:\"dashboard\",false);\n bindEvents();\n}\n\nfunction renderShell(){\n $(\"moduleRail\").innerHTML = modules.map(m=>`\n <button class=\"rail-btn\" data-module=\"${m.id}\" title=\"${esc(m.title)}\"><span class=\"rail-icon\">${esc(m.icon)}</span><span class=\"rail-label\">${esc(m.label)}</span></button>\n `).join(\"\");\n $(\"roleSelect\").value = state.role;\n}\n\nfunction renderPageNav(moduleId){\n const m = modules.find(x=>x.id===moduleId);\n $(\"moduleTitle\").textContent = m.title;\n $(\"moduleNote\").textContent = m.note;\n $(\"pageNav\").innerHTML = m.pages.map(id=>{\n const p = PD[id];\n return `<button class=\"page-btn${id===state.route?' active':''}\" data-route=\"${id}\"><span>${esc(p.short)}</span><small>${esc(p.source)}</small></button>`;\n }).join(\"\");\n document.querySelectorAll(\".rail-btn\").forEach(b=>b.classList.toggle(\"active\",b.dataset.module===moduleId));\n}\n\nfunction setRoute(route,push=true){\n if(!PD[route]) route=\"dashboard\";\n state.route = route;\n state.module = PD[route].module;\n renderPageNav(state.module);\n renderContent();\n $(\"topPageTitle\").textContent = PD[route].title;\n $(\"topPageSubtitle\").textContent = `${PD[route].owner} · 来源 ${PD[route].source} · ${state.period===\"day\"?\"日视图\":state.period===\"week\"?\"周视图\":\"月视图\"}`;\n if(push) location.hash = route;\n window.scrollTo({top:0,behavior:\"smooth\"});\n}\n\n// ===== CONTENT RENDERER =====\nfunction renderContent(){\n const r = state.route;\n if(r===\"dashboard\") return renderDashboard();\n if(r===\"role-workflow\") return renderRoleWorkflow();\n if(r===\"action-matrix\") return renderActionMatrix();\n if(r===\"exceptions\") return renderExceptions();\n if(r===\"validation\") return renderValidation();\n // Workflow pages with do/don't/flow/issues\n if(WF[r]) return renderWorkflowPage(r);\n // Regular data pages\n return renderDataPage(r);\n}\n\nfunction renderDashboard(){\n const role = roles[state.role];\n $(\"content\").innerHTML = `\n ${pageHeader(PD.dashboard,`<button class=\"btn primary\" data-route=\"demand-pool\">进入需求调度</button>`)}\n <section class=\"grid cols-4\">\n ${metric(\"P0/P1异常\",\"37\",\"直接影响今日目标、资金、合规或账号安全\")}\n ${metric(\"今日必跟进\",\"84\",\"需求、计划、催评、返款、内容审核\")}\n ${metric(\"资源压力\",\"5类\",\"人群、额度、客服、KOC/KOL、返款队列\")}\n ${metric(\"待复盘\",\"7\",\"昨日TOP/BOTTOM和异常原因\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>当前角色:${esc(role.name)}</h2><p>切换右上角角色后,本卡片会更新每日工作重点。</p></div><span class=\"pill blue\">角色视图</span></div>\n <div class=\"panel-body grid cols-2\">\n ${infoBox(\"每天先看\",role.see,\"green\")}\n ${infoBox(\"今天不该先看\",role.avoid,\"amber\")}\n ${infoBox(\"必须判断\",role.judge,\"blue\")}\n ${infoBox(\"复盘数据\",role.review,\"purple\")}\n </div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>主业务闭环</h2><p>需求不是从推送开始,必须从需求进入走到复盘闭环。</p></div><button class=\"btn small\" data-route=\"demand-pool\">去调度</button></div>\n <div class=\"panel-body\">${flow([\"需求进入\",\"需求评估\",\"产品校验\",\"计划生成\",\"执行匹配\",\"渠道/客服/KOC任务\",\"用户/达人响应\",\"履约\",\"风险复检\",\"结果回流\",\"复盘\"])}</div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>P0/P1异常</h2></div><span class=\"pill red\">需当天处理</span></div>\n <div class=\"panel-body\">\n <div class=\"alert-row p0\"><span style=\"font-weight:700;\">P0</span> 产品 B0XXXXXX 库存低于安全线3个测评计划受影响 <button class=\"btn small\" data-route=\"plan-adjust\">处理</button></div>\n <div class=\"alert-row p0\"><span style=\"font-weight:700;\">P0</span> EDM域名信誉异常暂停发送 <button class=\"btn small\" data-route=\"edm-check\">查看</button></div>\n <div class=\"alert-row p1\"><span style=\"font-weight:700;\">P1</span> 客服工单超时未分配 3 件 <button class=\"btn small\" data-route=\"ticket-pool\">分配</button></div>\n <div class=\"alert-row p1\"><span style=\"font-weight:700;\">P1</span> 测评计划 #RP-0528-003 完成率仅32% <button class=\"btn small\" data-route=\"plan-adjust\">调整</button></div>\n <div class=\"alert-row p2\"><span style=\"font-weight:700;\">P2</span> IM回复率降至2.8%低于3%阈值 <button class=\"btn small\" data-route=\"channel-funnel\">分析</button></div>\n </div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>今日必须处理</h2><p>点击操作可跳转对应页面。</p></div><span class=\"pill red\">模拟</span></div>\n <div class=\"panel-body grid\">\n <div class=\"task-row\"><div><strong>REQ-0528-001 · 测评 · 待评估</strong><span>B0USER001 / US · USER运营A · 评分低于4.5</span></div><div><span class=\"pill amber\">P1</span> <button class=\"btn small\" data-route=\"demand-review\">进入</button></div></div>\n <div class=\"task-row\"><div><strong>PLAN-0528-006 · 免评 · 执行中</strong><span>B0USER019 / DE · KOC运营B · 身份冲突</span></div><div><span class=\"pill red\">P0</span> <button class=\"btn small\" data-route=\"free-plan\">进入</button></div></div>\n <div class=\"task-row\"><div><strong>CS-0528-033 · 客服 · 首次回复超时</strong><span>B0USER011 / JP · 客服主管 · 待转移工单</span></div><div><span class=\"pill amber\">P1</span> <button class=\"btn small\" data-route=\"ticket-pool\">进入</button></div></div>\n <div class=\"task-row\"><div><strong>RISK-0528-009 · 风险 · 强关联命中</strong><span>真实人 P-8842 · 风险审核 · 多账号归并额度达到12</span></div><div><span class=\"pill red\">P0</span> <button class=\"btn small\" data-route=\"risk-events\">进入</button></div></div>\n </div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>主看板确认项</h2><p>交付前确认页面是否照顾每日工作流。</p></div><span class=\"pill green\">已覆盖</span></div>\n <div class=\"panel-body\">\n <ul class=\"list\">\n <li><strong>主看板</strong><span>P0/P1异常、今日任务、目标进度、资源压力、复盘入口都在首屏。</span></li>\n <li><strong>分支看板</strong><span>IM、EDM、Phone、客服、评价订单、免评、财务、KOC/KOL、风险均有独立页面。</span></li>\n <li><strong>按钮跳转</strong><span>03按钮盘点表已进入按钮行为矩阵每个动作均可点击。</span></li>\n <li><strong>口径提醒</strong><span>真实人、4/4/12、提交即计12、展示才计完成、免评独立结果口径均显式展示。</span></li>\n <li><strong>模拟数据</strong><span>所有数据均标注为模拟,只用于本地点击和需求验证。</span></li>\n </ul>\n </div>\n </section>`;\n}\n\nfunction renderRoleWorkflow(){\n $(\"content\").innerHTML = `\n ${pageHeader(PD[\"role-workflow\"])}\n <section class=\"role-grid\">\n ${Object.entries(roles).map(([id,r])=>`\n <button class=\"role-card ${state.role===id?\"active\":\"\"}\" data-role-card=\"${id}\"><strong>${esc(r.name)}</strong><span>先看:${esc(r.see)}</span><span>不先看:${esc(r.avoid)}</span></button>\n `).join(\"\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>角色工作流要求</h2><p>用于确认工作人员每天进入系统时的优先级。</p></div><span class=\"pill blue\">Stage 1</span></div>\n <div class=\"panel-body table-wrap\">\n <table><thead><tr><th>角色</th><th>每天先看</th><th>今天不该先看</th><th>必须判断</th><th>复盘数据</th><th>入口</th></tr></thead>\n <tbody>${Object.entries(roles).map(([id,r])=>`<tr><td><strong>${esc(r.name)}</strong></td><td>${esc(r.see)}</td><td>${esc(r.avoid)}</td><td>${esc(r.judge)}</td><td>${esc(r.review)}</td><td><button class=\"btn small\" data-route=\"${id===\"cs\"?\"ticket-pool\":id===\"koc\"?\"koc-leads\":id===\"finance\"?\"refund-audit\":id===\"risk\"?\"risk-events\":id===\"channel\"?\"im-push\":\"dashboard\"}\">进入</button></td></tr>`).join(\"\")}</tbody></table>\n </div>\n </section>`;\n}\n\nfunction renderWorkflowPage(route){\n const p = PD[route];\n const data = WF[route] || WF[\"demand-pool\"];\n $(\"content\").innerHTML = `\n ${pageHeader(p,`<button class=\"btn primary\" data-route=\"exceptions\">看异常</button>`)}\n <section class=\"grid cols-4\">${data.metrics.map(m=>metric(m[0],m[1],m[2])).join(\"\")}</section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>工作人员每天该看什么</h2><p>先看会影响今日目标或阻断流程的项。</p></div><span class=\"pill green\">先看</span></div>\n <div class=\"panel-body\"><ul class=\"list\">${data.do.map(x=>`<li><strong>${esc(x)}</strong><span>模拟检查项,可点击右侧动作继续。</span></li>`).join(\"\")}</ul></div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>今天不该先看什么</h2><p>避免低价值页面占用操作时间或制造错误口径。</p></div><span class=\"pill amber\">不要先看</span></div>\n <div class=\"panel-body\"><ul class=\"list\">${data.dont.map(x=>`<li><strong>${esc(x)}</strong><span>必要时由异常、工单或复盘入口进入。</span></li>`).join(\"\")}</ul></div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>流程点击路径</h2><p>按业务顺序模拟从入口到关闭或复盘。</p></div><button class=\"btn small\" data-action=\"drawer\" data-kind=\"flow\" data-route-key=\"${route}\">查看写入对象</button></div>\n <div class=\"panel-body\">${flow(data.steps)}</div>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>流程问题点</h2><p>来自05异常流程点击处理会打开演示抽屉。</p></div><span class=\"pill red\">异常</span></div>\n <div class=\"panel-body grid\">${data.issues.map(x=>`<div class=\"issue-row\"><strong>${esc(x)}</strong><span>处理状态:待处理 -> 处理中 -> 待复核 -> 已关闭</span><button class=\"btn small\" data-action=\"drawer\" data-kind=\"issue\" data-title=\"${esc(x)}\" data-route-target=\"exceptions\">处理演示</button></div>`).join(\"\")}</div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>可执行按钮</h2><p>按钮来自03盘点表可跳转或执行演示。</p></div><span class=\"pill blue\">${data.actions.length} 项</span></div>\n <div class=\"panel-body\" style=\"display:flex;flex-wrap:wrap;gap:8px\">${data.actions.map(name=>{\n const a = actionRows.find(x=>x.name===name);\n return a?`<button class=\"btn small\" data-action-id=\"${a.id}\">${esc(name)}</button>`:`<button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"${esc(name)}\">${esc(name)}</button>`;\n }).join(\"\")}</div>\n </article>\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>将来复盘数据</h2><p>用于下一轮计划、资源、渠道和人员调度。</p></div><button class=\"btn small\" data-route=\"report-plan\">进入复盘</button></div>\n <div class=\"panel-body\">${data.review.map(x=>`<span class=\"pill gray\" style=\"margin:0 6px 8px 0\">${esc(x)}</span>`).join(\"\")}</div>\n </section>`;\n}\n\nfunction renderActionMatrix(){\n $(\"content\").innerHTML = `\n ${pageHeader(PD[\"action-matrix\"],`<button class=\"btn primary\" data-route=\"dashboard\">返回主看板</button>`)}\n <section class=\"grid cols-4\">\n ${metric(\"按钮动作\",actionRows.length,\"全部可点击\")}\n ${metric(\"V1必做\",actionRows.filter(a=>a.stage.includes(\"V1必做\")).length,\"第一版关键动作\")}\n ${metric(\"V1预留\",actionRows.filter(a=>a.stage.includes(\"预留\")).length,\"保留入口/字段/状态\")}\n ${metric(\"V2实现\",actionRows.filter(a=>a.stage.includes(\"V2\")).length,\"后续完整能力\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"panel\">\n <div class=\"panel-head\"><div><h2>03 功能页面按钮盘点表</h2><p>每行提供执行演示和页面跳转。点击后会打开抽屉或跳转,不存在死按钮。</p></div><span class=\"pill amber\">模拟写入</span></div>\n <div class=\"panel-body table-wrap\">\n <table><thead><tr><th>ID</th><th>页面</th><th>按钮/动作</th><th>业务含义</th><th>读/写对象</th><th>状态变化</th><th>权限</th><th>阶段</th><th>操作</th></tr></thead>\n <tbody>${actionRows.map(a=>`<tr><td>${a.id}</td><td>${esc(a.page)}</td><td><strong>${esc(a.name)}</strong></td><td>${esc(a.meaning)}</td><td><span class=\"pill gray\">读</span> ${esc(a.read)}<br><span class=\"pill gray\">写</span> ${esc(a.write)}</td><td>${esc(a.change)}</td><td>${esc(a.role)}<br>审计:${esc(a.audit)}</td><td><span class=\"stage ${stageClass(a.stage)}\">${esc(a.stage)}</span></td><td class=\"actions-cell\"><button class=\"btn small\" data-action-id=\"${a.id}\">执行演示</button><button class=\"btn small\" data-route=\"${a.route}\">跳转页面</button></td></tr>`).join(\"\")}</tbody></table>\n </div>\n </section>`;\n}\n\nfunction renderExceptions(){\n $(\"content\").innerHTML = `\n ${pageHeader(PD.exceptions,`<button class=\"btn primary\" data-route=\"dashboard\">返回作战台</button>`)}\n <section class=\"grid cols-4\">\n ${metric(\"P0\",\"9\",\"当天处理,主管可见\")}\n ${metric(\"P1\",\"18\",\"24小时内处理\")}\n ${metric(\"P2\",\"31\",\"责任人跟进\")}\n ${metric(\"P3\",\"12\",\"观察项\")}\n </section>\n <div class=\"spacer\"></div>\n <section class=\"grid\">\n ${exceptionGroups.map(g=>`\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>${esc(g[0])}</h2><p>发现方式、处理动作、关闭条件后续进入测试用例。</p></div><span class=\"pill red\">${g[1].length}</span></div>\n <div class=\"panel-body table-wrap\">\n <table><thead><tr><th>异常</th><th>处理</th><th>阶段</th><th>操作</th></tr></thead>\n <tbody>${g[1].map(row=>`<tr><td><strong>${esc(row[0])}</strong></td><td>${esc(row[1])}</td><td><span class=\"stage ${stageClass(row[2])}\">${esc(row[2])}</span></td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"issue\" data-title=\"${esc(row[0])}\" data-route-target=\"exceptions\">处理演示</button></td></tr>`).join(\"\")}</tbody></table>\n </div>\n </article>\n `).join(\"\")}\n </section>`;\n}\n\nfunction renderValidation(){\n $(\"content\").innerHTML = `\n ${pageHeader(PD.validation)}\n <section class=\"grid cols-2\">\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>已参考原型</h2><p>原型是需求验证材料,不是生产底座。</p></div><span class=\"pill blue\">06</span></div>\n <div class=\"panel-body\"><ul class=\"list\">\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\user-review-system</strong><span>React/Vite原型参考菜单、路由、订单、客服、渠道、风险页面。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\src\\\\user_erp_mvp_admin_prototype_v10.html</strong><span>参考左侧模块栏、顶部角色/周期、抽屉/弹窗后台布局。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\客服执行.html</strong><span>参考客服执行、分配、排班、绩效、目标管理。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\amazon_operator_test_entry.html</strong><span>参考提评入口、IM账号、推送策略。</span></li>\n <li><strong>C:\\\\XCODE\\\\USER\\\\input\\\\IM 推送业务流.mm</strong><span>参考IM分层和流程已修正为真实人口径。</span></li>\n </ul></div>\n </article>\n <article class=\"panel\">\n <div class=\"panel-head\"><div><h2>本原型补强方向</h2><p>覆盖现有原型缺口。</p></div><span class=\"pill green\">已补</span></div>\n <div class=\"panel-body\"><ul class=\"list\">\n <li><strong>需求与计划调度</strong><span>从需求池到计划、资源、人群、客服、渠道、KOC/KOL任务。</span></li>\n <li><strong>客服核心需求</strong><span>客服执行和客服管理均有页面、动作、异常与复盘指标。</span></li>\n <li><strong>KOC/KOL完整需求域</strong><span>线索、分层、任务、内容、带货、佣金、风险均进入页面。</span></li>\n <li><strong>免评独立闭环</strong><span>免评不再和评价提交混为同一终点。</span></li>\n <li><strong>按钮矩阵</strong><span>03中动作全部以可点击入口呈现。</span></li>\n </ul></div>\n </article>\n </section>`;\n}\n\n// ===== DATA PAGES (simple data tables) =====\nfunction renderDataPage(route){\n const p = PD[route];\n let html = pageHeader(p) + '<div class=\"spacer\"></div>';\n switch(route){\n\ncase \"demand-pool\":\n html += statCards([{n:\"8\",l:\"待评估\",s:\"warn\"},{n:\"3\",l:\"需补充\",s:\"info\"},{n:\"15\",l:\"已转计划\",s:\"good\"},{n:\"2\",l:\"已驳回\",s:\"danger\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>需求列表</h2><div style=\"display:flex;gap:8px\"><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"新增需求\">+ 新增需求</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"导入OA需求\">📥 导入OA</button></div></div><div class=\"panel-body table-wrap\">\n <table><tr><th>需求编号</th><th>来源</th><th>类型</th><th>产品/ASIN</th><th>站点</th><th>优先级</th><th>状态</th><th>操作</th></tr>\n <tr><td>D-0528-001</td><td>OA系统</td><td>${t(\"测评\",\"blue\")}</td><td>B0XXXXXX01</td><td>US</td><td>${t(\"S\",\"red\")}</td><td>${t(\"待评估\",\"amber\")}</td><td><button class=\"btn small\" data-route=\"demand-review\">评估</button><button class=\"btn small\" data-route=\"plan-builder\">转计划</button></td></tr>\n <tr><td>D-0528-002</td><td>销售提报</td><td>${t(\"回评\",\"amber\")}</td><td>B0XXXXXX02</td><td>UK</td><td>${t(\"A\",\"amber\")}</td><td>${t(\"待评估\",\"amber\")}</td><td><button class=\"btn small\" data-route=\"demand-review\">评估</button></td></tr>\n <tr><td>D-0528-003</td><td>ASIN异常</td><td>${t(\"紧急催评\",\"red\")}</td><td>B0XXXXXX03</td><td>US</td><td>${t(\"S\",\"red\")}</td><td>${t(\"需补充\",\"amber\")}</td><td><button class=\"btn small\" data-route=\"demand-review\">补充信息</button></td></tr>\n <tr><td>D-0527-005</td><td>运营手动</td><td>${t(\"免评\",\"purple\")}</td><td>B0XXXXXX04</td><td>DE</td><td>${t(\"B\",\"blue\")}</td><td>${t(\"已通过\",\"green\")}</td><td><button class=\"btn small\" data-route=\"plan-builder\">生成计划</button></td></tr></table></div></div>`;\n break;\n\ncase \"demand-review\":\n html += `<div class=\"grid cols-2\">\n <div class=\"panel\"><div class=\"panel-head\"><h2>需求信息 · D-0528-001</h2></div><div class=\"panel-body\"><table>\n <tr><th style=\"width:120px\">需求编号</th><td>D-0528-001</td></tr><tr><th>来源</th><td>OA系统</td></tr><tr><th>类型</th><td>测评</td></tr><tr><th>产品/ASIN</th><td>B0XXXXXX01 · 智能玩具</td></tr><tr><th>站点/店铺</th><td>US · 主店铺</td></tr><tr><th>目标</th><td>Review +30评分目标 4.3+</td></tr><tr><th>优先级</th><td>${t(\"S\",\"red\")}</td></tr><tr><th>截止</th><td>2026-06-10</td></tr></table></div></div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>产品/ASIN校验</h2></div><div class=\"panel-body\"><table>\n <tr><th>校验项</th><th>结果</th></tr><tr><td>产品启用</td><td>${t(\"正常\",\"green\")}</td></tr><tr><td>ASIN有效性</td><td>${t(\"正确\",\"green\")}</td></tr><tr><td>库存</td><td>${t(\"紧张(200)\",\"amber\")}</td></tr><tr><td>评分</td><td>4.1 (86 Review)</td></tr><tr><td>近7天掉评</td><td>${t(\"2条\",\"amber\")}</td></tr><tr><td>H5/卡片</td><td>${t(\"缺H5\",\"amber\")}</td></tr></table></div></div></div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>评估决策</h2></div><div class=\"panel-body\" style=\"display:flex;gap:10px\">\n <button class=\"btn primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"评估通过\">✅ 评估通过,生成计划</button>\n <button class=\"btn\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"退回补充\">↩ 退回补充</button>\n <button class=\"btn\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"暂缓\">⏸ 暂缓</button>\n <button class=\"btn danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"驳回\">✕ 驳回</button></div></div>`;\n break;\n\ncase \"plan-builder\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>从需求生成计划</h2><span class=\"pill v1\">V1必做</span></div><div class=\"panel-body\">\n <div class=\"form-row\"><div class=\"form-group\"><label>关联需求</label><select><option>D-0528-001 · 测评 · B0XXXXXX01</option></select></div>\n <div class=\"form-group\"><label>计划类型</label><select><option>测评计划</option><option>回评计划</option><option>免评计划</option></select></div></div>\n <div class=\"form-row\"><div class=\"form-group\"><label>目标数量</label><input type=\"number\" value=\"30\"/></div>\n <div class=\"form-group\"><label>周期</label><input type=\"date\" value=\"2026-05-28\"/> ~ <input type=\"date\" value=\"2026-06-10\"/></div></div>\n <div style=\"margin-top:12px;display:flex;gap:10px\"><button class=\"btn primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"计划已生成\">生成计划</button><button class=\"btn\" data-route=\"exec-match\">进入执行匹配 →</button></div></div></div>`;\n break;\n\ncase \"exec-match\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>资源匹配状态</h2><span class=\"pill v1\">V1必做</span></div><div class=\"panel-body\">\n <div class=\"grid cols-3\">\n <div class=\"stat-card info\"><div class=\"stat-num\">1,280</div><div class=\"stat-label\">候选人群 ${S()}</div><button class=\"btn small primary\" style=\"margin-top:8px\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"匹配人群\">匹配人群</button></div>\n <div class=\"stat-card warn\"><div class=\"stat-num\">30</div><div class=\"stat-label\">预占额度 / 月 ${S()}</div><button class=\"btn small\" style=\"margin-top:8px\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"预占额度\">预占额度</button></div>\n <div class=\"stat-card info\"><div class=\"stat-num\">5</div><div class=\"stat-label\">可用客服 ${S()}</div><button class=\"btn small\" style=\"margin-top:8px\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"分配客服\">分配客服</button></div></div>\n <div style=\"margin-top:16px;display:flex;gap:10px\">\n <button class=\"btn primary\" data-route=\"im-push\">生成IM推送任务 →</button>\n <button class=\"btn\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"释放预占\">释放预占</button>\n <button class=\"btn\" data-route=\"koc-task\" style=\"color:var(--purple)\">匹配KOC/KOL <span class=\"sim-watermark\">V1预留</span></button></div></div></div>`;\n break;\n\ncase \"plan-adjust\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>计划调整操作</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>计划编号</th><th>类型</th><th>进度</th><th>异常</th><th>操作</th></tr>\n <tr><td>RP-0528-003</td><td>${t(\"测评\",\"blue\")}</td><td><div class=\"progress-bar\"><div class=\"progress-fill red\" style=\"width:32%\"></div></div><small>9.6/30</small></td><td>${t(\"缺口大\",\"red\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"调整名额\">调整名额</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"补量\">补量</button><button class=\"btn small danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"暂停计划\">暂停</button></td></tr>\n <tr><td>RP-0528-005</td><td>${t(\"回评\",\"amber\")}</td><td><div class=\"progress-bar\"><div class=\"progress-fill green\" style=\"width:80%\"></div></div><small>12/15</small></td><td>产品禁用</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"恢复计划\">恢复</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"转免评\">转免评</button></td></tr></table></div></div>`;\n break;\n\n// === 评价计划与订单 ===\ncase \"review-plan\":\n html += statCards([{n:\"12\",l:\"进行中\",s:\"info\"},{n:\"3\",l:\"暂停\",s:\"warn\"},{n:\"28\",l:\"已完成(月)\",s:\"good\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>测评计划列表</h2><button class=\"btn primary small\" data-route=\"plan-builder\">+ 新建</button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>计划编号</th><th>产品/ASIN</th><th>目标</th><th>进度</th><th>评分</th><th>操作</th></tr>\n <tr><td>RP-0528-003</td><td>B0XXXXXX01 / US</td><td>30</td><td><div class=\"progress-bar\"><div class=\"progress-fill red\" style=\"width:32%\"></div></div><small>9.6/30</small></td><td>4.1</td><td><button class=\"btn small\" data-route=\"review-order\">订单</button><button class=\"btn small\" data-route=\"im-push\">推送</button><button class=\"btn small\" data-route=\"plan-adjust\">调整</button></td></tr>\n <tr><td>RP-0528-006</td><td>B0XXXXXX05 / UK</td><td>20</td><td><div class=\"progress-bar\"><div class=\"progress-fill green\" style=\"width:60%\"></div></div><small>12/20</small></td><td>4.3</td><td><button class=\"btn small\" data-route=\"review-order\">订单</button></td></tr></table></div></div>`;\n break;\n\ncase \"reply-plan\":\n html += statCards([{n:\"5\",l:\"进行中\",s:\"info\"},{n:\"2\",l:\"紧急(掉评)\",\"s\":\"danger\"},{n:\"18\",l:\"已完成(月)\",s:\"good\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>回评计划</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>计划编号</th><th>ASIN</th><th>触发原因</th><th>今日目标</th><th>已完成</th><th>操作</th></tr>\n <tr><td>RP-0528-007</td><td>B0XXXXXX03</td><td>${t(\"掉评\",\"red\")}</td><td>10</td><td>4</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"调整今日目标\">调整目标</button><button class=\"btn small\" data-route=\"reply-order\">查看订单</button></td></tr></table></div></div>`;\n break;\n\ncase \"free-plan\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>免评计划</h2><span class=\"pill v1\">V1必做</span></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>计划编号</th><th>目标人群</th><th>目标</th><th>进度</th><th>渠道</th><th>操作</th></tr>\n <tr><td>FP-0528-001</td><td>长期测评人(额度>=12)</td><td>20</td><td><div class=\"progress-bar\"><div class=\"progress-fill green\" style=\"width:25%\"></div></div><small>5/20</small></td><td>IM+APP</td><td><button class=\"btn small\" data-route=\"exec-match\">匹配资源</button><button class=\"btn small\" data-route=\"koc-task\">关联KOC</button></td></tr>\n <tr><td>FP-0528-002</td><td>KOC/KOL达人</td><td>15</td><td><div class=\"progress-bar\"><div class=\"progress-fill blue\" style=\"width:13%\"></div></div><small>2/15</small></td><td>KOC协作</td><td><button class=\"btn small\" data-route=\"koc-task\">管理KOC任务</button></td></tr></table></div>\n <div style=\"font-size:12px;color:var(--muted);margin-top:8px\">⚠ 免评执行不以\"用户提交评价\"为终点。结果写入 exemption_plan_tasks、creator_content_records。</div></div>`;\n break;\n\ncase \"review-order\":\n html += statCards([{n:\"45\",l:\"待登记\",s:\"warn\"},{n:\"128\",l:\"已登记\",s:\"info\"},{n:\"67\",l:\"待回评\",s:\"warn\"},{n:\"89\",l:\"待返款\",s:\"warn\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>测评订单</h2><div style=\"display:flex;gap:8px\"><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"新增订单\">+ 新增订单</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"批量导出\">📤 批量导出</button></div></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>订单编号</th><th>用户</th><th>Amazon订单</th><th>评价状态</th><th>返款状态</th><th>操作</th></tr>\n <tr><td>RO-0528-001</td><td>JH000123</td><td>112-XXXXXXX-XXXXX</td><td>${t(\"已提交\",\"blue\")}</td><td>${t(\"待请款\",\"amber\")}</td><td><button class=\"btn small primary\" data-route=\"refund-audit\">请款</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"上传回评\">上传回评</button></td></tr>\n <tr><td>RO-0528-002</td><td>JH000456</td><td>-</td><td>${t(\"待提交\",\"gray\")}</td><td>-</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"上传订单\">上传订单</button><button class=\"btn small danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"撤销\">撤销</button></td></tr></table></div></div>`;\n break;\n\ncase \"reply-order\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>回评订单</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>订单编号</th><th>用户</th><th>评论状态</th><th>展示核验</th><th>操作</th></tr>\n <tr><td>RRO-0528-001</td><td>JH000321</td><td>${t(\"已提交\",\"blue\")}</td><td>${t(\"待核验\",\"amber\")}</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"回评确认\">确认展示</button></td></tr>\n <tr><td>RRO-0528-002</td><td>JH000654</td><td>${t(\"已展示\",\"green\")}</td><td>${t(\"已确认\",\"green\")}</td><td><button class=\"btn small\" data-route=\"refund-audit\">请款</button></td></tr></table></div></div>`;\n break;\n\n// === 客服执行 ===\ncase \"ticket-pool\":\n html += statCards([{n:\"89\",l:\"待处理\",s:\"warn\"},{n:\"3\",l:\"超时未分配\",s:\"danger\"},{n:\"12\",l:\"在线客服\",s:\"good\"},{n:\"4.2min\",l:\"平均首次回复\",s:\"good\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>工单池</h2><div style=\"display:flex;gap:8px\"><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"自动分配\">🔄 自动分配</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"手动分配\">👤 手动分配</button></div></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>工单号</th><th>用户</th><th>渠道</th><th>问题类型</th><th>状态</th><th>等待</th><th>操作</th></tr>\n <tr><td>TK-0528-089</td><td>JH000111</td><td>${t(\"IM\",\"blue\")}</td><td>订单登记</td><td>${t(\"待分配\",\"red\")}</td><td>12min</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"分配工单\">分配</button></td></tr>\n <tr><td>TK-0528-088</td><td>JH000222</td><td>${t(\"EDM\",\"purple\")}</td><td>返款账号补全</td><td>${t(\"处理中\",\"blue\")}</td><td>5min</td><td><button class=\"btn small\" data-route=\"my-tickets\">查看</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"转移工单\">转移</button></td></tr></table></div></div>`;\n break;\n\ncase \"my-tickets\":\n html += `<div class=\"grid cols-2\">\n <div class=\"panel\"><div class=\"panel-head\"><h2>TK-0528-088 · JH000222</h2><span class=\"pill amber\">待处理</span></div><div class=\"panel-body\">\n <div style=\"background:var(--panel2);padding:12px;border-radius:6px;margin-bottom:12px\">\n <div class=\"chat-bubble user\">你好,我的返款怎么还没到?</div>\n <div class=\"chat-bubble agent\">您好!请提供您的返款账号信息,我帮您查询。</div>\n <div class=\"chat-bubble user\">我的PayPal是 test@email.com</div></div>\n <div style=\"display:flex;gap:8px;flex-wrap:wrap\">\n <button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"回复已发送\">📨 回复</button>\n <button class=\"btn small\" data-route=\"review-order\">📋 登记订单</button>\n <button class=\"btn small\" data-route=\"refund-audit\">💰 发起请款</button>\n <button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"标记解决\">✓ 标记解决</button>\n <button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"升级\">⬆ 升级</button></div></div></div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>用户上下文卡 · JH000222</h2></div><div class=\"panel-body\"><table>\n <tr><th style=\"width:100px\">JOYHUB ID</th><td>JH000222</td></tr><tr><th>额度</th><td>测评 2/4 · 免评 0/4 · 累计 5/12</td></tr><tr><th>关联订单</th><td>RO-0528-001 (待返款)</td></tr><tr><th>风险</th><td>${t(\"正常\",\"green\")}</td></tr><tr><th>标签</th><td>${t(\"参与过\",\"blue\")} ${t(\"待返款\",\"amber\")}</td></tr></table></div></div></div>`;\n break;\n\ncase \"chat-view\":\n html += `<div class=\"grid cols-2\"><div class=\"panel\"><div class=\"panel-head\"><h2>用户消息列表</h2></div><div class=\"panel-body\" style=\"max-height:400px;overflow-y:auto\">\n <div style=\"padding:8px;border-bottom:1px solid var(--line);background:var(--blue-s)\"><strong>JH000222</strong> <small style=\"color:var(--muted)\">10:30</small><br><small>我的返款怎么还没到?</small></div>\n <div style=\"padding:8px;border-bottom:1px solid var(--line)\"><strong>JH000444</strong> <small style=\"color:var(--muted)\">09:15</small><br><small>我已经下单了</small></div></div></div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>当前对话 · JH000222</h2></div><div class=\"panel-body\">\n <div style=\"background:var(--panel2);padding:12px;border-radius:6px;min-height:200px\">\n <div class=\"chat-bubble user\">你好,我的返款怎么还没到?</div>\n <div class=\"chat-bubble agent\">您好!请提供返款账号信息。</div></div>\n <div style=\"display:flex;gap:8px;margin-top:8px\"><input placeholder=\"输入消息...\" style=\"flex:1;padding:7px;border:1px solid var(--line);border-radius:5px\"/><button class=\"btn primary small\">发送</button></div></div></div></div>`;\n break;\n\ncase \"promise-follow\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>答应配合跟踪</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>用户</th><th>答应时间</th><th>承诺内容</th><th>截止</th><th>状态</th><th>操作</th></tr>\n <tr><td>JH000555</td><td>05-27</td><td>提交评价截图</td><td>05-29</td><td>${t(\"已确认\",\"blue\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"提醒\">提醒</button><button class=\"btn small danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"标记过期\">过期</button></td></tr>\n <tr><td>JH000777</td><td>05-28</td><td>提供返款账号</td><td>05-30</td><td>${t(\"待确认\",\"amber\")}</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"确认答应\">确认</button><button class=\"btn small danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"拒绝\">拒绝</button></td></tr></table></div></div>`;\n break;\n\ncase \"reminder-pool\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>待催评列表</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>订单编号</th><th>用户</th><th>产品</th><th>登记日期</th><th>已催次数</th><th>操作</th></tr>\n <tr><td>RO-0520-045</td><td>JH000888</td><td>B0XXXXXX01</td><td>05-20</td><td>2</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"发送催评\">催评</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"转人工\">转人工</button></td></tr></table></div></div>`;\n break;\n\n// === 客服管理 ===\ncase \"cs-dashboard\":\n html += statCards([{n:\"12\",l:\"在线客服\",s:\"good\"},{n:\"89\",l:\"今日工单\",s:\"info\"},{n:\"23\",l:\"待处理\",s:\"warn\"},{n:\"67%\",l:\"今日转化率\",s:\"warn\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>客服实时状态</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>客服</th><th>班次</th><th>当前工单</th><th>今日解决</th><th>首次回复</th><th>状态</th></tr>\n <tr><td>张三</td><td>早班(US)</td><td>3</td><td>5</td><td>3.5min</td><td>${t(\"在线\",\"green\")}</td></tr>\n <tr><td>李四</td><td>午班(US)</td><td>5</td><td>8</td><td>4.8min</td><td>${t(\"在线\",\"green\")}</td></tr></table></div></div>`;\n break;\n\ncase \"attendance\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>出勤管理 · 2026-05-28</h2><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"导入出勤\">📥 导入出勤 <span class=\"sim-watermark\">V1预留</span></button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>客服</th><th>应出勤</th><th>实际</th><th>状态</th><th>操作</th></tr>\n <tr><td>张三</td><td>08:00-16:00</td><td>✅</td><td>${t(\"正常\",\"green\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"调整出勤\">调整</button></td></tr>\n <tr><td>赵六</td><td>16:00-24:00</td><td>❌</td><td>${t(\"请假\",\"gray\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"调整出勤\">调整</button></td></tr></table></div></div>`;\n break;\n\ncase \"scheduling\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>本周排班</h2><div style=\"display:flex;gap:8px\"><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"设置班次\">+ 设置班次</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"批量排班\">批量排班</button></div></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>客服</th><th>周一</th><th>周二</th><th>周三</th><th>周四</th><th>周五</th></tr>\n <tr><td>张三</td><td>早班</td><td>早班</td><td>休息</td><td>早班</td><td>早班</td></tr>\n <tr><td>李四</td><td>午班</td><td>午班</td><td>午班</td><td>午班</td><td>休息</td></tr></table></div></div>`;\n break;\n\ncase \"cs-performance\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>转化绩效 · 2026-05</h2><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"导出绩效\">📤 导出</button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>客服</th><th>RSO登记</th><th>RDO上评</th><th>完成率</th><th>满意度</th><th>首次回复</th><th>月目标进度</th></tr>\n <tr><td>张三</td><td>42</td><td>28</td><td>67%</td><td>91%</td><td>3.5min</td><td><div class=\"progress-bar\"><div class=\"progress-fill green\" style=\"width:84%\"></div></div><small>84%</small></td></tr>\n <tr><td>李四</td><td>38</td><td>22</td><td>58%</td><td>87%</td><td>4.8min</td><td><div class=\"progress-bar\"><div class=\"progress-fill amber\" style=\"width:78%\"></div></div><small>78%</small></td></tr></table></div></div>`;\n break;\n\ncase \"cs-target\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>月度目标设置</h2><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"设置月目标\">设置月目标</button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>客服</th><th>月份</th><th>RSO目标</th><th>RSO实际</th><th>RDO目标</th><th>RDO实际</th><th>完成率</th></tr>\n <tr><td>张三</td><td>2026-05</td><td>50</td><td>42</td><td>35</td><td>28</td><td>${t(\"84%\",\"blue\")}</td></tr></table></div></div>`;\n break;\n\n// === 渠道 ===\ncase \"im-push\":\n html += statCards([{n:\"12,450\",l:\"今日推送\",s:\"info\"},{n:\"398\",l:\"回复\",s:\"good\"},{n:\"3.2%\",l:\"回复率\",s:\"warn\"},{n:\"45\",l:\"退订\",s:\"warn\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>IM推送任务</h2><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"新增推送\">+ 新增推送</button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>任务编号</th><th>人群数</th><th>卡片</th><th>已发送</th><th>回复率</th><th>状态</th><th>操作</th></tr>\n <tr><td>IM-0528-001</td><td>1,280</td><td>卡片_B0XXXXXX01_v2</td><td>890</td><td>3.1%</td><td>${t(\"发送中\",\"blue\")}</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"上架/下架\">下架</button><button class=\"btn small\" data-route=\"channel-funnel\">漏斗</button></td></tr></table></div></div>`;\n break;\n\ncase \"im-card\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>IM卡片/H5管理</h2><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"新增卡片\">+ 新增卡片</button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>卡片编号</th><th>关联产品</th><th>类型</th><th>状态</th><th>操作</th></tr>\n <tr><td>CARD-001</td><td>B0XXXXXX01</td><td>${t(\"测评\",\"blue\")}</td><td>${t(\"已上架\",\"green\")}</td><td><button class=\"btn small danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"下架卡片\">下架</button></td></tr>\n <tr><td>CARD-002</td><td>B0XXXXXX03</td><td>${t(\"回评\",\"amber\")}</td><td>${t(\"已下架\",\"gray\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"重新上架\">重新上架</button></td></tr></table></div></div>`;\n break;\n\ncase \"edm-check\":\n html += `<div class=\"alert-row p0\" style=\"margin-bottom:12px\"><span style=\"font-weight:700\">P0</span> EDM域名信誉异常已暂停发送 | 域名mail.joyhub.example.com</div>`;\n html += statCards([{n:\"异常\",l:\"域名信誉\",s:\"danger\"},{n:\"正常\",l:\"邮箱状态\",s:\"good\"},{n:\"2,340\",l:\"今日发送\",s:\"info\"},{n:\"0.8%\",l:\"退订率\",s:\"good\"}]);\n html += `<div class=\"grid cols-2\"><div class=\"panel\"><div class=\"panel-head\"><h2>基础设施检查</h2></div><div class=\"panel-body\"><table>\n <tr><th>检查项</th><th>状态</th></tr><tr><td>域名信誉</td><td>${t(\"异常\",\"red\")}</td></tr><tr><td>邮箱状态</td><td>${t(\"正常\",\"green\")}</td></tr><tr><td>IP信誉</td><td>${t(\"正常\",\"green\")}</td></tr><tr><td>UID人群</td><td>${t(\"正常\",\"green\")} 12,450人</td></tr></table></div></div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>今日EDM任务</h2></div><div class=\"panel-body\"><table>\n <tr><th>任务</th><th>发送</th><th>打开率</th><th>点击率</th><th>退订率</th></tr><tr><td>EDM-0528-A</td><td>2,340</td><td>18.2%</td><td>3.5%</td><td>0.8%</td></tr></table></div></div></div>`;\n break;\n\ncase \"channel-funnel\":\n html += `<div class=\"grid cols-2\">\n <div class=\"panel\"><div class=\"panel-head\"><h2>IM漏斗</h2></div><div class=\"panel-body\">\n ${funnelRow(\"推送\",\"12,450\",\"100%\",\"blue\")}${funnelRow(\"曝光\",\"8,960\",\"72%\",\"blue\")}${funnelRow(\"点击\",\"1,245\",\"10%\",\"blue\")}${funnelRow(\"回复\",\"398\",\"3.2%\",\"red\")}${funnelRow(\"订单\",\"128\",\"1.0%\",\"green\")}${funnelRow(\"评价\",\"45\",\"0.36%\",\"green\")}</div></div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>EDM漏斗</h2></div><div class=\"panel-body\">\n ${funnelRow(\"发送\",\"2,340\",\"100%\",\"purple\")}${funnelRow(\"打开\",\"426\",\"18.2%\",\"purple\")}${funnelRow(\"点击\",\"82\",\"3.5%\",\"purple\")}${funnelRow(\"退订\",\"19\",\"0.8%\",\"amber\")}</div></div></div>`;\n break;\n\n// === KOC/KOL ===\ncase \"koc-leads\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>KOC/KOL线索池</h2><span class=\"pill purple v2\">V1预留 · V2实现</span></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>线索ID</th><th>来源</th><th>名称</th><th>国家</th><th>分层</th><th>风险</th><th>操作</th></tr>\n <tr><td>KOC-001</td><td>JOYHUB</td><td>@beauty_expert</td><td>US</td><td>${t(\"垂直专家\",\"purple\")}</td><td>${t(\"正常\",\"green\")}</td><td><button class=\"btn small\" data-route=\"koc-profile\">建档</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"打标分层\">分层</button></td></tr></table></div></div>`;\n break;\n\ncase \"koc-profile\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>达人档案 · @beauty_expert</h2><span class=\"pill purple v2\">V1预留</span></div><div class=\"panel-body grid cols-2\">\n <div><table><tr><th>KOC ID</th><td>KOC-001</td></tr><tr><th>国家</th><td>US</td></tr><tr><th>品类</th><td>美妆</td></tr><tr><th>粉丝</th><td>45K</td></tr><tr><th>分层</th><td>${t(\"垂直专家\",\"purple\")}</td></tr></table></div>\n <div><table><tr><th>合作状态</th><td>${t(\"可合作\",\"green\")}</td></tr><tr><th>内容能力</th><td>图文+短视频</td></tr><tr><th>带货能力</th><td>中等 · 2.1%</td></tr><tr><th>关联测评人</th><td>JH000420 (同一真实人)</td></tr></table></div></div>\n <div style=\"font-size:12px;color:var(--amber);margin-top:8px\">⚠ KOC/KOL身份与测评人身份可能重叠需区分业务对象和任务完成口径。</div></div>`;\n break;\n\ncase \"koc-task\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>合作任务</h2><span class=\"pill purple v2\">V1预留 · 免评补单V1必做</span></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>任务ID</th><th>达人</th><th>类型</th><th>产品</th><th>状态</th><th>操作</th></tr>\n <tr><td>KT-0528-001</td><td>@beauty_expert</td><td>${t(\"免评补单\",\"purple\")}</td><td>B0XXXXXX04</td><td>${t(\"待执行\",\"blue\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"上传内容链接\">上传内容 <span class=\"sim-watermark\">V2</span></button></td></tr></table></div></div>`;\n break;\n\n// === 测评人/真实人 ===\ncase \"reviewer-list\":\n html += statCards([{n:\"8,450\",l:\"总测评人\",s:\"info\"},{n:\"4,230\",l:\"可用(额度未满)\",s:\"good\"},{n:\"1,280\",l:\"US站可用\",s:\"info\"},{n:\"156\",l:\"黑名单\",s:\"danger\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>测评人列表</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>编号</th><th>JOYHUB ID</th><th>国家</th><th>月度测评</th><th>累计评价</th><th>风险</th><th>操作</th></tr>\n <tr><td>REV-0001</td><td>JH000123</td><td>US</td><td>2/4</td><td>5/12</td><td>${t(\"正常\",\"green\")}</td><td><button class=\"btn small\" data-route=\"quota-ledger\">额度</button></td></tr>\n <tr><td>REV-0002</td><td>JH000456</td><td>UK</td><td>4/4</td><td>11/12</td><td>${t(\"正常\",\"green\")}</td><td><button class=\"btn small\" data-route=\"quota-ledger\">额度</button></td></tr></table></div></div>`;\n break;\n\ncase \"quota-ledger\":\n html += `<div class=\"grid cols-3\">\n <div class=\"stat-card good\"><div class=\"stat-num\">2/4</div><div class=\"stat-label\">月度测评额度 ${S()}</div></div>\n <div class=\"stat-card info\"><div class=\"stat-num\">0/4</div><div class=\"stat-label\">月度免评额度 ${S()}</div></div>\n <div class=\"stat-card warn\"><div class=\"stat-num\">5/12</div><div class=\"stat-label\">累计评价提交 ${S()}</div></div></div>\n <div style=\"font-size:12px;color:var(--muted);margin:8px 0\">规则同一真实人月度测评≤4、免评≤4、累计提交评价≤12。计数时点=用户真实提交评价时。</div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>额度明细 · REV-0001</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>日期</th><th>类型</th><th>订单</th><th>操作</th><th>额度变化</th><th>剩余</th></tr>\n <tr><td>05-28</td><td>测评</td><td>RO-0528-001</td><td>预占</td><td>2→3/4</td><td>1/4</td></tr>\n <tr><td>05-20</td><td>测评</td><td>RO-0520-015</td><td>提交评价</td><td>累计 4→5/12</td><td>7/12</td></tr></table></div></div>`;\n break;\n\ncase \"identity-merge\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>真实人归并</h2><span class=\"pill v1\">V1必做(自动归并)</span></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>真实人ID</th><th>JOYHUB ID</th><th>邮箱</th><th>归并置信度</th><th>额度汇总</th><th>操作</th></tr>\n <tr><td>PERSON-0001</td><td>JH000123, JH000420</td><td>same@email.com</td><td>${t(\"高 95%\",\"green\")}</td><td>测评3/4 累计6/12</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"手动合并\">合并 <span class=\"sim-watermark\">预留</span></button><button class=\"btn small danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"手动拆分\">拆分 <span class=\"sim-watermark\">预留</span></button></td></tr></table></div></div>`;\n break;\n\n// === 风险 ===\ncase \"risk-events\":\n html += statCards([{n:\"7\",l:\"待复核\",s:\"warn\"},{n:\"3\",l:\"P0事件\",s:\"danger\"},{n:\"15\",l:\"今日拦截\",s:\"good\"},{n:\"2\",l:\"新增黑名单\",s:\"info\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>风险事件</h2><button class=\"btn primary small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"创建风险事件\">+ 创建</button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>事件ID</th><th>等级</th><th>类型</th><th>关联对象</th><th>状态</th><th>操作</th></tr>\n <tr><td>RS-0528-001</td><td>${t(\"P0\",\"red\")}</td><td>双重退款</td><td>RO-0528-001</td><td>${t(\"待复核\",\"red\")}</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"复核通过\">确认</button><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"排除风险\">排除</button></td></tr>\n <tr><td>RS-0528-002</td><td>${t(\"P1\",\"amber\")}</td><td>额度超限</td><td>JH000789</td><td>${t(\"复核中\",\"amber\")}</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"复核通过\">确认</button></td></tr></table></div></div>`;\n break;\n\ncase \"blacklist\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>黑名单</h2><button class=\"btn danger small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"新增黑名单\">+ 新增黑名单</button></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>条目ID</th><th>对象</th><th>类型</th><th>风险等级</th><th>来源</th><th>状态</th></tr>\n <tr><td>BL-001</td><td>JH000999</td><td>测评人</td><td>${t(\"强风险\",\"red\")}</td><td>双重退款</td><td>${t(\"生效中\",\"red\")}</td></tr></table></div></div>`;\n break;\n\ncase \"refund-compare\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>Amazon退款 vs OA返款双重比对</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>比对ID</th><th>Amazon订单</th><th>Amazon退款</th><th>OA返款</th><th>重合</th><th>操作</th></tr>\n <tr><td>CMP-0528-001</td><td>112-XXXXXXX</td><td>$29.99 (05-27)</td><td>¥210 (05-28)</td><td>${t(\"确认\",\"red\")}</td><td><button class=\"btn small danger\" data-route=\"risk-events\">生成风险事件</button></td></tr>\n <tr><td>CMP-0528-002</td><td>113-XXXXXXX</td><td>$19.99 (05-26)</td><td>¥140 (05-28)</td><td>${t(\"疑似\",\"amber\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"标记\">标记</button></td></tr></table></div></div>`;\n break;\n\n// === 财务 ===\ncase \"refund-audit\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>待审核请款</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>请款编号</th><th>关联订单</th><th>用户</th><th>金额</th><th>方式</th><th>风险</th><th>操作</th></tr>\n <tr><td>RF-0528-042</td><td>RO-0528-001</td><td>JH000123</td><td>¥210</td><td>PayPal</td><td>${t(\"正常\",\"green\")}</td><td><button class=\"btn small primary\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"审核通过\">✓ 通过</button><button class=\"btn small danger\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"审核拒绝\">✕ 拒绝</button></td></tr>\n <tr><td>RF-0528-043</td><td>RO-0528-003</td><td>JH000789</td><td>¥350</td><td>礼品卡</td><td>${t(\"超额\",\"amber\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"超额审核\">超额审核</button></td></tr></table></div></div>\n <div class=\"panel\"><div class=\"panel-head\"><h2>待返款队列</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>返款编号</th><th>用户</th><th>金额</th><th>方式</th><th>状态</th><th>操作</th></tr>\n <tr><td>RF-0527-038</td><td>JH000321</td><td>¥180</td><td>PayPal</td><td>${t(\"待返款\",\"amber\")}</td><td><button class=\"btn small\" data-action=\"drawer\" data-kind=\"generic\" data-title=\"确认返款\">确认返款</button></td></tr></table></div></div>`;\n break;\n\ncase \"refund-records\":\n html += statCards([{n:\"42\",l:\"待审核\",s:\"warn\"},{n:\"156\",l:\"待返款\",s:\"info\"},{n:\"¥156,200\",l:\"本月已返款\",s:\"good\"},{n:\"3\",l:\"异常锁定\",s:\"danger\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>返款记录</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>返款编号</th><th>订单</th><th>用户</th><th>金额</th><th>方式</th><th>状态</th></tr>\n <tr><td>RF-0527-035</td><td>RO-0527-020</td><td>JH000111</td><td>¥195</td><td>PayPal</td><td>${t(\"成功\",\"green\")}</td></tr>\n <tr><td>RF-0527-037</td><td>RO-0527-022</td><td>JH000333</td><td>¥280</td><td>PayPal</td><td>${t(\"锁定\",\"red\")}</td></tr></table></div></div>`;\n break;\n\n// === 复盘看板 ===\ncase \"report-plan\":\n html += statCards([{n:\"48\",l:\"总计划(月)\",s:\"info\"},{n:\"15\",l:\"进行中\",s:\"info\"},{n:\"28\",l:\"已完成\",s:\"good\"},{n:\"83%\",l:\"完成率\",s:\"good\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>计划完成趋势</h2></div><div class=\"panel-body\" style=\"text-align:center;padding:40px;color:var(--muted)\">[ 计划完成趋势图 - Stage 2 实现 ]<br><small>横轴:日期 | 纵轴:完成数 | 折线:测评/回评/免评</small></div></div>`;\n break;\n\ncase \"report-asin\":\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>ASIN健康度</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>ASIN</th><th>当前评分</th><th>Review数</th><th>近7天掉评</th><th>近7天差评</th><th>库存</th><th>风险</th></tr>\n <tr><td>B0XXXXXX01</td><td>4.1</td><td>86</td><td>${t(\"2\",\"amber\")}</td><td>1</td><td>200</td><td>${t(\"低\",\"green\")}</td></tr>\n <tr><td>B0XXXXXX03</td><td>3.8</td><td>45</td><td>${t(\"5\",\"red\")}</td><td>${t(\"3\",\"red\")}</td><td>充足</td><td>${t(\"高\",\"red\")}</td></tr></table></div></div>`;\n break;\n\ncase \"report-channel\":\n html += `<div class=\"grid cols-3\">\n <div class=\"stat-card info\"><div class=\"stat-num\">12,450</div><div class=\"stat-label\">IM日推送量 ${S()}</div></div>\n <div class=\"stat-card info\"><div class=\"stat-num\">2,340</div><div class=\"stat-label\">EDM日发送量 ${S()}</div></div>\n <div class=\"stat-card warn\"><div class=\"stat-num\">3.2%</div><div class=\"stat-label\">IM回复率 ${S()}</div></div>\n <div class=\"stat-card good\"><div class=\"stat-num\">0.8%</div><div class=\"stat-label\">EDM退订率 ${S()}</div></div>\n <div class=\"stat-card info\"><div class=\"stat-num\">1.0%</div><div class=\"stat-label\">IM→订单转化 ${S()}</div></div>\n <div class=\"stat-card good\"><div class=\"stat-num\">0.36%</div><div class=\"stat-label\">IM→评价转化 ${S()}</div></div></div>`;\n break;\n\ncase \"report-cs\":\n html += statCards([{n:\"1,560\",l:\"本月工单\",s:\"info\"},{n:\"92%\",l:\"解决率\",s:\"good\"},{n:\"4.2min\",l:\"平均首次回复\",s:\"good\"},{n:\"88%\",l:\"满意度\",s:\"good\"}]);\n html += `<div class=\"panel\"><div class=\"panel-head\"><h2>客服月度表现</h2></div><div class=\"panel-body table-wrap\"><table>\n <tr><th>客服</th><th>工单</th><th>解决率</th><th>满意度</th><th>RSO</th><th>RDO</th></tr>\n <tr><td>张三</td><td>156</td><td>94%</td><td>91%</td><td>42</td><td>28</td></tr>\n <tr><td>李四</td><td>142</td><td>89%</td><td>87%</td><td>38</td><td>22</td></tr></table></div></div>`;\n break;\n\ndefault: html += '<div class=\"panel\"><div class=\"panel-body\"><p>页面建设中...</p></div></div>';\n }\n $(\"content\").innerHTML = html;\n}\n\nfunction funnelRow(label,num,pct,tone){\n return `<div style=\"margin:10px 0\"><div style=\"display:flex;justify-content:space-between;font-size:12px\"><span>${esc(label)}</span><span>${esc(num)} (${esc(pct)})</span></div><div class=\"progress-bar\"><div class=\"progress-fill ${tone}\" style=\"width:${pct.replace('%','')}%\"></div></div></div>`;\n}\n\n// ===== DRAWER =====\nfunction openDrawer(kind,payload={}){\n const drawer=$(\"drawer\"),mask=$(\"drawerMask\"),title=$(\"drawerTitle\"),note=$(\"drawerNote\"),body=$(\"drawerBody\"),foot=$(\"drawerFoot\");\n let route=payload.route||payload.routeTarget||state.route;\n if(kind===\"source\"){\n title.textContent=\"来源与模拟说明\";\n note.textContent=\"本HTML为本地点击参考原型所有业务数据均为模拟。\";\n body.innerHTML=`<ul class=\"list\">${sourceDocs.map(d=>`<li><strong>${esc(d)}</strong><span>已作为页面结构、按钮、分支、异常、复盘或验证依据。</span></li>`).join(\"\")}</ul>`;\n foot.innerHTML=`<button class=\"btn primary\" data-route=\"validation\">查看验证记录</button>`;\n }else if(kind===\"action\"){\n const a=actionRows.find(x=>x.id===payload.id);\n route=a.route;\n title.textContent=`${a.id} · ${a.name}`;\n note.textContent=`${a.page} · ${a.stage} · 审计:${a.audit}`;\n body.innerHTML=`${infoBox(\"业务含义\",a.meaning,\"blue\")}${infoBox(\"读取对象\",a.read,\"gray\")}${infoBox(\"写入对象\",a.write,\"gray\")}${infoBox(\"状态变化\",a.change,\"green\")}${infoBox(\"权限\",a.role,\"amber\")}<div class=\"source-bar\"><strong>演示结果</strong><span>已模拟生成操作日志、通知、状态变化和复盘引用。</span><span class=\"pill amber\">未写入真实系统</span></div>`;\n foot.innerHTML=`<button class=\"btn\" data-route=\"action-matrix\">返回矩阵</button><button class=\"btn primary\" data-route=\"${a.route}\">跳转到相关页面</button>`;\n }else if(kind===\"flow\"){\n const data=WF[payload.routeKey]||WF[\"demand-pool\"];\n title.textContent=\"流程写入对象\";\n note.textContent=\"模拟展示流程节点与后续Stage 2对象设计的关系。\";\n body.innerHTML=`${flow(data.steps)}<ul class=\"list\">${data.steps.map((s,i)=>`<li><strong>${esc(s)}</strong><span>模拟写入:状态日志、负责人、时间戳、复检结果、复盘引用 #${i+1}</span></li>`).join(\"\")}</ul>`;\n foot.innerHTML=`<button class=\"btn primary\" data-route=\"${payload.routeKey}\">返回当前页</button>`;\n }else{\n title.textContent=payload.title||\"处理演示\";\n note.textContent=\"模拟从发现到关闭的异常状态流。\";\n body.innerHTML=`${flow([\"待发现\",\"已发现\",\"待处理\",\"处理中\",\"待复核\",\"已关闭\"])}${infoBox(\"处理要求\",\"当天能影响目标、资金、合规或账号安全的异常按P0/P1进入主管视图。\",\"red\")}${infoBox(\"关闭条件\",\"必须有处理结论、责任人、操作日志、是否回流计划/客服/风险/复盘。\",\"green\")}`;\n foot.innerHTML=`<button class=\"btn\" data-route=\"exceptions\">查看异常总表</button><button class=\"btn primary\" data-route=\"${route}\">跳转相关页面</button>`;\n }\n drawer.classList.add(\"open\");mask.classList.add(\"open\");\n}\n\nfunction closeDrawer(){$(\"drawer\").classList.remove(\"open\");$(\"drawerMask\").classList.remove(\"open\");}\n\nfunction toast(text){\n const el=$(\"toast\");el.textContent=text;el.classList.add(\"open\");\n clearTimeout(window.__toastTimer);window.__toastTimer=setTimeout(()=>el.classList.remove(\"open\"),1800);\n}\n\n// ===== EVENTS =====\nfunction bindEvents(){\n document.body.addEventListener(\"click\",event=>{\n const moduleBtn=event.target.closest(\"[data-module]\");\n if(moduleBtn){const m=modules.find(x=>x.id===moduleBtn.dataset.module);if(m)setRoute(m.pages[0]);return;}\n const routeBtn=event.target.closest(\"[data-route]\");\n if(routeBtn){closeDrawer();setRoute(routeBtn.dataset.route);return;}\n const actionBtn=event.target.closest(\"[data-action-id]\");\n if(actionBtn){openDrawer(\"action\",{id:actionBtn.dataset.actionId});return;}\n const action=event.target.closest(\"[data-action]\");\n if(action){if(action.dataset.action===\"closeDrawer\")closeDrawer();if(action.dataset.action===\"drawer\")openDrawer(action.dataset.kind,action.dataset);return;}\n const roleCard=event.target.closest(\"[data-role-card]\");\n if(roleCard){state.role=roleCard.dataset.roleCard;$(\"roleSelect\").value=state.role;renderContent();toast(`已切换到:${roles[state.role].name}`);}\n });\n $(\"drawerMask\").addEventListener(\"click\",closeDrawer);\n $(\"roleSelect\").addEventListener(\"change\",event=>{\n state.role=event.target.value;\n if(state.route===\"dashboard\"||state.route===\"role-workflow\")renderContent();\n $(\"topPageSubtitle\").textContent=`${PD[state.route].owner} · 当前角色 ${roles[state.role].name}`;\n toast(`角色视图:${roles[state.role].name}`);\n });\n $(\"period\").addEventListener(\"click\",event=>{\n const btn=event.target.closest(\"button[data-period]\");if(!btn)return;\n state.period=btn.dataset.period;\n $(\"period\").querySelectorAll(\"button\").forEach(b=>b.classList.toggle(\"active\",b===btn));\n setRoute(state.route,false);toast(`已切换为${btn.textContent}视图`);\n });\n $(\"globalSearch\").addEventListener(\"keydown\",event=>{\n if(event.key!==\"Enter\")return;\n openDrawer(\"generic\",{title:`搜索:${event.target.value||\"空关键词\"}`,routeTarget:\"demand-pool\"});\n });\n window.addEventListener(\"hashchange\",()=>{\n const route=location.hash.replace(\"#\",\"\");\n if(route&&route!==state.route&&PD[route])setRoute(route,false);\n });\n}\n\ninit();\n</script>\n<div style=\"position:fixed;bottom:12px;right:16px;font-size:11px;color:var(--muted);z-index:300;background:var(--panel);padding:4px 10px;border-radius:4px;border:1px solid var(--line);\">\n ⚠ 本原型所有数据均为模拟数据,仅用于 Stage 1 需求验证 · v2\n</div>\n</body>\n</html>",
"wikilinks": [],
"category": "layer-requirements"
}
}
],
"edges": [
{
"source": "flow:layer-overview",
"target": "flow:layer-requirements",
"type": "documents",
"direction": "forward",
"description": "知识库主流程",
"weight": 1
},
{
"source": "flow:layer-requirements",
"target": "flow:layer-milestones",
"type": "documents",
"direction": "forward",
"description": "知识库主流程",
"weight": 1
},
{
"source": "flow:layer-milestones",
"target": "flow:layer-technical",
"type": "documents",
"direction": "forward",
"description": "知识库主流程",
"weight": 1
},
{
"source": "flow:layer-technical",
"target": "flow:layer-testing",
"type": "documents",
"direction": "forward",
"description": "知识库主流程",
"weight": 1
},
{
"source": "flow:layer-testing",
"target": "flow:layer-agent",
"type": "documents",
"direction": "forward",
"description": "知识库主流程",
"weight": 1
},
{
"source": "flow:layer-overview",
"target": "doc:00_首页/Agent问答入口",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-overview",
"target": "doc:00_首页/知识地图",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-overview",
"target": "doc:00_首页/知识库首页",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-overview",
"target": "doc:欢迎",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-overview",
"target": "doc:知识库使用说明",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260517_USER评价业务闭环_第三步_数据流与中间对象设计_v3",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/README",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/需求文档索引",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/AI驱动内部系统开发流程_V3_总览",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/README",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/常见问题FAQ",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/角色职责矩阵",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/阶段0_项目入口分级",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/阶段1_业务需求完整形成",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/阶段2.5_测试提前补漏",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/阶段2_高保真模型与业务对象确认",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/阶段3_研发协作与正式开发",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/阶段4_测试培训上线回流",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/阶段交付物清单",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:02_项目管理流程/项目检查清单",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:06_里程碑/README",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:06_里程碑/里程碑索引",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:06_里程碑/里程碑评审记录",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-milestones",
"target": "doc:06_里程碑/阶段计划模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-technical",
"target": "doc:07_技术文档/README",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-technical",
"target": "doc:07_技术文档/技术决策记录",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-technical",
"target": "doc:07_技术文档/技术文档索引",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-technical",
"target": "doc:07_技术文档/接口说明模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-technical",
"target": "doc:07_技术文档/系统架构说明模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/README",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/上线检查模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/测试用例模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/测试用例索引",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/测试计划模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/缺陷记录模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/验收记录模板",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-agent",
"target": "doc:04_Agent检索/关键词索引",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-agent",
"target": "doc:04_Agent检索/同义词表",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-agent",
"target": "doc:04_Agent检索/来源文件索引",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-agent",
"target": "doc:04_Agent检索/检索说明",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-agent",
"target": "doc:04_Agent检索/知识库持续更新与验证流程",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-agent",
"target": "doc:04_Agent检索/问答提示词",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "doc:04_Agent检索/知识库持续更新与验证流程",
"target": "doc:00_首页/Agent问答入口",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:05_需求文档/需求文档索引",
"target": "doc:00_首页/Agent问答入口",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/测试用例索引",
"target": "doc:00_首页/Agent问答入口",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/AI驱动内部系统开发流程_V3_总览",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/角色职责矩阵",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段0_项目入口分级",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段1_业务需求完整形成",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2.5_测试提前补漏",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2_高保真模型与业务对象确认",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段3_研发协作与正式开发",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段4_测试培训上线回流",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段交付物清单",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/项目检查清单",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/知识库持续更新与验证流程",
"target": "doc:04_Agent检索/关键词索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/角色职责矩阵",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段0_项目入口分级",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段1_业务需求完整形成",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2.5_测试提前补漏",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2_高保真模型与业务对象确认",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段3_研发协作与正式开发",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段4_测试培训上线回流",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段交付物清单",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/项目检查清单",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/知识库持续更新与验证流程",
"target": "doc:04_Agent检索/同义词表",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/AI驱动内部系统开发流程_V3_总览",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/常见问题FAQ",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/角色职责矩阵",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段0_项目入口分级",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段1_业务需求完整形成",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2.5_测试提前补漏",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2_高保真模型与业务对象确认",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段3_研发协作与正式开发",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段4_测试培训上线回流",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段交付物清单",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/项目检查清单",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/知识库持续更新与验证流程",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:05_需求文档/需求文档索引",
"target": "doc:04_Agent检索/来源文件索引",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/AI驱动内部系统开发流程_V3_总览",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/常见问题FAQ",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/角色职责矩阵",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2.5_测试提前补漏",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段2_高保真模型与业务对象确认",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段交付物清单",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/项目检查清单",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/关键词索引",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/同义词表",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:05_需求文档/需求文档索引",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:06_里程碑/里程碑索引",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:07_技术文档/技术文档索引",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:07_技术文档/接口说明模板",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/上线检查模板",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/测试用例索引",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/缺陷记录模板",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/验收记录模板",
"target": "doc:04_Agent检索/检索说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/关键词索引",
"target": "doc:04_Agent检索/知识库持续更新与验证流程",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/同义词表",
"target": "doc:04_Agent检索/知识库持续更新与验证流程",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/来源文件索引",
"target": "doc:04_Agent检索/知识库持续更新与验证流程",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:05_需求文档/需求文档索引",
"target": "doc:04_Agent检索/知识库持续更新与验证流程",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/角色职责矩阵",
"target": "doc:04_Agent检索/问答提示词",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段交付物清单",
"target": "doc:04_Agent检索/问答提示词",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/项目检查清单",
"target": "doc:04_Agent检索/问答提示词",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/关键词索引",
"target": "doc:05_需求文档/README",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/同义词表",
"target": "doc:05_需求文档/README",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/来源文件索引",
"target": "doc:05_需求文档/README",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/知识库持续更新与验证流程",
"target": "doc:05_需求文档/README",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:05_需求文档/需求文档索引",
"target": "doc:05_需求文档/README",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:00_首页/知识地图",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/README",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/阶段交付物清单",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:02_项目管理流程/项目检查清单",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/来源文件索引",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:04_Agent检索/检索说明",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:05_需求文档/README",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:05_需求文档/需求文档索引",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:06_里程碑/README",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:06_里程碑/里程碑索引",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:07_技术文档/README",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:07_技术文档/技术文档索引",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/README",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/上线检查模板",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/测试用例索引",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:08_测试相关/缺陷记录模板",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "doc:欢迎",
"target": "doc:知识库使用说明",
"type": "depends_on",
"direction": "forward",
"description": "文档引用关系",
"weight": 0.7
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/00-系统总览",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/01-子系统-用户身份与上下文",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/02-子系统-需求与计划管理",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/03-子系统-额度与频控",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/04-子系统-多渠道触达引擎",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/05-子系统-客服工单与管理",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/06-子系统-风险与反欺诈",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/07-子系统-评价结果追踪",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/08-子系统-KOC-KOL协作",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/09-子系统-审计与通知中心",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260504_USER后台ERP_MVP管理员首页高保真原型_v7",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260517_USER评价业务闭环主流程与后续工作基线_v1.2",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/客服执行",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/用户运营系统-单文件",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/evaluation-business-architecture",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/user_erp_mvp_admin_prototype_v10",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/user_erp_mvp_admin_prototype_v10(1)",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/通用EDM业务流程说明",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/通用IM业务流程与接口频率限制说明",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-technical",
"target": "doc:07_技术文档/01-子系统-identity-数据库表关系",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-testing",
"target": "doc:08_测试相关/USER用户运营系统_原型逐页详细测试用例集",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_01_主流程说明_v1",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_02_日常操作页面结构_v1",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_03_功能页面按钮盘点表_v1",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_04_分支流程_完整需求域_v1",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_05_异常流程_完整需求域_v1",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1(1)",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260528_USER_ERP_0-1需求重构_可点击参考原型_v1",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
},
{
"source": "flow:layer-requirements",
"target": "doc:05_需求文档/20260528_USER_ERP_完整参考原型_v2",
"type": "documents",
"direction": "forward",
"description": "本层文档",
"weight": 0.65
}
],
"layers": [
{
"id": "layer-overview",
"name": "知识库入口",
"description": "知识库使用说明、首页、知识地图和问答入口。先从这里理解知识库结构与检索方式。",
"nodeIds": [
"flow:layer-overview",
"doc:00_首页/Agent问答入口",
"doc:00_首页/知识地图",
"doc:00_首页/知识库首页",
"doc:欢迎",
"doc:知识库使用说明"
]
},
{
"id": "layer-requirements",
"name": "需求文档",
"description": "所有正式需求、业务规则、需求变更和需求索引。点击本层可查看全部需求文档并检索。",
"nodeIds": [
"flow:layer-requirements",
"doc:05_需求文档/20260517_USER评价业务闭环_第三步_数据流与中间对象设计_v3",
"doc:05_需求文档/README",
"doc:05_需求文档/需求文档索引",
"doc:05_需求文档/00-系统总览",
"doc:05_需求文档/01-子系统-用户身份与上下文",
"doc:05_需求文档/02-子系统-需求与计划管理",
"doc:05_需求文档/03-子系统-额度与频控",
"doc:05_需求文档/04-子系统-多渠道触达引擎",
"doc:05_需求文档/05-子系统-客服工单与管理",
"doc:05_需求文档/06-子系统-风险与反欺诈",
"doc:05_需求文档/07-子系统-评价结果追踪",
"doc:05_需求文档/08-子系统-KOC-KOL协作",
"doc:05_需求文档/09-子系统-审计与通知中心",
"doc:05_需求文档/20260504_USER后台ERP_MVP管理员首页高保真原型_v7",
"doc:05_需求文档/20260517_USER评价业务闭环_共用能力图与渠道专属流程_v2.2",
"doc:05_需求文档/20260517_USER评价业务闭环主流程与后续工作基线_v1.2",
"doc:05_需求文档/客服执行",
"doc:05_需求文档/用户运营系统-单文件",
"doc:05_需求文档/evaluation-business-architecture",
"doc:05_需求文档/user_erp_mvp_admin_prototype_v10",
"doc:05_需求文档/user_erp_mvp_admin_prototype_v10(1)",
"doc:05_需求文档/通用EDM业务流程说明",
"doc:05_需求文档/通用IM业务流程与接口频率限制说明",
"doc:05_需求文档/20260527_USER_ERP_0-1需求重构_01_主流程说明_v1",
"doc:05_需求文档/20260527_USER_ERP_0-1需求重构_02_日常操作页面结构_v1",
"doc:05_需求文档/20260527_USER_ERP_0-1需求重构_03_功能页面按钮盘点表_v1",
"doc:05_需求文档/20260527_USER_ERP_0-1需求重构_04_分支流程_完整需求域_v1",
"doc:05_需求文档/20260527_USER_ERP_0-1需求重构_05_异常流程_完整需求域_v1",
"doc:05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1",
"doc:05_需求文档/20260527_USER_ERP_0-1需求重构_06_VibeCoding页面验证记录_v1(1)",
"doc:05_需求文档/20260528_USER_ERP_0-1需求重构_可点击参考原型_v1",
"doc:05_需求文档/20260528_USER_ERP_完整参考原型_v2"
]
},
{
"id": "layer-milestones",
"name": "里程碑",
"description": "项目阶段计划、里程碑节点、评审记录、准入准出和交付物节奏。",
"nodeIds": [
"flow:layer-milestones",
"doc:02_项目管理流程/AI驱动内部系统开发流程_V3_总览",
"doc:02_项目管理流程/README",
"doc:02_项目管理流程/常见问题FAQ",
"doc:02_项目管理流程/角色职责矩阵",
"doc:02_项目管理流程/阶段0_项目入口分级",
"doc:02_项目管理流程/阶段1_业务需求完整形成",
"doc:02_项目管理流程/阶段2.5_测试提前补漏",
"doc:02_项目管理流程/阶段2_高保真模型与业务对象确认",
"doc:02_项目管理流程/阶段3_研发协作与正式开发",
"doc:02_项目管理流程/阶段4_测试培训上线回流",
"doc:02_项目管理流程/阶段交付物清单",
"doc:02_项目管理流程/项目检查清单",
"doc:06_里程碑/README",
"doc:06_里程碑/里程碑索引",
"doc:06_里程碑/里程碑评审记录",
"doc:06_里程碑/阶段计划模板"
]
},
{
"id": "layer-technical",
"name": "技术文档",
"description": "系统架构、数据模型、接口说明、技术方案和技术决策。点击本层可查看全部技术文档并检索。",
"nodeIds": [
"flow:layer-technical",
"doc:07_技术文档/README",
"doc:07_技术文档/技术决策记录",
"doc:07_技术文档/技术文档索引",
"doc:07_技术文档/接口说明模板",
"doc:07_技术文档/系统架构说明模板",
"doc:07_技术文档/01-子系统-identity-数据库表关系"
]
},
{
"id": "layer-testing",
"name": "测试相关",
"description": "测试计划、测试用例、缺陷记录、验收记录、上线检查和测试资产。点击本层可查看全部测试相关文档并检索。",
"nodeIds": [
"flow:layer-testing",
"doc:08_测试相关/README",
"doc:08_测试相关/上线检查模板",
"doc:08_测试相关/测试用例模板",
"doc:08_测试相关/测试用例索引",
"doc:08_测试相关/测试计划模板",
"doc:08_测试相关/缺陷记录模板",
"doc:08_测试相关/验收记录模板",
"doc:08_测试相关/USER用户运营系统_原型逐页详细测试用例集"
]
},
{
"id": "layer-agent",
"name": "Agent检索",
"description": "检索说明、关键词、同义词、来源索引和持续更新验证流程。",
"nodeIds": [
"flow:layer-agent",
"doc:04_Agent检索/关键词索引",
"doc:04_Agent检索/同义词表",
"doc:04_Agent检索/来源文件索引",
"doc:04_Agent检索/检索说明",
"doc:04_Agent检索/知识库持续更新与验证流程",
"doc:04_Agent检索/问答提示词"
]
}
],
"tour": [
{
"order": 1,
"title": "知识库入口",
"description": "知识库使用说明、首页、知识地图和问答入口。先从这里理解知识库结构与检索方式。",
"nodeIds": [
"flow:layer-overview"
]
},
{
"order": 2,
"title": "需求文档",
"description": "所有正式需求、业务规则、需求变更和需求索引。点击本层可查看全部需求文档并检索。",
"nodeIds": [
"flow:layer-requirements"
]
},
{
"order": 3,
"title": "里程碑",
"description": "项目阶段计划、里程碑节点、评审记录、准入准出和交付物节奏。",
"nodeIds": [
"flow:layer-milestones"
]
},
{
"order": 4,
"title": "技术文档",
"description": "系统架构、数据模型、接口说明、技术方案和技术决策。",
"nodeIds": [
"flow:layer-technical"
]
},
{
"order": 5,
"title": "测试相关",
"description": "测试计划、测试用例、缺陷记录、验收记录和上线检查。",
"nodeIds": [
"flow:layer-testing"
]
},
{
"order": 6,
"title": "Agent检索",
"description": "检索说明、关键词、同义词、来源索引和持续更新验证流程。",
"nodeIds": [
"flow:layer-agent"
]
}
]
}