diff --git a/README.md b/README.md index e69de29..6ec40ef 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,238 @@ +# AI 小说创作平台 + +基于 React、ProComponents、Ollama 和 Qwen3:8B 构建的本地化 AI 小说创作平台。 + +## 🚀 功能特点 + +### 核心功能 +- **模型设置** - 二级菜单结构,专门配置本地 Ollama 模型 +- **智能检测** - 自动检测本地 Ollama 服务状态和已安装模型 +- **小说卡片管理** - 以卡片形式展示小说列表,支持新增、编辑、删除 +- **AI 章节生成** - 集成 Ollama API 进行智能章节生成,支持自定义提示词 +- **内容管理** - 自动保存到浏览器 IndexedDB,支持查看、编辑、导出 +- **Markdown 导出** - 支持单章或整本小说导出为 Markdown 格式 + +### 最新优化 +- ✅ **二级菜单** - 设置 > 模型的层级结构 +- ✅ **IndexedDB 存储** - 替代 localStorage,支持更大存储容量 +- ✅ **智能模型检测** - 自动检测本地 Ollama 已安装的模型 +- ✅ **模型验证** - 限制只能选择本地已安装的模型 +- ✅ **连接状态监控** - 实时显示 Ollama 服务连接状态 +- ✅ **现代化 UI** - 干净整洁的界面设计 + +## 🛠️ 技术栈 + +- **前端**: React + TypeScript + Ant Design +- **路由**: React Router v6 +- **AI 集成**: Ollama REST API +- **数据存储**: IndexedDB +- **文档处理**: ReactMarkdown + +## 📋 前置要求 + +### 必需软件 +1. **Node.js** (v14 或更高版本) +2. **Ollama** - 本地 AI 模型运行环境 + +### Ollama 安装 +```bash +# macOS +brew install ollama + +# Linux +curl -fsSL https://ollama.com/install.sh | sh + +# Windows +# 从 https://ollama.com/download 下载安装 +``` + +### 推荐模型 +```bash +# Qwen2.5 系列(推荐) +ollama pull qwen2.5:7b +ollama pull qwen2.5:14b + +# Llama3 系列 +ollama pull llama3:8b + +# 其他中文模型 +ollama pull qwen2:7b +``` + +## 🚀 快速开始 + +### 1. 安装依赖 +```bash +npm install +``` + +### 2. 启动 Ollama 服务 +```bash +ollama serve +``` + +### 3. 启动开发服务器 +```bash +npm start +``` + +### 4. 访问应用 +打开浏览器访问 http://localhost:3000 + +## 📖 使用指南 + +### 首次配置 + +1. **启动 Ollama 服务** + ```bash + ollama serve + ``` + +2. **进入模型设置** + - 点击左侧菜单的"设置" > "模型" + - 默认 Ollama 地址:`http://localhost:11434` + +3. **测试连接** + - 点击"测试连接"按钮验证 Ollama 服务状态 + +4. **检测模型** + - 点击"检测模型"按钮获取本地已安装模型 + - 系统会显示模型名称和大小信息 + +5. **选择模型** + - 从下拉列表中选择本地已安装的模型 + - 如需新模型,先使用 `ollama pull 模型名` 安装 + +6. **调整参数** + - **Temperature**: 0.7(控制随机性,0-2) + - **Top P**: 0.9(控制多样性,0-1) + - **最大 Tokens**: 2000(生成长度) + +### 创作流程 + +1. **创建小说** + - 进入"小说管理" + - 点击"新建小说" + - 填写书名、题材、大纲、人物设定 + +2. **生成章节** + - 点击小说卡片进入详情页 + - 点击"生成新章节" + - 输入章节标题和可选的提示词 + - 等待 AI 生成内容 + +3. **管理内容** + - **查看**: 点击"查看"按钮预览 Markdown 格式内容 + - **编辑**: 点击"编辑"按钮修改章节内容 + - **导出**: 点击"导出"按钮下载单章或整本小说 + +## 🔧 高级配置 + +### 自定义 Ollama 地址 +如果 Ollama 运行在其他地址: +``` +http://your-server:11434 +``` + +### 模型选择建议 +- **轻量级**: qwen2.5:3b (4GB 内存) +- **平衡**: qwen2.5:7b (8GB 内存) +- **高质量**: qwen2.5:14b (16GB 内存) +- **英文**: llama3:8b (8GB 内存) + +### 生成参数调优 +- **创意写作**: Temperature 0.8-1.0 +- **技术内容**: Temperature 0.3-0.5 +- **平衡**: Temperature 0.7(默认) + +## 📁 项目结构 + +``` +src/ +├── components/ # React 组件 +│ └── MainLayout.tsx # 主布局(左侧菜单+右侧内容) +├── pages/ # 页面组件 +│ ├── NovelList.tsx # 小说列表 +│ ├── NovelDetail.tsx # 小说详情 +│ └── ModelSettings.tsx # 模型设置 +├── utils/ # 工具函数 +│ ├── indexedDB.ts # IndexedDB 数据存储 +│ ├── ollama.ts # AI 服务集成 +│ └── fileManager.ts # 文件导出 +└── types/ # TypeScript 类型定义 + └── index.ts +``` + +## 🐛 常见问题 + +### Q: 无法连接 Ollama 服务 +**A**: +1. 确保 Ollama 服务正在运行:`ollama serve` +2. 检查服务地址是否正确 +3. 确认端口 11434 未被占用 + +### Q: 检测不到模型 +**A**: +1. 使用 `ollama list` 查看已安装模型 +2. 使用 `ollama pull 模型名` 安装新模型 +3. 点击"检测模型"按钮刷新列表 + +### Q: 数据存储在哪里? +**A**: +- 所有数据存储在浏览器的 IndexedDB 中 +- 数据库名称:AINovelDB +- 建议定期导出重要作品进行备份 + +### Q: 章节生成失败 +**A**: +1. 检查 Ollama 服务是否正常 +2. 确认选择的模型已正确安装 +3. 尝试降低 `maxTokens` 参数 +4. 查看浏览器控制台错误信息 + +### Q: 生成内容质量不佳 +**A**: +1. 尝试调整 Temperature 参数 +2. 在提示词中提供更详细的要求 +3. 完善小说的大纲和人物设定 +4. 使用更大参数量的模型 + +## 🔐 安全说明 + +- 所有数据存储在浏览器 IndexedDB 中,不会上传到云端 +- Ollama 服务完全运行在本地,确保隐私安全 +- 支持更大容量的数据存储(相比 localStorage) +- 建议定期导出重要作品进行备份 + +## 📝 开发说明 + +### 构建生产版本 +```bash +npm run build +``` + +### 运行测试 +```bash +npm test +``` + +### 代码规范 +- 使用 TypeScript 编写 +- 遵循 React Hooks 最佳实践 +- 组件式开发,便于维护和扩展 + +## 📄 许可证 + +MIT License + +## 🤝 贡献 + +欢迎提交 Issue 和 Pull Request! + +## 📮 联系方式 + +如有问题请提交 Issue 或联系开发者。 + +--- + +**享受 AI 创作的乐趣!** ✨ \ No newline at end of file diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 0000000..8ca0348 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,194 @@ +# AI 小说创作平台 - 测试指南 + +## 🧪 边界情况测试 + +### 1. 首次启动测试(无配置) + +**预期结果:** +- ✅ 底部状态栏显示:Ollama 状态: 未连接 | 模型数量: 0 个 | 当前模型: 未配置模型 +- ✅ 当前模型文字显示为红色 +- ✅ 显示"前往配置"按钮 +- ✅ 侧边栏状态显示:服务未连接 + +### 2. Ollama 服务未启动测试 + +**步骤:** +1. 确保 Ollama 服务未运行 +2. 启动应用 + +**预期结果:** +- ✅ 底部状态栏显示:Ollama 状态: 未连接(红色) +- ✅ 显示警告提示:Ollama 服务未连接 +- ✅ 提示信息:请确保 Ollama 服务正在运行 +- ✅ 侧边栏显示服务未连接图标 + +### 3. 有服务但无模型测试 + +**步骤:** +1. 启动 Ollama 服务 +2. 不安装任何模型 +3. 启动应用 + +**预期结果:** +- ✅ 底部状态栏显示:Ollama 状态: 已连接(绿色)| 模型数量: 0 个(黄色) +- ✅ 当前模型: 未配置模型(红色) +- ✅ 显示警告提示:未检测到 AI 模型 +- ✅ 提示信息:请先安装 AI 模型 + +### 4. 配置了模型但未安装测试 + +**步骤:** +1. 在设置中选择一个模型(如 qwen2.5:7b) +2. 但本地实际没有安装这个模型 +3. 启动应用 + +**预期结果:** +- ✅ 底部状态栏显示:Ollama 状态: 已连接 | 模型数量: 0 个 +- ✅ 当前模型: qwen2.5:7b (未安装)(黄色) +- ✅ 显示警告提示:当前配置的模型未安装 +- ✅ 提示前往配置页面重新选择 + +### 5. 正常配置测试 + +**步骤:** +1. 启动 Ollama 服务 +2. 安装模型:ollama pull qwen2.5:7b +3. 在设置中选择该模型 +4. 启动应用 + +**预期结果:** +- ✅ 底部状态栏显示:Ollama 状态: 已连接(绿色)| 模型数量: 1 个(绿色) +- ✅ 当前模型: qwen2.5:7b (4.XX GB)(绿色) +- ✅ 不显示任何警告提示 +- ✅ 侧边栏显示正常状态 + +### 6. 多个模型测试 + +**步骤:** +1. 安装多个模型:qwen2.5:7b, llama3:8b +2. 启动应用 + +**预期结果:** +- ✅ 底部状态栏显示:模型数量: 2 个 +- ✅ 当前模型显示实际选中的模型信息 +- ✅ 模型配置页面显示所有可用模型 + +### 7. 配置变更测试 + +**步骤:** +1. 从一个模型切换到另一个模型 +2. 观察底部状态栏变化 + +**预期结果:** +- ✅ 切换后底部状态栏立即更新 +- ✅ 如果新模型未安装,显示警告状态 +- ✅ 如果新模型已安装,显示正常状态 + +## 🔄 状态刷新测试 + +### 手动刷新测试 +**步骤:** +1. 点击底部"刷新状态"按钮 +2. 观察 loading 状态 + +**预期结果:** +- ✅ 按钮显示加载动画 +- ✅ 状态信息更新 +- ✅ 如果期间状态变化,及时反映 + +### 自动刷新测试 +**步骤:** +1. 启动应用后等待30秒 +2. 观察 auto-refresh 机制 + +**预期结果:** +- ✅ 每30秒自动检查状态 +- ✅ 状态变化时自动更新界面 +- ✅ 无需手动操作 + +## 🎯 模型配置页面测试 + +### 页面加载测试 +**步骤:** +1. 进入设置 > 模型页面 +2. 观察初始状态 + +**预期结果:** +- ✅ 页面顶部显示服务状态卡片 +- ✅ 如果已连接,自动显示已安装模型 +- ✅ 表单自动加载当前配置 + +### 检测模型测试 +**步骤:** +1. 点击"检测模型"按钮 +2. 观察 loading 和结果 + +**预期结果:** +- ✅ 显示加载状态 +- ✅ 检测完成后显示模型列表 +- ✅ 如果当前模型未安装,自动清空选择 +- ✅ 全局状态同步更新 + +### 保存配置测试 +**步骤:** +1. 修改模型选择 +2. 点击"保存配置" +3. 观察底部状态栏 + +**预期结果:** +- ✅ 配置保存成功提示 +- ✅ 底部状态栏立即更新 +- ✅ 全局状态同步更新 +- ✅ 新配置生效 + +## 🚨 异常情况测试 + +### 网络断开测试 +**步骤:** +1. 正常运行时断开网络 +2. 尝试刷新状态 + +**预期结果:** +- ✅ 显示连接错误 +- ✅ 不显示崩溃或白屏 +- ✅ 提供重试机制 + +### 模型损坏测试 +**步骤:** +1. 使用损坏的模型 +2. 启动应用 + +**预期结果:** +- ✅ 系统识别模型问题 +- ✅ 提示重新选择模型 +- ✅ 不影响其他功能使用 + +## ✅ 功能完整性检查 + +- [ ] 启动时自动检查 Ollama 状态 +- [ ] 启动时自动检查模型安装情况 +- [ ] 底部状态栏实时显示准确信息 +- [ ] 模型未配置时显示明确提示 +- [ ] 模型未安装时显示警告状态 +- [ ] 配置无效模型时提示用户 +- [ ] 提供"前往配置"快捷入口 +- [ ] 手动刷新状态功能正常 +- [ ] 自动刷新状态机制工作 +- [ ] 配置变更立即生效 +- [ ] 错误处理用户友好 + +## 🎨 界面显示规则 + +### 状态颜色规则 +- **绿色**: 状态正常,已配置且已安装 +- **黄色**: 有问题但可用,如未安装模型 +- **红色**: 严重问题,如未配置或服务未连接 +- **灰色**: 服务未连接时的模型信息 + +### 文字提示规则 +- **未配置模型**: "未配置模型" + 红色 + 前往配置按钮 +- **未安装模型**: "模型名 (未安装)" + 黄色 +- **服务未连接**: "模型名 (服务未连接)" + 灰色 +- **正常状态**: "模型名 (大小)" + 绿色 + +通过以上测试,确保系统在各种边界情况下都能正确显示状态信息并提供用户友好的提示。 \ No newline at end of file diff --git a/build/asset-manifest.json b/build/asset-manifest.json new file mode 100644 index 0000000..e3505d9 --- /dev/null +++ b/build/asset-manifest.json @@ -0,0 +1,15 @@ +{ + "files": { + "main.css": "/static/css/main.18111be9.css", + "main.js": "/static/js/main.907ae9a2.js", + "static/js/453.d0dce72f.chunk.js": "/static/js/453.d0dce72f.chunk.js", + "index.html": "/index.html", + "main.18111be9.css.map": "/static/css/main.18111be9.css.map", + "main.907ae9a2.js.map": "/static/js/main.907ae9a2.js.map", + "453.d0dce72f.chunk.js.map": "/static/js/453.d0dce72f.chunk.js.map" + }, + "entrypoints": [ + "static/css/main.18111be9.css", + "static/js/main.907ae9a2.js" + ] +} \ No newline at end of file diff --git a/build/favicon.ico b/build/favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/build/favicon.ico differ diff --git a/build/index.html b/build/index.html new file mode 100644 index 0000000..c926f0e --- /dev/null +++ b/build/index.html @@ -0,0 +1 @@ +React App
\ No newline at end of file diff --git a/build/logo192.png b/build/logo192.png new file mode 100644 index 0000000..fc44b0a Binary files /dev/null and b/build/logo192.png differ diff --git a/build/logo512.png b/build/logo512.png new file mode 100644 index 0000000..a4e47a6 Binary files /dev/null and b/build/logo512.png differ diff --git a/build/manifest.json b/build/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/build/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/build/robots.txt b/build/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/build/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/build/static/css/main.18111be9.css b/build/static/css/main.18111be9.css new file mode 100644 index 0000000..82e7665 --- /dev/null +++ b/build/static/css/main.18111be9.css @@ -0,0 +1,2 @@ +@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spin-animation{animation:spin 3s linear infinite}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.markdown-content{color:#333;line-height:1.6}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-content p{margin-bottom:16px}.markdown-content ol,.markdown-content ul{margin-bottom:16px;padding-left:2em}.markdown-content li{margin-bottom:4px}.markdown-content blockquote{border-left:.25em solid #dfe2e5;color:#6a737d;margin-bottom:16px;padding:0 1em}.markdown-content code{background-color:#1b1f230d;border-radius:3px;font-size:85%;margin:0;padding:.2em .4em}.markdown-content pre{background-color:#f6f8fa;border-radius:6px;font-size:85%;line-height:1.45;margin-bottom:16px;overflow:auto;padding:16px} +/*# sourceMappingURL=main.18111be9.css.map*/ \ No newline at end of file diff --git a/build/static/css/main.18111be9.css.map b/build/static/css/main.18111be9.css.map new file mode 100644 index 0000000..6072245 --- /dev/null +++ b/build/static/css/main.18111be9.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.18111be9.css","mappings":"AAAA,gBACE,GACE,sBACF,CACA,GACE,uBACF,CACF,CAEA,gBACE,iCACF,CCXA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF,CAEA,kBAEE,UAAW,CADX,eAEF,CAEA,8HAQE,eAAgB,CAChB,gBAAiB,CAFjB,kBAAmB,CADnB,eAIF,CAEA,oBACE,kBACF,CAEA,0CAGE,kBAAmB,CADnB,gBAEF,CAEA,qBACE,iBACF,CAEA,6BAGE,+BAAiC,CADjC,aAAc,CAEd,kBAAmB,CAHnB,aAIF,CAEA,uBAIE,0BAAqC,CACrC,iBAAkB,CAFlB,aAAc,CADd,QAAS,CADT,iBAKF,CAEA,sBAKE,wBAAyB,CACzB,iBAAkB,CAHlB,aAAc,CACd,gBAAiB,CAGjB,kBAAmB,CALnB,aAAc,CADd,YAOF","sources":["components/MainLayout.css","App.css"],"sourcesContent":["@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n.spin-animation {\n animation: spin 3s linear infinite;\n}","body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n\n.markdown-content {\n line-height: 1.6;\n color: #333;\n}\n\n.markdown-content h1,\n.markdown-content h2,\n.markdown-content h3,\n.markdown-content h4,\n.markdown-content h5,\n.markdown-content h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n\n.markdown-content p {\n margin-bottom: 16px;\n}\n\n.markdown-content ul,\n.markdown-content ol {\n padding-left: 2em;\n margin-bottom: 16px;\n}\n\n.markdown-content li {\n margin-bottom: 4px;\n}\n\n.markdown-content blockquote {\n padding: 0 1em;\n color: #6a737d;\n border-left: 0.25em solid #dfe2e5;\n margin-bottom: 16px;\n}\n\n.markdown-content code {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n background-color: rgba(27,31,35,0.05);\n border-radius: 3px;\n}\n\n.markdown-content pre {\n padding: 16px;\n overflow: auto;\n font-size: 85%;\n line-height: 1.45;\n background-color: #f6f8fa;\n border-radius: 6px;\n margin-bottom: 16px;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/453.d0dce72f.chunk.js b/build/static/js/453.d0dce72f.chunk.js new file mode 100644 index 0000000..6493d95 --- /dev/null +++ b/build/static/js/453.d0dce72f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkai_novel=self.webpackChunkai_novel||[]).push([[453],{453(e,t,n){n.d(t,{getCLS:()=>y,getFCP:()=>g,getFID:()=>C,getLCP:()=>P,getTTFB:()=>D});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver(function(e){return e.getEntries().map(t)});return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",function(t){t.persisted&&e(t)},!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f(function(e){var t=e.timeStamp;v=t},!0)},l=function(){return v<0&&(v=p(),d(),s(function(){setTimeout(function(){v=p(),d()},0)})),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f(function(){p.takeRecords().map(v),n(!0)}),s(function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)}))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach(function(t){return e(t,b,E)})},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",function(){return setTimeout(t,0)})}}}]); +//# sourceMappingURL=453.d0dce72f.chunk.js.map \ No newline at end of file diff --git a/build/static/js/453.d0dce72f.chunk.js.map b/build/static/js/453.d0dce72f.chunk.js.map new file mode 100644 index 0000000..83fbca4 --- /dev/null +++ b/build/static/js/453.d0dce72f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/453.d0dce72f.chunk.js","mappings":"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","sources":["../node_modules/web-vitals/dist/web-vitals.js"],"sourcesContent":["var e,t,n,i,r=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},u=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},c=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,s=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){o((function(e){var t=e.timeStamp;f=t}),!0)},v=function(){return f<0&&(f=s(),m(),u((function(){setTimeout((function(){f=s(),m()}),0)}))),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=v(),o=r(\"FCP\"),f=function(e){\"first-contentful-paint\"===e.name&&(m&&m.disconnect(),e.startTime-1&&e(t)},f=r(\"CLS\",0),s=0,m=[],v=function(e){if(!e.hadRecentInput){var t=m[0],i=m[m.length-1];s&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,m.push(e)):(s=e.value,m=[e]),s>f.value&&(f.value=s,f.entries=m,n())}},h=a(\"layout-shift\",v);h&&(n=c(i,f,t),o((function(){h.takeRecords().map(v),n(!0)})),u((function(){s=0,l=-1,f=r(\"CLS\",0),n=c(i,f,t)})))},T={passive:!0,capture:!0},y=new Date,g=function(i,r){e||(e=r,t=i,n=new Date,w(removeEventListener),E())},E=function(){if(t>=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){g(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,T),removeEventListener(\"pointercancel\",i,T)};addEventListener(\"pointerup\",n,T),addEventListener(\"pointercancel\",i,T)}(t,e):g(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,S,T)}))},L=function(n,f){var s,m=v(),d=r(\"FID\"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"load\",(function(){return setTimeout(t,0)}))};export{h as getCLS,d as getFCP,L as getFID,F as getLCP,P as getTTFB};\n"],"names":["e","t","n","i","r","name","value","delta","entries","id","concat","Date","now","Math","floor","random","a","PerformanceObserver","supportedEntryTypes","includes","self","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","u","persisted","c","f","s","m","timeStamp","v","setTimeout","firstHiddenTime","d","disconnect","startTime","push","window","performance","getEntriesByName","requestAnimationFrame","p","l","h","hadRecentInput","length","takeRecords","T","passive","capture","y","g","w","E","entryType","target","cancelable","processingStart","forEach","S","L","b","F","once","P","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"sourceRoot":""} \ No newline at end of file diff --git a/build/static/js/main.907ae9a2.js b/build/static/js/main.907ae9a2.js new file mode 100644 index 0000000..7879e2e --- /dev/null +++ b/build/static/js/main.907ae9a2.js @@ -0,0 +1,3 @@ +/*! For license information please see main.907ae9a2.js.LICENSE.txt */ +(()=>{var e={235(e,t,n){"use strict";n.d(t,{indexedDBStorage:()=>a,storage:()=>i});var o=n(379);const r="AINovelDB";const a=new class{constructor(){this.db=null}async init(){return new Promise((e,t)=>{const n=indexedDB.open(r,2);n.onerror=()=>{t(new Error("Failed to open IndexedDB"))},n.onsuccess=()=>{this.db=n.result,e()},n.onupgradeneeded=e=>{const t=e.target.result;if(!t.objectStoreNames.contains("novels")){t.createObjectStore("novels",{keyPath:"id"}).createIndex("createdAt","createdAt",{unique:!1})}if(!t.objectStoreNames.contains("chapters")){const e=t.createObjectStore("chapters",{keyPath:"id"});e.createIndex("novelId","novelId",{unique:!1}),e.createIndex("chapterNumber","chapterNumber",{unique:!1})}t.objectStoreNames.contains("config")||t.createObjectStore("config",{keyPath:"id"})}})}async getStore(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"readonly";if(this.db||await this.init(),!this.db)throw new Error("Database initialization failed");if(!this.db.objectStoreNames.contains(e)&&(console.error("Object store '".concat(e,"' not found in database")),await this.reinit(),!this.db||!this.db.objectStoreNames.contains(e)))throw new Error("Object store '".concat(e,"' not found after reinitialization"));return this.db.transaction(e,t).objectStore(e)}async reinit(){return this.db&&(this.db.close(),this.db=null),new Promise((e,t)=>{const n=indexedDB.deleteDatabase(r);n.onsuccess=()=>{console.log("Old database deleted successfully"),this.init().then(e).catch(t)},n.onerror=()=>{console.error("Failed to delete old database"),t(new Error("Failed to delete old database"))}})}async getNovels(){const e=await this.getStore("novels");return new Promise((t,n)=>{const o=e.getAll();o.onsuccess=()=>t(o.result||[]),o.onerror=()=>n(o.error)})}async addNovel(e){const t=await this.getStore("novels","readwrite");return new Promise((n,o)=>{const r=t.add(e);r.onsuccess=()=>n(),r.onerror=()=>o(r.error)})}async updateNovel(e,t){const n=await this.getNovels(),r=n.findIndex(t=>t.id===e);if(-1!==r){const e=(0,o.A)((0,o.A)((0,o.A)({},n[r]),t),{},{updatedAt:(new Date).toISOString()}),a=await this.getStore("novels","readwrite");return new Promise((t,n)=>{const o=a.put(e);o.onsuccess=()=>t(),o.onerror=()=>n(o.error)})}}async deleteNovel(e){const t=await this.getStore("novels","readwrite");return new Promise((n,o)=>{const r=t.delete(e);r.onsuccess=()=>n(),r.onerror=()=>o(r.error)})}async getChapters(e){const t=await this.getStore("chapters");return new Promise((n,o)=>{const r=t.getAll();r.onsuccess=()=>{const t=r.result||[];n(t.filter(t=>t.novelId===e))},r.onerror=()=>o(r.error)})}async getAllChapters(){const e=await this.getStore("chapters");return new Promise((t,n)=>{const o=e.getAll();o.onsuccess=()=>t(o.result||[]),o.onerror=()=>n(o.error)})}async addChapter(e){const t=await this.getStore("chapters","readwrite");return new Promise((n,o)=>{const r=t.add(e);r.onsuccess=()=>n(),r.onerror=()=>o(r.error)})}async updateChapter(e,t){const n=await this.getAllChapters(),r=n.findIndex(t=>t.id===e);if(-1!==r){const e=(0,o.A)((0,o.A)((0,o.A)({},n[r]),t),{},{updatedAt:(new Date).toISOString()}),a=await this.getStore("chapters","readwrite");return new Promise((t,n)=>{const o=a.put(e);o.onsuccess=()=>t(),o.onerror=()=>n(o.error)})}}async deleteChapter(e){const t=await this.getStore("chapters","readwrite");return new Promise((n,o)=>{const r=t.delete(e);r.onsuccess=()=>n(),r.onerror=()=>o(r.error)})}async getSystemConfig(){const e=await this.getStore("config");return new Promise(t=>{const n=e.get("system");n.onsuccess=()=>{const e=n.result;e?(delete e.id,t(e)):t({ollamaUrl:"http://localhost:11434",model:"",temperature:.7,topP:.9,maxTokens:2e3})},n.onerror=()=>{t({ollamaUrl:"http://localhost:11434",model:"",temperature:.7,topP:.9,maxTokens:2e3})}})}async saveSystemConfig(e){const t=await this.getStore("config","readwrite"),n=(0,o.A)({id:"system"},e);return new Promise((e,o)=>{const r=t.put(n);r.onsuccess=()=>e(),r.onerror=()=>o(r.error)})}},i={getNovels:()=>a.getNovels(),addNovel:e=>a.addNovel(e),updateNovel:(e,t)=>a.updateNovel(e,t),deleteNovel:e=>a.deleteNovel(e),getChapters:e=>a.getChapters(e),getAllChapters:()=>a.getAllChapters(),addChapter:e=>a.addChapter(e),updateChapter:(e,t)=>a.updateChapter(e,t),deleteChapter:e=>a.deleteChapter(e),getSystemConfig:()=>a.getSystemConfig(),saveSystemConfig:e=>a.saveSystemConfig(e)}},543(e,t,n){"use strict";var o=n(994).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(866));t.default=r.default},866(e,t,n){"use strict";var o=n(994).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(929)),a=o(n(871));const i={lang:Object.assign({placeholder:"\u8bf7\u9009\u62e9\u65e5\u671f",yearPlaceholder:"\u8bf7\u9009\u62e9\u5e74\u4efd",quarterPlaceholder:"\u8bf7\u9009\u62e9\u5b63\u5ea6",monthPlaceholder:"\u8bf7\u9009\u62e9\u6708\u4efd",weekPlaceholder:"\u8bf7\u9009\u62e9\u5468",rangePlaceholder:["\u5f00\u59cb\u65e5\u671f","\u7ed3\u675f\u65e5\u671f"],rangeYearPlaceholder:["\u5f00\u59cb\u5e74\u4efd","\u7ed3\u675f\u5e74\u4efd"],rangeMonthPlaceholder:["\u5f00\u59cb\u6708\u4efd","\u7ed3\u675f\u6708\u4efd"],rangeQuarterPlaceholder:["\u5f00\u59cb\u5b63\u5ea6","\u7ed3\u675f\u5b63\u5ea6"],rangeWeekPlaceholder:["\u5f00\u59cb\u5468","\u7ed3\u675f\u5468"]},r.default),timePickerLocale:Object.assign({},a.default)};i.lang.ok="\u786e\u5b9a";t.default=i},720(e,t,n){"use strict";var o=n(994).default;t.A=void 0;var r=o(n(867)),a=o(n(543)),i=o(n(866)),c=o(n(871));const l="${label}\u4e0d\u662f\u4e00\u4e2a\u6709\u6548\u7684${type}",s={locale:"zh-cn",Pagination:r.default,DatePicker:i.default,TimePicker:c.default,Calendar:a.default,global:{placeholder:"\u8bf7\u9009\u62e9",close:"\u5173\u95ed"},Table:{filterTitle:"\u7b5b\u9009",filterConfirm:"\u786e\u5b9a",filterReset:"\u91cd\u7f6e",filterEmptyText:"\u65e0\u7b5b\u9009\u9879",filterCheckAll:"\u5168\u9009",filterSearchPlaceholder:"\u5728\u7b5b\u9009\u9879\u4e2d\u641c\u7d22",emptyText:"\u6682\u65e0\u6570\u636e",selectAll:"\u5168\u9009\u5f53\u9875",selectInvert:"\u53cd\u9009\u5f53\u9875",selectNone:"\u6e05\u7a7a\u6240\u6709",selectionAll:"\u5168\u9009\u6240\u6709",sortTitle:"\u6392\u5e8f",expand:"\u5c55\u5f00\u884c",collapse:"\u5173\u95ed\u884c",triggerDesc:"\u70b9\u51fb\u964d\u5e8f",triggerAsc:"\u70b9\u51fb\u5347\u5e8f",cancelSort:"\u53d6\u6d88\u6392\u5e8f"},Modal:{okText:"\u786e\u5b9a",cancelText:"\u53d6\u6d88",justOkText:"\u77e5\u9053\u4e86"},Tour:{Next:"\u4e0b\u4e00\u6b65",Previous:"\u4e0a\u4e00\u6b65",Finish:"\u7ed3\u675f\u5bfc\u89c8"},Popconfirm:{cancelText:"\u53d6\u6d88",okText:"\u786e\u5b9a"},Transfer:{titles:["",""],searchPlaceholder:"\u8bf7\u8f93\u5165\u641c\u7d22\u5185\u5bb9",itemUnit:"\u9879",itemsUnit:"\u9879",remove:"\u5220\u9664",selectCurrent:"\u5168\u9009\u5f53\u9875",removeCurrent:"\u5220\u9664\u5f53\u9875",selectAll:"\u5168\u9009\u6240\u6709",deselectAll:"\u53d6\u6d88\u5168\u9009",removeAll:"\u5220\u9664\u5168\u90e8",selectInvert:"\u53cd\u9009\u5f53\u9875"},Upload:{uploading:"\u6587\u4ef6\u4e0a\u4f20\u4e2d",removeFile:"\u5220\u9664\u6587\u4ef6",uploadError:"\u4e0a\u4f20\u9519\u8bef",previewFile:"\u9884\u89c8\u6587\u4ef6",downloadFile:"\u4e0b\u8f7d\u6587\u4ef6"},Empty:{description:"\u6682\u65e0\u6570\u636e"},Icon:{icon:"\u56fe\u6807"},Text:{edit:"\u7f16\u8f91",copy:"\u590d\u5236",copied:"\u590d\u5236\u6210\u529f",expand:"\u5c55\u5f00",collapse:"\u6536\u8d77"},Form:{optional:"\uff08\u53ef\u9009\uff09",defaultValidateMessages:{default:"\u5b57\u6bb5\u9a8c\u8bc1\u9519\u8bef${label}",required:"\u8bf7\u8f93\u5165${label}",enum:"${label}\u5fc5\u987b\u662f\u5176\u4e2d\u4e00\u4e2a[${enum}]",whitespace:"${label}\u4e0d\u80fd\u4e3a\u7a7a\u5b57\u7b26",date:{format:"${label}\u65e5\u671f\u683c\u5f0f\u65e0\u6548",parse:"${label}\u4e0d\u80fd\u8f6c\u6362\u4e3a\u65e5\u671f",invalid:"${label}\u662f\u4e00\u4e2a\u65e0\u6548\u65e5\u671f"},types:{string:l,method:l,array:l,object:l,number:l,date:l,boolean:l,integer:l,float:l,regexp:l,email:l,url:l,hex:l},string:{len:"${label}\u987b\u4e3a${len}\u4e2a\u5b57\u7b26",min:"${label}\u6700\u5c11${min}\u4e2a\u5b57\u7b26",max:"${label}\u6700\u591a${max}\u4e2a\u5b57\u7b26",range:"${label}\u987b\u5728${min}-${max}\u5b57\u7b26\u4e4b\u95f4"},number:{len:"${label}\u5fc5\u987b\u7b49\u4e8e${len}",min:"${label}\u6700\u5c0f\u503c\u4e3a${min}",max:"${label}\u6700\u5927\u503c\u4e3a${max}",range:"${label}\u987b\u5728${min}-${max}\u4e4b\u95f4"},array:{len:"\u987b\u4e3a${len}\u4e2a${label}",min:"\u6700\u5c11${min}\u4e2a${label}",max:"\u6700\u591a${max}\u4e2a${label}",range:"${label}\u6570\u91cf\u987b\u5728${min}-${max}\u4e4b\u95f4"},pattern:{mismatch:"${label}\u4e0e\u6a21\u5f0f\u4e0d\u5339\u914d${pattern}"}}},Image:{preview:"\u9884\u89c8"},QRCode:{expired:"\u4e8c\u7ef4\u7801\u8fc7\u671f",refresh:"\u70b9\u51fb\u5237\u65b0",scanned:"\u5df2\u626b\u63cf"},ColorPicker:{presetEmpty:"\u6682\u65e0",transparent:"\u65e0\u8272",singleColor:"\u5355\u8272",gradientColor:"\u6e10\u53d8\u8272"}};t.A=s},871(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={placeholder:"\u8bf7\u9009\u62e9\u65f6\u95f4",rangePlaceholder:["\u5f00\u59cb\u65f6\u95f4","\u7ed3\u675f\u65f6\u95f4"]}},270(e,t,n){"use strict";var o=n(520),r={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,a,i,c,l,s,u=!1;t||(t={}),n=t.debug||!1;try{if(i=o(),c=document.createRange(),l=document.getSelection(),(s=document.createElement("span")).textContent=e,s.ariaHidden="true",s.style.all="unset",s.style.position="fixed",s.style.top=0,s.style.clip="rect(0, 0, 0, 0)",s.style.whiteSpace="pre",s.style.webkitUserSelect="text",s.style.MozUserSelect="text",s.style.msUserSelect="text",s.style.userSelect="text",s.addEventListener("copy",function(o){if(o.stopPropagation(),t.format)if(o.preventDefault(),"undefined"===typeof o.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var a=r[t.format]||r.default;window.clipboardData.setData(a,e)}else o.clipboardData.clearData(),o.clipboardData.setData(t.format,e);t.onCopy&&(o.preventDefault(),t.onCopy(o.clipboardData))}),document.body.appendChild(s),c.selectNodeContents(s),l.addRange(c),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");u=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),u=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(c):l.removeAllRanges()),s&&document.body.removeChild(s),i()}return u}},867(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={items_per_page:"\u6761/\u9875",jump_to:"\u8df3\u81f3",jump_to_confirm:"\u786e\u5b9a",page:"\u9875",prev_page:"\u4e0a\u4e00\u9875",next_page:"\u4e0b\u4e00\u9875",prev_5:"\u5411\u524d 5 \u9875",next_5:"\u5411\u540e 5 \u9875",prev_3:"\u5411\u524d 3 \u9875",next_3:"\u5411\u540e 3 \u9875",page_size:"\u9875\u7801"}},290(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.commonLocale=void 0;t.commonLocale={yearFormat:"YYYY",dayFormat:"D",cellMeridiemFormat:"A",monthBeforeYear:!0}},929(e,t,n){"use strict";var o=n(994).default;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=o(n(897)),a=n(290),i=(0,r.default)((0,r.default)({},a.commonLocale),{},{locale:"zh_CN",today:"\u4eca\u5929",now:"\u6b64\u523b",backToToday:"\u8fd4\u56de\u4eca\u5929",ok:"\u786e\u5b9a",timeSelect:"\u9009\u62e9\u65f6\u95f4",dateSelect:"\u9009\u62e9\u65e5\u671f",weekSelect:"\u9009\u62e9\u5468",clear:"\u6e05\u9664",week:"\u5468",month:"\u6708",year:"\u5e74",previousMonth:"\u4e0a\u4e2a\u6708 (\u7ffb\u9875\u4e0a\u952e)",nextMonth:"\u4e0b\u4e2a\u6708 (\u7ffb\u9875\u4e0b\u952e)",monthSelect:"\u9009\u62e9\u6708\u4efd",yearSelect:"\u9009\u62e9\u5e74\u4efd",decadeSelect:"\u9009\u62e9\u5e74\u4ee3",previousYear:"\u4e0a\u4e00\u5e74 (Control\u952e\u52a0\u5de6\u65b9\u5411\u952e)",nextYear:"\u4e0b\u4e00\u5e74 (Control\u952e\u52a0\u53f3\u65b9\u5411\u952e)",previousDecade:"\u4e0a\u4e00\u5e74\u4ee3",nextDecade:"\u4e0b\u4e00\u5e74\u4ee3",previousCentury:"\u4e0a\u4e00\u4e16\u7eaa",nextCentury:"\u4e0b\u4e00\u4e16\u7eaa",yearFormat:"YYYY\u5e74",cellDateFormat:"D",monthBeforeYear:!1});t.default=i},132(e,t){"use strict";var n,o=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.server_context"),d=Symbol.for("react.forward_ref"),f=Symbol.for("react.suspense"),p=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),h=Symbol.for("react.offscreen");function v(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case a:case c:case i:case f:case p:return e;default:switch(e=e&&e.$$typeof){case u:case s:case d:case g:case m:case l:return e;default:return t}}case r:return t}}}n=Symbol.for("react.module.reference"),t.ForwardRef=d,t.isMemo=function(e){return v(e)===m}},435(e,t,n){"use strict";e.exports=n(132)},4(e,t,n){"use strict";var o=n(853),r=n(43),a=n(950);function i(e){var t="https://react.dev/errors/"+e;if(1H||(e.current=L[H],L[H]=null,H--)}function F(e,t){H++,L[H]=e.current,e.current=t}var W,V,q=_(null),G=_(null),X=_(null),U=_(null);function $(e,t){switch(F(X,t),F(G,e),F(q,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=bd(t=vd(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}D(q),F(q,e)}function K(){D(q),D(G),D(X)}function Y(e){null!==e.memoizedState&&F(U,e);var t=q.current,n=bd(t,e.type);t!==n&&(F(G,e),F(q,n))}function Q(e){G.current===e&&(D(q),D(G)),U.current===e&&(D(U),df._currentValue=B)}function J(e){if(void 0===W)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);W=t&&t[1]||"",V=-1)":-1--r||l[o]!==s[r]){var u="\n"+l[o].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}}while(1<=o&&0<=r);break}}}finally{Z=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?J(n):""}function te(e,t){switch(e.tag){case 26:case 27:case 5:return J(e.type);case 16:return J("Lazy");case 13:return e.child!==t&&null!==t?J("Suspense Fallback"):J("Suspense");case 19:return J("SuspenseList");case 0:case 15:return ee(e.type,!1);case 11:return ee(e.type.render,!1);case 1:return ee(e.type,!0);case 31:return J("Activity");default:return""}}function ne(e){try{var t="",n=null;do{t+=te(e,n),n=e,e=e.return}while(e);return t}catch(o){return"\nError generating stack: "+o.message+"\n"+o.stack}}var oe=Object.prototype.hasOwnProperty,re=o.unstable_scheduleCallback,ae=o.unstable_cancelCallback,ie=o.unstable_shouldYield,ce=o.unstable_requestPaint,le=o.unstable_now,se=o.unstable_getCurrentPriorityLevel,ue=o.unstable_ImmediatePriority,de=o.unstable_UserBlockingPriority,fe=o.unstable_NormalPriority,pe=o.unstable_LowPriority,me=o.unstable_IdlePriority,ge=o.log,he=o.unstable_setDisableYieldValue,ve=null,be=null;function ye(e){if("function"===typeof ge&&he(e),be&&"function"===typeof be.setStrictMode)try{be.setStrictMode(ve,e)}catch(t){}}var xe=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(we(e)/Se|0)|0},we=Math.log,Se=Math.LN2;var Ce=256,ke=262144,Ee=4194304;function je(e){var t=42&e;if(0!==t)return t;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: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 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Oe(e,t,n){var o=e.pendingLanes;if(0===o)return 0;var r=0,a=e.suspendedLanes,i=e.pingedLanes;e=e.warmLanes;var c=134217727&o;return 0!==c?0!==(o=c&~a)?r=je(o):0!==(i&=c)?r=je(i):n||0!==(n=c&~e)&&(r=je(n)):0!==(c=o&~a)?r=je(c):0!==i?r=je(i):n||0!==(n=o&~e)&&(r=je(n)),0===r?0:0!==t&&t!==r&&0===(t&a)&&((a=r&-r)>=(n=t&-t)||32===a&&0!==(4194048&n))?t:r}function Ie(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Ae(e,t){switch(e){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;default:return-1}}function Ne(){var e=Ee;return 0===(62914560&(Ee<<=1))&&(Ee=4194304),e}function Pe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ze(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Re(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var o=31-xe(t);e.entangledLanes|=t,e.entanglements[o]=1073741824|e.entanglements[o]|261930&n}function Me(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var o=31-xe(n),r=1<=jn),An=String.fromCharCode(32),Nn=!1;function Pn(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Rn=!1;var Mn={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 Tn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Mn[e.type]:"textarea"===t}function Bn(e,t,n,o){Tt?Bt?Bt.push(o):Bt=[o]:Tt=o,0<(t=od(t,"onChange")).length&&(n=new nn("onChange","change",null,n,o),e.push({event:n,listeners:t}))}var Ln=null,Hn=null;function _n(e){Ku(e,0)}function Dn(e){if(mt(Je(e)))return e}function Fn(e,t){if("change"===e)return t}var Wn=!1;if(Ft){var Vn;if(Ft){var qn="oninput"in document;if(!qn){var Gn=document.createElement("div");Gn.setAttribute("oninput","return;"),qn="function"===typeof Gn.oninput}Vn=qn}else Vn=!1;Wn=Vn&&(!document.documentMode||9=t)return{node:o,offset:t-e};e=n}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=eo(o)}}function no(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?no(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function oo(e){for(var t=gt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(o){n=!1}if(!n)break;t=gt((e=t.contentWindow).document)}return t}function ro(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var ao=Ft&&"documentMode"in document&&11>=document.documentMode,io=null,co=null,lo=null,so=!1;function uo(e,t,n){var o=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;so||null==io||io!==gt(o)||("selectionStart"in(o=io)&&ro(o)?o={start:o.selectionStart,end:o.selectionEnd}:o={anchorNode:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset},lo&&Zn(lo,o)||(lo=o,0<(o=od(co,"onSelect")).length&&(t=new nn("onSelect","select",null,t,n),e.push({event:t,listeners:o}),t.target=io)))}function fo(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var po={animationend:fo("Animation","AnimationEnd"),animationiteration:fo("Animation","AnimationIteration"),animationstart:fo("Animation","AnimationStart"),transitionrun:fo("Transition","TransitionRun"),transitionstart:fo("Transition","TransitionStart"),transitioncancel:fo("Transition","TransitionCancel"),transitionend:fo("Transition","TransitionEnd")},mo={},go={};function ho(e){if(mo[e])return mo[e];if(!po[e])return e;var t,n=po[e];for(t in n)if(n.hasOwnProperty(t)&&t in go)return mo[e]=n[t];return e}Ft&&(go=document.createElement("div").style,"AnimationEvent"in window||(delete po.animationend.animation,delete po.animationiteration.animation,delete po.animationstart.animation),"TransitionEvent"in window||delete po.transitionend.transition);var vo=ho("animationend"),bo=ho("animationiteration"),yo=ho("animationstart"),xo=ho("transitionrun"),wo=ho("transitionstart"),So=ho("transitioncancel"),Co=ho("transitionend"),ko=new Map,Eo="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(" ");function jo(e,t){ko.set(e,t),ot(t,[e])}Eo.push("scrollEnd");var Oo="function"===typeof reportError?reportError:function(e){if("object"===typeof window&&"function"===typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===typeof e&&null!==e&&"string"===typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"===typeof process&&"function"===typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},Io=[],Ao=0,No=0;function Po(){for(var e=Ao,t=No=Ao=0;t>=i,r-=i,or=1<<32-xe(t)+r|n<g?(h=d,d=null):h=d.sibling;var v=p(r,d,c[g],l);if(null===v){null===d&&(d=h);break}e&&d&&null===v.alternate&&t(r,d),i=a(v,i,g),null===u?s=v:u.sibling=v,u=v,d=h}if(g===c.length)return n(r,d),fr&&ar(r,g),s;if(null===d){for(;gh?(v=g,g=null):v=g.sibling;var y=p(r,g,b.value,s);if(null===y){null===g&&(g=v);break}e&&g&&null===y.alternate&&t(r,g),c=a(y,c,h),null===d?u=y:d.sibling=y,d=y,g=v}if(b.done)return n(r,g),fr&&ar(r,h),u;if(null===g){for(;!b.done;h++,b=l.next())null!==(b=f(r,b.value,s))&&(c=a(b,c,h),null===d?u=b:d.sibling=b,d=b);return fr&&ar(r,h),u}for(g=o(g);!b.done;h++,b=l.next())null!==(b=m(g,r,h,b.value,s))&&(e&&null!==b.alternate&&g.delete(null===b.key?h:b.key),c=a(b,c,h),null===d?u=b:d.sibling=b,d=b);return e&&g.forEach(function(e){return t(r,e)}),fr&&ar(r,h),u}(l,s,u=y.call(u),d)}if("function"===typeof u.then)return b(l,s,ua(u),d);if(u.$$typeof===w)return b(l,s,Mr(l,u),d);fa(l,u)}return"string"===typeof u&&""!==u||"number"===typeof u||"bigint"===typeof u?(u=""+u,null!==s&&6===s.tag?(n(l,s.sibling),(d=r(s,u)).return=l,l=d):(n(l,s),(d=Go(u,l.mode,d)).return=l,l=d),c(l)):n(l,s)}return function(e,t,n,o){try{sa=0;var r=b(e,t,n,o);return la=null,r}catch(i){if(i===Jr||i===ea)throw i;var a=_o(29,i,null,e.mode);return a.lanes=o,a.return=e,a}}}var ma=pa(!0),ga=pa(!1),ha=!1;function va(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ba(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function ya(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function xa(e,t,n){var o=e.updateQueue;if(null===o)return null;if(o=o.shared,0!==(2&ps)){var r=o.pending;return null===r?t.next=t:(t.next=r.next,r.next=t),o.pending=t,t=Bo(e),To(e,null,n),t}return zo(e,o,t,n),Bo(e)}function wa(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194048&n))){var o=t.lanes;n|=o&=e.pendingLanes,t.lanes=n,Me(e,n)}}function Sa(e,t){var n=e.updateQueue,o=e.alternate;if(null!==o&&n===(o=o.updateQueue)){var r=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===a?r=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?r=a=t:a=a.next=t}else r=a=t;return n={baseState:o.baseState,firstBaseUpdate:r,lastBaseUpdate:a,shared:o.shared,callbacks:o.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ca=!1;function ka(){if(Ca){if(null!==Gr)throw Gr}}function Ea(e,t,n,o){Ca=!1;var r=e.updateQueue;ha=!1;var a=r.firstBaseUpdate,i=r.lastBaseUpdate,c=r.shared.pending;if(null!==c){r.shared.pending=null;var l=c,s=l.next;l.next=null,null===i?a=s:i.next=s,i=l;var u=e.alternate;null!==u&&((c=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===c?u.firstBaseUpdate=s:c.next=s,u.lastBaseUpdate=l))}if(null!==a){var d=r.baseState;for(i=0,u=s=l=null,c=a;;){var f=-536870913&c.lane,m=f!==c.lane;if(m?(hs&f)===f:(o&f)===f){0!==f&&f===qr&&(Ca=!0),null!==u&&(u=u.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});e:{var g=e,h=c;f=t;var v=n;switch(h.tag){case 1:if("function"===typeof(g=h.payload)){d=g.call(v,d,f);break e}d=g;break e;case 3:g.flags=-65537&g.flags|128;case 0:if(null===(f="function"===typeof(g=h.payload)?g.call(v,d,f):g)||void 0===f)break e;d=p({},d,f);break e;case 2:ha=!0}}null!==(f=c.callback)&&(e.flags|=64,m&&(e.flags|=8192),null===(m=r.callbacks)?r.callbacks=[f]:m.push(f))}else m={lane:f,tag:c.tag,payload:c.payload,callback:c.callback,next:null},null===u?(s=u=m,l=d):u=u.next=m,i|=f;if(null===(c=c.next)){if(null===(c=r.shared.pending))break;c=(m=c).next,m.next=null,r.lastBaseUpdate=m,r.shared.pending=null}}null===u&&(l=d),r.baseState=l,r.firstBaseUpdate=s,r.lastBaseUpdate=u,null===a&&(r.shared.lanes=0),ks|=i,e.lanes=i,e.memoizedState=d}}function ja(e,t){if("function"!==typeof e)throw Error(i(191,e));e.call(t)}function Oa(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;ea?a:8;var i=M.T,c={};M.T=c,dc(e,!1,t,n);try{var l=r(),s=M.S;if(null!==s&&s(c,l),null!==l&&"object"===typeof l&&"function"===typeof l.then)uc(e,t,function(e,t){var n=[],o={status:"pending",value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){o.status="fulfilled",o.value=t;for(var e=0;e<\/script>",a=a.removeChild(a.firstChild);break;case"select":a="string"===typeof o.is?c.createElement("select",{is:o.is}):c.createElement("select"),o.multiple?a.multiple=!0:o.size&&(a.size=o.size);break;default:a="string"===typeof o.is?c.createElement(r,{is:o.is}):c.createElement(r)}}a[Fe]=t,a[We]=o;e:for(c=t.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&27!==c.tag&&null!==c.child){c.child.return=c,c=c.child;continue}if(c===t)break e;for(;null===c.sibling;){if(null===c.return||c.return===t)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}t.stateNode=a;e:switch(fd(a,r,o),r){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&cl(t)}}return fl(t),ll(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==o&&cl(t);else{if("string"!==typeof o&&null===t.stateNode)throw Error(i(166));if(e=X.current,yr(t)){if(e=t.stateNode,n=t.memoizedProps,o=null,null!==(r=ur))switch(r.tag){case 27:case 5:o=r.memoizedProps}e[Fe]=t,(e=!!(e.nodeValue===n||null!==o&&!0===o.suppressHydrationWarning||sd(e.nodeValue,n)))||hr(t,!0)}else(e=hd(e).createTextNode(o))[Fe]=t,t.stateNode=e}return fl(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(o=yr(t),null!==n){if(null===e){if(!o)throw Error(i(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(i(557));e[Fe]=t}else xr(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fl(t),e=!1}else n=wr(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(_a(t),t):(_a(t),null);if(0!==(128&t.flags))throw Error(i(558))}return fl(t),null;case 13:if(o=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(r=yr(t),null!==o&&null!==o.dehydrated){if(null===e){if(!r)throw Error(i(318));if(!(r=null!==(r=t.memoizedState)?r.dehydrated:null))throw Error(i(317));r[Fe]=t}else xr(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fl(t),r=!1}else r=wr(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=r),r=!0;if(!r)return 256&t.flags?(_a(t),t):(_a(t),null)}return _a(t),0!==(128&t.flags)?(t.lanes=n,t):(n=null!==o,e=null!==e&&null!==e.memoizedState,n&&(r=null,null!==(o=t.child).alternate&&null!==o.alternate.memoizedState&&null!==o.alternate.memoizedState.cachePool&&(r=o.alternate.memoizedState.cachePool.pool),a=null,null!==o.memoizedState&&null!==o.memoizedState.cachePool&&(a=o.memoizedState.cachePool.pool),a!==r&&(o.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),ul(t,t.updateQueue),fl(t),null);case 4:return K(),null===e&&Zu(t.stateNode.containerInfo),fl(t),null;case 10:return Or(t.type),fl(t),null;case 19:if(D(Da),null===(o=t.memoizedState))return fl(t),null;if(r=0!==(128&t.flags),null===(a=o.rendering))if(r)dl(o,!1);else{if(0!==Cs||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(a=Fa(e))){for(t.flags|=128,dl(o,!1),e=a.updateQueue,t.updateQueue=e,ul(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Wo(n,e),n=n.sibling;return F(Da,1&Da.current|2),fr&&ar(t,o.treeForkCount),t.child}e=e.sibling}null!==o.tail&&le()>Ms&&(t.flags|=128,r=!0,dl(o,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=Fa(a))){if(t.flags|=128,r=!0,e=e.updateQueue,t.updateQueue=e,ul(t,e),dl(o,!0),null===o.tail&&"hidden"===o.tailMode&&!a.alternate&&!fr)return fl(t),null}else 2*le()-o.renderingStartTime>Ms&&536870912!==n&&(t.flags|=128,r=!0,dl(o,!1),t.lanes=4194304);o.isBackwards?(a.sibling=t.child,t.child=a):(null!==(e=o.last)?e.sibling=a:t.child=a,o.last=a)}return null!==o.tail?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=le(),e.sibling=null,n=Da.current,F(Da,r?1&n|2:1&n),fr&&ar(t,o.treeForkCount),e):(fl(t),null);case 22:case 23:return _a(t),za(),o=null!==t.memoizedState,null!==e?null!==e.memoizedState!==o&&(t.flags|=8192):o&&(t.flags|=8192),o?0!==(536870912&n)&&0===(128&t.flags)&&(fl(t),6&t.subtreeFlags&&(t.flags|=8192)):fl(t),null!==(n=t.updateQueue)&&ul(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),o=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(o=t.memoizedState.cachePool.pool),o!==n&&(t.flags|=2048),null!==e&&D($r),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Or(_r),fl(t),null;case 25:case 30:return null}throw Error(i(156,t.tag))}function ml(e,t){switch(lr(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Or(_r),K(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return Q(t),null;case 31:if(null!==t.memoizedState){if(_a(t),null===t.alternate)throw Error(i(340));xr()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(_a(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));xr()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return D(Da),null;case 4:return K(),null;case 10:return Or(t.type),null;case 22:case 23:return _a(t),za(),null!==e&&D($r),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return Or(_r),null;default:return null}}function gl(e,t){switch(lr(t),t.tag){case 3:Or(_r),K();break;case 26:case 27:case 5:Q(t);break;case 4:K();break;case 31:null!==t.memoizedState&&_a(t);break;case 13:_a(t);break;case 19:D(Da);break;case 10:Or(t.type);break;case 22:case 23:_a(t),za(),null!==e&&D($r);break;case 24:Or(_r)}}function hl(e,t){try{var n=t.updateQueue,o=null!==n?n.lastEffect:null;if(null!==o){var r=o.next;n=r;do{if((n.tag&e)===e){o=void 0;var a=n.create,i=n.inst;o=a(),i.destroy=o}n=n.next}while(n!==r)}}catch(c){Cu(t,t.return,c)}}function vl(e,t,n){try{var o=t.updateQueue,r=null!==o?o.lastEffect:null;if(null!==r){var a=r.next;o=a;do{if((o.tag&e)===e){var i=o.inst,c=i.destroy;if(void 0!==c){i.destroy=void 0,r=t;var l=n,s=c;try{s()}catch(u){Cu(r,l,u)}}}o=o.next}while(o!==a)}}catch(u){Cu(t,t.return,u)}}function bl(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{Oa(t,n)}catch(o){Cu(e,e.return,o)}}}function yl(e,t,n){n.props=Cc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(o){Cu(e,t,o)}}function xl(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var o=e.stateNode;break;default:o=e.stateNode}"function"===typeof n?e.refCleanup=n(o):n.current=o}}catch(r){Cu(e,t,r)}}function wl(e,t){var n=e.ref,o=e.refCleanup;if(null!==n)if("function"===typeof o)try{o()}catch(r){Cu(e,t,r)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"===typeof n)try{n(null)}catch(a){Cu(e,t,a)}else n.current=null}function Sl(e){var t=e.type,n=e.memoizedProps,o=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&o.focus();break e;case"img":n.src?o.src=n.src:n.srcSet&&(o.srcset=n.srcSet)}}catch(r){Cu(e,e.return,r)}}function Cl(e,t,n){try{var o=e.stateNode;!function(e,t,n,o){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var r=null,a=null,c=null,l=null,s=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&null!=f)switch(m){case"checked":case"value":break;case"defaultValue":s=f;default:o.hasOwnProperty(m)||ud(e,t,m,null,o,f)}}for(var p in o){var m=o[p];if(f=n[p],o.hasOwnProperty(p)&&(null!=m||null!=f))switch(p){case"type":a=m;break;case"name":r=m;break;case"checked":u=m;break;case"defaultChecked":d=m;break;case"value":c=m;break;case"defaultValue":l=m;break;case"children":case"dangerouslySetInnerHTML":if(null!=m)throw Error(i(137,t));break;default:m!==f&&ud(e,t,p,m,o,f)}}return void bt(e,c,l,s,u,d,a,r);case"select":for(a in m=c=l=p=null,n)if(s=n[a],n.hasOwnProperty(a)&&null!=s)switch(a){case"value":break;case"multiple":m=s;default:o.hasOwnProperty(a)||ud(e,t,a,null,o,s)}for(r in o)if(a=o[r],s=n[r],o.hasOwnProperty(r)&&(null!=a||null!=s))switch(r){case"value":p=a;break;case"defaultValue":l=a;break;case"multiple":c=a;default:a!==s&&ud(e,t,r,a,o,s)}return t=l,n=c,o=m,void(null!=p?wt(e,!!n,p,!1):!!o!==!!n&&(null!=t?wt(e,!!n,t,!0):wt(e,!!n,n?[]:"",!1)));case"textarea":for(l in m=p=null,n)if(r=n[l],n.hasOwnProperty(l)&&null!=r&&!o.hasOwnProperty(l))switch(l){case"value":case"children":break;default:ud(e,t,l,null,o,r)}for(c in o)if(r=o[c],a=n[c],o.hasOwnProperty(c)&&(null!=r||null!=a))switch(c){case"value":p=r;break;case"defaultValue":m=r;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=r)throw Error(i(91));break;default:r!==a&&ud(e,t,c,r,o,a)}return void St(e,p,m);case"option":for(var g in n)if(p=n[g],n.hasOwnProperty(g)&&null!=p&&!o.hasOwnProperty(g))if("selected"===g)e.selected=!1;else ud(e,t,g,null,o,p);for(s in o)if(p=o[s],m=n[s],o.hasOwnProperty(s)&&p!==m&&(null!=p||null!=m))if("selected"===s)e.selected=p&&"function"!==typeof p&&"symbol"!==typeof p;else ud(e,t,s,p,o,m);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 h in n)p=n[h],n.hasOwnProperty(h)&&null!=p&&!o.hasOwnProperty(h)&&ud(e,t,h,null,o,p);for(u in o)if(p=o[u],m=n[u],o.hasOwnProperty(u)&&p!==m&&(null!=p||null!=m))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(i(137,t));break;default:ud(e,t,u,p,o,m)}return;default:if(It(t)){for(var v in n)p=n[v],n.hasOwnProperty(v)&&void 0!==p&&!o.hasOwnProperty(v)&&dd(e,t,v,void 0,o,p);for(d in o)p=o[d],m=n[d],!o.hasOwnProperty(d)||p===m||void 0===p&&void 0===m||dd(e,t,d,p,o,m);return}}for(var b in n)p=n[b],n.hasOwnProperty(b)&&null!=p&&!o.hasOwnProperty(b)&&ud(e,t,b,null,o,p);for(f in o)p=o[f],m=n[f],!o.hasOwnProperty(f)||p===m||null==p&&null==m||ud(e,t,f,p,o,m)}(o,e.type,n,t),o[We]=t}catch(r){Cu(e,e.return,r)}}function kl(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&jd(e.type)||4===e.tag}function El(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||kl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&jd(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function jl(e,t,n){var o=e.tag;if(5===o||6===o)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=zt));else if(4!==o&&(27===o&&jd(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(jl(e,t,n),e=e.sibling;null!==e;)jl(e,t,n),e=e.sibling}function Ol(e,t,n){var o=e.tag;if(5===o||6===o)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==o&&(27===o&&jd(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(Ol(e,t,n),e=e.sibling;null!==e;)Ol(e,t,n),e=e.sibling}function Il(e){var t=e.stateNode,n=e.memoizedProps;try{for(var o=e.type,r=t.attributes;r.length;)t.removeAttributeNode(r[0]);fd(t,o,n),t[Fe]=e,t[We]=n}catch(a){Cu(e,e.return,a)}}var Al=!1,Nl=!1,Pl=!1,zl="function"===typeof WeakSet?WeakSet:Set,Rl=null;function Ml(e,t,n){var o=n.flags;switch(n.tag){case 0:case 11:case 15:$l(e,n),4&o&&hl(5,n);break;case 1:if($l(e,n),4&o)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(i){Cu(n,n.return,i)}else{var r=Cc(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(r,t,e.__reactInternalSnapshotBeforeUpdate)}catch(c){Cu(n,n.return,c)}}64&o&&bl(n),512&o&&xl(n,n.return);break;case 3:if($l(e,n),64&o&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{Oa(e,t)}catch(i){Cu(n,n.return,i)}}break;case 27:null===t&&4&o&&Il(n);case 26:case 5:$l(e,n),null===t&&4&o&&Sl(n),512&o&&xl(n,n.return);break;case 12:$l(e,n);break;case 31:$l(e,n),4&o&&Dl(e,n);break;case 13:$l(e,n),4&o&&Fl(e,n),64&o&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var o=function(){t(),n.removeEventListener("DOMContentLoaded",o)};n.addEventListener("DOMContentLoaded",o),e._reactRetry=o}}(e,n=Ou.bind(null,n))));break;case 22:if(!(o=null!==n.memoizedState||Al)){t=null!==t&&null!==t.memoizedState||Nl,r=Al;var a=Nl;Al=o,(Nl=t)&&!a?Yl(e,n,0!==(8772&n.subtreeFlags)):$l(e,n),Al=r,Nl=a}break;case 30:break;default:$l(e,n)}}function Tl(e){var t=e.alternate;null!==t&&(e.alternate=null,Tl(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&Ke(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Bl=null,Ll=!1;function Hl(e,t,n){for(n=n.child;null!==n;)_l(e,t,n),n=n.sibling}function _l(e,t,n){if(be&&"function"===typeof be.onCommitFiberUnmount)try{be.onCommitFiberUnmount(ve,n)}catch(a){}switch(n.tag){case 26:Nl||wl(n,t),Hl(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Nl||wl(n,t);var o=Bl,r=Ll;jd(n.type)&&(Bl=n.stateNode,Ll=!1),Hl(e,t,n),Hd(n.stateNode),Bl=o,Ll=r;break;case 5:Nl||wl(n,t);case 6:if(o=Bl,r=Ll,Bl=null,Hl(e,t,n),Ll=r,null!==(Bl=o))if(Ll)try{(9===Bl.nodeType?Bl.body:"HTML"===Bl.nodeName?Bl.ownerDocument.body:Bl).removeChild(n.stateNode)}catch(i){Cu(n,t,i)}else try{Bl.removeChild(n.stateNode)}catch(i){Cu(n,t,i)}break;case 18:null!==Bl&&(Ll?(Od(9===(e=Bl).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),Gf(e)):Od(Bl,n.stateNode));break;case 4:o=Bl,r=Ll,Bl=n.stateNode.containerInfo,Ll=!0,Hl(e,t,n),Bl=o,Ll=r;break;case 0:case 11:case 14:case 15:vl(2,n,t),Nl||vl(4,n,t),Hl(e,t,n);break;case 1:Nl||(wl(n,t),"function"===typeof(o=n.stateNode).componentWillUnmount&&yl(n,t,o)),Hl(e,t,n);break;case 21:Hl(e,t,n);break;case 22:Nl=(o=Nl)||null!==n.memoizedState,Hl(e,t,n),Nl=o;break;default:Hl(e,t,n)}}function Dl(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&null!==(e=e.memoizedState))){e=e.dehydrated;try{Gf(e)}catch(n){Cu(t,t.return,n)}}}function Fl(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{Gf(e)}catch(n){Cu(t,t.return,n)}}function Wl(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new zl),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new zl),t;default:throw Error(i(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var o=Iu.bind(null,e,t);t.then(o,o)}})}function Vl(e,t){var n=t.deletions;if(null!==n)for(var o=0;o title"))),fd(a,o,n),a[Fe]=e,et(a),o=a;break e;case"link":var c=nf("link","href",r).get(o+(n.href||""));if(c)for(var l=0;lc)break;var u=l.transferSize,d=l.initiatorType;u&&pd(d)&&(i+=u*((l=l.responseEnd)af?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(o),clearTimeout(r)}}:null}(d,m)))return Ds=a,e.cancelPendingCommit=m(gu.bind(null,e,t,a,n,o,r,i,c,l,u,d,null,f,p)),void Js(e,a,i,!s)}gu(e,t,a,n,o,r,i,c,l)}function Qs(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var o=0;oh&&(i=h,h=g,g=i);var v=to(c,g),b=to(c,h);if(v&&b&&(1!==p.rangeCount||p.anchorNode!==v.node||p.anchorOffset!==v.offset||p.focusNode!==b.node||p.focusOffset!==b.offset)){var y=d.createRange();y.setStart(v.node,v.offset),p.removeAllRanges(),g>h?(p.addRange(y),p.extend(b.node,b.offset)):(y.setEnd(b.node,b.offset),p.addRange(y))}}}}for(d=[],p=c;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"===typeof c.focus&&c.focus(),c=0;cn?32:n,M.T=null,n=Ws,Ws=null;var a=Hs,c=Ds;if(Ls=0,_s=Hs=null,Ds=0,0!==(6&ps))throw Error(i(331));var l=ps;if(ps|=4,ls(a.current),es(a,a.current,c,n),ps=l,Bu(0,!1),be&&"function"===typeof be.onPostCommitFiberRoot)try{be.onPostCommitFiberRoot(ve,a)}catch(s){}return!0}finally{T.p=r,M.T=o,yu(e,t)}}function Su(e,t,n){t=Ko(n,t),null!==(e=xa(e,t=Ac(e.stateNode,t,2),2))&&(ze(e,2),Tu(e))}function Cu(e,t,n){if(3===e.tag)Su(e,e,n);else for(;null!==t;){if(3===t.tag){Su(t,e,n);break}if(1===t.tag){var o=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof o.componentDidCatch&&(null===Bs||!Bs.has(o))){e=Ko(n,e),null!==(o=xa(t,n=Nc(2),2))&&(Pc(n,o,t,e),ze(o,2),Tu(o));break}}t=t.return}}function ku(e,t,n){var o=e.pingCache;if(null===o){o=e.pingCache=new fs;var r=new Set;o.set(t,r)}else void 0===(r=o.get(t))&&(r=new Set,o.set(t,r));r.has(n)||(ws=!0,r.add(n),e=Eu.bind(null,e,t,n),t.then(e,e))}function Eu(e,t,n){var o=e.pingCache;null!==o&&o.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,ms===e&&(hs&n)===n&&(4===Cs||3===Cs&&(62914560&hs)===hs&&300>le()-zs?0===(2&ps)&&tu(e,0):js|=n,Is===hs&&(Is=0)),Tu(e)}function ju(e,t){0===t&&(t=Ne()),null!==(e=Mo(e,t))&&(ze(e,t),Tu(e))}function Ou(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),ju(e,n)}function Iu(e,t){var n=0;switch(e.tag){case 31:case 13:var o=e.stateNode,r=e.memoizedState;null!==r&&(n=r.retryLane);break;case 19:o=e.stateNode;break;case 22:o=e.stateNode._retryCache;break;default:throw Error(i(314))}null!==o&&o.delete(t),ju(e,n)}var Au=null,Nu=null,Pu=!1,zu=!1,Ru=!1,Mu=0;function Tu(e){e!==Nu&&null===e.next&&(null===Nu?Au=Nu=e:Nu=Nu.next=e),zu=!0,Pu||(Pu=!0,kd(function(){0!==(6&ps)?re(ue,Lu):Hu()}))}function Bu(e,t){if(!Ru&&zu){Ru=!0;do{for(var n=!1,o=Au;null!==o;){if(!t)if(0!==e){var r=o.pendingLanes;if(0===r)var a=0;else{var i=o.suspendedLanes,c=o.pingedLanes;a=(1<<31-xe(42|e)+1)-1,a=201326741&(a&=r&~(i&~c))?201326741&a|1:a?2|a:0}0!==a&&(n=!0,Fu(o,a))}else a=hs,0===(3&(a=Oe(o,o===ms?a:0,null!==o.cancelPendingCommit||-1!==o.timeoutHandle)))||Ie(o,a)||(n=!0,Fu(o,a));o=o.next}}while(n);Ru=!1}}function Lu(){Hu()}function Hu(){zu=Pu=!1;var e=0;0!==Mu&&function(){var e=window.event;if(e&&"popstate"===e.type)return e!==xd&&(xd=e,!0);return xd=null,!1}()&&(e=Mu);for(var t=le(),n=null,o=Au;null!==o;){var r=o.next,a=_u(o,t);0===a?(o.next=null,null===n?Au=r:n.next=r,null===r&&(Nu=n)):(n=o,(0!==e||0!==(3&a))&&(zu=!0)),o=r}0!==Ls&&5!==Ls||Bu(e,!1),0!==Mu&&(Mu=0)}function _u(e,t){for(var n=e.suspendedLanes,o=e.pingedLanes,r=e.expirationTimes,a=-62914561&e.pendingLanes;0 title"):null)}function rf(e){return"stylesheet"!==e.type||0!==(3&e.state.loading)}var af=0;function cf(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)sf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var lf=null;function sf(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,lf=new Map,t.forEach(uf,e),lf=null,cf.call(e))}function uf(e,t){if(!(4&t.state.loading)){var n=lf.get(e);if(n)var o=n.get(null);else{n=new Map,lf.set(e,n);for(var r=e.querySelectorAll("link[data-precedence],style[data-precedence]"),a=0;a>>1,r=e[o];if(!(0>>1;oa(l,n))sa(u,l)?(e[o]=u,e[s]=n,o=s):(e[o]=l,e[c]=n,o=c);else{if(!(sa(u,n)))break e;e[o]=u,e[s]=n,o=s}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"===typeof performance&&"function"===typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var c=Date,l=c.now();t.unstable_now=function(){return c.now()-l}}var s=[],u=[],d=1,f=null,p=3,m=!1,g=!1,h=!1,v=!1,b="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,x="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var t=o(u);null!==t;){if(null===t.callback)r(u);else{if(!(t.startTime<=e))break;r(u),t.sortIndex=t.expirationTime,n(s,t)}t=o(u)}}function S(e){if(h=!1,w(e),!g)if(null!==o(s))g=!0,k||(k=!0,C());else{var t=o(u);null!==t&&z(S,t.startTime-e)}}var C,k=!1,E=-1,j=5,O=-1;function I(){return!!v||!(t.unstable_now()-Oe&&I());){var i=f.callback;if("function"===typeof i){f.callback=null,p=f.priorityLevel;var c=i(f.expirationTime<=e);if(e=t.unstable_now(),"function"===typeof c){f.callback=c,w(e),n=!0;break t}f===o(s)&&r(s),w(e)}else r(s);f=o(s)}if(null!==f)n=!0;else{var l=o(u);null!==l&&z(S,l.startTime-e),n=!1}}break e}finally{f=null,p=a,m=!1}n=void 0}}finally{n?C():k=!1}}}if("function"===typeof x)C=function(){x(A)};else if("undefined"!==typeof MessageChannel){var N=new MessageChannel,P=N.port2;N.port1.onmessage=A,C=function(){P.postMessage(null)}}else C=function(){b(A,0)};function z(e,n){E=b(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125i?(e.sortIndex=a,n(u,e),null===o(s)&&e===o(u)&&(h?(y(E),E=-1):h=!0,z(S,a-i))):(e.sortIndex=c,n(s,e),g||m||(g=!0,k||(k=!0,C()))),e},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},853(e,t,n){"use strict";e.exports=n(896)},520(e){e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],o=0;or});var o=n(816);function r(e,t,n){return(t=(0,o.A)(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},379(e,t,n){"use strict";n.d(t,{A:()=>a});var o=n(467);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,o)}return n}function a(e){for(var t=1;tr});var o=n(284);function r(e){var t=function(e,t){if("object"!=(0,o.A)(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=(0,o.A)(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==(0,o.A)(t)?t:t+""}},284(e,t,n){"use strict";function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}n.d(t,{A:()=>o})}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var a=t[o]={exports:{}};return e[o](a,a.exports,n),a.exports}n.m=e,n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(o,r){if(1&r&&(o=this(o)),8&r)return o;if("object"===typeof o&&o){if(4&r&&o.__esModule)return o;if(16&r&&"function"===typeof o.then)return o}var a=Object.create(null);n.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var c=2&r&&o;("object"==typeof c||"function"==typeof c)&&!~e.indexOf(c);c=t(c))Object.getOwnPropertyNames(c).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,n.d(a,i),a}})(),n.d=(e,t)=>{for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((t,o)=>(n.f[o](e,t),t),[])),n.u=e=>"static/js/"+e+".d0dce72f.chunk.js",n.miniCssF=e=>{},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="ai-novel:";n.l=(o,r,a,i)=>{if(e[o])e[o].push(r);else{var c,l;if(void 0!==a)for(var s=document.getElementsByTagName("script"),u=0;u{c.onerror=c.onload=null,clearTimeout(p);var r=e[o];if(delete e[o],c.parentNode&&c.parentNode.removeChild(c),r&&r.forEach(e=>e(n)),t)return t(n)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=f.bind(null,c.onerror),c.onload=f.bind(null,c.onload),l&&document.head.appendChild(c)}}})(),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",(()=>{var e={792:0};n.f.j=(t,o)=>{var r=n.o(e,t)?e[t]:void 0;if(0!==r)if(r)o.push(r[2]);else{var a=new Promise((n,o)=>r=e[t]=[n,o]);o.push(r[2]=a);var i=n.p+n.u(t),c=new Error;n.l(i,o=>{if(n.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;c.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",c.name="ChunkLoadError",c.type=a,c.request=i,r[1](c)}},"chunk-"+t,t)}};var t=(t,o)=>{var r,a,[i,c,l]=o,s=0;if(i.some(t=>0!==e[t])){for(r in c)n.o(c,r)&&(n.m[r]=c[r]);if(l)l(n)}for(t&&t(o);s{"use strict";var e=n(43),t=n.t(e,2),o=n(391);function r(e,t){if(null==e)return{};var n,o,r=function(e,t){if(null==e)return{};var n={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(-1!==t.indexOf(o))continue;n[o]=e[o]}return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o0&&void 0!==arguments[0]?arguments[0]:{})}function g(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function h(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(aO){}}}function v(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.unstable_mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function b(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;return(0,a.A)((0,a.A)({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?x(t):t),{},{state:n,key:t&&t.key||o||Math.random().toString(36).substring(2,10),unstable_mask:r})}function y(e){let{pathname:t="/",search:n="",hash:o=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),o&&"#"!==o&&(t+="#"===o.charAt(0)?o:"#"+o),t}function x(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let o=e.indexOf("?");o>=0&&(t.search=e.substring(o),e=e.substring(0,o)),e&&(t.pathname=e)}return t}function w(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{window:r=document.defaultView,v5Compat:i=!1}=o,c=r.history,l="POP",s=null,u=d();function d(){return(c.state||{idx:null}).idx}function m(){l="POP";let e=d(),t=null==e?null:e-u;u=e,s&&s({action:l,location:h.location,delta:t})}function g(e){return S(e)}null==u&&(u=0,c.replaceState((0,a.A)((0,a.A)({},c.state),{},{idx:u}),""));let h={get action(){return l},get location(){return e(r,c)},listen(e){if(s)throw new Error("A history only accepts one active listener");return r.addEventListener(f,m),s=e,()=>{r.removeEventListener(f,m),s=null}},createHref:e=>t(r,e),createURL:g,encodeLocation(e){let t=g(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l="PUSH";let o=p(e)?e:b(h.location,e,t);n&&n(o,e),u=d()+1;let a=v(o,u),f=h.createHref(o.unstable_mask||o);try{c.pushState(a,"",f)}catch(m){if(m instanceof DOMException&&"DataCloneError"===m.name)throw m;r.location.assign(f)}i&&s&&s({action:l,location:h.location,delta:1})},replace:function(e,t){l="REPLACE";let o=p(e)?e:b(h.location,e,t);n&&n(o,e),u=d();let r=v(o,u),a=h.createHref(o.unstable_mask||o);c.replaceState(r,"",a),i&&s&&s({action:l,location:h.location,delta:0})},go:e=>c.go(e)};return h}function S(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="http://localhost";"undefined"!==typeof window&&(n="null"!==window.location.origin?window.location.origin:window.location.href),g(n,"No window.location.(origin|href) available to create URL");let o="string"===typeof e?e:y(e);return o=o.replace(/ $/,"%20"),!t&&o.startsWith("//")&&(o=n+o),new URL(o,n)}new WeakMap;function C(e,t){return k(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"/",!1)}function k(e,t,n,o){let r=_(("string"===typeof t?x(t):t).pathname||"/",n);if(null==r)return null;let a=E(e);!function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n]);return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(a);let i=null;for(let c=0;null==i&&c1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",r=arguments.length>4&&void 0!==arguments[4]&&arguments[4],a=function(e,a){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:r,c=arguments.length>3?arguments[3]:void 0,l={relativePath:void 0===c?e.path||"":c,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};if(l.relativePath.startsWith("/")){if(!l.relativePath.startsWith(o)&&i)return;g(l.relativePath.startsWith(o),'Absolute route path "'.concat(l.relativePath,'" nested under path "').concat(o,'" is not valid. An absolute child route path must start with the combined path of all its parent routes.')),l.relativePath=l.relativePath.slice(o.length)}let s=X([o,l.relativePath]),u=n.concat(l);e.children&&e.children.length>0&&(g(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'.concat(s,'".')),E(e.children,t,u,s,i)),(null!=e.path||e.index)&&t.push({path:s,score:M(s,e.index),routesMeta:u})};return e.forEach((e,t)=>{var n;if(""!==e.path&&null!==(n=e.path)&&void 0!==n&&n.includes("?"))for(let o of j(e.path))a(e,t,!0,o);else a(e,t)}),t}function j(e){let t=e.split("/");if(0===t.length)return[];let[n,...o]=t,r=n.endsWith("?"),a=n.replace(/\?$/,"");if(0===o.length)return r?[a,""]:[a];let i=j(o.join("/")),c=[];return c.push(...i.map(e=>""===e?a:[a,e].join("/"))),r&&c.push(...i),c.map(t=>e.startsWith("/")&&""===t?"/":t)}var O=/^:[\w-]+$/,I=3,A=2,N=1,P=10,z=-2,R=e=>"*"===e;function M(e,t){let n=e.split("/"),o=n.length;return n.some(R)&&(o+=z),t&&(o+=A),n.filter(e=>!R(e)).reduce((e,t)=>e+(O.test(t)?I:""===t?N:P),o)}function T(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],{routesMeta:o}=e,r={},a="/",i=[];for(let c=0;c{let{paramName:o,isOptional:r}=t;if("*"===o){let e=c[n]||"";i=a.slice(0,a.length-e.length).replace(/(.)\/+$/,"$1")}const l=c[n];return e[o]=r&&!l?void 0:(l||"").replace(/%2F/g,"/"),e},{});return{params:l,pathname:a,pathnameBase:i,pattern:e}}function L(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];h("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'.concat(e,'" will be treated as if it were "').concat(e.replace(/\*$/,"/*"),'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "').concat(e.replace(/\*$/,"/*"),'".'));let o=[],r="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,n,r,a)=>{if(o.push({paramName:t,isOptional:null!=n}),n){let t=a.charAt(r+e.length);return t&&"/"!==t?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(o.push({paramName:"*"}),r+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":""!==e&&"/"!==e&&(r+="(?:(?=\\/|$))"),[new RegExp(r,t?void 0:"i"),o]}function H(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return h(!1,'The URL path "'.concat(e,'" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (').concat(t,").")),e}}function _(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,o=e.charAt(n);return o&&"/"!==o?null:e.slice(n)||"/"}var D=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function F(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)}),n.length>1?n.join("/"):"/"}function W(e,t,n,o){return"Cannot include a '".concat(e,"' character in a manually specified `to.").concat(t,"` field [").concat(JSON.stringify(o),"]. Please separate it out to the `to.").concat(n,'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.')}function V(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function q(e){let t=V(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function G(e,t,n){let o,r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];"string"===typeof e?o=x(e):(o=(0,a.A)({},e),g(!o.pathname||!o.pathname.includes("?"),W("?","pathname","search",o)),g(!o.pathname||!o.pathname.includes("#"),W("#","pathname","hash",o)),g(!o.search||!o.search.includes("#"),W("#","search","hash",o)));let i,c=""===e||""===o.pathname,l=c?"/":o.pathname;if(null==l)i=n;else{let e=t.length-1;if(!r&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;o.pathname=t.join("/")}i=e>=0?t[e]:"/"}let s=function(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",{pathname:o,search:r="",hash:a=""}="string"===typeof e?x(e):e;return o?(o=o.replace(/\/\/+/g,"/"),t=o.startsWith("/")?F(o.substring(1),"/"):F(o,n)):t=n,{pathname:t,search:$(r),hash:K(a)}}(o,i),u=l&&"/"!==l&&l.endsWith("/"),d=(c||"."===l)&&n.endsWith("/");return s.pathname.endsWith("/")||!u&&!d||(s.pathname+="/"),s}var X=e=>e.join("/").replace(/\/\/+/g,"/"),U=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),$=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",K=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";var Y=class{constructor(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.status=e,this.statusText=t||"",this.internal=o,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Q(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}function J(e){return e.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var Z="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement;function ee(e,t){let n=e;if("string"!==typeof n||!D.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let o=n,r=!1;if(Z)try{let e=new URL(window.location.href),o=n.startsWith("//")?new URL(e.protocol+n):new URL(n),a=_(o.pathname,t);o.origin===e.origin&&null!=a?n=a+o.search+o.hash:r=!0}catch(aO){h(!1,' contains an invalid URL which will probably break when clicked - please update to a valid URL path.'))}return{absoluteURL:o,isExternal:r,to:n}}Symbol("Uninstrumented");Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var te=["POST","PUT","PATCH","DELETE"],ne=(new Set(te),["GET",...te]);new Set(ne),Symbol("ResetLoaderData");var oe=e.createContext(null);oe.displayName="DataRouter";var re=e.createContext(null);re.displayName="DataRouterState";var ae=e.createContext(!1);function ie(){return e.useContext(ae)}var ce=e.createContext({isTransitioning:!1});ce.displayName="ViewTransition";var le=e.createContext(new Map);le.displayName="Fetchers";var se=e.createContext(null);se.displayName="Await";var ue=e.createContext(null);ue.displayName="Navigation";var de=e.createContext(null);de.displayName="Location";var fe=e.createContext({outlet:null,matches:[],isDataRoute:!1});fe.displayName="Route";var pe=e.createContext(null);pe.displayName="RouteError";var me="REACT_ROUTER_ERROR";function ge(){return null!=e.useContext(de)}function he(){return g(ge(),"useLocation() may be used only in the context of a component."),e.useContext(de).location}var ve="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function be(t){e.useContext(ue).static||e.useLayoutEffect(t)}function ye(){let{isDataRoute:t}=e.useContext(fe);return t?function(){let{router:t}=ze("useNavigate"),n=Me("useNavigate"),o=e.useRef(!1);be(()=>{o.current=!0});let r=e.useCallback(async function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};h(o.current,ve),o.current&&("number"===typeof e?await t.navigate(e):await t.navigate(e,(0,a.A)({fromRouteId:n},r)))},[t,n]);return r}():function(){g(ge(),"useNavigate() may be used only in the context of a component.");let t=e.useContext(oe),{basename:n,navigator:o}=e.useContext(ue),{matches:r}=e.useContext(fe),{pathname:a}=he(),i=JSON.stringify(q(r)),c=e.useRef(!1);be(()=>{c.current=!0});let l=e.useCallback(function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(h(c.current,ve),!c.current)return;if("number"===typeof e)return void o.go(e);let l=G(e,JSON.parse(i),a,"path"===r.relative);null==t&&"/"!==n&&(l.pathname="/"===l.pathname?n:X([n,l.pathname])),(r.replace?o.replace:o.push)(l,r.state,r)},[n,o,i,a,t]);return l}()}var xe=e.createContext(null);function we(){let{matches:t}=e.useContext(fe),n=t[t.length-1];return n?n.params:{}}function Se(t){let{relative:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{matches:o}=e.useContext(fe),{pathname:r}=he(),a=JSON.stringify(q(o));return e.useMemo(()=>G(t,JSON.parse(a),r,"path"===n),[t,a,r,n])}function Ce(t,n,o){g(ge(),"useRoutes() may be used only in the context of a component.");let{navigator:r}=e.useContext(ue),{matches:i}=e.useContext(fe),c=i[i.length-1],l=c?c.params:{},s=c?c.pathname:"/",u=c?c.pathnameBase:"/",d=c&&c.route;{let e=d&&d.path||"";Le(s,!d||e.endsWith("*")||e.endsWith("*?"),'You rendered descendant (or called `useRoutes()`) at "'.concat(s,'" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won\'t match anymore and therefore the child routes will never render.\n\nPlease change the parent to .'))}let f,p=he();if(n){var m;let e="string"===typeof n?x(n):n;g("/"===u||(null===(m=e.pathname)||void 0===m?void 0:m.startsWith(u)),'When overriding the location using `` or `useRoutes(routes, location)`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "'.concat(u,'" but pathname "').concat(e.pathname,'" was given in the `location` prop.')),f=e}else f=p;let v=f.pathname||"/",b=v;if("/"!==u){let e=u.replace(/^\//,"").split("/");b="/"+v.replace(/^\//,"").split("/").slice(e.length).join("/")}let y=C(t,{pathname:b});h(d||null!=y,'No routes matched location "'.concat(f.pathname).concat(f.search).concat(f.hash,'" ')),h(null==y||void 0!==y[y.length-1].route.element||void 0!==y[y.length-1].route.Component||void 0!==y[y.length-1].route.lazy,'Matched leaf route at location "'.concat(f.pathname).concat(f.search).concat(f.hash,'" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.'));let w=Ne(y&&y.map(e=>Object.assign({},e,{params:Object.assign({},l,e.params),pathname:X([u,r.encodeLocation?r.encodeLocation(e.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:X([u,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),i,o);return n&&w?e.createElement(de.Provider,{value:{location:(0,a.A)({pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0},f),navigationType:"POP"}},w):w}function ke(){let t=Te(),n=Q(t)?"".concat(t.status," ").concat(t.statusText):t instanceof Error?t.message:JSON.stringify(t),o=t instanceof Error?t.stack:null,r="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:r},i={padding:"2px 4px",backgroundColor:r},c=null;return console.error("Error handled by React Router default ErrorBoundary:",t),c=e.createElement(e.Fragment,null,e.createElement("p",null,"\ud83d\udcbf Hey developer \ud83d\udc4b"),e.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",e.createElement("code",{style:i},"ErrorBoundary")," or"," ",e.createElement("code",{style:i},"errorElement")," prop on your route.")),e.createElement(e.Fragment,null,e.createElement("h2",null,"Unexpected Application Error!"),e.createElement("h3",{style:{fontStyle:"italic"}},n),o?e.createElement("pre",{style:a},o):null,c)}var Ee=e.createElement(ke,null),je=class extends e.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let t=this.state.error;if(this.context&&"object"===typeof t&&t&&"digest"in t&&"string"===typeof t.digest){const e=function(e){if(e.startsWith("".concat(me,":").concat("ROUTE_ERROR_RESPONSE",":{")))try{let t=JSON.parse(e.slice(40));if("object"===typeof t&&t&&"number"===typeof t.status&&"string"===typeof t.statusText)return new Y(t.status,t.statusText,t.data)}catch(t){}}(t.digest);e&&(t=e)}let n=void 0!==t?e.createElement(fe.Provider,{value:this.props.routeContext},e.createElement(pe.Provider,{value:t,children:this.props.component})):this.props.children;return this.context?e.createElement(Ie,{error:t},n):n}};je.contextType=ae;var Oe=new WeakMap;function Ie(t){let{children:n,error:o}=t,{basename:r}=e.useContext(ue);if("object"===typeof o&&o&&"digest"in o&&"string"===typeof o.digest){let t=function(e){if(e.startsWith("".concat(me,":").concat("REDIRECT",":{")))try{let t=JSON.parse(e.slice(28));if("object"===typeof t&&t&&"number"===typeof t.status&&"string"===typeof t.statusText&&"string"===typeof t.location&&"boolean"===typeof t.reloadDocument&&"boolean"===typeof t.replace)return t}catch(t){}}(o.digest);if(t){let n=Oe.get(o);if(n)throw n;let a=ee(t.location,r);if(Z&&!Oe.get(o)){if(!a.isExternal&&!t.reloadDocument){const e=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:t.replace}));throw Oe.set(o,e),e}window.location.href=a.absoluteURL||a.to}return e.createElement("meta",{httpEquiv:"refresh",content:"0;url=".concat(a.absoluteURL||a.to)})}}return n}function Ae(t){let{routeContext:n,match:o,children:r}=t,a=e.useContext(oe);return a&&a.static&&a.staticContext&&(o.route.errorElement||o.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=o.route.id),e.createElement(fe.Provider,{value:n},r)}function Ne(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2?arguments[2]:void 0,r=null===o||void 0===o?void 0:o.state;if(null==t){if(!r)return null;if(r.errors)t=r.matches;else{if(0!==n.length||r.initialized||!(r.matches.length>0))return null;t=r.matches}}let a=t,i=null===r||void 0===r?void 0:r.errors;if(null!=i){let e=a.findIndex(e=>e.route.id&&void 0!==(null===i||void 0===i?void 0:i[e.route.id]));g(e>=0,"Could not find a matching route for errors on route IDs: ".concat(Object.keys(i).join(","))),a=a.slice(0,Math.min(a.length,e+1))}let c=!1,l=-1;if(o&&r){c=r.renderFallback;for(let e=0;e=0?a.slice(0,l+1):[a[0]];break}}}}let s=null===o||void 0===o?void 0:o.onError,u=r&&s?(e,t)=>{var n,o;s(e,{location:r.location,params:null!==(n=null===(o=r.matches)||void 0===o||null===(o=o[0])||void 0===o?void 0:o.params)&&void 0!==n?n:{},unstable_pattern:J(r.matches),errorInfo:t})}:void 0;return a.reduceRight((t,o,s)=>{let d,f=!1,p=null,m=null;r&&(d=i&&o.route.id?i[o.route.id]:void 0,p=o.route.errorElement||Ee,c&&(l<0&&0===s?(Le("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,m=null):l===s&&(f=!0,m=o.route.hydrateFallbackElement||null)));let g=n.concat(a.slice(0,s+1)),h=()=>{let n;return n=d?p:f?m:o.route.Component?e.createElement(o.route.Component,null):o.route.element?o.route.element:t,e.createElement(Ae,{match:o,routeContext:{outlet:t,matches:g,isDataRoute:null!=r},children:n})};return r&&(o.route.ErrorBoundary||o.route.errorElement||0===s)?e.createElement(je,{location:r.location,revalidation:r.revalidation,component:p,error:d,children:h(),routeContext:{outlet:null,matches:g,isDataRoute:!0},onError:u}):h()},null)}function Pe(e){return"".concat(e," must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.")}function ze(t){let n=e.useContext(oe);return g(n,Pe(t)),n}function Re(t){let n=e.useContext(re);return g(n,Pe(t)),n}function Me(t){let n=function(t){let n=e.useContext(fe);return g(n,Pe(t)),n}(t),o=n.matches[n.matches.length-1];return g(o.route.id,"".concat(t,' can only be used on routes that contain a unique "id"')),o.route.id}function Te(){var t;let n=e.useContext(pe),o=Re("useRouteError"),r=Me("useRouteError");return void 0!==n?n:null===(t=o.errors)||void 0===t?void 0:t[r]}var Be={};function Le(e,t,n){t||Be[e]||(Be[e]=!0,h(!1,n))}var He={};function _e(e,t){e||He[t]||(He[t]=!0,console.warn(t))}t.useOptimistic;e.memo(De);function De(e){let{routes:t,future:n,state:o,isStatic:r,onError:a}=e;return Ce(t,void 0,{state:o,isStatic:r,onError:a,future:n})}function Fe(t){let{to:n,replace:o,state:r,relative:a}=t;g(ge()," may be used only in the context of a component.");let{static:i}=e.useContext(ue);h(!i," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:c}=e.useContext(fe),{pathname:l}=he(),s=ye(),u=G(n,q(c),l,"path"===a),d=JSON.stringify(u);return e.useEffect(()=>{s(JSON.parse(d),{replace:o,state:r,relative:a})},[s,d,a,o,r]),null}function We(t){return function(t){let n=e.useContext(fe).outlet;return e.useMemo(()=>n&&e.createElement(xe.Provider,{value:t},n),[n,t])}(t.context)}function Ve(e){g(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function qe(t){let{basename:n="/",children:o=null,location:r,navigationType:a="POP",navigator:i,static:c=!1,unstable_useTransitions:l}=t;g(!ge(),"You cannot render a inside another . You should never have more than one in your app.");let s=n.replace(/^\/*/,"/"),u=e.useMemo(()=>({basename:s,navigator:i,static:c,unstable_useTransitions:l,future:{}}),[s,i,c,l]);"string"===typeof r&&(r=x(r));let{pathname:d="/",search:f="",hash:p="",state:m=null,key:v="default",unstable_mask:b}=r,y=e.useMemo(()=>{let e=_(d,s);return null==e?null:{location:{pathname:e,search:f,hash:p,state:m,key:v,unstable_mask:b},navigationType:a}},[s,d,f,p,m,v,a,b]);return h(null!=y,' is not able to match the URL "').concat(d).concat(f).concat(p,"\" because it does not start with the basename, so the won't render anything.")),null==y?null:e.createElement(ue.Provider,{value:u},e.createElement(de.Provider,{children:o,value:y}))}function Ge(e){let{children:t,location:n}=e;return Ce(Xe(t),n)}e.Component;function Xe(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=[];return e.Children.forEach(t,(t,r)=>{if(!e.isValidElement(t))return;let a=[...n,r];if(t.type===e.Fragment)return void o.push.apply(o,Xe(t.props.children,a));g(t.type===Ve,"[".concat("string"===typeof t.type?t.type:t.type.name,"] is not a component. All component children of must be a or ")),g(!t.props.index||!t.props.children,"An index route cannot have child routes.");let i={id:t.props.id||a.join("-"),caseSensitive:t.props.caseSensitive,element:t.props.element,Component:t.props.Component,index:t.props.index,path:t.props.path,middleware:t.props.middleware,loader:t.props.loader,action:t.props.action,hydrateFallbackElement:t.props.hydrateFallbackElement,HydrateFallback:t.props.HydrateFallback,errorElement:t.props.errorElement,ErrorBoundary:t.props.ErrorBoundary,hasErrorBoundary:!0===t.props.hasErrorBoundary||null!=t.props.ErrorBoundary||null!=t.props.errorElement,shouldRevalidate:t.props.shouldRevalidate,handle:t.props.handle,lazy:t.props.lazy};t.props.children&&(i.children=Xe(t.props.children,a)),o.push(i)}),o}var Ue="get",$e="application/x-www-form-urlencoded";function Ke(e){return"undefined"!==typeof HTMLElement&&e instanceof HTMLElement}var Ye=null;var Qe=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Je(e){return null==e||Qe.has(e)?e:(h(!1,'"'.concat(e,'" is not a valid `encType` for `
`/`` and will default to "').concat($e,'"')),null)}function Ze(e,t){let n,o,r,a,i;if(function(e){return Ke(e)&&"form"===e.tagName.toLowerCase()}(e)){let i=e.getAttribute("action");o=i?_(i,t):null,n=e.getAttribute("method")||Ue,r=Je(e.getAttribute("enctype"))||$e,a=new FormData(e)}else if(function(e){return Ke(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Ke(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw new Error('Cannot submit a